diff options
Diffstat (limited to 'archaeological_finds/forms.py')
| -rw-r--r-- | archaeological_finds/forms.py | 35 | 
1 files changed, 17 insertions, 18 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 284b9a76c..aa29b57bf 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -681,11 +681,16 @@ class QAFindFormSingle(QAFindFormMulti):  class QAFindBasketForm(IshtarForm): -    create_or_update = forms.ChoiceField( -        choices=(('create', _(u"Create")), -                 ('update', _(u"Update"))), initial='create') -    label = forms.CharField(label="", max_length=None, required=False) -    basket = forms.ChoiceField(label=_(u"Basket"), required=False, choices=[]) +    qa_bf_create_or_update = forms.ChoiceField( +        choices=(('create', _("Create")), +                 ('update', _("Update"))), initial='create') +    qa_bf_label = forms.CharField(label="", max_length=None, required=False) +    qa_bf_basket = forms.IntegerField( +        label=_("Basket"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-findbasket-write'), +            associated_model=models.FindBasket), +        validators=[valid_id(models.FindBasket)], required=False)      def __init__(self, *args, **kwargs):          self.user = None @@ -696,20 +701,14 @@ class QAFindBasketForm(IshtarForm):          self.items = kwargs.pop('items')          super(QAFindBasketForm, self).__init__(*args, **kwargs) -        if not self.user: -            return -        self.fields['basket'].choices = [ -            (b.pk, "{} ({})".format(b.label, b.items.count())) -            for b in models.FindBasket.objects.filter(user=self.user).distinct() -        ]      def clean(self): -        if self.cleaned_data['create_or_update'] == 'update': -            if not self.cleaned_data['basket']: +        if self.cleaned_data['qa_bf_create_or_update'] == 'update': +            if not self.cleaned_data['qa_bf_basket']:                  raise forms.ValidationError(                      _(u"On update, you have to select a basket."))              return self.cleaned_data -        label = self.cleaned_data['label'].strip() +        label = self.cleaned_data['qa_bf_label'].strip()          if not label:              raise forms.ValidationError(_(u"A label is required."))          if models.FindBasket.objects.filter(user=self.user, @@ -719,11 +718,11 @@ class QAFindBasketForm(IshtarForm):          return self.cleaned_data      def save(self, items): -        if self.cleaned_data['create_or_update'] == 'update': +        if self.cleaned_data['qa_bf_create_or_update'] == 'update':              basket = models.FindBasket.objects.get( -                user=self.user, pk=self.cleaned_data['basket']) +                user=self.user, pk=self.cleaned_data['qa_bf_basket'])          else: -            label = self.cleaned_data['label'].strip() +            label = self.cleaned_data['qa_bf_label'].strip()              basket = models.FindBasket.objects.create(                  user=self.user, label=label)          for item in items: @@ -1646,7 +1645,7 @@ class SelectFindBasketForm(IshtarForm):              self.user = kwargs.pop('user')              if hasattr(self.user, 'ishtaruser'):                  self.user = self.user.ishtaruser -        super(SelectFindBasketWriteForm, self).__init__(*args, **kwargs) +        super(SelectFindBasketForm, self).__init__(*args, **kwargs)  class SelectFindBasketWriteForm(IshtarForm): | 
