summaryrefslogtreecommitdiff
path: root/archaeological_finds/models_finds.py
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r--archaeological_finds/models_finds.py361
1 files changed, 191 insertions, 170 deletions
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 29aeaefcf..ff989fb07 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -41,7 +41,9 @@ from ishtar_common.models import Document, GeneralType, \
HistoricalRecords, OwnPerms, Person, Basket, post_save_cache, \
ValueGetter, get_current_profile, IshtarSiteProfile, PRIVATE_FIELDS, \
SpatialReferenceSystem, BulkUpdatedItem, ExternalIdManager, QuickAction, \
- MainItem, document_attached_changed, HistoryModel
+ MainItem, document_attached_changed, HistoryModel, DynamicRequest, \
+ SearchAltName
+
from archaeological_operations.models import AdministrativeAct, Operation
from archaeological_context_records.models import ContextRecord, Dating
@@ -819,181 +821,200 @@ class Find(BulkUpdatedItem, ValueGetter, BaseHistorizedItem, OwnPerms,
if key not in EXTRA_REQUEST_KEYS]
)
)
+
# alternative names of fields for searches
ALT_NAMES = {
- 'base_finds__cache_short_id': (
- pgettext_lazy("key for text search", u"short-id"),
- 'base_finds__cache_short_id__iexact'
- ),
- 'base_finds__cache_complete_id': (
- pgettext_lazy("key for text search", u"complete-id"),
- 'base_finds__cache_complete_id__iexact'
- ),
- 'label': (
- pgettext_lazy("key for text search", u"free-id"),
- 'label__iexact'
- ),
- 'denomination': (
- pgettext_lazy("key for text search", u"denomination"),
- 'denomination__iexact'
- ),
- 'base_finds__context_record__town': (
- pgettext_lazy("key for text search", u"town"),
- 'base_finds__context_record__town__cached_label__iexact'
- ),
- 'base_finds__context_record__operation__year': (
- pgettext_lazy("key for text search", u"year"),
- 'base_finds__context_record__operation__year'
- ),
- 'base_finds__context_record__operation__operation_code': (
- pgettext_lazy("key for text search", u"operation-code"),
- 'base_finds__context_record__operation__operation_code'
- ),
- 'base_finds__context_record__operation__code_patriarche': (
- pgettext_lazy("key for text search", u"code-patriarche"),
- 'base_finds__context_record__operation__code_patriarche__iexact'
- ),
- 'base_finds__context_record__operation__operation_type': (
- pgettext_lazy("key for text search", u"operation-type"),
- 'base_finds__context_record__operation__operation_type'
- '__label__iexact'
- ),
- 'base_finds__context_record__town__areas': (
- pgettext_lazy("key for text search", u"area"),
- 'base_finds__context_record__town__areas__label__iexact',
- ),
- 'archaeological_sites': (
- pgettext_lazy("key for text search", u"site"),
- 'base_finds__context_record__operation__archaeological_sites__'
- 'cached_label__icontains',
- ),
- 'archaeological_sites_context_record': (
- pgettext_lazy("key for text search", u"context-record-site"),
- 'base_finds__context_record__archaeological_site__'
- 'cached_label__icontains',
- ),
- 'base_finds__context_record': (
- pgettext_lazy("key for text search", u"context-record"),
- 'base_finds__context_record__cached_label__icontains',
- ),
- 'ope_relation_types': (
- pgettext_lazy("key for text search", u"operation-relation-type"),
- 'ope_relation_types'
- ),
- 'cr_relation_types': (
- pgettext_lazy("key for text search", u"context-record-relation-type"),
- 'cr_relation_types'
- ),
- 'datings__period': (
- pgettext_lazy("key for text search", u"period"),
- 'datings__period__label__iexact',
- ),
- 'material_types': (
- pgettext_lazy("key for text search", u"material"),
- 'material_types__label__iexact',
- ),
- 'object_types': (
- pgettext_lazy("key for text search", u"object-type"),
- 'object_types__label__iexact',
- ),
- 'preservation_to_considers': (
- pgettext_lazy("key for text search", u"preservation"),
- 'preservation_to_considers__label__iexact',
- ),
- 'conservatory_state': (
- pgettext_lazy("key for text search", u"conservatory"),
- 'conservatory_state__label__iexact',
- ),
- 'integrities': (
- pgettext_lazy("key for text search", u"integrity"),
- 'integrities__label__iexact',
- ),
- 'remarkabilities': (
- pgettext_lazy("key for text search", u"remarkability"),
- 'remarkabilities__label__iexact',
- ),
- 'base_finds__find__description': (
- pgettext_lazy("key for text search", u"description"),
- 'base_finds__find__description__iexact',
- ),
- 'base_finds__batch': (
- pgettext_lazy("key for text search", u"batch"),
- 'base_finds__batch__label__iexact',
- ),
- 'checked_type': (
- pgettext_lazy("key for text search", u"checked"),
- 'checked_type__label__iexact',
- ),
- 'documents__image__isnull': (
- pgettext_lazy("key for text search", u"has-image"),
- 'documents__image__isnull',
- ),
- 'container_ref__location': (
- pgettext_lazy("key for text search", u"location"),
- 'container_ref__location__name__iexact',
- ),
- 'container_ref__responsible': (
- pgettext_lazy("key for text search", u"warehouse"),
- 'container_ref__responsible__name__iexact',
- ),
- 'container_ref__index': (
- pgettext_lazy("key for text search", u"container-index"),
- 'container_ref__index',
- ),
- 'container_ref__reference': (
- pgettext_lazy("key for text search", u"container-ref"),
- 'container_ref__reference__iexact',
- ),
- 'container__location': (
- pgettext_lazy("key for text search", u"current-location"),
- 'container__location__name__iexact',
- ),
- 'container__responsible': (
- pgettext_lazy("key for text search", u"current-warehouse"),
- 'container__responsible__name__iexact',
- ),
- 'container__index': (
- pgettext_lazy("key for text search", u"current-container-index"),
- 'container__index',
- ),
- 'container__reference': (
- pgettext_lazy("key for text search", u"current-container-ref"),
- 'container__reference__iexact',
- ),
- 'basket': (
- pgettext_lazy("key for text search", u"basket"),
- 'basket__label__iexact'
- ),
- 'base_finds__context_record__operation__cached_label': (
- pgettext_lazy("key for text search", u"operation"),
- 'base_finds__context_record__operation__cached_label__icontains'
- ),
- 'history_modifier': (
- pgettext_lazy("key for text search", u"last-modified-by"),
- 'history_modifier__ishtaruser__person__cached_label__icontains'
- ),
- 'modified_since': (
- pgettext_lazy("key for text search", u"modified-since"),
- 'last_modified__gte'
+ 'base_finds__cache_short_id':
+ SearchAltName(pgettext_lazy("key for text search", u"short-id"),
+ 'base_finds__cache_short_id__iexact'),
+ 'base_finds__cache_complete_id':
+ SearchAltName(pgettext_lazy("key for text search", u"complete-id"),
+ 'base_finds__cache_complete_id__iexact'),
+ 'label':
+ SearchAltName(pgettext_lazy("key for text search", u"free-id"),
+ 'label__iexact'),
+ 'denomination':
+ SearchAltName(pgettext_lazy("key for text search", u"denomination"),
+ 'denomination__iexact'),
+ 'base_finds__context_record__town':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"town"),
+ 'base_finds__context_record__town__cached_label__iexact'),
+ 'base_finds__context_record__operation__year':
+ SearchAltName(pgettext_lazy("key for text search", u"year"),
+ 'base_finds__context_record__operation__year'),
+ 'base_finds__context_record__operation__operation_code':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"operation-code"),
+ 'base_finds__context_record__operation__operation_code'),
+ 'base_finds__context_record__operation__code_patriarche':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"code-patriarche"),
+ 'base_finds__context_record__operation__code_patriarche__iexact'
+ ),
+ 'base_finds__context_record__operation__operation_type':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"operation-type"),
+ 'base_finds__context_record__operation__operation_type'
+ '__label__iexact'),
+ 'base_finds__context_record__town__areas':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"area"),
+ 'base_finds__context_record__town__areas__label__iexact'),
+ 'archaeological_sites':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"site"),
+ 'base_finds__context_record__operation__archaeological_sites__'
+ 'cached_label__icontains'),
+ 'archaeological_sites_context_record':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"context-record-site"),
+ 'base_finds__context_record__archaeological_site__'
+ 'cached_label__icontains'),
+ 'base_finds__context_record':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"context-record"),
+ 'base_finds__context_record__cached_label__icontains'),
+ 'ope_relation_types':
+ SearchAltName(
+ pgettext_lazy("key for text search",
+ u"operation-relation-type"),
+ 'ope_relation_types'),
+ 'cr_relation_types':
+ SearchAltName(
+ pgettext_lazy("key for text search",
+ u"context-record-relation-type"),
+ 'cr_relation_types'),
+ 'datings__period':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"period"),
+ 'datings__period__label__iexact'),
+ 'material_types':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"material"),
+ 'material_types__label__iexact'),
+ 'object_types':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"object-type"),
+ 'object_types__label__iexact'),
+ 'preservation_to_considers':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"preservation"),
+ 'preservation_to_considers__label__iexact'),
+ 'conservatory_state':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"conservatory"),
+ 'conservatory_state__label__iexact'),
+ 'integrities':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"integrity"),
+ 'integrities__label__iexact'),
+ 'remarkabilities':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"remarkability"),
+ 'remarkabilities__label__iexact'),
+ 'base_finds__find__description':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"description"),
+ 'base_finds__find__description__iexact'),
+ 'base_finds__batch':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"batch"),
+ 'base_finds__batch__label__iexact'),
+ 'checked_type':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"checked"),
+ 'checked_type__label__iexact'),
+ 'documents__image__isnull':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"has-image"),
+ 'documents__image__isnull'),
+ 'container_ref__location':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"location"),
+ 'container_ref__location__name__iexact'),
+ 'container_ref__responsible':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"warehouse"),
+ 'container_ref__responsible__name__iexact'),
+ 'container_ref__index':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"container-index"),
+ 'container_ref__index'),
+ 'container_ref__reference':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"container-ref"),
+ 'container_ref__reference__iexact'),
+ 'container__location':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"current-location"),
+ 'container__location__name__iexact'),
+ 'container__responsible':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"current-warehouse"),
+ 'container__responsible__name__iexact'),
+ 'container__index':
+ SearchAltName(
+ pgettext_lazy("key for text search",
+ u"current-container-index"),
+ 'container__index'),
+ 'container__reference':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"current-container-ref"),
+ 'container__reference__iexact'),
+ 'basket':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"basket"),
+ 'basket__label__iexact'),
+ 'base_finds__context_record__operation__cached_label':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"operation"),
+ 'base_finds__context_record__operation__cached_label__icontains'
+ ),
+ 'history_modifier':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"last-modified-by"),
+ 'history_modifier__ishtaruser__person__cached_label__icontains'
+ ),
+ 'modified_since':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"modified-since"),
+ 'last_modified__gte'),
+ 'history_creator':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"created-by"),
+ 'history_creator__ishtaruser__person__cached_label__iexact'
),
- 'history_creator': (
- pgettext_lazy("key for text search", u"created-by"),
- 'history_creator__ishtaruser__person__cached_label__iexact'
+ 'loan':
+ SearchAltName(
+ pgettext_lazy("key for text search", u"loan"), query_loan),
+ 'treatments_file_end_date':
+ SearchAltName(
+ pgettext_lazy("key for text search",
+ u"treatment-end-date-before"),
+ 'treatments__file__end_date__lte'),
+ }
+
+ DYNAMIC_REQUESTS = {
+ 'current_division': DynamicRequest(
+ label=_(u"Division current -"),
+ app_name='archaeological_warehouse', model_name='WarehouseDivision',
+ form_key='current_division',
+ search_key=pgettext_lazy("key for text search",
+ 'current-division'),
+ type_query='container__division__division__division__txt_idx',
+ search_query='container__division__reference__iexact'
),
- 'loan': (
- pgettext_lazy("key for text search", u"loan"),
- query_loan
+ 'reference_division': DynamicRequest(
+ label=_(u"Division reference -"),
+ app_name='archaeological_warehouse', model_name='WarehouseDivision',
+ form_key='reference_division',
+ search_key=pgettext_lazy("key for text search",
+ 'reference-division'),
+ type_query='container_ref__division__division__division__txt_idx',
+ search_query='container_ref__division__reference__iexact'
),
- 'treatments_file_end_date': (
- pgettext_lazy("key for text search", u"treatment-end-date-before"),
- 'treatments__file__end_date__lte'
- )
}
- for v in ALT_NAMES.values():
- for language_code, language_lbl in settings.LANGUAGES:
- activate(language_code)
- EXTRA_REQUEST_KEYS[unicode(v[0])] = v[1]
- deactivate()
PARENT_SEARCH_VECTORS = ['base_finds']
BASE_SEARCH_VECTORS = [