diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2020-09-09 12:25:51 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2021-02-28 12:15:20 +0100 |
commit | d2b8f1997ec52e8f32d6fa680d7107ee9421bd31 (patch) | |
tree | 0eaed830f776d8d6dee3af1776e701bef1a1f27d /archaeological_finds | |
parent | 1c10e26f76f7c406576091dcaf4eb94daf835797 (diff) | |
download | Ishtar-d2b8f1997ec52e8f32d6fa680d7107ee9421bd31.tar.bz2 Ishtar-d2b8f1997ec52e8f32d6fa680d7107ee9421bd31.zip |
Find search: hierarchical search by container
Diffstat (limited to 'archaeological_finds')
-rw-r--r-- | archaeological_finds/forms.py | 46 | ||||
-rw-r--r-- | archaeological_finds/models_finds.py | 42 |
2 files changed, 46 insertions, 42 deletions
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 46c388a13..eabe25fa0 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -50,7 +50,7 @@ from archaeological_finds.forms_treatments import TreatmentSelect, \ from archaeological_operations.models import Period, ArchaeologicalSite, \ RelationType as OpeRelationType from archaeological_operations.widgets import OAWidget -from archaeological_warehouse.models import Warehouse +from archaeological_warehouse.models import Warehouse, Container from bootstrap_datepicker.widgets import DatePicker from ishtar_common import widgets @@ -1268,36 +1268,52 @@ class FindSelectWarehouseModule(FindSelect): reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse), validators=[valid_id(Warehouse)]) - container_ref__location = forms.IntegerField( - label=_(u"Reference container - Warehouse (location)"), + container = forms.IntegerField( + label=_("Current container"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=Container), + validators=[valid_id(Container)]) + container__location = forms.IntegerField( + label=_("Current container - Warehouse (location)"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse), validators=[valid_id(Warehouse)]) - container_ref__responsible = forms.IntegerField( - label=_(u"Reference container - Warehouse (responsible)"), + """ + container__responsible = forms.IntegerField( + label=_(u"Current container - Warehouse (responsible)"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse), validators=[valid_id(Warehouse)]) - container_ref__index = forms.IntegerField( - label=_(u"Reference container ID")) - container_ref__reference = forms.CharField( - label=_(u"Reference container ref.")) - container__location = forms.IntegerField( - label=_(u"Current container - Warehouse (location)"), + container__index = forms.IntegerField(label=_(u"Current container ID")) + container__reference = forms.CharField(label=_(u"Current container ref.")) + """ + container_ref = forms.IntegerField( + label=_("Reference container"), + widget=widgets.JQueryAutoComplete( + reverse_lazy('autocomplete-container'), + associated_model=Container), + validators=[valid_id(Container)]) + container_ref__location = forms.IntegerField( + label=_("Reference container - Warehouse (location)"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse), validators=[valid_id(Warehouse)]) - container__responsible = forms.IntegerField( - label=_(u"Current container - Warehouse (responsible)"), + """ + container_ref__responsible = forms.IntegerField( + label=_("Reference container - Warehouse (responsible)"), widget=widgets.JQueryAutoComplete( reverse_lazy('autocomplete-warehouse'), associated_model=Warehouse), validators=[valid_id(Warehouse)]) - container__index = forms.IntegerField(label=_(u"Current container ID")) - container__reference = forms.CharField(label=_(u"Current container ref.")) + container_ref__index = forms.IntegerField( + label=_(u"Reference container ID")) + container_ref__reference = forms.CharField( + label=_(u"Reference container ref.")) + """ class FindFormSelection(LockForm, CustomFormSearch): diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py index 3adaf90dd..b893951b7 100644 --- a/archaeological_finds/models_finds.py +++ b/archaeological_finds/models_finds.py @@ -938,8 +938,6 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, 'documents__image__isnull': 'documents__image__isnull', 'container__location': 'container__location__pk', 'container__responsible': 'container__responsible__pk', - 'container__index': 'container__index', - 'container__reference': 'container__reference', } for table in (TABLE_COLS, TABLE_COLS_FOR_OPE): for key in table: @@ -1055,38 +1053,22 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, SearchAltName( pgettext_lazy("key for text search", "checked"), 'checked_type__label__iexact'), + 'container_ref': + SearchAltName( + pgettext_lazy("key for text search", "container"), + 'container_ref__cached_label__iexact'), 'container_ref__location': SearchAltName( pgettext_lazy("key for text search", "location"), 'container_ref__location__name__iexact'), - 'container_ref__responsible': - SearchAltName( - pgettext_lazy("key for text search", "warehouse"), - 'container_ref__responsible__name__iexact'), - 'container_ref__index': - SearchAltName( - pgettext_lazy("key for text search", "container-index"), - 'container_ref__index'), - 'container_ref__reference': - SearchAltName( - pgettext_lazy("key for text search", "container-ref"), - 'container_ref__reference__iexact'), 'container__location': SearchAltName( pgettext_lazy("key for text search", "current-location"), 'container__location__name__iexact'), - 'container__responsible': - SearchAltName( - pgettext_lazy("key for text search", "current-warehouse"), - 'container__responsible__name__iexact'), - 'container__index': + 'container': SearchAltName( - pgettext_lazy("key for text search", "current-container-index"), - 'container__index'), - 'container__reference': - SearchAltName( - pgettext_lazy("key for text search", "current-container-ref"), - 'container__reference__iexact'), + pgettext_lazy("key for text search", "current-container"), + 'container__cached_label__iexact'), 'basket': SearchAltName( pgettext_lazy("key for text search", "basket"), @@ -1380,6 +1362,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, ALT_NAMES.update(DocumentItem.ALT_NAMES) ALT_NAMES.update(Dating.ASSOCIATED_ALT_NAMES) + """ DYNAMIC_REQUESTS = { 'current_division': DynamicRequest( label=_("Division current -"), @@ -1391,7 +1374,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, search_query='container__division__reference__iexact' ), 'reference_division': DynamicRequest( - label=_(u"Division reference -"), + label=_("Division reference -"), app_name='archaeological_warehouse', model_name='WarehouseDivision', form_key='reference_division', search_key=pgettext_lazy("key for text search", @@ -1400,6 +1383,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, search_query='container_ref__division__reference__iexact' ), } + """ PARENT_SEARCH_VECTORS = ['base_finds'] BASE_SEARCH_VECTORS = [ @@ -1677,7 +1661,7 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, @property def short_class_name(self): - return _(u"FIND") + return _("FIND") def __str__(self): return self.cached_label or u"" @@ -1698,6 +1682,10 @@ class Find(BulkUpdatedItem, ValueGetter, DocumentItem, BaseHistorizedItem, 'excavation_id').order_by('pk').all() if base_find['excavation_id']]) + @classmethod + def hierarchic_fields(cls): + return ["container", "container_ref"] + @property def materials(self): return " ; ".join([str(material) |