diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-09-11 19:03:25 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2018-10-24 12:06:08 +0200 | 
| commit | f298f7b27b48c604ca3ee4ffbf6b3ff5e17a1aeb (patch) | |
| tree | c59be66ce93afb2c6f950f70f03cc5044f7ea406 /archaeological_finds/forms.py | |
| parent | c3d78fb588769075d260e26086077785813e9448 (diff) | |
| download | Ishtar-f298f7b27b48c604ca3ee4ffbf6b3ff5e17a1aeb.tar.bz2 Ishtar-f298f7b27b48c604ca3ee4ffbf6b3ff5e17a1aeb.zip | |
QA add to basket: save
Diffstat (limited to 'archaeological_finds/forms.py')
| -rw-r--r-- | archaeological_finds/forms.py | 25 | 
1 files changed, 24 insertions, 1 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index eb27c22cc..da3682d0d 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -460,11 +460,34 @@ class QAFindBasketForm(IshtarForm):          super(QAFindBasketForm, self).__init__(*args, **kwargs)          if not self.user:              return -        self.fields['basket'].choices = [('', '--')] + [ +        self.fields['basket'].choices = [              (b.pk, unicode(b))              for b in models.FindBasket.objects.filter(user=self.user)          ] +    def clean(self): +        if self.cleaned_data['create_or_update'] == 'update': +            return self.cleaned_data +        label = self.cleaned_data['label'].strip() +        if not label: +            raise forms.ValidationError(_(u"A label is required.")) +        if models.FindBasket.objects.filter(user=self.user, +                                            label=label).count(): +            raise forms.ValidationError(_(u"A basket with this label already " +                                          u"exists.")) +        return self.cleaned_data + +    def save(self, items): +        if self.cleaned_data['create_or_update'] == 'update': +            basket = models.FindBasket.objects.get( +                user=self.user, pk=self.cleaned_data['basket']) +        else: +            label = self.cleaned_data['label'].strip() +            basket = models.FindBasket.objects.create( +                user=self.user, label=label) +        for item in items: +            basket.items.add(item) +  class PreservationForm(CustomForm, ManageOldType):      form_label = _("Preservation") | 
