diff options
| -rw-r--r-- | archaeological_finds/forms.py | 25 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 4 | 
2 files changed, 28 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") diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index 94439fa82..fd041b511 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -615,3 +615,7 @@ class QAFindBasketForm(QAItemForm):          kwargs = super(QAFindBasketForm, self).get_form_kwargs()          kwargs['user'] = self.request.user          return kwargs + +    def form_valid(self, form): +        form.save(self.items) +        return HttpResponseRedirect(reverse("success")) | 
