diff options
Diffstat (limited to 'archaeological_operations')
| -rw-r--r-- | archaeological_operations/forms.py | 40 | ||||
| -rw-r--r-- | archaeological_operations/ishtar_menu.py | 5 | ||||
| -rw-r--r-- | archaeological_operations/locale/django.pot | 765 | ||||
| -rw-r--r-- | archaeological_operations/migrations/0041_auto_20181203_1442.py | 1117 | ||||
| -rw-r--r-- | archaeological_operations/models.py | 113 | ||||
| -rw-r--r-- | archaeological_operations/templates/ishtar/sheet_operation.html | 16 | ||||
| -rw-r--r-- | archaeological_operations/templates/ishtar/sheet_site.html | 4 | ||||
| -rw-r--r-- | archaeological_operations/views.py | 26 | ||||
| -rw-r--r-- | archaeological_operations/wizards.py | 2 |
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 |
