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