diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-11-16 18:02:29 +0100 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-11-28 11:40:16 +0100 |
commit | cce8c95c54c6d29d94a9e82acc9d54dcb4c20500 (patch) | |
tree | 966a09e82d976e3cd3e0a5bc49b1d502722ae930 /archaeological_finds | |
parent | cfcbb04a4c2eb4cd587f34826f2ce69ff6025312 (diff) | |
download | Ishtar-cce8c95c54c6d29d94a9e82acc9d54dcb4c20500.tar.bz2 Ishtar-cce8c95c54c6d29d94a9e82acc9d54dcb4c20500.zip |
Treatment: fix save with multiple items
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/wizards.py | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index 3314759d1..8a7a3a513 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -156,19 +156,24 @@ class TreatmentWizard(Wizard): """ dct = super(TreatmentWizard, self).get_extra_model(dct, form_list) if 'resulting_pk' in dct: - try: - find = models.Find.objects.get(pk=dct.pop('resulting_pk')) - if 'own' in self.current_right \ - and not find.is_own(dct['history_modifier']): + dct['items'] = [] + pks = dct.pop('resulting_pk').split(u',') + for pk in pks: + try: + find = models.Find.objects.get(pk=pk) + dct['items'].append(find) + except models.Find.DoesNotExist: raise PermissionDenied - dct['items'] = [find] - except models.Find.DoesNotExist: - raise PermissionDenied if 'basket' in dct: basket = dct.pop('basket') if basket.user.pk != dct['history_modifier'].pk: raise PermissionDenied dct['items'] = list(basket.items.all()) + + for find in dct['items']: + if 'own' in self.current_right \ + and not find.is_own(dct['history_modifier']): + raise PermissionDenied return dct |