diff options
Diffstat (limited to 'archaeological_warehouse/models.py')
| -rw-r--r-- | archaeological_warehouse/models.py | 53 | 
1 files changed, 51 insertions, 2 deletions
| diff --git a/archaeological_warehouse/models.py b/archaeological_warehouse/models.py index 64a766cea..63d4497ac 100644 --- a/archaeological_warehouse/models.py +++ b/archaeological_warehouse/models.py @@ -20,7 +20,6 @@  import datetime  import uuid -from django.conf import settings  from django.contrib.gis.db import models  from django.contrib.postgres.indexes import GinIndex  from django.core.urlresolvers import reverse @@ -66,6 +65,7 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,          SearchVectorConfig("warehouse_type__label"),          SearchVectorConfig("external_id"),          SearchVectorConfig("town"), +        SearchVectorConfig("precise_town__name"),          SearchVectorConfig("comment", "local"),      ] @@ -84,6 +84,11 @@ class Warehouse(Address, DocumentItem, GeoItem, QRCodeItem, DashboardFormItem,              pgettext_lazy("key for text search", "type"),              'warehouse_type__label__iexact'          ), +        'town': +            SearchAltName( +                pgettext_lazy("key for text search", "town"), +                'precise_town__cached_label__iexact' +            ),      }      GEO_LABEL = "name"      DOWN_MODEL_UPDATE = ["containers"] @@ -497,6 +502,18 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,              pgettext_lazy("key for text search", "comment"),              'comment__iexact'          ), +        'operation_town': +            SearchAltName( +                pgettext_lazy("key for text search", "operation-town"), +                'finds__base_finds__context_record__operation__' +                'towns__cached_label__iexact' +            ), +        'operation_scientist': +            SearchAltName( +                pgettext_lazy("key for text search", "operation-scientist"), +                'finds__base_finds__context_record__operation__' +                'scientist__cached_label__iexact' +            ),          'code_patriarche':              SearchAltName(                  pgettext_lazy("key for text search", "code-patriarche"), @@ -528,6 +545,14 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,              SearchAltName(                  pgettext_lazy("key for text search", "context-record"),                  'finds__base_finds__context_record__cached_label__icontains'), +        'find_label': +            SearchAltName( +                pgettext_lazy("key for text search", "find-label"), +                'finds__label__icontains'), +        'find_denomination': +            SearchAltName( +                pgettext_lazy("key for text search", "find-denomination"), +                'finds__denomination__icontains'),          'material_types':              SearchAltName(                  pgettext_lazy("key for text search", "material"), @@ -578,9 +603,15 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,          ),      } +    REVERSED_BOOL_FIELDS = [ +        'documents__image__isnull', +        'documents__associated_file__isnull', +        'documents__associated_url__isnull', +    ]      REVERSED_MANY_COUNTED_FIELDS = ['finds', 'finds_ref']      ALT_NAMES.update(LightHistorizedItem.ALT_NAMES) +    ALT_NAMES.update(DocumentItem.ALT_NAMES)      DYNAMIC_REQUESTS = {          'division': DynamicRequest( @@ -909,7 +940,25 @@ class Container(DocumentItem, LightHistorizedItem, QRCodeItem, GeoItem,              loca.delete() -post_save.connect(cached_label_and_geo_changed, sender=Container) +def container_post_save(sender, **kwargs): +    cached_label_and_geo_changed(sender=sender, **kwargs) +    if not kwargs.get('instance'): +        return +    instance = kwargs.get('instance') +    for loca in ContainerLocalisation.objects.filter( +            container=instance).exclude( +            division__warehouse=instance.location).all(): +        q = WarehouseDivisionLink.objects.filter( +            warehouse=instance.location, +            division=loca.division.division +        ) +        if not q.count(): +            continue +        loca.division = q.all()[0] +        loca.save() + + +post_save.connect(container_post_save, sender=Container)  m2m_changed.connect(document_attached_changed,                      sender=Container.documents.through) | 
