diff options
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 |
commit | eb93298d18f289544495e99e6d67cb803ef78f92 (patch) | |
tree | aa1ca9d23efe215e5e340316141f5919ca7c84fe | |
parent | 118afa78428fb2a7ad0df2c2b861c9d934443cfb (diff) | |
download | Ishtar-eb93298d18f289544495e99e6d67cb803ef78f92.tar.bz2 Ishtar-eb93298d18f289544495e99e6d67cb803ef78f92.zip |
Find search: add basket criteria
-rw-r--r-- | archaeological_finds/forms.py | 7 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 4 | ||||
-rw-r--r-- | ishtar_common/forms.py | 7 |
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) |