summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2018-10-03 21:35:15 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2018-10-03 21:35:15 +0200
commiteb93298d18f289544495e99e6d67cb803ef78f92 (patch)
treeaa1ca9d23efe215e5e340316141f5919ca7c84fe
parent118afa78428fb2a7ad0df2c2b861c9d934443cfb (diff)
downloadIshtar-eb93298d18f289544495e99e6d67cb803ef78f92.tar.bz2
Ishtar-eb93298d18f289544495e99e6d67cb803ef78f92.zip
Find search: add basket criteria
-rw-r--r--archaeological_finds/forms.py7
-rw-r--r--archaeological_finds/models_finds.py4
-rw-r--r--ishtar_common/forms.py7
3 files changed, 15 insertions, 3 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index 358b12477..fbcc32013 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -453,6 +453,7 @@ class FindSelect(CustomForm, TableSelect):
reverse_lazy('autocomplete-contextrecord'),
associated_model=ContextRecord),
validators=[valid_id(ContextRecord)])
+ basket = forms.ChoiceField(label=_(u"Basket"), choices=[])
ope_relation_types = forms.ChoiceField(
label=_(u"Search within related operations"), choices=[])
cr_relation_types = forms.ChoiceField(
@@ -497,6 +498,12 @@ class FindSelect(CustomForm, TableSelect):
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(
+ user=self.current_user).all()]
def get_input_ids(self):
ids = super(FindSelect, self).get_input_ids()
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index bdcb0d0ad..bda25f97c 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -853,6 +853,10 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
pgettext_lazy("key for text search", u"container-ref"),
'container__reference__iexact',
),
+ 'basket': (
+ pgettext_lazy("key for text search", u"basket"),
+ 'basket__label__exact'
+ ),
}
for v in ALT_NAMES.values():
for language_code, language_lbl in settings.LANGUAGES:
diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py
index eec66e1a6..3dfcad09e 100644
--- a/ishtar_common/forms.py
+++ b/ishtar_common/forms.py
@@ -127,14 +127,15 @@ class CustomForm(object):
need_user_for_initialization = True
def __init__(self, *args, **kwargs):
- current_user = None
+ self.current_user = None
if 'user' in kwargs:
try:
- current_user = kwargs.pop('user').ishtaruser
+ self.current_user = kwargs.pop('user').ishtaruser
except AttributeError:
pass
super(CustomForm, self).__init__(*args, **kwargs)
- available, excluded, json_fields = self.check_custom_form(current_user)
+ available, excluded, json_fields = self.check_custom_form(
+ self.current_user)
for exc in excluded:
if hasattr(self, 'fields'):
self.remove_field(exc)