summaryrefslogtreecommitdiff
path: root/archaeological_operations
diff options
context:
space:
mode:
Diffstat (limited to 'archaeological_operations')
-rw-r--r--archaeological_operations/forms.py43
-rw-r--r--archaeological_operations/locale/django.pot495
-rw-r--r--archaeological_operations/migrations/0059_auto__add_field_historicaloperation_documentation_deadline__add_field_.py713
-rw-r--r--archaeological_operations/models.py41
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html17
-rw-r--r--archaeological_operations/tests.py2
-rw-r--r--archaeological_operations/views.py15
-rw-r--r--archaeological_operations/wizards.py1
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 }} &euro;{% if item.cost_by_m2 %}, ({{ item.cost_by_m2 }} &euro;/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)