summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-10-06 19:44:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:21 +0100
commitce17a92be9c98753911987d12bf30ea9485e8e3f (patch)
tree04961ac0119f44f5c46cb4356733f8bf2b5b0c1d /archaeological_operations
parentc37576c628db687260975c0d1d219c196a2bc9a5 (diff)
downloadIshtar-ce17a92be9c98753911987d12bf30ea9485e8e3f.tar.bz2
Ishtar-ce17a92be9c98753911987d12bf30ea9485e8e3f.zip
Complete identifier field: database - profile settings - save
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/migrations/0104_auto_20201007_1215.py39
-rw-r--r--archaeological_operations/models.py10
-rw-r--r--archaeological_operations/tests.py26
3 files changed, 69 insertions, 6 deletions
diff --git a/archaeological_operations/migrations/0104_auto_20201007_1215.py b/archaeological_operations/migrations/0104_auto_20201007_1215.py
new file mode 100644
index 000000000..fa61cf836
--- /dev/null
+++ b/archaeological_operations/migrations/0104_auto_20201007_1215.py
@@ -0,0 +1,39 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.27 on 2020-10-07 12:15
+from __future__ import unicode_literals
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_operations', '0103_auto_20200129_1941'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='recordrelations',
+ options={'ordering': ('left_record__cached_label', 'relation_type', 'right_record__cached_label'), 'permissions': [('view_operationrelation', 'Can view all Operation relations')], 'verbose_name': 'Operation record relation', 'verbose_name_plural': 'Operation record relations'},
+ ),
+ migrations.AddField(
+ model_name='archaeologicalsite',
+ name='complete_identifier',
+ field=models.TextField(blank=True, verbose_name='Complete identifier'),
+ ),
+ migrations.AddField(
+ model_name='historicalarchaeologicalsite',
+ name='complete_identifier',
+ field=models.TextField(blank=True, verbose_name='Complete identifier'),
+ ),
+ migrations.AddField(
+ model_name='historicaloperation',
+ name='complete_identifier',
+ field=models.TextField(blank=True, verbose_name='Complete identifier'),
+ ),
+ migrations.AddField(
+ model_name='operation',
+ name='complete_identifier',
+ field=models.TextField(blank=True, verbose_name='Complete identifier'),
+ ),
+ ]
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index e7561d32c..c690e5b3a 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -42,7 +42,7 @@ from ishtar_common.models import BaseHistorizedItem, Dashboard, \
post_delete_record_relation, post_save_cache, RelationItem, \
ShortMenuItem, SourceType, Town, ValueGetter, get_current_profile, \
document_attached_changed, HistoryModel, SearchAltName, \
- GeoItem, QRCodeItem, SearchVectorConfig, DocumentItem, QuickAction, \
+ GeoItem, CompleteIdentifierItem, SearchVectorConfig, DocumentItem, QuickAction, \
MainItem, HierarchicalType
from ishtar_common.models_common import Department, HistoricalRecords
from ishtar_common.model_managers import UUIDModelManager
@@ -122,7 +122,7 @@ post_save.connect(post_save_cache, sender=RecordQualityType)
post_delete.connect(post_save_cache, sender=RecordQualityType)
-class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, QRCodeItem,
+class ArchaeologicalSite(DocumentItem, BaseHistorizedItem, CompleteIdentifierItem,
GeoItem, OwnPerms, ValueGetter, MainItem):
SLUG = 'site'
APP = "archaeological-operations"
@@ -697,9 +697,9 @@ class ParcelItem:
parcels.append(key)
-class Operation(ClosedItem, DocumentItem, BaseHistorizedItem, QRCodeItem,
- GeoItem, OwnPerms, ValueGetter, MainItem,
- DashboardFormItem, RelationItem, ParcelItem):
+class Operation(ClosedItem, DocumentItem, BaseHistorizedItem,
+ CompleteIdentifierItem, GeoItem, OwnPerms, ValueGetter,
+ MainItem, DashboardFormItem, RelationItem, ParcelItem):
SLUG = 'operation'
APP = "archaeological-operations"
MODEL = "operation"
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 7b93c7d5e..d2cbb707e 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -1205,7 +1205,9 @@ class OperationInitTest(object):
self.create_orgas(user)
return self.orgas[0]
- def create_towns(self, datas={}):
+ def create_towns(self, datas=None):
+ if not datas:
+ datas = {}
default = {'numero_insee': '12345', 'name': 'default_town'}
default.update(datas)
town = models.Town.objects.create(**default)
@@ -1323,6 +1325,28 @@ class OperationTest(TestCase, OperationInitTest):
parcel.save()
self.assertEqual(parcel.external_id, 'blabla')
+ def test_complete_identifier(self):
+ profile = get_current_profile()
+ profile.operation_complete_identifier = \
+ "{code_patriarche}-{town__numero_insee}"
+ profile.save()
+ self.item.code_patriarche = '123456789'
+ self.item.year = 2020
+ self.item.save()
+ self.item = models.Operation.objects.get(pk=self.item.pk)
+ self.assertEqual(self.item.complete_identifier,
+ '{}-{}'.format(self.item.code_patriarche,
+ self.item.town.numero_insee))
+
+ profile.operation_complete_identifier = \
+ "{year}-{town__numero_insee}"
+ profile.save()
+ self.item.save()
+ self.item = models.Operation.objects.get(pk=self.item.pk)
+ self.assertEqual(self.item.complete_identifier,
+ '{}-{}'.format(self.item.year,
+ self.item.town.numero_insee))
+
def test_associated(self):
scientist = Person.objects.create(name="C-3PO")
self.item.scientist = scientist