summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/forms.py40
-rw-r--r--archaeological_operations/ishtar_menu.py5
-rw-r--r--archaeological_operations/locale/django.pot765
-rw-r--r--archaeological_operations/migrations/0041_auto_20181203_1442.py1117
-rw-r--r--archaeological_operations/models.py113
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html16
-rw-r--r--archaeological_operations/templates/ishtar/sheet_site.html4
-rw-r--r--archaeological_operations/views.py26
-rw-r--r--archaeological_operations/wizards.py2
9 files changed, 1650 insertions, 438 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 4942d9f05..3103990c9 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -479,11 +479,12 @@ class OperationSelect(TableSelect):
'archaeological-operations', 'operation'))
year = forms.IntegerField(label=_("Year"))
operation_code = forms.IntegerField(label=_(u"Numeric reference"))
- if settings.COUNTRY == 'fr':
- code_patriarche = forms.CharField(
+ code_patriarche = forms.CharField(
max_length=500,
widget=OAWidget,
label="Code PATRIARCHE")
+ drassm_code = forms.CharField(
+ label=_(u"DRASSM code"), required=False, max_length=100)
towns = get_town_field()
parcel = forms.CharField(label=_(u"Parcel"))
if settings.ISHTAR_DPTS:
@@ -577,13 +578,16 @@ class OperationSelect(TableSelect):
def __init__(self, *args, **kwargs):
super(OperationSelect, self).__init__(*args, **kwargs)
- if not get_current_profile().warehouse:
+ profile = get_current_profile()
+ if not profile.warehouse:
self.fields.pop('documentation_deadline_before')
self.fields.pop('documentation_deadline_after')
self.fields.pop('documentation_received')
self.fields.pop('finds_deadline_before')
self.fields.pop('finds_deadline_after')
self.fields.pop('finds_received')
+ if not profile.underwater:
+ self.fields.pop('drassm_code')
if settings.ISHTAR_DPTS:
k = 'towns__numero_insee__startswith'
self.fields[k].choices = [
@@ -749,11 +753,12 @@ class OperationFormGeneral(CustomForm, ManageOldType):
'report_processing': models.ReportState
}
pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
- if settings.COUNTRY == 'fr':
- code_patriarche = forms.CharField(label=u"Code PATRIARCHE",
- max_length=500,
- widget=OAWidget,
- required=False)
+ code_patriarche = forms.CharField(label=u"Code PATRIARCHE",
+ max_length=500,
+ widget=OAWidget,
+ required=False)
+ drassm_code = forms.CharField(
+ label=_(u"DRASSM code"), required=False, max_length=100)
operation_type = forms.ChoiceField(label=_(u"Operation type"),
choices=[])
common_name = forms.CharField(label=_(u"Generic name"), required=False,
@@ -873,9 +878,11 @@ class OperationFormGeneral(CustomForm, ManageOldType):
if not profile.files:
for key in self.FILE_FIELDS:
self.remove_field(key)
- if not profile.warehouse:
- for key in self.WAREHOUSE_FIELDS:
- self.remove_field(key)
+ if not profile.warehouse:
+ for key in self.WAREHOUSE_FIELDS:
+ self.remove_field(key)
+ if not profile.underwater:
+ self.fields.pop('drassm_code')
def clean(self):
cleaned_data = self.cleaned_data
@@ -1262,6 +1269,11 @@ class SiteSelect(TableSelect):
locality_cadastral = forms.CharField(
label=_(u"Cadastral locality"), max_length=200,
required=False)
+
+ affmar_number = forms.CharField(
+ label=_(u"AffMar number"), required=False, max_length=100)
+ drassm_number = forms.CharField(
+ label=_(u"DRASSM number"), required=False, max_length=100)
shipwreck_name = forms.CharField(
label=_(u"Shipwreck name"), max_length=200,
required=False)
@@ -1288,6 +1300,8 @@ class SiteSelect(TableSelect):
self.fields.pop('shipwreck_code')
self.fields.pop('sinking_date')
self.fields.pop('discovery_area')
+ self.fields.pop('affmar_number')
+ self.fields.pop('drassm_number')
class SiteFormSelection(IshtarForm):
@@ -1378,6 +1392,10 @@ class SiteUnderwaterForm(CustomForm, ManageOldType):
form_admin_name = _(u"Archaeological site - 030 - Underwater")
form_slug = u"archaeological_site-030-underwater"
+ affmar_number = forms.CharField(
+ label=_(u"AffMar number"), required=False, max_length=100)
+ drassm_number = forms.CharField(
+ label=_(u"DRASSM number"), required=False, max_length=100)
shipwreck_name = forms.CharField(
label=_(u"Shipwreck name"), required=False)
shipwreck_code = forms.CharField(
diff --git a/archaeological_operations/ishtar_menu.py b/archaeological_operations/ishtar_menu.py
index 4baf14295..bfc027573 100644
--- a/archaeological_operations/ishtar_menu.py
+++ b/archaeological_operations/ishtar_menu.py
@@ -82,11 +82,6 @@ MENU_SECTIONS = [
_(u"Deletion"),
model=models.AdministrativeAct,
access_controls=['change_administrativeact']),
- MenuItem(
- 'operation_administrativeact_document',
- _(u"Documents"),
- model=models.AdministrativeAct,
- access_controls=['change_administrativeact']),
],),
]),
),
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index 83373847b..2c2124db3 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -9,21 +9,21 @@
msgid ""
msgstr ""
-#: admin.py:91 models.py:244 models.py:836
+#: admin.py:91 models.py:263 models.py:880
msgid "Point"
msgstr ""
-#: admin.py:93 models.py:245 models.py:837
+#: admin.py:93 models.py:264 models.py:881
msgid "Multi polygon"
msgstr ""
-#: forms.py:64 forms.py:1061 forms.py:1077 forms.py:1083 models.py:1931
+#: forms.py:64 forms.py:1068 forms.py:1084 forms.py:1090 models.py:2014
#: templates/ishtar/blocks/window_tables/parcels.html:9
-#: templates/ishtar/sheet_operation.html:250
+#: templates/ishtar/sheet_operation.html:257
msgid "Parcels"
msgstr ""
-#: forms.py:67 forms.py:200 forms.py:1036 models.py:1915
+#: forms.py:67 forms.py:200 forms.py:1043 models.py:1998
#: templates/ishtar/blocks/window_tables/parcels.html:6
#: templates/ishtar/dashboards/dashboard_operation.html:432
#: templates/ishtar/dashboards/dashboard_operation.html:446
@@ -32,22 +32,22 @@ msgstr ""
msgid "Town"
msgstr ""
-#: forms.py:69 forms.py:480 forms.py:763 forms.py:1400 models.py:734
-#: models.py:1489 models.py:1696 models.py:1913
+#: forms.py:69 forms.py:480 forms.py:768 forms.py:1426 models.py:774
+#: models.py:1562 models.py:1769 models.py:1996
#: templates/ishtar/blocks/window_tables/parcels.html:7
msgid "Year"
msgstr ""
-#: forms.py:72 models.py:1916
+#: forms.py:72 models.py:1999
#: templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Section"
msgstr ""
-#: forms.py:75 models.py:1918
+#: forms.py:75 models.py:2001
msgid "Parcel number"
msgstr ""
-#: forms.py:77 models.py:1920 models.py:1939 models.py:2000
+#: forms.py:77 models.py:2003 models.py:2022 models.py:2083
msgid "Public domain"
msgstr ""
@@ -83,8 +83,8 @@ msgstr ""
msgid "Relation type"
msgstr ""
-#: forms.py:373 forms.py:1254 ishtar_menu.py:32 models.py:842 models.py:1394
-#: models.py:1405 models.py:1491 models.py:1678 models.py:1912
+#: forms.py:373 forms.py:1261 ishtar_menu.py:32 models.py:886 models.py:1466
+#: models.py:1477 models.py:1564 models.py:1751 models.py:1995
#: templates/ishtar/sheet_operation.html:4 wizards.py:320 wizards.py:331
msgid "Operation"
msgstr ""
@@ -93,7 +93,7 @@ msgstr ""
msgid ":"
msgstr ""
-#: forms.py:404 forms.py:608
+#: forms.py:404 forms.py:612
msgid "You should select an operation."
msgstr ""
@@ -113,7 +113,7 @@ msgstr ""
msgid "Deleted relations"
msgstr ""
-#: forms.py:469 templates/ishtar/sheet_operation.html:169
+#: forms.py:469 templates/ishtar/sheet_operation.html:170
msgid "Relations"
msgstr ""
@@ -121,19 +121,23 @@ msgstr ""
msgid "Operation - 080 - Relations"
msgstr ""
-#: forms.py:478 forms.py:1237 forms.py:1396
+#: forms.py:478 forms.py:1244 forms.py:1422
msgid "Full text search"
msgstr ""
-#: forms.py:481 models.py:735
+#: forms.py:481 models.py:775
msgid "Numeric reference"
msgstr ""
-#: forms.py:488 forms.py:1064 forms.py:1412 models.py:1930 models.py:2142
+#: forms.py:487 forms.py:761 models.py:870
+msgid "DRASSM code"
+msgstr ""
+
+#: forms.py:489 forms.py:1071 forms.py:1438 models.py:2013 models.py:2225
msgid "Parcel"
msgstr ""
-#: forms.py:491 forms.py:1415 models.py:1395
+#: forms.py:492 forms.py:1441 models.py:1467
#: templates/ishtar/dashboards/dashboard_operation.html:390
#: templates/ishtar/dashboards/dashboard_operation.html:411
#: templates/ishtar/dashboards/dashboard_operation.html:643
@@ -142,558 +146,566 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:492 forms.py:1148 forms.py:1241 forms.py:1325 models.py:213
+#: forms.py:493 forms.py:1155 forms.py:1248 forms.py:1340 models.py:224
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
#: templates/ishtar/sheet_operation.html:29
msgid "Name"
msgstr ""
-#: forms.py:493 forms.py:761 models.py:797
+#: forms.py:494 forms.py:766 models.py:838
msgid "Address / Locality"
msgstr ""
-#: forms.py:494 forms.py:678 forms.py:757 models.py:742
+#: forms.py:495 forms.py:682 forms.py:762 models.py:782
msgid "Operation type"
msgstr ""
-#: forms.py:495
+#: forms.py:496
msgid "Is open?"
msgstr ""
-#: forms.py:503 forms.py:793 models.py:727
+#: forms.py:504 forms.py:798 models.py:767
msgid "In charge"
msgstr ""
-#: forms.py:510 models.py:1672
+#: forms.py:511 models.py:1745
msgid "Scientist in charge"
msgstr ""
-#: forms.py:512 forms.py:680 forms.py:783 models.py:725
+#: forms.py:513 forms.py:684 forms.py:788 models.py:765
msgid "Operator"
msgstr ""
-#: forms.py:521 forms.py:1153 forms.py:1243 forms.py:1330 models.py:217
-#: models.py:744
+#: forms.py:522 forms.py:1160 forms.py:1250 forms.py:1345 models.py:228
+#: models.py:784
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9
msgid "Remains"
msgstr ""
-#: forms.py:522 forms.py:1131 forms.py:1150 forms.py:1242 forms.py:1327
-#: models.py:215 models.py:750
+#: forms.py:523 forms.py:1138 forms.py:1157 forms.py:1249 forms.py:1342
+#: models.py:226 models.py:790
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8
msgid "Periods"
msgstr ""
-#: forms.py:523
+#: forms.py:524
msgid "Started before"
msgstr ""
-#: forms.py:524
+#: forms.py:525
msgid "Started after"
msgstr ""
-#: forms.py:525
+#: forms.py:526
msgid "Ended before"
msgstr ""
-#: forms.py:526
+#: forms.py:527
msgid "Ended after"
msgstr ""
-#: forms.py:528
+#: forms.py:529
msgid "Search within relations"
msgstr ""
-#: forms.py:529 forms.py:841 forms.py:1245 forms.py:1340 models.py:221
-#: models.py:798
+#: forms.py:530 forms.py:846 forms.py:1252 forms.py:1357 models.py:232
+#: models.py:839
msgid "Comment"
msgstr ""
-#: forms.py:530
+#: forms.py:531
msgid "Abstract (full text search)"
msgstr ""
-#: forms.py:532 forms.py:844 models.py:800
+#: forms.py:533 forms.py:849 models.py:841
msgid "Comment about scientific documentation"
msgstr ""
-#: forms.py:533 forms.py:846 models.py:815
+#: forms.py:534 forms.py:851 models.py:856
msgid "Record quality"
msgstr ""
-#: forms.py:534 forms.py:812 models.py:762
+#: forms.py:535 forms.py:817 models.py:802
msgid "Report processing"
msgstr ""
-#: forms.py:536 forms.py:849 models.py:810
+#: forms.py:537 forms.py:854 models.py:851
msgid "Virtual operation"
msgstr ""
-#: forms.py:538 forms.py:1188 forms.py:1192 models.py:257
+#: forms.py:539 forms.py:1195 forms.py:1199 models.py:276
msgid "Archaeological site"
msgstr ""
-#: forms.py:544 forms.py:1419
+#: forms.py:545 forms.py:1445
msgid "Created by"
msgstr ""
-#: forms.py:550 forms.py:1425
+#: forms.py:551 forms.py:1451
msgid "Modified by"
msgstr ""
-#: forms.py:557 forms.py:834 models.py:822
+#: forms.py:558 forms.py:839 models.py:863
msgid "Documentation received"
msgstr ""
-#: forms.py:559
+#: forms.py:560
msgid "Documentation deadline before"
msgstr ""
-#: forms.py:561
+#: forms.py:562
msgid "Documentation deadline after"
msgstr ""
-#: forms.py:563 forms.py:839 models.py:826
+#: forms.py:564 forms.py:844 models.py:867
msgid "Finds received"
msgstr ""
-#: forms.py:565
+#: forms.py:566
msgid "Finds deadline before"
msgstr ""
-#: forms.py:567
+#: forms.py:568
msgid "Finds deadline after"
msgstr ""
-#: forms.py:595 views.py:182
+#: forms.py:599 views.py:183
msgid "Operation search"
msgstr ""
-#: forms.py:639
+#: forms.py:643
msgid "Associated file"
msgstr ""
-#: forms.py:643 forms.py:937 models.py:1023 models.py:1404 models.py:1490
-#: models.py:1683 wizards.py:83
+#: forms.py:647 forms.py:944 models.py:1083 models.py:1476 models.py:1563
+#: models.py:1756 wizards.py:83
msgid "Archaeological file"
msgstr ""
-#: forms.py:650 forms.py:654 models.py:817
+#: forms.py:654 forms.py:658 models.py:858
msgid "Abstract"
msgstr ""
-#: forms.py:651
+#: forms.py:655
msgid "Operation - 090 - Abstract"
msgstr ""
-#: forms.py:658
+#: forms.py:662
msgid "months"
msgstr ""
-#: forms.py:658
+#: forms.py:662
msgid "years"
msgstr ""
-#: forms.py:660 models.py:711
+#: forms.py:664 models.py:751
msgid "Creation date"
msgstr ""
-#: forms.py:661
+#: forms.py:665
msgid "Start of field work"
msgstr ""
-#: forms.py:663
+#: forms.py:667
msgid "All"
msgstr ""
-#: forms.py:664
+#: forms.py:668
msgid "Preventive"
msgstr ""
-#: forms.py:665
+#: forms.py:669
msgid "Research"
msgstr ""
-#: forms.py:669
+#: forms.py:673
msgid "Slicing"
msgstr ""
-#: forms.py:672
+#: forms.py:676
msgid "Department detail"
msgstr ""
-#: forms.py:674
+#: forms.py:678
msgid "Date get from"
msgstr ""
-#: forms.py:676
+#: forms.py:680
msgid "Preventive/Research"
msgstr ""
-#: forms.py:682
+#: forms.py:686
msgid "Date after"
msgstr ""
-#: forms.py:683
+#: forms.py:687
msgid "Date before"
msgstr ""
-#: forms.py:684
+#: forms.py:688
msgid "With reports"
msgstr ""
-#: forms.py:685
+#: forms.py:689
msgid "With finds"
msgstr ""
-#: forms.py:737 forms.py:1317 forms.py:1466
+#: forms.py:741 forms.py:1331 forms.py:1492
#: templates/ishtar/sheet_administrativeact.html:23
#: templates/ishtar/sheet_operation.html:12 templates/ishtar/sheet_site.html:33
msgid "General"
msgstr ""
-#: forms.py:738
+#: forms.py:742
msgid "Operation - 010 - General"
msgstr ""
-#: forms.py:759 models.py:796
+#: forms.py:764 models.py:837
msgid "Generic name"
msgstr ""
-#: forms.py:768 models.py:764
+#: forms.py:773 models.py:804
msgid "Old code"
msgstr ""
-#: forms.py:771
+#: forms.py:776
msgid "Head scientist"
msgstr ""
-#: forms.py:790 models.py:795
+#: forms.py:795 models.py:836
msgid "Operator reference"
msgstr ""
-#: forms.py:804
+#: forms.py:809
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:807 models.py:57 models.py:714 models.py:2144
+#: forms.py:812 models.py:57 models.py:754 models.py:2227
msgid "Start date"
msgstr ""
-#: forms.py:808 models.py:716
+#: forms.py:813 models.py:756
msgid "Excavation end date"
msgstr ""
-#: forms.py:810 models.py:717
+#: forms.py:815 models.py:757
msgid "Report delivery date"
msgstr ""
-#: forms.py:831 models.py:819
+#: forms.py:836 models.py:860
msgid "Deadline for submission of the documentation"
msgstr ""
-#: forms.py:836 models.py:824
+#: forms.py:841 models.py:865
msgid "Deadline for submission of the finds"
msgstr ""
-#: forms.py:888
+#: forms.py:895
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
-#: forms.py:893
+#: forms.py:900
msgid "The excavation end date cannot be before the start date."
msgstr ""
-#: forms.py:923
+#: forms.py:930
#, python-format
msgid ""
"Operation code already exists for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:927
+#: forms.py:934
msgid "Bad operation code"
msgstr ""
-#: forms.py:933 models.py:1038
+#: forms.py:940 models.py:1098
msgid "Operation code"
msgstr ""
-#: forms.py:968 templates/ishtar/sheet_operation.html:149
+#: forms.py:975 templates/ishtar/sheet_operation.html:150
msgid "Court-ordered seizure"
msgstr ""
-#: forms.py:969
+#: forms.py:976
msgid "Operation - 015 - Court-ordered seizure"
msgstr ""
-#: forms.py:973 models.py:829
+#: forms.py:980 models.py:873
msgid "Seizure name"
msgstr ""
-#: forms.py:976 models.py:830
+#: forms.py:983 models.py:874
msgid "Official report number"
msgstr ""
-#: forms.py:979 models.py:832
+#: forms.py:986 models.py:876
msgid "Name of the protagonist"
msgstr ""
-#: forms.py:984 forms.py:991 models.py:731
+#: forms.py:991 forms.py:998 forms.py:1356 models.py:243 models.py:771
msgid "Collaborators"
msgstr ""
-#: forms.py:985
+#: forms.py:992
msgid "Operation - 020 - Collaborators"
msgstr ""
-#: forms.py:1000
+#: forms.py:1007
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:1001
+#: forms.py:1008
msgid "Operation - 033 - Preventive - Excavation"
msgstr ""
-#: forms.py:1004 models.py:748
+#: forms.py:1011 models.py:788
#: templates/ishtar/dashboards/dashboard_operation.html:701
msgid "Cost (euros)"
msgstr ""
-#: forms.py:1005 models.py:753
+#: forms.py:1012 models.py:793
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:1007 models.py:756
+#: forms.py:1014 models.py:796
msgid "Optional man-days"
msgstr ""
-#: forms.py:1009 models.py:759
+#: forms.py:1016 models.py:799
msgid "Effective man-days"
msgstr ""
-#: forms.py:1019
+#: forms.py:1026
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:1020
+#: forms.py:1027
msgid "Operation - 037 - Preventive - Diagnostic"
msgstr ""
-#: forms.py:1025 models.py:779
+#: forms.py:1032 models.py:819
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:1027 models.py:782
+#: forms.py:1034 models.py:822
msgid "Prescription on large area"
msgstr ""
-#: forms.py:1030 models.py:784
+#: forms.py:1037 models.py:824
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:1034 forms.py:1050 forms.py:1055 forms.py:1359 models.py:128
-#: models.py:219 models.py:506 models.py:746 models.py:1706
+#: forms.py:1041 forms.py:1057 forms.py:1062 forms.py:1381 models.py:131
+#: models.py:230 models.py:541 models.py:786 models.py:1779
msgid "Towns"
msgstr ""
-#: forms.py:1051
+#: forms.py:1058
msgid "Operation - 040 - Towns"
msgstr ""
-#: forms.py:1056
+#: forms.py:1063
msgid "Operation - 040 - Towns (2)"
msgstr ""
-#: forms.py:1078
+#: forms.py:1085
msgid "Operation - 050 - Parcels"
msgstr ""
-#: forms.py:1085
+#: forms.py:1092
msgid "Operation - 050 - Parcels (2)"
msgstr ""
-#: forms.py:1115 models.py:47
+#: forms.py:1122 models.py:47
msgid "Remain types"
msgstr ""
-#: forms.py:1116
+#: forms.py:1123
msgid "Operation - 060 - Remains"
msgstr ""
-#: forms.py:1122 models.py:46
+#: forms.py:1129 models.py:46
msgid "Remain type"
msgstr ""
-#: forms.py:1132
+#: forms.py:1139
msgid "Operation - 070 - Periods"
msgstr ""
-#: forms.py:1138 templates/ishtar/sheet_operation.html:273
-#: templates/ishtar/sheet_operation.html:310
+#: forms.py:1145 templates/ishtar/sheet_operation.html:280
+#: templates/ishtar/sheet_operation.html:317
msgid "Period"
msgstr ""
-#: forms.py:1147 forms.py:1239 forms.py:1324 models.py:212
+#: forms.py:1154 forms.py:1246 forms.py:1339 models.py:223
msgid "Reference"
msgstr ""
-#: forms.py:1171 forms.py:1353
+#: forms.py:1178 forms.py:1375
msgid "This reference already exists."
msgstr ""
-#: forms.py:1203 models.py:258 models.py:807
-#: templates/ishtar/sheet_operation.html:194
+#: forms.py:1210 models.py:277 models.py:848
+#: templates/ishtar/sheet_operation.html:195
msgid "Archaeological sites"
msgstr ""
-#: forms.py:1205
+#: forms.py:1212
msgid "Operation - 030 - Archaeological sites"
msgstr ""
-#: forms.py:1210
+#: forms.py:1217
msgid "Associated archaeological sites"
msgstr ""
-#: forms.py:1216 ishtar_menu.py:36 ishtar_menu.py:66 ishtar_menu.py:113
+#: forms.py:1223 ishtar_menu.py:36 ishtar_menu.py:66 ishtar_menu.py:108
msgid "Search"
msgstr ""
-#: forms.py:1221
+#: forms.py:1228
msgid "Would you like to close this operation?"
msgstr ""
-#: forms.py:1226
+#: forms.py:1233
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:1248 models.py:223
+#: forms.py:1255 models.py:234
msgid "Top operation"
msgstr ""
-#: forms.py:1260 forms.py:1333 models.py:226
+#: forms.py:1267 forms.py:1348 models.py:237
msgid "National Geographic Institute locality"
msgstr ""
-#: forms.py:1263 forms.py:1337 models.py:229
+#: forms.py:1270 forms.py:1352 models.py:240
msgid "Cadastral locality"
msgstr ""
-#: forms.py:1266 forms.py:1374 models.py:233
+#: forms.py:1274 forms.py:1396 models.py:257
+msgid "AffMar number"
+msgstr ""
+
+#: forms.py:1276 forms.py:1398 models.py:259
+msgid "DRASSM number"
+msgstr ""
+
+#: forms.py:1278 forms.py:1400 models.py:248
msgid "Shipwreck name"
msgstr ""
-#: forms.py:1269 forms.py:1382 models.py:235
+#: forms.py:1281 forms.py:1408 models.py:250
msgid "Oceanographic service localisation"
msgstr ""
-#: forms.py:1272 forms.py:1376 models.py:237
+#: forms.py:1284 forms.py:1402 models.py:252
msgid "Shipwreck code"
msgstr ""
-#: forms.py:1274 forms.py:1378 models.py:239
+#: forms.py:1286 forms.py:1404 models.py:254
msgid "Sinking date"
msgstr ""
-#: forms.py:1276 forms.py:1380 models.py:241
+#: forms.py:1288 forms.py:1406 models.py:256
msgid "Discovery area"
msgstr ""
-#: forms.py:1312
+#: forms.py:1326
msgid "You should select an item."
msgstr ""
-#: forms.py:1318
+#: forms.py:1332
msgid "Archaeological site - 010 - General"
msgstr ""
-#: forms.py:1360
+#: forms.py:1382
msgid "Archaeological site - 020 - Towns"
msgstr ""
-#: forms.py:1369 templates/ishtar/sheet_site.html:52
+#: forms.py:1391 templates/ishtar/sheet_site.html:53
msgid "Underwater"
msgstr ""
-#: forms.py:1370
+#: forms.py:1392
msgid "Archaeological site - 030 - Underwater"
msgstr ""
-#: forms.py:1401 forms.py:1535 models.py:1663
+#: forms.py:1427 forms.py:1561 models.py:1736
msgid "Index"
msgstr ""
-#: forms.py:1409 forms.py:1469 models.py:1418 models.py:1657
+#: forms.py:1435 forms.py:1495 models.py:1490 models.py:1730
msgid "Act type"
msgstr ""
-#: forms.py:1410 forms.py:1605
+#: forms.py:1436 forms.py:1631
msgid "Indexed?"
msgstr ""
-#: forms.py:1416 forms.py:1474 models.py:1697
+#: forms.py:1442 forms.py:1500 models.py:1770
#: templates/ishtar/blocks/window_tables/administrativacts.html:9
msgid "Object"
msgstr ""
-#: forms.py:1446 views.py:412
+#: forms.py:1472 views.py:413
msgid "Administrative act search"
msgstr ""
-#: forms.py:1461 forms.py:1563 forms.py:1630
+#: forms.py:1487 forms.py:1589 forms.py:1656
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1477 models.py:1694
+#: forms.py:1503 models.py:1767
msgid "Signature date"
msgstr ""
-#: forms.py:1489
+#: forms.py:1515
msgid "Operation - Administrative act - General"
msgstr ""
-#: forms.py:1523
+#: forms.py:1549
#, python-format
msgid ""
"This index already exists for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:1527
+#: forms.py:1553
msgid "Bad index"
msgstr ""
-#: forms.py:1540
+#: forms.py:1566
msgid "Would you like to delete this administrative act?"
msgstr ""
-#: forms.py:1545
+#: forms.py:1571
msgid "Template"
msgstr ""
-#: forms.py:1569 forms.py:1573
+#: forms.py:1595 forms.py:1599
msgid "This document is not intended for this type of act."
msgstr ""
-#: forms.py:1591
+#: forms.py:1617
msgid "Doc generation"
msgstr ""
-#: forms.py:1593
+#: forms.py:1619
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1614 ishtar_menu.py:101 views.py:465
+#: forms.py:1640 ishtar_menu.py:96 views.py:466
msgctxt "admin act register"
msgid "Register"
msgstr ""
-#: ishtar_menu.py:41 ishtar_menu.py:72 ishtar_menu.py:118
+#: ishtar_menu.py:41 ishtar_menu.py:72 ishtar_menu.py:113
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:46 ishtar_menu.py:77 ishtar_menu.py:123
+#: ishtar_menu.py:46 ishtar_menu.py:77 ishtar_menu.py:118
msgid "Modification"
msgstr ""
@@ -701,42 +713,38 @@ msgstr ""
msgid "Closing"
msgstr ""
-#: ishtar_menu.py:55 ishtar_menu.py:82 ishtar_menu.py:128
+#: ishtar_menu.py:55 ishtar_menu.py:82 ishtar_menu.py:123
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:61 models.py:1713
+#: ishtar_menu.py:61 models.py:1786
#: templates/ishtar/sheet_administrativeact.html:4
msgid "Administrative act"
msgstr ""
-#: ishtar_menu.py:87 models.py:249 models.py:802
-msgid "Documents"
-msgstr ""
-
-#: ishtar_menu.py:95
+#: ishtar_menu.py:90
msgid "Administrative Act"
msgstr ""
-#: ishtar_menu.py:135
+#: ishtar_menu.py:130
msgid "Dashboard"
msgstr ""
-#: ishtar_menu.py:139
+#: ishtar_menu.py:134
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:143 models.py:843
+#: ishtar_menu.py:138 models.py:887
#: templates/ishtar/dashboards/dashboard_operation.html:8
-#: templates/ishtar/sheet_site.html:65
+#: templates/ishtar/sheet_site.html:68
msgid "Operations"
msgstr ""
-#: models.py:56 models.py:76 models.py:94 models.py:2622
+#: models.py:56 models.py:76 models.py:94 models.py:2705
msgid "Order"
msgstr ""
-#: models.py:58 models.py:2145
+#: models.py:58 models.py:2228
msgid "End date"
msgstr ""
@@ -768,665 +776,692 @@ msgstr ""
msgid "Types of record quality"
msgstr ""
-#: models.py:135
+#: models.py:138
msgctxt "key for text search"
msgid "reference"
msgstr ""
-#: models.py:139 models.py:569
+#: models.py:142 models.py:605
msgctxt "key for text search"
msgid "name"
msgstr ""
-#: models.py:143 models.py:601 tests.py:1625
+#: models.py:146 models.py:637 tests.py:1625
msgctxt "key for text search"
msgid "period"
msgstr ""
-#: models.py:147 models.py:597 tests.py:1656
+#: models.py:150 models.py:633 tests.py:1656
msgctxt "key for text search"
msgid "remain"
msgstr ""
-#: models.py:151 models.py:557 tests.py:1633
+#: models.py:154 models.py:593 tests.py:1633
msgctxt "key for text search"
msgid "town"
msgstr ""
-#: models.py:155 models.py:625
+#: models.py:158 models.py:661
msgctxt "key for text search"
msgid "comment"
msgstr ""
-#: models.py:159
+#: models.py:162
msgctxt "key for text search"
msgid "locality-ngi"
msgstr ""
-#: models.py:163
+#: models.py:166
msgctxt "key for text search"
msgid "locality-cadastral"
msgstr ""
-#: models.py:167
+#: models.py:170
msgctxt "key for text search"
msgid "shipwreck-name"
msgstr ""
-#: models.py:172
+#: models.py:175
msgctxt "key for text search"
msgid "oceanographic-service-localisation"
msgstr ""
-#: models.py:176
+#: models.py:179
msgctxt "key for text search"
msgid "shipwreck-code"
msgstr ""
-#: models.py:180
+#: models.py:183
msgctxt "key for text search"
msgid "sinking-date"
msgstr ""
-#: models.py:184
+#: models.py:187
msgctxt "key for text search"
msgid "discovery-area"
msgstr ""
-#: models.py:188 models.py:203
+#: models.py:191 models.py:214
msgctxt "key for text search"
msgid "operation"
msgstr ""
-#: models.py:192
+#: models.py:195
msgctxt "key for text search"
msgid "top-operation"
msgstr ""
-#: models.py:251 models.py:804 models.py:1926
+#: models.py:199
+msgctxt "key for text search"
+msgid "numero-drassm"
+msgstr ""
+
+#: models.py:203
+msgctxt "key for text search"
+msgid "numero-affmar"
+msgstr ""
+
+#: models.py:268 models.py:843
+msgid "Documents"
+msgstr ""
+
+#: models.py:270 models.py:845 models.py:2009
msgid "Cached name"
msgstr ""
-#: models.py:280
+#: models.py:299
msgid "SITE"
msgstr ""
-#: models.py:345
+#: models.py:380
msgid "Unknown"
msgstr ""
-#: models.py:348
+#: models.py:383
msgid "Virtual operation of site: {}"
msgstr ""
-#: models.py:488
+#: models.py:523
msgid "Associated file (label)"
msgstr ""
-#: models.py:489
+#: models.py:524
msgid "Operator name"
msgstr ""
-#: models.py:490
+#: models.py:525
msgid "Scientist (full name)"
msgstr ""
-#: models.py:491
+#: models.py:526
msgid "Associated file (external ID)"
msgstr ""
-#: models.py:492
+#: models.py:527
msgid "Scientist (title)"
msgstr ""
-#: models.py:493
+#: models.py:528
msgid "Scientist (surname)"
msgstr ""
-#: models.py:494
+#: models.py:529
msgid "Scientist (name)"
msgstr ""
-#: models.py:495
+#: models.py:530
msgid "Scientist - Organization (name)"
msgstr ""
-#: models.py:496
+#: models.py:531
msgid "In charge (title)"
msgstr ""
-#: models.py:497
+#: models.py:532
msgid "In charge (surname)"
msgstr ""
-#: models.py:498
+#: models.py:533
msgid "In charge (name)"
msgstr ""
-#: models.py:499
+#: models.py:534
msgid "In charge - Organization (name)"
msgstr ""
-#: models.py:504
+#: models.py:539
msgid "Archaeological sites (reference)"
msgstr ""
-#: models.py:545 models.py:1502 tests.py:1628 tests.py:1673
+#: models.py:581 models.py:1575 tests.py:1628 tests.py:1673
msgctxt "key for text search"
msgid "year"
msgstr ""
-#: models.py:549
+#: models.py:585
msgctxt "key for text search"
msgid "operation-code"
msgstr ""
-#: models.py:553 models.py:1514
+#: models.py:589 models.py:1587
msgctxt "key for text search"
msgid "patriarche"
msgstr ""
-#: models.py:561 models.py:1534
+#: models.py:597 models.py:1607
msgctxt "key for text search"
msgid "parcel"
msgstr ""
-#: models.py:565
+#: models.py:601
msgctxt "key for text search"
msgid "department"
msgstr ""
-#: models.py:573
+#: models.py:609
msgctxt "key for text search"
msgid "address"
msgstr ""
-#: models.py:577 models.py:1518
+#: models.py:613 models.py:1591
msgctxt "key for text search"
msgid "type"
msgstr ""
-#: models.py:581 tests.py:1661
+#: models.py:617 tests.py:1661
msgctxt "key for text search"
msgid "is-open"
msgstr ""
-#: models.py:585
+#: models.py:621
msgctxt "key for text search"
msgid "in-charge"
msgstr ""
-#: models.py:589
+#: models.py:625
msgctxt "key for text search"
msgid "scientist"
msgstr ""
-#: models.py:593
+#: models.py:629
msgctxt "key for text search"
msgid "operator"
msgstr ""
-#: models.py:605
+#: models.py:641
msgctxt "key for text search"
msgid "start-before"
msgstr ""
-#: models.py:609
+#: models.py:645
msgctxt "key for text search"
msgid "start-after"
msgstr ""
-#: models.py:613
+#: models.py:649
msgctxt "key for text search"
msgid "end-before"
msgstr ""
-#: models.py:617
+#: models.py:653
msgctxt "key for text search"
msgid "end-after"
msgstr ""
-#: models.py:621
+#: models.py:657
msgctxt "key for text search"
msgid "relation-types"
msgstr ""
-#: models.py:629
+#: models.py:665
msgctxt "key for text search"
msgid "abstract"
msgstr ""
-#: models.py:634
+#: models.py:670
msgctxt "key for text search"
msgid "scientific-documentation-comment"
msgstr ""
-#: models.py:638
+#: models.py:674
msgctxt "key for text search"
msgid "record-quality"
msgstr ""
-#: models.py:643
+#: models.py:679
msgctxt "key for text search"
msgid "report-processing"
msgstr ""
-#: models.py:648
+#: models.py:684
msgctxt "key for text search"
msgid "virtual-operation"
msgstr ""
-#: models.py:653 models.py:696
+#: models.py:689 models.py:736
msgctxt "key for text search"
msgid "site"
msgstr ""
-#: models.py:657 models.py:1552
+#: models.py:693 models.py:1625
msgctxt "key for text search"
msgid "created-by"
msgstr ""
-#: models.py:661 models.py:1556
+#: models.py:697 models.py:1629
msgctxt "key for text search"
msgid "modified-by"
msgstr ""
-#: models.py:665
+#: models.py:701
msgctxt "key for text search"
msgid "documentation-received"
msgstr ""
-#: models.py:669
+#: models.py:705
msgctxt "key for text search"
msgid "documentation-deadline-before"
msgstr ""
-#: models.py:673
+#: models.py:709
msgctxt "key for text search"
msgid "documentation-deadline-after"
msgstr ""
-#: models.py:677
+#: models.py:713
msgctxt "key for text search"
msgid "finds-received"
msgstr ""
-#: models.py:681
+#: models.py:717
msgctxt "key for text search"
msgid "finds-deadline-before"
msgstr ""
-#: models.py:685
+#: models.py:721
msgctxt "key for text search"
msgid "finds-deadline-after"
msgstr ""
-#: models.py:698
+#: models.py:725
+msgctxt "key for text search"
+msgid "code-drassm"
+msgstr ""
+
+#: models.py:738
msgctxt "key for text search"
msgid "file"
msgstr ""
-#: models.py:713 templates/ishtar/sheet_operation.html:60
+#: models.py:753 templates/ishtar/sheet_operation.html:61
msgid "Closing date"
msgstr ""
-#: models.py:720
+#: models.py:760
msgid "In charge scientist"
msgstr ""
-#: models.py:739 models.py:1908
+#: models.py:779 models.py:1991
msgid "File"
msgstr ""
-#: models.py:743
+#: models.py:783
msgid "Surface (m2)"
msgstr ""
-#: models.py:812
+#: models.py:853
msgid ""
"If checked, it means that this operation have not been officialy registered."
msgstr ""
-#: models.py:891
+#: models.py:935
msgid "OPE"
msgstr ""
-#: models.py:988
+#: models.py:1032
msgid "Intercommunal"
msgstr ""
-#: models.py:1024
+#: models.py:1078
+msgid "Add context record"
+msgstr ""
+
+#: models.py:1079
+msgid "context record"
+msgstr ""
+
+#: models.py:1084
msgid "Code patriarche"
msgstr ""
-#: models.py:1066
+#: models.py:1126
msgid "This operation code already exists for this year"
msgstr ""
-#: models.py:1111
+#: models.py:1183
msgid "Number of parcels"
msgstr ""
-#: models.py:1121
+#: models.py:1193
msgid "Number of administrative acts"
msgstr ""
-#: models.py:1129
+#: models.py:1201
msgid "Number of indexed administrative acts"
msgstr ""
-#: models.py:1137
+#: models.py:1209
msgid "Number of context records"
msgstr ""
-#: models.py:1173
+#: models.py:1245
msgid "Number of finds"
msgstr ""
-#: models.py:1218
+#: models.py:1290
msgid "No type"
msgstr ""
-#: models.py:1249
+#: models.py:1321
msgid "Number of sources"
msgstr ""
-#: models.py:1287 templates/ishtar/dashboards/dashboard_operation.html:309
+#: models.py:1359 templates/ishtar/dashboards/dashboard_operation.html:309
#: templates/ishtar/dashboards/dashboard_operation.html:575
#: templates/ishtar/dashboards/dashboard_operation.html:611
msgid "Mean"
msgstr ""
-#: models.py:1349
+#: models.py:1421
msgid "Operation relation type"
msgstr ""
-#: models.py:1350
+#: models.py:1422
msgid "Operation relation types"
msgstr ""
-#: models.py:1363
+#: models.py:1435
msgid "Operation record relation"
msgstr ""
-#: models.py:1364
+#: models.py:1436
msgid "Operation record relations"
msgstr ""
-#: models.py:1406 models.py:1688
+#: models.py:1478 models.py:1761
msgid "Treatment request"
msgstr ""
-#: models.py:1407 models.py:1693
+#: models.py:1479 models.py:1766
msgid "Treatment"
msgstr ""
-#: models.py:1409
+#: models.py:1481
msgid "Intended to"
msgstr ""
-#: models.py:1411
+#: models.py:1483
msgid "Code"
msgstr ""
-#: models.py:1414
+#: models.py:1486
msgid "Associated template"
msgstr ""
-#: models.py:1415
+#: models.py:1487
msgid "Indexed"
msgstr ""
-#: models.py:1419
+#: models.py:1491
msgid "Act types"
msgstr ""
-#: models.py:1489 models.py:1734
+#: models.py:1562 models.py:1807
#: templates/ishtar/blocks/window_tables/administrativacts.html:6
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:6
msgid "Ref."
msgstr ""
-#: models.py:1506
+#: models.py:1579
msgctxt "key for text search"
msgid "index"
msgstr ""
-#: models.py:1510
+#: models.py:1583
msgctxt "key for text search"
msgid "other-ref"
msgstr ""
-#: models.py:1522
+#: models.py:1595
msgctxt "key for text search"
msgid "indexed"
msgstr ""
-#: models.py:1526
+#: models.py:1599
msgctxt "key for text search"
msgid "operation-town"
msgstr ""
-#: models.py:1530
+#: models.py:1603
msgctxt "key for text search"
msgid "file-town"
msgstr ""
-#: models.py:1540
+#: models.py:1613
msgctxt "key for text search"
msgid "operation-department"
msgstr ""
-#: models.py:1544
+#: models.py:1617
msgctxt "key for text search"
msgid "file-department"
msgstr ""
-#: models.py:1548
+#: models.py:1621
msgctxt "key for text search"
msgid "object"
msgstr ""
-#: models.py:1560
+#: models.py:1633
msgctxt "key for text search"
msgid "signature-before"
msgstr ""
-#: models.py:1564
+#: models.py:1637
msgctxt "key for text search"
msgid "signature-after"
msgstr ""
-#: models.py:1568
+#: models.py:1641
msgctxt "key for text search"
msgid "file-name"
msgstr ""
-#: models.py:1572
+#: models.py:1645
msgctxt "key for text search"
msgid "general-contractor"
msgstr ""
-#: models.py:1577
+#: models.py:1650
msgctxt "key for text search"
msgid "general-contractor-organization"
msgstr ""
-#: models.py:1582
+#: models.py:1655
msgctxt "key for text search"
msgid "file-reference"
msgstr ""
-#: models.py:1586
+#: models.py:1659
msgctxt "key for text search"
msgid "file-year"
msgstr ""
-#: models.py:1590
+#: models.py:1663
msgctxt "key for text search"
msgid "file-other-reference"
msgstr ""
-#: models.py:1594
+#: models.py:1667
msgctxt "key for text search"
msgid "file-in-charge"
msgstr ""
-#: models.py:1598
+#: models.py:1671
msgctxt "key for text search"
msgid "file-permit-reference"
msgstr ""
-#: models.py:1602
+#: models.py:1675
msgctxt "key for text search"
msgid "treatment-name"
msgstr ""
-#: models.py:1606
+#: models.py:1679
msgctxt "key for text search"
msgid "treatment-reference"
msgstr ""
-#: models.py:1610
+#: models.py:1683
msgctxt "key for text search"
msgid "treatment-year"
msgstr ""
-#: models.py:1614
+#: models.py:1687
msgctxt "key for text search"
msgid "treatment-index"
msgstr ""
-#: models.py:1618
+#: models.py:1691
msgctxt "key for text search"
msgid "treatment-type"
msgstr ""
-#: models.py:1622
+#: models.py:1695
msgctxt "key for text search"
msgid "treatment-file-name"
msgstr ""
-#: models.py:1626
+#: models.py:1699
msgctxt "key for text search"
msgid "treatment-file-reference"
msgstr ""
-#: models.py:1630
+#: models.py:1703
msgctxt "key for text search"
msgid "treatment-file-year"
msgstr ""
-#: models.py:1634
+#: models.py:1707
msgctxt "key for text search"
msgid "treatment-file-index"
msgstr ""
-#: models.py:1638
+#: models.py:1711
msgctxt "key for text search"
msgid "treatment-file-type"
msgstr ""
-#: models.py:1661
+#: models.py:1734
msgid "Person in charge of the operation"
msgstr ""
-#: models.py:1667
+#: models.py:1740
msgid "Archaeological preventive operator"
msgstr ""
-#: models.py:1675
+#: models.py:1748
msgid "Signatory"
msgstr ""
-#: models.py:1703
+#: models.py:1776
msgid "Departments"
msgstr ""
-#: models.py:1704
+#: models.py:1777
msgid "Cached values get from associated departments"
msgstr ""
-#: models.py:1707
+#: models.py:1780
msgid "Cached values get from associated towns"
msgstr ""
-#: models.py:1714 templates/ishtar/sheet_operation.html:202
-#: templates/ishtar/sheet_operation.html:244
+#: models.py:1787 templates/ishtar/sheet_operation.html:205
+#: templates/ishtar/sheet_operation.html:251
msgid "Administrative acts"
msgstr ""
-#: models.py:1837
+#: models.py:1920
msgid "This index already exists for this year"
msgstr ""
-#: models.py:1921
+#: models.py:2004
msgid "External ID"
msgstr ""
-#: models.py:1924
+#: models.py:2007
msgid "External ID is set automatically"
msgstr ""
-#: models.py:1925
+#: models.py:2008
msgid "Address - Locality"
msgstr ""
-#: models.py:2140
+#: models.py:2223
msgid "Owner"
msgstr ""
-#: models.py:2148
+#: models.py:2231
msgid "Parcel owner"
msgstr ""
-#: models.py:2149
+#: models.py:2232
msgid "Parcel owners"
msgstr ""
-#: models.py:2183
+#: models.py:2266
msgid "Recorded"
msgstr ""
-#: models.py:2184
+#: models.py:2267
msgid "Effective"
msgstr ""
-#: models.py:2185
+#: models.py:2268
msgid "Active"
msgstr ""
-#: models.py:2186
+#: models.py:2269
msgid "Field completed"
msgstr ""
-#: models.py:2187
+#: models.py:2270
msgid "Associated report"
msgstr ""
-#: models.py:2188
+#: models.py:2271
msgid "Closed"
msgstr ""
-#: models.py:2189
+#: models.py:2272
msgid "Documented and closed"
msgstr ""
-#: models.py:2623
+#: models.py:2706
msgid "Is preventive"
msgstr ""
-#: models.py:2626
+#: models.py:2709
msgid "Operation type old"
msgstr ""
-#: models.py:2627
+#: models.py:2710
msgid "Operation types old"
msgstr ""
#: templates/ishtar/blocks/window_tables/administrativacts.html:7
-#: templates/ishtar/sheet_operation.html:263
-#: templates/ishtar/sheet_operation.html:327
+#: templates/ishtar/sheet_operation.html:270
+#: templates/ishtar/sheet_operation.html:334
msgid "Type"
msgstr ""
@@ -1470,12 +1505,12 @@ msgstr ""
#: templates/ishtar/dashboards/dashboard_operation.html:432
#: templates/ishtar/dashboards/dashboard_operation.html:463
#: templates/ishtar/dashboards/dashboard_operation.html:687
-#: templates/ishtar/sheet_operation.html:263
-#: templates/ishtar/sheet_operation.html:273
-#: templates/ishtar/sheet_operation.html:290
-#: templates/ishtar/sheet_operation.html:300
-#: templates/ishtar/sheet_operation.html:310
-#: templates/ishtar/sheet_operation.html:327
+#: templates/ishtar/sheet_operation.html:270
+#: templates/ishtar/sheet_operation.html:280
+#: templates/ishtar/sheet_operation.html:297
+#: templates/ishtar/sheet_operation.html:307
+#: templates/ishtar/sheet_operation.html:317
+#: templates/ishtar/sheet_operation.html:334
msgid "Number"
msgstr ""
@@ -1501,7 +1536,7 @@ msgstr ""
#: templates/ishtar/dashboards/dashboard_operation.html:479
#: templates/ishtar/dashboards/dashboard_operation.html:499
#: templates/ishtar/dashboards/dashboard_operation.html:623
-#: templates/ishtar/sheet_operation.html:52
+#: templates/ishtar/sheet_operation.html:53
msgid "State"
msgstr ""
@@ -1664,7 +1699,7 @@ msgid "area by organization by realisation year"
msgstr ""
#: templates/ishtar/dashboards/dashboard_operation.html:670
-#: templates/ishtar/sheet_operation.html:77
+#: templates/ishtar/sheet_operation.html:78
msgid "Cost"
msgstr ""
@@ -1677,7 +1712,7 @@ msgid "main towns by cost"
msgstr ""
#: templates/ishtar/sheet_administrativeact.html:40
-#: templates/ishtar/sheet_operation.html:69
+#: templates/ishtar/sheet_operation.html:70
msgid "Surface"
msgstr ""
@@ -1685,103 +1720,103 @@ msgstr ""
msgid "Address"
msgstr ""
-#: templates/ishtar/sheet_operation.html:37
+#: templates/ishtar/sheet_operation.html:38
msgid "Begining date"
msgstr ""
-#: templates/ishtar/sheet_operation.html:54
+#: templates/ishtar/sheet_operation.html:55
msgid "Active file"
msgstr ""
-#: templates/ishtar/sheet_operation.html:55
+#: templates/ishtar/sheet_operation.html:56
msgid "Closed operation"
msgstr ""
-#: templates/ishtar/sheet_operation.html:62
+#: templates/ishtar/sheet_operation.html:63
msgid "by"
msgstr ""
-#: templates/ishtar/sheet_operation.html:85
+#: templates/ishtar/sheet_operation.html:86
msgid "Duration"
msgstr ""
-#: templates/ishtar/sheet_operation.html:87
+#: templates/ishtar/sheet_operation.html:88
msgid "days"
msgstr ""
-#: templates/ishtar/sheet_operation.html:129
+#: templates/ishtar/sheet_operation.html:130
msgid "Sheet"
msgstr ""
-#: templates/ishtar/sheet_operation.html:138
+#: templates/ishtar/sheet_operation.html:139
msgid "This operation is virtual."
msgstr ""
-#: templates/ishtar/sheet_operation.html:144
+#: templates/ishtar/sheet_operation.html:145
msgid "Patriarche OA code not yet recorded!"
msgstr ""
-#: templates/ishtar/sheet_operation.html:159
-#: templates/ishtar/sheet_site.html:43
+#: templates/ishtar/sheet_operation.html:160
+#: templates/ishtar/sheet_site.html:44
msgid "Localisation"
msgstr ""
-#: templates/ishtar/sheet_operation.html:198
+#: templates/ishtar/sheet_operation.html:200
msgid "Associated parcels"
msgstr ""
-#: templates/ishtar/sheet_operation.html:206
+#: templates/ishtar/sheet_operation.html:209
msgid "Document from this operation"
msgstr ""
-#: templates/ishtar/sheet_operation.html:212
-#: templates/ishtar/sheet_operation.html:255
+#: templates/ishtar/sheet_operation.html:216
+#: templates/ishtar/sheet_operation.html:262
msgid "Context records"
msgstr ""
-#: templates/ishtar/sheet_operation.html:217
+#: templates/ishtar/sheet_operation.html:221
msgid "Context record relations"
msgstr ""
-#: templates/ishtar/sheet_operation.html:222
+#: templates/ishtar/sheet_operation.html:226
msgid "Documents from associated context records"
msgstr ""
-#: templates/ishtar/sheet_operation.html:227
-#: templates/ishtar/sheet_operation.html:282
-#: templates/ishtar/sheet_site.html:70
+#: templates/ishtar/sheet_operation.html:232
+#: templates/ishtar/sheet_operation.html:289
+#: templates/ishtar/sheet_site.html:73
msgid "Finds"
msgstr ""
-#: templates/ishtar/sheet_operation.html:232
+#: templates/ishtar/sheet_operation.html:237
msgid "Documents from associated finds"
msgstr ""
-#: templates/ishtar/sheet_operation.html:237
+#: templates/ishtar/sheet_operation.html:243
msgid "Associated containers"
msgstr ""
-#: templates/ishtar/sheet_operation.html:241
+#: templates/ishtar/sheet_operation.html:248
msgid "Statistics"
msgstr ""
-#: templates/ishtar/sheet_operation.html:242
+#: templates/ishtar/sheet_operation.html:249
msgid "These numbers are updated hourly"
msgstr ""
-#: templates/ishtar/sheet_operation.html:290
+#: templates/ishtar/sheet_operation.html:297
msgid "Material type"
msgstr ""
-#: templates/ishtar/sheet_operation.html:300
+#: templates/ishtar/sheet_operation.html:307
msgid "Object type"
msgstr ""
-#: templates/ishtar/sheet_operation.html:319
+#: templates/ishtar/sheet_operation.html:326
msgid "Sources"
msgstr ""
-#: templates/ishtar/sheet_operation.html:337
+#: templates/ishtar/sheet_operation.html:344
msgid "Finds by context records"
msgstr ""
@@ -1802,43 +1837,43 @@ msgid ""
"The following error(s) has been encountered while parsing the source file:"
msgstr ""
-#: views.py:244
+#: views.py:245
msgid "New operation"
msgstr ""
-#: views.py:293
+#: views.py:294
msgid "Operation modification"
msgstr ""
-#: views.py:304
+#: views.py:305
msgid "You don't have sufficient permissions to do this action."
msgstr ""
-#: views.py:329
+#: views.py:330
msgid "Operation closing"
msgstr ""
-#: views.py:340
+#: views.py:341
msgid "Operation deletion"
msgstr ""
-#: views.py:406
+#: views.py:407
msgid "Site deletion"
msgstr ""
-#: views.py:425
+#: views.py:426
msgid "Operation: new administrative act"
msgstr ""
-#: views.py:435
+#: views.py:436
msgid "Operation: administrative act modification"
msgstr ""
-#: views.py:459
+#: views.py:460
msgid "Operation: administrative act deletion"
msgstr ""
-#: views.py:552
+#: views.py:530
msgid ""
"Syntax error on the source template \"{}\" - contact your administrator and "
"ask him to check the syntax of this document."
diff --git a/archaeological_operations/migrations/0041_auto_20181203_1442.py b/archaeological_operations/migrations/0041_auto_20181203_1442.py
new file mode 100644
index 000000000..5b6b9f7db
--- /dev/null
+++ b/archaeological_operations/migrations/0041_auto_20181203_1442.py
@@ -0,0 +1,1117 @@
+# -*- coding: utf-8 -*-
+# Generated by Django 1.11.10 on 2018-12-03 14:42
+from __future__ import unicode_literals
+
+import datetime
+from django.conf import settings
+import django.contrib.gis.db.models.fields
+import django.contrib.postgres.search
+import django.core.validators
+from django.db import migrations, models
+import django.db.models.deletion
+import ishtar_common.models
+import re
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('archaeological_operations', '0040_archaeologicalsite_collaborators'),
+ ]
+
+ operations = [
+ migrations.AlterModelOptions(
+ name='acttype',
+ options={'ordering': ('label',), 'verbose_name': "Type d'acte", 'verbose_name_plural': "Types d'acte"},
+ ),
+ migrations.AlterModelOptions(
+ name='administrativeact',
+ options={'ordering': ('year', 'signature_date', 'index', 'act_type'), 'permissions': (('view_administrativeact', 'Can view all Administrative acts'), ('view_own_administrativeact', 'Can view own Administrative act'), ('add_own_administrativeact', 'Can add own Administrative act'), ('change_own_administrativeact', 'Can change own Administrative act'), ('delete_own_administrativeact', 'Can delete own Administrative act')), 'verbose_name': 'Acte administratif', 'verbose_name_plural': 'Actes administratifs'},
+ ),
+ migrations.AlterModelOptions(
+ name='archaeologicalsite',
+ options={'permissions': (('view_archaeologicalsite', 'Can view all Archaeological sites'), ('view_own_archaeologicalsite', 'Can view own Archaeological site'), ('add_own_archaeologicalsite', 'Can add own Archaeological site'), ('change_own_archaeologicalsite', 'Can change own Archaeological site'), ('delete_own_archaeologicalsite', 'Can delete own Archaeological site')), 'verbose_name': 'Entit\xe9 (EA)', 'verbose_name_plural': 'Entit\xe9s arch\xe9ologiques'},
+ ),
+ migrations.AlterModelOptions(
+ name='historicaladministrativeact',
+ options={'get_latest_by': 'history_date', 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical Acte administratif'},
+ ),
+ migrations.AlterModelOptions(
+ name='historicalarchaeologicalsite',
+ options={'get_latest_by': 'history_date', 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical Entit\xe9 (EA)'},
+ ),
+ migrations.AlterModelOptions(
+ name='historicaloperation',
+ options={'get_latest_by': 'history_date', 'ordering': ('-history_date', '-history_id'), 'verbose_name': 'historical Op\xe9ration'},
+ ),
+ migrations.AlterModelOptions(
+ name='operation',
+ options={'ordering': ('cached_label',), 'permissions': (('view_operation', 'Can view all Operations'), ('view_own_operation', 'Can view own Operation'), ('add_own_operation', 'Can add own Operation'), ('change_own_operation', 'Can change own Operation'), ('delete_own_operation', 'Can delete own Operation'), ('close_operation', 'Can close Operation')), 'verbose_name': 'Op\xe9ration', 'verbose_name_plural': 'Op\xe9rations'},
+ ),
+ migrations.AlterModelOptions(
+ name='operationtypeold',
+ options={'ordering': ['-preventive', 'order', 'label'], 'verbose_name': "Type d'op\xe9ration - ancien", 'verbose_name_plural': "Types d'op\xe9ration - ancien"},
+ ),
+ migrations.AlterModelOptions(
+ name='parcel',
+ options={'ordering': ('year', 'section', 'parcel_number'), 'verbose_name': 'Parcelle', 'verbose_name_plural': 'Parcelles'},
+ ),
+ migrations.AlterModelOptions(
+ name='parcelowner',
+ options={'verbose_name': 'Propri\xe9taire de parcelle', 'verbose_name_plural': 'Propri\xe9taires de parcelle'},
+ ),
+ migrations.AlterModelOptions(
+ name='period',
+ options={'ordering': ('order',), 'verbose_name': 'Type de p\xe9riode', 'verbose_name_plural': 'Types de p\xe9riode'},
+ ),
+ migrations.AlterModelOptions(
+ name='recordqualitytype',
+ options={'ordering': ('order',), 'verbose_name': "Type de qualit\xe9 d'enregistrement", 'verbose_name_plural': "Types de qualit\xe9 d'enregistrement"},
+ ),
+ migrations.AlterModelOptions(
+ name='recordrelations',
+ options={'ordering': ('left_record', 'relation_type'), 'permissions': [('view_operationrelation', 'Can view all Operation relations')], 'verbose_name': 'Relation entre op\xe9rations', 'verbose_name_plural': 'Relations entre op\xe9rations'},
+ ),
+ migrations.AlterModelOptions(
+ name='relationtype',
+ options={'ordering': ('order', 'label'), 'verbose_name': 'Type de relation entre op\xe9rations', 'verbose_name_plural': 'Types de relation entre op\xe9rations'},
+ ),
+ migrations.AlterModelOptions(
+ name='remaintype',
+ options={'ordering': ('label',), 'verbose_name': 'Type de vestige', 'verbose_name_plural': 'Types de vestige'},
+ ),
+ migrations.AlterModelOptions(
+ name='reportstate',
+ options={'ordering': ('order',), 'verbose_name': "Type d'\xe9tat de rapport", 'verbose_name_plural': "Types d'\xe9tat de rapport"},
+ ),
+ migrations.AddField(
+ model_name='archaeologicalsite',
+ name='affmar_number',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Num\xe9ro AffMar'),
+ ),
+ migrations.AddField(
+ model_name='archaeologicalsite',
+ name='drassm_number',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Num\xe9ro DRASSM'),
+ ),
+ migrations.AddField(
+ model_name='historicalarchaeologicalsite',
+ name='affmar_number',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Num\xe9ro AffMar'),
+ ),
+ migrations.AddField(
+ model_name='historicalarchaeologicalsite',
+ name='drassm_number',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Num\xe9ro DRASSM'),
+ ),
+ migrations.AddField(
+ model_name='historicaloperation',
+ name='drassm_code',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Code DRASSM'),
+ ),
+ migrations.AddField(
+ model_name='operation',
+ name='drassm_code',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Code DRASSM'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='associated_template',
+ field=models.ManyToManyField(blank=True, related_name='acttypes', to='ishtar_common.DocumentTemplate', verbose_name='Patron associ\xe9'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='indexed',
+ field=models.BooleanField(default=False, verbose_name='Index\xe9'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='intented_to',
+ field=models.CharField(choices=[(b'F', 'Dossier'), (b'O', 'Op\xe9ration'), (b'TF', 'Demande de traitement'), (b'T', 'Traitement')], max_length=2, verbose_name='Destin\xe9 \xe0'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='acttype',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='act_object',
+ field=models.TextField(blank=True, max_length=300, null=True, verbose_name='Objet'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='act_type',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.ActType', verbose_name="Type d'acte"),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='associated_file',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='administrative_act', to='archaeological_files.File', verbose_name='Dossier'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='departments_label',
+ field=models.TextField(blank=True, help_text='Valeur en cache des d\xe9partements associ\xe9s', null=True, verbose_name='D\xe9partements'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='history_creator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Cr\xe9ateur'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='history_modifier',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Dernier \xe9diteur'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='in_charge',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='adminact_operation_in_charge', to='ishtar_common.Person', verbose_name="Responsable d'op\xe9ration"),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='operation',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='administrative_act', to='archaeological_operations.Operation', verbose_name='Op\xe9ration'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='operator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='adminact_operator', to='ishtar_common.Organization', verbose_name="Op\xe9rateur d'arch\xe9ologie pr\xe9ventive"),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='scientist',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='adminact_scientist', to='ishtar_common.Person', verbose_name='Responsable scientifique'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='signatory',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='signatory', to='ishtar_common.Person', verbose_name='Signataire'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='signature_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de signature'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='towns_label',
+ field=models.TextField(blank=True, help_text='Valeur en cache des communes associ\xe9es', null=True, verbose_name='Communes'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='treatment',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='administrative_act', to='archaeological_finds.Treatment', verbose_name='Traitement'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='treatment_file',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='administrative_act', to='archaeological_finds.TreatmentFile', verbose_name='Demande de traitement'),
+ ),
+ migrations.AlterField(
+ model_name='administrativeact',
+ name='year',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Ann\xe9e'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='cached_label',
+ field=models.TextField(blank=True, db_index=True, null=True, verbose_name='Nom en cache'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='collaborators',
+ field=models.ManyToManyField(blank=True, related_name='site_collaborator', to='ishtar_common.Person', verbose_name='Collaborateurs'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='discovery_area',
+ field=models.TextField(blank=True, null=True, verbose_name='Zone de d\xe9couverte'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='history_creator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Cr\xe9ateur'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='history_modifier',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Dernier \xe9diteur'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='locality_cadastral',
+ field=models.TextField(blank=True, null=True, verbose_name='Lieu-dit cadastre'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='locality_ngi',
+ field=models.TextField(blank=True, null=True, verbose_name='Lieu-dit IGN'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='multi_polygon',
+ field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Polygones multi-parties'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='name',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Nom'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='oceanographic_service_localisation',
+ field=models.TextField(blank=True, null=True, verbose_name='Localisation SHOM'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='periods',
+ field=models.ManyToManyField(blank=True, to='archaeological_operations.Period', verbose_name='P\xe9riodes'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='reference',
+ field=models.CharField(max_length=200, unique=True, verbose_name='R\xe9f\xe9rence'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='remains',
+ field=models.ManyToManyField(blank=True, to='archaeological_operations.RemainType', verbose_name='Vestiges'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='shipwreck_code',
+ field=models.TextField(blank=True, null=True, verbose_name='Code \xe9pave'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='shipwreck_name',
+ field=models.TextField(blank=True, null=True, verbose_name="Nom de l'\xe9pave"),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='sinking_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de naufrage'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='top_operation',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='archaeological_operations.Operation', verbose_name='Op\xe9ration chapeau'),
+ ),
+ migrations.AlterField(
+ model_name='archaeologicalsite',
+ name='towns',
+ field=models.ManyToManyField(blank=True, related_name='sites', to='ishtar_common.Town', verbose_name='Communes'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='act_object',
+ field=models.TextField(blank=True, max_length=300, null=True, verbose_name='Objet'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='departments_label',
+ field=models.TextField(blank=True, help_text='Valeur en cache des d\xe9partements associ\xe9s', null=True, verbose_name='D\xe9partements'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='signature_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de signature'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='towns_label',
+ field=models.TextField(blank=True, help_text='Valeur en cache des communes associ\xe9es', null=True, verbose_name='Communes'),
+ ),
+ migrations.AlterField(
+ model_name='historicaladministrativeact',
+ name='year',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Ann\xe9e'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='cached_label',
+ field=models.TextField(blank=True, db_index=True, null=True, verbose_name='Nom en cache'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='discovery_area',
+ field=models.TextField(blank=True, null=True, verbose_name='Zone de d\xe9couverte'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='locality_cadastral',
+ field=models.TextField(blank=True, null=True, verbose_name='Lieu-dit cadastre'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='locality_ngi',
+ field=models.TextField(blank=True, null=True, verbose_name='Lieu-dit IGN'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='multi_polygon',
+ field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Polygones multi-parties'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='name',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Nom'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='oceanographic_service_localisation',
+ field=models.TextField(blank=True, null=True, verbose_name='Localisation SHOM'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='reference',
+ field=models.CharField(db_index=True, max_length=200, verbose_name='R\xe9f\xe9rence'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='shipwreck_code',
+ field=models.TextField(blank=True, null=True, verbose_name='Code \xe9pave'),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='shipwreck_name',
+ field=models.TextField(blank=True, null=True, verbose_name="Nom de l'\xe9pave"),
+ ),
+ migrations.AlterField(
+ model_name='historicalarchaeologicalsite',
+ name='sinking_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de naufrage'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='abstract',
+ field=models.TextField(blank=True, null=True, verbose_name='R\xe9sum\xe9'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='address',
+ field=models.TextField(blank=True, null=True, verbose_name='Adresse / Lieu-dit'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='cached_label',
+ field=models.CharField(blank=True, db_index=True, max_length=500, null=True, verbose_name='Nom en cache'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='common_name',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom g\xe9n\xe9rique'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='cost',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Co\xfbt (euros)'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='creation_date',
+ field=models.DateField(default=datetime.date.today, verbose_name='Date de cr\xe9ation'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='documentation_deadline',
+ field=models.DateField(blank=True, null=True, verbose_name='Date limite de versement de la documentation'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='documentation_received',
+ field=models.NullBooleanField(verbose_name='Documentation re\xe7ue'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='effective_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes effectifs'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='end_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de cl\xf4ture'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='excavation_end_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de fin de chantier'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='finds_deadline',
+ field=models.DateField(blank=True, null=True, verbose_name='Date limite de versement du mobilier'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='finds_received',
+ field=models.NullBooleanField(verbose_name='Mobilier re\xe7u'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='geoarchaeological_context_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur un contexte g\xe9oarch\xe9ologique'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='large_area_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur une vaste surface'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='multi_polygon',
+ field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Polygones multi-parties'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='name_of_the_protagonist',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom du protagoniste'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='official_report_number',
+ field=models.TextField(blank=True, null=True, verbose_name='Num\xe9ro de proc\xe8s-verbal'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='old_code',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Ancien code'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='operation_code',
+ field=models.IntegerField(blank=True, null=True, verbose_name='R\xe9f\xe9rence num\xe9rique'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='operator_reference',
+ field=models.CharField(blank=True, max_length=20, null=True, verbose_name="R\xe9f\xe9rence de l'op\xe9rateur"),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='optional_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes optionnels'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='relation_image',
+ field=models.TextField(blank=True, max_length=100, null=True, verbose_name='Image des relations (SVG g\xe9n\xe9r\xe9)'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='report_delivery_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de livraison du rapport'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='scheduled_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes pr\xe9vus'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='scientific_documentation_comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire relatif \xe0 la documentation scientifique'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='seizure_name',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom de la saisie'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='start_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de d\xe9but'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='virtual_operation',
+ field=models.BooleanField(default=False, help_text="Si coch\xe9, cela signifie que cette op\xe9ration n'a pas \xe9t\xe9 officiellement enregistr\xe9e.", verbose_name='Op\xe9ration virtuelle'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='year',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Ann\xe9e'),
+ ),
+ migrations.AlterField(
+ model_name='historicaloperation',
+ name='zoning_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur zonage'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='abstract',
+ field=models.TextField(blank=True, null=True, verbose_name='R\xe9sum\xe9'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='address',
+ field=models.TextField(blank=True, null=True, verbose_name='Adresse / Lieu-dit'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='archaeological_sites',
+ field=models.ManyToManyField(blank=True, related_name='operations', to='archaeological_operations.ArchaeologicalSite', verbose_name='Entit\xe9s arch\xe9ologiques'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='associated_file',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='operations', to='archaeological_files.File', verbose_name='Dossier'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='cached_label',
+ field=models.CharField(blank=True, db_index=True, max_length=500, null=True, verbose_name='Nom en cache'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='collaborators',
+ field=models.ManyToManyField(blank=True, related_name='operation_collaborator', to='ishtar_common.Person', verbose_name='Collaborateurs'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='common_name',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom g\xe9n\xe9rique'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='cost',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Co\xfbt (euros)'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='creation_date',
+ field=models.DateField(default=datetime.date.today, verbose_name='Date de cr\xe9ation'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='documentation_deadline',
+ field=models.DateField(blank=True, null=True, verbose_name='Date limite de versement de la documentation'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='documentation_received',
+ field=models.NullBooleanField(verbose_name='Documentation re\xe7ue'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='effective_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes effectifs'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='end_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de cl\xf4ture'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='excavation_end_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de fin de chantier'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='finds_deadline',
+ field=models.DateField(blank=True, null=True, verbose_name='Date limite de versement du mobilier'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='finds_received',
+ field=models.NullBooleanField(verbose_name='Mobilier re\xe7u'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='geoarchaeological_context_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur un contexte g\xe9oarch\xe9ologique'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='history_creator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Cr\xe9ateur'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='history_modifier',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Dernier \xe9diteur'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='in_charge',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operation_responsability', to='ishtar_common.Person', verbose_name='Responsable'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='large_area_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur une vaste surface'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='multi_polygon',
+ field=django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Polygones multi-parties'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='name_of_the_protagonist',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom du protagoniste'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='official_report_number',
+ field=models.TextField(blank=True, null=True, verbose_name='Num\xe9ro de proc\xe8s-verbal'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='old_code',
+ field=models.CharField(blank=True, max_length=200, null=True, verbose_name='Ancien code'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='operation_code',
+ field=models.IntegerField(blank=True, null=True, verbose_name='R\xe9f\xe9rence num\xe9rique'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='operation_type',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='+', to='ishtar_common.OperationType', verbose_name="Type d'op\xe9ration"),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='operator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operator', to='ishtar_common.Organization', verbose_name='Op\xe9rateur'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='operator_reference',
+ field=models.CharField(blank=True, max_length=20, null=True, verbose_name="R\xe9f\xe9rence de l'op\xe9rateur"),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='optional_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes optionnels'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='periods',
+ field=models.ManyToManyField(blank=True, to='archaeological_operations.Period', verbose_name='P\xe9riodes'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='record_quality_type',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.RecordQualityType', verbose_name="Qualit\xe9 d'enregistrement"),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='relation_image',
+ field=models.FileField(blank=True, null=True, upload_to=ishtar_common.models.get_image_path, verbose_name='Image des relations (SVG g\xe9n\xe9r\xe9)'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='remains',
+ field=models.ManyToManyField(blank=True, to='archaeological_operations.RemainType', verbose_name='Vestiges'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='report_delivery_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de livraison du rapport'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='report_processing',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.ReportState', verbose_name='Traitement du rapport'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='scheduled_man_days',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Jours-hommes pr\xe9vus'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='scientific_documentation_comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire relatif \xe0 la documentation scientifique'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='scientist',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='operation_scientist_responsability', to='ishtar_common.Person', verbose_name='Responsable du suivi scientifique'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='seizure_name',
+ field=models.TextField(blank=True, null=True, verbose_name='Nom de la saisie'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='start_date',
+ field=models.DateField(blank=True, null=True, verbose_name='Date de d\xe9but'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='towns',
+ field=models.ManyToManyField(related_name='operations', to='ishtar_common.Town', verbose_name='Communes'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='virtual_operation',
+ field=models.BooleanField(default=False, help_text="Si coch\xe9, cela signifie que cette op\xe9ration n'a pas \xe9t\xe9 officiellement enregistr\xe9e.", verbose_name='Op\xe9ration virtuelle'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='year',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Ann\xe9e'),
+ ),
+ migrations.AlterField(
+ model_name='operation',
+ name='zoning_prescription',
+ field=models.NullBooleanField(verbose_name='Prescription sur zonage'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='order',
+ field=models.IntegerField(default=1, verbose_name='Ordre'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='preventive',
+ field=models.BooleanField(default=True, verbose_name='Est du pr\xe9ventif'),
+ ),
+ migrations.AlterField(
+ model_name='operationtypeold',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='address',
+ field=models.TextField(blank=True, null=True, verbose_name='Adresse - Lieu-dit'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='associated_file',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='parcels', to='archaeological_files.File', verbose_name='Dossier'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='auto_external_id',
+ field=models.BooleanField(default=False, verbose_name="L'identifiant est attribu\xe9 automatiquement"),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='cached_label',
+ field=models.TextField(blank=True, db_index=True, null=True, verbose_name='Nom en cache'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='external_id',
+ field=models.CharField(blank=True, max_length=100, null=True, verbose_name='Identifiant'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='history_creator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Cr\xe9ateur'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='history_modifier',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Dernier \xe9diteur'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='operation',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='parcels', to='archaeological_operations.Operation', verbose_name='Op\xe9ration'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='parcel_number',
+ field=models.CharField(blank=True, max_length=6, null=True, verbose_name='Num\xe9ro de parcelle'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='public_domain',
+ field=models.BooleanField(default=False, verbose_name='Domaine public'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='town',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parcels', to='ishtar_common.Town', verbose_name='Commune'),
+ ),
+ migrations.AlterField(
+ model_name='parcel',
+ name='year',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Ann\xe9e'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='end_date',
+ field=models.DateField(verbose_name='Date de fin'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='history_creator',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Cr\xe9ateur'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='history_modifier',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Dernier \xe9diteur'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='owner',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parcel_owner', to='ishtar_common.Person', verbose_name='Propri\xe9taire'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='parcel',
+ field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='owners', to='archaeological_operations.Parcel', verbose_name='Parcelle'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='search_vector',
+ field=django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto-rempli \xe0 la sauvegarde', null=True, verbose_name='Vecteur de recherche'),
+ ),
+ migrations.AlterField(
+ model_name='parcelowner',
+ name='start_date',
+ field=models.DateField(verbose_name='Date de d\xe9but'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='end_date',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Date de fin'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='order',
+ field=models.IntegerField(verbose_name='Ordre'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='parent',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.Period', verbose_name='P\xe9riode parente'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='start_date',
+ field=models.IntegerField(blank=True, null=True, verbose_name='Date de d\xe9but'),
+ ),
+ migrations.AlterField(
+ model_name='period',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='recordqualitytype',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='recordqualitytype',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='recordqualitytype',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='recordqualitytype',
+ name='order',
+ field=models.IntegerField(verbose_name='Ordre'),
+ ),
+ migrations.AlterField(
+ model_name='recordqualitytype',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='inverse_relation',
+ field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='archaeological_operations.RelationType', verbose_name='Relation inverse'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='logical_relation',
+ field=models.CharField(blank=True, choices=[(b'above', 'Au-dessus'), (b'bellow', 'En dessous'), (b'equal', '\xc9gal')], max_length=10, null=True, verbose_name='Relation logique'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='order',
+ field=models.IntegerField(default=1, verbose_name='Ordre'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='symmetrical',
+ field=models.BooleanField(verbose_name='Sym\xe9trique'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='tiny_label',
+ field=models.CharField(blank=True, max_length=50, null=True, verbose_name='D\xe9nomination courte'),
+ ),
+ migrations.AlterField(
+ model_name='relationtype',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='remaintype',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='remaintype',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='remaintype',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='remaintype',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ migrations.AlterField(
+ model_name='reportstate',
+ name='available',
+ field=models.BooleanField(default=True, verbose_name='Disponible'),
+ ),
+ migrations.AlterField(
+ model_name='reportstate',
+ name='comment',
+ field=models.TextField(blank=True, null=True, verbose_name='Commentaire'),
+ ),
+ migrations.AlterField(
+ model_name='reportstate',
+ name='label',
+ field=models.TextField(verbose_name='D\xe9nomination'),
+ ),
+ migrations.AlterField(
+ model_name='reportstate',
+ name='order',
+ field=models.IntegerField(verbose_name='Ordre'),
+ ),
+ migrations.AlterField(
+ model_name='reportstate',
+ name='txt_idx',
+ field=models.TextField(help_text='Le "slug" est une version standardis\xe9e du nom. Il ne contient que des lettres en minuscule, des nombres et des tirets (-). Chaque "slug" doit \xeatre unique dans la typologie.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z'), "Ce champ ne doit contenir que des lettres, des nombres, des tirets bas _ et des traits d'union.", 'invalid')], verbose_name='Identifiant textuel'),
+ ),
+ ]
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 872d2bf4e..d8233ba0f 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -108,6 +108,7 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
SHOW_URL = 'show-site'
TABLE_COLS = ['reference', 'name', 'towns_label', 'periods', 'remains']
SLUG = 'site'
+ LONG_SLUG = 'archaeologicalsite'
BASE_SEARCH_VECTORS = [
"comment",
@@ -119,6 +120,8 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
"reference",
"shipwreck_code",
"shipwreck_name",
+ "drassm_number",
+ "affmar_number",
]
M2M_SEARCH_VECTORS = ["periods__label", "remains__label", "towns__name"]
PARENT_SEARCH_VECTORS = ['operations']
@@ -192,6 +195,14 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
pgettext_lazy("key for text search", u"top-operation"),
'top_operation__cached_label__icontains'
),
+ 'drassm_number': (
+ pgettext_lazy("key for text search", u"numero-drassm"),
+ 'drassm_number__iexact'
+ ),
+ 'affmar_number': (
+ pgettext_lazy("key for text search", u"numero-affmar"),
+ 'affmar_number__iexact'
+ ),
}
for v in ALT_NAMES.values():
for language_code, language_lbl in settings.LANGUAGES:
@@ -243,6 +254,10 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
_(u"Sinking date"), null=True, blank=True)
discovery_area = models.TextField(
_(u"Discovery area"), null=True, blank=True)
+ affmar_number = models.CharField(_(u"AffMar number"), max_length=100,
+ null=True, blank=True)
+ drassm_number = models.CharField(_(u"DRASSM number"), max_length=100,
+ null=True, blank=True)
# gis
point = models.PointField(_(u"Point"), blank=True, null=True)
@@ -290,6 +305,9 @@ class ArchaeologicalSite(BaseHistorizedItem, OwnPerms, ValueGetter,
'operations__context_record__base_finds__find__container__responsible__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
+ 'operations__context_record__base_finds__find__basket__',
+ [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}]
+ ) | cls._construct_query_own(
'operations__context_record__base_finds__find__container__location__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
@@ -541,6 +559,7 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
"scientist__cached_label",
"scientific_documentation_comment",
"seizure_name",
+ "drassm_code",
]
PROPERTY_SEARCH_VECTORS = [
"full_reference", "short_code_patriarche"
@@ -705,6 +724,10 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
pgettext_lazy("key for text search", u"finds-deadline-after"),
'finds_deadline__gte'
),
+ 'drassm_code': (
+ pgettext_lazy("key for text search", u"code-drassm"),
+ 'drassm_code__iexact'
+ ),
}
for v in ALT_NAMES.values():
for language_code, language_lbl in settings.LANGUAGES:
@@ -783,34 +806,35 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
blank=True, null=True)
old_code = models.CharField(_(u"Old code"), max_length=200, null=True,
blank=True)
- if settings.COUNTRY == 'fr':
- code_patriarche = models.TextField(u"Code PATRIARCHE", null=True,
- blank=True, unique=True)
- TABLE_COLS = ['code_patriarche'] + TABLE_COLS
- BASE_SEARCH_VECTORS = ['code_patriarche'] + BASE_SEARCH_VECTORS
- # preventive
- fnap_financing = models.FloatField(u"Financement FNAP (%)",
- blank=True, null=True)
- # preventive
- fnap_cost = models.IntegerField(u"Financement FNAP (€)",
- blank=True, null=True)
- # preventive diag
- zoning_prescription = models.NullBooleanField(
- _(u"Prescription on zoning"), blank=True, null=True)
- # preventive diag
- large_area_prescription = models.NullBooleanField(
- _(u"Prescription on large area"), blank=True, null=True)
- geoarchaeological_context_prescription = models.NullBooleanField(
- _(u"Prescription on geoarchaeological context"), blank=True,
- null=True) # preventive diag
- cira_rapporteur = models.ForeignKey(
- Person, related_name='cira_rapporteur', null=True, blank=True,
- on_delete=models.SET_NULL, verbose_name=u"Rapporteur CIRA")
- negative_result = models.NullBooleanField(
- u"Résultat considéré comme négatif", blank=True, null=True)
- cira_date = models.DateField(u"Date avis CIRA", null=True, blank=True)
- eas_number = models.CharField(u"Numéro de l'EA", max_length=20,
- null=True, blank=True)
+ ## fr
+ code_patriarche = models.TextField(u"Code PATRIARCHE", null=True,
+ blank=True, unique=True)
+ TABLE_COLS = ['code_patriarche'] + TABLE_COLS
+ BASE_SEARCH_VECTORS = ['code_patriarche'] + BASE_SEARCH_VECTORS
+ # preventive
+ fnap_financing = models.FloatField(u"Financement FNAP (%)",
+ blank=True, null=True)
+ # preventive
+ fnap_cost = models.IntegerField(u"Financement FNAP (€)",
+ blank=True, null=True)
+ # preventive diag
+ zoning_prescription = models.NullBooleanField(
+ _(u"Prescription on zoning"), blank=True, null=True)
+ # preventive diag
+ large_area_prescription = models.NullBooleanField(
+ _(u"Prescription on large area"), blank=True, null=True)
+ geoarchaeological_context_prescription = models.NullBooleanField(
+ _(u"Prescription on geoarchaeological context"), blank=True,
+ null=True) # preventive diag
+ cira_rapporteur = models.ForeignKey(
+ Person, related_name='cira_rapporteur', null=True, blank=True,
+ on_delete=models.SET_NULL, verbose_name=u"Rapporteur CIRA")
+ negative_result = models.NullBooleanField(
+ u"Résultat considéré comme négatif", blank=True, null=True)
+ cira_date = models.DateField(u"Date avis CIRA", null=True, blank=True)
+ eas_number = models.CharField(u"Numéro de l'EA", max_length=20,
+ null=True, blank=True)
+ ## end fr
operator_reference = models.CharField(
_(u"Operator reference"), max_length=20, null=True, blank=True)
common_name = models.TextField(_(u"Generic name"), null=True, blank=True)
@@ -845,6 +869,9 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
finds_received = models.NullBooleanField(
_(u"Finds received"), blank=True, null=True)
+ # underwater
+ drassm_code = models.CharField(_(u"DRASSM code"), max_length=100,
+ null=True, blank=True)
# judiciary
seizure_name = models.TextField(_(u"Seizure name"), blank=True, null=True)
official_report_number = models.TextField(_(u"Official report number"),
@@ -1040,6 +1067,22 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
finds__base_finds__context_record__operation=self
)
+ def get_extra_actions(self, request):
+ """
+ For sheet template
+ """
+ # url, base_text, icon, extra_text, extra css class, is a quick action
+ actions = super(Operation, self).get_extra_actions(request)
+
+ can_add_cr = self.can_do(request, 'add_contextrecord')
+ if can_add_cr:
+ actions += [
+ (reverse('operation-qa-contextrecord', args=[self.pk]),
+ _(u"Add context record"), "fa fa-plus",
+ _(u"context record"), "", True),
+ ]
+ return actions
+
associated_file_short_label_lbl = _(u"Archaeological file")
full_code_patriarche_lbl = _(u"Code patriarche")
@@ -1131,6 +1174,9 @@ class Operation(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter,
'context_record__base_finds__find__container__location__',
Warehouse._get_query_owns_dicts(ishtaruser)
) | cls._construct_query_own(
+ 'context_record__base_finds__find__basket__',
+ [{"shared_with": ishtaruser, "shared_write_with": ishtaruser}]
+ ) | cls._construct_query_own(
'', cls._get_query_owns_dicts(ishtaruser)
)
return q
@@ -1461,6 +1507,7 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
'act_object', 'signature_date',
'associated_file__cached_label',
'operation__cached_label', 'towns_label']
+ SLUG = "administrativeact"
TABLE_COLS_FILE = [
'full_ref', 'year', 'index', 'act_type',
'act_object', 'associated_file', 'towns_label',
@@ -1826,6 +1873,16 @@ class AdministrativeAct(BaseHistorizedItem, OwnPerms, ValueGetter):
if self.treatment_file:
return self.treatment_file
+ def get_extra_templates(self, request):
+ templates = []
+ for template in self.act_type.associated_template.all():
+ urlname = "generatedoc-administrativeactop"
+ templates.append(
+ (template.name, reverse(
+ urlname, args=[self.pk, template.pk]))
+ )
+ return templates
+
def get_filename(self):
filename = self.related_item.associated_filename
filename = u"-".join(filename.split('-')[:-1]) # remove date
diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html
index 6d8d475e4..8801855cd 100644
--- a/archaeological_operations/templates/ishtar/sheet_operation.html
+++ b/archaeological_operations/templates/ishtar/sheet_operation.html
@@ -33,6 +33,7 @@
</div>
<div class="row">
+ {% field_flex_2 "Code DRASSM" item.drassm_code %}
{% field_flex_2 "Old code" item.old_code %}
{% trans "Begining date" as begining_date_label %}
{% field_flex_2 begining_date_label item.start_date|date:"DATE_FORMAT" %}
@@ -195,20 +196,24 @@
{% dynamic_table_document archaeologicalsites_label 'sites' 'operations' item.pk '' output %}
{% endif %}
+{% if item.grouped_parcels %}
{% trans "Associated parcels" as parcels_label %}
{% include "ishtar/blocks/window_tables/parcels.html" %}
+{% endif %}
-{% if item.administrative_act %}
+{% if item.administrative_act.count %}
<h3>{% trans "Administrative acts" %}</h3>
{% table_administrativact "" item.administrative_act.all %}
{% endif %}
{% trans "Document from this operation" as operation_docs %}
+{% if permission_view_own_document or permission_view_document %}
{% if item.documents.count %}
{% dynamic_table_document operation_docs 'documents' 'operations' item.pk '' output %}
{% endif %}
+{% endif %}
-{% if view_own_contextrecord or view_contextrecord %}
+{% if permission_view_own_contextrecord or permission_view_contextrecord %}
{% if item.context_record.count %}
{% trans "Context records" as cr_lab %}
{% dynamic_table_document cr_lab 'context_records_for_ope' 'operation_id' item.pk 'TABLE_COLS_FOR_OPE' output %}
@@ -219,23 +224,28 @@
{% dynamic_table_document cr_rels 'context_records_relations_detail' 'left_record__operation' item.pk '' output %}
{% endif %}
+{% if permission_view_own_document or permission_view_document %}
{% if item.context_record_docs_q.count %}
{% trans "Documents from associated context records" as cr_docs %}
{% dynamic_table_document cr_docs 'documents' 'context_records__operation' item.pk '' output %}
{% endif %}
{% endif %}
+{% endif %}
+
{% if item.finds %}
{% trans "Finds" as finds %}
{% dynamic_table_document finds 'finds_for_ope' 'base_finds__context_record__operation' item.pk 'TABLE_COLS_FOR_OPE' output %}
{% endif %}
+{% if permission_view_own_document or permission_view_document %}
{% if item.find_docs_q.count %}
{% trans "Documents from associated finds" as finds_docs %}
{% dynamic_table_document finds_docs 'documents' 'finds__base_finds__context_record__operation' item.pk '' output %}
{% endif %}
+{% endif %}
-{% if view_own_container or view_container %}
+{% if permission_view_own_container or permission_view_container %}
{% if item.containers_q.count %}
{% trans "Associated containers" as containers_lbl %}
{% dynamic_table_document containers_lbl 'containers' 'finds__base_finds__context_record__operation' item.pk '' output %}
diff --git a/archaeological_operations/templates/ishtar/sheet_site.html b/archaeological_operations/templates/ishtar/sheet_site.html
index 8f8d018f6..0108d3db6 100644
--- a/archaeological_operations/templates/ishtar/sheet_site.html
+++ b/archaeological_operations/templates/ishtar/sheet_site.html
@@ -49,10 +49,12 @@
</div>
{% endif %}
-{% if item.oceanographic_service_localisation or item.shipwreck_code or item.sinking_date or item.discovery_area or item.shipwreck_name %}
+{% if item.affmar_number or item.drassm_number or item.oceanographic_service_localisation or item.shipwreck_code or item.sinking_date or item.discovery_area or item.shipwreck_name %}
<h3>{% trans "Underwater"%}</h3>
<div class="row">
+ {% field_flex "Numéro AffMar" item.affmar_number %}
+ {% field_flex "Numéro DRASSM" item.drassm_number %}
{% field_flex "Shipwreck name" item.shipwreck_name %}
{% field_flex "Shipwreck code" item.shipwreck_code %}
{% field_flex "Sinking date" item.sinking_date %}
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 48d7c4a4f..06b8b6ce9 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -52,6 +52,7 @@ from ishtar_common.forms import ClosingDateFormSelection, FinalForm, \
from ishtar_common.models import get_current_profile, IshtarSiteProfile, \
DocumentTemplate
from ishtar_common.utils import put_session_message, check_rights_condition
+from ishtar_common.views import gen_generate_doc
from ishtar_common.views_item import get_item, show_item, revert_item, new_item
from ishtar_common.wizards import SearchWizard
@@ -466,30 +467,7 @@ administrativact_register_wizard = SearchWizard.as_view([
url_name='administrativact_register',)
-def generatedoc_administrativeactop(request, pk, template_pk=None):
- if (not request.user.has_perm(
- 'ishtar_common.view_operation', models.Operation)
- and not request.user.has_perm(
- 'ishtar_common.view_own_operation', models.Operation)):
- return HttpResponse(content_type='text/plain')
- try:
- act_file = models.AdministrativeAct.objects.get(pk=pk)
- doc = act_file.publish(template_pk)
- except models.AdministrativeAct.DoesNotExist:
- doc = None
- if doc:
- MIMES = {'odt': 'application/vnd.oasis.opendocument.text',
- 'ods': 'application/vnd.oasis.opendocument.spreadsheet'}
- ext = doc.split('.')[-1]
- doc_name = act_file.get_filename() + "." + ext
- mimetype = 'text/csv'
- if ext in MIMES:
- mimetype = MIMES[ext]
- response = HttpResponse(open(doc), content_type=mimetype)
- response['Content-Disposition'] = 'attachment; filename=%s' % \
- doc_name
- return response
- return HttpResponse(content_type='text/plain')
+generatedoc_administrativeactop = gen_generate_doc(models.AdministrativeAct)
def administrativeactfile_document(
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index de38beb95..798e622b4 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -332,7 +332,7 @@ class OperationAdministrativeActWizard(OperationWizard):
except models.AdministrativeAct.DoesNotExist:
return
- def get_extra_model(self, dct, form_list):
+ def get_extra_model(self, dct, m2m, form_list):
dct['history_modifier'] = self.request.user
return dct