summaryrefslogtreecommitdiff
path: root/archaeological_finds/forms.py
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-15 17:15:35 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2019-09-15 17:15:35 +0200
commitd7cfe41553e8fec117b9a9daa469efd3b2a022ee (patch)
tree7e5e993808eb2363ce51ad878585a4c9d081d928 /archaeological_finds/forms.py
parent6e0d12d97cea0a3962aef86b3484abbace9bc645 (diff)
downloadIshtar-d7cfe41553e8fec117b9a9daa469efd3b2a022ee.tar.bz2
Ishtar-d7cfe41553e8fec117b9a9daa469efd3b2a022ee.zip
Basket in search form - autocomplete widget
Diffstat (limited to 'archaeological_finds/forms.py')
-rw-r--r--archaeological_finds/forms.py29
1 files changed, 7 insertions, 22 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):