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 = [  | 
