diff options
Diffstat (limited to 'archaeological_warehouse')
-rw-r--r-- | archaeological_warehouse/forms.py | 12 | ||||
-rw-r--r-- | archaeological_warehouse/views.py | 2 | ||||
-rw-r--r-- | archaeological_warehouse/wizards.py | 17 |
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() |