summaryrefslogtreecommitdiff
path: root/archaeological_finds
diff options
context:
space:
mode:
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
commitd2b8f1997ec52e8f32d6fa680d7107ee9421bd31 (patch)
tree0eaed830f776d8d6dee3af1776e701bef1a1f27d /archaeological_finds
parent1c10e26f76f7c406576091dcaf4eb94daf835797 (diff)
downloadIshtar-d2b8f1997ec52e8f32d6fa680d7107ee9421bd31.tar.bz2
Ishtar-d2b8f1997ec52e8f32d6fa680d7107ee9421bd31.zip
Find search: hierarchical search by container
Diffstat (limited to 'archaeological_finds')
-rw-r--r--archaeological_finds/forms.py46
-rw-r--r--archaeological_finds/models_finds.py42
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)