summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore1
-rw-r--r--archaeological_context_records/forms.py8
-rw-r--r--archaeological_context_records/locale/django.pot85
-rw-r--r--archaeological_files/wizards.py14
-rw-r--r--archaeological_operations/forms.py1
-rw-r--r--archaeological_operations/locale/django.pot216
-rw-r--r--archaeological_operations/migrations/0050_auto__chg_field_historicaloperation_code_dracar__chg_field_operation_c.py602
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_warehouse/migrations/0008_auto__add_field_warehouse_alt_address__add_field_warehouse_alt_address.py336
-rw-r--r--archaeological_warehouse/migrations/0009_auto__chg_field_warehouse_phone_desc3__chg_field_warehouse_phone_desc2.py264
-rw-r--r--example_project/settings.py4
-rw-r--r--ishtar_common/forms_common.py41
-rw-r--r--ishtar_common/locale/django.pot500
-rw-r--r--ishtar_common/menu_base.py3
-rw-r--r--ishtar_common/menus.py8
-rw-r--r--ishtar_common/migrations/0049_auto__add_field_person_alt_address__add_field_person_alt_address_compl.py699
-rw-r--r--ishtar_common/migrations/0050_auto__chg_field_person_phone_desc3__chg_field_person_phone_desc2__chg_.py479
-rw-r--r--ishtar_common/models.py65
-rw-r--r--ishtar_common/static/media/style.css34
-rw-r--r--ishtar_common/templates/blocks/table_field.html4
-rw-r--r--ishtar_common/templates/ishtar/blocks/modify_toolbar.html1
-rw-r--r--ishtar_common/templates/ishtar/sheet.html1
-rw-r--r--ishtar_common/templates/ishtar/sheet_person.html49
-rw-r--r--ishtar_common/templates/ishtar/sheet_toolbar.html2
-rw-r--r--ishtar_common/templates/ishtar/wizard/default_wizard.html2
-rw-r--r--ishtar_common/templates/ishtar/wizard/wizard_person.html59
-rw-r--r--ishtar_common/templatetags/link_to_window.py22
-rw-r--r--ishtar_common/templatetags/table_form.py8
-rw-r--r--ishtar_common/urls.py2
-rw-r--r--ishtar_common/views.py9
-rw-r--r--ishtar_common/wizards.py4
-rw-r--r--translations/fr/archaeological_context_records.po89
-rw-r--r--translations/fr/archaeological_operations.po216
-rw-r--r--translations/fr/ishtar_common.po502
34 files changed, 3581 insertions, 751 deletions
diff --git a/.gitignore b/.gitignore
index 506a49869..630de0585 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,6 +7,7 @@ django-formwizard/*
ishtar-docs
ishtar-logo
*.ignore
+*.ignore.py
local_settings.py
fabfile.py
example_project/media
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index e9b5994eb..5160c1c51 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -59,6 +59,9 @@ class RecordSelect(TableSelect):
datings__period = forms.ChoiceField(label=_(u"Period"), choices=[])
unit = forms.ChoiceField(label=_(u"Unit type"), choices=[])
parcel = ParcelField(label=_(u"Parcel (section/number)"))
+ relation_types = forms.MultipleChoiceField(
+ label=_(u"Search within relations"), choices=[],
+ widget=forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
super(RecordSelect, self).__init__(*args, **kwargs)
@@ -66,12 +69,17 @@ class RecordSelect(TableSelect):
self.fields['datings__period'].help_text = Period.get_help()
self.fields['unit'].choices = models.Unit.get_types()
self.fields['unit'].help_text = models.Unit.get_help()
+ self.fields['relation_types'].choices = models.RelationType.get_types(
+ empty_first=False)
def get_input_ids(self):
ids = super(RecordSelect, self).get_input_ids()
ids.pop(ids.index('parcel'))
ids.append('parcel_0')
ids.append('parcel_1')
+ ids.pop(ids.index('relation_types'))
+ for idx, c in enumerate(self.fields['relation_types'].choices):
+ ids.append('relation_types_{}'.format(idx))
return ids
diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot
index e01054c0d..ed4479963 100644
--- a/archaeological_context_records/locale/django.pot
+++ b/archaeological_context_records/locale/django.pot
@@ -3,10 +3,11 @@
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.
# Valérie-Emma Leroux <emma@iggdrasil.net>, 2016. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata
msgid ""
msgstr ""
-#: forms.py:45 forms.py:104 models.py:125
+#: forms.py:45 forms.py:112 models.py:125
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr ""
@@ -27,7 +28,7 @@ msgstr ""
msgid "Archaelogical site"
msgstr ""
-#: forms.py:59 forms.py:170 models.py:48
+#: forms.py:59 forms.py:178 models.py:48
msgid "Period"
msgstr ""
@@ -39,158 +40,162 @@ msgstr ""
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:79 forms.py:266 views.py:78
+#: forms.py:63
+msgid "Search within relations"
+msgstr ""
+
+#: forms.py:87 forms.py:274 views.py:78
msgid "Context record search"
msgstr ""
-#: forms.py:93
+#: forms.py:101
msgid "You should at least select one context record."
msgstr ""
-#: forms.py:99
+#: forms.py:107
msgid "General"
msgstr ""
-#: forms.py:103 models.py:118 models.py:121
+#: forms.py:111 models.py:118 models.py:121
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr ""
-#: forms.py:106 models.py:126 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:114 models.py:126 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr ""
-#: forms.py:108 models.py:131
+#: forms.py:116 models.py:131
msgid "Length (cm)"
msgstr ""
-#: forms.py:109 models.py:132
+#: forms.py:117 models.py:132
msgid "Width (cm)"
msgstr ""
-#: forms.py:110 models.py:133
+#: forms.py:118 models.py:133
msgid "Thickness (cm)"
msgstr ""
-#: forms.py:111 models.py:135
+#: forms.py:119 models.py:135
msgid "Depth (cm)"
msgstr ""
-#: forms.py:112 models.py:141
+#: forms.py:120 models.py:141
msgid "Unit"
msgstr ""
-#: forms.py:114 models.py:137
+#: forms.py:122 models.py:137
msgid "Location"
msgstr ""
-#: forms.py:159
+#: forms.py:167
msgid "This ID already exists for this operation."
msgstr ""
-#: forms.py:165 forms.py:189 models.py:59
+#: forms.py:173 forms.py:197 models.py:59
msgid "Dating"
msgstr ""
-#: forms.py:171 models.py:49
+#: forms.py:179 models.py:49
msgid "Start date"
msgstr ""
-#: forms.py:172 models.py:50 models.py:130
+#: forms.py:180 models.py:50 models.py:130
msgid "End date"
msgstr ""
-#: forms.py:173 models.py:53
+#: forms.py:181 models.py:53
msgid "Quality"
msgstr ""
-#: forms.py:174 models.py:35 models.py:51
+#: forms.py:182 models.py:35 models.py:51
msgid "Dating type"
msgstr ""
-#: forms.py:198 ishtar_menu.py:29 models.py:321
+#: forms.py:206 ishtar_menu.py:29 models.py:321
msgid "Context record"
msgstr ""
-#: forms.py:218
+#: forms.py:226
msgid "Relations"
msgstr ""
-#: forms.py:222 forms.py:229 models.py:146
+#: forms.py:230 forms.py:237 models.py:146
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr ""
-#: forms.py:225 models.py:143
+#: forms.py:233 models.py:143
msgid "Has furniture?"
msgstr ""
-#: forms.py:227 models.py:145
+#: forms.py:235 models.py:145
msgid "Filling"
msgstr ""
-#: forms.py:231 models.py:166
+#: forms.py:239 models.py:166
msgid "Activity"
msgstr ""
-#: forms.py:233 models.py:164
+#: forms.py:241 models.py:164
msgid "Identification"
msgstr ""
-#: forms.py:235 models.py:149
+#: forms.py:243 models.py:149
msgid "TAQ"
msgstr ""
-#: forms.py:236 models.py:153
+#: forms.py:244 models.py:153
msgid "Estimated TAQ"
msgstr ""
-#: forms.py:238 models.py:156
+#: forms.py:246 models.py:156
msgid "TPQ"
msgstr ""
-#: forms.py:239 models.py:160
+#: forms.py:247 models.py:160
msgid "Estimated TPQ"
msgstr ""
-#: forms.py:252
+#: forms.py:260
msgid "Operation search"
msgstr ""
-#: forms.py:254
+#: forms.py:262
msgid "You should select an operation."
msgstr ""
-#: forms.py:259
+#: forms.py:267
msgid "Would you like to delete this context record?"
msgstr ""
-#: forms.py:268
+#: forms.py:276
msgid "You should select a context record."
msgstr ""
-#: forms.py:273
+#: forms.py:281
msgid "Town of the operation"
msgstr ""
-#: forms.py:275
+#: forms.py:283
msgid "Year of the operation"
msgstr ""
-#: forms.py:277
+#: forms.py:285
msgid "Period of the context record"
msgstr ""
-#: forms.py:279
+#: forms.py:287
msgid "Unit type of the context record"
msgstr ""
-#: forms.py:292
+#: forms.py:300
msgid "Documentation search"
msgstr ""
-#: forms.py:294
+#: forms.py:302
msgid "You should select a document."
msgstr ""
diff --git a/archaeological_files/wizards.py b/archaeological_files/wizards.py
index 6e1e3ba03..ea06a48f7 100644
--- a/archaeological_files/wizards.py
+++ b/archaeological_files/wizards.py
@@ -50,13 +50,25 @@ class FileWizard(OperationWizard):
def done(self, form_list, **kwargs):
'''
- Save parcels
+ Save parcels and make numeric_reference unique
'''
r = super(FileWizard, self).done(form_list, return_object=True,
**kwargs)
if type(r) not in (list, tuple) or len(r) != 2:
return r
obj, res = r
+ # numeric_reference check
+ if not self.modification:
+ numeric_reference = obj.numeric_reference
+ changed = False
+ while obj.__class__.objects.filter(
+ numeric_reference=numeric_reference,
+ year=obj.year).exclude(pk=obj.pk).count():
+ numeric_reference += 1
+ changed = True
+ if changed:
+ obj.numeric_reference = numeric_reference
+ obj.save()
obj.parcels.clear()
for form in form_list:
if not hasattr(form, 'prefix') \
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 6ef3d5a21..49824e24a 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -950,7 +950,6 @@ class SelectedParcelFormSet(forms.Form):
def __init__(self, *args, **kwargs):
parcels = None
- print(kwargs)
if 'data' in kwargs and 'PARCELS' in kwargs['data']:
parcels = kwargs['data']['PARCELS']
# clean data if not "real" data
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index 969d77335..eafb651cf 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -8,12 +8,12 @@
msgid ""
msgstr ""
-#: forms.py:66 forms.py:333 forms.py:903 forms.py:925 forms.py:929
+#: forms.py:66 forms.py:344 forms.py:914 forms.py:936 forms.py:940
#: models.py:782 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr ""
-#: forms.py:69 forms.py:185 forms.py:879 models.py:772
+#: forms.py:69 forms.py:185 forms.py:890 models.py:772
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -22,7 +22,7 @@ msgstr ""
msgid "Town"
msgstr ""
-#: forms.py:71 forms.py:422 forms.py:693 forms.py:1111 models.py:158
+#: forms.py:71 forms.py:433 forms.py:704 forms.py:1147 models.py:158
#: models.py:589 models.py:770
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
@@ -57,53 +57,53 @@ msgstr ""
msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\""
msgstr ""
-#: forms.py:327
+#: forms.py:338
msgid "There are identical parcels."
msgstr ""
-#: forms.py:342
+#: forms.py:353
msgid "Relation type"
msgstr ""
-#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515
+#: forms.py:356 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515
#: models.py:530 models.py:581 models.py:769 wizards.py:338 wizards.py:349
#: templates/ishtar/sheet_operation.html:6
msgid "Operation"
msgstr ""
-#: forms.py:364
+#: forms.py:375
msgid ":"
msgstr ""
-#: forms.py:372 forms.py:548 forms.py:1083
+#: forms.py:383 forms.py:559 forms.py:1119
msgid "You should select an operation."
msgstr ""
-#: forms.py:376
+#: forms.py:387
msgid "You should select a relation type."
msgstr ""
-#: forms.py:406
+#: forms.py:417
msgid "Current relations"
msgstr ""
-#: forms.py:408
+#: forms.py:419
msgid "Deleted relations"
msgstr ""
-#: forms.py:412 templates/ishtar/sheet_operation.html:115
+#: forms.py:423 templates/ishtar/sheet_operation.html:115
msgid "Relations"
msgstr ""
-#: forms.py:423
+#: forms.py:434
msgid "Numeric reference"
msgstr ""
-#: forms.py:428 forms.py:1121
+#: forms.py:439 forms.py:1157
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:431 forms.py:1124 models.py:491
+#: forms.py:442 forms.py:1160 models.py:491
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -111,389 +111,389 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:432 forms.py:964 models.py:77
+#: forms.py:443 forms.py:1000 models.py:77
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:6
msgid "Name"
msgstr ""
-#: forms.py:434 forms.py:615 forms.py:691 forms.py:1088 models.py:166
+#: forms.py:445 forms.py:626 forms.py:702 forms.py:1124 models.py:166
msgid "Operation type"
msgstr ""
-#: forms.py:436
+#: forms.py:447
msgid "Is open?"
msgstr ""
-#: forms.py:445 forms.py:717 models.py:155
+#: forms.py:456 forms.py:728 models.py:155
msgid "In charge"
msgstr ""
-#: forms.py:452 models.py:575
+#: forms.py:463 models.py:575
msgid "Scientist in charge"
msgstr ""
-#: forms.py:454 forms.py:617 forms.py:708 models.py:153
+#: forms.py:465 forms.py:628 forms.py:719 models.py:153
msgid "Operator"
msgstr ""
-#: forms.py:461 forms.py:969 models.py:81 models.py:168
+#: forms.py:472 forms.py:1005 models.py:81 models.py:168
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8
msgid "Remains"
msgstr ""
-#: forms.py:462 forms.py:948 forms.py:966 models.py:79 models.py:173
+#: forms.py:473 forms.py:984 forms.py:1002 models.py:79 models.py:173
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Periods"
msgstr ""
-#: forms.py:463
+#: forms.py:474
msgid "Started before"
msgstr ""
-#: forms.py:465
+#: forms.py:476
msgid "Started after"
msgstr ""
-#: forms.py:467
+#: forms.py:478
msgid "Ended before"
msgstr ""
-#: forms.py:469
+#: forms.py:480
msgid "Ended after"
msgstr ""
-#: forms.py:472
+#: forms.py:483
msgid "Search within relations"
msgstr ""
-#: forms.py:474 forms.py:759 models.py:219
+#: forms.py:485 forms.py:770 models.py:219
msgid "Comment"
msgstr ""
-#: forms.py:475
+#: forms.py:486
msgid "Abstract (full text search)"
msgstr ""
-#: forms.py:476 forms.py:761 models.py:231
+#: forms.py:487 forms.py:772 models.py:231
msgid "Record quality"
msgstr ""
-#: forms.py:477 forms.py:740 models.py:185
+#: forms.py:488 forms.py:751 models.py:185
msgid "Report processing"
msgstr ""
-#: forms.py:479 forms.py:764 models.py:226
+#: forms.py:490 forms.py:775 models.py:226
msgid "Virtual operation"
msgstr ""
-#: forms.py:481 forms.py:1009
+#: forms.py:492 forms.py:1045
msgid "Archaelogical site"
msgstr ""
-#: forms.py:487 forms.py:1128
+#: forms.py:498 forms.py:1164
msgid "Created by"
msgstr ""
-#: forms.py:493 forms.py:1134
+#: forms.py:504 forms.py:1170
msgid "Modified by"
msgstr ""
-#: forms.py:535 forms.py:1081 views.py:231
+#: forms.py:546 forms.py:1117 views.py:231
msgid "Operation search"
msgstr ""
-#: forms.py:579
+#: forms.py:590
msgid "Associated file"
msgstr ""
-#: forms.py:583 forms.py:827 models.py:586 wizards.py:76
+#: forms.py:594 forms.py:838 models.py:586 wizards.py:76
msgid "Archaelogical file"
msgstr ""
-#: forms.py:590 forms.py:592 models.py:233
+#: forms.py:601 forms.py:603 models.py:233
msgid "Abstract"
msgstr ""
-#: forms.py:595
+#: forms.py:606
msgid "months"
msgstr ""
-#: forms.py:595
+#: forms.py:606
msgid "years"
msgstr ""
-#: forms.py:597 models.py:139
+#: forms.py:608 models.py:139
msgid "Creation date"
msgstr ""
-#: forms.py:598
+#: forms.py:609
msgid "Start of field work"
msgstr ""
-#: forms.py:600
+#: forms.py:611
msgid "All"
msgstr ""
-#: forms.py:601
+#: forms.py:612
msgid "Preventive"
msgstr ""
-#: forms.py:602
+#: forms.py:613
msgid "Research"
msgstr ""
-#: forms.py:606
+#: forms.py:617
msgid "Slicing"
msgstr ""
-#: forms.py:609
+#: forms.py:620
msgid "Department detail"
msgstr ""
-#: forms.py:611
+#: forms.py:622
msgid "Date get from"
msgstr ""
-#: forms.py:613
+#: forms.py:624
msgid "Preventive/Research"
msgstr ""
-#: forms.py:619
+#: forms.py:630
msgid "Date after"
msgstr ""
-#: forms.py:621
+#: forms.py:632
msgid "Date before"
msgstr ""
-#: forms.py:623
+#: forms.py:634
msgid "With reports"
msgstr ""
-#: forms.py:624
+#: forms.py:635
msgid "With finds"
msgstr ""
-#: forms.py:676 forms.py:1181 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:687 forms.py:1217 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr ""
-#: forms.py:689 models.py:218
+#: forms.py:700 models.py:218
msgid "Generic name"
msgstr ""
-#: forms.py:698
+#: forms.py:709
msgid "Head scientist"
msgstr ""
-#: forms.py:714 models.py:217
+#: forms.py:725 models.py:217
msgid "Operator reference"
msgstr ""
-#: forms.py:726
+#: forms.py:737
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:733 models.py:49 models.py:142 models.py:940
+#: forms.py:744 models.py:49 models.py:142 models.py:940
msgid "Start date"
msgstr ""
-#: forms.py:735 models.py:144
+#: forms.py:746 models.py:144
msgid "Excavation end date"
msgstr ""
-#: forms.py:738 models.py:145
+#: forms.py:749 models.py:145
msgid "Report delivery date"
msgstr ""
-#: forms.py:791
+#: forms.py:802
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
-#: forms.py:796
+#: forms.py:807
msgid "The excavation end date cannot be before the start date."
msgstr ""
-#: forms.py:813
+#: forms.py:824
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:817
+#: forms.py:828
msgid "Bad operation code"
msgstr ""
-#: forms.py:823 models.py:159 models.py:368
+#: forms.py:834 models.py:159 models.py:368
msgid "Operation code"
msgstr ""
-#: forms.py:849
+#: forms.py:860
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:850 models.py:171
+#: forms.py:861 models.py:171
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr ""
-#: forms.py:851 models.py:176
+#: forms.py:862 models.py:176
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:853 models.py:179
+#: forms.py:864 models.py:179
msgid "Optional man-days"
msgstr ""
-#: forms.py:855 models.py:182
+#: forms.py:866 models.py:182
msgid "Effective man-days"
msgstr ""
-#: forms.py:865
+#: forms.py:876
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:868 models.py:201
+#: forms.py:879 models.py:201
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:870 models.py:204
+#: forms.py:881 models.py:204
msgid "Prescription on large area"
msgstr ""
-#: forms.py:873 models.py:206
+#: forms.py:884 models.py:206
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:877 forms.py:899 models.py:170 models.py:599
+#: forms.py:888 forms.py:910 models.py:170 models.py:599
msgid "Towns"
msgstr ""
-#: forms.py:906 models.py:781 models.py:938
+#: forms.py:917 models.py:781 models.py:938
msgid "Parcel"
msgstr ""
-#: forms.py:933 models.py:43
+#: forms.py:969 models.py:43
msgid "Remain types"
msgstr ""
-#: forms.py:937 models.py:42
+#: forms.py:973 models.py:42
msgid "Remain type"
msgstr ""
-#: forms.py:952
+#: forms.py:988
msgid "Period"
msgstr ""
-#: forms.py:963 models.py:76
+#: forms.py:999 models.py:76
msgid "Reference"
msgstr ""
-#: forms.py:988
+#: forms.py:1024
msgid "This reference already exists."
msgstr ""
-#: forms.py:1005 models.py:85
+#: forms.py:1041 models.py:85
msgid "Archaeological site"
msgstr ""
-#: forms.py:1020 models.py:86 models.py:223
+#: forms.py:1056 models.py:86 models.py:223
#: templates/ishtar/sheet_operation.html:126
msgid "Archaeological sites"
msgstr ""
-#: forms.py:1024
+#: forms.py:1060
msgid "Associated archaelogical sites"
msgstr ""
-#: forms.py:1030 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92
+#: forms.py:1066 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92
msgid "Search"
msgstr ""
-#: forms.py:1035
+#: forms.py:1071
msgid "Would you like to close this operation?"
msgstr ""
-#: forms.py:1040
+#: forms.py:1076
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:1049 forms.py:1112 models.py:517 models.py:566
+#: forms.py:1085 forms.py:1148 models.py:517 models.py:566
msgid "Index"
msgstr ""
-#: forms.py:1075
+#: forms.py:1111
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:1087
+#: forms.py:1123
msgid "Operation's town"
msgstr ""
-#: forms.py:1090
+#: forms.py:1126
msgid "Operation's year"
msgstr ""
-#: forms.py:1101
+#: forms.py:1137
msgid "Documentation search"
msgstr ""
-#: forms.py:1103
+#: forms.py:1139
msgid "You should select a document."
msgstr ""
-#: forms.py:1118 forms.py:1184 models.py:541 models.py:560
+#: forms.py:1154 forms.py:1220 models.py:541 models.py:560
msgid "Act type"
msgstr ""
-#: forms.py:1119 forms.py:1272
+#: forms.py:1155 forms.py:1308
msgid "Indexed?"
msgstr ""
-#: forms.py:1125 forms.py:1189 models.py:590
+#: forms.py:1161 forms.py:1225 models.py:590
#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr ""
-#: forms.py:1161 views.py:373
+#: forms.py:1197 views.py:373
msgid "Administrative act search"
msgstr ""
-#: forms.py:1176 forms.py:1230 forms.py:1297
+#: forms.py:1212 forms.py:1266 forms.py:1333
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1192 models.py:587
+#: forms.py:1228 models.py:587
msgid "Signature date"
msgstr ""
-#: forms.py:1207
+#: forms.py:1243
msgid "Would you like to delete this administrative act?"
msgstr ""
-#: forms.py:1212
+#: forms.py:1248
msgid "Template"
msgstr ""
-#: forms.py:1236 forms.py:1240
+#: forms.py:1272 forms.py:1276
msgid "This document is not intended for this type of act."
msgstr ""
-#: forms.py:1258
+#: forms.py:1294
msgid "Doc generation"
msgstr ""
-#: forms.py:1260
+#: forms.py:1296
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1281 ishtar_menu.py:121 views.py:407
+#: forms.py:1317 ishtar_menu.py:121 views.py:407
msgctxt "admin act register"
msgid "Register"
msgstr ""
diff --git a/archaeological_operations/migrations/0050_auto__chg_field_historicaloperation_code_dracar__chg_field_operation_c.py b/archaeological_operations/migrations/0050_auto__chg_field_historicaloperation_code_dracar__chg_field_operation_c.py
new file mode 100644
index 000000000..0ce1008ce
--- /dev/null
+++ b/archaeological_operations/migrations/0050_auto__chg_field_historicaloperation_code_dracar__chg_field_operation_c.py
@@ -0,0 +1,602 @@
+# -*- 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):
+
+ # Changing field 'HistoricalOperation.code_dracar'
+ db.alter_column('archaeological_operations_historicaloperation', 'code_dracar', self.gf('django.db.models.fields.CharField')(max_length=200, null=True))
+
+ # Changing field 'Operation.code_dracar'
+ db.alter_column('archaeological_operations_operation', 'code_dracar', self.gf('django.db.models.fields.CharField')(max_length=200, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'HistoricalOperation.code_dracar'
+ db.alter_column('archaeological_operations_historicaloperation', 'code_dracar', self.gf('django.db.models.fields.CharField')(max_length=10, null=True))
+
+ # Changing field 'Operation.code_dracar'
+ db.alter_column('archaeological_operations_operation', 'code_dracar', self.gf('django.db.models.fields.CharField')(max_length=10, null=True))
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ '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.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '200', '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'}),
+ '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'}),
+ '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'}),
+ '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'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}),
+ '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'}),
+ '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_dracar': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ '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'}),
+ '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'}),
+ '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'}),
+ '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'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'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'}),
+ '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'}),
+ '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'}),
+ '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'}),
+ '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']"}),
+ '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'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ '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',)", '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'}),
+ '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'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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': '300'}),
+ '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'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', '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'}),
+ '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']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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.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'}),
+ '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 d0a010d6a..253ea7635 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -188,7 +188,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
code_patriarche = models.IntegerField(u"Code PATRIARCHE", null=True,
blank=True, unique=True)
TABLE_COLS = ['full_code_patriarche'] + TABLE_COLS
- code_dracar = models.CharField(u"Code DRACAR", max_length=10,
+ code_dracar = models.CharField(u"Code DRACAR", max_length=200,
null=True, blank=True)
# preventive
fnap_financing = models.FloatField(u"Financement FNAP (%)",
diff --git a/archaeological_warehouse/migrations/0008_auto__add_field_warehouse_alt_address__add_field_warehouse_alt_address.py b/archaeological_warehouse/migrations/0008_auto__add_field_warehouse_alt_address__add_field_warehouse_alt_address.py
new file mode 100644
index 000000000..b543a501e
--- /dev/null
+++ b/archaeological_warehouse/migrations/0008_auto__add_field_warehouse_alt_address__add_field_warehouse_alt_address.py
@@ -0,0 +1,336 @@
+# -*- 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 'Warehouse.alt_address'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_address',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.alt_address_complement'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_address_complement',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.alt_postal_code'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_postal_code',
+ self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.alt_town'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_town',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.alt_country'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_country',
+ self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.phone_desc'
+ db.add_column('archaeological_warehouse_warehouse', 'phone_desc',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.phone2'
+ db.add_column('archaeological_warehouse_warehouse', 'phone2',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.phone_desc2'
+ db.add_column('archaeological_warehouse_warehouse', 'phone_desc2',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.phone3'
+ db.add_column('archaeological_warehouse_warehouse', 'phone3',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.phone_desc3'
+ db.add_column('archaeological_warehouse_warehouse', 'phone_desc3',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.raw_phone'
+ db.add_column('archaeological_warehouse_warehouse', 'raw_phone',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Warehouse.alt_address_is_prefered'
+ db.add_column('archaeological_warehouse_warehouse', 'alt_address_is_prefered',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Warehouse.alt_address'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_address')
+
+ # Deleting field 'Warehouse.alt_address_complement'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_address_complement')
+
+ # Deleting field 'Warehouse.alt_postal_code'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_postal_code')
+
+ # Deleting field 'Warehouse.alt_town'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_town')
+
+ # Deleting field 'Warehouse.alt_country'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_country')
+
+ # Deleting field 'Warehouse.phone_desc'
+ db.delete_column('archaeological_warehouse_warehouse', 'phone_desc')
+
+ # Deleting field 'Warehouse.phone2'
+ db.delete_column('archaeological_warehouse_warehouse', 'phone2')
+
+ # Deleting field 'Warehouse.phone_desc2'
+ db.delete_column('archaeological_warehouse_warehouse', 'phone_desc2')
+
+ # Deleting field 'Warehouse.phone3'
+ db.delete_column('archaeological_warehouse_warehouse', 'phone3')
+
+ # Deleting field 'Warehouse.phone_desc3'
+ db.delete_column('archaeological_warehouse_warehouse', 'phone_desc3')
+
+ # Deleting field 'Warehouse.raw_phone'
+ db.delete_column('archaeological_warehouse_warehouse', 'raw_phone')
+
+ # Deleting field 'Warehouse.alt_address_is_prefered'
+ db.delete_column('archaeological_warehouse_warehouse', 'alt_address_is_prefered')
+
+
+ models = {
+ 'archaeological_warehouse.container': {
+ 'Meta': {'object_name': 'Container'},
+ 'comment': ('django.db.models.fields.TextField', [], {}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ '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_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'})
+ },
+ 'archaeological_warehouse.containertype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_warehouse.warehouse': {
+ 'Meta': {'object_name': 'Warehouse'},
+ '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'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'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': '75', '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_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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'}),
+ 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"})
+ },
+ 'archaeological_warehouse.warehousetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'},
+ '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'})
+ },
+ '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.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.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'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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': '300'}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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'}),
+ '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': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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'})
+ }
+ }
+
+ complete_apps = ['archaeological_warehouse'] \ No newline at end of file
diff --git a/archaeological_warehouse/migrations/0009_auto__chg_field_warehouse_phone_desc3__chg_field_warehouse_phone_desc2.py b/archaeological_warehouse/migrations/0009_auto__chg_field_warehouse_phone_desc3__chg_field_warehouse_phone_desc2.py
new file mode 100644
index 000000000..008faea54
--- /dev/null
+++ b/archaeological_warehouse/migrations/0009_auto__chg_field_warehouse_phone_desc3__chg_field_warehouse_phone_desc2.py
@@ -0,0 +1,264 @@
+# -*- 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):
+
+ # Changing field 'Warehouse.phone_desc3'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Warehouse.phone_desc2'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Warehouse.phone_desc'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Warehouse.email'
+ db.alter_column('archaeological_warehouse_warehouse', 'email', self.gf('django.db.models.fields.EmailField')(max_length=300, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'Warehouse.phone_desc3'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Warehouse.phone_desc2'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Warehouse.phone_desc'
+ db.alter_column('archaeological_warehouse_warehouse', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Warehouse.email'
+ db.alter_column('archaeological_warehouse_warehouse', 'email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True))
+
+ models = {
+ 'archaeological_warehouse.container': {
+ 'Meta': {'object_name': 'Container'},
+ 'comment': ('django.db.models.fields.TextField', [], {}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ '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_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'})
+ },
+ 'archaeological_warehouse.containertype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_warehouse.warehouse': {
+ 'Meta': {'object_name': 'Warehouse'},
+ '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'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'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_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ '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'}),
+ 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"})
+ },
+ 'archaeological_warehouse.warehousetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'},
+ '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'})
+ },
+ '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.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.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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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'})
+ }
+ }
+
+ complete_apps = ['archaeological_warehouse'] \ No newline at end of file
diff --git a/example_project/settings.py b/example_project/settings.py
index 88738b479..8136fb81f 100644
--- a/example_project/settings.py
+++ b/example_project/settings.py
@@ -9,6 +9,7 @@ DEBUG = False
DEBUG_TOOLBAR = False
TEMPLATE_DEBUG = DEBUG
SQL_DEBUG = False
+DJANGO_EXTENSIONS = False
if "test" in sys.argv:
sys.path.insert(0, '..')
@@ -138,7 +139,6 @@ INSTALLED_APPS = [
'archaeological_context_records',
'archaeological_warehouse',
'archaeological_finds',
- # 'django_extensions',
# 'debug_toolbar',
]
@@ -235,6 +235,8 @@ INTERNAL_IPS = ('127.0.0.1',)
JQUERY_URL = STATIC_URL + "js/jquery.min.js"
JQUERY_UI_URL = STATIC_URL + "js/jquery-ui/"
+if DJANGO_EXTENSIONS:
+ INSTALLED_APPS.append('django_extensions')
if DEBUG_TOOLBAR:
if '..' not in sys.path:
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index ae72d173f..1d8dc2092 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -260,18 +260,19 @@ class SimplePersonForm(NewItemForm):
validators=[name_validator])
raw_name = forms.CharField(label=_(u"Raw name"), max_length=300,
required=False)
- address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,
- required=False)
- address_complement = forms.CharField(label=_(u"Address complement"),
- widget=forms.Textarea, required=False)
- postal_code = forms.CharField(label=_(u"Postal code"), max_length=10,
- required=False)
- town = forms.CharField(label=_(u"Town"), max_length=30, required=False)
- country = forms.CharField(label=_(u"Country"), max_length=30,
- required=False)
email = forms.EmailField(label=_(u"Email"), required=False)
+ phone_desc = forms.CharField(label=_(u"Phone description"), max_length=300,
+ required=False)
phone = forms.CharField(label=_(u"Phone"), max_length=18, required=False)
- mobile_phone = forms.CharField(label=_(u"Town"), max_length=18,
+ phone_desc2 = forms.CharField(label=_(u"Phone description 2"),
+ max_length=300, required=False)
+ phone2 = forms.CharField(label=_(u"Phone 2"), max_length=18,
+ required=False)
+ phone_desc3 = forms.CharField(label=_(u"Phone description 3"),
+ max_length=300, required=False)
+ phone3 = forms.CharField(label=_(u"Phone 3"), max_length=18,
+ required=False)
+ mobile_phone = forms.CharField(label=_(u"Mobile phone"), max_length=18,
required=False)
attached_to = forms.IntegerField(
label=_("Current organization"),
@@ -279,6 +280,26 @@ class SimplePersonForm(NewItemForm):
reverse_lazy('autocomplete-organization'),
associated_model=models.Organization, new=True),
validators=[models.valid_id(models.Organization)], required=False)
+ address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,
+ required=False)
+ address_complement = forms.CharField(
+ label=_(u"Address complement"), widget=forms.Textarea, required=False)
+ postal_code = forms.CharField(label=_(u"Postal code"), max_length=10,
+ required=False)
+ town = forms.CharField(label=_(u"Town"), max_length=30, required=False)
+ country = forms.CharField(label=_(u"Country"), max_length=30,
+ required=False)
+ alt_address = forms.CharField(label=_(u"Other address: address"),
+ widget=forms.Textarea, required=False)
+ alt_address_complement = forms.CharField(
+ label=_(u"Other address: address complement"),
+ widget=forms.Textarea, required=False)
+ alt_postal_code = forms.CharField(label=_(u"Other address: postal code"),
+ max_length=10, required=False)
+ alt_town = forms.CharField(label=_(u"Other address: town"), max_length=30,
+ required=False)
+ alt_country = forms.CharField(label=_(u"Other address: country"),
+ max_length=30, required=False)
def __init__(self, *args, **kwargs):
super(SimplePersonForm, self).__init__(*args, **kwargs)
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index 0610c5e95..303c03ace 100644
--- a/ishtar_common/locale/django.pot
+++ b/ishtar_common/locale/django.pot
@@ -24,7 +24,7 @@ msgstr ""
msgid "Archaeological file"
msgstr ""
-#: context_processors.py:38 models.py:1251
+#: context_processors.py:38 models.py:1281
msgid "Operation"
msgstr ""
@@ -147,7 +147,7 @@ msgstr ""
msgid "Enter a valid name consisting of letters, spaces and hyphens."
msgstr ""
-#: forms.py:71 forms_common.py:420
+#: forms.py:71 forms_common.py:441
msgid "Confirm"
msgstr ""
@@ -176,7 +176,7 @@ msgid "Template"
msgstr ""
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:269 forms_common.py:274 models.py:1124 models.py:2340
+#: forms_common.py:289 models.py:1124 models.py:2377
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
msgid "Town"
@@ -192,67 +192,72 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:66 forms_common.py:648 ishtar_menu.py:42 models.py:2039
-#: models.py:2168 models.py:2222 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:669 ishtar_menu.py:42 models.py:1279
+#: models.py:2076 models.py:2205 models.py:2259
+#: templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr ""
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1961
-#: templates/ishtar/sheet_organization.html:6
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1280
+#: models.py:1995 templates/ishtar/sheet_organization.html:6
msgid "Organization"
msgstr ""
#: forms_common.py:160 forms_common.py:196 forms_common.py:226
-#: forms_common.py:259 models.py:775 models.py:1057 models.py:1293
-#: models.py:1511 models.py:1955 models.py:2029 models.py:2326
+#: forms_common.py:259 models.py:775 models.py:1057 models.py:1325
+#: models.py:1543 models.py:1989 models.py:2063 models.py:2363
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
msgid "Name"
msgstr ""
-#: forms_common.py:161 models.py:1238 models.py:1642
+#: forms_common.py:161 models.py:1266 models.py:1674
msgid "Organization type"
msgstr ""
-#: forms_common.py:163 forms_common.py:263 models.py:1119
+#: forms_common.py:163 forms_common.py:283 models.py:1119
#: templates/ishtar/sheet_organization.html:14
msgid "Address"
msgstr ""
-#: forms_common.py:165 forms_common.py:265 models.py:1120
+#: forms_common.py:165 forms_common.py:286 models.py:1120
#: templates/ishtar/sheet_organization.html:15
msgid "Address complement"
msgstr ""
-#: forms_common.py:167 forms_common.py:267 models.py:1122
+#: forms_common.py:167 forms_common.py:287 models.py:1122
#: templates/ishtar/sheet_organization.html:16
msgid "Postal code"
msgstr ""
-#: forms_common.py:170 forms_common.py:270 models.py:1125
+#: forms_common.py:170 forms_common.py:290 models.py:1125
msgid "Country"
msgstr ""
-#: forms_common.py:172 forms_common.py:228 forms_common.py:272
-#: forms_common.py:376 models.py:1131
+#: forms_common.py:172 forms_common.py:228 forms_common.py:263
+#: forms_common.py:397 models.py:1152
msgid "Email"
msgstr ""
-#: forms_common.py:173 forms_common.py:273 models.py:1127
+#: forms_common.py:173 forms_common.py:266 models.py:1137
#: templates/ishtar/sheet_organization.html:18
+#: templates/ishtar/sheet_person.html:23
+#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr ""
-#: forms_common.py:174 models.py:1128
+#: forms_common.py:174 forms_common.py:275 models.py:1149
#: templates/ishtar/sheet_organization.html:19
+#: templates/ishtar/sheet_person.html:41
+#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:197 forms_common.py:229 models.py:1666 models.py:1957
-#: models.py:2263 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1700 models.py:1991
+#: models.py:2300 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
#: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:27
-#: templates/ishtar/sheet_person.html:56
+#: templates/ishtar/sheet_person.html:95
#: templates/ishtar/blocks/window_tables/documents.html:6
msgid "Type"
msgstr ""
@@ -261,7 +266,7 @@ msgstr ""
msgid "Organization search"
msgstr ""
-#: forms_common.py:227 forms_common.py:257 models.py:2027
+#: forms_common.py:227 forms_common.py:257 models.py:2061
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr ""
@@ -270,145 +275,186 @@ msgstr ""
msgid "Person search"
msgstr ""
-#: forms_common.py:254
+#: forms_common.py:254 templates/ishtar/sheet_person.html:12
+#: templates/ishtar/wizard/wizard_person.html:6
msgid "Identity"
msgstr ""
-#: forms_common.py:256 forms_common.py:574 forms_common.py:615 models.py:2025
-#: models.py:2260 templates/sheet_ope.html:104
-#: templates/ishtar/sheet_person.html:55
+#: forms_common.py:256 forms_common.py:595 forms_common.py:636 models.py:2059
+#: models.py:2297 templates/sheet_ope.html:104
+#: templates/ishtar/sheet_person.html:94
#: templates/ishtar/blocks/window_tables/documents.html:5
msgid "Title"
msgstr ""
-#: forms_common.py:261 models.py:2031
+#: forms_common.py:261 models.py:2065
msgid "Raw name"
msgstr ""
-#: forms_common.py:277
+#: forms_common.py:264 models.py:1138
+msgid "Phone description"
+msgstr ""
+
+#: forms_common.py:267 models.py:1140 models.py:1142
+msgid "Phone description 2"
+msgstr ""
+
+#: forms_common.py:269
+msgid "Phone 2"
+msgstr ""
+
+#: forms_common.py:271 models.py:1146
+msgid "Phone description 3"
+msgstr ""
+
+#: forms_common.py:273 models.py:1144
+msgid "Phone 3"
+msgstr ""
+
+#: forms_common.py:278
msgid "Current organization"
msgstr ""
-#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:2009
+#: forms_common.py:292 models.py:1127
+msgid "Other address: address"
+msgstr ""
+
+#: forms_common.py:295 models.py:1130
+msgid "Other address: address complement"
+msgstr ""
+
+#: forms_common.py:297 models.py:1131
+msgid "Other address: postal code"
+msgstr ""
+
+#: forms_common.py:299 models.py:1133
+msgid "Other address: town"
+msgstr ""
+
+#: forms_common.py:301 models.py:1135
+msgid "Other address: country"
+msgstr ""
+
+#: forms_common.py:346 forms_common.py:376 forms_common.py:380 models.py:2043
msgid "Person type"
msgstr ""
-#: forms_common.py:370 forms_common.py:375
+#: forms_common.py:391 forms_common.py:396
msgid "Account"
msgstr ""
-#: forms_common.py:379 wizards.py:1154
+#: forms_common.py:400 wizards.py:1158
msgid "New password"
msgstr ""
-#: forms_common.py:382
+#: forms_common.py:403
msgid "New password (confirmation)"
msgstr ""
-#: forms_common.py:401
+#: forms_common.py:422
msgid "Your password and confirmation password do not match."
msgstr ""
-#: forms_common.py:406
+#: forms_common.py:427
msgid "You must provide a correct password."
msgstr ""
-#: forms_common.py:414
+#: forms_common.py:435
msgid "This username already exists."
msgstr ""
-#: forms_common.py:421
+#: forms_common.py:442
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:430 forms_common.py:443 models.py:2341
+#: forms_common.py:451 forms_common.py:464 models.py:2378
msgid "Towns"
msgstr ""
-#: forms_common.py:440
+#: forms_common.py:461
msgid "There are identical towns."
msgstr ""
-#: forms_common.py:524
+#: forms_common.py:545
msgid "Only one choice can be checked."
msgstr ""
-#: forms_common.py:572
+#: forms_common.py:593
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:576 forms_common.py:616 models.py:1643 models.py:2243
+#: forms_common.py:597 forms_common.py:637 models.py:1675 models.py:2280
msgid "Source type"
msgstr ""
-#: forms_common.py:578 forms_common.py:617 templates/sheet_ope.html:84
+#: forms_common.py:599 forms_common.py:638 templates/sheet_ope.html:84
msgid "Reference"
msgstr ""
-#: forms_common.py:581 forms_common.py:618
+#: forms_common.py:602 forms_common.py:639
msgid "Internal reference"
msgstr ""
-#: forms_common.py:584 models.py:2274
+#: forms_common.py:605 models.py:2311
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:585 models.py:2276
+#: forms_common.py:606 models.py:2313
msgid "Receipt date"
msgstr ""
-#: forms_common.py:587 models.py:1793 models.py:2278
+#: forms_common.py:608 models.py:1827 models.py:2315
msgid "Creation date"
msgstr ""
-#: forms_common.py:590 models.py:2281
+#: forms_common.py:611 models.py:2318
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:592 forms_common.py:620 models.py:277 models.py:1538
-#: models.py:2288
+#: forms_common.py:613 forms_common.py:641 models.py:277 models.py:1570
+#: models.py:2069 models.py:2325
msgid "Comment"
msgstr ""
-#: forms_common.py:594 forms_common.py:619 models.py:777 models.py:1297
-#: models.py:1470 models.py:1512 models.py:2287 templates/sheet_ope.html:128
+#: forms_common.py:615 forms_common.py:640 models.py:777 models.py:1329
+#: models.py:1502 models.py:1544 models.py:2324 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:597 models.py:2289
+#: forms_common.py:618 models.py:2326
msgid "Additional information"
msgstr ""
-#: forms_common.py:599 forms_common.py:623 models.py:2291
+#: forms_common.py:620 forms_common.py:644 models.py:2328
msgid "Has a duplicate"
msgstr ""
-#: forms_common.py:612 forms_common.py:641 forms_common.py:674 models.py:2227
+#: forms_common.py:633 forms_common.py:662 forms_common.py:695 models.py:2264
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
-#: forms_common.py:622
+#: forms_common.py:643
msgid "Additional informations"
msgstr ""
-#: forms_common.py:633
+#: forms_common.py:654
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:649 models.py:1644 models.py:2217 models.py:2224
+#: forms_common.py:670 models.py:1676 models.py:2254 models.py:2261
msgid "Author type"
msgstr ""
-#: forms_common.py:667
+#: forms_common.py:688
msgid "Author selection"
msgstr ""
-#: forms_common.py:681
+#: forms_common.py:702
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:685 models.py:2228 models.py:2270
+#: forms_common.py:706 models.py:2265 models.py:2307
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
@@ -446,11 +492,11 @@ msgstr ""
msgid "Merge"
msgstr ""
-#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1830 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1864 widgets.py:110
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:96 models.py:1804
+#: ishtar_menu.py:96 models.py:1838
msgid "Imports"
msgstr ""
@@ -490,7 +536,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: models.py:479 models.py:1584
+#: models.py:479 models.py:1616
msgid "Key"
msgstr ""
@@ -506,7 +552,7 @@ msgstr ""
msgid "Creator"
msgstr ""
-#: models.py:692 models.py:2352
+#: models.py:692 models.py:2389
msgid "Order"
msgstr ""
@@ -518,7 +564,7 @@ msgstr ""
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:776 models.py:1295
+#: models.py:776 models.py:1327
msgid "Slug"
msgstr ""
@@ -566,7 +612,7 @@ msgstr ""
msgid "Description of the variable"
msgstr ""
-#: models.py:849 models.py:1585
+#: models.py:849 models.py:1617
msgid "Value"
msgstr ""
@@ -579,8 +625,10 @@ msgid "Total"
msgstr ""
#: models.py:969 models.py:1093 models.py:1105
+#: templates/ishtar/sheet_person.html:26
#: templates/ishtar/dashboards/dashboard_main_detail.html:135
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
+#: templates/ishtar/wizard/wizard_person.html:20
msgid "Number"
msgstr ""
@@ -600,7 +648,7 @@ msgstr ""
msgid "Document templates"
msgstr ""
-#: models.py:1096 models.py:1106 models.py:1788
+#: models.py:1096 models.py:1106 models.py:1822
msgid "State"
msgstr ""
@@ -612,526 +660,546 @@ msgstr ""
msgid "Departments"
msgstr ""
-#: models.py:1165
+#: models.py:1148
+msgid "Raw phone"
+msgstr ""
+
+#: models.py:1154
+msgid "Alternative address is prefered"
+msgstr ""
+
+#: models.py:1193
msgid "Tel: "
msgstr ""
-#: models.py:1169
+#: models.py:1197
msgid "Mobile: "
msgstr ""
-#: models.py:1173
+#: models.py:1201
msgid "Email: "
msgstr ""
-#: models.py:1178
+#: models.py:1206
msgid "Merge key"
msgstr ""
-#: models.py:1239
+#: models.py:1267
msgid "Organization types"
msgstr ""
-#: models.py:1253
+#: models.py:1283
msgid "Archaeological site"
msgstr ""
-#: models.py:1254
+#: models.py:1284
msgid "Parcels"
msgstr ""
-#: models.py:1256
+#: models.py:1286
msgid "Operation source"
msgstr ""
-#: models.py:1259 views.py:945 views.py:996
+#: models.py:1289 views.py:945 views.py:996
msgid "Archaeological files"
msgstr ""
-#: models.py:1261 views.py:948 views.py:1004
+#: models.py:1291 views.py:948 views.py:1004
msgid "Context records"
msgstr ""
-#: models.py:1263 views.py:950 views.py:1007
+#: models.py:1293
+msgid "Context record relations"
+msgstr ""
+
+#: models.py:1295 views.py:950 views.py:1007
msgid "Finds"
msgstr ""
-#: models.py:1299 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1331 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr ""
-#: models.py:1301
+#: models.py:1333
msgid "Associated model"
msgstr ""
-#: models.py:1304
+#: models.py:1336
msgid "Is template"
msgstr ""
-#: models.py:1305
+#: models.py:1337
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1309
+#: models.py:1341
msgid "Importer - Type"
msgstr ""
-#: models.py:1310
+#: models.py:1342
msgid "Importer - Types"
msgstr ""
-#: models.py:1400
+#: models.py:1432
msgid "Importer - Default"
msgstr ""
-#: models.py:1401
+#: models.py:1433
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1436
+#: models.py:1468
msgid "Importer - Default value"
msgstr ""
-#: models.py:1437
+#: models.py:1469
msgid "Importer - Default values"
msgstr ""
-#: models.py:1469
+#: models.py:1501
msgid "Column number"
msgstr ""
-#: models.py:1472
+#: models.py:1504
msgid "Required"
msgstr ""
-#: models.py:1475
+#: models.py:1507
msgid "Importer - Column"
msgstr ""
-#: models.py:1476
+#: models.py:1508
msgid "Importer - Columns"
msgstr ""
-#: models.py:1496
+#: models.py:1528
msgid "Field name"
msgstr ""
-#: models.py:1498 models.py:1532
+#: models.py:1530 models.py:1564
msgid "Force creation of new items"
msgstr ""
-#: models.py:1500 models.py:1534
+#: models.py:1532 models.py:1566
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1502 models.py:1536
+#: models.py:1534 models.py:1568
msgid "Concatenate character"
msgstr ""
-#: models.py:1506
+#: models.py:1538
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1507
+#: models.py:1539
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1514
+#: models.py:1546
msgid "Regular expression"
msgstr ""
-#: models.py:1517
+#: models.py:1549
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1518
+#: models.py:1550
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1541
+#: models.py:1573
msgid "Importer - Target"
msgstr ""
-#: models.py:1542
+#: models.py:1574
msgid "Importer - Targets"
msgstr ""
-#: models.py:1566 views.py:311
+#: models.py:1598 views.py:311
msgid "True"
msgstr ""
-#: models.py:1567 views.py:313
+#: models.py:1599 views.py:313
msgid "False"
msgstr ""
-#: models.py:1586
+#: models.py:1618
msgid "Is set"
msgstr ""
-#: models.py:1593
+#: models.py:1625
msgid "Importer - Target key"
msgstr ""
-#: models.py:1594
+#: models.py:1626
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1645 models.py:2255 models.py:2266
+#: models.py:1677 models.py:2292 models.py:2303
msgid "Format"
msgstr ""
-#: models.py:1646 models.py:2356
+#: models.py:1678 models.py:2393
msgid "Operation type"
msgstr ""
-#: models.py:1647
+#: models.py:1679
msgid "Period"
msgstr ""
-#: models.py:1648
+#: models.py:1680
msgid "Unit"
msgstr ""
-#: models.py:1649
+#: models.py:1681
msgid "Material"
msgstr ""
-#: models.py:1651
+#: models.py:1683
msgid "Conservatory state"
msgstr ""
-#: models.py:1652
+#: models.py:1684
msgid "Preservation type"
msgstr ""
-#: models.py:1653
+#: models.py:1685
msgid "Object type"
msgstr ""
-#: models.py:1655
+#: models.py:1687
msgid "Identification type"
msgstr ""
-#: models.py:1656 models.py:2249
+#: models.py:1689
+msgid "Context record relation type"
+msgstr ""
+
+#: models.py:1690 models.py:2286
msgid "Support type"
msgstr ""
-#: models.py:1662
+#: models.py:1696
msgid "Integer"
msgstr ""
-#: models.py:1663
+#: models.py:1697
msgid "Float"
msgstr ""
-#: models.py:1664
+#: models.py:1698
msgid "String"
msgstr ""
-#: models.py:1665 templates/sheet_ope.html:86
+#: models.py:1699 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1667 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
-#: templates/ishtar/sheet_person.html:54
+#: models.py:1701 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: templates/ishtar/sheet_person.html:93
#: templates/ishtar/dashboards/dashboard_main_detail.html:120
msgid "Year"
msgstr ""
-#: models.py:1668
+#: models.py:1702
msgid "String to boolean"
msgstr ""
-#: models.py:1669
+#: models.py:1703
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1670
+#: models.py:1704
msgid "Unknow type"
msgstr ""
-#: models.py:1686
+#: models.py:1720
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1687
+#: models.py:1721
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1688
+#: models.py:1722
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1698
+#: models.py:1732
msgid "Options"
msgstr ""
-#: models.py:1700
+#: models.py:1734
msgid "Split character(s)"
msgstr ""
-#: models.py:1704
+#: models.py:1738
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1705
+#: models.py:1739
msgid "Importer - Formater types"
msgstr ""
-#: models.py:1752 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1786 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr ""
-#: models.py:1753
+#: models.py:1787
msgid "Analyse in progress"
msgstr ""
-#: models.py:1754
+#: models.py:1788
msgid "Analysed"
msgstr ""
-#: models.py:1755
+#: models.py:1789
msgid "Import pending"
msgstr ""
-#: models.py:1756
+#: models.py:1790
msgid "Import in progress"
msgstr ""
-#: models.py:1757
+#: models.py:1791
msgid "Finished with errors"
msgstr ""
-#: models.py:1758
+#: models.py:1792
msgid "Finished"
msgstr ""
-#: models.py:1759
+#: models.py:1793
msgid "Archived"
msgstr ""
-#: models.py:1771
+#: models.py:1805
msgid "Imported file"
msgstr ""
-#: models.py:1774
+#: models.py:1808
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:1776
+#: models.py:1810
msgid "Encoding"
msgstr ""
-#: models.py:1778
+#: models.py:1812
msgid "Skip lines"
msgstr ""
-#: models.py:1779 templates/ishtar/import_list.html:47
+#: models.py:1813 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:1782
+#: models.py:1816
msgid "Result file"
msgstr ""
-#: models.py:1785 templates/ishtar/import_list.html:53
+#: models.py:1819 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:1791
+#: models.py:1825
msgid "Conservative import"
msgstr ""
-#: models.py:1796
+#: models.py:1830
msgid "End date"
msgstr ""
-#: models.py:1798
+#: models.py:1832
msgid "Remaining seconds"
msgstr ""
-#: models.py:1803
+#: models.py:1837
msgid "Import"
msgstr ""
-#: models.py:1820
+#: models.py:1854
msgid "Analyse"
msgstr ""
-#: models.py:1822 models.py:1825
+#: models.py:1856 models.py:1859
msgid "Re-analyse"
msgstr ""
-#: models.py:1823
+#: models.py:1857
msgid "Launch import"
msgstr ""
-#: models.py:1826
+#: models.py:1860
msgid "Re-import"
msgstr ""
-#: models.py:1827
+#: models.py:1861
msgid "Archive"
msgstr ""
-#: models.py:1829
+#: models.py:1863
msgid "Unarchive"
msgstr ""
-#: models.py:1962
+#: models.py:1996
msgid "Organizations"
msgstr ""
-#: models.py:1964
+#: models.py:1998
msgid "Can view all Organizations"
msgstr ""
-#: models.py:1965
+#: models.py:1999
msgid "Can view own Organization"
msgstr ""
-#: models.py:1966
+#: models.py:2000
msgid "Can add own Organization"
msgstr ""
-#: models.py:1968
+#: models.py:2002
msgid "Can change own Organization"
msgstr ""
-#: models.py:1970
+#: models.py:2004
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2005
+#: models.py:2039
msgid "Groups"
msgstr ""
-#: models.py:2010
+#: models.py:2044
msgid "Person types"
msgstr ""
-#: models.py:2017
+#: models.py:2051
msgid "Mr"
msgstr ""
-#: models.py:2018
+#: models.py:2052
msgid "Miss"
msgstr ""
-#: models.py:2019
+#: models.py:2053
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2020
+#: models.py:2054
msgid "Mrs"
msgstr ""
-#: models.py:2021
+#: models.py:2055
msgid "Doctor"
msgstr ""
-#: models.py:2033 models.py:2080
+#: models.py:2067
+msgid "Contact type"
+msgstr ""
+
+#: models.py:2070 models.py:2117
msgid "Types"
msgstr ""
-#: models.py:2036
+#: models.py:2073
msgid "Is attached to"
msgstr ""
-#: models.py:2040
+#: models.py:2077
msgid "Persons"
msgstr ""
-#: models.py:2042
+#: models.py:2079
msgid "Can view all Persons"
msgstr ""
-#: models.py:2043
+#: models.py:2080
msgid "Can view own Person"
msgstr ""
-#: models.py:2044
+#: models.py:2081
msgid "Can add own Person"
msgstr ""
-#: models.py:2045
+#: models.py:2082
msgid "Can change own Person"
msgstr ""
-#: models.py:2046
+#: models.py:2083
msgid "Can delete own Person"
msgstr ""
-#: models.py:2172
+#: models.py:2209
msgid "Ishtar user"
msgstr ""
-#: models.py:2173
+#: models.py:2210
msgid "Ishtar users"
msgstr ""
-#: models.py:2218
+#: models.py:2255
msgid "Author types"
msgstr ""
-#: models.py:2244
+#: models.py:2281
msgid "Source types"
msgstr ""
-#: models.py:2250
+#: models.py:2287
msgid "Support types"
msgstr ""
-#: models.py:2256
+#: models.py:2293
msgid "Formats"
msgstr ""
-#: models.py:2261
+#: models.py:2298
msgid "External ID"
msgstr ""
-#: models.py:2264
+#: models.py:2301
msgid "Support"
msgstr ""
-#: models.py:2268
+#: models.py:2305
msgid "Scale"
msgstr ""
-#: models.py:2282
+#: models.py:2319
msgid "Item number"
msgstr ""
-#: models.py:2283
+#: models.py:2320
msgid "Ref."
msgstr ""
-#: models.py:2286
+#: models.py:2323
msgid "Internal ref."
msgstr ""
-#: models.py:2327
+#: models.py:2364
msgid "Surface (m2)"
msgstr ""
-#: models.py:2328 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2365 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2353
+#: models.py:2390
msgid "Is preventive"
msgstr ""
-#: models.py:2357
+#: models.py:2394
msgid "Operation types"
msgstr ""
-#: models.py:2383
+#: models.py:2420
msgid "Preventive"
msgstr ""
-#: models.py:2384
+#: models.py:2421
msgid "Research"
msgstr ""
@@ -1218,7 +1286,7 @@ msgstr ""
msgid "No"
msgstr ""
-#: wizards.py:1211
+#: wizards.py:1215
#, python-format
msgid "[%(app_name)s] Account creation/modification"
msgstr ""
@@ -1493,7 +1561,7 @@ msgstr ""
msgid "Documentation"
msgstr ""
-#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:52
+#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:91
msgid "Documents"
msgstr ""
@@ -1583,7 +1651,7 @@ msgstr ""
#: templates/ishtar/form.html:10 templates/ishtar/formset.html:8
#: templates/ishtar/import_list.html:58 templates/ishtar/merge.html:31
#: templates/ishtar/wizard/confirm_wizard.html:42
-#: templates/ishtar/wizard/default_wizard.html:29
+#: templates/ishtar/wizard/default_wizard.html:30
#: templates/ishtar/wizard/search.html:13
#: templates/ishtar/wizard/validation_bar.html:4
msgid "Validate"
@@ -1721,28 +1789,44 @@ msgid "No person in this organization"
msgstr ""
#: templates/ishtar/sheet_person.html:25
+#: templates/ishtar/wizard/wizard_person.html:19
+msgid "Phone type"
+msgstr ""
+
+#: templates/ishtar/sheet_person.html:48
+#: templates/ishtar/wizard/wizard_person.html:42
+msgid "Business address"
+msgstr ""
+
+#: templates/ishtar/sheet_person.html:56
+#: templates/ishtar/wizard/wizard_person.html:51
+msgid "Other address"
+msgstr ""
+
+#: templates/ishtar/sheet_person.html:64
msgid "Associated organization"
msgstr ""
-#: templates/ishtar/sheet_person.html:36
+#: templates/ishtar/sheet_person.html:75
msgid "Associated operations as scientist"
msgstr ""
-#: templates/ishtar/sheet_person.html:40
+#: templates/ishtar/sheet_person.html:79
msgid "Associated operations as responsible"
msgstr ""
-#: templates/ishtar/sheet_person.html:46
+#: templates/ishtar/sheet_person.html:85
msgid "Associated archaelogical files"
msgstr ""
-#: templates/ishtar/sheet_person.html:57 templates/ishtar/sheet_person.html:65
+#: templates/ishtar/sheet_person.html:96
+#: templates/ishtar/sheet_person.html:104
#: templates/ishtar/blocks/window_tables/documents.html:9
#: templates/ishtar/blocks/window_tables/documents.html:17
msgid "Link"
msgstr ""
-#: templates/ishtar/sheet_person.html:69
+#: templates/ishtar/sheet_person.html:108
msgid "No document associated to this person"
msgstr ""
@@ -1849,7 +1933,7 @@ msgstr ""
msgid "Would you like to save them?"
msgstr ""
-#: templates/ishtar/wizard/default_wizard.html:35
+#: templates/ishtar/wizard/default_wizard.html:36
#: templates/ishtar/wizard/parcels_wizard.html:24
#: templates/ishtar/wizard/relations_wizard.html:23
#: templates/ishtar/wizard/search.html:20
@@ -1857,7 +1941,7 @@ msgstr ""
msgid "Add/Modify"
msgstr ""
-#: templates/ishtar/wizard/default_wizard.html:56
+#: templates/ishtar/wizard/default_wizard.html:58
msgid ""
"The form has changed if you don't validate it all your changes will be lost."
msgstr ""
diff --git a/ishtar_common/menu_base.py b/ishtar_common/menu_base.py
index eb08d8c78..d8ee0775c 100644
--- a/ishtar_common/menu_base.py
+++ b/ishtar_common/menu_base.py
@@ -107,7 +107,8 @@ class MenuItem:
prefix = (self.model._meta.app_label + '.') if self.model else ''
for access_control in self.access_controls:
access_control = prefix + access_control
- if user.has_perm(access_control, self.model, obj):
+ if user.has_perm(access_control, self.model, obj=obj,
+ session=session):
return True
# manage by person type
if hasattr(user, 'ishtaruser'):
diff --git a/ishtar_common/menus.py b/ishtar_common/menus.py
index e55b288bf..36b53b162 100644
--- a/ishtar_common/menus.py
+++ b/ishtar_common/menus.py
@@ -59,12 +59,20 @@ class Menu:
self.current_action = current_action
self.selected_idx = None
self.session = session
+ self.items_by_idx = {}
def init(self):
if self.initialized:
return
self.items = {}
+ self.items_by_idx = {}
for idx, main_menu in enumerate(self.childs):
+ self.items_by_idx[main_menu.idx] = main_menu
+ for child in main_menu.childs:
+ self.items_by_idx[child.idx] = child
+ if hasattr(child, 'childs'):
+ for subchild in child.childs:
+ self.items_by_idx[subchild.idx] = subchild
selected = main_menu.set_items(
self.user, self.items,
self.current_action, session=self.session)
diff --git a/ishtar_common/migrations/0049_auto__add_field_person_alt_address__add_field_person_alt_address_compl.py b/ishtar_common/migrations/0049_auto__add_field_person_alt_address__add_field_person_alt_address_compl.py
new file mode 100644
index 000000000..d64e3a964
--- /dev/null
+++ b/ishtar_common/migrations/0049_auto__add_field_person_alt_address__add_field_person_alt_address_compl.py
@@ -0,0 +1,699 @@
+# -*- 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 'Person.alt_address'
+ db.add_column('ishtar_common_person', 'alt_address',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.alt_address_complement'
+ db.add_column('ishtar_common_person', 'alt_address_complement',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.alt_postal_code'
+ db.add_column('ishtar_common_person', 'alt_postal_code',
+ self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.alt_town'
+ db.add_column('ishtar_common_person', 'alt_town',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.alt_country'
+ db.add_column('ishtar_common_person', 'alt_country',
+ self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.phone_desc'
+ db.add_column('ishtar_common_person', 'phone_desc',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.phone2'
+ db.add_column('ishtar_common_person', 'phone2',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.phone_desc2'
+ db.add_column('ishtar_common_person', 'phone_desc2',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.phone3'
+ db.add_column('ishtar_common_person', 'phone3',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.phone_desc3'
+ db.add_column('ishtar_common_person', 'phone_desc3',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.raw_phone'
+ db.add_column('ishtar_common_person', 'raw_phone',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.alt_address_is_prefered'
+ db.add_column('ishtar_common_person', 'alt_address_is_prefered',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+ # Adding field 'Person.contact_type'
+ db.add_column('ishtar_common_person', 'contact_type',
+ self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Person.comment'
+ db.add_column('ishtar_common_person', 'comment',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_address'
+ db.add_column('ishtar_common_historicalorganization', 'alt_address',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_address_complement'
+ db.add_column('ishtar_common_historicalorganization', 'alt_address_complement',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_postal_code'
+ db.add_column('ishtar_common_historicalorganization', 'alt_postal_code',
+ self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_town'
+ db.add_column('ishtar_common_historicalorganization', 'alt_town',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_country'
+ db.add_column('ishtar_common_historicalorganization', 'alt_country',
+ self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.phone_desc'
+ db.add_column('ishtar_common_historicalorganization', 'phone_desc',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.phone2'
+ db.add_column('ishtar_common_historicalorganization', 'phone2',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.phone_desc2'
+ db.add_column('ishtar_common_historicalorganization', 'phone_desc2',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.phone3'
+ db.add_column('ishtar_common_historicalorganization', 'phone3',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.phone_desc3'
+ db.add_column('ishtar_common_historicalorganization', 'phone_desc3',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.raw_phone'
+ db.add_column('ishtar_common_historicalorganization', 'raw_phone',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'HistoricalOrganization.alt_address_is_prefered'
+ db.add_column('ishtar_common_historicalorganization', 'alt_address_is_prefered',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_address'
+ db.add_column('ishtar_common_organization', 'alt_address',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_address_complement'
+ db.add_column('ishtar_common_organization', 'alt_address_complement',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_postal_code'
+ db.add_column('ishtar_common_organization', 'alt_postal_code',
+ self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_town'
+ db.add_column('ishtar_common_organization', 'alt_town',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_country'
+ db.add_column('ishtar_common_organization', 'alt_country',
+ self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.phone_desc'
+ db.add_column('ishtar_common_organization', 'phone_desc',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.phone2'
+ db.add_column('ishtar_common_organization', 'phone2',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.phone_desc2'
+ db.add_column('ishtar_common_organization', 'phone_desc2',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.phone3'
+ db.add_column('ishtar_common_organization', 'phone3',
+ self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.phone_desc3'
+ db.add_column('ishtar_common_organization', 'phone_desc3',
+ self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.raw_phone'
+ db.add_column('ishtar_common_organization', 'raw_phone',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Organization.alt_address_is_prefered'
+ db.add_column('ishtar_common_organization', 'alt_address_is_prefered',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'Person.alt_address'
+ db.delete_column('ishtar_common_person', 'alt_address')
+
+ # Deleting field 'Person.alt_address_complement'
+ db.delete_column('ishtar_common_person', 'alt_address_complement')
+
+ # Deleting field 'Person.alt_postal_code'
+ db.delete_column('ishtar_common_person', 'alt_postal_code')
+
+ # Deleting field 'Person.alt_town'
+ db.delete_column('ishtar_common_person', 'alt_town')
+
+ # Deleting field 'Person.alt_country'
+ db.delete_column('ishtar_common_person', 'alt_country')
+
+ # Deleting field 'Person.phone_desc'
+ db.delete_column('ishtar_common_person', 'phone_desc')
+
+ # Deleting field 'Person.phone2'
+ db.delete_column('ishtar_common_person', 'phone2')
+
+ # Deleting field 'Person.phone_desc2'
+ db.delete_column('ishtar_common_person', 'phone_desc2')
+
+ # Deleting field 'Person.phone3'
+ db.delete_column('ishtar_common_person', 'phone3')
+
+ # Deleting field 'Person.phone_desc3'
+ db.delete_column('ishtar_common_person', 'phone_desc3')
+
+ # Deleting field 'Person.raw_phone'
+ db.delete_column('ishtar_common_person', 'raw_phone')
+
+ # Deleting field 'Person.alt_address_is_prefered'
+ db.delete_column('ishtar_common_person', 'alt_address_is_prefered')
+
+ # Deleting field 'Person.contact_type'
+ db.delete_column('ishtar_common_person', 'contact_type')
+
+ # Deleting field 'Person.comment'
+ db.delete_column('ishtar_common_person', 'comment')
+
+ # Deleting field 'HistoricalOrganization.alt_address'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_address')
+
+ # Deleting field 'HistoricalOrganization.alt_address_complement'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_address_complement')
+
+ # Deleting field 'HistoricalOrganization.alt_postal_code'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_postal_code')
+
+ # Deleting field 'HistoricalOrganization.alt_town'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_town')
+
+ # Deleting field 'HistoricalOrganization.alt_country'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_country')
+
+ # Deleting field 'HistoricalOrganization.phone_desc'
+ db.delete_column('ishtar_common_historicalorganization', 'phone_desc')
+
+ # Deleting field 'HistoricalOrganization.phone2'
+ db.delete_column('ishtar_common_historicalorganization', 'phone2')
+
+ # Deleting field 'HistoricalOrganization.phone_desc2'
+ db.delete_column('ishtar_common_historicalorganization', 'phone_desc2')
+
+ # Deleting field 'HistoricalOrganization.phone3'
+ db.delete_column('ishtar_common_historicalorganization', 'phone3')
+
+ # Deleting field 'HistoricalOrganization.phone_desc3'
+ db.delete_column('ishtar_common_historicalorganization', 'phone_desc3')
+
+ # Deleting field 'HistoricalOrganization.raw_phone'
+ db.delete_column('ishtar_common_historicalorganization', 'raw_phone')
+
+ # Deleting field 'HistoricalOrganization.alt_address_is_prefered'
+ db.delete_column('ishtar_common_historicalorganization', 'alt_address_is_prefered')
+
+ # Deleting field 'Organization.alt_address'
+ db.delete_column('ishtar_common_organization', 'alt_address')
+
+ # Deleting field 'Organization.alt_address_complement'
+ db.delete_column('ishtar_common_organization', 'alt_address_complement')
+
+ # Deleting field 'Organization.alt_postal_code'
+ db.delete_column('ishtar_common_organization', 'alt_postal_code')
+
+ # Deleting field 'Organization.alt_town'
+ db.delete_column('ishtar_common_organization', 'alt_town')
+
+ # Deleting field 'Organization.alt_country'
+ db.delete_column('ishtar_common_organization', 'alt_country')
+
+ # Deleting field 'Organization.phone_desc'
+ db.delete_column('ishtar_common_organization', 'phone_desc')
+
+ # Deleting field 'Organization.phone2'
+ db.delete_column('ishtar_common_organization', 'phone2')
+
+ # Deleting field 'Organization.phone_desc2'
+ db.delete_column('ishtar_common_organization', 'phone_desc2')
+
+ # Deleting field 'Organization.phone3'
+ db.delete_column('ishtar_common_organization', 'phone3')
+
+ # Deleting field 'Organization.phone_desc3'
+ db.delete_column('ishtar_common_organization', 'phone_desc3')
+
+ # Deleting field 'Organization.raw_phone'
+ db.delete_column('ishtar_common_organization', 'raw_phone')
+
+ # Deleting field 'Organization.alt_address_is_prefered'
+ db.delete_column('ishtar_common_organization', 'alt_address_is_prefered')
+
+
+ models = {
+ '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.formatertype': {
+ 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'},
+ 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.globalvar': {
+ 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'},
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.historicalorganization': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'},
+ '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'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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': '300'}),
+ 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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.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.importercolumn': {
+ 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'},
+ 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'ishtar_common.importerdefault': {
+ 'Meta': {'object_name': 'ImporterDefault'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerdefaultvalues': {
+ 'Meta': {'object_name': 'ImporterDefaultValues'},
+ 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerduplicatefield': {
+ 'Meta': {'object_name': 'ImporterDuplicateField'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ '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.importtarget': {
+ 'Meta': {'object_name': 'ImportTarget'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.ishtarsiteprofile': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ '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.itemkey': {
+ 'Meta': {'object_name': 'ItemKey'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {})
+ },
+ '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'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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': '300'}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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'}),
+ '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': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '70', '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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.regexp': {
+ 'Meta': {'object_name': 'Regexp'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ '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.targetkey': {
+ 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'},
+ 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ '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'}),
+ '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 = ['ishtar_common'] \ No newline at end of file
diff --git a/ishtar_common/migrations/0050_auto__chg_field_person_phone_desc3__chg_field_person_phone_desc2__chg_.py b/ishtar_common/migrations/0050_auto__chg_field_person_phone_desc3__chg_field_person_phone_desc2__chg_.py
new file mode 100644
index 000000000..b68b3b9bb
--- /dev/null
+++ b/ishtar_common/migrations/0050_auto__chg_field_person_phone_desc3__chg_field_person_phone_desc2__chg_.py
@@ -0,0 +1,479 @@
+# -*- 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):
+
+ # Changing field 'Person.phone_desc3'
+ db.alter_column('ishtar_common_person', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Person.phone_desc2'
+ db.alter_column('ishtar_common_person', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Person.phone_desc'
+ db.alter_column('ishtar_common_person', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Person.email'
+ db.alter_column('ishtar_common_person', 'email', self.gf('django.db.models.fields.EmailField')(max_length=300, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc3'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc2'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'HistoricalOrganization.name'
+ db.alter_column('ishtar_common_historicalorganization', 'name', self.gf('django.db.models.fields.CharField')(max_length=500))
+
+ # Changing field 'HistoricalOrganization.email'
+ db.alter_column('ishtar_common_historicalorganization', 'email', self.gf('django.db.models.fields.EmailField')(max_length=300, null=True))
+
+ # Changing field 'Organization.phone_desc3'
+ db.alter_column('ishtar_common_organization', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Organization.phone_desc2'
+ db.alter_column('ishtar_common_organization', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Organization.phone_desc'
+ db.alter_column('ishtar_common_organization', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=300, null=True))
+
+ # Changing field 'Organization.email'
+ db.alter_column('ishtar_common_organization', 'email', self.gf('django.db.models.fields.EmailField')(max_length=300, null=True))
+
+ # Changing field 'Organization.name'
+ db.alter_column('ishtar_common_organization', 'name', self.gf('django.db.models.fields.CharField')(max_length=500))
+
+ def backwards(self, orm):
+
+ # Changing field 'Person.phone_desc3'
+ db.alter_column('ishtar_common_person', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Person.phone_desc2'
+ db.alter_column('ishtar_common_person', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Person.phone_desc'
+ db.alter_column('ishtar_common_person', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Person.email'
+ db.alter_column('ishtar_common_person', 'email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc3'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc2'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'HistoricalOrganization.phone_desc'
+ db.alter_column('ishtar_common_historicalorganization', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'HistoricalOrganization.name'
+ db.alter_column('ishtar_common_historicalorganization', 'name', self.gf('django.db.models.fields.CharField')(max_length=300))
+
+ # Changing field 'HistoricalOrganization.email'
+ db.alter_column('ishtar_common_historicalorganization', 'email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True))
+
+ # Changing field 'Organization.phone_desc3'
+ db.alter_column('ishtar_common_organization', 'phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Organization.phone_desc2'
+ db.alter_column('ishtar_common_organization', 'phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Organization.phone_desc'
+ db.alter_column('ishtar_common_organization', 'phone_desc', self.gf('django.db.models.fields.CharField')(max_length=70, null=True))
+
+ # Changing field 'Organization.email'
+ db.alter_column('ishtar_common_organization', 'email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True))
+
+ # Changing field 'Organization.name'
+ db.alter_column('ishtar_common_organization', 'name', self.gf('django.db.models.fields.CharField')(max_length=300))
+
+ models = {
+ '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.formatertype': {
+ 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'},
+ 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.globalvar': {
+ 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'},
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.historicalorganization': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'},
+ '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ '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.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.importercolumn': {
+ 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'},
+ 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'ishtar_common.importerdefault': {
+ 'Meta': {'object_name': 'ImporterDefault'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerdefaultvalues': {
+ 'Meta': {'object_name': 'ImporterDefaultValues'},
+ 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.importerduplicatefield': {
+ 'Meta': {'object_name': 'ImporterDuplicateField'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ '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.importtarget': {
+ 'Meta': {'object_name': 'ImportTarget'},
+ 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}),
+ 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}),
+ 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ 'ishtar_common.ishtarsiteprofile': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'},
+ 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ '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.itemkey': {
+ 'Meta': {'object_name': 'ItemKey'},
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {})
+ },
+ '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', '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'}),
+ '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'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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.regexp': {
+ 'Meta': {'object_name': 'Regexp'},
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'})
+ },
+ '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.targetkey': {
+ 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'},
+ 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}),
+ 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'key': ('django.db.models.fields.TextField', [], {}),
+ 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}),
+ 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'})
+ },
+ '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'}),
+ '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 = ['ishtar_common'] \ No newline at end of file
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 2a12edc02..9509b36a6 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1124,11 +1124,34 @@ class Address(BaseHistorizedItem):
town = models.CharField(_(u"Town"), max_length=70, null=True, blank=True)
country = models.CharField(_(u"Country"), max_length=30, null=True,
blank=True)
+ alt_address = models.TextField(_(u"Other address: address"), null=True,
+ blank=True)
+ alt_address_complement = models.TextField(
+ _(u"Other address: address complement"), null=True, blank=True)
+ alt_postal_code = models.CharField(_(u"Other address: postal code"),
+ max_length=10, null=True, blank=True)
+ alt_town = models.CharField(_(u"Other address: town"), max_length=70,
+ null=True, blank=True)
+ alt_country = models.CharField(_(u"Other address: country"),
+ max_length=30, null=True, blank=True)
phone = models.CharField(_(u"Phone"), max_length=18, null=True, blank=True)
+ phone_desc = models.CharField(_(u"Phone description"), max_length=300,
+ null=True, blank=True)
+ phone2 = models.CharField(_(u"Phone description 2"), max_length=18,
+ null=True, blank=True)
+ phone_desc2 = models.CharField(_(u"Phone description 2"), max_length=300,
+ null=True, blank=True)
+ phone3 = models.CharField(_(u"Phone 3"), max_length=18, null=True,
+ blank=True)
+ phone_desc3 = models.CharField(_(u"Phone description 3"), max_length=300,
+ null=True, blank=True)
+ raw_phone = models.TextField(_(u"Raw phone"), blank=True, null=True)
mobile_phone = models.CharField(_(u"Mobile phone"), max_length=18,
null=True, blank=True)
email = models.EmailField(
- _(u"Email"), max_length=75, blank=True, null=True)
+ _(u"Email"), max_length=300, blank=True, null=True)
+ alt_address_is_prefered = models.BooleanField(
+ _(u"Alternative address is prefered"), default=False)
history = HistoricalRecords()
class Meta:
@@ -1146,19 +1169,24 @@ class Address(BaseHistorizedItem):
def address_lbl(self):
lbl = u''
- if self.address:
- lbl += self.address
- if self.address_complement:
+ prefix = ''
+ if self.alt_address_is_prefered:
+ prefix = 'alt_'
+ if getattr(self, prefix + 'address'):
+ lbl += getattr(self, prefix + 'address')
+ if getattr(self, prefix + 'address_complement'):
if lbl:
lbl += "\n"
- lbl += self.address_complement
- if self.postal_code or self.town:
+ lbl += getattr(self, prefix + 'address_complement')
+ postal_code = getattr(self, prefix + 'postal_code')
+ town = getattr(self, prefix + 'town')
+ if postal_code or town:
if lbl:
lbl += "\n"
lbl += u"{}{}{}".format(
- self.postal_code or '',
- " " if self.postal_code and self.town else '',
- self.town or '')
+ postal_code or '',
+ " " if postal_code and town else '',
+ town or '')
if self.phone:
if lbl:
lbl += u"\n"
@@ -1248,6 +1276,8 @@ IMPORTER_CLASSES.update({
def get_importer_models():
MODELS = [
+ ('ishtar_common.models.Person', _(u"Person")),
+ ('ishtar_common.models.Organization', _(u"Organization")),
('archaeological_operations.models.Operation', _(u"Operation")),
('archaeological_operations.models.ArchaeologicalSite',
_(u"Archaeological site")),
@@ -1258,7 +1288,9 @@ def get_importer_models():
MODELS = [('archaeological_files.models.File',
_(u"Archaeological files"))] + MODELS
MODELS = [('archaeological_context_records.models.ContextRecord',
- _(u"Context records")), ] + MODELS
+ _(u"Context records")),
+ ('archaeological_context_records.models.RecordRelations',
+ _(u"Context record relations"))] + MODELS
MODELS = [('archaeological_finds.models.BaseFind',
_(u"Finds")), ] + MODELS
return MODELS
@@ -1653,6 +1685,8 @@ TARGET_MODELS = [
('archaeological_finds.models.ObjectType', _(u"Object type")),
('archaeological_context_records.models.IdentificationType',
_("Identification type")),
+ ('archaeological_context_records.models.RelationType',
+ _(u"Context record relation type")),
('SupportType', _(u"Support type")),
]
@@ -1952,7 +1986,7 @@ pre_delete.connect(pre_delete_import, sender=Import)
class Organization(Address, Merge, OwnPerms, ValueGetter):
TABLE_COLS = ('name', 'organization_type',)
- name = models.CharField(_(u"Name"), max_length=300)
+ name = models.CharField(_(u"Name"), max_length=500)
organization_type = models.ForeignKey(OrganizationType,
verbose_name=_(u"Type"))
history = HistoricalRecords()
@@ -2022,6 +2056,8 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
)
TABLE_COLS = ('name', 'surname', 'raw_name', 'email', 'person_types_list',
'attached_to')
+ SHOW_URL = 'show-person'
+ MODIFY_URL = 'person_modify'
title = models.CharField(_(u"Title"), max_length=100, choices=TYPE,
blank=True, null=True)
surname = models.CharField(_(u"Surname"), max_length=50, blank=True,
@@ -2030,6 +2066,9 @@ class Person(Address, Merge, OwnPerms, ValueGetter):
null=True)
raw_name = models.CharField(_(u"Raw name"), max_length=300, blank=True,
null=True)
+ contact_type = models.CharField(_(u"Contact type"), max_length=300,
+ blank=True, null=True)
+ comment = models.TextField(_(u"Comment"), blank=True, null=True)
person_types = models.ManyToManyField(PersonType, verbose_name=_(u"Types"))
attached_to = models.ForeignKey(
'Organization', related_name='members', on_delete=models.SET_NULL,
@@ -2199,7 +2238,7 @@ class IshtarUser(User):
def full_label(self):
return self.person.full_label()
- def has_perm(self, perm, model=None, session=None):
+ def has_perm(self, perm, model=None, session=None, obj=None):
if not session:
return super(IshtarUser, self).has_perm(perm, model)
cache_key = 'usersession-{}-{}'.format(session.session_key, perm,
@@ -2207,7 +2246,7 @@ class IshtarUser(User):
res = cache.get(cache_key)
if res in (True, False):
return res
- res = super(IshtarUser, self).has_perm(perm, model)
+ res = super(IshtarUser, self).has_perm(perm, obj)
cache.set(cache_key, res, settings.CACHE_SMALLTIMEOUT)
return res
diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css
index 4467a0639..1590c1738 100644
--- a/ishtar_common/static/media/style.css
+++ b/ishtar_common/static/media/style.css
@@ -57,6 +57,12 @@ div.form {
border-bottom:1px solid #D14;
}
+hr.spacer{
+ clear:both;
+ border:0;
+ margin: 13px;
+}
+
/* shadows */
#progress-content,
.sheet{
@@ -1103,3 +1109,31 @@ a.remove{
background-image: none;
}
+table.table-form{
+ background: #fff;
+ border-collapse: collapse;
+ text-align: center;
+ padding: 10px 8px;
+}
+
+#window table.table-form{
+ margin: 10px 80px;
+}
+
+table.table-form th {
+ text-align: center;
+ font-weight: normal;
+ padding: 8px 6px;
+ color: #922;
+ border-bottom: 2px solid #922;
+}
+
+table.table-form td {
+ text-align: center;
+ color: #666;
+ padding: 6px 15px;
+}
+
+table.table-form td input{
+ border-color:#922;
+}
diff --git a/ishtar_common/templates/blocks/table_field.html b/ishtar_common/templates/blocks/table_field.html
new file mode 100644
index 000000000..97d63ef46
--- /dev/null
+++ b/ishtar_common/templates/blocks/table_field.html
@@ -0,0 +1,4 @@
+ <tr{% if required %} class='required'{% endif %}>
+ <th>{% if label %}{{label}}{% else %}{{ field.label_tag }}{% endif %}</th>
+ <td> {{ field.errors }}{{field|safe}}</td>
+ </tr>
diff --git a/ishtar_common/templates/ishtar/blocks/modify_toolbar.html b/ishtar_common/templates/ishtar/blocks/modify_toolbar.html
new file mode 100644
index 000000000..6f8cc7584
--- /dev/null
+++ b/ishtar_common/templates/ishtar/blocks/modify_toolbar.html
@@ -0,0 +1 @@
+{% load i18n link_to_window %}{% if item %}<div class='tool modify'><a href='{{item|link_to_modify}}'>{% trans "Modify" %}</a></div>{% endif %}
diff --git a/ishtar_common/templates/ishtar/sheet.html b/ishtar_common/templates/ishtar/sheet.html
index 1302e4637..714bfa762 100644
--- a/ishtar_common/templates/ishtar/sheet.html
+++ b/ishtar_common/templates/ishtar/sheet.html
@@ -44,6 +44,7 @@ jQuery(document).ready(function(){
});
</script>
{% endblock %}
+{% block header_title %}{% endblock %}
<div class="body">
{% block toolbar %}{% endblock %}
{% block content %}
diff --git a/ishtar_common/templates/ishtar/sheet_person.html b/ishtar_common/templates/ishtar/sheet_person.html
index 796fe2c4a..f63bbc588 100644
--- a/ishtar_common/templates/ishtar/sheet_person.html
+++ b/ishtar_common/templates/ishtar/sheet_person.html
@@ -1,13 +1,11 @@
{% extends "ishtar/sheet.html" %}
{% load i18n window_field window_tables %}
-{% block head_sheet %}
-{{block.super}}
-<h1>{% trans "Person"%}</h1>
-{% endblock %}
+{% block header_title %}<h1>{% trans "Person"%}</h1>{% endblock %}
+{% block toolbar %}{% include "ishtar/sheet_toolbar.html" %}{% endblock %}
{% block content %}
-<div class='tool'>{%trans "Export as:"%} <a href='{% url show-person item.pk "odt" %}'>{%trans "OpenOffice.org file"%}</a>, <a href='{% url show-person item.pk "pdf" %}'>{%trans "PDF file"%}</a></div>
+<h3>{% trans "Identity" %}</h3>
{% field "Name" item.name %}
{% field "Surname" item.surname %}
@@ -15,12 +13,49 @@
{% field "Created by" item.history_creator.ishtaruser.full_label %}
{% field "Email" item.email %}
{% field "Type(s)" item.person_types_list %}
+
+{% if item.phone or item.phone2 or item.phone3 or item.mobile_phone %}
+<table class='formset table-form'>
+ <caption>{% trans "Phone" %}</caption>
+ <tr>
+ <th>{% trans "Phone type" %}</th>
+ <th>{% trans "Number" %}</th>
+ </tr>
+ {% if item.phone or item.phone_desc %}<tr>
+ <td>{% if item.phone_desc %}{{item.phone_desc}}{% else %}&ndash;{% endif %}</td>
+ <td>{% if item.phone %}{{item.phone}}{% else %}&ndash;{% endif %}</td>
+ </tr>{% endif %}
+ {% if item.phone2 or item.phone_desc2 %}<tr>
+ <td>{% if item.phone_desc2 %}{{item.phone_desc2}}{% else %}&ndash;{% endif %}</td>
+ <td>{% if item.phone2 %}{{item.phone2}}{% else %}&ndash;{% endif %}</td>
+ </tr>{% endif %}
+ {% if item.phone3 or item.phone_desc3 %}<tr>
+ <td>{% if item.phone_desc3 %}{{item.phone_desc3}}{% else %}&ndash;{% endif %}</td>
+ <td>{% if item.phone3 %}{{item.phone3}}{% else %}&ndash;{% endif %}</td>
+ </tr>{% endif %}
+ {% if item.mobile_phone %}<tr>
+ <td>{% trans "Mobile phone" %}</td>
+ <td>{{item.mobile_phone}}</td>
+ </tr>{% endif %}
+</table>
+{% endif %}
+
+{% if item.address or item.postal_code or item.town %}
+<h3>{% trans "Business address" %}</h3>
{% field "Address" item.address %}
{% field "Address complement" item.address_complement %}
{% field "Postal code" item.postal_code %}
{% field "Town" item.town %}
-{% field "Phone" item.phone %}
-{% field "Mobile phone" item.mobile_phone %}
+{% endif %}
+
+{% if item.alt_address or item.alt_postal_code or item.alt_town %}
+<h3>{% trans "Other address" %}</h3>
+{% field "Address" item.alt_address %}
+{% field "Address complement" item.alt_address_complement %}
+{% field "Postal code" item.alt_postal_code %}
+{% field "Town" item.alt_town %}
+{% endif %}
+
{% if item.attached_to %}<h3>{% trans "Associated organization"%}</h3>
{% field "Name" item.attached_to %}
diff --git a/ishtar_common/templates/ishtar/sheet_toolbar.html b/ishtar_common/templates/ishtar/sheet_toolbar.html
index 2e059781e..7e2c1659a 100644
--- a/ishtar_common/templates/ishtar/sheet_toolbar.html
+++ b/ishtar_common/templates/ishtar/sheet_toolbar.html
@@ -1,2 +1,2 @@
{% load i18n link_to_window %}<div class='tool'>{%trans "Export as:"%} <a href='{{item|link_to_odt}}'>{%trans "OpenOffice.org file"%}</a>, <a href='{{item|link_to_pdf}}'>{%trans "PDF file"%}</a></div>
-
+{% modify_toolbar item "person_modification" %}
diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html
index 1a17cf32b..6491b7a0f 100644
--- a/ishtar_common/templates/ishtar/wizard/default_wizard.html
+++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html
@@ -24,6 +24,7 @@
<div class='form'>
{{ wizard.form.media }}
{{ wizard.management_form }}
+{% block form_detail %}
{% if wizard.form.forms %}
{{ wizard.form.management_form }}
<div class='top_button'><input type="submit" id="submit_form" value="{% trans "Validate" %}"/></div>
@@ -39,6 +40,7 @@
{% table_form wizard.form %}
{% if not is_search %}</table>{% endif %}
{% endif %}
+{% endblock %}
<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
{{ previous_fields|safe }}
{% block "validation_bar" %}
diff --git a/ishtar_common/templates/ishtar/wizard/wizard_person.html b/ishtar_common/templates/ishtar/wizard/wizard_person.html
new file mode 100644
index 000000000..85bbfc75e
--- /dev/null
+++ b/ishtar_common/templates/ishtar/wizard/wizard_person.html
@@ -0,0 +1,59 @@
+{% extends "ishtar/wizard/default_wizard.html" %}
+{% load i18n range table_form %}
+{% block form_detail %}
+
+<table class='formset'>
+ <caption>{% trans "Identity" %}</caption>
+ {% table_field wizard.form.title %}
+ {% table_field wizard.form.surname 1 %}
+ {% table_field wizard.form.name 1 %}
+ {% table_field wizard.form.raw_name %}
+ {% table_field wizard.form.email %}
+ {% table_field wizard.form.attached_to %}
+</table>
+
+<hr class='spacer'/>
+<table class='formset table-form'>
+ <caption>{% trans "Phone" %}</caption>
+ <tr>
+ <th>{% trans "Phone type" %}</th>
+ <th>{% trans "Number" %}</th>
+ </tr>
+ <tr>
+ <td>{{ wizard.form.phone_desc.errors }}{{wizard.form.phone_desc|safe}}</td>
+ <td>{{ wizard.form.phone.errors }}{{wizard.form.phone|safe}}</td>
+ </tr>
+ <tr>
+ <td>{{ wizard.form.phone_desc2.errors }}{{wizard.form.phone_desc2|safe}}</td>
+ <td>{{ wizard.form.phone2.errors }}{{wizard.form.phone2|safe}}</td>
+ </tr>
+ <tr>
+ <td>{{ wizard.form.phone_desc3.errors }}{{wizard.form.phone_desc3|safe}}</td>
+ <td>{{ wizard.form.phone3.errors }}{{wizard.form.phone3|safe}}</td>
+ </tr>
+ <tr>
+ <td>{% trans "Mobile phone" %}</td>
+ <td>{{ wizard.form.mobile_phone.errors }}{{wizard.form.mobile_phone|safe}}</td>
+ </tr>
+</table>
+<hr class='spacer'/>
+
+<table class='formset'>
+ <caption>{% trans "Business address" %}</caption>
+ {% table_field wizard.form.address %}
+ {% table_field wizard.form.address_complement %}
+ {% table_field wizard.form.postal_code %}
+ {% table_field wizard.form.town %}
+ {% table_field wizard.form.country %}
+</table>
+<hr class='spacer'/>
+<table class='formset'>
+ <caption>{% trans "Other address" %}</caption>
+ {% table_field wizard.form.alt_address 0 'Address' %}
+ {% table_field wizard.form.alt_address_complement 0 'Address complement' %}
+ {% table_field wizard.form.alt_postal_code 0 'Postal code' %}
+ {% table_field wizard.form.alt_town 0 'Town' %}
+ {% table_field wizard.form.alt_country 0 'Country' %}
+</table>
+
+{% endblock %}
diff --git a/ishtar_common/templatetags/link_to_window.py b/ishtar_common/templatetags/link_to_window.py
index 65e8b23ca..5ff928bb1 100644
--- a/ishtar_common/templatetags/link_to_window.py
+++ b/ishtar_common/templatetags/link_to_window.py
@@ -24,3 +24,25 @@ def link_to_odt(item):
@register.filter
def link_to_pdf(item):
return reverse(item.SHOW_URL, args=[item.pk, 'pdf'])
+
+
+@register.filter
+def link_to_modify(item):
+ if not hasattr(item, 'MODIFY_URL') or not item:
+ return ""
+ return reverse(item.MODIFY_URL, args=[item.pk])
+
+
+@register.inclusion_tag('ishtar/blocks/modify_toolbar.html',
+ takes_context=True)
+def modify_toolbar(context, item, action):
+ request = context.get('request')
+ items_by_idx = request.session['MENU'].items_by_idx.keys()
+ if action not in items_by_idx:
+ return {}
+ menu = request.session['MENU'].items_by_idx[action]
+ user = request.user
+ if not hasattr(user, 'ishtaruser') or \
+ not menu.is_available(user.ishtaruser, item):
+ return {}
+ return {'item': item}
diff --git a/ishtar_common/templatetags/table_form.py b/ishtar_common/templatetags/table_form.py
index 6ee99b9a5..596301f89 100644
--- a/ishtar_common/templatetags/table_form.py
+++ b/ishtar_common/templatetags/table_form.py
@@ -2,6 +2,7 @@
# -*- coding: utf-8 -*-
from django.template import Library
+from django.utils.translation import ugettext_lazy as _
register = Library()
@@ -9,3 +10,10 @@ register = Library()
@register.inclusion_tag('blocks/form_snippet.html')
def table_form(form):
return {'form': form}
+
+
+@register.inclusion_tag('blocks/table_field.html')
+def table_field(field, required=False, label=None):
+ if label:
+ label = _(label)
+ return {'field': field, 'required': required, 'label': label}
diff --git a/ishtar_common/urls.py b/ishtar_common/urls.py
index 036494354..a3bcaffb5 100644
--- a/ishtar_common/urls.py
+++ b/ishtar_common/urls.py
@@ -43,6 +43,8 @@ urlpatterns = patterns(
url(r'person_modification/(?P<step>.+)?$',
check_rights(['change_person', 'change_own_person'])(
views.person_modification_wizard), name='person_modification'),
+ url(r'person_modify/(?P<pk>.+)/$', views.person_modify,
+ name='person_modify'),
url(r'person_deletion/(?P<step>.+)?$',
check_rights(['change_person', 'change_own_person'])(
views.person_deletion_wizard), name='person_deletion'),
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 54eb9164f..296d56648 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -103,6 +103,15 @@ person_modification_wizard = wizards.PersonModifWizard.as_view(
label=_(u"Person modification"),
url_name='person_modification')
+
+def person_modify(request, pk):
+ person_modification_wizard(request)
+ wizards.PersonModifWizard.session_set_value(
+ request, 'selec-person_modification', 'pk', pk, reset=True)
+ return redirect(reverse('person_modification',
+ kwargs={'step': 'identity-person_modification'}))
+
+
person_deletion_wizard = wizards.PersonDeletionWizard.as_view(
[('selec-person_deletion', forms.PersonFormSelection),
('final-person_deletion', FinalDeleteForm)],
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index 0b121fd76..e974942b7 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -1112,10 +1112,14 @@ class ClosingWizard(Wizard):
class PersonWizard(Wizard):
model = models.Person
+ wizard_templates = {
+ 'identity-person_creation': "ishtar/wizard/wizard_person.html"}
class PersonModifWizard(PersonWizard):
modification = True
+ wizard_templates = {
+ 'identity-person_modification': "ishtar/wizard/wizard_person.html"}
class PersonDeletionWizard(DeletionWizard):
diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po
index 7d679c1f8..c2aca222b 100644
--- a/translations/fr/archaeological_context_records.po
+++ b/translations/fr/archaeological_context_records.po
@@ -3,19 +3,20 @@
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.
# Valérie-Emma Leroux <emma@iggdrasil.net>, 2016. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata
msgid ""
msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-02-24 10:48-0500\n"
-"Last-Translator: Valérie-Emma Leroux <emma@iggdrasil.net>\n"
+"PO-Revision-Date: 2016-04-07 09:18-0400\n"
+"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.8.2\n"
-#: forms.py:45 forms.py:104 models.py:125
+#: forms.py:45 forms.py:112 models.py:125
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr "Identifiant"
@@ -36,7 +37,7 @@ msgstr "Numéro de l'opération (index par année)"
msgid "Archaelogical site"
msgstr "Entité Archéologique"
-#: forms.py:59 forms.py:170 models.py:48
+#: forms.py:59 forms.py:178 models.py:48
msgid "Period"
msgstr "Période"
@@ -48,158 +49,162 @@ msgstr "Type d'unité"
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:79 forms.py:266 views.py:78
+#: forms.py:63
+msgid "Search within relations"
+msgstr "Recherche parmi les relations"
+
+#: forms.py:87 forms.py:274 views.py:78
msgid "Context record search"
msgstr "Recherche d'Unité d'Enregistrement"
-#: forms.py:93
+#: forms.py:101
msgid "You should at least select one context record."
msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement."
-#: forms.py:99
+#: forms.py:107
msgid "General"
msgstr "Général"
-#: forms.py:103 models.py:118 models.py:121
+#: forms.py:111 models.py:118 models.py:121
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:106 models.py:126 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:114 models.py:126 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr "Description"
-#: forms.py:108 models.py:131
+#: forms.py:116 models.py:131
msgid "Length (cm)"
msgstr "Longueur (cm)"
-#: forms.py:109 models.py:132
+#: forms.py:117 models.py:132
msgid "Width (cm)"
msgstr "Largeur (cm)"
-#: forms.py:110 models.py:133
+#: forms.py:118 models.py:133
msgid "Thickness (cm)"
msgstr "Épaisseur (cm)"
-#: forms.py:111 models.py:135
+#: forms.py:119 models.py:135
msgid "Depth (cm)"
msgstr "Profondeur (cm)"
-#: forms.py:112 models.py:141
+#: forms.py:120 models.py:141
msgid "Unit"
msgstr "Unité"
-#: forms.py:114 models.py:137
+#: forms.py:122 models.py:137
msgid "Location"
msgstr "Lieu"
-#: forms.py:159
+#: forms.py:167
msgid "This ID already exists for this operation."
msgstr "Cet identifiant existe déjà pour cette opération."
-#: forms.py:165 forms.py:189 models.py:59
+#: forms.py:173 forms.py:197 models.py:59
msgid "Dating"
msgstr "Datation"
-#: forms.py:171 models.py:49
+#: forms.py:179 models.py:49
msgid "Start date"
msgstr "Date de début"
-#: forms.py:172 models.py:50 models.py:130
+#: forms.py:180 models.py:50 models.py:130
msgid "End date"
msgstr "Date de fin"
-#: forms.py:173 models.py:53
+#: forms.py:181 models.py:53
msgid "Quality"
msgstr "Qualité"
-#: forms.py:174 models.py:35 models.py:51
+#: forms.py:182 models.py:35 models.py:51
msgid "Dating type"
msgstr "Type de datation"
-#: forms.py:198 ishtar_menu.py:29 models.py:321
+#: forms.py:206 ishtar_menu.py:29 models.py:321
msgid "Context record"
msgstr "Unité d'Enregistrement"
-#: forms.py:218
+#: forms.py:226
msgid "Relations"
msgstr "Relations"
-#: forms.py:222 forms.py:229 models.py:146
+#: forms.py:230 forms.py:237 models.py:146
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr "Interprétation"
-#: forms.py:225 models.py:143
+#: forms.py:233 models.py:143
msgid "Has furniture?"
msgstr "Contient du mobilier ?"
-#: forms.py:227 models.py:145
+#: forms.py:235 models.py:145
msgid "Filling"
msgstr "Remplissage"
-#: forms.py:231 models.py:166
+#: forms.py:239 models.py:166
msgid "Activity"
msgstr "Activité"
-#: forms.py:233 models.py:164
+#: forms.py:241 models.py:164
msgid "Identification"
msgstr "Identification"
-#: forms.py:235 models.py:149
+#: forms.py:243 models.py:149
msgid "TAQ"
msgstr "TAQ"
-#: forms.py:236 models.py:153
+#: forms.py:244 models.py:153
msgid "Estimated TAQ"
msgstr "TAQ estimé"
-#: forms.py:238 models.py:156
+#: forms.py:246 models.py:156
msgid "TPQ"
msgstr "TPQ"
-#: forms.py:239 models.py:160
+#: forms.py:247 models.py:160
msgid "Estimated TPQ"
msgstr "TPQ estimé"
-#: forms.py:252
+#: forms.py:260
msgid "Operation search"
msgstr "Recherche d'Opérations"
-#: forms.py:254
+#: forms.py:262
msgid "You should select an operation."
msgstr "Vous devez sélectionner une Opération."
-#: forms.py:259
+#: forms.py:267
msgid "Would you like to delete this context record?"
msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?"
-#: forms.py:268
+#: forms.py:276
msgid "You should select a context record."
msgstr "Vous devez sélectionner une Unité d'Enregistrement."
-#: forms.py:273
+#: forms.py:281
msgid "Town of the operation"
msgstr "Commune de l'opération"
-#: forms.py:275
+#: forms.py:283
msgid "Year of the operation"
msgstr "Année de l'opération"
-#: forms.py:277
+#: forms.py:285
msgid "Period of the context record"
msgstr "Période de l'Unité d'Enregistrement"
-#: forms.py:279
+#: forms.py:287
msgid "Unit type of the context record"
msgstr "Type d'unité de l'Unité d'Enregistrement"
-#: forms.py:292
+#: forms.py:300
msgid "Documentation search"
msgstr "Recherche de documents"
-#: forms.py:294
+#: forms.py:302
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po
index eb5ab5738..660fbeba2 100644
--- a/translations/fr/archaeological_operations.po
+++ b/translations/fr/archaeological_operations.po
@@ -17,12 +17,12 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.8.2\n"
-#: forms.py:66 forms.py:333 forms.py:903 forms.py:925 forms.py:929
+#: forms.py:66 forms.py:344 forms.py:914 forms.py:936 forms.py:940
#: models.py:782 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr "Parcelles"
-#: forms.py:69 forms.py:185 forms.py:879 models.py:772
+#: forms.py:69 forms.py:185 forms.py:890 models.py:772
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -31,7 +31,7 @@ msgstr "Parcelles"
msgid "Town"
msgstr "Commune"
-#: forms.py:71 forms.py:422 forms.py:693 forms.py:1111 models.py:158
+#: forms.py:71 forms.py:433 forms.py:704 forms.py:1147 models.py:158
#: models.py:589 models.py:770
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
@@ -66,53 +66,53 @@ msgstr "Saisie libre"
msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\""
msgstr "exemple : \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou \"AB:24,AC:42\""
-#: forms.py:327
+#: forms.py:338
msgid "There are identical parcels."
msgstr "Il y a des parcelles identiques."
-#: forms.py:342
+#: forms.py:353
msgid "Relation type"
msgstr "Type de relation"
-#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515
+#: forms.py:356 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515
#: models.py:530 models.py:581 models.py:769 wizards.py:338 wizards.py:349
#: templates/ishtar/sheet_operation.html:6
msgid "Operation"
msgstr "Opération"
-#: forms.py:364
+#: forms.py:375
msgid ":"
msgstr ": "
-#: forms.py:372 forms.py:548 forms.py:1083
+#: forms.py:383 forms.py:559 forms.py:1119
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
-#: forms.py:376
+#: forms.py:387
msgid "You should select a relation type."
msgstr "Vous devez sélectionner un type de relation."
-#: forms.py:406
+#: forms.py:417
msgid "Current relations"
msgstr "Relations actuelles"
-#: forms.py:408
+#: forms.py:419
msgid "Deleted relations"
msgstr "Relations supprimées"
-#: forms.py:412 templates/ishtar/sheet_operation.html:115
+#: forms.py:423 templates/ishtar/sheet_operation.html:115
msgid "Relations"
msgstr "Relations"
-#: forms.py:423
+#: forms.py:434
msgid "Numeric reference"
msgstr "Identifiant numérique"
-#: forms.py:428 forms.py:1121
+#: forms.py:439 forms.py:1157
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:431 forms.py:1124 models.py:491
+#: forms.py:442 forms.py:1160 models.py:491
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -120,215 +120,215 @@ msgstr "Parcelle (section/numéro)"
msgid "Department"
msgstr "Département"
-#: forms.py:432 forms.py:964 models.py:77
+#: forms.py:443 forms.py:1000 models.py:77
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:6
msgid "Name"
msgstr "Nom"
-#: forms.py:434 forms.py:615 forms.py:691 forms.py:1088 models.py:166
+#: forms.py:445 forms.py:626 forms.py:702 forms.py:1124 models.py:166
msgid "Operation type"
msgstr "Type d'opération"
-#: forms.py:436
+#: forms.py:447
msgid "Is open?"
msgstr "Est ouvert ?"
-#: forms.py:445 forms.py:717 models.py:155
+#: forms.py:456 forms.py:728 models.py:155
msgid "In charge"
msgstr "Responsable"
-#: forms.py:452 models.py:575
+#: forms.py:463 models.py:575
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:454 forms.py:617 forms.py:708 models.py:153
+#: forms.py:465 forms.py:628 forms.py:719 models.py:153
msgid "Operator"
msgstr "Opérateur"
-#: forms.py:461 forms.py:969 models.py:81 models.py:168
+#: forms.py:472 forms.py:1005 models.py:81 models.py:168
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8
msgid "Remains"
msgstr "Vestiges"
-#: forms.py:462 forms.py:948 forms.py:966 models.py:79 models.py:173
+#: forms.py:473 forms.py:984 forms.py:1002 models.py:79 models.py:173
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Periods"
msgstr "Périodes"
-#: forms.py:463
+#: forms.py:474
msgid "Started before"
msgstr "Commencé avant"
-#: forms.py:465
+#: forms.py:476
msgid "Started after"
msgstr "Commencé après"
-#: forms.py:467
+#: forms.py:478
msgid "Ended before"
msgstr "Terminé avant"
-#: forms.py:469
+#: forms.py:480
msgid "Ended after"
msgstr "Terminé après"
-#: forms.py:472
+#: forms.py:483
msgid "Search within relations"
msgstr "Recherche parmi les relations"
-#: forms.py:474 forms.py:759 models.py:219
+#: forms.py:485 forms.py:770 models.py:219
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:475
+#: forms.py:486
msgid "Abstract (full text search)"
msgstr "Résumé (recherche texte intégral)"
-#: forms.py:476 forms.py:761 models.py:231
+#: forms.py:487 forms.py:772 models.py:231
msgid "Record quality"
msgstr "Qualité d'enregistrement"
-#: forms.py:477 forms.py:740 models.py:185
+#: forms.py:488 forms.py:751 models.py:185
msgid "Report processing"
msgstr "Traitement du rapport"
-#: forms.py:479 forms.py:764 models.py:226
+#: forms.py:490 forms.py:775 models.py:226
msgid "Virtual operation"
msgstr "Opération virtuelle"
-#: forms.py:481 forms.py:1009
+#: forms.py:492 forms.py:1045
msgid "Archaelogical site"
msgstr "Entité Archéologique"
-#: forms.py:487 forms.py:1128
+#: forms.py:498 forms.py:1164
msgid "Created by"
msgstr "Créé par"
-#: forms.py:493 forms.py:1134
+#: forms.py:504 forms.py:1170
msgid "Modified by"
msgstr "Modifié par"
-#: forms.py:535 forms.py:1081 views.py:231
+#: forms.py:546 forms.py:1117 views.py:231
msgid "Operation search"
msgstr "Recherche d'opérations"
-#: forms.py:579
+#: forms.py:590
msgid "Associated file"
msgstr "Dossier associé"
-#: forms.py:583 forms.py:827 models.py:586 wizards.py:76
+#: forms.py:594 forms.py:838 models.py:586 wizards.py:76
msgid "Archaelogical file"
msgstr "Dossier"
-#: forms.py:590 forms.py:592 models.py:233
+#: forms.py:601 forms.py:603 models.py:233
msgid "Abstract"
msgstr "Résumé"
-#: forms.py:595
+#: forms.py:606
msgid "months"
msgstr "mois"
-#: forms.py:595
+#: forms.py:606
msgid "years"
msgstr "années"
-#: forms.py:597 models.py:139
+#: forms.py:608 models.py:139
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:598
+#: forms.py:609
msgid "Start of field work"
msgstr "Début du travail de terrain"
-#: forms.py:600
+#: forms.py:611
msgid "All"
msgstr "Tout"
-#: forms.py:601
+#: forms.py:612
msgid "Preventive"
msgstr "Préventif"
-#: forms.py:602
+#: forms.py:613
msgid "Research"
msgstr "Programmé"
-#: forms.py:606
+#: forms.py:617
msgid "Slicing"
msgstr "Découpage"
-#: forms.py:609
+#: forms.py:620
msgid "Department detail"
msgstr "Détail par département"
-#: forms.py:611
+#: forms.py:622
msgid "Date get from"
msgstr "Date obtenue depuis"
-#: forms.py:613
+#: forms.py:624
msgid "Preventive/Research"
msgstr "Préventif/Programmé"
-#: forms.py:619
+#: forms.py:630
msgid "Date after"
msgstr "Date après"
-#: forms.py:621
+#: forms.py:632
msgid "Date before"
msgstr "Date avant"
-#: forms.py:623
+#: forms.py:634
msgid "With reports"
msgstr "Avec un rapport"
-#: forms.py:624
+#: forms.py:635
msgid "With finds"
msgstr "Avec du mobilier"
-#: forms.py:676 forms.py:1181 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:687 forms.py:1217 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr "Général"
-#: forms.py:689 models.py:218
+#: forms.py:700 models.py:218
msgid "Generic name"
msgstr "Nom générique"
-#: forms.py:698
+#: forms.py:709
msgid "Head scientist"
msgstr "Responsable scientifique"
-#: forms.py:714 models.py:217
+#: forms.py:725 models.py:217
msgid "Operator reference"
msgstr "Référence de l'opérateur"
-#: forms.py:726
+#: forms.py:737
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:733 models.py:49 models.py:142 models.py:940
+#: forms.py:744 models.py:49 models.py:142 models.py:940
msgid "Start date"
msgstr "Date de début"
-#: forms.py:735 models.py:144
+#: forms.py:746 models.py:144
msgid "Excavation end date"
msgstr "Date de fin de chantier"
-#: forms.py:738 models.py:145
+#: forms.py:749 models.py:145
msgid "Report delivery date"
msgstr "Date de livraison du rapport"
-#: forms.py:791
+#: forms.py:802
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
"Avant de renseigner la date de fin de chantier, il est nécessaire de "
"renseigner une date de début."
-#: forms.py:796
+#: forms.py:807
msgid "The excavation end date cannot be before the start date."
msgstr ""
"La date de fin de chantier ne peut être antérieure à la date de début."
-#: forms.py:813
+#: forms.py:824
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
@@ -337,109 +337,109 @@ msgstr ""
"Ce code d'opération existe déjà pour l'année %(year)d - utilisez une valeur "
"plus grande que %(last_val)d"
-#: forms.py:817
+#: forms.py:828
msgid "Bad operation code"
msgstr "Mauvais code d'opération"
-#: forms.py:823 models.py:159 models.py:368
+#: forms.py:834 models.py:159 models.py:368
msgid "Operation code"
msgstr "Code de l'opération"
-#: forms.py:849
+#: forms.py:860
msgid "Preventive informations - excavation"
msgstr "Information archéologie préventive - fouille"
-#: forms.py:850 models.py:171
+#: forms.py:861 models.py:171
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr "Coût (euros)"
-#: forms.py:851 models.py:176
+#: forms.py:862 models.py:176
msgid "Scheduled man-days"
msgstr "Jours-hommes prévus"
-#: forms.py:853 models.py:179
+#: forms.py:864 models.py:179
msgid "Optional man-days"
msgstr "Jours-hommes optionnels"
-#: forms.py:855 models.py:182
+#: forms.py:866 models.py:182
msgid "Effective man-days"
msgstr "Jours-hommes effectifs"
-#: forms.py:865
+#: forms.py:876
msgid "Preventive informations - diagnostic"
msgstr "Information archéologie préventive - diagnostic"
-#: forms.py:868 models.py:201
+#: forms.py:879 models.py:201
msgid "Prescription on zoning"
msgstr "Prescription sur zonage"
-#: forms.py:870 models.py:204
+#: forms.py:881 models.py:204
msgid "Prescription on large area"
msgstr "Prescription sur une vaste surface"
-#: forms.py:873 models.py:206
+#: forms.py:884 models.py:206
msgid "Prescription on geoarchaeological context"
msgstr "Prescription sur un contexte géoarchéologique"
-#: forms.py:877 forms.py:899 models.py:170 models.py:599
+#: forms.py:888 forms.py:910 models.py:170 models.py:599
msgid "Towns"
msgstr "Communes"
-#: forms.py:906 models.py:781 models.py:938
+#: forms.py:917 models.py:781 models.py:938
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:933 models.py:43
+#: forms.py:969 models.py:43
msgid "Remain types"
msgstr "Types de vestige"
-#: forms.py:937 models.py:42
+#: forms.py:973 models.py:42
msgid "Remain type"
msgstr "Type de vestige"
-#: forms.py:952
+#: forms.py:988
msgid "Period"
msgstr "Période"
-#: forms.py:963 models.py:76
+#: forms.py:999 models.py:76
msgid "Reference"
msgstr "Référence"
-#: forms.py:988
+#: forms.py:1024
msgid "This reference already exists."
msgstr "Cette référence existe déjà."
-#: forms.py:1005 models.py:85
+#: forms.py:1041 models.py:85
msgid "Archaeological site"
msgstr "Entité archéologique"
-#: forms.py:1020 models.py:86 models.py:223
+#: forms.py:1056 models.py:86 models.py:223
#: templates/ishtar/sheet_operation.html:126
msgid "Archaeological sites"
msgstr "Entités archéologiques"
-#: forms.py:1024
+#: forms.py:1060
msgid "Associated archaelogical sites"
msgstr "Entités archéologiques associées"
-#: forms.py:1030 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92
+#: forms.py:1066 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92
msgid "Search"
msgstr "Recherche"
-#: forms.py:1035
+#: forms.py:1071
msgid "Would you like to close this operation?"
msgstr "Voulez-vous clore cette opération ?"
-#: forms.py:1040
+#: forms.py:1076
msgid "Would you like to delete this operation?"
msgstr "Voulez-vous supprimer cette opération ?"
-#: forms.py:1049 forms.py:1112 models.py:517 models.py:566
+#: forms.py:1085 forms.py:1148 models.py:517 models.py:566
msgid "Index"
msgstr "Index"
-#: forms.py:1075
+#: forms.py:1111
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
@@ -448,68 +448,68 @@ msgstr ""
"Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "
"plus grande que %(last_val)d"
-#: forms.py:1087
+#: forms.py:1123
msgid "Operation's town"
msgstr "Commune de l'opération"
-#: forms.py:1090
+#: forms.py:1126
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:1101
+#: forms.py:1137
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:1103
+#: forms.py:1139
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: forms.py:1118 forms.py:1184 models.py:541 models.py:560
+#: forms.py:1154 forms.py:1220 models.py:541 models.py:560
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:1119 forms.py:1272
+#: forms.py:1155 forms.py:1308
msgid "Indexed?"
msgstr "Indexé ?"
-#: forms.py:1125 forms.py:1189 models.py:590
+#: forms.py:1161 forms.py:1225 models.py:590
#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr "Objet"
-#: forms.py:1161 views.py:373
+#: forms.py:1197 views.py:373
msgid "Administrative act search"
msgstr "Recherche d'actes administratifs"
-#: forms.py:1176 forms.py:1230 forms.py:1297
+#: forms.py:1212 forms.py:1266 forms.py:1333
msgid "You should select an administrative act."
msgstr "Vous devez sélectionner un acte administratif."
-#: forms.py:1192 models.py:587
+#: forms.py:1228 models.py:587
msgid "Signature date"
msgstr "Date de signature"
-#: forms.py:1207
+#: forms.py:1243
msgid "Would you like to delete this administrative act?"
msgstr "Voulez-vous supprimer cet acte administratif ?"
-#: forms.py:1212
+#: forms.py:1248
msgid "Template"
msgstr "Patron"
-#: forms.py:1236 forms.py:1240
+#: forms.py:1272 forms.py:1276
msgid "This document is not intended for this type of act."
msgstr "Ce document n'est pas destiné à ce type d'acte."
-#: forms.py:1258
+#: forms.py:1294
msgid "Doc generation"
msgstr "Génération de document"
-#: forms.py:1260
+#: forms.py:1296
msgid "Generate the associated doc?"
msgstr "Générer le document associé ?"
-#: forms.py:1281 ishtar_menu.py:121 views.py:407
+#: forms.py:1317 ishtar_menu.py:121 views.py:407
msgctxt "admin act register"
msgid "Register"
msgstr "Registre"
diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po
index 4177bafdd..9473fecad 100644
--- a/translations/fr/ishtar_common.po
+++ b/translations/fr/ishtar_common.po
@@ -10,7 +10,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-03-16 03:21-0400\n"
+"PO-Revision-Date: 2016-04-07 09:17-0400\n"
"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -33,7 +33,7 @@ msgstr "Élément associé"
msgid "Archaeological file"
msgstr "Dossier"
-#: context_processors.py:38 models.py:1251
+#: context_processors.py:38 models.py:1281
msgid "Operation"
msgstr "Opération"
@@ -161,7 +161,7 @@ msgstr "\"%(value)s\" n'est pas dans %(values)s"
msgid "Enter a valid name consisting of letters, spaces and hyphens."
msgstr "Entrez un nom correct composé de lettres, espaces et tirets."
-#: forms.py:71 forms_common.py:420
+#: forms.py:71 forms_common.py:441
msgid "Confirm"
msgstr "Confirmer"
@@ -190,7 +190,7 @@ msgid "Template"
msgstr "Patron"
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:269 forms_common.py:274 models.py:1124 models.py:2340
+#: forms_common.py:289 models.py:1124 models.py:2377
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
msgid "Town"
@@ -214,67 +214,72 @@ msgstr ""
"<p class='example'>Par exemple tapez « saint denis 93 » pour obtenir la "
"commune Saint-Denis dans le département français de Seine-Saint-Denis.</p>"
-#: forms_common.py:66 forms_common.py:648 ishtar_menu.py:42 models.py:2039
-#: models.py:2168 models.py:2222 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:669 ishtar_menu.py:42 models.py:1279
+#: models.py:2076 models.py:2205 models.py:2259
+#: templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr "Personne"
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1961
-#: templates/ishtar/sheet_organization.html:6
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1280
+#: models.py:1995 templates/ishtar/sheet_organization.html:6
msgid "Organization"
msgstr "Organisation"
#: forms_common.py:160 forms_common.py:196 forms_common.py:226
-#: forms_common.py:259 models.py:775 models.py:1057 models.py:1293
-#: models.py:1511 models.py:1955 models.py:2029 models.py:2326
+#: forms_common.py:259 models.py:775 models.py:1057 models.py:1325
+#: models.py:1543 models.py:1989 models.py:2063 models.py:2363
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
msgid "Name"
msgstr "Nom"
-#: forms_common.py:161 models.py:1238 models.py:1642
+#: forms_common.py:161 models.py:1266 models.py:1674
msgid "Organization type"
msgstr "Type d'organisation"
-#: forms_common.py:163 forms_common.py:263 models.py:1119
+#: forms_common.py:163 forms_common.py:283 models.py:1119
#: templates/ishtar/sheet_organization.html:14
msgid "Address"
msgstr "Adresse"
-#: forms_common.py:165 forms_common.py:265 models.py:1120
+#: forms_common.py:165 forms_common.py:286 models.py:1120
#: templates/ishtar/sheet_organization.html:15
msgid "Address complement"
msgstr "Complément d'adresse"
-#: forms_common.py:167 forms_common.py:267 models.py:1122
+#: forms_common.py:167 forms_common.py:287 models.py:1122
#: templates/ishtar/sheet_organization.html:16
msgid "Postal code"
msgstr "Code postal"
-#: forms_common.py:170 forms_common.py:270 models.py:1125
+#: forms_common.py:170 forms_common.py:290 models.py:1125
msgid "Country"
msgstr "Pays"
-#: forms_common.py:172 forms_common.py:228 forms_common.py:272
-#: forms_common.py:376 models.py:1131
+#: forms_common.py:172 forms_common.py:228 forms_common.py:263
+#: forms_common.py:397 models.py:1152
msgid "Email"
msgstr "Courriel"
-#: forms_common.py:173 forms_common.py:273 models.py:1127
+#: forms_common.py:173 forms_common.py:266 models.py:1137
#: templates/ishtar/sheet_organization.html:18
+#: templates/ishtar/sheet_person.html:23
+#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr "Téléphone"
-#: forms_common.py:174 models.py:1128
+#: forms_common.py:174 forms_common.py:275 models.py:1149
#: templates/ishtar/sheet_organization.html:19
+#: templates/ishtar/sheet_person.html:41
+#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr "Téléphone portable"
-#: forms_common.py:197 forms_common.py:229 models.py:1666 models.py:1957
-#: models.py:2263 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1700 models.py:1991
+#: models.py:2300 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
#: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:27
-#: templates/ishtar/sheet_person.html:56
+#: templates/ishtar/sheet_person.html:95
#: templates/ishtar/blocks/window_tables/documents.html:6
msgid "Type"
msgstr "Type"
@@ -283,7 +288,7 @@ msgstr "Type"
msgid "Organization search"
msgstr "Recherche d'organisations"
-#: forms_common.py:227 forms_common.py:257 models.py:2027
+#: forms_common.py:227 forms_common.py:257 models.py:2061
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr "Prénom"
@@ -292,145 +297,186 @@ msgstr "Prénom"
msgid "Person search"
msgstr "Recherche de personnes"
-#: forms_common.py:254
+#: forms_common.py:254 templates/ishtar/sheet_person.html:12
+#: templates/ishtar/wizard/wizard_person.html:6
msgid "Identity"
msgstr "Identité"
-#: forms_common.py:256 forms_common.py:574 forms_common.py:615 models.py:2025
-#: models.py:2260 templates/sheet_ope.html:104
-#: templates/ishtar/sheet_person.html:55
+#: forms_common.py:256 forms_common.py:595 forms_common.py:636 models.py:2059
+#: models.py:2297 templates/sheet_ope.html:104
+#: templates/ishtar/sheet_person.html:94
#: templates/ishtar/blocks/window_tables/documents.html:5
msgid "Title"
msgstr "Titre"
-#: forms_common.py:261 models.py:2031
+#: forms_common.py:261 models.py:2065
msgid "Raw name"
msgstr "Nom brut"
-#: forms_common.py:277
+#: forms_common.py:264 models.py:1138
+msgid "Phone description"
+msgstr "Type de téléphone"
+
+#: forms_common.py:267 models.py:1140 models.py:1142
+msgid "Phone description 2"
+msgstr "Type de téléphone 2"
+
+#: forms_common.py:269
+msgid "Phone 2"
+msgstr "Téléphone 2"
+
+#: forms_common.py:271 models.py:1146
+msgid "Phone description 3"
+msgstr "Type de téléphone 3"
+
+#: forms_common.py:273 models.py:1144
+msgid "Phone 3"
+msgstr "Téléphone 3"
+
+#: forms_common.py:278
msgid "Current organization"
msgstr "Organisation actuelle"
-#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:2009
+#: forms_common.py:292 models.py:1127
+msgid "Other address: address"
+msgstr "Autre adresse : adresse"
+
+#: forms_common.py:295 models.py:1130
+msgid "Other address: address complement"
+msgstr "Autre adresse : complément d'adresse"
+
+#: forms_common.py:297 models.py:1131
+msgid "Other address: postal code"
+msgstr "Autre adresse : code postal"
+
+#: forms_common.py:299 models.py:1133
+msgid "Other address: town"
+msgstr "Autre adresse : ville"
+
+#: forms_common.py:301 models.py:1135
+msgid "Other address: country"
+msgstr "Autre adresse : pays"
+
+#: forms_common.py:346 forms_common.py:376 forms_common.py:380 models.py:2043
msgid "Person type"
msgstr "Type de personne"
-#: forms_common.py:370 forms_common.py:375
+#: forms_common.py:391 forms_common.py:396
msgid "Account"
msgstr "Compte"
-#: forms_common.py:379 wizards.py:1154
+#: forms_common.py:400 wizards.py:1158
msgid "New password"
msgstr "Nouveau mot de passe"
-#: forms_common.py:382
+#: forms_common.py:403
msgid "New password (confirmation)"
msgstr "Nouveau mot de passe (confirmation)"
-#: forms_common.py:401
+#: forms_common.py:422
msgid "Your password and confirmation password do not match."
msgstr "La vérification du mot de passe a échoué."
-#: forms_common.py:406
+#: forms_common.py:427
msgid "You must provide a correct password."
msgstr "Vous devez fournir un mot de passe correct."
-#: forms_common.py:414
+#: forms_common.py:435
msgid "This username already exists."
msgstr "Ce nom d'utilisateur existe déjà."
-#: forms_common.py:421
+#: forms_common.py:442
msgid "Send the new password by email?"
msgstr "Envoyer le nouveau mot de passe par courriel ?"
-#: forms_common.py:430 forms_common.py:443 models.py:2341
+#: forms_common.py:451 forms_common.py:464 models.py:2378
msgid "Towns"
msgstr "Communes"
-#: forms_common.py:440
+#: forms_common.py:461
msgid "There are identical towns."
msgstr "Il y a des communes identiques."
-#: forms_common.py:524
+#: forms_common.py:545
msgid "Only one choice can be checked."
msgstr "Seul un choix peut être coché."
-#: forms_common.py:572
+#: forms_common.py:593
msgid "Documentation informations"
msgstr "Information sur le document"
-#: forms_common.py:576 forms_common.py:616 models.py:1643 models.py:2243
+#: forms_common.py:597 forms_common.py:637 models.py:1675 models.py:2280
msgid "Source type"
msgstr "Type de document"
-#: forms_common.py:578 forms_common.py:617 templates/sheet_ope.html:84
+#: forms_common.py:599 forms_common.py:638 templates/sheet_ope.html:84
msgid "Reference"
msgstr "Référence"
-#: forms_common.py:581 forms_common.py:618
+#: forms_common.py:602 forms_common.py:639
msgid "Internal reference"
msgstr "Référence interne"
-#: forms_common.py:584 models.py:2274
+#: forms_common.py:605 models.py:2311
msgid "Numerical ressource (web address)"
msgstr "Ressource numérique (adresse web)"
-#: forms_common.py:585 models.py:2276
+#: forms_common.py:606 models.py:2313
msgid "Receipt date"
msgstr "Date de réception"
-#: forms_common.py:587 models.py:1793 models.py:2278
+#: forms_common.py:608 models.py:1827 models.py:2315
msgid "Creation date"
msgstr "Date de création"
-#: forms_common.py:590 models.py:2281
+#: forms_common.py:611 models.py:2318
msgid "Receipt date in documentation"
msgstr "Date de réception en documentation"
-#: forms_common.py:592 forms_common.py:620 models.py:277 models.py:1538
-#: models.py:2288
+#: forms_common.py:613 forms_common.py:641 models.py:277 models.py:1570
+#: models.py:2069 models.py:2325
msgid "Comment"
msgstr "Commentaire"
-#: forms_common.py:594 forms_common.py:619 models.py:777 models.py:1297
-#: models.py:1470 models.py:1512 models.py:2287 templates/sheet_ope.html:128
+#: forms_common.py:615 forms_common.py:640 models.py:777 models.py:1329
+#: models.py:1502 models.py:1544 models.py:2324 templates/sheet_ope.html:128
msgid "Description"
msgstr "Description"
-#: forms_common.py:597 models.py:2289
+#: forms_common.py:618 models.py:2326
msgid "Additional information"
msgstr "Informations supplémentaires"
-#: forms_common.py:599 forms_common.py:623 models.py:2291
+#: forms_common.py:620 forms_common.py:644 models.py:2328
msgid "Has a duplicate"
msgstr "Existe en doublon"
-#: forms_common.py:612 forms_common.py:641 forms_common.py:674 models.py:2227
+#: forms_common.py:633 forms_common.py:662 forms_common.py:695 models.py:2264
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr "Auteur"
-#: forms_common.py:622
+#: forms_common.py:643
msgid "Additional informations"
msgstr "Informations complémentaires"
-#: forms_common.py:633
+#: forms_common.py:654
msgid "Would you like to delete this documentation?"
msgstr "Voulez-vous supprimer ce document ?"
-#: forms_common.py:649 models.py:1644 models.py:2217 models.py:2224
+#: forms_common.py:670 models.py:1676 models.py:2254 models.py:2261
msgid "Author type"
msgstr "Type d'auteur"
-#: forms_common.py:667
+#: forms_common.py:688
msgid "Author selection"
msgstr "Sélection d'auteur"
-#: forms_common.py:681
+#: forms_common.py:702
msgid "There are identical authors."
msgstr "Il y a des auteurs identiques."
-#: forms_common.py:685 models.py:2228 models.py:2270
+#: forms_common.py:706 models.py:2265 models.py:2307
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
@@ -468,11 +514,11 @@ msgstr "Modification"
msgid "Merge"
msgstr "Fusion"
-#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1830 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1864 widgets.py:110
msgid "Delete"
msgstr "Suppression"
-#: ishtar_menu.py:96 models.py:1804
+#: ishtar_menu.py:96 models.py:1838
msgid "Imports"
msgstr "Imports"
@@ -512,7 +558,7 @@ msgstr "Identifiant textuel"
msgid "Available"
msgstr "Disponible"
-#: models.py:479 models.py:1584
+#: models.py:479 models.py:1616
msgid "Key"
msgstr "Clé"
@@ -528,7 +574,7 @@ msgstr "Dernier éditeur"
msgid "Creator"
msgstr "Créateur"
-#: models.py:692 models.py:2352
+#: models.py:692 models.py:2389
msgid "Order"
msgstr "Ordre"
@@ -540,7 +586,7 @@ msgstr "Symétrique"
msgid "Cannot have symmetrical and an inverse_relation"
msgstr "Ne peut pas être symétrique et avoir une relation inverse"
-#: models.py:776 models.py:1295
+#: models.py:776 models.py:1327
msgid "Slug"
msgstr "Identifiant texte"
@@ -588,7 +634,7 @@ msgstr "Nom de la variable"
msgid "Description of the variable"
msgstr "Description de la variable"
-#: models.py:849 models.py:1585
+#: models.py:849 models.py:1617
msgid "Value"
msgstr "Valeur"
@@ -601,8 +647,10 @@ msgid "Total"
msgstr "Total"
#: models.py:969 models.py:1093 models.py:1105
+#: templates/ishtar/sheet_person.html:26
#: templates/ishtar/dashboards/dashboard_main_detail.html:135
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
+#: templates/ishtar/wizard/wizard_person.html:20
msgid "Number"
msgstr "Nombre"
@@ -622,7 +670,7 @@ msgstr "Patron de document"
msgid "Document templates"
msgstr "Patrons de documents"
-#: models.py:1096 models.py:1106 models.py:1788
+#: models.py:1096 models.py:1106 models.py:1822
msgid "State"
msgstr "État"
@@ -634,526 +682,546 @@ msgstr "Département"
msgid "Departments"
msgstr "Départements"
-#: models.py:1165
+#: models.py:1148
+msgid "Raw phone"
+msgstr "Téléphone brut"
+
+#: models.py:1154
+msgid "Alternative address is prefered"
+msgstr "L'adresse alternative est préférée"
+
+#: models.py:1193
msgid "Tel: "
msgstr "Tél :"
-#: models.py:1169
+#: models.py:1197
msgid "Mobile: "
msgstr "Mobile :"
-#: models.py:1173
+#: models.py:1201
msgid "Email: "
msgstr "Courriel :"
-#: models.py:1178
+#: models.py:1206
msgid "Merge key"
msgstr "Clé de fusion"
-#: models.py:1239
+#: models.py:1267
msgid "Organization types"
msgstr "Types d'organisation"
-#: models.py:1253
+#: models.py:1283
msgid "Archaeological site"
msgstr "Entité Archéologique"
-#: models.py:1254
+#: models.py:1284
msgid "Parcels"
msgstr "Parcelles"
-#: models.py:1256
+#: models.py:1286
msgid "Operation source"
msgstr "Documentation de l'opération"
-#: models.py:1259 views.py:945 views.py:996
+#: models.py:1289 views.py:945 views.py:996
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
-#: models.py:1261 views.py:948 views.py:1004
+#: models.py:1291 views.py:948 views.py:1004
msgid "Context records"
msgstr "Unités d'Enregistrement"
-#: models.py:1263 views.py:950 views.py:1007
+#: models.py:1293
+msgid "Context record relations"
+msgstr "Relations entre Unités d'Enregistrement"
+
+#: models.py:1295 views.py:950 views.py:1007
msgid "Finds"
msgstr "Mobilier"
-#: models.py:1299 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1331 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr "Utilisateurs"
-#: models.py:1301
+#: models.py:1333
msgid "Associated model"
msgstr "Modèle associé"
-#: models.py:1304
+#: models.py:1336
msgid "Is template"
msgstr "Est un patron"
-#: models.py:1305
+#: models.py:1337
msgid "Unicity keys (separator \";\")"
msgstr "Clés d'unicité (séparateur « ; »)"
-#: models.py:1309
+#: models.py:1341
msgid "Importer - Type"
msgstr "Importeur - Type"
-#: models.py:1310
+#: models.py:1342
msgid "Importer - Types"
msgstr "Importeur - Types"
-#: models.py:1400
+#: models.py:1432
msgid "Importer - Default"
msgstr "Importeur - Par défaut"
-#: models.py:1401
+#: models.py:1433
msgid "Importer - Defaults"
msgstr "Importeur - Par défaut"
-#: models.py:1436
+#: models.py:1468
msgid "Importer - Default value"
msgstr "Importeur - Valeur par défaut"
-#: models.py:1437
+#: models.py:1469
msgid "Importer - Default values"
msgstr "Importeur - Valeurs par défaut"
-#: models.py:1469
+#: models.py:1501
msgid "Column number"
msgstr "Numéro de colonne"
-#: models.py:1472
+#: models.py:1504
msgid "Required"
msgstr "Requis"
-#: models.py:1475
+#: models.py:1507
msgid "Importer - Column"
msgstr "Importeur - Colonne"
-#: models.py:1476
+#: models.py:1508
msgid "Importer - Columns"
msgstr "Importeur - Colonnes"
-#: models.py:1496
+#: models.py:1528
msgid "Field name"
msgstr "Nom du champ"
-#: models.py:1498 models.py:1532
+#: models.py:1530 models.py:1564
msgid "Force creation of new items"
msgstr "Forcer la création de nouveaux éléments"
-#: models.py:1500 models.py:1534
+#: models.py:1532 models.py:1566
msgid "Concatenate with existing"
msgstr "Concaténer avec l'existant"
-#: models.py:1502 models.py:1536
+#: models.py:1534 models.py:1568
msgid "Concatenate character"
msgstr "Caractère de concaténation"
-#: models.py:1506
+#: models.py:1538
msgid "Importer - Duplicate field"
msgstr "Importeur - Champ dupliqué"
-#: models.py:1507
+#: models.py:1539
msgid "Importer - Duplicate fields"
msgstr "Importeur - Champs dupliqués"
-#: models.py:1514
+#: models.py:1546
msgid "Regular expression"
msgstr "Expression régulière"
-#: models.py:1517
+#: models.py:1549
msgid "Importer - Regular expression"
msgstr "Importeur - Expression régulière"
-#: models.py:1518
+#: models.py:1550
msgid "Importer - Regular expressions"
msgstr "Importeur - Expressions régulières"
-#: models.py:1541
+#: models.py:1573
msgid "Importer - Target"
msgstr "Importeur - Cible"
-#: models.py:1542
+#: models.py:1574
msgid "Importer - Targets"
msgstr "Importeur - Cibles"
-#: models.py:1566 views.py:311
+#: models.py:1598 views.py:311
msgid "True"
msgstr "Oui"
-#: models.py:1567 views.py:313
+#: models.py:1599 views.py:313
msgid "False"
msgstr "Non"
-#: models.py:1586
+#: models.py:1618
msgid "Is set"
msgstr "Est défini"
-#: models.py:1593
+#: models.py:1625
msgid "Importer - Target key"
msgstr "Importeur - Rapprochement"
-#: models.py:1594
+#: models.py:1626
msgid "Importer - Targets keys"
msgstr "Importeur - Rapprochements"
-#: models.py:1645 models.py:2255 models.py:2266
+#: models.py:1677 models.py:2292 models.py:2303
msgid "Format"
msgstr "Format"
-#: models.py:1646 models.py:2356
+#: models.py:1678 models.py:2393
msgid "Operation type"
msgstr "Type d'opération"
-#: models.py:1647
+#: models.py:1679
msgid "Period"
msgstr "Périodes"
-#: models.py:1648
+#: models.py:1680
msgid "Unit"
msgstr "Unité"
-#: models.py:1649
+#: models.py:1681
msgid "Material"
msgstr "Matériau"
-#: models.py:1651
+#: models.py:1683
msgid "Conservatory state"
msgstr "État de conservation"
-#: models.py:1652
+#: models.py:1684
msgid "Preservation type"
msgstr "Type de conservation"
-#: models.py:1653
+#: models.py:1685
msgid "Object type"
msgstr "Type d'objet"
-#: models.py:1655
+#: models.py:1687
msgid "Identification type"
msgstr "Type d'identification"
-#: models.py:1656 models.py:2249
+#: models.py:1689
+msgid "Context record relation type"
+msgstr "Type de relations entre Unités d'Enregistrement"
+
+#: models.py:1690 models.py:2286
msgid "Support type"
msgstr "Type de support"
-#: models.py:1662
+#: models.py:1696
msgid "Integer"
msgstr "Entier"
-#: models.py:1663
+#: models.py:1697
msgid "Float"
msgstr "Nombre à virgule"
-#: models.py:1664
+#: models.py:1698
msgid "String"
msgstr "Chaîne de caractères"
-#: models.py:1665 templates/sheet_ope.html:86
+#: models.py:1699 templates/sheet_ope.html:86
msgid "Date"
msgstr "Date"
-#: models.py:1667 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
-#: templates/ishtar/sheet_person.html:54
+#: models.py:1701 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: templates/ishtar/sheet_person.html:93
#: templates/ishtar/dashboards/dashboard_main_detail.html:120
msgid "Year"
msgstr "Année"
-#: models.py:1668
+#: models.py:1702
msgid "String to boolean"
msgstr "Chaîne de caractères vers booléen"
-#: models.py:1669
+#: models.py:1703
msgctxt "filesystem"
msgid "File"
msgstr "Fichier"
-#: models.py:1670
+#: models.py:1704
msgid "Unknow type"
msgstr "Type inconnu"
-#: models.py:1686
+#: models.py:1720
msgid "4 digit year. e.g.: \"2015\""
msgstr "Année sur 4 chiffres. Exemple : « 2015 »"
-#: models.py:1687
+#: models.py:1721
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »"
-#: models.py:1688
+#: models.py:1722
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »"
-#: models.py:1698
+#: models.py:1732
msgid "Options"
msgstr "Options"
-#: models.py:1700
+#: models.py:1734
msgid "Split character(s)"
msgstr "Caractère(s) de séparation"
-#: models.py:1704
+#: models.py:1738
msgid "Importer - Formater type"
msgstr "Importeur - Type de mise en forme"
-#: models.py:1705
+#: models.py:1739
msgid "Importer - Formater types"
msgstr "Importeur - Types de mise en forme"
-#: models.py:1752 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1786 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr "Créé"
-#: models.py:1753
+#: models.py:1787
msgid "Analyse in progress"
msgstr "Analyse en cours"
-#: models.py:1754
+#: models.py:1788
msgid "Analysed"
msgstr "Analysé"
-#: models.py:1755
+#: models.py:1789
msgid "Import pending"
msgstr "Import en attente"
-#: models.py:1756
+#: models.py:1790
msgid "Import in progress"
msgstr "Import en cours"
-#: models.py:1757
+#: models.py:1791
msgid "Finished with errors"
msgstr "Terminé avec des erreurs"
-#: models.py:1758
+#: models.py:1792
msgid "Finished"
msgstr "Terminé"
-#: models.py:1759
+#: models.py:1793
msgid "Archived"
msgstr "Archivé"
-#: models.py:1771
+#: models.py:1805
msgid "Imported file"
msgstr "Fichier importé"
-#: models.py:1774
+#: models.py:1808
msgid "Associated images (zip file)"
msgstr "Images associées (fichier zip)"
-#: models.py:1776
+#: models.py:1810
msgid "Encoding"
msgstr "Codage"
-#: models.py:1778
+#: models.py:1812
msgid "Skip lines"
msgstr "Nombre de lignes d'entête"
-#: models.py:1779 templates/ishtar/import_list.html:47
+#: models.py:1813 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr "Fichier erreur"
-#: models.py:1782
+#: models.py:1816
msgid "Result file"
msgstr "Fichier résultant"
-#: models.py:1785 templates/ishtar/import_list.html:53
+#: models.py:1819 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr "Fichier de correspondance"
-#: models.py:1791
+#: models.py:1825
msgid "Conservative import"
msgstr "Import conservateur"
-#: models.py:1796
+#: models.py:1830
msgid "End date"
msgstr "Date de fin"
-#: models.py:1798
+#: models.py:1832
msgid "Remaining seconds"
msgstr "Secondes restantes"
-#: models.py:1803
+#: models.py:1837
msgid "Import"
msgstr "Import"
-#: models.py:1820
+#: models.py:1854
msgid "Analyse"
msgstr "Analyser"
-#: models.py:1822 models.py:1825
+#: models.py:1856 models.py:1859
msgid "Re-analyse"
msgstr "Analyser de nouveau "
-#: models.py:1823
+#: models.py:1857
msgid "Launch import"
msgstr "Lancer l'import"
-#: models.py:1826
+#: models.py:1860
msgid "Re-import"
msgstr "Ré-importer"
-#: models.py:1827
+#: models.py:1861
msgid "Archive"
msgstr "Archiver"
-#: models.py:1829
+#: models.py:1863
msgid "Unarchive"
msgstr "Désarchiver"
-#: models.py:1962
+#: models.py:1996
msgid "Organizations"
msgstr "Organisations"
-#: models.py:1964
+#: models.py:1998
msgid "Can view all Organizations"
msgstr "Peut voir toutes les Organisations"
-#: models.py:1965
+#: models.py:1999
msgid "Can view own Organization"
msgstr "Peut voir sa propre Organisation"
-#: models.py:1966
+#: models.py:2000
msgid "Can add own Organization"
msgstr "Peut ajouter sa propre Organisation"
-#: models.py:1968
+#: models.py:2002
msgid "Can change own Organization"
msgstr "Peut modifier sa propre Organisation"
-#: models.py:1970
+#: models.py:2004
msgid "Can delete own Organization"
msgstr "Peut supprimer sa propre Organisation"
-#: models.py:2005
+#: models.py:2039
msgid "Groups"
msgstr "Groupes"
-#: models.py:2010
+#: models.py:2044
msgid "Person types"
msgstr "Types d'individu"
-#: models.py:2017
+#: models.py:2051
msgid "Mr"
msgstr "M."
-#: models.py:2018
+#: models.py:2052
msgid "Miss"
msgstr "Mlle"
-#: models.py:2019
+#: models.py:2053
msgid "Mr and Mrs"
msgstr "M. et Mme"
-#: models.py:2020
+#: models.py:2054
msgid "Mrs"
msgstr "Mme"
-#: models.py:2021
+#: models.py:2055
msgid "Doctor"
msgstr "Dr."
-#: models.py:2033 models.py:2080
+#: models.py:2067
+msgid "Contact type"
+msgstr "Type de contact"
+
+#: models.py:2070 models.py:2117
msgid "Types"
msgstr "Types"
-#: models.py:2036
+#: models.py:2073
msgid "Is attached to"
msgstr "Est rattaché à"
-#: models.py:2040
+#: models.py:2077
msgid "Persons"
msgstr "Personnes"
-#: models.py:2042
+#: models.py:2079
msgid "Can view all Persons"
msgstr "Peut voir toutes les Personnes"
-#: models.py:2043
+#: models.py:2080
msgid "Can view own Person"
msgstr "Peut voir sa propre Personne"
-#: models.py:2044
+#: models.py:2081
msgid "Can add own Person"
msgstr "Peut ajouter sa propre Personne"
-#: models.py:2045
+#: models.py:2082
msgid "Can change own Person"
msgstr "Peut modifier sa propre Personne"
-#: models.py:2046
+#: models.py:2083
msgid "Can delete own Person"
msgstr "Peut supprimer sa propre Personne"
-#: models.py:2172
+#: models.py:2209
msgid "Ishtar user"
msgstr "Utilisateur d'Ishtar"
-#: models.py:2173
+#: models.py:2210
msgid "Ishtar users"
msgstr "Utilisateurs d'Ishtar"
-#: models.py:2218
+#: models.py:2255
msgid "Author types"
msgstr "Types d'auteur"
-#: models.py:2244
+#: models.py:2281
msgid "Source types"
msgstr "Types de document"
-#: models.py:2250
+#: models.py:2287
msgid "Support types"
msgstr "Types de support"
-#: models.py:2256
+#: models.py:2293
msgid "Formats"
msgstr "Formats"
-#: models.py:2261
+#: models.py:2298
msgid "External ID"
msgstr "Identifiant externe"
-#: models.py:2264
+#: models.py:2301
msgid "Support"
msgstr "Support"
-#: models.py:2268
+#: models.py:2305
msgid "Scale"
msgstr "Échelle"
-#: models.py:2282
+#: models.py:2319
msgid "Item number"
msgstr "Numéro d'élément"
-#: models.py:2283
+#: models.py:2320
msgid "Ref."
msgstr "Réf."
-#: models.py:2286
+#: models.py:2323
msgid "Internal ref."
msgstr "Réf. interne"
-#: models.py:2327
+#: models.py:2364
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:2328 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2365 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Localisation"
-#: models.py:2353
+#: models.py:2390
msgid "Is preventive"
msgstr "Est du préventif"
-#: models.py:2357
+#: models.py:2394
msgid "Operation types"
msgstr "Types d'opération"
-#: models.py:2383
+#: models.py:2420
msgid "Preventive"
msgstr "Préventif"
-#: models.py:2384
+#: models.py:2421
msgid "Research"
msgstr "Programmé"
@@ -1240,7 +1308,7 @@ msgstr "Oui"
msgid "No"
msgstr "Non"
-#: wizards.py:1211
+#: wizards.py:1215
#, python-format
msgid "[%(app_name)s] Account creation/modification"
msgstr "[%(app_name)s] Création /modification du compte"
@@ -1515,7 +1583,7 @@ msgstr "Pas d'acte administratif associé à cette opération"
msgid "Documentation"
msgstr "Documentation"
-#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:52
+#: templates/sheet_ope.html:102 templates/ishtar/sheet_person.html:91
msgid "Documents"
msgstr "Documents"
@@ -1607,7 +1675,7 @@ msgstr "Aide"
#: templates/ishtar/form.html:10 templates/ishtar/formset.html:8
#: templates/ishtar/import_list.html:58 templates/ishtar/merge.html:31
#: templates/ishtar/wizard/confirm_wizard.html:42
-#: templates/ishtar/wizard/default_wizard.html:29
+#: templates/ishtar/wizard/default_wizard.html:30
#: templates/ishtar/wizard/search.html:13
#: templates/ishtar/wizard/validation_bar.html:4
msgid "Validate"
@@ -1745,28 +1813,44 @@ msgid "No person in this organization"
msgstr "Pas de personne au sein de cette organisation"
#: templates/ishtar/sheet_person.html:25
+#: templates/ishtar/wizard/wizard_person.html:19
+msgid "Phone type"
+msgstr "Type de téléphone"
+
+#: templates/ishtar/sheet_person.html:48
+#: templates/ishtar/wizard/wizard_person.html:42
+msgid "Business address"
+msgstr "Adresse professionnelle"
+
+#: templates/ishtar/sheet_person.html:56
+#: templates/ishtar/wizard/wizard_person.html:51
+msgid "Other address"
+msgstr "Autre adresse"
+
+#: templates/ishtar/sheet_person.html:64
msgid "Associated organization"
msgstr "Organisations associées"
-#: templates/ishtar/sheet_person.html:36
+#: templates/ishtar/sheet_person.html:75
msgid "Associated operations as scientist"
msgstr "Opérations associées en tant que responsable scientifique"
-#: templates/ishtar/sheet_person.html:40
+#: templates/ishtar/sheet_person.html:79
msgid "Associated operations as responsible"
msgstr "Opérations associées en tant que responsable"
-#: templates/ishtar/sheet_person.html:46
+#: templates/ishtar/sheet_person.html:85
msgid "Associated archaelogical files"
msgstr "Dossiers archéologiques associés"
-#: templates/ishtar/sheet_person.html:57 templates/ishtar/sheet_person.html:65
+#: templates/ishtar/sheet_person.html:96
+#: templates/ishtar/sheet_person.html:104
#: templates/ishtar/blocks/window_tables/documents.html:9
#: templates/ishtar/blocks/window_tables/documents.html:17
msgid "Link"
msgstr "Lien"
-#: templates/ishtar/sheet_person.html:69
+#: templates/ishtar/sheet_person.html:108
msgid "No document associated to this person"
msgstr "Pas de document associé à cette personne"
@@ -1875,7 +1959,7 @@ msgstr "Vous avez entré les informations suivantes :"
msgid "Would you like to save them?"
msgstr "Voulez-vous sauvegarder ces informations ?"
-#: templates/ishtar/wizard/default_wizard.html:35
+#: templates/ishtar/wizard/default_wizard.html:36
#: templates/ishtar/wizard/parcels_wizard.html:24
#: templates/ishtar/wizard/relations_wizard.html:23
#: templates/ishtar/wizard/search.html:20
@@ -1883,7 +1967,7 @@ msgstr "Voulez-vous sauvegarder ces informations ?"
msgid "Add/Modify"
msgstr "Ajouter/Modifier"
-#: templates/ishtar/wizard/default_wizard.html:56
+#: templates/ishtar/wizard/default_wizard.html:58
msgid ""
"The form has changed if you don't validate it all your changes will be lost."
msgstr ""