diff options
| -rw-r--r-- | archaeological_finds/forms.py | 29 | ||||
| -rw-r--r-- | archaeological_finds/views.py | 2 | 
2 files changed, 8 insertions, 23 deletions
| diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 2e144f96f..150acfa05 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -700,7 +700,7 @@ class QAFindBasketForm(IshtarForm):              return          self.fields['basket'].choices = [              (b.pk, "{} ({})".format(b.label, b.items.count())) -            for b in models.FindBasket.objects.filter(user=self.user) +            for b in models.FindBasket.objects.filter(user=self.user).distinct()          ]      def clean(self): @@ -983,7 +983,12 @@ class FindSelect(HistorySelect):      cr_relation_types = forms.ChoiceField(          label=_(u"Search within related context records"), choices=[]) -    basket = forms.ChoiceField(label=_(u"Basket"), choices=[]) +    basket = forms.IntegerField( +        label=_(u"Basket"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-findbasket'), +            associated_model=models.FindBasket), +        validators=[valid_id(models.FindBasket)])      description = forms.CharField(label=_(u"Description"))      base_finds__discovery_date__after = forms.DateField( @@ -1181,13 +1186,6 @@ class FindSelect(HistorySelect):          if 'cr_relation_types' in self.fields:              self.fields['cr_relation_types'].choices = CRRelationType.get_types(                  ) -        if 'basket' in self.fields: -            self.fields['basket'].choices = [('', '--')] -            if self.current_user: -                self.fields['basket'].choices += [ -                    (b.pk, b.label) for b in models.FindBasket.objects.filter( -                        models.FindBasket.get_query_owns(self.current_user) -                    ).all()]      def get_input_ids(self):          ids = super(FindSelect, self).get_input_ids() @@ -1635,7 +1633,6 @@ class SelectFindBasketForm(IshtarForm):      associated_models = {'basket': models.FindBasket}      need_user_for_initialization = True -    basket = forms.ChoiceField(label=_(u"Basket"), required=True, choices=[])      basket = forms.IntegerField(          label=_(u"Basket"),          widget=widgets.JQueryAutoComplete( @@ -1649,19 +1646,7 @@ class SelectFindBasketForm(IshtarForm):              self.user = kwargs.pop('user')              if hasattr(self.user, 'ishtaruser'):                  self.user = self.user.ishtaruser -          super(SelectFindBasketForm, self).__init__(*args, **kwargs) -        if not self.user: -            return -        self.fields['basket'].choices = self.get_basket_choices() - -    def get_basket_choices(self): -        return [('', u'--')] + [ -            (str(b.pk), "{} ({})".format(b.label, b.items.count())) -            for b in models.FindBasket.objects.filter( -                Q(user=self.user) | Q(shared_write_with=self.user) -            ).distinct() -        ]  class FindBasketAddItemForm(forms.Form): diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index e5c09371b..f440adea6 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -177,7 +177,7 @@ def autocomplete_findbasket(request, current_right=None):              'label')[:limit]          for obj in objects:              if obj.id not in list(result.keys()): -                result[obj.id] = u"{} - {}".format(obj.label, obj.user)[:60] +                result[obj.id] = obj.label                  limit -= 1                  if not limit:                      break | 
