diff options
Diffstat (limited to 'archaeological_operations')
-rw-r--r-- | archaeological_operations/forms.py | 43 | ||||
-rw-r--r-- | archaeological_operations/locale/django.pot | 495 | ||||
-rw-r--r-- | archaeological_operations/migrations/0059_auto__add_field_historicaloperation_documentation_deadline__add_field_.py | 713 | ||||
-rw-r--r-- | archaeological_operations/models.py | 41 | ||||
-rw-r--r-- | archaeological_operations/templates/ishtar/sheet_operation.html | 17 | ||||
-rw-r--r-- | archaeological_operations/tests.py | 2 | ||||
-rw-r--r-- | archaeological_operations/views.py | 15 | ||||
-rw-r--r-- | archaeological_operations/wizards.py | 1 |
8 files changed, 1080 insertions, 247 deletions
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 7bac80b48..15db8be31 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -157,9 +157,8 @@ class ParcelForm(forms.Form): else: c_number = 0 values = [town, data.get('year') or '', data.get('section') or '', - c_number, str(data.get('parcel_number') or '') - + str(u"Public domain") if data.get('public_domain') - else u""] + c_number, unicode(_(u"public domain")) + if data.get('public_domain') else u""] if data.get('DELETE'): deleted.append(values) else: @@ -177,7 +176,8 @@ class ParcelForm(forms.Form): grouped = [] for keys, parcel_grp in groupby(parcels, key=sortkeyfn): keys = list(keys) - keys.append([gp[-1] for gp in parcel_grp]) + keys.append([u' '.join([unicode(gp[-2]), unicode(gp[-1])]) + for gp in parcel_grp]) grouped.append(keys) res = '' c_town, c_section = '', '' @@ -534,9 +534,28 @@ class OperationSelect(TableSelect): args=['0', 'user']), associated_model=Person), validators=[valid_id(Person)]) + documentation_deadline_before = forms.DateField( + label=_(u"Documentation deadline before"), widget=widgets.JQueryDate) + documentation_deadline_after = forms.DateField( + label=_(u"Documentation deadline after"), widget=widgets.JQueryDate) + documentation_received = forms.NullBooleanField( + label=_(u"Documentation received")) + finds_deadline_before = forms.DateField( + label=_(u"Finds deadline before"), widget=widgets.JQueryDate) + finds_deadline_after = forms.DateField( + label=_(u"Finds deadline after"), widget=widgets.JQueryDate) + finds_received = forms.NullBooleanField( + label=_(u"Finds received")) def __init__(self, *args, **kwargs): super(OperationSelect, self).__init__(*args, **kwargs) + if not get_current_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') self.fields['operation_type'].choices = \ models.OperationType.get_types() self.fields['operation_type'].help_text = \ @@ -797,6 +816,17 @@ class OperationFormGeneral(ManageOldType, forms.Form): limit={'person_types': [SRA_AGENT.pk, HEAD_SCIENTIST.pk]}, associated_model=Person, new=True), validators=[valid_id(Person)], required=False) + documentation_deadline = forms.DateField( + label=_(u"Deadline for submission of the documentation"), + required=False, widget=widgets.JQueryDate) + documentation_received = forms.NullBooleanField( + required=False, label=_(u"Documentation received")) + finds_deadline = forms.DateField( + label=_(u"Deadline for submission of the finds"), required=False, + widget=widgets.JQueryDate) + finds_received = forms.NullBooleanField( + required=False, label=_(u"Finds received")) + comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea, required=False) record_quality = forms.ChoiceField(label=_(u"Record quality"), @@ -813,6 +843,11 @@ class OperationFormGeneral(ManageOldType, forms.Form): def __init__(self, *args, **kwargs): super(OperationFormGeneral, self).__init__(*args, **kwargs) + if not get_current_profile().warehouse: + self.fields.pop('documentation_deadline') + self.fields.pop('documentation_received') + self.fields.pop('finds_deadline') + self.fields.pop('finds_received') self.fields['operation_type'].choices = \ models.OperationType.get_types( initial=self.init_data.get('operation_type')) diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index dc9b27cea..fb798d8b7 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -8,12 +8,13 @@ msgid "" msgstr "" -#: forms.py:67 forms.py:369 forms.py:964 forms.py:986 forms.py:990 -#: models.py:1010 templates/ishtar/blocks/window_tables/parcels.html:10 +#: forms.py:67 forms.py:369 forms.py:999 forms.py:1021 forms.py:1025 +#: models.py:1035 templates/ishtar/sheet_operation.html:138 +#: templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "" -#: forms.py:70 forms.py:203 forms.py:940 models.py:996 +#: forms.py:70 forms.py:203 forms.py:975 models.py:1021 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -22,22 +23,22 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:72 forms.py:459 forms.py:734 forms.py:1210 models.py:196 -#: models.py:813 models.py:994 +#: forms.py:72 forms.py:459 forms.py:753 forms.py:1245 models.py:197 +#: models.py:838 models.py:1019 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "" -#: forms.py:75 models.py:997 +#: forms.py:75 models.py:1022 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "" -#: forms.py:78 models.py:999 +#: forms.py:78 models.py:1024 msgid "Parcel number" msgstr "" -#: forms.py:80 models.py:1001 models.py:1018 models.py:1067 +#: forms.py:80 models.py:1026 models.py:1043 models.py:1092 msgid "Public domain" msgstr "" @@ -45,11 +46,15 @@ msgstr "" msgid "Town section is required." msgstr "" -#: forms.py:168 +#: forms.py:160 +msgid "public domain" +msgstr "" + +#: forms.py:167 msgid "Current parcels" msgstr "" -#: forms.py:170 +#: forms.py:169 msgid "Deleted parcels" msgstr "" @@ -69,8 +74,8 @@ msgstr "" msgid "Relation type" msgstr "" -#: forms.py:381 ishtar_menu.py:30 models.py:278 models.py:713 models.py:738 -#: models.py:754 models.py:805 models.py:993 wizards.py:338 wizards.py:349 +#: forms.py:381 ishtar_menu.py:30 models.py:289 models.py:738 models.py:763 +#: models.py:779 models.py:830 models.py:1018 wizards.py:339 wizards.py:350 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "" @@ -79,7 +84,7 @@ msgstr "" msgid ":" msgstr "" -#: forms.py:409 forms.py:587 forms.py:1175 +#: forms.py:409 forms.py:606 forms.py:1210 msgid "You should select an operation." msgstr "" @@ -95,19 +100,19 @@ msgstr "" msgid "Deleted relations" msgstr "" -#: forms.py:449 templates/ishtar/sheet_operation.html:78 +#: forms.py:449 templates/ishtar/sheet_operation.html:82 msgid "Relations" msgstr "" -#: forms.py:460 forms.py:1181 +#: forms.py:460 forms.py:1216 models.py:198 msgid "Numeric reference" msgstr "" -#: forms.py:466 forms.py:1221 +#: forms.py:466 forms.py:1256 msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:469 forms.py:1224 models.py:714 +#: forms.py:469 forms.py:1259 models.py:739 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -115,12 +120,12 @@ msgstr "" msgid "Department" msgstr "" -#: forms.py:470 forms.py:1052 models.py:79 +#: forms.py:470 forms.py:1087 models.py:79 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8 msgid "Name" msgstr "" -#: forms.py:472 forms.py:654 forms.py:732 forms.py:1187 models.py:204 +#: forms.py:472 forms.py:673 forms.py:751 forms.py:1222 models.py:205 msgid "Operation type" msgstr "" @@ -128,24 +133,24 @@ msgstr "" msgid "Is open?" msgstr "" -#: forms.py:483 forms.py:761 models.py:193 +#: forms.py:483 forms.py:780 models.py:194 msgid "In charge" msgstr "" -#: forms.py:490 models.py:799 +#: forms.py:490 models.py:824 msgid "Scientist in charge" msgstr "" -#: forms.py:492 forms.py:656 forms.py:752 models.py:191 +#: forms.py:492 forms.py:675 forms.py:771 models.py:192 msgid "Operator" msgstr "" -#: forms.py:499 forms.py:1057 models.py:83 models.py:206 +#: forms.py:499 forms.py:1092 models.py:83 models.py:207 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "" -#: forms.py:500 forms.py:1035 forms.py:1054 models.py:81 models.py:211 +#: forms.py:500 forms.py:1070 forms.py:1089 models.py:81 models.py:212 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "" @@ -170,7 +175,7 @@ msgstr "" msgid "Search within relations" msgstr "" -#: forms.py:512 forms.py:800 models.py:257 +#: forms.py:512 forms.py:830 models.py:258 msgid "Comment" msgstr "" @@ -178,353 +183,385 @@ msgstr "" msgid "Abstract (full text search)" msgstr "" -#: forms.py:514 forms.py:802 models.py:269 +#: forms.py:514 forms.py:832 models.py:270 msgid "Record quality" msgstr "" -#: forms.py:515 forms.py:784 models.py:223 +#: forms.py:515 forms.py:803 models.py:224 msgid "Report processing" msgstr "" -#: forms.py:517 forms.py:805 models.py:264 +#: forms.py:517 forms.py:835 models.py:265 msgid "Virtual operation" msgstr "" -#: forms.py:519 forms.py:1101 +#: forms.py:519 forms.py:1136 msgid "Archaelogical site" msgstr "" -#: forms.py:525 forms.py:1228 +#: forms.py:525 forms.py:1263 msgid "Created by" msgstr "" -#: forms.py:531 forms.py:1234 +#: forms.py:531 forms.py:1269 msgid "Modified by" msgstr "" -#: forms.py:574 forms.py:1173 views.py:247 +#: forms.py:538 +msgid "Documentation deadline before" +msgstr "" + +#: forms.py:540 +msgid "Documentation deadline after" +msgstr "" + +#: forms.py:542 forms.py:823 models.py:277 +msgid "Documentation received" +msgstr "" + +#: forms.py:544 +msgid "Finds deadline before" +msgstr "" + +#: forms.py:546 +msgid "Finds deadline after" +msgstr "" + +#: forms.py:548 forms.py:828 models.py:281 +msgid "Finds received" +msgstr "" + +#: forms.py:593 forms.py:1208 views.py:255 msgid "Operation search" msgstr "" -#: forms.py:618 +#: forms.py:637 msgid "Associated file" msgstr "" -#: forms.py:622 forms.py:888 models.py:810 wizards.py:76 +#: forms.py:641 forms.py:923 models.py:835 wizards.py:76 msgid "Archaelogical file" msgstr "" -#: forms.py:629 forms.py:631 models.py:271 +#: forms.py:648 forms.py:650 models.py:272 msgid "Abstract" msgstr "" -#: forms.py:634 +#: forms.py:653 msgid "months" msgstr "" -#: forms.py:634 +#: forms.py:653 msgid "years" msgstr "" -#: forms.py:636 models.py:177 +#: forms.py:655 models.py:178 msgid "Creation date" msgstr "" -#: forms.py:637 +#: forms.py:656 msgid "Start of field work" msgstr "" -#: forms.py:639 +#: forms.py:658 msgid "All" msgstr "" -#: forms.py:640 +#: forms.py:659 msgid "Preventive" msgstr "" -#: forms.py:641 +#: forms.py:660 msgid "Research" msgstr "" -#: forms.py:645 +#: forms.py:664 msgid "Slicing" msgstr "" -#: forms.py:648 +#: forms.py:667 msgid "Department detail" msgstr "" -#: forms.py:650 +#: forms.py:669 msgid "Date get from" msgstr "" -#: forms.py:652 +#: forms.py:671 msgid "Preventive/Research" msgstr "" -#: forms.py:658 +#: forms.py:677 msgid "Date after" msgstr "" -#: forms.py:660 +#: forms.py:679 msgid "Date before" msgstr "" -#: forms.py:662 +#: forms.py:681 msgid "With reports" msgstr "" -#: forms.py:663 +#: forms.py:682 msgid "With finds" msgstr "" -#: forms.py:715 forms.py:1282 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:734 forms.py:1317 templates/ishtar/sheet_administrativeact.html:13 #: templates/ishtar/sheet_operation.html:20 msgid "General" msgstr "" -#: forms.py:730 models.py:256 +#: forms.py:749 models.py:257 msgid "Generic name" msgstr "" -#: forms.py:739 models.py:225 +#: forms.py:758 models.py:226 msgid "Old code" msgstr "" -#: forms.py:742 +#: forms.py:761 msgid "Head scientist" msgstr "" -#: forms.py:758 models.py:255 +#: forms.py:777 models.py:256 msgid "Operator reference" msgstr "" -#: forms.py:770 +#: forms.py:789 msgid "Total surface (m2)" msgstr "" -#: forms.py:777 models.py:51 models.py:180 models.py:1183 +#: forms.py:796 models.py:51 models.py:181 models.py:1208 msgid "Start date" msgstr "" -#: forms.py:779 models.py:182 +#: forms.py:798 models.py:183 msgid "Excavation end date" msgstr "" -#: forms.py:782 models.py:183 +#: forms.py:801 models.py:184 msgid "Report delivery date" msgstr "" -#: forms.py:807 +#: forms.py:820 models.py:274 +msgid "Deadline for submission of the documentation" +msgstr "" + +#: forms.py:825 models.py:279 +msgid "Deadline for submission of the finds" +msgstr "" + +#: forms.py:837 msgid "Image" msgstr "" -#: forms.py:808 +#: forms.py:838 #, python-format msgid "" "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" "p>" msgstr "" -#: forms.py:841 +#: forms.py:876 msgid "" "If you want to set an excavation end date you have to provide a start date." msgstr "" -#: forms.py:846 +#: forms.py:881 msgid "The excavation end date cannot be before the start date." msgstr "" -#: forms.py:874 +#: forms.py:909 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:878 +#: forms.py:913 msgid "Bad operation code" msgstr "" -#: forms.py:884 models.py:197 models.py:407 +#: forms.py:919 models.py:422 msgid "Operation code" msgstr "" -#: forms.py:910 +#: forms.py:945 msgid "Preventive informations - excavation" msgstr "" -#: forms.py:911 models.py:209 +#: forms.py:946 models.py:210 #: templates/ishtar/dashboards/dashboard_operation.html:699 msgid "Cost (euros)" msgstr "" -#: forms.py:912 models.py:214 +#: forms.py:947 models.py:215 msgid "Scheduled man-days" msgstr "" -#: forms.py:914 models.py:217 +#: forms.py:949 models.py:218 msgid "Optional man-days" msgstr "" -#: forms.py:916 models.py:220 +#: forms.py:951 models.py:221 msgid "Effective man-days" msgstr "" -#: forms.py:926 +#: forms.py:961 msgid "Preventive informations - diagnostic" msgstr "" -#: forms.py:929 models.py:239 +#: forms.py:964 models.py:240 msgid "Prescription on zoning" msgstr "" -#: forms.py:931 models.py:242 +#: forms.py:966 models.py:243 msgid "Prescription on large area" msgstr "" -#: forms.py:934 models.py:244 +#: forms.py:969 models.py:245 msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:938 forms.py:960 models.py:208 models.py:823 +#: forms.py:973 forms.py:995 models.py:209 models.py:848 msgid "Towns" msgstr "" -#: forms.py:967 models.py:1009 models.py:1181 +#: forms.py:1002 models.py:1034 models.py:1206 msgid "Parcel" msgstr "" -#: forms.py:1019 models.py:45 +#: forms.py:1054 models.py:45 msgid "Remain types" msgstr "" -#: forms.py:1023 models.py:44 +#: forms.py:1058 models.py:44 msgid "Remain type" msgstr "" -#: forms.py:1039 templates/ishtar/sheet_operation.html:149 -#: templates/ishtar/sheet_operation.html:180 +#: forms.py:1074 templates/ishtar/sheet_operation.html:158 +#: templates/ishtar/sheet_operation.html:189 msgid "Period" msgstr "" -#: forms.py:1051 models.py:78 +#: forms.py:1086 models.py:78 msgid "Reference" msgstr "" -#: forms.py:1080 +#: forms.py:1115 msgid "This reference already exists." msgstr "" -#: forms.py:1097 models.py:87 +#: forms.py:1132 models.py:87 msgid "Archaeological site" msgstr "" -#: forms.py:1112 models.py:88 models.py:261 -#: templates/ishtar/sheet_operation.html:89 +#: forms.py:1147 models.py:88 models.py:262 +#: templates/ishtar/sheet_operation.html:93 msgid "Archaeological sites" msgstr "" -#: forms.py:1116 +#: forms.py:1151 msgid "Associated archaelogical sites" msgstr "" -#: forms.py:1122 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1157 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 msgid "Search" msgstr "" -#: forms.py:1127 +#: forms.py:1162 msgid "Would you like to close this operation?" msgstr "" -#: forms.py:1132 +#: forms.py:1167 msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:1141 forms.py:1211 forms.py:1347 models.py:740 models.py:790 +#: forms.py:1176 forms.py:1246 forms.py:1382 models.py:765 models.py:815 msgid "Index" msgstr "" -#: forms.py:1167 +#: forms.py:1202 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1179 +#: forms.py:1214 msgid "Operation's year" msgstr "" -#: forms.py:1186 +#: forms.py:1221 msgid "Operation's town" msgstr "" -#: forms.py:1199 +#: forms.py:1234 msgid "Documentation search" msgstr "" -#: forms.py:1201 +#: forms.py:1236 msgid "You should select a document." msgstr "" -#: forms.py:1218 forms.py:1285 models.py:765 models.py:784 +#: forms.py:1253 forms.py:1320 models.py:790 models.py:809 msgid "Act type" msgstr "" -#: forms.py:1219 forms.py:1417 +#: forms.py:1254 forms.py:1452 msgid "Indexed?" msgstr "" -#: forms.py:1225 forms.py:1290 models.py:814 +#: forms.py:1260 forms.py:1325 models.py:839 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "" -#: forms.py:1262 views.py:403 +#: forms.py:1297 views.py:411 msgid "Administrative act search" msgstr "" -#: forms.py:1277 forms.py:1375 forms.py:1442 +#: forms.py:1312 forms.py:1410 forms.py:1477 msgid "You should select an administrative act." msgstr "" -#: forms.py:1293 models.py:811 +#: forms.py:1328 models.py:836 msgid "Signature date" msgstr "" -#: forms.py:1335 +#: forms.py:1370 #, python-format msgid "" "This index already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1339 +#: forms.py:1374 msgid "Bad index" msgstr "" -#: forms.py:1352 +#: forms.py:1387 msgid "Would you like to delete this administrative act?" msgstr "" -#: forms.py:1357 +#: forms.py:1392 msgid "Template" msgstr "" -#: forms.py:1381 forms.py:1385 +#: forms.py:1416 forms.py:1420 msgid "This document is not intended for this type of act." msgstr "" -#: forms.py:1403 +#: forms.py:1438 msgid "Doc generation" msgstr "" -#: forms.py:1405 +#: forms.py:1440 msgid "Generate the associated doc?" msgstr "" -#: forms.py:1426 ishtar_menu.py:121 views.py:456 +#: forms.py:1461 ishtar_menu.py:121 views.py:464 msgctxt "admin act register" msgid "Register" msgstr "" @@ -545,7 +582,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:58 models.py:830 +#: ishtar_menu.py:58 models.py:855 #: templates/ishtar/sheet_administrativeact.html:4 msgid "Administrative act" msgstr "" @@ -574,16 +611,16 @@ msgstr "" msgid "General informations" msgstr "" -#: ishtar_menu.py:136 models.py:279 +#: ishtar_menu.py:136 models.py:290 #: templates/ishtar/dashboards/dashboard_operation.html:9 msgid "Operations" msgstr "" -#: models.py:50 models.py:66 models.py:1645 +#: models.py:50 models.py:66 models.py:1670 msgid "Order" msgstr "" -#: models.py:52 models.py:1184 +#: models.py:52 models.py:1209 msgid "End date" msgstr "" @@ -600,11 +637,11 @@ msgid "Types Period" msgstr "" #: models.py:69 -msgid "Report state" +msgid "Type of report state" msgstr "" #: models.py:70 -msgid "Report states" +msgid "Types of report state" msgstr "" #: models.py:91 @@ -639,345 +676,349 @@ msgstr "" msgid "Reliable" msgstr "" -#: models.py:179 +#: models.py:180 msgid "Closing date" msgstr "" -#: models.py:186 +#: models.py:187 msgid "In charge scientist" msgstr "" -#: models.py:201 models.py:989 +#: models.py:202 models.py:1014 msgid "File" msgstr "" -#: models.py:205 +#: models.py:206 msgid "Surface (m2)" msgstr "" -#: models.py:258 +#: models.py:259 msgid "Cached name" msgstr "" -#: models.py:266 +#: models.py:267 msgid "" "If checked, it means that this operation have not been officialy registered." msgstr "" -#: models.py:272 +#: models.py:283 msgid "Point" msgstr "" -#: models.py:273 +#: models.py:284 msgid "Multi polygon" msgstr "" -#: models.py:281 +#: models.py:292 msgid "Can view all Operations" msgstr "" -#: models.py:282 +#: models.py:293 msgid "Can view own Operation" msgstr "" -#: models.py:283 +#: models.py:294 msgid "Can add own Operation" msgstr "" -#: models.py:284 +#: models.py:295 msgid "Can change own Operation" msgstr "" -#: models.py:285 +#: models.py:296 msgid "Can delete own Operation" msgstr "" -#: models.py:286 +#: models.py:297 msgid "Can close Operation" msgstr "" -#: models.py:309 +#: models.py:324 msgid "OPE" msgstr "" -#: models.py:366 +#: models.py:381 msgid "Intercommunal" msgstr "" -#: models.py:392 models.py:753 +#: models.py:407 models.py:778 msgid "Archaeological file" msgstr "" -#: models.py:393 +#: models.py:408 msgid "Code patriarche" msgstr "" -#: models.py:433 +#: models.py:448 msgid "This operation code already exists for this year" msgstr "" -#: models.py:483 +#: models.py:481 +msgid "Number of parcels" +msgstr "" + +#: models.py:499 msgid "Number of administrative acts" msgstr "" -#: models.py:491 +#: models.py:507 msgid "Number of indexed administrative acts" msgstr "" -#: models.py:499 +#: models.py:515 msgid "Number of context records" msgstr "" -#: models.py:535 +#: models.py:551 msgid "Number of finds" msgstr "" -#: models.py:576 +#: models.py:596 msgid "No type" msgstr "" -#: models.py:603 +#: models.py:627 msgid "Number of sources" msgstr "" -#: models.py:644 templates/ishtar/dashboards/dashboard_operation.html:309 +#: models.py:669 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:684 +#: models.py:709 msgid "Inverse relation" msgstr "" -#: models.py:688 +#: models.py:713 msgid "Operation relation type" msgstr "" -#: models.py:689 +#: models.py:714 msgid "Operation relation types" msgstr "" -#: models.py:702 +#: models.py:727 msgid "Operation record relation" msgstr "" -#: models.py:703 +#: models.py:728 msgid "Operation record relations" msgstr "" -#: models.py:724 +#: models.py:749 msgid "Operation documentation" msgstr "" -#: models.py:725 +#: models.py:750 msgid "Operation documentations" msgstr "" -#: models.py:728 +#: models.py:753 msgid "Can view all Operation sources" msgstr "" -#: models.py:730 +#: models.py:755 msgid "Can view own Operation source" msgstr "" -#: models.py:732 +#: models.py:757 msgid "Can add own Operation source" msgstr "" -#: models.py:734 +#: models.py:759 msgid "Can change own Operation source" msgstr "" -#: models.py:736 +#: models.py:761 msgid "Can delete own Operation source" msgstr "" -#: models.py:756 +#: models.py:781 msgid "Intended to" msgstr "" -#: models.py:758 +#: models.py:783 msgid "Code" msgstr "" -#: models.py:761 +#: models.py:786 msgid "Associated template" msgstr "" -#: models.py:762 +#: models.py:787 msgid "Indexed" msgstr "" -#: models.py:766 +#: models.py:791 msgid "Act types" msgstr "" -#: models.py:788 +#: models.py:813 msgid "Person in charge of the operation" msgstr "" -#: models.py:794 +#: models.py:819 msgid "Archaeological preventive operator" msgstr "" -#: models.py:802 +#: models.py:827 msgid "Signatory" msgstr "" -#: models.py:820 +#: models.py:845 msgid "Departments" msgstr "" -#: models.py:821 +#: models.py:846 msgid "Cached values get from associated departments" msgstr "" -#: models.py:824 +#: models.py:849 msgid "Cached values get from associated towns" msgstr "" -#: models.py:831 templates/ishtar/sheet_operation.html:97 -#: templates/ishtar/sheet_operation.html:128 +#: models.py:856 templates/ishtar/sheet_operation.html:101 +#: templates/ishtar/sheet_operation.html:132 msgid "Administrative acts" msgstr "" -#: models.py:834 +#: models.py:859 msgid "Can view all Administrative acts" msgstr "" -#: models.py:836 +#: models.py:861 msgid "Can view own Administrative act" msgstr "" -#: models.py:838 +#: models.py:863 msgid "Can add own Administrative act" msgstr "" -#: models.py:840 +#: models.py:865 msgid "Can change own Administrative act" msgstr "" -#: models.py:842 +#: models.py:867 msgid "Can delete own Administrative act" msgstr "" -#: models.py:851 +#: models.py:876 #: templates/ishtar/blocks/window_tables/administrativacts.html:7 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7 msgid "Ref." msgstr "" -#: models.py:934 +#: models.py:959 msgid "This index already exists for this year" msgstr "" -#: models.py:1002 +#: models.py:1027 msgid "External ID" msgstr "" -#: models.py:1005 +#: models.py:1030 msgid "External ID is set automatically" msgstr "" -#: models.py:1006 +#: models.py:1031 msgid "Address - Locality" msgstr "" -#: models.py:1179 +#: models.py:1204 msgid "Owner" msgstr "" -#: models.py:1187 +#: models.py:1212 msgid "Parcel owner" msgstr "" -#: models.py:1188 +#: models.py:1213 msgid "Parcel owners" msgstr "" -#: models.py:1214 +#: models.py:1239 msgid "Recorded" msgstr "" -#: models.py:1215 +#: models.py:1240 msgid "Effective" msgstr "" -#: models.py:1216 +#: models.py:1241 msgid "Active" msgstr "" -#: models.py:1217 +#: models.py:1242 msgid "Field completed" msgstr "" -#: models.py:1218 +#: models.py:1243 msgid "Associated report" msgstr "" -#: models.py:1219 +#: models.py:1244 msgid "Closed" msgstr "" -#: models.py:1220 +#: models.py:1245 msgid "Documented and closed" msgstr "" -#: models.py:1646 +#: models.py:1671 msgid "Is preventive" msgstr "" -#: models.py:1649 +#: models.py:1674 msgid "Operation type old" msgstr "" -#: models.py:1650 +#: models.py:1675 msgid "Operation types old" msgstr "" -#: views.py:293 +#: views.py:301 msgid "New operation" msgstr "" -#: views.py:312 +#: views.py:320 msgid "Operation modification" msgstr "" -#: views.py:355 +#: views.py:363 msgid "Operation closing" msgstr "" -#: views.py:361 +#: views.py:369 msgid "Operation deletion" msgstr "" -#: views.py:366 +#: views.py:374 msgid "Operation: source search" msgstr "" -#: views.py:374 +#: views.py:382 msgid "Operation: source creation" msgstr "" -#: views.py:382 +#: views.py:390 msgid "Operation: source modification" msgstr "" -#: views.py:397 +#: views.py:405 msgid "Operation: source deletion" msgstr "" -#: views.py:416 +#: views.py:424 msgid "Operation: new administrative act" msgstr "" -#: views.py:426 +#: views.py:434 msgid "Operation: administrative act modification" msgstr "" -#: views.py:450 +#: views.py:458 msgid "Operation: administrative act deletion" msgstr "" @@ -1028,7 +1069,7 @@ msgid "Associated operation:" msgstr "" #: templates/ishtar/sheet_administrativeact.html:26 -#: templates/ishtar/sheet_operation.html:40 +#: templates/ishtar/sheet_operation.html:38 msgid "Surface:" msgstr "" @@ -1068,64 +1109,64 @@ msgstr "" msgid "by" msgstr "" -#: templates/ishtar/sheet_operation.html:41 +#: templates/ishtar/sheet_operation.html:39 msgid "Cost:" msgstr "" -#: templates/ishtar/sheet_operation.html:42 +#: templates/ishtar/sheet_operation.html:40 msgid "Duration:" msgstr "" -#: templates/ishtar/sheet_operation.html:42 +#: templates/ishtar/sheet_operation.html:40 msgid "Day" msgstr "" -#: templates/ishtar/sheet_operation.html:68 +#: templates/ishtar/sheet_operation.html:72 msgid "Localisation" msgstr "" -#: templates/ishtar/sheet_operation.html:93 +#: templates/ishtar/sheet_operation.html:97 msgid "Associated parcels" msgstr "" -#: templates/ishtar/sheet_operation.html:101 +#: templates/ishtar/sheet_operation.html:105 msgid "Document from this operation" msgstr "" -#: templates/ishtar/sheet_operation.html:107 -#: templates/ishtar/sheet_operation.html:134 +#: templates/ishtar/sheet_operation.html:111 +#: templates/ishtar/sheet_operation.html:143 msgid "Context records" msgstr "" -#: templates/ishtar/sheet_operation.html:111 +#: templates/ishtar/sheet_operation.html:115 msgid "Documents from associated context records" msgstr "" -#: templates/ishtar/sheet_operation.html:116 -#: templates/ishtar/sheet_operation.html:157 +#: templates/ishtar/sheet_operation.html:120 +#: templates/ishtar/sheet_operation.html:166 msgid "Finds" msgstr "" -#: templates/ishtar/sheet_operation.html:121 +#: templates/ishtar/sheet_operation.html:125 msgid "Documents from associated finds" msgstr "" -#: templates/ishtar/sheet_operation.html:126 +#: templates/ishtar/sheet_operation.html:130 msgid "Statistics" msgstr "" -#: templates/ishtar/sheet_operation.html:141 -#: templates/ishtar/sheet_operation.html:195 +#: templates/ishtar/sheet_operation.html:150 +#: templates/ishtar/sheet_operation.html:204 #: templates/ishtar/blocks/window_tables/administrativacts.html:8 msgid "Type" msgstr "" -#: templates/ishtar/sheet_operation.html:141 -#: templates/ishtar/sheet_operation.html:149 -#: templates/ishtar/sheet_operation.html:164 -#: templates/ishtar/sheet_operation.html:172 -#: templates/ishtar/sheet_operation.html:180 -#: templates/ishtar/sheet_operation.html:195 +#: templates/ishtar/sheet_operation.html:150 +#: templates/ishtar/sheet_operation.html:158 +#: templates/ishtar/sheet_operation.html:173 +#: templates/ishtar/sheet_operation.html:181 +#: templates/ishtar/sheet_operation.html:189 +#: templates/ishtar/sheet_operation.html:204 #: templates/ishtar/dashboards/dashboard_operation.html:18 #: templates/ishtar/dashboards/dashboard_operation.html:164 #: templates/ishtar/dashboards/dashboard_operation.html:432 @@ -1134,19 +1175,19 @@ msgstr "" msgid "Number" msgstr "" -#: templates/ishtar/sheet_operation.html:164 +#: templates/ishtar/sheet_operation.html:173 msgid "Material type" msgstr "" -#: templates/ishtar/sheet_operation.html:172 +#: templates/ishtar/sheet_operation.html:181 msgid "Object type" msgstr "" -#: templates/ishtar/sheet_operation.html:188 +#: templates/ishtar/sheet_operation.html:197 msgid "Sources" msgstr "" -#: templates/ishtar/sheet_operation.html:204 +#: templates/ishtar/sheet_operation.html:213 msgid "Finds by context records" msgstr "" diff --git a/archaeological_operations/migrations/0059_auto__add_field_historicaloperation_documentation_deadline__add_field_.py b/archaeological_operations/migrations/0059_auto__add_field_historicaloperation_documentation_deadline__add_field_.py new file mode 100644 index 000000000..17a1cc7db --- /dev/null +++ b/archaeological_operations/migrations/0059_auto__add_field_historicaloperation_documentation_deadline__add_field_.py @@ -0,0 +1,713 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding field 'HistoricalOperation.documentation_deadline' + db.add_column('archaeological_operations_historicaloperation', 'documentation_deadline', + self.gf('django.db.models.fields.DateField')(null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalOperation.documentation_received' + db.add_column('archaeological_operations_historicaloperation', 'documentation_received', + self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalOperation.finds_deadline' + db.add_column('archaeological_operations_historicaloperation', 'finds_deadline', + self.gf('django.db.models.fields.DateField')(null=True, blank=True), + keep_default=False) + + # Adding field 'HistoricalOperation.finds_received' + db.add_column('archaeological_operations_historicaloperation', 'finds_received', + self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Operation.documentation_deadline' + db.add_column('archaeological_operations_operation', 'documentation_deadline', + self.gf('django.db.models.fields.DateField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Operation.documentation_received' + db.add_column('archaeological_operations_operation', 'documentation_received', + self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Operation.finds_deadline' + db.add_column('archaeological_operations_operation', 'finds_deadline', + self.gf('django.db.models.fields.DateField')(null=True, blank=True), + keep_default=False) + + # Adding field 'Operation.finds_received' + db.add_column('archaeological_operations_operation', 'finds_received', + self.gf('django.db.models.fields.NullBooleanField')(null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting field 'HistoricalOperation.documentation_deadline' + db.delete_column('archaeological_operations_historicaloperation', 'documentation_deadline') + + # Deleting field 'HistoricalOperation.documentation_received' + db.delete_column('archaeological_operations_historicaloperation', 'documentation_received') + + # Deleting field 'HistoricalOperation.finds_deadline' + db.delete_column('archaeological_operations_historicaloperation', 'finds_deadline') + + # Deleting field 'HistoricalOperation.finds_received' + db.delete_column('archaeological_operations_historicaloperation', 'finds_received') + + # Deleting field 'Operation.documentation_deadline' + db.delete_column('archaeological_operations_operation', 'documentation_deadline') + + # Deleting field 'Operation.documentation_received' + db.delete_column('archaeological_operations_operation', 'documentation_received') + + # Deleting field 'Operation.finds_deadline' + db.delete_column('archaeological_operations_operation', 'finds_deadline') + + # Deleting field 'Operation.finds_received' + db.delete_column('archaeological_operations_operation', 'finds_received') + + + models = { + 'archaeological_files.file': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}), + 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}), + 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}), + 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}), + 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}), + 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}), + 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}), + 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}), + 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'}) + }, + 'archaeological_files.filetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.permittype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_files.saisinetype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.acttype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'}, + 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.administrativeact': { + 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.archaeologicalsite': { + 'Meta': {'object_name': 'ArchaeologicalSite'}, + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaladministrativeact': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'}, + 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}), + 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.historicaloperation': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operation': { + 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'}, + 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}), + 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}), + 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}), + 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}), + 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}), + 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}), + 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}), + 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}), + 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}), + 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}), + 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}), + 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}), + 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.operationbydepartment': { + 'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"}) + }, + 'archaeological_operations.operationsource': { + 'Meta': {'object_name': 'OperationSource'}, + 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}), + 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}), + 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}), + 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}), + 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}), + 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}) + }, + 'archaeological_operations.operationtypeold': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.parcel': { + 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}), + 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}), + 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}), + 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}), + 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + }, + 'archaeological_operations.parcelowner': { + 'Meta': {'object_name': 'ParcelOwner'}, + 'end_date': ('django.db.models.fields.DateField', [], {}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}), + 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}), + 'start_date': ('django.db.models.fields.DateField', [], {}) + }, + 'archaeological_operations.period': { + 'Meta': {'ordering': "('order',)", 'object_name': 'Period'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'end_date': ('django.db.models.fields.IntegerField', [], {}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}), + 'start_date': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.recordrelations': { + 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}), + 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}), + 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"}) + }, + 'archaeological_operations.relationtype': { + 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.remaintype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'archaeological_operations.reportstate': { + 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['archaeological_operations']
\ No newline at end of file diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index a855c3bda..228e9859e 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -66,8 +66,8 @@ class ReportState(GeneralType): order = models.IntegerField(_(u"Order")) class Meta: - verbose_name = _(u"Report state") - verbose_name_plural = _(u"Report states") + verbose_name = _(u"Type of report state") + verbose_name_plural = _(u"Types of report state") ordering = ('order',) def __unicode__(self): @@ -174,6 +174,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, 'start_date', 'excavation_end_date'] TABLE_COLS.insert(4, 'associated_file_short_label') IMAGE_PREFIX = 'operations/' + SLUG = 'operation' creation_date = models.DateField(_(u"Creation date"), default=datetime.date.today) end_date = models.DateField(_(u"Closing date"), null=True, blank=True) @@ -194,7 +195,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, on_delete=models.SET_NULL, related_name='operation_responsability') year = models.IntegerField(_(u"Year"), null=True, blank=True) - operation_code = models.IntegerField(_(u"Operation code"), null=True, + operation_code = models.IntegerField(_(u"Numeric reference"), null=True, blank=True) associated_file = models.ForeignKey( 'archaeological_files.File', @@ -269,6 +270,16 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, _(u"Record quality"), max_length=2, null=True, blank=True, choices=QUALITY) abstract = models.TextField(_(u"Abstract"), null=True, blank=True) + documentation_deadline = models.DateField( + _(u"Deadline for submission of the documentation"), blank=True, + null=True) + documentation_received = models.NullBooleanField( + _(u"Documentation received"), blank=True, null=True) + finds_deadline = models.DateField( + _(u"Deadline for submission of the finds"), blank=True, null=True) + finds_received = models.NullBooleanField( + _(u"Finds received"), blank=True, null=True) + point = models.PointField(_(u"Point"), blank=True, null=True) multi_polygon = models.MultiPolygonField(_(u"Multi polygon"), blank=True, null=True) @@ -288,8 +299,12 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, ordering = ('cached_label',) @classmethod - def get_owns(cls, user): - owns = super(Operation, cls).get_owns(user) + def get_owns(cls, user, menu_filtr=None): + replace_query = {} + if menu_filtr: + replace_query = {'associated_file': menu_filtr} + owns = super(Operation, cls).get_owns( + user, replace_query=replace_query) # owns = owns.annotate(null_count=Count('operation_code')) # return owns.order_by("common_name", "-year", "operation_code") return sorted(owns, key=lambda x: x.cached_label) @@ -463,6 +478,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, @property def nb_parcels(self): + _(u"Number of parcels") nb = 0 if self.associated_file: nb = self.associated_file.parcels.count() @@ -513,7 +529,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, for res in q.all(): nbs.append((unicode(res['unit__label']), self.context_record.filter(unit=res['unit']).count())) - return nbs + return list(set(nbs)) @property def nb_context_records_by_periods(self, update=False): @@ -538,7 +554,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, def _nb_finds(self): from archaeological_finds.models import Find q = Find.objects.filter( - base_finds__context_record__operation=self) + base_finds__context_record__operation=self, + upstream_treatment_id__isnull=True).distinct() return q.count() @property @@ -549,13 +566,16 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, from archaeological_finds.models import Find nbs = [] q = Find.objects.filter( - base_finds__context_record__operation=self).values( + upstream_treatment_id__isnull=True, + base_finds__context_record__operation=self).distinct().values( 'material_types__pk', 'material_types__label').distinct().order_by( 'material_types__label') for res in q.all(): nbs.append( (unicode(res['material_types__label']), Find.objects.filter( + base_finds__context_record__operation=self, + upstream_treatment_id__isnull=True, material_types__pk=res['material_types__pk']).count())) return nbs @@ -577,6 +597,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, nbs.append( (label, Find.objects.filter( + base_finds__context_record__operation=self, + upstream_treatment_id__isnull=True, object_types=res['object_types']).count())) return nbs @@ -595,6 +617,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, nbs.append( (unicode(res['datings__period__label']), Find.objects.filter( + base_finds__context_record__operation=self, + upstream_treatment_id__isnull=True, datings__period=res['datings__period']).count())) return nbs @@ -626,6 +650,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms, self.source, ContextRecordSource.objects.filter(context_record__operation=self), FindSource.objects.filter( + find__upstream_treatment_id__isnull=True, find__base_finds__context_record__operation=self)] for q in qs: for res in q.values('source_type').distinct(): diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index ba63dfa1c..6b2030f5e 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -4,7 +4,7 @@ {% block head_title %}{% trans "Operation" %}{% endblock %} {% block content %} -{% window_nav item window_id 'show-operation' 'operation_modify' 'show-historized-operation' 'revert-operation' previous next %} +{% window_nav item window_id 'show-operation' 'operation_modify' 'show-historized-operation' 'revert-operation' previous next 1 %} {% if item.image %} <a href='{{item.image.url}}' rel="prettyPhoto" title="{{item.label}}" class='photo'><img src='{{item.thumbnail.url}}'/></a> @@ -21,7 +21,7 @@ <ul class='form-flex'> {% field_li "Name" item.common_name %} {% field_li "Year" item.year %} -{% field_li "Numerical reference" item.operation_code %} +{% field_li "Numeric reference" item.operation_code %} {% field_li "Code patriarche" item.code_patriarche 'OA' %} {% field_li "Old code" item.old_code %} <li><label>{%trans "Last modification date:"%}</label> <span class='value'>{% if item.history_date %}{{ item.history_date }}{% else %}{{ item.history.all.0.history_date }}{% endif %}</span></li> <!-- date = now --> @@ -34,8 +34,6 @@ <li><label>{%trans "State:"%}</label> <span class='value'>{% if item.is_active %}{%trans "Active file"%}</span></p> {% else %}{%trans "Closed operation"%}</span></li> {% endif %} {% if item.closing.date %}<li><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></li>{% endif %} -{% field_li "Report delivery date" item.report_delivery_date %} -{% field_li "Report processing" item.report_processing %} {% field_li "Type" item.operation_type %} {% if item.surface %}<li><label>{%trans "Surface:"%}</label> <span class='value'>{{ item.surface }} m<sup>2</sup> ({{ item.surface_ha }} ha)</span></li>{% endif %} {% if item.cost %}<li><label>{%trans "Cost:"%}</label> <span class='value'>{{ item.cost }} €{% if item.cost_by_m2 %}, ({{ item.cost_by_m2 }} €/m<sup>2</sup>){%endif%}</span></li>{%endif%} @@ -44,6 +42,12 @@ {% field_li_multiple "Periods" item.periods %} {% if item.QUALITY_DICT %}{% field_li "Record quality" item.record_quality|from_dict:item.QUALITY_DICT %}{% endif %} {% if item.history_object and item.history_object.QUALITY_DICT %}{% field_li "Record quality" item.record_quality|from_dict:item.history_object.QUALITY_DICT %}{% endif %} +{% field_li "Report delivery date" item.report_delivery_date %} +{% field_li "Report processing" item.report_processing %} +{% field_li "Deadline for submission of the documentation" item.documentation_deadline %} +{% field_li "Documentation received" item.documentation_received %} +{% field_li "Deadline for submission of the finds" item.finds_deadline %} +{% field_li "Finds received" item.finds_received %} {% field_li_detail "Associated file" item.associated_file %} {% field_li "Responsible for town planning service" item.associated_file.responsible_town_planning_service.full_address %} {% if item.associated_file.town_planning_service %} @@ -131,6 +135,11 @@ {% field_li "Number of indexed administrative acts" item.nb_indexed_acts %} </ul> +<h4>{% trans "Parcels" %}</h4> +<ul class='form-flex'> +{% field_li "Number of parcels" item.nb_parcels %} +</ul> + <h4>{% trans "Context records" %}</h4> <ul class='form-flex'> {% field_li "Number of context records" item.nb_context_records %} diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py index a8d627dd5..dd294550e 100644 --- a/archaeological_operations/tests.py +++ b/archaeological_operations/tests.py @@ -494,7 +494,7 @@ class OperationInitTest(object): self.operations.append(create_operation(user, orga)) return self.operations - def get_default_operation(self): + def get_default_operation(self, force=False): return self.create_operation()[0] def tearDown(self): diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py index 013e329a1..6c7fdbd98 100644 --- a/archaeological_operations/views.py +++ b/archaeological_operations/views.py @@ -138,9 +138,14 @@ def get_available_operation_code(request, year=None): get_operation = get_item( models.Operation, 'get_operation', 'operation', - bool_fields=['end_date__isnull', 'virtual_operation'], + bool_fields=['end_date__isnull', 'virtual_operation', + 'documentation_received', 'finds_received'], dated_fields=['start_date__lte', 'start_date__gte', - 'excavation_end_date__lte', 'excavation_end_date__gte'], + 'excavation_end_date__lte', 'excavation_end_date__gte', + 'documentation_deadline__lte', 'documentation_deadline__gte', + 'finds_deadline__lte', 'finds_deadline__gte', + ], + relative_session_names=[('file', 'associated_file__pk')], extra_request_keys={ 'common_name': 'common_name__icontains', 'comment': 'comment__icontains', @@ -167,6 +172,10 @@ get_operation = get_item( 'history_modifier__ishtaruser__person__pk', 'archaeological_sites': 'archaeological_sites__pk', + 'documentation_deadline_before': 'documentation_deadline__lte', + 'documentation_deadline_after': 'documentation_deadline__gte', + 'finds_deadline_before': 'finds_deadline__lte', + 'finds_deadline_after': 'finds_deadline__gte', }, ) show_operation = show_item(models.Operation, 'operation') @@ -216,7 +225,7 @@ get_administrativeactop = get_item( 'operation__associated_file__parcels__public_domain'), }, reversed_bool_fields=['index__isnull'], - relative_session_names={'operation': 'operation__pk'}) + relative_session_names=[('operation', 'operation__pk')]) get_administrativeact = get_item( models.AdministrativeAct, diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py index ee8acd9c1..572a25ca0 100644 --- a/archaeological_operations/wizards.py +++ b/archaeological_operations/wizards.py @@ -287,6 +287,7 @@ class OperationDeletionWizard(DeletionWizard): class OperationSourceWizard(SourceWizard): model = models.OperationSource + wizard_done_window = reverse_lazy('show-operationsource') def get_form_initial(self, step, data=None): initial = super(OperationSourceWizard, self).get_form_initial(step) |