summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
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
commitcce8c95c54c6d29d94a9e82acc9d54dcb4c20500 (patch)
tree966a09e82d976e3cd3e0a5bc49b1d502722ae930 /archaeological_finds
parentcfcbb04a4c2eb4cd587f34826f2ce69ff6025312 (diff)
downloadIshtar-cce8c95c54c6d29d94a9e82acc9d54dcb4c20500.tar.bz2
Ishtar-cce8c95c54c6d29d94a9e82acc9d54dcb4c20500.zip
Treatment: fix save with multiple items
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/wizards.py19
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