diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-08 18:13:35 +0200 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-08 18:13:35 +0200 |
| commit | f54d386b714f3a1abef103006e36972776d2028e (patch) | |
| tree | 2cba33588e42ec214b3d30b4825e36e7c4e47b40 /archaeological_warehouse/wizards.py | |
| parent | 316dc98ccdee59d6d4709f2a9e253cc258b2037e (diff) | |
| parent | aef35a14f4bd3f3f87c1e19188d57cc66e6694b6 (diff) | |
| download | Ishtar-f54d386b714f3a1abef103006e36972776d2028e.tar.bz2 Ishtar-f54d386b714f3a1abef103006e36972776d2028e.zip | |
Merge branch 'master-warehouse'
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 |
