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) |