summaryrefslogtreecommitdiff
path: root/archaeological_warehouse
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r--archaeological_warehouse/forms.py12
-rw-r--r--archaeological_warehouse/views.py2
-rw-r--r--archaeological_warehouse/wizards.py17
3 files changed, 20 insertions, 11 deletions
diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py
index fb36d6c18..080467e55 100644
--- a/archaeological_warehouse/forms.py
+++ b/archaeological_warehouse/forms.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -22,12 +22,13 @@ from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from ishtar_common.models import Person, valid_id
-from archaeological_finds.models import TreatmentType
+from archaeological_finds.models import TreatmentType, FindBasket
import models
from ishtar_common import widgets
from ishtar_common.forms import name_validator, reverse_lazy, \
get_form_selection, TableSelect
-from archaeological_finds.forms import FindMultipleFormSelection
+from archaeological_finds.forms import FindMultipleFormSelection, \
+ SelectFindBasketForm
def get_warehouse_field(label=_(u"Warehouse"), required=True):
@@ -137,11 +138,12 @@ ContainerFormSelection = get_form_selection(
new_message=_(u"Add a new container"))
-class BasePackagingForm(forms.Form):
+class BasePackagingForm(SelectFindBasketForm):
form_label = _(u"Packaging")
associated_models = {'treatment_type': TreatmentType,
'person': Person,
- 'location': models.Warehouse}
+ 'location': models.Warehouse,
+ 'basket': FindBasket}
treatment_type = forms.IntegerField(label="", widget=forms.HiddenInput)
person = forms.IntegerField(
label=_(u"Packager"),
diff --git a/archaeological_warehouse/views.py b/archaeological_warehouse/views.py
index aab18ed40..be5e6150c 100644
--- a/archaeological_warehouse/views.py
+++ b/archaeological_warehouse/views.py
@@ -89,7 +89,7 @@ def autocomplete_container(request):
warehouse_packaging_wizard = PackagingWizard.as_view([
('seleccontainer-packaging', ContainerFormSelection),
('base-packaging', BasePackagingForm),
- ('multiselecitems-packaging', FindPackagingFormSelection),
+ # ('multiselecitems-packaging', FindPackagingFormSelection),
('final-packaging', FinalForm)],
label=_(u"Packaging"),
url_name='warehouse_packaging',)
diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py
index 833c1c697..5f2b4346d 100644
--- a/archaeological_warehouse/wizards.py
+++ b/archaeological_warehouse/wizards.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2012 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2012-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -25,17 +25,24 @@ from archaeological_finds.models import Treatment
class PackagingWizard(TreatmentWizard):
+
+ def get_form_kwargs(self, step):
+ kwargs = super(PackagingWizard, self).get_form_kwargs(step)
+ if 'base-packaging' not in step:
+ return kwargs
+ kwargs['user'] = self.request.user
+ return kwargs
+
+
def save_model(self, dct, m2m, whole_associated_models, form_list,
return_object):
dct = self.get_extra_model(dct, form_list)
obj = self.get_current_saved_object()
dct['location'] = dct['container'].location
- items = dct.pop('finds')
+ basket = dct.pop('basket')
treatment = Treatment(**dct)
treatment.save()
- if not hasattr(items, '__iter__'):
- items = [items]
- for item in items:
+ for item in basket.items.all():
new = item.duplicate(self.request.user)
item.downstream_treatment = treatment
item.save()