summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-02-11 17:51:16 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2020-02-11 17:51:16 +0100
commit55f75a8e8de346991cad442cd78bc3a5973c278a (patch)
tree93f30085377550300e23cc85ebcda7e7a2fcc6eb /archaeological_finds/forms.py
parent628f8d2489d03862f73d3a41663bc2f5b644384b (diff)
downloadIshtar-55f75a8e8de346991cad442cd78bc3a5973c278a.tar.bz2
Ishtar-55f75a8e8de346991cad442cd78bc3a5973c278a.zip
QA basket: fix add to a shared basket
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r--archaeological_finds/forms.py11
1 files changed, 9 insertions, 2 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 5fcf57a27..babc56876 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -726,6 +726,12 @@ class QAFindBasketForm(IshtarForm):
if not self.cleaned_data['qa_bf_basket']:
raise forms.ValidationError(
_(u"On update, you have to select a basket."))
+ q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk)
+ q = models.FindBasket.objects.filter(q).filter(
+ pk=self.cleaned_data['qa_bf_basket'])
+ if not q.count():
+ raise forms.ValidationError(
+ _("You cannot update the selected basket."))
return self.cleaned_data
label = self.cleaned_data['qa_bf_label'].strip()
if not label:
@@ -738,8 +744,9 @@ class QAFindBasketForm(IshtarForm):
def save(self, items):
if self.cleaned_data['qa_bf_create_or_update'] == 'update':
- basket = models.FindBasket.objects.get(
- user=self.user, pk=self.cleaned_data['qa_bf_basket'])
+ q = Q(user=self.user) | Q(shared_write_with__pk=self.user.pk)
+ basket = models.FindBasket.objects.filter(q).get(
+ pk=self.cleaned_data['qa_bf_basket'])
else:
label = self.cleaned_data['qa_bf_label'].strip()
basket = models.FindBasket.objects.create(