diff options
Diffstat (limited to 'archaeological_warehouse/wizards.py')
| -rw-r--r-- | archaeological_warehouse/wizards.py | 25 | 
1 files changed, 13 insertions, 12 deletions
| diff --git a/archaeological_warehouse/wizards.py b/archaeological_warehouse/wizards.py index 833c1c697..409f7b28f 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,23 +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') +        items = dct.pop('basket')          treatment = Treatment(**dct) -        treatment.save() -        if not hasattr(items, '__iter__'): -            items = [items] -        for item in items: -            new = item.duplicate(self.request.user) -            item.downstream_treatment = treatment -            item.save() -            new.upstream_treatment = treatment -            new.container = dct['container'] -            new.save() +        extra_args_for_new = {"container": dct['container']} +        treatment.save(items=items, user=self.request.user, +                       extra_args_for_new=extra_args_for_new)          res = render_to_response('ishtar/wizard/wizard_done.html', {},                                   context_instance=RequestContext(self.request))          return return_object and (obj, res) or res | 
