From 58cbaea8a20d17418d1613ea3b277242c932d2ac Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 16 Aug 2018 15:05:43 +0200 Subject: Manage properties in search vectors - add short code for operation (refs #4027) --- archaeological_operations/models.py | 18 ++++++++++++++++++ archaeological_operations/tests.py | 11 ++++++++--- 2 files changed, 26 insertions(+), 3 deletions(-) (limited to 'archaeological_operations') diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 9d6264a4d..435394592 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -446,6 +446,9 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, "scientific_documentation_comment", "seizure_name", ] + PROPERTY_SEARCH_VECTORS = [ + "full_reference", "short_code_patriarche" + ] INT_SEARCH_VECTORS = ["year"] M2M_SEARCH_VECTORS = ["periods__label", "remains__label", "towns__name"] PARENT_SEARCH_VECTORS = ["associated_file"] @@ -845,10 +848,25 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, unicode(self.operation_code))) return ref or "00" + @property + def short_code_patriarche(self): + if not self.code_patriarche: + return u"" + profile = get_current_profile() + if not profile.operation_region_code or \ + not self.code_patriarche.startswith( + profile.operation_region_code): + return self.code_patriarche + return self.code_patriarche[len(profile.operation_region_code):] + @property def reference(self): return self.get_reference() + @property + def full_reference(self): + return self.get_reference(full=True) + @property def report_delivery_delay(self): return None diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index a3cd5fd8d..a396adecf 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -1050,10 +1050,15 @@ class OperationTest(TestCase, OperationInitTest): operation.towns.add(town) operation = models.Operation.objects.get(pk=operation.pk) operation.comment = u"Zardoz" - operation.code_patriarche = u"HUIAAA5" + profile = get_current_profile() + profile.operation_region_code = u"42" + profile.save() + operation.code_patriarche = u"42HUIAAA5" operation.save() - for key in ('old', 'dirty', 'daisy', "'2010'", "zardoz", - "huiaaa5"): + for key in ( + 'old', 'dirty', 'daisy', "'2010'", "zardoz", "huiaaa5", + "{}42huiaaa5".format(profile.operation_prefix.lower()), + "42huiaaa5"): self.assertIn(key, operation.search_vector) def test_cache_bulk_update(self): -- cgit v1.2.3