diff options
Diffstat (limited to 'archaeological_finds/models_finds.py')
-rw-r--r-- | archaeological_finds/models_finds.py | 361 |
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 = [ |