diff options
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 |
commit | 55f75a8e8de346991cad442cd78bc3a5973c278a (patch) | |
tree | 93f30085377550300e23cc85ebcda7e7a2fcc6eb /archaeological_finds/forms.py | |
parent | 628f8d2489d03862f73d3a41663bc2f5b644384b (diff) | |
download | Ishtar-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.py | 11 |
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( |