summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2017-06-30 17:26:44 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2017-06-30 17:26:44 +0200
commitffd57727a66952e12b5236e7567f5fd75eb7e5f8 (patch)
tree2b8ab152e92a95948e9a038ebcef815bfd56aa38
parent2a0842c8ffb0e7eec6b350f9d170670c8376cce8 (diff)
parent18995ac80a961083ad986f4abe984fd649ec40e2 (diff)
downloadIshtar-ffd57727a66952e12b5236e7567f5fd75eb7e5f8.tar.bz2
Ishtar-ffd57727a66952e12b5236e7567f5fd75eb7e5f8.zip
Merge branch 'master' into develop
-rw-r--r--CHANGES.md30
-rw-r--r--archaeological_context_records/forms.py6
-rw-r--r--archaeological_context_records/locale/django.pot124
-rw-r--r--archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py681
-rw-r--r--archaeological_context_records/models.py2
-rw-r--r--archaeological_context_records/tests.py68
-rw-r--r--archaeological_context_records/views.py7
-rw-r--r--archaeological_finds/locale/django.pot74
-rw-r--r--archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py1251
-rw-r--r--archaeological_finds/models_finds.py8
-rw-r--r--archaeological_finds/templates/ishtar/sheet_find.html9
-rw-r--r--archaeological_operations/forms.py22
-rw-r--r--archaeological_operations/import_from_csv.py2
-rw-r--r--archaeological_operations/import_from_dbf.py2
-rw-r--r--archaeological_operations/locale/django.pot362
-rw-r--r--archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py873
-rw-r--r--archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py846
-rw-r--r--archaeological_operations/models.py8
-rw-r--r--archaeological_operations/tests.py56
-rw-r--r--archaeological_operations/views.py8
-rw-r--r--archaeological_warehouse/urls.py2
-rw-r--r--example_project/settings.py4
-rw-r--r--ishtar_common/admin.py28
-rw-r--r--ishtar_common/data_importer.py41
-rw-r--r--ishtar_common/forms_common.py1
-rw-r--r--ishtar_common/locale/django.pot626
-rw-r--r--ishtar_common/management/commands/ishtar_excute_admin_tasks.py15
-rw-r--r--ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py530
-rw-r--r--ishtar_common/models.py124
-rw-r--r--ishtar_common/templates/blocks/form_snippet.html5
-rw-r--r--ishtar_common/tests.py19
-rw-r--r--translations/de/ishtar_common.po626
-rw-r--r--translations/fr/archaeological_context_records.po124
-rw-r--r--translations/fr/archaeological_finds.po76
-rw-r--r--translations/fr/archaeological_operations.po362
-rw-r--r--translations/fr/ishtar_common.po636
-rw-r--r--version.py4
37 files changed, 6196 insertions, 1466 deletions
diff --git a/CHANGES.md b/CHANGES.md
index 967fa9d76..20a3113db 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,6 +1,36 @@
Ishtar changelog
================
+v0.99.22 (2017-06-30)
+---------------------
+### Features ###
+- Imports: explicit message (instead of crash) on misconfiguration of importers
+- Sources: change external id type to TextField
+- Sheet find: hover text on ID
+
+### Bug fixes ###
+- Sources wizard: fix author deletion
+- Fix container export - CSV
+
+v0.99.21 (2017-06-14)
+---------------------
+### Features ###
+- OA code is now a string
+
+### Bug fixes ###
+- Context record wizard: fix related context record association on creation
+
+v0.99.20 (2017-06-01)
+---------------------
+### Features ###
+- Add the ability to scheduled administration task inside Django admin
+- Alert when PROJECT_SLUG or profile slug is set to "default"
+- Operation wizard: collaborators in a specific panel
+- Autocomplete: on no result return an empty list instead of an empty string
+
+### Bug fixes ###
+- Finds: fix full CSV export columns
+
v0.99.19 (2017-05-16)
---------------------
### Features ###
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index 91effb397..77b42b609 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -59,7 +59,8 @@ class RecordSelect(TableSelect):
label = forms.CharField(label=_(u"ID"), max_length=100)
parcel__town = get_town_field()
if settings.COUNTRY == 'fr':
- operation__code_patriarche = forms.IntegerField(
+ operation__code_patriarche = forms.CharField(
+ max_length=500,
widget=OAWidget,
label=_(u"Code PATRIARCHE"))
operation__year = forms.IntegerField(label=_(u"Operation's year"))
@@ -366,7 +367,8 @@ class RecordSourceSelect(SourceSelect):
context_record__operation__operation_code = forms.IntegerField(
label=_(u"Numeric reference"))
if settings.COUNTRY == 'fr':
- context_record__operation__code_patriarche = forms.IntegerField(
+ context_record__operation__code_patriarche = forms.CharField(
+ max_length=500,
widget=OAWidget,
label="Code PATRIARCHE")
context_record__parcel__town = get_town_field(
diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot
index 1617d6692..3ca377971 100644
--- a/archaeological_context_records/locale/django.pot
+++ b/archaeological_context_records/locale/django.pot
@@ -12,228 +12,228 @@ msgstr ""
msgid "Operation"
msgstr ""
-#: forms.py:59 forms.py:141 models.py:219 models.py:568
+#: forms.py:59 forms.py:142 models.py:219 models.py:568
msgid "ID"
msgstr ""
-#: forms.py:64
+#: forms.py:65
msgid "Code PATRIARCHE"
msgstr ""
-#: forms.py:65
+#: forms.py:66
msgid "Operation's year"
msgstr ""
-#: forms.py:67
+#: forms.py:68
msgid "Operation's number (index by year)"
msgstr ""
-#: forms.py:69
+#: forms.py:70
msgid "Archaeological site"
msgstr ""
-#: forms.py:75
+#: forms.py:76
msgid "Search within related operations"
msgstr ""
-#: forms.py:77 forms.py:254 models.py:56
+#: forms.py:78 forms.py:255 models.py:56
msgid "Period"
msgstr ""
-#: forms.py:78
+#: forms.py:79
msgid "Unit type"
msgstr ""
-#: forms.py:79
+#: forms.py:80
msgid "Parcel (section/number/public domain)"
msgstr ""
-#: forms.py:81
+#: forms.py:82
msgid "Search within relations"
msgstr ""
-#: forms.py:111 forms.py:358 views.py:92
+#: forms.py:112 forms.py:359 views.py:92
msgid "Context record search"
msgstr ""
-#: forms.py:125
+#: forms.py:126
msgid "You should at least select one context record."
msgstr ""
-#: forms.py:131
+#: forms.py:132
msgid "General"
msgstr ""
-#: forms.py:140 models.py:181 models.py:215 models.py:570
+#: forms.py:141 models.py:181 models.py:215 models.py:570
msgid "Parcel"
msgstr ""
-#: forms.py:143 models.py:220 models.py:571
+#: forms.py:144 models.py:220 models.py:571
#: templates/ishtar/sheet_contextrecord.html:30
msgid "Description"
msgstr ""
-#: forms.py:145 models.py:221
+#: forms.py:146 models.py:221
msgid "General comment"
msgstr ""
-#: forms.py:148 models.py:268
+#: forms.py:149 models.py:268
msgid "Excavation technique"
msgstr ""
-#: forms.py:149 models.py:225
+#: forms.py:150 models.py:225
msgid "Length (m)"
msgstr ""
-#: forms.py:150 models.py:226
+#: forms.py:151 models.py:226
msgid "Width (m)"
msgstr ""
-#: forms.py:151 models.py:227
+#: forms.py:152 models.py:227
msgid "Thickness (m)"
msgstr ""
-#: forms.py:152 models.py:229
+#: forms.py:153 models.py:229
msgid "Diameter (m)"
msgstr ""
-#: forms.py:153 models.py:230
+#: forms.py:154 models.py:230
msgid "Depth (m)"
msgstr ""
-#: forms.py:155 models.py:232
+#: forms.py:156 models.py:232
msgid "Depth of appearance (m)"
msgstr ""
-#: forms.py:156 forms.py:377 models.py:242 models.py:569
+#: forms.py:157 forms.py:379 models.py:242 models.py:569
msgid "Context record type"
msgstr ""
-#: forms.py:159 ishtar_menu.py:48
+#: forms.py:160 ishtar_menu.py:48
msgid "Documentation"
msgstr ""
-#: forms.py:162 models.py:234
+#: forms.py:163 models.py:234
msgid "Location"
msgstr ""
-#: forms.py:165
+#: forms.py:166
msgid "Image"
msgstr ""
-#: forms.py:166
+#: forms.py:167
#, python-format
msgid ""
"<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"
"p>"
msgstr ""
-#: forms.py:243
+#: forms.py:244
msgid "This ID already exists for this operation."
msgstr ""
-#: forms.py:249 forms.py:276 models.py:67
+#: forms.py:250 forms.py:277 models.py:67
msgid "Dating"
msgstr ""
-#: forms.py:255 models.py:57
+#: forms.py:256 models.py:57
msgid "Start date"
msgstr ""
-#: forms.py:256 models.py:58 models.py:224
+#: forms.py:257 models.py:58 models.py:224
msgid "End date"
msgstr ""
-#: forms.py:257 models.py:61
+#: forms.py:258 models.py:61
msgid "Quality"
msgstr ""
-#: forms.py:258 models.py:39 models.py:59
+#: forms.py:259 models.py:39 models.py:59
msgid "Dating type"
msgstr ""
-#: forms.py:285 ishtar_menu.py:29 models.py:642
+#: forms.py:286 ishtar_menu.py:29 models.py:642
msgid "Context record"
msgstr ""
-#: forms.py:307
+#: forms.py:308
msgid "Relations"
msgstr ""
-#: forms.py:311 forms.py:319 models.py:245
+#: forms.py:312 forms.py:320 models.py:245
#: templates/ishtar/sheet_contextrecord.html:44
msgid "Interpretation"
msgstr ""
-#: forms.py:315
+#: forms.py:316
msgid "Comments on dating"
msgstr ""
-#: forms.py:317 models.py:244
+#: forms.py:318 models.py:244
msgid "Filling"
msgstr ""
-#: forms.py:321 models.py:265
+#: forms.py:322 models.py:265
msgid "Activity"
msgstr ""
-#: forms.py:323 models.py:263
+#: forms.py:324 models.py:263
msgid "Identification"
msgstr ""
-#: forms.py:325 models.py:248
+#: forms.py:326 models.py:248
msgid "TAQ"
msgstr ""
-#: forms.py:326 models.py:252
+#: forms.py:327 models.py:252
msgid "Estimated TAQ"
msgstr ""
-#: forms.py:328 models.py:255
+#: forms.py:329 models.py:255
msgid "TPQ"
msgstr ""
-#: forms.py:329 models.py:259
+#: forms.py:330 models.py:259
msgid "Estimated TPQ"
msgstr ""
-#: forms.py:344
+#: forms.py:345
msgid "Operation search"
msgstr ""
-#: forms.py:346
+#: forms.py:347
msgid "You should select an operation."
msgstr ""
-#: forms.py:351
+#: forms.py:352
msgid "Would you like to delete this context record?"
msgstr ""
-#: forms.py:360
+#: forms.py:361
msgid "You should select a context record."
msgstr ""
-#: forms.py:365
+#: forms.py:366
msgid "Year of the operation"
msgstr ""
-#: forms.py:367
+#: forms.py:368
msgid "Numeric reference"
msgstr ""
-#: forms.py:373
+#: forms.py:375
msgid "Town of the operation"
msgstr ""
-#: forms.py:375
+#: forms.py:377
msgid "Period of the context record"
msgstr ""
-#: forms.py:390
+#: forms.py:392
msgid "Documentation search"
msgstr ""
-#: forms.py:392
+#: forms.py:394
msgid "You should select a document."
msgstr ""
@@ -514,31 +514,31 @@ msgstr ""
msgid "Can delete own Context record source"
msgstr ""
-#: views.py:102
+#: views.py:105
msgid "New context record"
msgstr ""
-#: views.py:113
+#: views.py:116
msgid "Context record modification"
msgstr ""
-#: views.py:127
+#: views.py:130
msgid "Context record deletion"
msgstr ""
-#: views.py:132
+#: views.py:135
msgid "Context record: source search"
msgstr ""
-#: views.py:140
+#: views.py:143
msgid "Context record: new source"
msgstr ""
-#: views.py:148
+#: views.py:151
msgid "Context record: source modification"
msgstr ""
-#: views.py:163
+#: views.py:166
msgid "Context record: source deletion"
msgstr ""
diff --git a/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py b/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py
new file mode 100644
index 000000000..1c8348bbd
--- /dev/null
+++ b/archaeological_context_records/migrations/0034_auto__chg_field_contextrecordsource_external_id.py
@@ -0,0 +1,681 @@
+# -*- 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 'ContextRecordSource.external_id'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'ContextRecordSource.external_id'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True))
+
+ models = {
+ 'archaeological_context_records.activitytype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'},
+ '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'})
+ },
+ 'archaeological_context_records.contextrecord': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'},
+ 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}),
+ 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentations': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.DocumentationType']", 'null': 'True', 'blank': 'True'}),
+ 'excavation_technic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ExcavationTechnicType']", 'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'filling': ('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'}),
+ 'identification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.IdentificationType']", 'null': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'opening_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}),
+ 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_context_records': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.ContextRecord']", 'null': 'True', 'through': "orm['archaeological_context_records.RecordRelations']", 'blank': 'True'}),
+ 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}),
+ 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.contextrecordsource': {
+ 'Meta': {'object_name': 'ContextRecordSource'},
+ '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': "'contextrecordsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_context_records.ContextRecord']"}),
+ '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.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_context_records.dating': {
+ 'Meta': {'object_name': 'Dating'},
+ 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}),
+ 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.datingquality': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'},
+ '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_context_records.datingtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'},
+ '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_context_records.documentationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DocumentationType'},
+ '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_context_records.excavationtechnictype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ExcavationTechnicType'},
+ '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_context_records.historicalcontextrecord': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalContextRecord'},
+ 'activity_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_technic_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'filling': ('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'}),
+ 'identification_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'opening_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'parcel_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}),
+ 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'unit_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.identificationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'},
+ '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'})
+ },
+ 'archaeological_context_records.recordrelations': {
+ 'Meta': {'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_context_records.ContextRecord']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"})
+ },
+ 'archaeological_context_records.recordrelationview': {
+ 'Meta': {'unique_together': "(('id', 'right_record'),)", 'object_name': 'RecordRelationView', 'db_table': "'record_relations'", 'managed': 'False'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.ContextRecord']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'on_delete': 'models.DO_NOTHING', 'to': "orm['archaeological_context_records.ContextRecord']"})
+ },
+ 'archaeological_context_records.relationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_context_records.unit': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'Unit'},
+ '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', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.Unit']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}),
+ 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ '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.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.operation': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ '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.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.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.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': {'ordering': "('author_type__order', 'person__name')", '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': {'ordering': "['order', 'label']", '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ '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.format': {
+ 'Meta': {'ordering': "['label']", '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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.importermodel': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}),
+ 'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}),
+ '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']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_context_records'] \ No newline at end of file
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 883433517..6f6e4c80b 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -397,7 +397,7 @@ class ContextRecord(BulkUpdatedItem, BaseHistorizedItem, ImageModel, OwnPerms,
def _real_label(self):
if not self.operation.code_patriarche:
return
- return settings.JOINT.join((unicode(self.operation.code_patriarche),
+ return settings.JOINT.join((self.operation.code_patriarche,
self.label))
def _temp_label(self):
diff --git a/archaeological_context_records/tests.py b/archaeological_context_records/tests.py
index df05f4898..07360f73a 100644
--- a/archaeological_context_records/tests.py
+++ b/archaeological_context_records/tests.py
@@ -27,13 +27,16 @@ from django.core.urlresolvers import reverse
from django.test.client import Client
from ishtar_common.models import IshtarSiteProfile, ImporterModel
-from ishtar_common.tests import create_superuser, TestCase
from archaeological_operations.tests import OperationInitTest, \
ImportTest, ImportOperationTest
from archaeological_operations import models as models_ope
from archaeological_context_records import models
+from ishtar_common.tests import WizardTest, WizardTestFormData as FormData, \
+ create_superuser, TestCase
+
+from archaeological_context_records import views
class ImportContextRecordTest(ImportTest, TestCase):
@@ -527,3 +530,66 @@ class RecordRelationsTest(ContextRecordInit, TestCase):
self.assertEqual(models.RecordRelations.objects.filter(
left_record=cr_2, right_record=cr_1,
relation_type=rel_type_2).count(), 1)
+
+
+class ContextRecordWizardCreationTest(WizardTest, ContextRecordInit, TestCase):
+ fixtures = ImportOperationTest.fixtures
+ url_name = 'record_creation'
+ wizard_name = 'record_wizard'
+ steps = views.record_creation_steps
+ form_datas = [
+ FormData(
+ "Create a simple context record",
+ form_datas={
+ 'selec-record_creation': {},
+ 'general-record_creation': {
+ 'label': "First"
+ },
+ },
+ ignored=('datings-record_creation',
+ 'interpretation-record_creation',
+ 'relations-record_creation',)
+ ),
+ FormData(
+ "Create a context record with a relation",
+ form_datas={
+ 'selec-record_creation': {},
+ 'general-record_creation': {
+ 'label': "Second"
+ },
+ 'relations-record_creation': []
+ },
+ ignored=('datings-record_creation',
+ 'interpretation-record_creation',)
+ ),
+ ]
+
+ def pre_wizard(self):
+ profile, created = IshtarSiteProfile.objects.get_or_create(
+ slug='default', active=True)
+ profile.context_record = True
+ profile.save()
+
+ ope = self.get_default_operation()
+ parcel = self.get_default_parcel()
+ for form_data in self.form_datas:
+ form_data.form_datas['selec-record_creation']['operation_id'] = \
+ ope.pk
+ form_data.form_datas['general-record_creation']['parcel'] = \
+ parcel.pk
+
+ self.related_cr = self.create_context_record(data={'operation': ope})[0]
+ self.form_datas[1].form_datas['relations-record_creation'].append(
+ {'right_record': self.related_cr.pk,
+ 'relation_type': models.RelationType.objects.create(
+ label="Test").pk}
+ )
+
+ self.cr_nb = models.ContextRecord.objects.count()
+ super(ContextRecordWizardCreationTest, self).pre_wizard()
+
+ def post_wizard(self):
+ self.assertEqual(models.ContextRecord.objects.count(),
+ self.cr_nb + 2)
+ self.assertEqual(self.related_cr.left_relations.count(),
+ 1)
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py
index 1f5b46f63..3bfe544be 100644
--- a/archaeological_context_records/views.py
+++ b/archaeological_context_records/views.py
@@ -92,13 +92,16 @@ record_search_wizard = SearchWizard.as_view([
label=_(u"Context record search"),
url_name='record_search',)
-record_creation_wizard = RecordWizard.as_view([
+record_creation_steps = [
('selec-record_creation', OperationRecordFormSelection),
('general-record_creation', RecordFormGeneral),
('datings-record_creation', DatingFormSet),
('interpretation-record_creation', RecordFormInterpretation),
('relations-record_creation', RecordRelationsFormSet),
- ('final-record_creation', FinalForm)],
+ ('final-record_creation', FinalForm)
+]
+
+record_creation_wizard = RecordWizard.as_view(record_creation_steps,
label=_(u"New context record"),
url_name='record_creation',)
diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot
index f3b087244..121d3d48a 100644
--- a/archaeological_finds/locale/django.pot
+++ b/archaeological_finds/locale/django.pot
@@ -20,7 +20,7 @@ msgid "Find"
msgstr ""
#: forms.py:142 forms.py:347 forms.py:629 models_finds.py:151
-#: models_finds.py:635
+#: models_finds.py:635 templates/ishtar/sheet_find.html:17
msgid "Free ID"
msgstr ""
@@ -73,15 +73,15 @@ msgstr ""
msgid "Point of topographic reference"
msgstr ""
-#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:209
+#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:208
msgid "X"
msgstr ""
-#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:210
+#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:209
msgid "Y"
msgstr ""
-#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:211
+#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:210
msgid "Z"
msgstr ""
@@ -196,13 +196,13 @@ msgstr ""
#: forms.py:316 forms_treatments.py:138 forms_treatments.py:283
#: forms_treatments.py:481 models_finds.py:1186 models_treatments.py:130
-#: models_treatments.py:309 templates/ishtar/sheet_find.html:95
-#: templates/ishtar/sheet_find.html:137
+#: models_treatments.py:309 templates/ishtar/sheet_find.html:94
+#: templates/ishtar/sheet_find.html:136
msgid "Start date"
msgstr ""
#: forms.py:318 models_finds.py:1187 models_treatments.py:310
-#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:138
+#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:137
msgid "End date"
msgstr ""
@@ -357,7 +357,7 @@ msgid "Basket"
msgstr ""
#: forms_treatments.py:52 forms_treatments.py:92 models_treatments.py:99
-#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131
+#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130
msgid "Label"
msgstr ""
@@ -387,7 +387,7 @@ msgid "Base treatment"
msgstr ""
#: forms_treatments.py:103 models_treatments.py:93 models_treatments.py:112
-#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133
+#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132
msgid "State"
msgstr ""
@@ -560,8 +560,8 @@ msgid "Internal ref."
msgstr ""
#: forms_treatments.py:403 forms_treatments.py:460 models_treatments.py:92
-#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132
-#: templates/ishtar/sheet_find.html:232
+#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131
+#: templates/ishtar/sheet_find.html:231
msgid "Type"
msgstr ""
@@ -666,8 +666,8 @@ msgstr ""
msgid "Administrative act"
msgstr ""
-#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:226
-#: templates/ishtar/sheet_find.html:228
+#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:225
+#: templates/ishtar/sheet_find.html:227
msgid "Documents"
msgstr ""
@@ -839,11 +839,11 @@ msgstr ""
msgid "Checked and correct"
msgstr ""
-#: models_finds.py:539
+#: models_finds.py:539 templates/ishtar/sheet_find.html:19
msgid "Base find - Short ID"
msgstr ""
-#: models_finds.py:540
+#: models_finds.py:540 templates/ishtar/sheet_find.html:18
msgid "Base find - Complete ID"
msgstr ""
@@ -888,8 +888,8 @@ msgid "Base find - Discovery date"
msgstr ""
#: models_finds.py:556 models_finds.py:662 models_treatments.py:132
-#: models_treatments.py:312 templates/ishtar/sheet_find.html:94
-#: templates/ishtar/sheet_find.html:136
+#: models_treatments.py:312 templates/ishtar/sheet_find.html:93
+#: templates/ishtar/sheet_find.html:135
msgid "Container"
msgstr ""
@@ -905,11 +905,11 @@ msgstr ""
msgid "Weight unit"
msgstr ""
-#: models_finds.py:655 templates/ishtar/sheet_find.html:82
+#: models_finds.py:655 templates/ishtar/sheet_find.html:81
msgid "Upstream treatment"
msgstr ""
-#: models_finds.py:658 templates/ishtar/sheet_find.html:124
+#: models_finds.py:658 templates/ishtar/sheet_find.html:123
msgid "Downstream treatment"
msgstr ""
@@ -1049,7 +1049,7 @@ msgstr ""
msgid "Target a basket"
msgstr ""
-#: models_treatments.py:149 templates/ishtar/sheet_find.html:79
+#: models_treatments.py:149 templates/ishtar/sheet_find.html:78
#: templates/ishtar/sheet_treatmentfile.html:46
msgid "Treatments"
msgstr ""
@@ -1078,8 +1078,8 @@ msgstr ""
msgid "TREATMENT"
msgstr ""
-#: models_treatments.py:313 templates/ishtar/sheet_find.html:93
-#: templates/ishtar/sheet_find.html:135
+#: models_treatments.py:313 templates/ishtar/sheet_find.html:92
+#: templates/ishtar/sheet_find.html:134
msgid "Doer"
msgstr ""
@@ -1329,55 +1329,59 @@ msgid ""
"the find."
msgstr ""
-#: templates/ishtar/sheet_find.html:29
+#: templates/ishtar/sheet_find.html:20
+msgid "Find - Administrative ID"
+msgstr ""
+
+#: templates/ishtar/sheet_find.html:28
msgid "Administrative index"
msgstr ""
-#: templates/ishtar/sheet_find.html:71
+#: templates/ishtar/sheet_find.html:70
msgid "Warehouse"
msgstr ""
-#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130
+#: templates/ishtar/sheet_find.html:87 templates/ishtar/sheet_find.html:129
msgid "Year - index"
msgstr ""
-#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:134
+#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133
msgid "Related finds (max. 15 displayed)"
msgstr ""
-#: templates/ishtar/sheet_find.html:120
+#: templates/ishtar/sheet_find.html:119
msgid "Export as CSV"
msgstr ""
-#: templates/ishtar/sheet_find.html:120 templates/ishtar/sheet_find.html:163
+#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:162
msgid "CSV"
msgstr ""
-#: templates/ishtar/sheet_find.html:168
+#: templates/ishtar/sheet_find.html:167
msgid "Associated base finds"
msgstr ""
-#: templates/ishtar/sheet_find.html:175
+#: templates/ishtar/sheet_find.html:174
msgid "Internal ID"
msgstr ""
-#: templates/ishtar/sheet_find.html:207
+#: templates/ishtar/sheet_find.html:206
msgid "Coordinates"
msgstr ""
-#: templates/ishtar/sheet_find.html:214
+#: templates/ishtar/sheet_find.html:213
msgid "SRID"
msgstr ""
-#: templates/ishtar/sheet_find.html:231
+#: templates/ishtar/sheet_find.html:230
msgid "Title"
msgstr ""
-#: templates/ishtar/sheet_find.html:233
+#: templates/ishtar/sheet_find.html:232
msgid "Authors"
msgstr ""
-#: templates/ishtar/sheet_find.html:234
+#: templates/ishtar/sheet_find.html:233
msgid "Link"
msgstr ""
diff --git a/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py b/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py
new file mode 100644
index 000000000..32789a1ee
--- /dev/null
+++ b/archaeological_finds/migrations/0086_auto__chg_field_treatmentsource_external_id__chg_field_treatmentfileso.py
@@ -0,0 +1,1251 @@
+# -*- 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 'TreatmentSource.external_id'
+ db.alter_column('archaeological_finds_treatmentsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True))
+
+ # Changing field 'TreatmentFileSource.external_id'
+ db.alter_column('archaeological_finds_treatmentfilesource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True))
+
+ # Changing field 'FindSource.external_id'
+ db.alter_column('archaeological_finds_findsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'TreatmentSource.external_id'
+ db.alter_column('archaeological_finds_treatmentsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True))
+
+ # Changing field 'TreatmentFileSource.external_id'
+ db.alter_column('archaeological_finds_treatmentfilesource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True))
+
+ # Changing field 'FindSource.external_id'
+ db.alter_column('archaeological_finds_findsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True))
+
+ models = {
+ 'archaeological_context_records.activitytype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ActivityType'},
+ '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'})
+ },
+ 'archaeological_context_records.contextrecord': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'ContextRecord'},
+ 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", 'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'closing_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_context_records.Dating']", 'symmetrical': 'False'}),
+ 'datings_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'depth_of_appearance': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentations': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.DocumentationType']", 'null': 'True', 'blank': 'True'}),
+ 'excavation_technic': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ExcavationTechnicType']", 'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'filling': ('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'}),
+ 'identification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.IdentificationType']", 'null': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_context_records_contextrecord'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'interpretation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'opening_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'context_record'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}),
+ 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_context_records': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_context_records.ContextRecord']", 'null': 'True', 'through': "orm['archaeological_context_records.RecordRelations']", 'blank': 'True'}),
+ 'taq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'taq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'tpq': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'tpq_estimated': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'unit': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['archaeological_context_records.Unit']"}),
+ 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.dating': {
+ 'Meta': {'object_name': 'Dating'},
+ 'dating_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingType']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'period': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']"}),
+ 'precise_dating': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'quality': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.DatingQuality']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.datingquality': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DatingQuality'},
+ '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_context_records.datingtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DatingType'},
+ '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_context_records.documentationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'DocumentationType'},
+ '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_context_records.excavationtechnictype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ExcavationTechnicType'},
+ '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_context_records.identificationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'IdentificationType'},
+ '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'})
+ },
+ 'archaeological_context_records.recordrelations': {
+ 'Meta': {'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_context_records.ContextRecord']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_context_records.ContextRecord']"})
+ },
+ 'archaeological_context_records.relationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_context_records.unit': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'Unit'},
+ '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', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.Unit']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}),
+ 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ '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_finds.basefind': {
+ 'Meta': {'object_name': 'BaseFind'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'batch': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.BatchType']", 'null': 'True', 'blank': 'True'}),
+ 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'context_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'base_finds'", 'to': "orm['archaeological_context_records.ContextRecord']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('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_finds_basefind'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}),
+ 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}),
+ 'point_2d': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'spatial_reference_system': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SpatialReferenceSystem']", 'null': 'True', 'blank': 'True'}),
+ 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_finds.batchtype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'BatchType'},
+ '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': '10'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_finds.conservatorystate': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ConservatoryState'},
+ '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'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_finds.find': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Find'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}),
+ 'collection': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_warehouse.Collection']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'conservatory_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ConservatoryState']", 'null': 'True', 'on_delete': 'models.SET_NULL', 'blank': 'True'}),
+ 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_warehouse.Container']"}),
+ 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'datings': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_context_records.Dating']"}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_find'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'integrities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.IntegrityType']"}),
+ 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'material_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.MaterialType']"}),
+ 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'object_types': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.ObjectType']"}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preservation_to_considers': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'finds'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.PreservationType']"}),
+ 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'remarkabilities': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.RemarkabilityType']"}),
+ 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_finds.findbasket': {
+ 'Meta': {'unique_together': "(('label', 'user'),)", 'object_name': 'FindBasket'},
+ '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'}),
+ 'items': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'basket'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['archaeological_finds.Find']"}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '1000'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_finds.finddownstreamtreatments': {
+ 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindDownstreamTreatments', 'db_table': "'find_downtreatments'", 'managed': 'False'},
+ 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'finddownstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}),
+ 'treatment_nb': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'archaeological_finds.findsource': {
+ 'Meta': {'object_name': 'FindSource'},
+ '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': "'findsource_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.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Find']"}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_finds.findtreatments': {
+ 'Meta': {'ordering': "('find', 'upstream', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindTreatments', 'db_table': "'find_treatments'", 'managed': 'False'},
+ 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findtreatments_related'", 'to': "orm['archaeological_finds.Find']"}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}),
+ 'treatment_nb': ('django.db.models.fields.IntegerField', [], {}),
+ 'upstream': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ 'archaeological_finds.findupstreamtreatments': {
+ 'Meta': {'ordering': "('find', '-treatment_nb')", 'unique_together': "(('find', 'treatment'),)", 'object_name': 'FindUpstreamTreatments', 'db_table': "'find_uptreatments'", 'managed': 'False'},
+ 'find': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'findupstreamtreatments_related'", 'to': "orm['archaeological_finds.Find']"}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Treatment']", 'primary_key': 'True'}),
+ 'treatment_nb': ('django.db.models.fields.IntegerField', [], {})
+ },
+ 'archaeological_finds.historicalbasefind': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'batch_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cache_complete_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cache_short_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'context_record_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'discovery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_error_z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('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'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'line': ('django.contrib.gis.db.models.fields.LineStringField', [], {'null': 'True', 'blank': 'True'}),
+ 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'dim': '3', 'null': 'True', 'blank': 'True'}),
+ 'point_2d': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'polygon': ('django.contrib.gis.db.models.fields.PolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'spatial_reference_system_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'special_interest': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'topographic_localisation': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'x': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'y': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'z': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_finds.historicalfind': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}),
+ 'collection_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'conservatory_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'conservatory_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'dating_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'diameter': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'dimensions_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'estimated_value': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'find_number': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'is_complete': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'length': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'mark': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'min_number_of_individuals': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'thickness': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'upstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'volume': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'weight': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'weight_unit': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_finds.historicaltreatment': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatment'},
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'goal': ('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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'organization_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'treatment_state_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.historicaltreatmentfile': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalTreatmentFile'},
+ 'applicant_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'applicant_organisation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', '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', [], {'default': '1'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.integritytype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'IntegrityType'},
+ '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_finds.materialtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'MaterialType'},
+ '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'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.MaterialType']", 'null': 'True', 'blank': 'True'}),
+ 'recommendation': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_finds.objecttype': {
+ 'Meta': {'ordering': "('parent__label', 'label')", 'object_name': 'ObjectType'},
+ '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'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.ObjectType']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_finds.preservationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PreservationType'},
+ '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_finds.property': {
+ 'Meta': {'object_name': 'Property'},
+ 'administrative_act': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.AdministrativeAct']"}),
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'find': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.Find']"}),
+ '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_finds_property'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'properties'", 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_finds.remarkabilitytype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemarkabilityType'},
+ '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_finds.treatment': {
+ 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'},
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ 'goal': ('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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}),
+ 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfile': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'},
+ 'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', '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_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfilesource': {
+ 'Meta': {'object_name': 'TreatmentFileSource'},
+ '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': "'treatmentfilesource_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.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.TreatmentFile']"})
+ },
+ 'archaeological_finds.treatmentfiletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'},
+ '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_finds.treatmentsource': {
+ 'Meta': {'object_name': 'TreatmentSource'},
+ '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': "'treatmentsource_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.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"})
+ },
+ 'archaeological_finds.treatmentstate': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'},
+ '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_finds.treatmenttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ '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': '2'}),
+ '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'}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ '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.operation': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ '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.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.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.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'})
+ },
+ 'archaeological_warehouse.collection': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'Collection'},
+ 'description': ('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_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_collection'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'collections'", 'to': "orm['archaeological_warehouse.Warehouse']"})
+ },
+ 'archaeological_warehouse.container': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ 'external_id': ('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_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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': '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']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.FloatField', [], {'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'}),
+ 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'external_id': ('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_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': '200'}),
+ '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.warehousedivision': {
+ 'Meta': {'object_name': 'WarehouseDivision'},
+ '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_warehouse.warehousedivisionlink': {
+ 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'},
+ 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
+ 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"})
+ },
+ '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.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': {'ordering': "('author_type__order', 'person__name')", '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': {'ordering': "['order', 'label']", '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ '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': {'ordering': "['label']", '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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.importermodel': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}),
+ 'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}),
+ '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']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'ordering': "['label']", '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.spatialreferencesystem': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'SpatialReferenceSystem'},
+ 'auth_name': ('django.db.models.fields.CharField', [], {'default': "'EPSG'", 'max_length': '256'}),
+ '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': '10'}),
+ 'srid': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_finds'] \ No newline at end of file
diff --git a/archaeological_finds/models_finds.py b/archaeological_finds/models_finds.py
index 632df91f5..aa79c2b32 100644
--- a/archaeological_finds/models_finds.py
+++ b/archaeological_finds/models_finds.py
@@ -247,7 +247,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):
c_id = []
if ope.code_patriarche:
c_id.append(settings.ISHTAR_OPE_PREFIX +
- unicode(ope.code_patriarche))
+ ope.code_patriarche)
elif ope.year and ope.operation_code:
c_id.append(
settings.ISHTAR_DEF_OPE_PREFIX +
@@ -294,8 +294,8 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):
find = self.get_last_find()
finds = [find and find.material_type.code or '']
ope = self.context_record.operation
- finds += [unicode(ope.code_patriarche) or
- (unicode(ope.year) + "-" + unicode(ope.operation_code))]
+ finds += [ope.code_patriarche or
+ (unicode(ope.year) + "-" + ope.operation_code)]
finds += [self.context_record.label, unicode(self.material_index)]
return settings.JOINT.join(finds)
@@ -307,7 +307,7 @@ class BaseFind(BulkUpdatedItem, BaseHistorizedItem, OwnPerms):
find = self.get_last_find()
lbl = find.label or self.label
return settings.JOINT.join(
- [unicode(it) for it in (
+ [it for it in (
self.context_record.operation.code_patriarche,
self.context_record.label, lbl) if it])
diff --git a/archaeological_finds/templates/ishtar/sheet_find.html b/archaeological_finds/templates/ishtar/sheet_find.html
index 1604e2018..6187a300f 100644
--- a/archaeological_finds/templates/ishtar/sheet_find.html
+++ b/archaeological_finds/templates/ishtar/sheet_find.html
@@ -13,11 +13,10 @@
{% trans "This sheet has a downstream treatment: it is related to an old version of the find." %}</p>
{% endif %}
-<p class="window-refs">{{ item.label|default:"" }}</p>
-<p class='window-refs'>{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} &ndash; {% endif %}{{base_find.complete_id}}{% endfor %}</p>
-<p class='window-refs'>{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} &ndash; {% endif %}{{base_find.short_id}}{% endfor %}</p>
-<p class="window-refs">{{ item.administrative_index|default:"" }}</p>
-<p class="window-refs">{{ item.contextrecord|default:"" }}</p>
+<p class="window-refs" title="{% trans 'Free ID' %}">{{ item.label|default:"" }}</p>
+<p class='window-refs' title="{% trans 'Base find - Complete ID' %}">{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} &ndash; {% endif %}{{base_find.complete_id}}{% endfor %}</p>
+<p class='window-refs' title="{% trans 'Base find - Short ID' %}">{% for base_find in item.base_finds.all %}{% if forloop.counter0 %} &ndash; {% endif %}{{base_find.short_id}}{% endfor %}</p>
+<p class="window-refs" title="{% trans 'Find - Administrative ID' %}">{{ item.administrative_index|default:"" }}</p>
{% include "ishtar/blocks/sheet_external_id.html" %}
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 32b37e4c3..529a0c2fb 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -416,7 +416,9 @@ class RecordRelationsForm(ManageOldType, forms.Form):
cleaned_data.get('right_record', None)):
raise forms.ValidationError(
_(u"You should select a relation type."))
- if str(cleaned_data.get('right_record')) == str(self.left_record.pk):
+ if self.left_record and \
+ str(cleaned_data.get('right_record')) == str(
+ self.left_record.pk):
raise forms.ValidationError(
_(u"An operation cannot be related to herself."))
return cleaned_data
@@ -481,7 +483,8 @@ class OperationSelect(TableSelect):
year = forms.IntegerField(label=_("Year"))
operation_code = forms.IntegerField(label=_(u"Numeric reference"))
if settings.COUNTRY == 'fr':
- code_patriarche = forms.IntegerField(
+ code_patriarche = forms.CharField(
+ max_length=500,
widget=OAWidget,
label="Code PATRIARCHE")
towns = get_town_field()
@@ -769,9 +772,10 @@ class OperationFormGeneral(ManageOldType, forms.Form):
}
pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
if settings.COUNTRY == 'fr':
- code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE",
- widget=OAWidget,
- required=False)
+ code_patriarche = forms.CharField(label=u"Code PATRIARCHE",
+ max_length=500,
+ widget=OAWidget,
+ required=False)
common_name = forms.CharField(label=_(u"Generic name"), required=False,
max_length=500, widget=forms.Textarea)
address = forms.CharField(label=_(u"Address / Locality"), required=False,
@@ -934,7 +938,7 @@ class OperationFormGeneral(ManageOldType, forms.Form):
if 'pk' in cleaned_data and cleaned_data['pk']:
ops = ops.exclude(pk=cleaned_data['pk'])
if ops.count():
- msg = u"Ce code Patriarche a déjà été affecté à une "\
+ msg = u"Ce code OA a déjà été affecté à une "\
u"autre opération"
raise forms.ValidationError(msg)
# manage unique operation ID
@@ -1280,7 +1284,8 @@ class OperationSourceSelect(SourceSelect):
operation__operation_code = forms.IntegerField(
label=_(u"Numeric reference"))
if settings.COUNTRY == 'fr':
- operation__code_patriarche = forms.IntegerField(
+ operation__code_patriarche = forms.CharField(
+ max_length=500,
widget=OAWidget,
label="Code PATRIARCHE")
operation__towns = get_town_field(label=_(u"Operation's town"))
@@ -1312,7 +1317,8 @@ class AdministrativeActOpeSelect(TableSelect):
if settings.COUNTRY == 'fr':
ref_sra = forms.CharField(label=u"Autre référence",
max_length=15)
- operation__code_patriarche = forms.IntegerField(
+ operation__code_patriarche = forms.CharField(
+ max_length=500,
widget=OAWidget,
label="Code PATRIARCHE")
act_type = forms.ChoiceField(label=_("Act type"), choices=[])
diff --git a/archaeological_operations/import_from_csv.py b/archaeological_operations/import_from_csv.py
index 999ada690..5155e9fc6 100644
--- a/archaeological_operations/import_from_csv.py
+++ b/archaeological_operations/import_from_csv.py
@@ -79,7 +79,7 @@ DEFAULT_OPE_COLS = [
(('excavation_end_date',), parse_date),
(('year',), parse_year),
[], # identification
- (('code_patriarche',), int),
+ (('code_patriarche',), unicode),
[], # X degré
[], # Y degré
[], # X saisi ?
diff --git a/archaeological_operations/import_from_dbf.py b/archaeological_operations/import_from_dbf.py
index fa452d605..1f6b041d2 100644
--- a/archaeological_operations/import_from_dbf.py
+++ b/archaeological_operations/import_from_dbf.py
@@ -119,7 +119,7 @@ PATRIARCHE_DBF_OPE_COLS = [
Column(('end_date',), parse_date),
Column(('year',), int, []),
[], # 'identifica C(254)'
- Column(('code_patriarche',), int),
+ Column(('code_patriarche',), unicode),
[], # 'x_degre N(16,6)'),
[], # 'y_degre N(16,6)'),
[], # 'x_saisi C(12)'),
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index f8ba1f3a0..60d14f5a4 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -10,13 +10,13 @@
msgid ""
msgstr ""
-#: forms.py:69 forms.py:371 forms.py:1055 forms.py:1077 forms.py:1081
-#: models.py:1252 templates/ishtar/sheet_operation.html:153
+#: forms.py:69 forms.py:371 forms.py:1059 forms.py:1081 forms.py:1085
+#: models.py:1254 templates/ishtar/sheet_operation.html:153
#: templates/ishtar/blocks/window_tables/parcels.html:10
msgid "Parcels"
msgstr ""
-#: forms.py:72 forms.py:205 forms.py:1031 models.py:1238
+#: forms.py:72 forms.py:205 forms.py:1035 models.py:1240
#: templates/ishtar/blocks/window_tables/parcels.html:7
#: templates/ishtar/dashboards/dashboard_operation.html:432
#: templates/ishtar/dashboards/dashboard_operation.html:446
@@ -25,22 +25,22 @@ msgstr ""
msgid "Town"
msgstr ""
-#: forms.py:74 forms.py:481 forms.py:781 forms.py:1301 models.py:276
-#: models.py:1044 models.py:1236
+#: forms.py:74 forms.py:483 forms.py:785 forms.py:1306 models.py:276
+#: models.py:1046 models.py:1238
#: templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Year"
msgstr ""
-#: forms.py:77 models.py:1239
+#: forms.py:77 models.py:1241
#: templates/ishtar/blocks/window_tables/parcels.html:9
msgid "Section"
msgstr ""
-#: forms.py:80 models.py:1241
+#: forms.py:80 models.py:1243
msgid "Parcel number"
msgstr ""
-#: forms.py:82 models.py:1243 models.py:1260 models.py:1309
+#: forms.py:82 models.py:1245 models.py:1262 models.py:1311
msgid "Public domain"
msgstr ""
@@ -76,8 +76,8 @@ msgstr ""
msgid "Relation type"
msgstr ""
-#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:847 models.py:882
-#: models.py:922 models.py:1026 models.py:1235 wizards.py:352 wizards.py:363
+#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:849 models.py:884
+#: models.py:924 models.py:1028 models.py:1237 wizards.py:352 wizards.py:363
#: templates/ishtar/sheet_operation.html:4
msgid "Operation"
msgstr ""
@@ -86,7 +86,7 @@ msgstr ""
msgid ":"
msgstr ""
-#: forms.py:414 forms.py:633 forms.py:1266
+#: forms.py:414 forms.py:636 forms.py:1270
msgid "You should select an operation."
msgstr ""
@@ -94,31 +94,31 @@ msgstr ""
msgid "You should select a relation type."
msgstr ""
-#: forms.py:421
+#: forms.py:423
msgid "An operation cannot be related to herself."
msgstr ""
-#: forms.py:451
+#: forms.py:453
msgid "Current relations"
msgstr ""
-#: forms.py:453
+#: forms.py:455
msgid "Deleted relations"
msgstr ""
-#: forms.py:477 templates/ishtar/sheet_operation.html:86
+#: forms.py:479 templates/ishtar/sheet_operation.html:86
msgid "Relations"
msgstr ""
-#: forms.py:482 forms.py:1272 models.py:277
+#: forms.py:484 forms.py:1276 models.py:277
msgid "Numeric reference"
msgstr ""
-#: forms.py:488 forms.py:1312
+#: forms.py:491 forms.py:1318
msgid "Parcel (section/number/public domain)"
msgstr ""
-#: forms.py:491 forms.py:1315 models.py:848
+#: forms.py:494 forms.py:1321 models.py:850
#: templates/ishtar/dashboards/dashboard_operation.html:390
#: templates/ishtar/dashboards/dashboard_operation.html:411
#: templates/ishtar/dashboards/dashboard_operation.html:643
@@ -127,458 +127,458 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:492 forms.py:1143 models.py:86
+#: forms.py:495 forms.py:1147 models.py:86
#: templates/ishtar/sheet_operation.html:22
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8
msgid "Name"
msgstr ""
-#: forms.py:494 forms.py:777 models.py:338
+#: forms.py:497 forms.py:781 models.py:338
msgid "Address / Locality"
msgstr ""
-#: forms.py:496 forms.py:700 forms.py:779 forms.py:1278 models.py:284
+#: forms.py:499 forms.py:703 forms.py:783 forms.py:1283 models.py:284
msgid "Operation type"
msgstr ""
-#: forms.py:498
+#: forms.py:501
msgid "Is open?"
msgstr ""
-#: forms.py:506 forms.py:811 models.py:269
+#: forms.py:509 forms.py:815 models.py:269
msgid "In charge"
msgstr ""
-#: forms.py:513 models.py:1020
+#: forms.py:516 models.py:1022
msgid "Scientist in charge"
msgstr ""
-#: forms.py:515 forms.py:702 forms.py:801 models.py:267
+#: forms.py:518 forms.py:705 forms.py:805 models.py:267
msgid "Operator"
msgstr ""
-#: forms.py:524 forms.py:1148 models.py:90 models.py:286
+#: forms.py:527 forms.py:1152 models.py:90 models.py:286
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10
msgid "Remains"
msgstr ""
-#: forms.py:525 forms.py:1126 forms.py:1145 models.py:88 models.py:292
+#: forms.py:528 forms.py:1130 forms.py:1149 models.py:88 models.py:292
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9
msgid "Periods"
msgstr ""
-#: forms.py:526
+#: forms.py:529
msgid "Started before"
msgstr ""
-#: forms.py:528
+#: forms.py:531
msgid "Started after"
msgstr ""
-#: forms.py:530
+#: forms.py:533
msgid "Ended before"
msgstr ""
-#: forms.py:532
+#: forms.py:535
msgid "Ended after"
msgstr ""
-#: forms.py:535
+#: forms.py:538
msgid "Search within relations"
msgstr ""
-#: forms.py:537 forms.py:863
+#: forms.py:540 forms.py:867
msgid "Comment"
msgstr ""
-#: forms.py:538
+#: forms.py:541
msgid "Abstract (full text search)"
msgstr ""
-#: forms.py:540 forms.py:866 models.py:341
+#: forms.py:543 forms.py:870 models.py:341
msgid "Comment about scientific documentation"
msgstr ""
-#: forms.py:541 forms.py:868 models.py:353
+#: forms.py:544 forms.py:872 models.py:353
msgid "Record quality"
msgstr ""
-#: forms.py:542 forms.py:833 models.py:304
+#: forms.py:545 forms.py:837 models.py:304
msgid "Report processing"
msgstr ""
-#: forms.py:544 forms.py:871 models.py:348
+#: forms.py:547 forms.py:875 models.py:348
msgid "Virtual operation"
msgstr ""
-#: forms.py:546 forms.py:1188 forms.py:1192 models.py:94
+#: forms.py:549 forms.py:1192 forms.py:1196 models.py:94
msgid "Archaeological site"
msgstr ""
-#: forms.py:552 forms.py:1319
+#: forms.py:555 forms.py:1325
msgid "Created by"
msgstr ""
-#: forms.py:558 forms.py:1325
+#: forms.py:561 forms.py:1331
msgid "Modified by"
msgstr ""
-#: forms.py:565
+#: forms.py:568
msgid "Documentation deadline before"
msgstr ""
-#: forms.py:567
+#: forms.py:570
msgid "Documentation deadline after"
msgstr ""
-#: forms.py:569 forms.py:856 models.py:360
+#: forms.py:572 forms.py:860 models.py:360
msgid "Documentation received"
msgstr ""
-#: forms.py:571
+#: forms.py:574
msgid "Finds deadline before"
msgstr ""
-#: forms.py:573
+#: forms.py:576
msgid "Finds deadline after"
msgstr ""
-#: forms.py:575 forms.py:861 models.py:364
+#: forms.py:578 forms.py:865 models.py:364
msgid "Finds received"
msgstr ""
-#: forms.py:620 forms.py:1264 views.py:168
+#: forms.py:623 forms.py:1268 views.py:168
msgid "Operation search"
msgstr ""
-#: forms.py:664
+#: forms.py:667
msgid "Associated file"
msgstr ""
-#: forms.py:668 forms.py:967 models.py:520 models.py:921 models.py:1031
+#: forms.py:671 forms.py:971 models.py:520 models.py:923 models.py:1033
#: wizards.py:80
msgid "Archaeological file"
msgstr ""
-#: forms.py:675 forms.py:677 models.py:355
+#: forms.py:678 forms.py:680 models.py:355
msgid "Abstract"
msgstr ""
-#: forms.py:680
+#: forms.py:683
msgid "months"
msgstr ""
-#: forms.py:680
+#: forms.py:683
msgid "years"
msgstr ""
-#: forms.py:682 models.py:253
+#: forms.py:685 models.py:253
msgid "Creation date"
msgstr ""
-#: forms.py:683
+#: forms.py:686
msgid "Start of field work"
msgstr ""
-#: forms.py:685
+#: forms.py:688
msgid "All"
msgstr ""
-#: forms.py:686
+#: forms.py:689
msgid "Preventive"
msgstr ""
-#: forms.py:687
+#: forms.py:690
msgid "Research"
msgstr ""
-#: forms.py:691
+#: forms.py:694
msgid "Slicing"
msgstr ""
-#: forms.py:694
+#: forms.py:697
msgid "Department detail"
msgstr ""
-#: forms.py:696
+#: forms.py:699
msgid "Date get from"
msgstr ""
-#: forms.py:698
+#: forms.py:701
msgid "Preventive/Research"
msgstr ""
-#: forms.py:704
+#: forms.py:707
msgid "Date after"
msgstr ""
-#: forms.py:706
+#: forms.py:709
msgid "Date before"
msgstr ""
-#: forms.py:708
+#: forms.py:711
msgid "With reports"
msgstr ""
-#: forms.py:709
+#: forms.py:712
msgid "With finds"
msgstr ""
-#: forms.py:761 forms.py:1373 templates/ishtar/sheet_administrativeact.html:20
+#: forms.py:764 forms.py:1379 templates/ishtar/sheet_administrativeact.html:20
#: templates/ishtar/sheet_operation.html:26
msgid "General"
msgstr ""
-#: forms.py:775 models.py:337
+#: forms.py:779 models.py:337
msgid "Generic name"
msgstr ""
-#: forms.py:786 models.py:306
+#: forms.py:790 models.py:306
msgid "Old code"
msgstr ""
-#: forms.py:789
+#: forms.py:793
msgid "Head scientist"
msgstr ""
-#: forms.py:808 models.py:336
+#: forms.py:812 models.py:336
msgid "Operator reference"
msgstr ""
-#: forms.py:822
+#: forms.py:826
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:826 models.py:54 models.py:256 models.py:1448
+#: forms.py:830 models.py:54 models.py:256 models.py:1450
msgid "Start date"
msgstr ""
-#: forms.py:828 models.py:258
+#: forms.py:832 models.py:258
msgid "Excavation end date"
msgstr ""
-#: forms.py:831 models.py:259
+#: forms.py:835 models.py:259
msgid "Report delivery date"
msgstr ""
-#: forms.py:853 models.py:357
+#: forms.py:857 models.py:357
msgid "Deadline for submission of the documentation"
msgstr ""
-#: forms.py:858 models.py:362
+#: forms.py:862 models.py:362
msgid "Deadline for submission of the finds"
msgstr ""
-#: forms.py:873
+#: forms.py:877
msgid "Image"
msgstr ""
-#: forms.py:874
+#: forms.py:878
#, python-format
msgid ""
"<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"
"p>"
msgstr ""
-#: forms.py:920
+#: forms.py:924
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
-#: forms.py:925
+#: forms.py:929
msgid "The excavation end date cannot be before the start date."
msgstr ""
-#: forms.py:953
+#: forms.py:957
#, python-format
msgid ""
"Operation code already exists for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:957
+#: forms.py:961
msgid "Bad operation code"
msgstr ""
-#: forms.py:963 models.py:535 models.py:877
+#: forms.py:967 models.py:535 models.py:879
msgid "Operation code"
msgstr ""
-#: forms.py:989 forms.py:993 models.py:273
+#: forms.py:993 forms.py:997 models.py:273
msgid "Collaborators"
msgstr ""
-#: forms.py:1001
+#: forms.py:1005
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:1002 models.py:290
+#: forms.py:1006 models.py:290
#: templates/ishtar/dashboards/dashboard_operation.html:701
msgid "Cost (euros)"
msgstr ""
-#: forms.py:1003 models.py:295
+#: forms.py:1007 models.py:295
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:1005 models.py:298
+#: forms.py:1009 models.py:298
msgid "Optional man-days"
msgstr ""
-#: forms.py:1007 models.py:301
+#: forms.py:1011 models.py:301
msgid "Effective man-days"
msgstr ""
-#: forms.py:1017
+#: forms.py:1021
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:1020 models.py:320
+#: forms.py:1024 models.py:320
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:1022 models.py:323
+#: forms.py:1026 models.py:323
msgid "Prescription on large area"
msgstr ""
-#: forms.py:1025 models.py:325
+#: forms.py:1029 models.py:325
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:1029 forms.py:1051 models.py:288 models.py:1054
+#: forms.py:1033 forms.py:1055 models.py:288 models.py:1056
msgid "Towns"
msgstr ""
-#: forms.py:1058 models.py:1251 models.py:1446
+#: forms.py:1062 models.py:1253 models.py:1448
msgid "Parcel"
msgstr ""
-#: forms.py:1110 models.py:46
+#: forms.py:1114 models.py:46
msgid "Remain types"
msgstr ""
-#: forms.py:1114 models.py:45
+#: forms.py:1118 models.py:45
msgid "Remain type"
msgstr ""
-#: forms.py:1130 templates/ishtar/sheet_operation.html:173
+#: forms.py:1134 templates/ishtar/sheet_operation.html:173
#: templates/ishtar/sheet_operation.html:204
msgid "Period"
msgstr ""
-#: forms.py:1142 models.py:85
+#: forms.py:1146 models.py:85
msgid "Reference"
msgstr ""
-#: forms.py:1171
+#: forms.py:1175
msgid "This reference already exists."
msgstr ""
-#: forms.py:1203 models.py:95 models.py:345
+#: forms.py:1207 models.py:95 models.py:345
#: templates/ishtar/sheet_operation.html:97
msgid "Archaeological sites"
msgstr ""
-#: forms.py:1207
+#: forms.py:1211
msgid "Associated archaeological sites"
msgstr ""
-#: forms.py:1213 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93
+#: forms.py:1217 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93
msgid "Search"
msgstr ""
-#: forms.py:1218
+#: forms.py:1222
msgid "Would you like to close this operation?"
msgstr ""
-#: forms.py:1223
+#: forms.py:1227
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:1232 forms.py:1302 forms.py:1438 models.py:884 models.py:1011
+#: forms.py:1236 forms.py:1307 forms.py:1444 models.py:886 models.py:1013
msgid "Index"
msgstr ""
-#: forms.py:1258
+#: forms.py:1262
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:1270
+#: forms.py:1274
msgid "Operation's year"
msgstr ""
-#: forms.py:1277
+#: forms.py:1282
msgid "Operation's town"
msgstr ""
-#: forms.py:1290
+#: forms.py:1295
msgid "Documentation search"
msgstr ""
-#: forms.py:1292
+#: forms.py:1297
msgid "You should select a document."
msgstr ""
-#: forms.py:1309 forms.py:1376 models.py:935 models.py:1005
+#: forms.py:1315 forms.py:1382 models.py:937 models.py:1007
msgid "Act type"
msgstr ""
-#: forms.py:1310 forms.py:1508
+#: forms.py:1316 forms.py:1514
msgid "Indexed?"
msgstr ""
-#: forms.py:1316 forms.py:1381 models.py:1045
+#: forms.py:1322 forms.py:1387 models.py:1047
#: templates/ishtar/blocks/window_tables/administrativacts.html:10
msgid "Object"
msgstr ""
-#: forms.py:1353 views.py:350
+#: forms.py:1359 views.py:350
msgid "Administrative act search"
msgstr ""
-#: forms.py:1368 forms.py:1466 forms.py:1533
+#: forms.py:1374 forms.py:1472 forms.py:1539
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1384 models.py:1042
+#: forms.py:1390 models.py:1044
msgid "Signature date"
msgstr ""
-#: forms.py:1426
+#: forms.py:1432
#, python-format
msgid ""
"This index already exists for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:1430
+#: forms.py:1436
msgid "Bad index"
msgstr ""
-#: forms.py:1443
+#: forms.py:1449
msgid "Would you like to delete this administrative act?"
msgstr ""
-#: forms.py:1448
+#: forms.py:1454
msgid "Template"
msgstr ""
-#: forms.py:1472 forms.py:1476
+#: forms.py:1478 forms.py:1482
msgid "This document is not intended for this type of act."
msgstr ""
-#: forms.py:1494
+#: forms.py:1500
msgid "Doc generation"
msgstr ""
-#: forms.py:1496
+#: forms.py:1502
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1517 ishtar_menu.py:123 views.py:403
+#: forms.py:1523 ishtar_menu.py:123 views.py:403
msgctxt "admin act register"
msgid "Register"
msgstr ""
@@ -599,7 +599,7 @@ msgstr ""
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:59 models.py:1061
+#: ishtar_menu.py:59 models.py:1063
#: templates/ishtar/sheet_administrativeact.html:4
msgid "Administrative act"
msgstr ""
@@ -629,11 +629,11 @@ msgstr ""
msgid "Operations"
msgstr ""
-#: models.py:53 models.py:71 models.py:1918
+#: models.py:53 models.py:71 models.py:1920
msgid "Order"
msgstr ""
-#: models.py:55 models.py:1449
+#: models.py:55 models.py:1451
msgid "End date"
msgstr ""
@@ -749,7 +749,7 @@ msgstr ""
msgid "In charge scientist"
msgstr ""
-#: models.py:281 models.py:1231
+#: models.py:281 models.py:1233
msgid "File"
msgstr ""
@@ -852,210 +852,210 @@ msgstr ""
msgid "Mean"
msgstr ""
-#: models.py:818
+#: models.py:820
msgid "Inverse relation"
msgstr ""
-#: models.py:822
+#: models.py:824
msgid "Operation relation type"
msgstr ""
-#: models.py:823
+#: models.py:825
msgid "Operation relation types"
msgstr ""
-#: models.py:836
+#: models.py:838
msgid "Operation record relation"
msgstr ""
-#: models.py:837
+#: models.py:839
msgid "Operation record relations"
msgstr ""
-#: models.py:876
+#: models.py:878
msgid "Operation year"
msgstr ""
-#: models.py:878
+#: models.py:880
msgid "Document code"
msgstr ""
-#: models.py:888
+#: models.py:890
msgid "Operation documentation"
msgstr ""
-#: models.py:889
+#: models.py:891
msgid "Operation documentations"
msgstr ""
-#: models.py:892
+#: models.py:894
msgid "Can view all Operation sources"
msgstr ""
-#: models.py:894
+#: models.py:896
msgid "Can view own Operation source"
msgstr ""
-#: models.py:896
+#: models.py:898
msgid "Can add own Operation source"
msgstr ""
-#: models.py:898
+#: models.py:900
msgid "Can change own Operation source"
msgstr ""
-#: models.py:900
+#: models.py:902
msgid "Can delete own Operation source"
msgstr ""
-#: models.py:923 models.py:1036
+#: models.py:925 models.py:1038
msgid "Treatment request"
msgstr ""
-#: models.py:924 models.py:1041
+#: models.py:926 models.py:1043
msgid "Treatment"
msgstr ""
-#: models.py:926
+#: models.py:928
msgid "Intended to"
msgstr ""
-#: models.py:928
+#: models.py:930
msgid "Code"
msgstr ""
-#: models.py:931
+#: models.py:933
msgid "Associated template"
msgstr ""
-#: models.py:932
+#: models.py:934
msgid "Indexed"
msgstr ""
-#: models.py:936
+#: models.py:938
msgid "Act types"
msgstr ""
-#: models.py:1002 models.py:1082
+#: models.py:1004 models.py:1084
#: templates/ishtar/blocks/window_tables/administrativacts.html:7
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Ref."
msgstr ""
-#: models.py:1009
+#: models.py:1011
msgid "Person in charge of the operation"
msgstr ""
-#: models.py:1015
+#: models.py:1017
msgid "Archaeological preventive operator"
msgstr ""
-#: models.py:1023
+#: models.py:1025
msgid "Signatory"
msgstr ""
-#: models.py:1051
+#: models.py:1053
msgid "Departments"
msgstr ""
-#: models.py:1052
+#: models.py:1054
msgid "Cached values get from associated departments"
msgstr ""
-#: models.py:1055
+#: models.py:1057
msgid "Cached values get from associated towns"
msgstr ""
-#: models.py:1062 templates/ishtar/sheet_operation.html:105
+#: models.py:1064 templates/ishtar/sheet_operation.html:105
#: templates/ishtar/sheet_operation.html:147
msgid "Administrative acts"
msgstr ""
-#: models.py:1065
+#: models.py:1067
msgid "Can view all Administrative acts"
msgstr ""
-#: models.py:1067
+#: models.py:1069
msgid "Can view own Administrative act"
msgstr ""
-#: models.py:1069
+#: models.py:1071
msgid "Can add own Administrative act"
msgstr ""
-#: models.py:1071
+#: models.py:1073
msgid "Can change own Administrative act"
msgstr ""
-#: models.py:1073
+#: models.py:1075
msgid "Can delete own Administrative act"
msgstr ""
-#: models.py:1176
+#: models.py:1178
msgid "This index already exists for this year"
msgstr ""
-#: models.py:1244
+#: models.py:1246
msgid "External ID"
msgstr ""
-#: models.py:1247
+#: models.py:1249
msgid "External ID is set automatically"
msgstr ""
-#: models.py:1248
+#: models.py:1250
msgid "Address - Locality"
msgstr ""
-#: models.py:1444
+#: models.py:1446
msgid "Owner"
msgstr ""
-#: models.py:1452
+#: models.py:1454
msgid "Parcel owner"
msgstr ""
-#: models.py:1453
+#: models.py:1455
msgid "Parcel owners"
msgstr ""
-#: models.py:1479
+#: models.py:1481
msgid "Recorded"
msgstr ""
-#: models.py:1480
+#: models.py:1482
msgid "Effective"
msgstr ""
-#: models.py:1481
+#: models.py:1483
msgid "Active"
msgstr ""
-#: models.py:1482
+#: models.py:1484
msgid "Field completed"
msgstr ""
-#: models.py:1483
+#: models.py:1485
msgid "Associated report"
msgstr ""
-#: models.py:1484
+#: models.py:1486
msgid "Closed"
msgstr ""
-#: models.py:1485
+#: models.py:1487
msgid "Documented and closed"
msgstr ""
-#: models.py:1919
+#: models.py:1921
msgid "Is preventive"
msgstr ""
-#: models.py:1922
+#: models.py:1924
msgid "Operation type old"
msgstr ""
-#: models.py:1923
+#: models.py:1925
msgid "Operation types old"
msgstr ""
diff --git a/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py b/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py
new file mode 100644
index 000000000..02ccdcd59
--- /dev/null
+++ b/archaeological_operations/migrations/0068_auto__chg_field_historicaloperation_code_patriarche__chg_field_operati.py
@@ -0,0 +1,873 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+from archaeological_context_records.models import CRBulkView
+from archaeological_finds.models import BFBulkView, FBulkView, FirstBaseFindView
+
+class Migration(SchemaMigration):
+
+ depends_on = (
+ ('archaeological_context_records', '0029_create_bulk_update_view.py'),
+ ('archaeological_finds', '0085_create_bulk_update_view.py'),
+ )
+
+ def forwards(self, orm):
+ for view in [FBulkView, BFBulkView, FirstBaseFindView, CRBulkView]:
+ sql = view.DELETE_SQL
+ db.execute(sql)
+
+ # Changing field 'HistoricalOperation.code_patriarche'
+ db.alter_column('archaeological_operations_historicaloperation', 'code_patriarche', self.gf('django.db.models.fields.TextField')(null=True))
+
+ # Changing field 'Operation.code_patriarche'
+ db.alter_column('archaeological_operations_operation', 'code_patriarche', self.gf('django.db.models.fields.TextField')(unique=True, null=True))
+
+ for view in [CRBulkView, FirstBaseFindView, BFBulkView, FBulkView]:
+ sql = view.CREATE_SQL
+ db.execute(sql)
+
+ def backwards(self, orm):
+ for view in [FBulkView, BFBulkView, FirstBaseFindView, CRBulkView]:
+ sql = view.DELETE_SQL
+ db.execute(sql)
+
+ # Changing field 'HistoricalOperation.code_patriarche'
+ db.alter_column('archaeological_operations_historicaloperation', 'code_patriarche', self.gf('django.db.models.fields.IntegerField')(null=True))
+
+ # Changing field 'Operation.code_patriarche'
+ db.alter_column('archaeological_operations_operation', 'code_patriarche', self.gf('django.db.models.fields.IntegerField')(unique=True, null=True))
+
+ for view in [CRBulkView, FirstBaseFindView, BFBulkView, FBulkView]:
+ sql = view.CREATE_SQL
+ db.execute(sql)
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}),
+ 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ '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_finds.treatment': {
+ 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'},
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ 'goal': ('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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}),
+ 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfile': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'},
+ 'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', '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_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfiletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'},
+ '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_finds.treatmentstate': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'},
+ '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_finds.treatmenttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ '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': '2'}),
+ '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'}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ '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'}),
+ 'treatment_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operationbydepartment': {
+ 'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.operationsource': {
+ 'Meta': {'object_name': 'OperationSource'},
+ 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_operations.operationtypeold': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcelowner': {
+ 'Meta': {'object_name': 'ParcelOwner'},
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_operations.period': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'Period'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.recordrelations': {
+ 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.relationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.remaintype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.reportstate': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_warehouse.container': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ 'external_id': ('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_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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': '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']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.FloatField', [], {'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'}),
+ 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'external_id': ('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_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': '200'}),
+ '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.warehousedivision': {
+ 'Meta': {'object_name': 'WarehouseDivision'},
+ '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_warehouse.warehousedivisionlink': {
+ 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'},
+ 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
+ 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"})
+ },
+ '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.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': {'ordering': "('author_type__order', 'person__name')", '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': {'ordering': "['order', 'label']", '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ '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': {'ordering': "['label']", '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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.importermodel': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}),
+ 'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}),
+ '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']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_operations'] \ No newline at end of file
diff --git a/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py b/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py
new file mode 100644
index 000000000..3ad5be00b
--- /dev/null
+++ b/archaeological_operations/migrations/0069_auto__chg_field_operationsource_external_id.py
@@ -0,0 +1,846 @@
+# -*- 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 'OperationSource.external_id'
+ db.alter_column('archaeological_operations_operationsource', 'external_id', self.gf('django.db.models.fields.TextField')(max_length=300, null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'OperationSource.external_id'
+ db.alter_column('archaeological_operations_operationsource', 'external_id', self.gf('django.db.models.fields.CharField')(max_length=12, null=True))
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}),
+ 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ '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_finds.treatment': {
+ 'Meta': {'unique_together': "(('year', 'index'),)", 'object_name': 'Treatment'},
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Container']", 'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'estimated_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ 'goal': ('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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_finds_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'insurance_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'other_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatments'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'quoted_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'realized_cost': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'target_is_basket': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'treatment_state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentState']", 'null': 'True', 'blank': 'True'}),
+ 'treatment_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_finds.TreatmentType']", 'symmetrical': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfile': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('year', 'index'),)", 'object_name': 'TreatmentFile'},
+ 'applicant': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'applicant_organisation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_applicant'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '200', '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_finds_treatmentfile'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'treatmentfile_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentFileType']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2017'})
+ },
+ 'archaeological_finds.treatmentfiletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentFileType'},
+ '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_finds.treatmentstate': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentState'},
+ '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_finds.treatmenttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TreatmentType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'downstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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': '10'}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']", 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'upstream_is_many': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'virtual': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
+ },
+ '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': '2'}),
+ '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'}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'treatment_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_finds.TreatmentFile']"}),
+ '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'}),
+ 'treatment_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', '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'}),
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_patriarche': ('django.db.models.fields.TextField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'collaborators': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'operation_collaborator'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Person']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'documentation_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'documentation_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'finds_received': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'multi_polygon': ('django.contrib.gis.db.models.fields.MultiPolygonField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'old_code': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'point': ('django.contrib.gis.db.models.fields.PointField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientific_documentation_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operations'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ '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.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_operations.operationtypeold': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'public_domain': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcelowner': {
+ 'Meta': {'object_name': 'ParcelOwner'},
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_operations.period': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'Period'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.recordrelations': {
+ 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.relationtype': {
+ 'Meta': {'ordering': "('order', 'label')", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'tiny_label': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.remaintype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.reportstate': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_warehouse.container': {
+ 'Meta': {'ordering': "('cached_label',)", 'unique_together': "(('index', 'location'),)", 'object_name': 'Container'},
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cached_location': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ 'external_id': ('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_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'}),
+ 'image': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': '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']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'responsible': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owned_containers'", 'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'})
+ },
+ '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.FloatField', [], {'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'}),
+ 'associated_divisions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']", 'symmetrical': 'False', 'through': "orm['archaeological_warehouse.WarehouseDivisionLink']", 'blank': 'True'}),
+ 'auto_external_id': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'external_id': ('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_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': '200'}),
+ '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.warehousedivision': {
+ 'Meta': {'object_name': 'WarehouseDivision'},
+ '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_warehouse.warehousedivisionlink': {
+ 'Meta': {'ordering': "('warehouse', 'order')", 'unique_together': "(('warehouse', 'division'),)", 'object_name': 'WarehouseDivisionLink'},
+ 'division': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseDivision']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '10'}),
+ 'warehouse': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"})
+ },
+ '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.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': {'ordering': "('author_type__order', 'person__name')", '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': {'ordering': "['order', 'label']", '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ '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': {'ordering': "['label']", '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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.importermodel': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}),
+ 'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}),
+ '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']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'ordering': "['label']", 'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_operations'] \ No newline at end of file
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 1ebf462a3..b982e7d45 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -306,8 +306,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
old_code = models.CharField(_(u"Old code"), max_length=200, null=True,
blank=True)
if settings.COUNTRY == 'fr':
- code_patriarche = models.IntegerField(u"Code PATRIARCHE", null=True,
- blank=True, unique=True)
+ code_patriarche = models.TextField(u"Code PATRIARCHE", null=True,
+ blank=True, unique=True)
TABLE_COLS = ['full_code_patriarche'] + TABLE_COLS
# preventive
fnap_financing = models.FloatField(u"Financement FNAP (%)",
@@ -548,7 +548,7 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
def full_code_patriarche(self):
if not self.code_patriarche:
return ''
- return settings.ISHTAR_OPE_PREFIX + unicode(self.code_patriarche)
+ return settings.ISHTAR_OPE_PREFIX + self.code_patriarche
def clean(self):
if not self.operation_code:
@@ -783,6 +783,8 @@ class Operation(ClosedItem, BaseHistorizedItem, ImageModel, OwnPerms,
self.year = self.start_date.year
if self.operation_code is None:
self.operation_code = self.get_available_operation_code(self.year)
+ if hasattr(self, 'code_patriarche'):
+ self.code_patriarche = self.code_patriarche or None
return super(Operation, self).save(*args, **kwargs)
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index a1c0781fc..230a66beb 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -35,7 +35,7 @@ from archaeological_operations import views
from ishtar_common.models import OrganizationType, Organization, ItemKey, \
ImporterType, IshtarUser, TargetKey, ImporterModel, IshtarSiteProfile, \
- Town, ImporterColumn, Person, DocumentTemplate
+ Town, ImporterColumn, Person, Author, SourceType, AuthorType, DocumentTemplate
from archaeological_context_records.models import Unit
from ishtar_common import forms_common
@@ -196,7 +196,7 @@ class ImportOperationTest(ImportTest, TestCase):
# and well imported
last_ope = models.Operation.objects.order_by('-pk').all()[0]
self.assertEqual(last_ope.name, u"Oppìdum de Paris")
- self.assertEqual(last_ope.code_patriarche, 4200)
+ self.assertEqual(last_ope.code_patriarche, '4200')
self.assertEqual(last_ope.operation_type.txt_idx, 'prog_excavation')
self.assertEqual(last_ope.periods.count(), 2)
periods = [period.txt_idx for period in last_ope.periods.all()]
@@ -319,7 +319,7 @@ class ImportOperationTest(ImportTest, TestCase):
sorted([p.parcel_number for p in last_parcels]))
self.assertEqual(sections,
sorted([p.section for p in last_parcels]))
- ope1 = models.Operation.objects.filter(code_patriarche=4200).all()[0]
+ ope1 = models.Operation.objects.filter(code_patriarche='4200').all()[0]
towns_ope = ope1.towns.all()
imported = [imp for acc, imp in impt.get_all_imported()]
for p in last_parcels:
@@ -332,7 +332,7 @@ class ImportOperationTest(ImportTest, TestCase):
operation_id=ope1.pk).external_id,
'4200-59350-YY55')
# cached_label update
- ope2 = models.Operation.objects.filter(code_patriarche=4201).all()[0]
+ ope2 = models.Operation.objects.filter(code_patriarche='4201').all()[0]
self.assertIn('LILLE', ope2.cached_label.upper())
# delete associated parcel with the import deletion
parcel_count = models.Parcel.objects.count()
@@ -1395,3 +1395,51 @@ class OperationAdminActWizardCreationTest(WizardTest, OperationInitTest,
def post_wizard(self):
self.assertEqual(models.AdministrativeAct.objects.count(),
self.number + 1)
+
+
+class OperationSourceWizardModificationTest(WizardTest, OperationInitTest,
+ TestCase):
+ fixtures = OperationWizardCreationTest.fixtures
+ url_name = 'operation_source_modification'
+ wizard_name = 'operation_source_wizard'
+ steps = views.operation_source_modification_steps
+ form_datas = [
+ FormData(
+ "Test remove all authors",
+ form_datas={
+ 'selec-operation_source_modification': {},
+ 'source-operation_source_modification': {
+ 'title': "New title",
+ 'source_type': None,
+ 'index': 42
+ },
+ 'authors-operation_source_modification': []
+ },
+ )
+ ]
+
+ def pre_wizard(self):
+ ope = self.get_default_operation()
+ self.source = models.OperationSource.objects.create(
+ title="Old title", source_type=SourceType.objects.all()[0],
+ operation=ope
+ )
+ author = Author.objects.create(
+ author_type=AuthorType.objects.all()[0],
+ person=Person.objects.all()[0]
+ )
+
+ self.source.authors.add(author)
+
+ data = self.form_datas[0].form_datas
+ data['selec-operation_source_modification']['pk'] = self.source.pk
+
+ data['source-operation_source_modification']['hidden_operation_id'] = \
+ self.source.pk
+ data['source-operation_source_modification'][
+ 'source_type'] = SourceType.objects.all()[1].pk
+ super(OperationSourceWizardModificationTest, self).pre_wizard()
+
+ def post_wizard(self):
+ source = models.OperationSource.objects.get(pk=self.source.pk)
+ self.assertEqual(source.authors.count(), 0)
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index 7f77eb694..13b9a4767 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -321,11 +321,15 @@ operation_source_creation_wizard = OperationSourceWizard.as_view([
label=_(u"Operation: source creation"),
url_name='operation_source_creation',)
-operation_source_modification_wizard = OperationSourceWizard.as_view([
+operation_source_modification_steps = [
('selec-operation_source_modification', OperationSourceFormSelection),
('source-operation_source_modification', OperationSourceForm),
('authors-operation_source_modification', AuthorFormset),
- ('final-operation_source_modification', FinalForm)],
+ ('final-operation_source_modification', FinalForm)
+]
+
+operation_source_modification_wizard = OperationSourceWizard.as_view(
+ operation_source_modification_steps,
label=_(u"Operation: source modification"),
url_name='operation_source_modification',)
diff --git a/archaeological_warehouse/urls.py b/archaeological_warehouse/urls.py
index 40dedc801..2ef3c8e58 100644
--- a/archaeological_warehouse/urls.py
+++ b/archaeological_warehouse/urls.py
@@ -42,7 +42,7 @@ urlpatterns += patterns(
name='autocomplete-warehouse'),
url(r'new-container/(?P<parent_name>.+)?/$',
'new_container', name='new-container'),
- url(r'get-container/$', 'get_container',
+ url(r'get-container/(?P<type>.+)?$', 'get_container',
name='get-container'),
url(r'get-warehouse/(?P<type>.+)?$', 'get_warehouse',
name='get-warehouse'),
diff --git a/example_project/settings.py b/example_project/settings.py
index 2e91cb73f..dceeff0be 100644
--- a/example_project/settings.py
+++ b/example_project/settings.py
@@ -212,6 +212,10 @@ APP_NAME = "SRA - Pays de la Loire"
SURFACE_UNIT = 'square-metre'
SURFACE_UNIT_LABEL = u'm²'
JOINT = u" | "
+# dir for ishtar maintenance script - as it can be a serious security issue if
+# not managed cautiously the dir contening theses scripts is not set by default
+ISHTAR_SCRIPT_DIR = ""
+
ISHTAR_FILE_PREFIX = u""
ISHTAR_OPE_PREFIX = u"OA"
ISHTAR_DEF_OPE_PREFIX = u"OP"
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index cba10ea0d..9f8265033 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2016 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2017 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
@@ -306,6 +306,32 @@ class ItemKeyAdmin(admin.ModelAdmin):
admin.site.register(models.ItemKey, ItemKeyAdmin)
+class AdministrationScriptAdmin(admin.ModelAdmin):
+ list_display = ['name', 'path']
+
+ def get_readonly_fields(self, request, obj=None):
+ if obj:
+ return ('path',)
+ return []
+
+admin.site.register(models.AdministrationScript, AdministrationScriptAdmin)
+
+
+class AdministrationTaskAdmin(admin.ModelAdmin):
+ readonly_fields = ('state', 'creation_date', 'launch_date',
+ 'finished_date', "result", )
+ list_display = ['script', 'state', 'creation_date', 'launch_date',
+ 'finished_date', "result"]
+ list_filter = ['script', 'state']
+
+ def get_readonly_fields(self, request, obj=None):
+ if obj:
+ return ("script", ) + self.readonly_fields
+ return self.readonly_fields
+
+admin.site.register(models.AdministrationTask, AdministrationTaskAdmin)
+
+
basic_models = [models.DocumentTemplate, models.IshtarUser]
if settings.COUNTRY == 'fr':
basic_models += [models.Arrondissement, models.Canton]
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index 1fe4ef45c..76b186038 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -1400,20 +1400,35 @@ class Importer(object):
# get all related fields
new_created = {}
- for attribute in list(data.keys()):
- c_c_path = c_path[:]
- if not attribute:
- data.pop(attribute)
- continue
- if not data[attribute]:
- field_object, model, direct, m2m = \
- cls._meta.get_field_by_name(attribute)
- if m2m:
+ try:
+ for attribute in list(data.keys()):
+ c_c_path = c_path[:]
+ if not attribute:
data.pop(attribute)
- continue
- if attribute != '__force_new':
- self.get_field(cls, attribute, data, m2ms, c_c_path,
- new_created)
+ continue
+ if not data[attribute]:
+ field_object, model, direct, m2m = \
+ cls._meta.get_field_by_name(attribute)
+ if m2m:
+ data.pop(attribute)
+ continue
+ if attribute != '__force_new':
+ self.get_field(cls, attribute, data, m2ms, c_c_path,
+ new_created)
+ except (ValueError, IntegrityError) as e:
+ message = e.message
+ try:
+ message = e.message.decode('utf-8')
+ except (UnicodeDecodeError, UnicodeDecodeError):
+ message = ''
+ try:
+ data = unicode(data)
+ except UnicodeDecodeError:
+ data = ''
+ raise ImporterError(
+ "Erreur d'import %s %s, contexte : %s, erreur : %s"
+ % (unicode(cls), unicode("__".join(path)),
+ unicode(data), message))
create_dict = copy.deepcopy(data)
for k in create_dict.keys():
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index b317f77e3..61e9f1a88 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -884,6 +884,7 @@ class AuthorFormSelection(forms.Form):
base_model = 'author'
associated_models = {'author': models.Author}
author = forms.IntegerField(
+ required=False,
widget=widgets.JQueryAutoComplete(
"/" + settings.URL_PATH + 'autocomplete-author',
associated_model=models.Author, new=True),
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index 26a06d0b8..4a7e66801 100644
--- a/ishtar_common/locale/django.pot
+++ b/ishtar_common/locale/django.pot
@@ -120,31 +120,31 @@ msgstr ""
msgid "Importer configuration error: field \"{}\" does not exist for {}."
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "line"
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "col"
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "error"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "field"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "source"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "result"
msgstr ""
-#: data_importer.py:1581
+#: data_importer.py:1596
#, python-format
msgid "\"%(value)s\" not in %(values)s"
msgstr ""
@@ -177,12 +177,12 @@ msgstr ""
msgid "Add a new item"
msgstr ""
-#: forms.py:297 models.py:1556
+#: forms.py:297 models.py:1558
msgid "Template"
msgstr ""
#: forms_common.py:41 forms_common.py:59 forms_common.py:184
-#: forms_common.py:408 models.py:1622 models.py:3085
+#: forms_common.py:408 models.py:1624 models.py:3087
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:13
msgid "Town"
@@ -198,8 +198,8 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685
-#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4
+#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687
+#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4
msgid "Person"
msgstr ""
@@ -210,64 +210,65 @@ msgid ""
msgstr ""
#: forms_common.py:172 forms_common.py:329 forms_common.py:453
-#: ishtar_menu.py:75 models.py:2568 models.py:2659
+#: ishtar_menu.py:75 models.py:2570 models.py:2661
#: templates/ishtar/sheet_organization.html:4
msgid "Organization"
msgstr ""
#: forms_common.py:175 forms_common.py:212 forms_common.py:324
-#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555
-#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562
-#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13
+#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557
+#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564
+#: models.py:2673 models.py:3073 models.py:3170
+#: templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr ""
-#: forms_common.py:176 models.py:1777 models.py:2209
+#: forms_common.py:176 models.py:1779 models.py:2211
msgid "Organization type"
msgstr ""
-#: forms_common.py:178 forms_common.py:402 models.py:1617
+#: forms_common.py:178 forms_common.py:402 models.py:1619
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr ""
-#: forms_common.py:180 forms_common.py:405 models.py:1618
+#: forms_common.py:180 forms_common.py:405 models.py:1620
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr ""
-#: forms_common.py:182 forms_common.py:406 models.py:1620
+#: forms_common.py:182 forms_common.py:406 models.py:1622
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr ""
-#: forms_common.py:185 forms_common.py:409 models.py:1623
+#: forms_common.py:185 forms_common.py:409 models.py:1625
msgid "Country"
msgstr ""
#: forms_common.py:187 forms_common.py:326 forms_common.py:382
-#: forms_common.py:450 forms_common.py:574 models.py:1650
+#: forms_common.py:450 forms_common.py:574 models.py:1652
msgid "Email"
msgstr ""
-#: forms_common.py:188 forms_common.py:385 models.py:1635
+#: forms_common.py:188 forms_common.py:385 models.py:1637
#: templates/ishtar/sheet_organization.html:14
#: templates/ishtar/sheet_person.html:21
#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr ""
-#: forms_common.py:189 forms_common.py:394 models.py:1647
+#: forms_common.py:189 forms_common.py:394 models.py:1649
#: templates/ishtar/sheet_organization.html:15
#: templates/ishtar/sheet_person.html:39
#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247
-#: models.py:2564 models.py:3006 templates/sheet_ope.html:85
+#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249
+#: models.py:2566 models.py:3008 templates/sheet_ope.html:85
#: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126
#: templates/ishtar/import_list.html:14
#: templates/ishtar/sheet_organization.html:23
@@ -291,7 +292,7 @@ msgstr ""
msgid "Organization to merge"
msgstr ""
-#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669
+#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr ""
@@ -309,25 +310,25 @@ msgstr ""
msgid "Identity"
msgstr ""
-#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210
-#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104
+#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212
+#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr ""
-#: forms_common.py:374 models.py:2667
+#: forms_common.py:374 models.py:2669
msgid "Salutation"
msgstr ""
-#: forms_common.py:380 models.py:2673
+#: forms_common.py:380 models.py:2675
msgid "Raw name"
msgstr ""
-#: forms_common.py:383 models.py:1636
+#: forms_common.py:383 models.py:1638
msgid "Phone description"
msgstr ""
-#: forms_common.py:386 models.py:1638 models.py:1640
+#: forms_common.py:386 models.py:1640 models.py:1642
msgid "Phone description 2"
msgstr ""
@@ -335,11 +336,11 @@ msgstr ""
msgid "Phone 2"
msgstr ""
-#: forms_common.py:390 models.py:1644
+#: forms_common.py:390 models.py:1646
msgid "Phone description 3"
msgstr ""
-#: forms_common.py:392 models.py:1642
+#: forms_common.py:392 models.py:1644
msgid "Phone 3"
msgstr ""
@@ -347,23 +348,23 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:411 models.py:1625
+#: forms_common.py:411 models.py:1627
msgid "Other address: address"
msgstr ""
-#: forms_common.py:414 models.py:1628
+#: forms_common.py:414 models.py:1630
msgid "Other address: address complement"
msgstr ""
-#: forms_common.py:416 models.py:1629
+#: forms_common.py:416 models.py:1631
msgid "Other address: postal code"
msgstr ""
-#: forms_common.py:418 models.py:1631
+#: forms_common.py:418 models.py:1633
msgid "Other address: town"
msgstr ""
-#: forms_common.py:420 models.py:1633
+#: forms_common.py:420 models.py:1635
msgid "Other address: country"
msgstr ""
@@ -379,7 +380,7 @@ msgstr ""
msgid "Account search"
msgstr ""
-#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616
+#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618
msgid "Person type"
msgstr ""
@@ -411,7 +412,7 @@ msgstr ""
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:636 forms_common.py:649 models.py:3086
+#: forms_common.py:636 forms_common.py:649 models.py:3088
msgid "Towns"
msgstr ""
@@ -427,7 +428,7 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978
+#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980
msgid "Source type"
msgstr ""
@@ -439,37 +440,37 @@ msgstr ""
msgid "Internal reference"
msgstr ""
-#: forms_common.py:791 models.py:3017
+#: forms_common.py:791 models.py:3019
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:792 models.py:3019
+#: forms_common.py:792 models.py:3021
msgid "Receipt date"
msgstr ""
-#: forms_common.py:794 models.py:2382 models.py:3021
+#: forms_common.py:794 models.py:2384 models.py:3023
msgid "Creation date"
msgstr ""
-#: forms_common.py:797 models.py:3024
+#: forms_common.py:797 models.py:3026
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746
-#: models.py:2105 models.py:2677 models.py:3031
+#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748
+#: models.py:2107 models.py:2679 models.py:3033
msgid "Comment"
msgstr ""
-#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844
-#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128
+#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846
+#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:804 models.py:3032
+#: forms_common.py:804 models.py:3034
msgid "Additional information"
msgstr ""
-#: forms_common.py:806 forms_common.py:838 models.py:3034
+#: forms_common.py:806 forms_common.py:838 models.py:3036
msgid "Has a duplicate"
msgstr ""
@@ -484,7 +485,7 @@ msgid ""
"p>"
msgstr ""
-#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945
+#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
@@ -497,7 +498,7 @@ msgstr ""
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942
+#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944
msgid "Author type"
msgstr ""
@@ -509,7 +510,7 @@ msgstr ""
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:901 models.py:2946 models.py:3013
+#: forms_common.py:901 models.py:2948 models.py:3015
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:9
msgid "Authors"
@@ -527,7 +528,7 @@ msgstr ""
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:39 models.py:1338 views.py:1648
+#: ishtar_menu.py:39 models.py:1340 views.py:1648
msgid "Global variables"
msgstr ""
@@ -555,7 +556,7 @@ msgstr ""
msgid "Manual merge"
msgstr ""
-#: ishtar_menu.py:109 models.py:2390
+#: ishtar_menu.py:109 models.py:2392
msgid "Imports"
msgstr ""
@@ -571,280 +572,280 @@ msgstr ""
msgid "Old imports"
msgstr ""
-#: models.py:224
+#: models.py:226
msgid "Not a valid item."
msgstr ""
-#: models.py:239
+#: models.py:241
msgid "A selected item is not a valid item."
msgstr ""
-#: models.py:250
+#: models.py:252
msgid "This item already exists."
msgstr ""
-#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028
+#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030
msgid "Label"
msgstr ""
-#: models.py:417
+#: models.py:419
msgid "Textual ID"
msgstr ""
-#: models.py:420 models.py:748 models.py:1559
+#: models.py:422 models.py:750 models.py:1561
msgid "Available"
msgstr ""
-#: models.py:772 models.py:2151
+#: models.py:774 models.py:2153
msgid "Key"
msgstr ""
-#: models.py:778
+#: models.py:780
msgid "Specific key to an import"
msgstr ""
-#: models.py:874
+#: models.py:876
msgid "Last editor"
msgstr ""
-#: models.py:877
+#: models.py:879
msgid "Creator"
msgstr ""
-#: models.py:1019 models.py:2929 models.py:3097 models.py:3153
+#: models.py:1021 models.py:2931 models.py:3099 models.py:3155
msgid "Order"
msgstr ""
-#: models.py:1020
+#: models.py:1022
msgid "Symmetrical"
msgstr ""
-#: models.py:1021
+#: models.py:1023
msgid "Tiny label"
msgstr ""
-#: models.py:1035
+#: models.py:1037
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:1151
+#: models.py:1153
msgid "Euro"
msgstr ""
-#: models.py:1152
+#: models.py:1154
msgid "US dollar"
msgstr ""
-#: models.py:1153 views.py:1446 views.py:1508
+#: models.py:1155 views.py:1446 views.py:1508
msgid "Operations"
msgstr ""
-#: models.py:1154 views.py:1448 views.py:1512
+#: models.py:1156 views.py:1448 views.py:1512
msgid "Context records"
msgstr ""
-#: models.py:1160 models.py:1842
+#: models.py:1162 models.py:1844
msgid "Slug"
msgstr ""
-#: models.py:1163
+#: models.py:1165
msgid "CSS color code for base module"
msgstr ""
-#: models.py:1165
+#: models.py:1167
msgid "Files module"
msgstr ""
-#: models.py:1167
+#: models.py:1169
msgid "CSS color code for files module"
msgstr ""
-#: models.py:1169
+#: models.py:1171
msgid "Context records module"
msgstr ""
-#: models.py:1172
+#: models.py:1174
msgid "CSS color code for context record module"
msgstr ""
-#: models.py:1174
+#: models.py:1176
msgid "Finds module"
msgstr ""
-#: models.py:1175
+#: models.py:1177
msgid "Need context records module"
msgstr ""
-#: models.py:1177
+#: models.py:1179
msgid "Find index is based on"
msgstr ""
-#: models.py:1179
+#: models.py:1181
msgid ""
"To prevent irrelevant indexes, change this parameter only if there is no "
"find in the database"
msgstr ""
-#: models.py:1182
+#: models.py:1184
msgid "CSS color code for find module"
msgstr ""
-#: models.py:1185
+#: models.py:1187
msgid "Warehouses module"
msgstr ""
-#: models.py:1186
+#: models.py:1188
msgid "Need finds module"
msgstr ""
-#: models.py:1188
+#: models.py:1190
msgid "CSS code for warehouse module"
msgstr ""
-#: models.py:1190
+#: models.py:1192
msgid "Mapping module"
msgstr ""
-#: models.py:1192
+#: models.py:1194
msgid "CSS code for mapping module"
msgstr ""
-#: models.py:1195
+#: models.py:1197
msgid "Home page"
msgstr ""
-#: models.py:1196
+#: models.py:1198
#, python-brace-format
msgid ""
"Homepage of Ishtar - if not defined a default homepage will appear. Use the "
"markdown syntax. {random_image} can be used to display a random image."
msgstr ""
-#: models.py:1200
+#: models.py:1202
msgid "File external id"
msgstr ""
-#: models.py:1202
+#: models.py:1204
msgid ""
"Formula to manage file external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1207
+#: models.py:1209
msgid "Parcel external id"
msgstr ""
-#: models.py:1210
+#: models.py:1212
msgid ""
"Formula to manage parcel external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1215
+#: models.py:1217
msgid "Context record external id"
msgstr ""
-#: models.py:1217
+#: models.py:1219
msgid ""
"Formula to manage context record external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1222
+#: models.py:1224
msgid "Base find external id"
msgstr ""
-#: models.py:1224
+#: models.py:1226
msgid ""
"Formula to manage base find external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1229
+#: models.py:1231
msgid "Find external id"
msgstr ""
-#: models.py:1231
+#: models.py:1233
msgid ""
"Formula to manage find external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1236
+#: models.py:1238
msgid "Container external id"
msgstr ""
-#: models.py:1238
+#: models.py:1240
msgid ""
"Formula to manage container external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1243
+#: models.py:1245
msgid "Warehouse external id"
msgstr ""
-#: models.py:1245
+#: models.py:1247
msgid ""
"Formula to manage warehouse external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1250
+#: models.py:1252
msgid "Raw name for person"
msgstr ""
-#: models.py:1252
+#: models.py:1254
msgid ""
"Formula to manage person raw_name. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1256
+#: models.py:1258
msgid "Current active"
msgstr ""
-#: models.py:1257
+#: models.py:1259
msgid "Currency"
msgstr ""
-#: models.py:1261
+#: models.py:1263
msgid "Ishtar site profile"
msgstr ""
-#: models.py:1262
+#: models.py:1264
msgid "Ishtar site profiles"
msgstr ""
-#: models.py:1331
+#: models.py:1333
msgid "Variable name"
msgstr ""
-#: models.py:1332
+#: models.py:1334
msgid "Description of the variable"
msgstr ""
-#: models.py:1334 models.py:2152
+#: models.py:1336 models.py:2154
msgid "Value"
msgstr ""
-#: models.py:1337
+#: models.py:1339
msgid "Global variable"
msgstr ""
-#: models.py:1460 models.py:1490
+#: models.py:1462 models.py:1492
msgid "Total"
msgstr ""
-#: models.py:1467 models.py:1591 models.py:1603
+#: models.py:1469 models.py:1593 models.py:1605
#: templates/ishtar/sheet_person.html:24
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -852,666 +853,725 @@ msgstr ""
msgid "Number"
msgstr ""
-#: models.py:1554
+#: models.py:1556
msgid "Administrative Act"
msgstr ""
-#: models.py:1558
+#: models.py:1560
msgid "Associated object"
msgstr ""
-#: models.py:1562
+#: models.py:1564
msgid "Document template"
msgstr ""
-#: models.py:1563
+#: models.py:1565
msgid "Document templates"
msgstr ""
-#: models.py:1594 models.py:1604 models.py:2376
+#: models.py:1596 models.py:1606 models.py:2378 models.py:3193
msgid "State"
msgstr ""
-#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1609
+#: models.py:1611
msgid "Departments"
msgstr ""
-#: models.py:1646
+#: models.py:1648
msgid "Raw phone"
msgstr ""
-#: models.py:1652
+#: models.py:1654
msgid "Alternative address is prefered"
msgstr ""
-#: models.py:1691
+#: models.py:1693
msgid "Tel: "
msgstr ""
-#: models.py:1695
+#: models.py:1697
msgid "Mobile: "
msgstr ""
-#: models.py:1699
+#: models.py:1701
msgid "Email: "
msgstr ""
-#: models.py:1704
+#: models.py:1706
msgid "Merge key"
msgstr ""
-#: models.py:1778
+#: models.py:1780
msgid "Organization types"
msgstr ""
-#: models.py:1825
+#: models.py:1827
msgid "Class name"
msgstr ""
-#: models.py:1828
+#: models.py:1830
msgid "Importer - Model"
msgstr ""
-#: models.py:1829
+#: models.py:1831
msgid "Importer - Models"
msgstr ""
-#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34
+#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34
msgid "Users"
msgstr ""
-#: models.py:1849
+#: models.py:1851
msgid "Associated model"
msgstr ""
-#: models.py:1852
+#: models.py:1854
msgid "Models that can accept new items"
msgstr ""
-#: models.py:1853
+#: models.py:1855
msgid "Leave blank for no restrictions"
msgstr ""
-#: models.py:1855
+#: models.py:1857
msgid "Is template"
msgstr ""
-#: models.py:1856
+#: models.py:1858
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1860
+#: models.py:1862
msgid "Importer - Type"
msgstr ""
-#: models.py:1861
+#: models.py:1863
msgid "Importer - Types"
msgstr ""
-#: models.py:1960
+#: models.py:1962
msgid "Importer - Default"
msgstr ""
-#: models.py:1961
+#: models.py:1963
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1996
+#: models.py:1998
msgid "Importer - Default value"
msgstr ""
-#: models.py:1997
+#: models.py:1999
msgid "Importer - Default values"
msgstr ""
-#: models.py:2031
+#: models.py:2033
msgid "Column number"
msgstr ""
-#: models.py:2034
+#: models.py:2036
msgid "Required"
msgstr ""
-#: models.py:2036
+#: models.py:2038
msgid "Export field name"
msgstr ""
-#: models.py:2037
+#: models.py:2039
msgid ""
"Fill this field if the field name is ambiguous for export. For instance: "
"concatenated fields."
msgstr ""
-#: models.py:2042
+#: models.py:2044
msgid "Importer - Column"
msgstr ""
-#: models.py:2043
+#: models.py:2045
msgid "Importer - Columns"
msgstr ""
-#: models.py:2063
+#: models.py:2065
msgid "Field name"
msgstr ""
-#: models.py:2065 models.py:2099
+#: models.py:2067 models.py:2101
msgid "Force creation of new items"
msgstr ""
-#: models.py:2067 models.py:2101
+#: models.py:2069 models.py:2103
msgid "Concatenate with existing"
msgstr ""
-#: models.py:2069 models.py:2103
+#: models.py:2071 models.py:2105
msgid "Concatenate character"
msgstr ""
-#: models.py:2073
+#: models.py:2075
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:2074
+#: models.py:2076
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:2081
+#: models.py:2083
msgid "Regular expression"
msgstr ""
-#: models.py:2084
+#: models.py:2086
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:2085
+#: models.py:2087
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:2108
+#: models.py:2110
msgid "Importer - Target"
msgstr ""
-#: models.py:2109
+#: models.py:2111
msgid "Importer - Targets"
msgstr ""
-#: models.py:2133 views.py:578
+#: models.py:2135 views.py:578
msgid "True"
msgstr ""
-#: models.py:2134 views.py:580
+#: models.py:2136 views.py:580
msgid "False"
msgstr ""
-#: models.py:2153
+#: models.py:2155
msgid "Is set"
msgstr ""
-#: models.py:2160
+#: models.py:2162
msgid "Importer - Target key"
msgstr ""
-#: models.py:2161
+#: models.py:2163
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:2213 models.py:3009
+#: models.py:2215 models.py:3011
msgid "Format"
msgstr ""
-#: models.py:2214 models.py:3101
+#: models.py:2216 models.py:3103
msgid "Operation type"
msgstr ""
-#: models.py:2215
+#: models.py:2217
msgid "Period"
msgstr ""
-#: models.py:2216
+#: models.py:2218
msgid "Report state"
msgstr ""
-#: models.py:2217
+#: models.py:2219
msgid "Remain type"
msgstr ""
-#: models.py:2218
+#: models.py:2220
msgid "Unit"
msgstr ""
-#: models.py:2220
+#: models.py:2222
msgid "Activity type"
msgstr ""
-#: models.py:2221
+#: models.py:2223
msgid "Material"
msgstr ""
-#: models.py:2223
+#: models.py:2225
msgid "Conservatory state"
msgstr ""
-#: models.py:2224
+#: models.py:2226
msgid "Container type"
msgstr ""
-#: models.py:2225
+#: models.py:2227
msgid "Preservation type"
msgstr ""
-#: models.py:2226
+#: models.py:2228
msgid "Object type"
msgstr ""
-#: models.py:2227
+#: models.py:2229
msgid "Integrity type"
msgstr ""
-#: models.py:2229
+#: models.py:2231
msgid "Remarkability type"
msgstr ""
-#: models.py:2230
+#: models.py:2232
msgid "Batch type"
msgstr ""
-#: models.py:2232
+#: models.py:2234
msgid "Identification type"
msgstr ""
-#: models.py:2234
+#: models.py:2236
msgid "Context record relation type"
msgstr ""
-#: models.py:2235 models.py:3159
+#: models.py:2237 models.py:3161
msgid "Spatial reference system"
msgstr ""
-#: models.py:2236 models.py:2987
+#: models.py:2238 models.py:2989
msgid "Support type"
msgstr ""
-#: models.py:2237 models.py:2628
+#: models.py:2239 models.py:2630
msgid "Title type"
msgstr ""
-#: models.py:2243
+#: models.py:2245
msgid "Integer"
msgstr ""
-#: models.py:2244
+#: models.py:2246
msgid "Float"
msgstr ""
-#: models.py:2245
+#: models.py:2247
msgid "String"
msgstr ""
-#: models.py:2246 templates/sheet_ope.html:86
+#: models.py:2248 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/dashboards/dashboard_main_detail.html:126
msgid "Year"
msgstr ""
-#: models.py:2249
+#: models.py:2251
msgid "String to boolean"
msgstr ""
-#: models.py:2250
+#: models.py:2252
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:2251
+#: models.py:2253
msgid "Unknow type"
msgstr ""
-#: models.py:2267
+#: models.py:2269
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:2268
+#: models.py:2270
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:2269
+#: models.py:2271
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:2279
+#: models.py:2281
msgid "Options"
msgstr ""
-#: models.py:2281
+#: models.py:2283
msgid "Split character(s)"
msgstr ""
-#: models.py:2285
+#: models.py:2287
msgid "Importer - Formater type"
msgstr ""
-#: models.py:2286
+#: models.py:2288
msgid "Importer - Formater types"
msgstr ""
-#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr ""
-#: models.py:2339
+#: models.py:2341
msgid "Analyse in progress"
msgstr ""
-#: models.py:2340
+#: models.py:2342
msgid "Analysed"
msgstr ""
-#: models.py:2341
+#: models.py:2343
msgid "Import pending"
msgstr ""
-#: models.py:2342
+#: models.py:2344
msgid "Import in progress"
msgstr ""
-#: models.py:2343
+#: models.py:2345 models.py:3184
msgid "Finished with errors"
msgstr ""
-#: models.py:2344
+#: models.py:2346 models.py:3185
msgid "Finished"
msgstr ""
-#: models.py:2345
+#: models.py:2347
msgid "Archived"
msgstr ""
-#: models.py:2360
+#: models.py:2362
msgid "Imported file"
msgstr ""
-#: models.py:2362
+#: models.py:2364
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:2364
+#: models.py:2366
msgid "Encoding"
msgstr ""
-#: models.py:2366
+#: models.py:2368
msgid "Skip lines"
msgstr ""
-#: models.py:2367 templates/ishtar/import_list.html:51
+#: models.py:2369 templates/ishtar/import_list.html:51
msgid "Error file"
msgstr ""
-#: models.py:2370
+#: models.py:2372
msgid "Result file"
msgstr ""
-#: models.py:2373 templates/ishtar/import_list.html:57
+#: models.py:2375 templates/ishtar/import_list.html:57
msgid "Match file"
msgstr ""
-#: models.py:2379
+#: models.py:2381
msgid "Conservative import"
msgstr ""
-#: models.py:2383
+#: models.py:2385
msgid "End date"
msgstr ""
-#: models.py:2386
+#: models.py:2388
msgid "Remaining seconds"
msgstr ""
-#: models.py:2389
+#: models.py:2391
msgid "Import"
msgstr ""
-#: models.py:2418
+#: models.py:2420
msgid "Analyse"
msgstr ""
-#: models.py:2420 models.py:2423
+#: models.py:2422 models.py:2425
msgid "Re-analyse"
msgstr ""
-#: models.py:2421
+#: models.py:2423
msgid "Launch import"
msgstr ""
-#: models.py:2424
+#: models.py:2426
msgid "Re-import"
msgstr ""
-#: models.py:2425
+#: models.py:2427
msgid "Archive"
msgstr ""
-#: models.py:2427
+#: models.py:2429
msgid "Unarchive"
msgstr ""
-#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11
+#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr ""
-#: models.py:2569
+#: models.py:2571
msgid "Organizations"
msgstr ""
-#: models.py:2571
+#: models.py:2573
msgid "Can view all Organizations"
msgstr ""
-#: models.py:2572
+#: models.py:2574
msgid "Can view own Organization"
msgstr ""
-#: models.py:2573
+#: models.py:2575
msgid "Can add own Organization"
msgstr ""
-#: models.py:2575
+#: models.py:2577
msgid "Can change own Organization"
msgstr ""
-#: models.py:2577
+#: models.py:2579
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2612
+#: models.py:2614
msgid "Groups"
msgstr ""
-#: models.py:2617
+#: models.py:2619
msgid "Person types"
msgstr ""
-#: models.py:2629
+#: models.py:2631
msgid "Title types"
msgstr ""
-#: models.py:2638
+#: models.py:2640
msgid "Mr"
msgstr ""
-#: models.py:2639
+#: models.py:2641
msgid "Miss"
msgstr ""
-#: models.py:2640
+#: models.py:2642
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2641
+#: models.py:2643
msgid "Mrs"
msgstr ""
-#: models.py:2642
+#: models.py:2644
msgid "Doctor"
msgstr ""
-#: models.py:2675
+#: models.py:2677
msgid "Contact type"
msgstr ""
-#: models.py:2678 models.py:2742
+#: models.py:2680 models.py:2744
msgid "Types"
msgstr ""
-#: models.py:2681
+#: models.py:2683
msgid "Is attached to"
msgstr ""
-#: models.py:2686
+#: models.py:2688
msgid "Persons"
msgstr ""
-#: models.py:2688
+#: models.py:2690
msgid "Can view all Persons"
msgstr ""
-#: models.py:2689
+#: models.py:2691
msgid "Can view own Person"
msgstr ""
-#: models.py:2690
+#: models.py:2692
msgid "Can add own Person"
msgstr ""
-#: models.py:2691
+#: models.py:2693
msgid "Can change own Person"
msgstr ""
-#: models.py:2692
+#: models.py:2694
msgid "Can delete own Person"
msgstr ""
-#: models.py:2881
+#: models.py:2883
msgid "Advanced shortcut menu"
msgstr ""
-#: models.py:2884
+#: models.py:2886
msgid "Ishtar user"
msgstr ""
-#: models.py:2885
+#: models.py:2887
msgid "Ishtar users"
msgstr ""
-#: models.py:2925
+#: models.py:2927
msgid "To modify the password use the form in Auth > User"
msgstr ""
-#: models.py:2933
+#: models.py:2935
msgid "Author types"
msgstr ""
-#: models.py:2950
+#: models.py:2952
msgid "Can view all Authors"
msgstr ""
-#: models.py:2952
+#: models.py:2954
msgid "Can view own Author"
msgstr ""
-#: models.py:2954
+#: models.py:2956
msgid "Can add own Author"
msgstr ""
-#: models.py:2956
+#: models.py:2958
msgid "Can change own Author"
msgstr ""
-#: models.py:2958
+#: models.py:2960
msgid "Can delete own Author"
msgstr ""
-#: models.py:2979
+#: models.py:2981
msgid "Source types"
msgstr ""
-#: models.py:2988
+#: models.py:2990
msgid "Support types"
msgstr ""
-#: models.py:2995
+#: models.py:2997
msgid "Format type"
msgstr ""
-#: models.py:2996
+#: models.py:2998
msgid "Format types"
msgstr ""
-#: models.py:3004
+#: models.py:3006
msgid "External ID"
msgstr ""
-#: models.py:3007
+#: models.py:3009
msgid "Support"
msgstr ""
-#: models.py:3011
+#: models.py:3013
msgid "Scale"
msgstr ""
-#: models.py:3025
+#: models.py:3027
msgid "Item number"
msgstr ""
-#: models.py:3026
+#: models.py:3028
msgid "Ref."
msgstr ""
-#: models.py:3029
+#: models.py:3031
msgid "Internal ref."
msgstr ""
-#: models.py:3072
+#: models.py:3074
msgid "Surface (m2)"
msgstr ""
-#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:3098
+#: models.py:3100
msgid "Is preventive"
msgstr ""
-#: models.py:3102
+#: models.py:3104
msgid "Operation types"
msgstr ""
-#: models.py:3131
+#: models.py:3133
msgid "Preventive"
msgstr ""
-#: models.py:3132
+#: models.py:3134
msgid "Research"
msgstr ""
-#: models.py:3155
+#: models.py:3157
msgid "Authority name"
msgstr ""
-#: models.py:3156
+#: models.py:3158
msgid "Authority SRID"
msgstr ""
-#: models.py:3160
+#: models.py:3162
msgid "Spatial reference systems"
msgstr ""
+#: models.py:3169
+msgid "Filename"
+msgstr ""
+
+#: models.py:3174
+msgid "Administration script"
+msgstr ""
+
+#: models.py:3175
+msgid "Administration scripts"
+msgstr ""
+
+#: models.py:3182
+msgid "Scheduled"
+msgstr ""
+
+#: models.py:3183
+msgid "In progress"
+msgstr ""
+
+#: models.py:3198
+msgid "Result"
+msgstr ""
+
+#: models.py:3201
+msgid "Administration task"
+msgstr ""
+
+#: models.py:3202
+msgid "Administration tasks"
+msgstr ""
+
+#: models.py:3206
+msgid "Unknown"
+msgstr ""
+
+#: models.py:3221
+msgid ""
+"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your "
+"administrator."
+msgstr ""
+
+#: models.py:3230
+msgid ""
+"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to "
+"relative paths, it can be a security issue and this is not allowed. Only put "
+"a full path."
+msgstr ""
+
+#: models.py:3241
+msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory."
+msgstr ""
+
+#: models.py:3257
+msgid ""
+"Script \"{}\" is not available in your script directory. Check your "
+"configuration."
+msgstr ""
+
#: utils.py:100
msgid " (...)"
msgstr ""
diff --git a/ishtar_common/management/commands/ishtar_excute_admin_tasks.py b/ishtar_common/management/commands/ishtar_excute_admin_tasks.py
new file mode 100644
index 000000000..3fe66ad3b
--- /dev/null
+++ b/ishtar_common/management/commands/ishtar_excute_admin_tasks.py
@@ -0,0 +1,15 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from django.core.management.base import BaseCommand, CommandError
+
+from ishtar_common import models
+
+
+class Command(BaseCommand):
+ help = "./manage.py ishtar_execute_admin_tasks\n\n"\
+ "Launch pending administration tasks."
+
+ def handle(self, *args, **options):
+ for task in models.AdministrationTask.objects.filter(state='S').all():
+ task.execute()
diff --git a/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py b/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py
new file mode 100644
index 000000000..b6f2680e6
--- /dev/null
+++ b/ishtar_common/migrations/0077_auto__add_administrationscript__add_administrationtask.py
@@ -0,0 +1,530 @@
+# -*- 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 model 'AdministrationScript'
+ db.create_table('ishtar_common_administrationscript', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('path', self.gf('django.db.models.fields.CharField')(max_length=30)),
+ ('name', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ))
+ db.send_create_signal('ishtar_common', ['AdministrationScript'])
+
+ # Adding model 'AdministrationTask'
+ db.create_table('ishtar_common_administrationtask', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('script', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.AdministrationScript'])),
+ ('state', self.gf('django.db.models.fields.CharField')(default='S', max_length=2)),
+ ('creation_date', self.gf('django.db.models.fields.DateTimeField')(default=datetime.datetime.now)),
+ ('launch_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('finished_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)),
+ ('result', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ))
+ db.send_create_signal('ishtar_common', ['AdministrationTask'])
+
+
+ def backwards(self, orm):
+ # Deleting model 'AdministrationScript'
+ db.delete_table('ishtar_common_administrationscript')
+
+ # Deleting model 'AdministrationTask'
+ db.delete_table('ishtar_common_administrationtask')
+
+
+ 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.administrationscript': {
+ 'Meta': {'ordering': "['name']", 'object_name': 'AdministrationScript'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'path': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.administrationtask': {
+ 'Meta': {'ordering': "['script']", 'object_name': 'AdministrationTask'},
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'finished_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'launch_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'result': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'script': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AdministrationScript']"}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'S'", 'max_length': '2'})
+ },
+ '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': {'ordering': "('author_type__order', 'person__name')", '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': {'ordering': "['order', 'label']", '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ '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': {'ordering': "['label']", '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'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator_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.historicalperson': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalPerson'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator_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': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', '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_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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'}),
+ 'export_field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ '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.importermodel': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}),
+ 'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}),
+ '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'}),
+ 'base_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 0, 0, 0)'", 'max_length': '200'}),
+ 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}),
+ 'container_external_id': ('django.db.models.fields.TextField', [], {'default': "'{responsible__external_id}-{index}'"}),
+ 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'context_record_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,200,0,0.2)'", 'max_length': '200'}),
+ 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}),
+ 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{year}-{numeric_reference}'"}),
+ 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'files_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 32, 210, 0.1)'", 'max_length': '200'}),
+ 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'find_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,0,0,0.15)'", 'max_length': '200'}),
+ 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}),
+ 'find_index': ('django.db.models.fields.CharField', [], {'default': "'O'", 'max_length': '2'}),
+ 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.TextField', [], {}),
+ 'mapping': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'mapping_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(72, 236, 0, 0.15)'", 'max_length': '200'}),
+ 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}),
+ 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}),
+ 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'warehouse_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(10,20,200,0.15)'", 'max_length': '200'}),
+ 'warehouse_external_id': ('django.db.models.fields.TextField', [], {'default': "'{name|slug}'"})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ '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'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.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': {'ordering': "['label']", '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.spatialreferencesystem': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'SpatialReferenceSystem'},
+ 'auth_name': ('django.db.models.fields.CharField', [], {'default': "'EPSG'", 'max_length': '256'}),
+ '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': '10'}),
+ 'srid': ('django.db.models.fields.IntegerField', [], {}),
+ '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.titletype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['ishtar_common'] \ No newline at end of file
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 83127f2f0..0277ddefb 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -28,9 +28,11 @@ from PIL import Image
from importlib import import_module
import logging
import os
+from os.path import isfile, join
import re
from secretary import Renderer as SecretaryRenderer
import shutil
+from subprocess import Popen, PIPE
import tempfile
import time
import unicodecsv
@@ -3036,7 +3038,7 @@ post_delete.connect(post_save_cache, sender=Format)
class Source(OwnPerms, ImageModel, models.Model):
title = models.CharField(_(u"Title"), max_length=300)
- external_id = models.CharField(_(u"External ID"), max_length=12, null=True,
+ external_id = models.TextField(_(u"External ID"), max_length=300, null=True,
blank=True)
source_type = models.ForeignKey(SourceType, verbose_name=_(u"Type"))
support_type = models.ForeignKey(SupportType, verbose_name=_(u"Support"),
@@ -3196,3 +3198,123 @@ class SpatialReferenceSystem(GeneralType):
ordering = ('label',)
post_save.connect(post_save_cache, sender=SpatialReferenceSystem)
post_delete.connect(post_save_cache, sender=SpatialReferenceSystem)
+
+
+class AdministrationScript(models.Model):
+ path = models.CharField(_(u"Filename"), max_length=30)
+ name = models.TextField(_(u"Name"),
+ null=True, blank=True)
+
+ class Meta:
+ verbose_name = _(u"Administration script")
+ verbose_name_plural = _(u"Administration scripts")
+ ordering = ['name']
+
+ def __unicode__(self):
+ return unicode(self.name)
+
+
+SCRIPT_STATE = (("S", _(u"Scheduled")),
+ ("P", _(u"In progress")),
+ ("FE", _(u"Finished with errors")),
+ ("F", _(u"Finished")),
+ )
+
+SCRIPT_STATE_DCT = dict(SCRIPT_STATE)
+
+
+class AdministrationTask(models.Model):
+ script = models.ForeignKey(AdministrationScript)
+ state = models.CharField(_(u"State"), max_length=2, choices=SCRIPT_STATE,
+ default='S')
+ creation_date = models.DateTimeField(default=datetime.datetime.now)
+ launch_date = models.DateTimeField(null=True, blank=True)
+ finished_date = models.DateTimeField(null=True, blank=True)
+ result = models.TextField(_(u"Result"), null=True, blank=True)
+
+ class Meta:
+ verbose_name = _(u"Administration task")
+ verbose_name_plural = _(u"Administration tasks")
+ ordering = ['script']
+
+ def __unicode__(self):
+ state = _(u"Unknown")
+ if self.state in SCRIPT_STATE_DCT:
+ state = unicode(SCRIPT_STATE_DCT[self.state])
+ return u"{} - {} - {}".format(self.script, self.creation_date,
+ state)
+
+ def execute(self):
+ if self.state != 'S':
+ return
+ self.launch_date = datetime.datetime.now()
+
+ script_dir = settings.ISHTAR_SCRIPT_DIR
+
+ if not script_dir:
+ self.result = unicode(
+ _(u"ISHTAR_SCRIPT_DIR is not set in your "
+ u"local_settings. Contact your administrator."))
+ self.state = 'FE'
+ self.finished_date = datetime.datetime.now()
+ self.save()
+ return
+
+ if '..' in script_dir:
+ self.result = unicode(
+ _(u"Your ISHTAR_SCRIPT_DIR is containing "
+ u"dots \"..\". As it can refer to relative "
+ u"paths, it can be a security issue and this is "
+ u"not allowed. Only put a full path."))
+ self.state = 'FE'
+ self.finished_date = datetime.datetime.now()
+ self.save()
+ return
+
+ if not os.path.isdir(script_dir):
+ self.result = unicode(
+ _(u"Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory.")
+ ).format(script_dir)
+ self.state = 'FE'
+ self.finished_date = datetime.datetime.now()
+ self.save()
+ return
+
+ script_name = None
+ # only script inside the script directory can be executed
+ for name in os.listdir(script_dir):
+ if name == self.script.path:
+ if isfile(join(script_dir, name)):
+ script_name = join(script_dir, name)
+ break
+ if not script_name:
+ self.result = unicode(
+ _(u"Script \"{}\" is not available in your script directory. "
+ u"Check your configuration.")
+ ).format(self.script.path)
+ self.state = 'FE'
+ self.finished_date = datetime.datetime.now()
+ self.save()
+ return
+ self.state = 'P'
+ self.save()
+
+ self.finished_date = datetime.datetime.now()
+ try:
+ session = Popen([script_name], stdout=PIPE, stderr=PIPE)
+ stdout, stderr = session.communicate()
+ except OSError as e:
+ self.state = 'FE'
+ self.result = u"Error executing \"{}\" script: {}".format(
+ self.script.path, e)
+ self.save()
+ return
+
+ self.finished_date = datetime.datetime.now()
+ if stderr:
+ self.state = 'FE'
+ self.result = u"Error: {}".format(stderr)
+ else:
+ self.state = 'F'
+ self.result = u"{}".format(stdout)
+ self.save()
diff --git a/ishtar_common/templates/blocks/form_snippet.html b/ishtar_common/templates/blocks/form_snippet.html
index 2f841e078..5ee88e25f 100644
--- a/ishtar_common/templates/blocks/form_snippet.html
+++ b/ishtar_common/templates/blocks/form_snippet.html
@@ -10,4 +10,7 @@
</tr>
<tr class="help_text" id="{{field.auto_id}}_help">
<td colspan="3"><div>{{field.help_text}}</div></td>
- {%endif%}</tr>{% else %}{{field}}{% endif %}{% endfor %}
+ {%endif%}</tr>{% else %}{{field}}{% if field.errors %}
+ <tr class='errors'>
+ <td colspan='3'>{{field.name}} - {{ field.errors }}</td>
+ </tr>{% endif %}{{field|safe}}{% endif %}{% endfor %}
diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py
index 63b46c40c..d89c8546c 100644
--- a/ishtar_common/tests.py
+++ b/ishtar_common/tests.py
@@ -192,9 +192,11 @@ class WizardTest(object):
self.wizard_name):
[current_step],
}
+
+ # reconstruct a POST request
if current_step in form_data:
d = form_data[current_step]
- if type(d) in (list, tuple): # formset
+ if type(d) in (list, tuple): # is a formset
for d_idx, item in enumerate(d):
for k in item:
data['{}-{}-{}'.format(
@@ -209,16 +211,21 @@ class WizardTest(object):
response = self.client.post(
url, data, follow=not next_form_is_checked)
except ValidationError as e:
- # on ManagementForm data is missing or has been tampered
- # error verify the wizard_name or step name
- raise ValidationError(u"Errors: {} on {}.".format(
- u" - ".join(e.messages), current_step))
+ msg = u"Errors: {} on {}. On \"ManagementForm data is " \
+ u"missing or...\" error verify the wizard_name or " \
+ u"step name".format(u" - ".join(e.messages),
+ current_step)
+ raise ValidationError(msg)
self.check_response(response, current_step)
if next_form_is_checked:
next_form = self.steps[idx + 1][0]
self.assertRedirects(
response,
- '/{}/{}'.format(self.url_name, next_form))
+ '/{}/{}'.format(self.url_name, next_form),
+ msg_prefix="Redirection to {} has failed - "
+ "Error on previous form ({})?".format(
+ next_form, current_step)
+ )
if idx == len(self.steps) - 1:
# last form
self.assertRedirects(
diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po
index 90908f2a6..b925c52da 100644
--- a/translations/de/ishtar_common.po
+++ b/translations/de/ishtar_common.po
@@ -122,31 +122,31 @@ msgstr ""
msgid "Importer configuration error: field \"{}\" does not exist for {}."
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "line"
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "col"
msgstr ""
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "error"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "field"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "source"
msgstr ""
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "result"
msgstr ""
-#: data_importer.py:1581
+#: data_importer.py:1596
#, python-format
msgid "\"%(value)s\" not in %(values)s"
msgstr ""
@@ -179,12 +179,12 @@ msgstr ""
msgid "Add a new item"
msgstr ""
-#: forms.py:297 models.py:1556
+#: forms.py:297 models.py:1558
msgid "Template"
msgstr ""
#: forms_common.py:41 forms_common.py:59 forms_common.py:184
-#: forms_common.py:408 models.py:1622 models.py:3085
+#: forms_common.py:408 models.py:1624 models.py:3087
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:13
msgid "Town"
@@ -200,8 +200,8 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685
-#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4
+#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687
+#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4
msgid "Person"
msgstr ""
@@ -212,64 +212,65 @@ msgid ""
msgstr ""
#: forms_common.py:172 forms_common.py:329 forms_common.py:453
-#: ishtar_menu.py:75 models.py:2568 models.py:2659
+#: ishtar_menu.py:75 models.py:2570 models.py:2661
#: templates/ishtar/sheet_organization.html:4
msgid "Organization"
msgstr ""
#: forms_common.py:175 forms_common.py:212 forms_common.py:324
-#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555
-#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562
-#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13
+#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557
+#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564
+#: models.py:2673 models.py:3073 models.py:3170
+#: templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr "Name"
-#: forms_common.py:176 models.py:1777 models.py:2209
+#: forms_common.py:176 models.py:1779 models.py:2211
msgid "Organization type"
msgstr ""
-#: forms_common.py:178 forms_common.py:402 models.py:1617
+#: forms_common.py:178 forms_common.py:402 models.py:1619
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr ""
-#: forms_common.py:180 forms_common.py:405 models.py:1618
+#: forms_common.py:180 forms_common.py:405 models.py:1620
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr ""
-#: forms_common.py:182 forms_common.py:406 models.py:1620
+#: forms_common.py:182 forms_common.py:406 models.py:1622
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr "Postleitzahl"
-#: forms_common.py:185 forms_common.py:409 models.py:1623
+#: forms_common.py:185 forms_common.py:409 models.py:1625
msgid "Country"
msgstr ""
#: forms_common.py:187 forms_common.py:326 forms_common.py:382
-#: forms_common.py:450 forms_common.py:574 models.py:1650
+#: forms_common.py:450 forms_common.py:574 models.py:1652
msgid "Email"
msgstr "E-Mail-Adresse"
-#: forms_common.py:188 forms_common.py:385 models.py:1635
+#: forms_common.py:188 forms_common.py:385 models.py:1637
#: templates/ishtar/sheet_organization.html:14
#: templates/ishtar/sheet_person.html:21
#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr ""
-#: forms_common.py:189 forms_common.py:394 models.py:1647
+#: forms_common.py:189 forms_common.py:394 models.py:1649
#: templates/ishtar/sheet_organization.html:15
#: templates/ishtar/sheet_person.html:39
#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247
-#: models.py:2564 models.py:3006 templates/sheet_ope.html:85
+#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249
+#: models.py:2566 models.py:3008 templates/sheet_ope.html:85
#: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126
#: templates/ishtar/import_list.html:14
#: templates/ishtar/sheet_organization.html:23
@@ -293,7 +294,7 @@ msgstr ""
msgid "Organization to merge"
msgstr ""
-#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669
+#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr ""
@@ -311,25 +312,25 @@ msgstr ""
msgid "Identity"
msgstr ""
-#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210
-#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104
+#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212
+#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr ""
-#: forms_common.py:374 models.py:2667
+#: forms_common.py:374 models.py:2669
msgid "Salutation"
msgstr ""
-#: forms_common.py:380 models.py:2673
+#: forms_common.py:380 models.py:2675
msgid "Raw name"
msgstr ""
-#: forms_common.py:383 models.py:1636
+#: forms_common.py:383 models.py:1638
msgid "Phone description"
msgstr ""
-#: forms_common.py:386 models.py:1638 models.py:1640
+#: forms_common.py:386 models.py:1640 models.py:1642
msgid "Phone description 2"
msgstr ""
@@ -337,11 +338,11 @@ msgstr ""
msgid "Phone 2"
msgstr ""
-#: forms_common.py:390 models.py:1644
+#: forms_common.py:390 models.py:1646
msgid "Phone description 3"
msgstr ""
-#: forms_common.py:392 models.py:1642
+#: forms_common.py:392 models.py:1644
msgid "Phone 3"
msgstr ""
@@ -349,23 +350,23 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:411 models.py:1625
+#: forms_common.py:411 models.py:1627
msgid "Other address: address"
msgstr ""
-#: forms_common.py:414 models.py:1628
+#: forms_common.py:414 models.py:1630
msgid "Other address: address complement"
msgstr ""
-#: forms_common.py:416 models.py:1629
+#: forms_common.py:416 models.py:1631
msgid "Other address: postal code"
msgstr ""
-#: forms_common.py:418 models.py:1631
+#: forms_common.py:418 models.py:1633
msgid "Other address: town"
msgstr ""
-#: forms_common.py:420 models.py:1633
+#: forms_common.py:420 models.py:1635
msgid "Other address: country"
msgstr ""
@@ -381,7 +382,7 @@ msgstr "Benutzername"
msgid "Account search"
msgstr ""
-#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616
+#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618
msgid "Person type"
msgstr ""
@@ -413,7 +414,7 @@ msgstr ""
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:636 forms_common.py:649 models.py:3086
+#: forms_common.py:636 forms_common.py:649 models.py:3088
msgid "Towns"
msgstr ""
@@ -429,7 +430,7 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978
+#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980
msgid "Source type"
msgstr ""
@@ -441,37 +442,37 @@ msgstr ""
msgid "Internal reference"
msgstr ""
-#: forms_common.py:791 models.py:3017
+#: forms_common.py:791 models.py:3019
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:792 models.py:3019
+#: forms_common.py:792 models.py:3021
msgid "Receipt date"
msgstr ""
-#: forms_common.py:794 models.py:2382 models.py:3021
+#: forms_common.py:794 models.py:2384 models.py:3023
msgid "Creation date"
msgstr "Gründungsdatum"
-#: forms_common.py:797 models.py:3024
+#: forms_common.py:797 models.py:3026
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746
-#: models.py:2105 models.py:2677 models.py:3031
+#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748
+#: models.py:2107 models.py:2679 models.py:3033
msgid "Comment"
msgstr ""
-#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844
-#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128
+#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846
+#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128
msgid "Description"
msgstr "Beschreibung"
-#: forms_common.py:804 models.py:3032
+#: forms_common.py:804 models.py:3034
msgid "Additional information"
msgstr ""
-#: forms_common.py:806 forms_common.py:838 models.py:3034
+#: forms_common.py:806 forms_common.py:838 models.py:3036
msgid "Has a duplicate"
msgstr ""
@@ -486,7 +487,7 @@ msgid ""
"p>"
msgstr ""
-#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945
+#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
@@ -499,7 +500,7 @@ msgstr ""
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942
+#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944
msgid "Author type"
msgstr ""
@@ -511,7 +512,7 @@ msgstr ""
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:901 models.py:2946 models.py:3013
+#: forms_common.py:901 models.py:2948 models.py:3015
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:9
msgid "Authors"
@@ -529,7 +530,7 @@ msgstr ""
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:39 models.py:1338 views.py:1648
+#: ishtar_menu.py:39 models.py:1340 views.py:1648
msgid "Global variables"
msgstr ""
@@ -557,7 +558,7 @@ msgstr ""
msgid "Manual merge"
msgstr ""
-#: ishtar_menu.py:109 models.py:2390
+#: ishtar_menu.py:109 models.py:2392
msgid "Imports"
msgstr ""
@@ -573,280 +574,280 @@ msgstr ""
msgid "Old imports"
msgstr ""
-#: models.py:224
+#: models.py:226
msgid "Not a valid item."
msgstr ""
-#: models.py:239
+#: models.py:241
msgid "A selected item is not a valid item."
msgstr ""
-#: models.py:250
+#: models.py:252
msgid "This item already exists."
msgstr ""
-#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028
+#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030
msgid "Label"
msgstr ""
-#: models.py:417
+#: models.py:419
msgid "Textual ID"
msgstr ""
-#: models.py:420 models.py:748 models.py:1559
+#: models.py:422 models.py:750 models.py:1561
msgid "Available"
msgstr ""
-#: models.py:772 models.py:2151
+#: models.py:774 models.py:2153
msgid "Key"
msgstr ""
-#: models.py:778
+#: models.py:780
msgid "Specific key to an import"
msgstr ""
-#: models.py:874
+#: models.py:876
msgid "Last editor"
msgstr ""
-#: models.py:877
+#: models.py:879
msgid "Creator"
msgstr ""
-#: models.py:1019 models.py:2929 models.py:3097 models.py:3153
+#: models.py:1021 models.py:2931 models.py:3099 models.py:3155
msgid "Order"
msgstr ""
-#: models.py:1020
+#: models.py:1022
msgid "Symmetrical"
msgstr ""
-#: models.py:1021
+#: models.py:1023
msgid "Tiny label"
msgstr ""
-#: models.py:1035
+#: models.py:1037
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:1151
+#: models.py:1153
msgid "Euro"
msgstr ""
-#: models.py:1152
+#: models.py:1154
msgid "US dollar"
msgstr ""
-#: models.py:1153 views.py:1446 views.py:1508
+#: models.py:1155 views.py:1446 views.py:1508
msgid "Operations"
msgstr ""
-#: models.py:1154 views.py:1448 views.py:1512
+#: models.py:1156 views.py:1448 views.py:1512
msgid "Context records"
msgstr ""
-#: models.py:1160 models.py:1842
+#: models.py:1162 models.py:1844
msgid "Slug"
msgstr ""
-#: models.py:1163
+#: models.py:1165
msgid "CSS color code for base module"
msgstr ""
-#: models.py:1165
+#: models.py:1167
msgid "Files module"
msgstr ""
-#: models.py:1167
+#: models.py:1169
msgid "CSS color code for files module"
msgstr ""
-#: models.py:1169
+#: models.py:1171
msgid "Context records module"
msgstr ""
-#: models.py:1172
+#: models.py:1174
msgid "CSS color code for context record module"
msgstr ""
-#: models.py:1174
+#: models.py:1176
msgid "Finds module"
msgstr ""
-#: models.py:1175
+#: models.py:1177
msgid "Need context records module"
msgstr ""
-#: models.py:1177
+#: models.py:1179
msgid "Find index is based on"
msgstr ""
-#: models.py:1179
+#: models.py:1181
msgid ""
"To prevent irrelevant indexes, change this parameter only if there is no "
"find in the database"
msgstr ""
-#: models.py:1182
+#: models.py:1184
msgid "CSS color code for find module"
msgstr ""
-#: models.py:1185
+#: models.py:1187
msgid "Warehouses module"
msgstr ""
-#: models.py:1186
+#: models.py:1188
msgid "Need finds module"
msgstr ""
-#: models.py:1188
+#: models.py:1190
msgid "CSS code for warehouse module"
msgstr ""
-#: models.py:1190
+#: models.py:1192
msgid "Mapping module"
msgstr ""
-#: models.py:1192
+#: models.py:1194
msgid "CSS code for mapping module"
msgstr ""
-#: models.py:1195
+#: models.py:1197
msgid "Home page"
msgstr ""
-#: models.py:1196
+#: models.py:1198
#, python-brace-format
msgid ""
"Homepage of Ishtar - if not defined a default homepage will appear. Use the "
"markdown syntax. {random_image} can be used to display a random image."
msgstr ""
-#: models.py:1200
+#: models.py:1202
msgid "File external id"
msgstr ""
-#: models.py:1202
+#: models.py:1204
msgid ""
"Formula to manage file external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1207
+#: models.py:1209
msgid "Parcel external id"
msgstr ""
-#: models.py:1210
+#: models.py:1212
msgid ""
"Formula to manage parcel external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1215
+#: models.py:1217
msgid "Context record external id"
msgstr ""
-#: models.py:1217
+#: models.py:1219
msgid ""
"Formula to manage context record external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1222
+#: models.py:1224
msgid "Base find external id"
msgstr ""
-#: models.py:1224
+#: models.py:1226
msgid ""
"Formula to manage base find external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1229
+#: models.py:1231
msgid "Find external id"
msgstr ""
-#: models.py:1231
+#: models.py:1233
msgid ""
"Formula to manage find external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1236
+#: models.py:1238
msgid "Container external id"
msgstr ""
-#: models.py:1238
+#: models.py:1240
msgid ""
"Formula to manage container external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1243
+#: models.py:1245
msgid "Warehouse external id"
msgstr ""
-#: models.py:1245
+#: models.py:1247
msgid ""
"Formula to manage warehouse external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
"data can be destructive."
msgstr ""
-#: models.py:1250
+#: models.py:1252
msgid "Raw name for person"
msgstr ""
-#: models.py:1252
+#: models.py:1254
msgid ""
"Formula to manage person raw_name. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
"be destructive."
msgstr ""
-#: models.py:1256
+#: models.py:1258
msgid "Current active"
msgstr ""
-#: models.py:1257
+#: models.py:1259
msgid "Currency"
msgstr ""
-#: models.py:1261
+#: models.py:1263
msgid "Ishtar site profile"
msgstr ""
-#: models.py:1262
+#: models.py:1264
msgid "Ishtar site profiles"
msgstr ""
-#: models.py:1331
+#: models.py:1333
msgid "Variable name"
msgstr ""
-#: models.py:1332
+#: models.py:1334
msgid "Description of the variable"
msgstr ""
-#: models.py:1334 models.py:2152
+#: models.py:1336 models.py:2154
msgid "Value"
msgstr ""
-#: models.py:1337
+#: models.py:1339
msgid "Global variable"
msgstr ""
-#: models.py:1460 models.py:1490
+#: models.py:1462 models.py:1492
msgid "Total"
msgstr ""
-#: models.py:1467 models.py:1591 models.py:1603
+#: models.py:1469 models.py:1593 models.py:1605
#: templates/ishtar/sheet_person.html:24
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -854,666 +855,725 @@ msgstr ""
msgid "Number"
msgstr ""
-#: models.py:1554
+#: models.py:1556
msgid "Administrative Act"
msgstr ""
-#: models.py:1558
+#: models.py:1560
msgid "Associated object"
msgstr ""
-#: models.py:1562
+#: models.py:1564
msgid "Document template"
msgstr ""
-#: models.py:1563
+#: models.py:1565
msgid "Document templates"
msgstr ""
-#: models.py:1594 models.py:1604 models.py:2376
+#: models.py:1596 models.py:1606 models.py:2378 models.py:3193
msgid "State"
msgstr ""
-#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1609
+#: models.py:1611
msgid "Departments"
msgstr ""
-#: models.py:1646
+#: models.py:1648
msgid "Raw phone"
msgstr ""
-#: models.py:1652
+#: models.py:1654
msgid "Alternative address is prefered"
msgstr ""
-#: models.py:1691
+#: models.py:1693
msgid "Tel: "
msgstr ""
-#: models.py:1695
+#: models.py:1697
msgid "Mobile: "
msgstr ""
-#: models.py:1699
+#: models.py:1701
msgid "Email: "
msgstr "E-Mail-Adresse:"
-#: models.py:1704
+#: models.py:1706
msgid "Merge key"
msgstr ""
-#: models.py:1778
+#: models.py:1780
msgid "Organization types"
msgstr ""
-#: models.py:1825
+#: models.py:1827
msgid "Class name"
msgstr ""
-#: models.py:1828
+#: models.py:1830
msgid "Importer - Model"
msgstr ""
-#: models.py:1829
+#: models.py:1831
msgid "Importer - Models"
msgstr ""
-#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34
+#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34
msgid "Users"
msgstr ""
-#: models.py:1849
+#: models.py:1851
msgid "Associated model"
msgstr ""
-#: models.py:1852
+#: models.py:1854
msgid "Models that can accept new items"
msgstr ""
-#: models.py:1853
+#: models.py:1855
msgid "Leave blank for no restrictions"
msgstr ""
-#: models.py:1855
+#: models.py:1857
msgid "Is template"
msgstr ""
-#: models.py:1856
+#: models.py:1858
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1860
+#: models.py:1862
msgid "Importer - Type"
msgstr ""
-#: models.py:1861
+#: models.py:1863
msgid "Importer - Types"
msgstr ""
-#: models.py:1960
+#: models.py:1962
msgid "Importer - Default"
msgstr ""
-#: models.py:1961
+#: models.py:1963
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1996
+#: models.py:1998
msgid "Importer - Default value"
msgstr ""
-#: models.py:1997
+#: models.py:1999
msgid "Importer - Default values"
msgstr ""
-#: models.py:2031
+#: models.py:2033
msgid "Column number"
msgstr ""
-#: models.py:2034
+#: models.py:2036
msgid "Required"
msgstr ""
-#: models.py:2036
+#: models.py:2038
msgid "Export field name"
msgstr ""
-#: models.py:2037
+#: models.py:2039
msgid ""
"Fill this field if the field name is ambiguous for export. For instance: "
"concatenated fields."
msgstr ""
-#: models.py:2042
+#: models.py:2044
msgid "Importer - Column"
msgstr ""
-#: models.py:2043
+#: models.py:2045
msgid "Importer - Columns"
msgstr ""
-#: models.py:2063
+#: models.py:2065
msgid "Field name"
msgstr ""
-#: models.py:2065 models.py:2099
+#: models.py:2067 models.py:2101
msgid "Force creation of new items"
msgstr ""
-#: models.py:2067 models.py:2101
+#: models.py:2069 models.py:2103
msgid "Concatenate with existing"
msgstr ""
-#: models.py:2069 models.py:2103
+#: models.py:2071 models.py:2105
msgid "Concatenate character"
msgstr ""
-#: models.py:2073
+#: models.py:2075
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:2074
+#: models.py:2076
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:2081
+#: models.py:2083
msgid "Regular expression"
msgstr ""
-#: models.py:2084
+#: models.py:2086
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:2085
+#: models.py:2087
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:2108
+#: models.py:2110
msgid "Importer - Target"
msgstr ""
-#: models.py:2109
+#: models.py:2111
msgid "Importer - Targets"
msgstr ""
-#: models.py:2133 views.py:578
+#: models.py:2135 views.py:578
msgid "True"
msgstr ""
-#: models.py:2134 views.py:580
+#: models.py:2136 views.py:580
msgid "False"
msgstr ""
-#: models.py:2153
+#: models.py:2155
msgid "Is set"
msgstr ""
-#: models.py:2160
+#: models.py:2162
msgid "Importer - Target key"
msgstr ""
-#: models.py:2161
+#: models.py:2163
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:2213 models.py:3009
+#: models.py:2215 models.py:3011
msgid "Format"
msgstr ""
-#: models.py:2214 models.py:3101
+#: models.py:2216 models.py:3103
msgid "Operation type"
msgstr ""
-#: models.py:2215
+#: models.py:2217
msgid "Period"
msgstr ""
-#: models.py:2216
+#: models.py:2218
msgid "Report state"
msgstr ""
-#: models.py:2217
+#: models.py:2219
msgid "Remain type"
msgstr ""
-#: models.py:2218
+#: models.py:2220
msgid "Unit"
msgstr ""
-#: models.py:2220
+#: models.py:2222
msgid "Activity type"
msgstr ""
-#: models.py:2221
+#: models.py:2223
msgid "Material"
msgstr ""
-#: models.py:2223
+#: models.py:2225
msgid "Conservatory state"
msgstr ""
-#: models.py:2224
+#: models.py:2226
msgid "Container type"
msgstr ""
-#: models.py:2225
+#: models.py:2227
msgid "Preservation type"
msgstr ""
-#: models.py:2226
+#: models.py:2228
msgid "Object type"
msgstr ""
-#: models.py:2227
+#: models.py:2229
msgid "Integrity type"
msgstr ""
-#: models.py:2229
+#: models.py:2231
msgid "Remarkability type"
msgstr ""
-#: models.py:2230
+#: models.py:2232
msgid "Batch type"
msgstr ""
-#: models.py:2232
+#: models.py:2234
msgid "Identification type"
msgstr ""
-#: models.py:2234
+#: models.py:2236
msgid "Context record relation type"
msgstr ""
-#: models.py:2235 models.py:3159
+#: models.py:2237 models.py:3161
msgid "Spatial reference system"
msgstr ""
-#: models.py:2236 models.py:2987
+#: models.py:2238 models.py:2989
msgid "Support type"
msgstr ""
-#: models.py:2237 models.py:2628
+#: models.py:2239 models.py:2630
msgid "Title type"
msgstr ""
-#: models.py:2243
+#: models.py:2245
msgid "Integer"
msgstr ""
-#: models.py:2244
+#: models.py:2246
msgid "Float"
msgstr ""
-#: models.py:2245
+#: models.py:2247
msgid "String"
msgstr ""
-#: models.py:2246 templates/sheet_ope.html:86
+#: models.py:2248 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/dashboards/dashboard_main_detail.html:126
msgid "Year"
msgstr ""
-#: models.py:2249
+#: models.py:2251
msgid "String to boolean"
msgstr ""
-#: models.py:2250
+#: models.py:2252
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:2251
+#: models.py:2253
msgid "Unknow type"
msgstr ""
-#: models.py:2267
+#: models.py:2269
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:2268
+#: models.py:2270
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:2269
+#: models.py:2271
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:2279
+#: models.py:2281
msgid "Options"
msgstr ""
-#: models.py:2281
+#: models.py:2283
msgid "Split character(s)"
msgstr ""
-#: models.py:2285
+#: models.py:2287
msgid "Importer - Formater type"
msgstr ""
-#: models.py:2286
+#: models.py:2288
msgid "Importer - Formater types"
msgstr ""
-#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr ""
-#: models.py:2339
+#: models.py:2341
msgid "Analyse in progress"
msgstr ""
-#: models.py:2340
+#: models.py:2342
msgid "Analysed"
msgstr ""
-#: models.py:2341
+#: models.py:2343
msgid "Import pending"
msgstr ""
-#: models.py:2342
+#: models.py:2344
msgid "Import in progress"
msgstr ""
-#: models.py:2343
+#: models.py:2345 models.py:3184
msgid "Finished with errors"
msgstr ""
-#: models.py:2344
+#: models.py:2346 models.py:3185
msgid "Finished"
msgstr ""
-#: models.py:2345
+#: models.py:2347
msgid "Archived"
msgstr ""
-#: models.py:2360
+#: models.py:2362
msgid "Imported file"
msgstr ""
-#: models.py:2362
+#: models.py:2364
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:2364
+#: models.py:2366
msgid "Encoding"
msgstr ""
-#: models.py:2366
+#: models.py:2368
msgid "Skip lines"
msgstr ""
-#: models.py:2367 templates/ishtar/import_list.html:51
+#: models.py:2369 templates/ishtar/import_list.html:51
msgid "Error file"
msgstr ""
-#: models.py:2370
+#: models.py:2372
msgid "Result file"
msgstr ""
-#: models.py:2373 templates/ishtar/import_list.html:57
+#: models.py:2375 templates/ishtar/import_list.html:57
msgid "Match file"
msgstr ""
-#: models.py:2379
+#: models.py:2381
msgid "Conservative import"
msgstr ""
-#: models.py:2383
+#: models.py:2385
msgid "End date"
msgstr ""
-#: models.py:2386
+#: models.py:2388
msgid "Remaining seconds"
msgstr ""
-#: models.py:2389
+#: models.py:2391
msgid "Import"
msgstr ""
-#: models.py:2418
+#: models.py:2420
msgid "Analyse"
msgstr ""
-#: models.py:2420 models.py:2423
+#: models.py:2422 models.py:2425
msgid "Re-analyse"
msgstr ""
-#: models.py:2421
+#: models.py:2423
msgid "Launch import"
msgstr ""
-#: models.py:2424
+#: models.py:2426
msgid "Re-import"
msgstr ""
-#: models.py:2425
+#: models.py:2427
msgid "Archive"
msgstr ""
-#: models.py:2427
+#: models.py:2429
msgid "Unarchive"
msgstr ""
-#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11
+#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr ""
-#: models.py:2569
+#: models.py:2571
msgid "Organizations"
msgstr ""
-#: models.py:2571
+#: models.py:2573
msgid "Can view all Organizations"
msgstr ""
-#: models.py:2572
+#: models.py:2574
msgid "Can view own Organization"
msgstr ""
-#: models.py:2573
+#: models.py:2575
msgid "Can add own Organization"
msgstr ""
-#: models.py:2575
+#: models.py:2577
msgid "Can change own Organization"
msgstr ""
-#: models.py:2577
+#: models.py:2579
msgid "Can delete own Organization"
msgstr ""
-#: models.py:2612
+#: models.py:2614
msgid "Groups"
msgstr ""
-#: models.py:2617
+#: models.py:2619
msgid "Person types"
msgstr ""
-#: models.py:2629
+#: models.py:2631
msgid "Title types"
msgstr ""
-#: models.py:2638
+#: models.py:2640
msgid "Mr"
msgstr ""
-#: models.py:2639
+#: models.py:2641
msgid "Miss"
msgstr ""
-#: models.py:2640
+#: models.py:2642
msgid "Mr and Mrs"
msgstr ""
-#: models.py:2641
+#: models.py:2643
msgid "Mrs"
msgstr ""
-#: models.py:2642
+#: models.py:2644
msgid "Doctor"
msgstr ""
-#: models.py:2675
+#: models.py:2677
msgid "Contact type"
msgstr ""
-#: models.py:2678 models.py:2742
+#: models.py:2680 models.py:2744
msgid "Types"
msgstr ""
-#: models.py:2681
+#: models.py:2683
msgid "Is attached to"
msgstr ""
-#: models.py:2686
+#: models.py:2688
msgid "Persons"
msgstr ""
-#: models.py:2688
+#: models.py:2690
msgid "Can view all Persons"
msgstr ""
-#: models.py:2689
+#: models.py:2691
msgid "Can view own Person"
msgstr ""
-#: models.py:2690
+#: models.py:2692
msgid "Can add own Person"
msgstr ""
-#: models.py:2691
+#: models.py:2693
msgid "Can change own Person"
msgstr ""
-#: models.py:2692
+#: models.py:2694
msgid "Can delete own Person"
msgstr ""
-#: models.py:2881
+#: models.py:2883
msgid "Advanced shortcut menu"
msgstr ""
-#: models.py:2884
+#: models.py:2886
msgid "Ishtar user"
msgstr ""
-#: models.py:2885
+#: models.py:2887
msgid "Ishtar users"
msgstr ""
-#: models.py:2925
+#: models.py:2927
msgid "To modify the password use the form in Auth > User"
msgstr ""
-#: models.py:2933
+#: models.py:2935
msgid "Author types"
msgstr ""
-#: models.py:2950
+#: models.py:2952
msgid "Can view all Authors"
msgstr ""
-#: models.py:2952
+#: models.py:2954
msgid "Can view own Author"
msgstr ""
-#: models.py:2954
+#: models.py:2956
msgid "Can add own Author"
msgstr ""
-#: models.py:2956
+#: models.py:2958
msgid "Can change own Author"
msgstr ""
-#: models.py:2958
+#: models.py:2960
msgid "Can delete own Author"
msgstr ""
-#: models.py:2979
+#: models.py:2981
msgid "Source types"
msgstr ""
-#: models.py:2988
+#: models.py:2990
msgid "Support types"
msgstr ""
-#: models.py:2995
+#: models.py:2997
msgid "Format type"
msgstr ""
-#: models.py:2996
+#: models.py:2998
msgid "Format types"
msgstr ""
-#: models.py:3004
+#: models.py:3006
msgid "External ID"
msgstr ""
-#: models.py:3007
+#: models.py:3009
msgid "Support"
msgstr ""
-#: models.py:3011
+#: models.py:3013
msgid "Scale"
msgstr ""
-#: models.py:3025
+#: models.py:3027
msgid "Item number"
msgstr ""
-#: models.py:3026
+#: models.py:3028
msgid "Ref."
msgstr ""
-#: models.py:3029
+#: models.py:3031
msgid "Internal ref."
msgstr ""
-#: models.py:3072
+#: models.py:3074
msgid "Surface (m2)"
msgstr ""
-#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Lokalisierung"
-#: models.py:3098
+#: models.py:3100
msgid "Is preventive"
msgstr ""
-#: models.py:3102
+#: models.py:3104
msgid "Operation types"
msgstr ""
-#: models.py:3131
+#: models.py:3133
msgid "Preventive"
msgstr ""
-#: models.py:3132
+#: models.py:3134
msgid "Research"
msgstr ""
-#: models.py:3155
+#: models.py:3157
msgid "Authority name"
msgstr ""
-#: models.py:3156
+#: models.py:3158
msgid "Authority SRID"
msgstr ""
-#: models.py:3160
+#: models.py:3162
msgid "Spatial reference systems"
msgstr ""
+#: models.py:3169
+msgid "Filename"
+msgstr ""
+
+#: models.py:3174
+msgid "Administration script"
+msgstr ""
+
+#: models.py:3175
+msgid "Administration scripts"
+msgstr ""
+
+#: models.py:3182
+msgid "Scheduled"
+msgstr ""
+
+#: models.py:3183
+msgid "In progress"
+msgstr ""
+
+#: models.py:3198
+msgid "Result"
+msgstr ""
+
+#: models.py:3201
+msgid "Administration task"
+msgstr ""
+
+#: models.py:3202
+msgid "Administration tasks"
+msgstr ""
+
+#: models.py:3206
+msgid "Unknown"
+msgstr ""
+
+#: models.py:3221
+msgid ""
+"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your "
+"administrator."
+msgstr ""
+
+#: models.py:3230
+msgid ""
+"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to "
+"relative paths, it can be a security issue and this is not allowed. Only put "
+"a full path."
+msgstr ""
+
+#: models.py:3241
+msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory."
+msgstr ""
+
+#: models.py:3257
+msgid ""
+"Script \"{}\" is not available in your script directory. Check your "
+"configuration."
+msgstr ""
+
#: utils.py:100
msgid " (...)"
msgstr ""
diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po
index 94c6923eb..cef69d5c5 100644
--- a/translations/fr/archaeological_context_records.po
+++ b/translations/fr/archaeological_context_records.po
@@ -21,116 +21,116 @@ msgstr ""
msgid "Operation"
msgstr "Opération"
-#: forms.py:59 forms.py:141 models.py:219 models.py:568
+#: forms.py:59 forms.py:142 models.py:219 models.py:568
msgid "ID"
msgstr "Identifiant"
-#: forms.py:64
+#: forms.py:65
msgid "Code PATRIARCHE"
msgstr "Code PATRIARCHE"
-#: forms.py:65
+#: forms.py:66
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:67
+#: forms.py:68
msgid "Operation's number (index by year)"
msgstr "Numéro de l'opération (index par année)"
-#: forms.py:69
+#: forms.py:70
msgid "Archaeological site"
msgstr "Entité archéologique"
-#: forms.py:75
+#: forms.py:76
msgid "Search within related operations"
msgstr "Rechercher parmi les opérations liées"
-#: forms.py:77 forms.py:254 models.py:56
+#: forms.py:78 forms.py:255 models.py:56
msgid "Period"
msgstr "Période"
-#: forms.py:78
+#: forms.py:79
msgid "Unit type"
msgstr "Type d'unité"
-#: forms.py:79
+#: forms.py:80
msgid "Parcel (section/number/public domain)"
msgstr "Parcelle (section/numéro/domaine public)"
-#: forms.py:81
+#: forms.py:82
msgid "Search within relations"
msgstr "Rechercher parmi les relations"
-#: forms.py:111 forms.py:358 views.py:92
+#: forms.py:112 forms.py:359 views.py:92
msgid "Context record search"
msgstr "Rechercher une Unité d'Enregistrement"
-#: forms.py:125
+#: forms.py:126
msgid "You should at least select one context record."
msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement."
-#: forms.py:131
+#: forms.py:132
msgid "General"
msgstr "Général"
-#: forms.py:140 models.py:181 models.py:215 models.py:570
+#: forms.py:141 models.py:181 models.py:215 models.py:570
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:143 models.py:220 models.py:571
+#: forms.py:144 models.py:220 models.py:571
#: templates/ishtar/sheet_contextrecord.html:30
msgid "Description"
msgstr "Description"
-#: forms.py:145 models.py:221
+#: forms.py:146 models.py:221
msgid "General comment"
msgstr "Commentaire général"
-#: forms.py:148 models.py:268
+#: forms.py:149 models.py:268
msgid "Excavation technique"
msgstr "Méthode de fouille"
-#: forms.py:149 models.py:225
+#: forms.py:150 models.py:225
msgid "Length (m)"
msgstr "Taille (m)"
-#: forms.py:150 models.py:226
+#: forms.py:151 models.py:226
msgid "Width (m)"
msgstr "Largeur (m)"
-#: forms.py:151 models.py:227
+#: forms.py:152 models.py:227
msgid "Thickness (m)"
msgstr "Épaisseur (m)"
-#: forms.py:152 models.py:229
+#: forms.py:153 models.py:229
msgid "Diameter (m)"
msgstr "Diamètre (m)"
-#: forms.py:153 models.py:230
+#: forms.py:154 models.py:230
msgid "Depth (m)"
msgstr "Profondeur (m)"
-#: forms.py:155 models.py:232
+#: forms.py:156 models.py:232
msgid "Depth of appearance (m)"
msgstr "Profondeur d'apparition"
-#: forms.py:156 forms.py:377 models.py:242 models.py:569
+#: forms.py:157 forms.py:379 models.py:242 models.py:569
msgid "Context record type"
msgstr "Type d'Unité d'Enregistrement"
-#: forms.py:159 ishtar_menu.py:48
+#: forms.py:160 ishtar_menu.py:48
msgid "Documentation"
msgstr "Documentation"
-#: forms.py:162 models.py:234
+#: forms.py:163 models.py:234
msgid "Location"
msgstr "Lieu"
-#: forms.py:165
+#: forms.py:166
msgid "Image"
msgstr "Image"
-#: forms.py:166
+#: forms.py:167
#, python-format
msgid ""
"<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"
@@ -139,112 +139,112 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms.py:243
+#: forms.py:244
msgid "This ID already exists for this operation."
msgstr "Cet identifiant existe déjà pour cette opération."
-#: forms.py:249 forms.py:276 models.py:67
+#: forms.py:250 forms.py:277 models.py:67
msgid "Dating"
msgstr "Datation"
-#: forms.py:255 models.py:57
+#: forms.py:256 models.py:57
msgid "Start date"
msgstr "Date de début"
-#: forms.py:256 models.py:58 models.py:224
+#: forms.py:257 models.py:58 models.py:224
msgid "End date"
msgstr "Date de fin"
-#: forms.py:257 models.py:61
+#: forms.py:258 models.py:61
msgid "Quality"
msgstr "Qualité"
-#: forms.py:258 models.py:39 models.py:59
+#: forms.py:259 models.py:39 models.py:59
msgid "Dating type"
msgstr "Type de datation"
-#: forms.py:285 ishtar_menu.py:29 models.py:642
+#: forms.py:286 ishtar_menu.py:29 models.py:642
msgid "Context record"
msgstr "Unité d'Enregistrement"
-#: forms.py:307
+#: forms.py:308
msgid "Relations"
msgstr "Relations"
-#: forms.py:311 forms.py:319 models.py:245
+#: forms.py:312 forms.py:320 models.py:245
#: templates/ishtar/sheet_contextrecord.html:44
msgid "Interpretation"
msgstr "Interprétation"
-#: forms.py:315
+#: forms.py:316
msgid "Comments on dating"
msgstr "Commentaires sur la datation"
-#: forms.py:317 models.py:244
+#: forms.py:318 models.py:244
msgid "Filling"
msgstr "Remplissage"
-#: forms.py:321 models.py:265
+#: forms.py:322 models.py:265
msgid "Activity"
msgstr "Activité"
-#: forms.py:323 models.py:263
+#: forms.py:324 models.py:263
msgid "Identification"
msgstr "Identification"
-#: forms.py:325 models.py:248
+#: forms.py:326 models.py:248
msgid "TAQ"
msgstr "TAQ"
-#: forms.py:326 models.py:252
+#: forms.py:327 models.py:252
msgid "Estimated TAQ"
msgstr "TAQ estimé"
-#: forms.py:328 models.py:255
+#: forms.py:329 models.py:255
msgid "TPQ"
msgstr "TPQ"
-#: forms.py:329 models.py:259
+#: forms.py:330 models.py:259
msgid "Estimated TPQ"
msgstr "TPQ estimé"
-#: forms.py:344
+#: forms.py:345
msgid "Operation search"
msgstr "Rechercher une opération"
-#: forms.py:346
+#: forms.py:347
msgid "You should select an operation."
msgstr "Vous devez sélectionner une Opération."
-#: forms.py:351
+#: forms.py:352
msgid "Would you like to delete this context record?"
msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?"
-#: forms.py:360
+#: forms.py:361
msgid "You should select a context record."
msgstr "Vous devez sélectionner une Unité d'Enregistrement."
-#: forms.py:365
+#: forms.py:366
msgid "Year of the operation"
msgstr "Année de l'opération"
-#: forms.py:367
+#: forms.py:368
msgid "Numeric reference"
msgstr "Référence numérique"
-#: forms.py:373
+#: forms.py:375
msgid "Town of the operation"
msgstr "Commune de l'opération"
-#: forms.py:375
+#: forms.py:377
msgid "Period of the context record"
msgstr "Période de l'Unité d'Enregistrement"
-#: forms.py:390
+#: forms.py:392
msgid "Documentation search"
msgstr "Rechercher une documentation"
-#: forms.py:392
+#: forms.py:394
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
@@ -529,31 +529,31 @@ msgstr "Peut modifier sa propre Documentation d'unité d'enregistrement"
msgid "Can delete own Context record source"
msgstr "Peut supprimer sa propre Documentation d'unité d'enregistrement"
-#: views.py:102
+#: views.py:105
msgid "New context record"
msgstr "Ajouter une Unité d'Enregistrement"
-#: views.py:113
+#: views.py:116
msgid "Context record modification"
msgstr "Modifier une Unité d'Enregistrement"
-#: views.py:127
+#: views.py:130
msgid "Context record deletion"
msgstr "Supprimer une Unité d'Enregistrement"
-#: views.py:132
+#: views.py:135
msgid "Context record: source search"
msgstr "Unité d'Enregistrement : rechercher une documentation associée"
-#: views.py:140
+#: views.py:143
msgid "Context record: new source"
msgstr "Unité d'Enregistrement : ajouter une documentation associée"
-#: views.py:148
+#: views.py:151
msgid "Context record: source modification"
msgstr "Unité d'Enregistrement : modifier une documentation associée"
-#: views.py:163
+#: views.py:166
msgid "Context record: source deletion"
msgstr "Unité d'Enregistrement : supprimer une documentation associée"
diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po
index 6b2e9b5ff..129e58cae 100644
--- a/translations/fr/archaeological_finds.po
+++ b/translations/fr/archaeological_finds.po
@@ -11,7 +11,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2017-05-16 04:46-0400\n"
+"PO-Revision-Date: 2017-06-27 11:32-0400\n"
"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -29,7 +29,7 @@ msgid "Find"
msgstr "Mobilier"
#: forms.py:142 forms.py:347 forms.py:629 models_finds.py:151
-#: models_finds.py:635
+#: models_finds.py:635 templates/ishtar/sheet_find.html:17
msgid "Free ID"
msgstr "ID libre"
@@ -82,15 +82,15 @@ msgstr "Remarquabilité"
msgid "Point of topographic reference"
msgstr "Point de référence topographique"
-#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:209
+#: forms.py:176 models_finds.py:171 templates/ishtar/sheet_find.html:208
msgid "X"
msgstr "X"
-#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:210
+#: forms.py:177 models_finds.py:172 templates/ishtar/sheet_find.html:209
msgid "Y"
msgstr "Y"
-#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:211
+#: forms.py:178 models_finds.py:173 templates/ishtar/sheet_find.html:210
msgid "Z"
msgstr "Z"
@@ -213,13 +213,13 @@ msgstr "Période"
#: forms.py:316 forms_treatments.py:138 forms_treatments.py:283
#: forms_treatments.py:481 models_finds.py:1186 models_treatments.py:130
-#: models_treatments.py:309 templates/ishtar/sheet_find.html:95
-#: templates/ishtar/sheet_find.html:137
+#: models_treatments.py:309 templates/ishtar/sheet_find.html:94
+#: templates/ishtar/sheet_find.html:136
msgid "Start date"
msgstr "Date de début"
#: forms.py:318 models_finds.py:1187 models_treatments.py:310
-#: templates/ishtar/sheet_find.html:96 templates/ishtar/sheet_find.html:138
+#: templates/ishtar/sheet_find.html:95 templates/ishtar/sheet_find.html:137
msgid "End date"
msgstr "Date de fin"
@@ -374,7 +374,7 @@ msgid "Basket"
msgstr "Panier"
#: forms_treatments.py:52 forms_treatments.py:92 models_treatments.py:99
-#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131
+#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130
msgid "Label"
msgstr "Intitulé"
@@ -404,7 +404,7 @@ msgid "Base treatment"
msgstr "Traitement de base"
#: forms_treatments.py:103 models_treatments.py:93 models_treatments.py:112
-#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133
+#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132
msgid "State"
msgstr "État"
@@ -583,8 +583,8 @@ msgid "Internal ref."
msgstr "Réf. interne"
#: forms_treatments.py:403 forms_treatments.py:460 models_treatments.py:92
-#: templates/ishtar/sheet_find.html:90 templates/ishtar/sheet_find.html:132
-#: templates/ishtar/sheet_find.html:232
+#: templates/ishtar/sheet_find.html:89 templates/ishtar/sheet_find.html:131
+#: templates/ishtar/sheet_find.html:231
msgid "Type"
msgstr "Type"
@@ -689,8 +689,8 @@ msgstr "Documentation"
msgid "Administrative act"
msgstr "Acte administratif"
-#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:226
-#: templates/ishtar/sheet_find.html:228
+#: ishtar_menu.py:151 ishtar_menu.py:233 templates/ishtar/sheet_find.html:225
+#: templates/ishtar/sheet_find.html:227
msgid "Documents"
msgstr "Documents"
@@ -862,11 +862,11 @@ msgstr "Vérifié mais incorrect"
msgid "Checked and correct"
msgstr "Vérifié et correct"
-#: models_finds.py:539
+#: models_finds.py:539 templates/ishtar/sheet_find.html:19
msgid "Base find - Short ID"
msgstr "Mobilier de base - ID court"
-#: models_finds.py:540
+#: models_finds.py:540 templates/ishtar/sheet_find.html:18
msgid "Base find - Complete ID"
msgstr "Mobilier de base - ID complet"
@@ -911,8 +911,8 @@ msgid "Base find - Discovery date"
msgstr "Mobilier de base - Date de découverte"
#: models_finds.py:556 models_finds.py:662 models_treatments.py:132
-#: models_treatments.py:312 templates/ishtar/sheet_find.html:94
-#: templates/ishtar/sheet_find.html:136
+#: models_treatments.py:312 templates/ishtar/sheet_find.html:93
+#: templates/ishtar/sheet_find.html:135
msgid "Container"
msgstr "Contenant"
@@ -928,11 +928,11 @@ msgstr "Mesures de conservation à envisager"
msgid "Weight unit"
msgstr "Unité de poids"
-#: models_finds.py:655 templates/ishtar/sheet_find.html:82
+#: models_finds.py:655 templates/ishtar/sheet_find.html:81
msgid "Upstream treatment"
msgstr "Traitement amont"
-#: models_finds.py:658 templates/ishtar/sheet_find.html:124
+#: models_finds.py:658 templates/ishtar/sheet_find.html:123
msgid "Downstream treatment"
msgstr "Traitement aval"
@@ -1078,7 +1078,7 @@ msgstr "Coût d'assurance"
msgid "Target a basket"
msgstr "Appliquer à un panier"
-#: models_treatments.py:149 templates/ishtar/sheet_find.html:79
+#: models_treatments.py:149 templates/ishtar/sheet_find.html:78
#: templates/ishtar/sheet_treatmentfile.html:46
msgid "Treatments"
msgstr "Traitements"
@@ -1107,8 +1107,8 @@ msgstr "Peut supprimer son propre Traitement"
msgid "TREATMENT"
msgstr "TRAITEMENT"
-#: models_treatments.py:313 templates/ishtar/sheet_find.html:93
-#: templates/ishtar/sheet_find.html:135
+#: models_treatments.py:313 templates/ishtar/sheet_find.html:92
+#: templates/ishtar/sheet_find.html:134
msgid "Doer"
msgstr "Opérateur"
@@ -1360,55 +1360,59 @@ msgstr ""
"Cette fiche a un traitement aval associé, elle concerne une vieille version "
"de ce mobilier."
-#: templates/ishtar/sheet_find.html:29
+#: templates/ishtar/sheet_find.html:20
+msgid "Find - Administrative ID"
+msgstr "Mobilier - Index administratif"
+
+#: templates/ishtar/sheet_find.html:28
msgid "Administrative index"
msgstr "Index administratif"
-#: templates/ishtar/sheet_find.html:71
+#: templates/ishtar/sheet_find.html:70
msgid "Warehouse"
msgstr "Dépôt"
-#: templates/ishtar/sheet_find.html:88 templates/ishtar/sheet_find.html:130
+#: templates/ishtar/sheet_find.html:87 templates/ishtar/sheet_find.html:129
msgid "Year - index"
msgstr "Année - index"
-#: templates/ishtar/sheet_find.html:92 templates/ishtar/sheet_find.html:134
+#: templates/ishtar/sheet_find.html:91 templates/ishtar/sheet_find.html:133
msgid "Related finds (max. 15 displayed)"
msgstr "Mobilier associé (max. 15 affichés)"
-#: templates/ishtar/sheet_find.html:120
+#: templates/ishtar/sheet_find.html:119
msgid "Export as CSV"
msgstr "Export en CSV"
-#: templates/ishtar/sheet_find.html:120 templates/ishtar/sheet_find.html:163
+#: templates/ishtar/sheet_find.html:119 templates/ishtar/sheet_find.html:162
msgid "CSV"
msgstr "CSV"
-#: templates/ishtar/sheet_find.html:168
+#: templates/ishtar/sheet_find.html:167
msgid "Associated base finds"
msgstr "Mobilier de base associé"
-#: templates/ishtar/sheet_find.html:175
+#: templates/ishtar/sheet_find.html:174
msgid "Internal ID"
msgstr "ID interne"
-#: templates/ishtar/sheet_find.html:207
+#: templates/ishtar/sheet_find.html:206
msgid "Coordinates"
msgstr "Coordonnées"
-#: templates/ishtar/sheet_find.html:214
+#: templates/ishtar/sheet_find.html:213
msgid "SRID"
msgstr "SRID"
-#: templates/ishtar/sheet_find.html:231
+#: templates/ishtar/sheet_find.html:230
msgid "Title"
msgstr "Titre"
-#: templates/ishtar/sheet_find.html:233
+#: templates/ishtar/sheet_find.html:232
msgid "Authors"
msgstr "Auteurs"
-#: templates/ishtar/sheet_find.html:234
+#: templates/ishtar/sheet_find.html:233
msgid "Link"
msgstr "Lien"
diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po
index ccff86182..7d6ba7163 100644
--- a/translations/fr/archaeological_operations.po
+++ b/translations/fr/archaeological_operations.po
@@ -19,13 +19,13 @@ msgstr ""
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.9.6\n"
-#: forms.py:69 forms.py:371 forms.py:1055 forms.py:1077 forms.py:1081
-#: models.py:1252 templates/ishtar/sheet_operation.html:153
+#: forms.py:69 forms.py:371 forms.py:1059 forms.py:1081 forms.py:1085
+#: models.py:1254 templates/ishtar/sheet_operation.html:153
#: templates/ishtar/blocks/window_tables/parcels.html:10
msgid "Parcels"
msgstr "Parcelles"
-#: forms.py:72 forms.py:205 forms.py:1031 models.py:1238
+#: forms.py:72 forms.py:205 forms.py:1035 models.py:1240
#: templates/ishtar/blocks/window_tables/parcels.html:7
#: templates/ishtar/dashboards/dashboard_operation.html:432
#: templates/ishtar/dashboards/dashboard_operation.html:446
@@ -34,22 +34,22 @@ msgstr "Parcelles"
msgid "Town"
msgstr "Commune"
-#: forms.py:74 forms.py:481 forms.py:781 forms.py:1301 models.py:276
-#: models.py:1044 models.py:1236
+#: forms.py:74 forms.py:483 forms.py:785 forms.py:1306 models.py:276
+#: models.py:1046 models.py:1238
#: templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Year"
msgstr "Année"
-#: forms.py:77 models.py:1239
+#: forms.py:77 models.py:1241
#: templates/ishtar/blocks/window_tables/parcels.html:9
msgid "Section"
msgstr "Section"
-#: forms.py:80 models.py:1241
+#: forms.py:80 models.py:1243
msgid "Parcel number"
msgstr "Numéro de parcelle"
-#: forms.py:82 models.py:1243 models.py:1260 models.py:1309
+#: forms.py:82 models.py:1245 models.py:1262 models.py:1311
msgid "Public domain"
msgstr "Domaine public"
@@ -85,8 +85,8 @@ msgstr "Il y a des parcelles identiques."
msgid "Relation type"
msgstr "Type de relation"
-#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:847 models.py:882
-#: models.py:922 models.py:1026 models.py:1235 wizards.py:352 wizards.py:363
+#: forms.py:383 ishtar_menu.py:30 models.py:372 models.py:849 models.py:884
+#: models.py:924 models.py:1028 models.py:1237 wizards.py:352 wizards.py:363
#: templates/ishtar/sheet_operation.html:4
msgid "Operation"
msgstr "Opération"
@@ -95,7 +95,7 @@ msgstr "Opération"
msgid ":"
msgstr ": "
-#: forms.py:414 forms.py:633 forms.py:1266
+#: forms.py:414 forms.py:636 forms.py:1270
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
@@ -103,31 +103,31 @@ msgstr "Vous devez sélectionner une opération."
msgid "You should select a relation type."
msgstr "Vous devez sélectionner un type de relation."
-#: forms.py:421
+#: forms.py:423
msgid "An operation cannot be related to herself."
msgstr "Une opération ne peut être associée à elle-même."
-#: forms.py:451
+#: forms.py:453
msgid "Current relations"
msgstr "Relations actuelles"
-#: forms.py:453
+#: forms.py:455
msgid "Deleted relations"
msgstr "Relations supprimées"
-#: forms.py:477 templates/ishtar/sheet_operation.html:86
+#: forms.py:479 templates/ishtar/sheet_operation.html:86
msgid "Relations"
msgstr "Relations"
-#: forms.py:482 forms.py:1272 models.py:277
+#: forms.py:484 forms.py:1276 models.py:277
msgid "Numeric reference"
msgstr "Identifiant numérique"
-#: forms.py:488 forms.py:1312
+#: forms.py:491 forms.py:1318
msgid "Parcel (section/number/public domain)"
msgstr "Parcelle (section/numéro/domaine public)"
-#: forms.py:491 forms.py:1315 models.py:848
+#: forms.py:494 forms.py:1321 models.py:850
#: templates/ishtar/dashboards/dashboard_operation.html:390
#: templates/ishtar/dashboards/dashboard_operation.html:411
#: templates/ishtar/dashboards/dashboard_operation.html:643
@@ -136,253 +136,253 @@ msgstr "Parcelle (section/numéro/domaine public)"
msgid "Department"
msgstr "Département"
-#: forms.py:492 forms.py:1143 models.py:86
+#: forms.py:495 forms.py:1147 models.py:86
#: templates/ishtar/sheet_operation.html:22
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8
msgid "Name"
msgstr "Nom"
-#: forms.py:494 forms.py:777 models.py:338
+#: forms.py:497 forms.py:781 models.py:338
msgid "Address / Locality"
msgstr "Adresse / Lieu-dit"
-#: forms.py:496 forms.py:700 forms.py:779 forms.py:1278 models.py:284
+#: forms.py:499 forms.py:703 forms.py:783 forms.py:1283 models.py:284
msgid "Operation type"
msgstr "Type d'opération"
-#: forms.py:498
+#: forms.py:501
msgid "Is open?"
msgstr "Est ouvert ?"
-#: forms.py:506 forms.py:811 models.py:269
+#: forms.py:509 forms.py:815 models.py:269
msgid "In charge"
msgstr "Responsable du suivi scientifique"
-#: forms.py:513 models.py:1020
+#: forms.py:516 models.py:1022
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:515 forms.py:702 forms.py:801 models.py:267
+#: forms.py:518 forms.py:705 forms.py:805 models.py:267
msgid "Operator"
msgstr "Opérateur"
-#: forms.py:524 forms.py:1148 models.py:90 models.py:286
+#: forms.py:527 forms.py:1152 models.py:90 models.py:286
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10
msgid "Remains"
msgstr "Vestiges"
-#: forms.py:525 forms.py:1126 forms.py:1145 models.py:88 models.py:292
+#: forms.py:528 forms.py:1130 forms.py:1149 models.py:88 models.py:292
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9
msgid "Periods"
msgstr "Périodes"
-#: forms.py:526
+#: forms.py:529
msgid "Started before"
msgstr "Commencé avant"
-#: forms.py:528
+#: forms.py:531
msgid "Started after"
msgstr "Commencé après"
-#: forms.py:530
+#: forms.py:533
msgid "Ended before"
msgstr "Terminé avant"
-#: forms.py:532
+#: forms.py:535
msgid "Ended after"
msgstr "Terminé après"
-#: forms.py:535
+#: forms.py:538
msgid "Search within relations"
msgstr "Rechercher parmi les relations"
-#: forms.py:537 forms.py:863
+#: forms.py:540 forms.py:867
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:538
+#: forms.py:541
msgid "Abstract (full text search)"
msgstr "Résumé (recherche texte intégral)"
-#: forms.py:540 forms.py:866 models.py:341
+#: forms.py:543 forms.py:870 models.py:341
msgid "Comment about scientific documentation"
msgstr "Commentaire concernant la documentation scientifique"
-#: forms.py:541 forms.py:868 models.py:353
+#: forms.py:544 forms.py:872 models.py:353
msgid "Record quality"
msgstr "Qualité d'enregistrement"
-#: forms.py:542 forms.py:833 models.py:304
+#: forms.py:545 forms.py:837 models.py:304
msgid "Report processing"
msgstr "Traitement du rapport"
-#: forms.py:544 forms.py:871 models.py:348
+#: forms.py:547 forms.py:875 models.py:348
msgid "Virtual operation"
msgstr "Opération virtuelle"
-#: forms.py:546 forms.py:1188 forms.py:1192 models.py:94
+#: forms.py:549 forms.py:1192 forms.py:1196 models.py:94
msgid "Archaeological site"
msgstr "Entité archéologique"
-#: forms.py:552 forms.py:1319
+#: forms.py:555 forms.py:1325
msgid "Created by"
msgstr "Créé par"
-#: forms.py:558 forms.py:1325
+#: forms.py:561 forms.py:1331
msgid "Modified by"
msgstr "Modifié par"
-#: forms.py:565
+#: forms.py:568
msgid "Documentation deadline before"
msgstr "Date limite de rendu de la documentation avant"
-#: forms.py:567
+#: forms.py:570
msgid "Documentation deadline after"
msgstr "Date limite de rendu de la documentation après"
-#: forms.py:569 forms.py:856 models.py:360
+#: forms.py:572 forms.py:860 models.py:360
msgid "Documentation received"
msgstr "Documentation reçue"
-#: forms.py:571
+#: forms.py:574
msgid "Finds deadline before"
msgstr "Date limite de rendu du mobilier avant"
-#: forms.py:573
+#: forms.py:576
msgid "Finds deadline after"
msgstr "Date limite de rendu du mobilier après"
-#: forms.py:575 forms.py:861 models.py:364
+#: forms.py:578 forms.py:865 models.py:364
msgid "Finds received"
msgstr "Mobilier reçu"
-#: forms.py:620 forms.py:1264 views.py:168
+#: forms.py:623 forms.py:1268 views.py:168
msgid "Operation search"
msgstr "Rechercher une opération"
-#: forms.py:664
+#: forms.py:667
msgid "Associated file"
msgstr "Dossier associé"
-#: forms.py:668 forms.py:967 models.py:520 models.py:921 models.py:1031
+#: forms.py:671 forms.py:971 models.py:520 models.py:923 models.py:1033
#: wizards.py:80
msgid "Archaeological file"
msgstr "Dossier archéologique"
-#: forms.py:675 forms.py:677 models.py:355
+#: forms.py:678 forms.py:680 models.py:355
msgid "Abstract"
msgstr "Résumé"
-#: forms.py:680
+#: forms.py:683
msgid "months"
msgstr "mois"
-#: forms.py:680
+#: forms.py:683
msgid "years"
msgstr "années"
-#: forms.py:682 models.py:253
+#: forms.py:685 models.py:253
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:683
+#: forms.py:686
msgid "Start of field work"
msgstr "Début du travail de terrain"
-#: forms.py:685
+#: forms.py:688
msgid "All"
msgstr "Tout"
-#: forms.py:686
+#: forms.py:689
msgid "Preventive"
msgstr "Préventif"
-#: forms.py:687
+#: forms.py:690
msgid "Research"
msgstr "Programmé"
-#: forms.py:691
+#: forms.py:694
msgid "Slicing"
msgstr "Découpage"
-#: forms.py:694
+#: forms.py:697
msgid "Department detail"
msgstr "Détail par département"
-#: forms.py:696
+#: forms.py:699
msgid "Date get from"
msgstr "Date obtenue depuis"
-#: forms.py:698
+#: forms.py:701
msgid "Preventive/Research"
msgstr "Préventif/Programmé"
-#: forms.py:704
+#: forms.py:707
msgid "Date after"
msgstr "Date après"
-#: forms.py:706
+#: forms.py:709
msgid "Date before"
msgstr "Date avant"
-#: forms.py:708
+#: forms.py:711
msgid "With reports"
msgstr "Avec un rapport"
-#: forms.py:709
+#: forms.py:712
msgid "With finds"
msgstr "Avec du mobilier"
-#: forms.py:761 forms.py:1373 templates/ishtar/sheet_administrativeact.html:20
+#: forms.py:764 forms.py:1379 templates/ishtar/sheet_administrativeact.html:20
#: templates/ishtar/sheet_operation.html:26
msgid "General"
msgstr "Général"
-#: forms.py:775 models.py:337
+#: forms.py:779 models.py:337
msgid "Generic name"
msgstr "Nom générique"
-#: forms.py:786 models.py:306
+#: forms.py:790 models.py:306
msgid "Old code"
msgstr "Ancien code"
-#: forms.py:789
+#: forms.py:793
msgid "Head scientist"
msgstr "Responsable scientifique"
-#: forms.py:808 models.py:336
+#: forms.py:812 models.py:336
msgid "Operator reference"
msgstr "Référence de l'opérateur"
-#: forms.py:822
+#: forms.py:826
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:826 models.py:54 models.py:256 models.py:1448
+#: forms.py:830 models.py:54 models.py:256 models.py:1450
msgid "Start date"
msgstr "Date de début"
-#: forms.py:828 models.py:258
+#: forms.py:832 models.py:258
msgid "Excavation end date"
msgstr "Date de fin de chantier"
-#: forms.py:831 models.py:259
+#: forms.py:835 models.py:259
msgid "Report delivery date"
msgstr "Date de livraison du rapport"
-#: forms.py:853 models.py:357
+#: forms.py:857 models.py:357
msgid "Deadline for submission of the documentation"
msgstr "Date limite de rendu de la documentation"
-#: forms.py:858 models.py:362
+#: forms.py:862 models.py:362
msgid "Deadline for submission of the finds"
msgstr "Date limite de rendu du mobilier"
-#: forms.py:873
+#: forms.py:877
msgid "Image"
msgstr "Image"
-#: forms.py:874
+#: forms.py:878
#, python-format
msgid ""
"<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</"
@@ -391,19 +391,19 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms.py:920
+#: forms.py:924
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:925
+#: forms.py:929
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:953
+#: forms.py:957
#, python-format
msgid ""
"Operation code already exists for year: %(year)d - use a value bigger than "
@@ -412,110 +412,110 @@ 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:957
+#: forms.py:961
msgid "Bad operation code"
msgstr "Mauvais code d'opération"
-#: forms.py:963 models.py:535 models.py:877
+#: forms.py:967 models.py:535 models.py:879
msgid "Operation code"
msgstr "Code de l'opération"
-#: forms.py:989 forms.py:993 models.py:273
+#: forms.py:993 forms.py:997 models.py:273
msgid "Collaborators"
msgstr "Collaborateurs"
-#: forms.py:1001
+#: forms.py:1005
msgid "Preventive informations - excavation"
msgstr "Information archéologie préventive - fouille"
-#: forms.py:1002 models.py:290
+#: forms.py:1006 models.py:290
#: templates/ishtar/dashboards/dashboard_operation.html:701
msgid "Cost (euros)"
msgstr "Coût (euros)"
-#: forms.py:1003 models.py:295
+#: forms.py:1007 models.py:295
msgid "Scheduled man-days"
msgstr "Jours-hommes prévus"
-#: forms.py:1005 models.py:298
+#: forms.py:1009 models.py:298
msgid "Optional man-days"
msgstr "Jours-hommes optionnels"
-#: forms.py:1007 models.py:301
+#: forms.py:1011 models.py:301
msgid "Effective man-days"
msgstr "Jours-hommes effectifs"
-#: forms.py:1017
+#: forms.py:1021
msgid "Preventive informations - diagnostic"
msgstr "Information archéologie préventive - diagnostic"
-#: forms.py:1020 models.py:320
+#: forms.py:1024 models.py:320
msgid "Prescription on zoning"
msgstr "Prescription sur zonage"
-#: forms.py:1022 models.py:323
+#: forms.py:1026 models.py:323
msgid "Prescription on large area"
msgstr "Prescription sur une vaste surface"
-#: forms.py:1025 models.py:325
+#: forms.py:1029 models.py:325
msgid "Prescription on geoarchaeological context"
msgstr "Prescription sur un contexte géoarchéologique"
-#: forms.py:1029 forms.py:1051 models.py:288 models.py:1054
+#: forms.py:1033 forms.py:1055 models.py:288 models.py:1056
msgid "Towns"
msgstr "Communes"
-#: forms.py:1058 models.py:1251 models.py:1446
+#: forms.py:1062 models.py:1253 models.py:1448
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:1110 models.py:46
+#: forms.py:1114 models.py:46
msgid "Remain types"
msgstr "Types de vestige"
-#: forms.py:1114 models.py:45
+#: forms.py:1118 models.py:45
msgid "Remain type"
msgstr "Type de vestige"
-#: forms.py:1130 templates/ishtar/sheet_operation.html:173
+#: forms.py:1134 templates/ishtar/sheet_operation.html:173
#: templates/ishtar/sheet_operation.html:204
msgid "Period"
msgstr "Période"
-#: forms.py:1142 models.py:85
+#: forms.py:1146 models.py:85
msgid "Reference"
msgstr "Référence"
-#: forms.py:1171
+#: forms.py:1175
msgid "This reference already exists."
msgstr "Cette référence existe déjà."
-#: forms.py:1203 models.py:95 models.py:345
+#: forms.py:1207 models.py:95 models.py:345
#: templates/ishtar/sheet_operation.html:97
msgid "Archaeological sites"
msgstr "Entités archéologiques"
-#: forms.py:1207
+#: forms.py:1211
msgid "Associated archaeological sites"
msgstr "Entités archéologiques associées"
-#: forms.py:1213 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93
+#: forms.py:1217 ishtar_menu.py:34 ishtar_menu.py:64 ishtar_menu.py:93
msgid "Search"
msgstr "Recherche"
-#: forms.py:1218
+#: forms.py:1222
msgid "Would you like to close this operation?"
msgstr "Voulez-vous clore cette opération ?"
-#: forms.py:1223
+#: forms.py:1227
msgid "Would you like to delete this operation?"
msgstr "Voulez-vous supprimer cette opération ?"
-#: forms.py:1232 forms.py:1302 forms.py:1438 models.py:884 models.py:1011
+#: forms.py:1236 forms.py:1307 forms.py:1444 models.py:886 models.py:1013
msgid "Index"
msgstr "Index"
-#: forms.py:1258
+#: forms.py:1262
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
@@ -524,48 +524,48 @@ msgstr ""
"Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "
"plus grande que %(last_val)d"
-#: forms.py:1270
+#: forms.py:1274
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:1277
+#: forms.py:1282
msgid "Operation's town"
msgstr "Commune de l'opération"
-#: forms.py:1290
+#: forms.py:1295
msgid "Documentation search"
msgstr "Rechercher une documentation"
-#: forms.py:1292
+#: forms.py:1297
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: forms.py:1309 forms.py:1376 models.py:935 models.py:1005
+#: forms.py:1315 forms.py:1382 models.py:937 models.py:1007
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:1310 forms.py:1508
+#: forms.py:1316 forms.py:1514
msgid "Indexed?"
msgstr "Indexé ?"
-#: forms.py:1316 forms.py:1381 models.py:1045
+#: forms.py:1322 forms.py:1387 models.py:1047
#: templates/ishtar/blocks/window_tables/administrativacts.html:10
msgid "Object"
msgstr "Objet"
-#: forms.py:1353 views.py:350
+#: forms.py:1359 views.py:350
msgid "Administrative act search"
msgstr "Rechercher un acte administratif"
-#: forms.py:1368 forms.py:1466 forms.py:1533
+#: forms.py:1374 forms.py:1472 forms.py:1539
msgid "You should select an administrative act."
msgstr "Vous devez sélectionner un acte administratif."
-#: forms.py:1384 models.py:1042
+#: forms.py:1390 models.py:1044
msgid "Signature date"
msgstr "Date de signature"
-#: forms.py:1426
+#: forms.py:1432
#, python-format
msgid ""
"This index already exists for year: %(year)d - use a value bigger than "
@@ -574,31 +574,31 @@ msgstr ""
"Cet index existe déjà pour l'année : %(year)d, utilisez une valeur plus "
"grande que %(last_val)d"
-#: forms.py:1430
+#: forms.py:1436
msgid "Bad index"
msgstr "Mauvais index"
-#: forms.py:1443
+#: forms.py:1449
msgid "Would you like to delete this administrative act?"
msgstr "Voulez-vous supprimer cet acte administratif ?"
-#: forms.py:1448
+#: forms.py:1454
msgid "Template"
msgstr "Patron"
-#: forms.py:1472 forms.py:1476
+#: forms.py:1478 forms.py:1482
msgid "This document is not intended for this type of act."
msgstr "Ce document n'est pas destiné à ce type d'acte."
-#: forms.py:1494
+#: forms.py:1500
msgid "Doc generation"
msgstr "Génération de document"
-#: forms.py:1496
+#: forms.py:1502
msgid "Generate the associated doc?"
msgstr "Générer le document associé ?"
-#: forms.py:1517 ishtar_menu.py:123 views.py:403
+#: forms.py:1523 ishtar_menu.py:123 views.py:403
msgctxt "admin act register"
msgid "Register"
msgstr "Registre"
@@ -619,7 +619,7 @@ msgstr "Clôture"
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:59 models.py:1061
+#: ishtar_menu.py:59 models.py:1063
#: templates/ishtar/sheet_administrativeact.html:4
msgid "Administrative act"
msgstr "Acte administratif"
@@ -649,11 +649,11 @@ msgstr "Informations générales"
msgid "Operations"
msgstr "Opérations"
-#: models.py:53 models.py:71 models.py:1918
+#: models.py:53 models.py:71 models.py:1920
msgid "Order"
msgstr "Ordre"
-#: models.py:55 models.py:1449
+#: models.py:55 models.py:1451
msgid "End date"
msgstr "Date de fin"
@@ -769,7 +769,7 @@ msgstr "Date de clôture"
msgid "In charge scientist"
msgstr "Responsable du suivi scientifique"
-#: models.py:281 models.py:1231
+#: models.py:281 models.py:1233
msgid "File"
msgstr "Dossier"
@@ -874,210 +874,210 @@ msgstr "Nombre de documents"
msgid "Mean"
msgstr "Moyenne"
-#: models.py:818
+#: models.py:820
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:822
+#: models.py:824
msgid "Operation relation type"
msgstr "Type de relation entre opérations"
-#: models.py:823
+#: models.py:825
msgid "Operation relation types"
msgstr "Types de relation entre opérations"
-#: models.py:836
+#: models.py:838
msgid "Operation record relation"
msgstr "Relation entre opérations"
-#: models.py:837
+#: models.py:839
msgid "Operation record relations"
msgstr "Relations entre opérations"
-#: models.py:876
+#: models.py:878
msgid "Operation year"
msgstr "Année de l'opération"
-#: models.py:878
+#: models.py:880
msgid "Document code"
msgstr "Code du document"
-#: models.py:888
+#: models.py:890
msgid "Operation documentation"
msgstr "Documentation d'une opération"
-#: models.py:889
+#: models.py:891
msgid "Operation documentations"
msgstr "Documentations des opérations"
-#: models.py:892
+#: models.py:894
msgid "Can view all Operation sources"
msgstr "Peut voir toutes les Documentations d'opération"
-#: models.py:894
+#: models.py:896
msgid "Can view own Operation source"
msgstr "Peut voir sa propre Documentation d'opération"
-#: models.py:896
+#: models.py:898
msgid "Can add own Operation source"
msgstr "Peut ajouter sa propre Documentation d'opération"
-#: models.py:898
+#: models.py:900
msgid "Can change own Operation source"
msgstr "Peut modifier sa propre Documentation d'opération"
-#: models.py:900
+#: models.py:902
msgid "Can delete own Operation source"
msgstr "Peut supprimer sa propre Documentation d'opération"
-#: models.py:923 models.py:1036
+#: models.py:925 models.py:1038
msgid "Treatment request"
msgstr "Demande de traitement"
-#: models.py:924 models.py:1041
+#: models.py:926 models.py:1043
msgid "Treatment"
msgstr "Traitement"
-#: models.py:926
+#: models.py:928
msgid "Intended to"
msgstr "Destiné à"
-#: models.py:928
+#: models.py:930
msgid "Code"
msgstr "Code"
-#: models.py:931
+#: models.py:933
msgid "Associated template"
msgstr "Patron associé"
-#: models.py:932
+#: models.py:934
msgid "Indexed"
msgstr "Indexé"
-#: models.py:936
+#: models.py:938
msgid "Act types"
msgstr "Types d'acte"
-#: models.py:1002 models.py:1082
+#: models.py:1004 models.py:1084
#: templates/ishtar/blocks/window_tables/administrativacts.html:7
#: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7
msgid "Ref."
msgstr "Réf."
-#: models.py:1009
+#: models.py:1011
msgid "Person in charge of the operation"
msgstr "Responsable d'opération"
-#: models.py:1015
+#: models.py:1017
msgid "Archaeological preventive operator"
msgstr "Opérateur d'archéologie préventive"
-#: models.py:1023
+#: models.py:1025
msgid "Signatory"
msgstr "Signataire"
-#: models.py:1051
+#: models.py:1053
msgid "Departments"
msgstr "Départements"
-#: models.py:1052
+#: models.py:1054
msgid "Cached values get from associated departments"
msgstr "Valeur en cache des départements associés"
-#: models.py:1055
+#: models.py:1057
msgid "Cached values get from associated towns"
msgstr "Valeur en cache des communes associées"
-#: models.py:1062 templates/ishtar/sheet_operation.html:105
+#: models.py:1064 templates/ishtar/sheet_operation.html:105
#: templates/ishtar/sheet_operation.html:147
msgid "Administrative acts"
msgstr "Actes administratifs"
-#: models.py:1065
+#: models.py:1067
msgid "Can view all Administrative acts"
msgstr "Peut voir tous les Actes administratifs"
-#: models.py:1067
+#: models.py:1069
msgid "Can view own Administrative act"
msgstr "Peut voir son propre Acte administratif"
-#: models.py:1069
+#: models.py:1071
msgid "Can add own Administrative act"
msgstr "Peut ajouter son propre Acte administratif"
-#: models.py:1071
+#: models.py:1073
msgid "Can change own Administrative act"
msgstr "Peut modifier son propre Acte administratif"
-#: models.py:1073
+#: models.py:1075
msgid "Can delete own Administrative act"
msgstr "Peut supprimer son propre Acte administratif"
-#: models.py:1176
+#: models.py:1178
msgid "This index already exists for this year"
msgstr "Cet index existe déjà pour cette année."
-#: models.py:1244
+#: models.py:1246
msgid "External ID"
msgstr "ID externe"
-#: models.py:1247
+#: models.py:1249
msgid "External ID is set automatically"
msgstr "L'identifiant externe est configuré automatiquement"
-#: models.py:1248
+#: models.py:1250
msgid "Address - Locality"
msgstr "Adresse - Lieu-dit"
-#: models.py:1444
+#: models.py:1446
msgid "Owner"
msgstr "Propriétaire"
-#: models.py:1452
+#: models.py:1454
msgid "Parcel owner"
msgstr "Propriétaire de parcelle"
-#: models.py:1453
+#: models.py:1455
msgid "Parcel owners"
msgstr "Propriétaires de parcelle"
-#: models.py:1479
+#: models.py:1481
msgid "Recorded"
msgstr "Enregistré"
-#: models.py:1480
+#: models.py:1482
msgid "Effective"
msgstr "Effectif"
-#: models.py:1481
+#: models.py:1483
msgid "Active"
msgstr "Actif"
-#: models.py:1482
+#: models.py:1484
msgid "Field completed"
msgstr "Terrain achevé"
-#: models.py:1483
+#: models.py:1485
msgid "Associated report"
msgstr "Rapport associé"
-#: models.py:1484
+#: models.py:1486
msgid "Closed"
msgstr "Clos"
-#: models.py:1485
+#: models.py:1487
msgid "Documented and closed"
msgstr "Documenté et clos"
-#: models.py:1919
+#: models.py:1921
msgid "Is preventive"
msgstr "Préventif"
-#: models.py:1922
+#: models.py:1924
msgid "Operation type old"
msgstr "Type d'opération - ancien"
-#: models.py:1923
+#: models.py:1925
msgid "Operation types old"
msgstr "Types d'opération - ancien"
diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po
index fa2157116..dc6c88863 100644
--- a/translations/fr/ishtar_common.po
+++ b/translations/fr/ishtar_common.po
@@ -12,7 +12,7 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2017-05-29 05:30-0400\n"
+"PO-Revision-Date: 2017-06-01 02:08-0400\n"
"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
@@ -140,31 +140,31 @@ msgstr ""
"Erreur de configuration de l'importeur : le champ \"{}\" n'existe pas pour "
"{}."
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "line"
msgstr "ligne"
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "col"
msgstr "colonne"
-#: data_importer.py:1559
+#: data_importer.py:1574
msgid "error"
msgstr "erreur"
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "field"
msgstr "champ"
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "source"
msgstr "source"
-#: data_importer.py:1565
+#: data_importer.py:1580
msgid "result"
msgstr "résultat"
-#: data_importer.py:1581
+#: data_importer.py:1596
#, python-format
msgid "\"%(value)s\" not in %(values)s"
msgstr "\"%(value)s\" n'est pas dans %(values)s"
@@ -197,12 +197,12 @@ msgstr "Vous devez sélectionner un élément."
msgid "Add a new item"
msgstr "Ajouter un nouvel élément"
-#: forms.py:297 models.py:1556
+#: forms.py:297 models.py:1558
msgid "Template"
msgstr "Patron"
#: forms_common.py:41 forms_common.py:59 forms_common.py:184
-#: forms_common.py:408 models.py:1622 models.py:3085
+#: forms_common.py:408 models.py:1624 models.py:3087
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:13
msgid "Town"
@@ -225,8 +225,8 @@ 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:68 forms_common.py:863 ishtar_menu.py:47 models.py:2685
-#: models.py:2878 models.py:2940 templates/ishtar/sheet_person.html:4
+#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2687
+#: models.py:2880 models.py:2942 templates/ishtar/sheet_person.html:4
msgid "Person"
msgstr "Personne"
@@ -239,64 +239,65 @@ msgstr ""
"pas possible."
#: forms_common.py:172 forms_common.py:329 forms_common.py:453
-#: ishtar_menu.py:75 models.py:2568 models.py:2659
+#: ishtar_menu.py:75 models.py:2570 models.py:2661
#: templates/ishtar/sheet_organization.html:4
msgid "Organization"
msgstr "Organisation"
#: forms_common.py:175 forms_common.py:212 forms_common.py:324
-#: forms_common.py:378 forms_common.py:448 models.py:1159 models.py:1555
-#: models.py:1824 models.py:1840 models.py:2078 models.py:2356 models.py:2562
-#: models.py:2671 models.py:3071 templates/ishtar/import_list.html:13
+#: forms_common.py:378 forms_common.py:448 models.py:1161 models.py:1557
+#: models.py:1826 models.py:1842 models.py:2080 models.py:2358 models.py:2564
+#: models.py:2673 models.py:3073 models.py:3170
+#: templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:8
#: templates/ishtar/sheet_organization.html:21
msgid "Name"
msgstr "Nom"
-#: forms_common.py:176 models.py:1777 models.py:2209
+#: forms_common.py:176 models.py:1779 models.py:2211
msgid "Organization type"
msgstr "Type d'organisation"
-#: forms_common.py:178 forms_common.py:402 models.py:1617
+#: forms_common.py:178 forms_common.py:402 models.py:1619
#: templates/ishtar/sheet_organization.html:10
msgid "Address"
msgstr "Adresse"
-#: forms_common.py:180 forms_common.py:405 models.py:1618
+#: forms_common.py:180 forms_common.py:405 models.py:1620
#: templates/ishtar/sheet_organization.html:11
msgid "Address complement"
msgstr "Complément d'adresse"
-#: forms_common.py:182 forms_common.py:406 models.py:1620
+#: forms_common.py:182 forms_common.py:406 models.py:1622
#: templates/ishtar/sheet_organization.html:12
msgid "Postal code"
msgstr "Code postal"
-#: forms_common.py:185 forms_common.py:409 models.py:1623
+#: forms_common.py:185 forms_common.py:409 models.py:1625
msgid "Country"
msgstr "Pays"
#: forms_common.py:187 forms_common.py:326 forms_common.py:382
-#: forms_common.py:450 forms_common.py:574 models.py:1650
+#: forms_common.py:450 forms_common.py:574 models.py:1652
msgid "Email"
msgstr "Courriel"
-#: forms_common.py:188 forms_common.py:385 models.py:1635
+#: forms_common.py:188 forms_common.py:385 models.py:1637
#: templates/ishtar/sheet_organization.html:14
#: templates/ishtar/sheet_person.html:21
#: templates/ishtar/wizard/wizard_person.html:17
msgid "Phone"
msgstr "Téléphone"
-#: forms_common.py:189 forms_common.py:394 models.py:1647
+#: forms_common.py:189 forms_common.py:394 models.py:1649
#: templates/ishtar/sheet_organization.html:15
#: templates/ishtar/sheet_person.html:39
#: templates/ishtar/wizard/wizard_person.html:35
msgid "Mobile phone"
msgstr "Téléphone portable"
-#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2247
-#: models.py:2564 models.py:3006 templates/sheet_ope.html:85
+#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2249
+#: models.py:2566 models.py:3008 templates/sheet_ope.html:85
#: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126
#: templates/ishtar/import_list.html:14
#: templates/ishtar/sheet_organization.html:23
@@ -320,7 +321,7 @@ msgstr "Fusionner tous les éléments dans"
msgid "Organization to merge"
msgstr "Organisation à fusionner"
-#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2669
+#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2671
#: templates/ishtar/sheet_organization.html:22
msgid "Surname"
msgstr "Prénom"
@@ -338,25 +339,25 @@ msgstr "Personne à fusionner"
msgid "Identity"
msgstr "Identité"
-#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2210
-#: models.py:2663 models.py:2665 models.py:3003 templates/sheet_ope.html:104
+#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2212
+#: models.py:2665 models.py:2667 models.py:3005 templates/sheet_ope.html:104
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Title"
msgstr "Titre"
-#: forms_common.py:374 models.py:2667
+#: forms_common.py:374 models.py:2669
msgid "Salutation"
msgstr "Formule d'appel"
-#: forms_common.py:380 models.py:2673
+#: forms_common.py:380 models.py:2675
msgid "Raw name"
msgstr "Nom brut"
-#: forms_common.py:383 models.py:1636
+#: forms_common.py:383 models.py:1638
msgid "Phone description"
msgstr "Type de téléphone"
-#: forms_common.py:386 models.py:1638 models.py:1640
+#: forms_common.py:386 models.py:1640 models.py:1642
msgid "Phone description 2"
msgstr "Type de téléphone 2"
@@ -364,11 +365,11 @@ msgstr "Type de téléphone 2"
msgid "Phone 2"
msgstr "Téléphone 2"
-#: forms_common.py:390 models.py:1644
+#: forms_common.py:390 models.py:1646
msgid "Phone description 3"
msgstr "Type de téléphone 3"
-#: forms_common.py:392 models.py:1642
+#: forms_common.py:392 models.py:1644
msgid "Phone 3"
msgstr "Téléphone 3"
@@ -376,23 +377,23 @@ msgstr "Téléphone 3"
msgid "Current organization"
msgstr "Organisation actuelle"
-#: forms_common.py:411 models.py:1625
+#: forms_common.py:411 models.py:1627
msgid "Other address: address"
msgstr "Autre adresse : adresse"
-#: forms_common.py:414 models.py:1628
+#: forms_common.py:414 models.py:1630
msgid "Other address: address complement"
msgstr "Autre adresse : complément d'adresse"
-#: forms_common.py:416 models.py:1629
+#: forms_common.py:416 models.py:1631
msgid "Other address: postal code"
msgstr "Autre adresse : code postal"
-#: forms_common.py:418 models.py:1631
+#: forms_common.py:418 models.py:1633
msgid "Other address: town"
msgstr "Autre adresse : ville"
-#: forms_common.py:420 models.py:1633
+#: forms_common.py:420 models.py:1635
msgid "Other address: country"
msgstr "Autre adresse : pays"
@@ -408,7 +409,7 @@ msgstr "Nom d'utilisateur"
msgid "Account search"
msgstr "Rechercher un compte"
-#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2616
+#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2618
msgid "Person type"
msgstr "Type de personne"
@@ -440,7 +441,7 @@ msgstr "Ce nom d'utilisateur existe déjà."
msgid "Send the new password by email?"
msgstr "Envoyer le nouveau mot de passe par courriel ?"
-#: forms_common.py:636 forms_common.py:649 models.py:3086
+#: forms_common.py:636 forms_common.py:649 models.py:3088
msgid "Towns"
msgstr "Communes"
@@ -456,7 +457,7 @@ msgstr "Seul un choix peut être coché."
msgid "Documentation informations"
msgstr "Information sur le document"
-#: forms_common.py:783 forms_common.py:831 models.py:2211 models.py:2978
+#: forms_common.py:783 forms_common.py:831 models.py:2213 models.py:2980
msgid "Source type"
msgstr "Type de document"
@@ -468,37 +469,37 @@ msgstr "Référence"
msgid "Internal reference"
msgstr "Référence interne"
-#: forms_common.py:791 models.py:3017
+#: forms_common.py:791 models.py:3019
msgid "Numerical ressource (web address)"
msgstr "Ressource numérique (adresse web)"
-#: forms_common.py:792 models.py:3019
+#: forms_common.py:792 models.py:3021
msgid "Receipt date"
msgstr "Date de réception"
-#: forms_common.py:794 models.py:2382 models.py:3021
+#: forms_common.py:794 models.py:2384 models.py:3023
msgid "Creation date"
msgstr "Date de création"
-#: forms_common.py:797 models.py:3024
+#: forms_common.py:797 models.py:3026
msgid "Receipt date in documentation"
msgstr "Date de réception en documentation"
-#: forms_common.py:799 forms_common.py:835 models.py:419 models.py:746
-#: models.py:2105 models.py:2677 models.py:3031
+#: forms_common.py:799 forms_common.py:835 models.py:421 models.py:748
+#: models.py:2107 models.py:2679 models.py:3033
msgid "Comment"
msgstr "Commentaire"
-#: forms_common.py:801 forms_common.py:834 models.py:1161 models.py:1844
-#: models.py:2032 models.py:2079 models.py:3030 templates/sheet_ope.html:128
+#: forms_common.py:801 forms_common.py:834 models.py:1163 models.py:1846
+#: models.py:2034 models.py:2081 models.py:3032 templates/sheet_ope.html:128
msgid "Description"
msgstr "Description"
-#: forms_common.py:804 models.py:3032
+#: forms_common.py:804 models.py:3034
msgid "Additional information"
msgstr "Information supplémentaire"
-#: forms_common.py:806 forms_common.py:838 models.py:3034
+#: forms_common.py:806 forms_common.py:838 models.py:3036
msgid "Has a duplicate"
msgstr "Existe en doublon"
@@ -515,7 +516,7 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2945
+#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2947
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr "Auteur"
@@ -528,7 +529,7 @@ msgstr "Informations supplémentaires"
msgid "Would you like to delete this documentation?"
msgstr "Voulez-vous supprimer ce document ?"
-#: forms_common.py:864 models.py:2212 models.py:2932 models.py:2942
+#: forms_common.py:864 models.py:2214 models.py:2934 models.py:2944
msgid "Author type"
msgstr "Type d'auteur"
@@ -540,7 +541,7 @@ msgstr "Sélection d'auteur"
msgid "There are identical authors."
msgstr "Il y a des auteurs identiques."
-#: forms_common.py:901 models.py:2946 models.py:3013
+#: forms_common.py:901 models.py:2948 models.py:3015
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:9
msgid "Authors"
@@ -558,7 +559,7 @@ msgstr "Ajout/modification"
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:39 models.py:1338 views.py:1648
+#: ishtar_menu.py:39 models.py:1340 views.py:1648
msgid "Global variables"
msgstr "Variables globales"
@@ -586,7 +587,7 @@ msgstr "Fusion automatique"
msgid "Manual merge"
msgstr "Fusion manuelle"
-#: ishtar_menu.py:109 models.py:2390
+#: ishtar_menu.py:109 models.py:2392
msgid "Imports"
msgstr "Imports"
@@ -602,115 +603,115 @@ msgstr "Imports en cours"
msgid "Old imports"
msgstr "Anciens imports"
-#: models.py:224
+#: models.py:226
msgid "Not a valid item."
msgstr "Élément invalide."
-#: models.py:239
+#: models.py:241
msgid "A selected item is not a valid item."
msgstr "Un élément sélectionné n'est pas valide."
-#: models.py:250
+#: models.py:252
msgid "This item already exists."
msgstr "Cet élément existe déjà."
-#: models.py:415 models.py:745 models.py:1590 models.py:1602 models.py:2028
+#: models.py:417 models.py:747 models.py:1592 models.py:1604 models.py:2030
msgid "Label"
msgstr "Libellé"
-#: models.py:417
+#: models.py:419
msgid "Textual ID"
msgstr "Identifiant textuel"
-#: models.py:420 models.py:748 models.py:1559
+#: models.py:422 models.py:750 models.py:1561
msgid "Available"
msgstr "Disponible"
-#: models.py:772 models.py:2151
+#: models.py:774 models.py:2153
msgid "Key"
msgstr "Clé"
-#: models.py:778
+#: models.py:780
msgid "Specific key to an import"
msgstr "Clé spécifique à un import"
-#: models.py:874
+#: models.py:876
msgid "Last editor"
msgstr "Dernier éditeur"
-#: models.py:877
+#: models.py:879
msgid "Creator"
msgstr "Créateur"
-#: models.py:1019 models.py:2929 models.py:3097 models.py:3153
+#: models.py:1021 models.py:2931 models.py:3099 models.py:3155
msgid "Order"
msgstr "Ordre"
-#: models.py:1020
+#: models.py:1022
msgid "Symmetrical"
msgstr "Symétrique"
-#: models.py:1021
+#: models.py:1023
msgid "Tiny label"
msgstr "Libellé court"
-#: models.py:1035
+#: models.py:1037
msgid "Cannot have symmetrical and an inverse_relation"
msgstr "Ne peut pas être symétrique et avoir une relation inverse"
-#: models.py:1151
+#: models.py:1153
msgid "Euro"
msgstr "Euro"
-#: models.py:1152
+#: models.py:1154
msgid "US dollar"
msgstr "Dollar US"
-#: models.py:1153 views.py:1446 views.py:1508
+#: models.py:1155 views.py:1446 views.py:1508
msgid "Operations"
msgstr "Opérations"
-#: models.py:1154 views.py:1448 views.py:1512
+#: models.py:1156 views.py:1448 views.py:1512
msgid "Context records"
msgstr "Unités d'Enregistrement"
-#: models.py:1160 models.py:1842
+#: models.py:1162 models.py:1844
msgid "Slug"
msgstr "Identifiant texte"
-#: models.py:1163
+#: models.py:1165
msgid "CSS color code for base module"
msgstr "Code couleur CSS pour le tronc commun"
-#: models.py:1165
+#: models.py:1167
msgid "Files module"
msgstr "Module Dossiers"
-#: models.py:1167
+#: models.py:1169
msgid "CSS color code for files module"
msgstr "Code couleur CSS pour le module Dossier"
-#: models.py:1169
+#: models.py:1171
msgid "Context records module"
msgstr "Module Unités d'Enregistrement"
-#: models.py:1172
+#: models.py:1174
msgid "CSS color code for context record module"
msgstr "Code couleur CSS pour le module Unité d'Enregistrement"
-#: models.py:1174
+#: models.py:1176
msgid "Finds module"
msgstr "Module Mobilier"
-#: models.py:1175
+#: models.py:1177
msgid "Need context records module"
msgstr "Nécessite le module Unités d'Enregistrement"
-#: models.py:1177
+#: models.py:1179
msgid "Find index is based on"
msgstr "Index mobilier basé sur"
-#: models.py:1179
+#: models.py:1181
msgid ""
"To prevent irrelevant indexes, change this parameter only if there is no "
"find in the database"
@@ -718,35 +719,35 @@ msgstr ""
"Pour éviter des index non pertinents, ne changer ce paramètre seulement si "
"il n'y a pas encore de mobilier dans cette base de données"
-#: models.py:1182
+#: models.py:1184
msgid "CSS color code for find module"
msgstr "Code couleur CSS pour le module Mobilier"
-#: models.py:1185
+#: models.py:1187
msgid "Warehouses module"
msgstr "Module Dépôts"
-#: models.py:1186
+#: models.py:1188
msgid "Need finds module"
msgstr "Nécessite le module mobilier"
-#: models.py:1188
+#: models.py:1190
msgid "CSS code for warehouse module"
msgstr "Code couleur CSS pour le module Dépôt"
-#: models.py:1190
+#: models.py:1192
msgid "Mapping module"
msgstr "Module cartographique"
-#: models.py:1192
+#: models.py:1194
msgid "CSS code for mapping module"
msgstr "Code couleur CSS pour le module cartographique"
-#: models.py:1195
+#: models.py:1197
msgid "Home page"
msgstr "Page d'accueil"
-#: models.py:1196
+#: models.py:1198
#, python-brace-format
msgid ""
"Homepage of Ishtar - if not defined a default homepage will appear. Use the "
@@ -756,11 +757,11 @@ msgstr ""
"défaut apparaît. Utiliser la syntaxe Markdown. {random_image} peut être "
"utilisé pour afficher une image au hasard."
-#: models.py:1200
+#: models.py:1202
msgid "File external id"
msgstr "Identifiant externe de fichier"
-#: models.py:1202
+#: models.py:1204
msgid ""
"Formula to manage file external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
@@ -770,11 +771,11 @@ msgstr ""
"précaution. Une formule incorrecte peut rendre l'application inutilisable et "
"l'import de données externes peut alors être destructif."
-#: models.py:1207
+#: models.py:1209
msgid "Parcel external id"
msgstr "Identifiant externe de parcelle"
-#: models.py:1210
+#: models.py:1212
msgid ""
"Formula to manage parcel external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
@@ -784,11 +785,11 @@ msgstr ""
"précaution. Une formule incorrecte peut rendre l'application inutilisable et "
"l'import de données externes peut alors être destructif."
-#: models.py:1215
+#: models.py:1217
msgid "Context record external id"
msgstr "Identifiant externe d'unité d'enregistrement"
-#: models.py:1217
+#: models.py:1219
msgid ""
"Formula to manage context record external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
@@ -798,11 +799,11 @@ msgstr ""
"manipuler avec précaution. Une formule incorrecte peut rendre l'application "
"inutilisable et l'import de données externes peut alors être destructif."
-#: models.py:1222
+#: models.py:1224
msgid "Base find external id"
msgstr "Identifiant externe de mobilier de base"
-#: models.py:1224
+#: models.py:1226
msgid ""
"Formula to manage base find external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
@@ -812,11 +813,11 @@ msgstr ""
"manipuler avec précaution. Une formule incorrecte peut rendre l'application "
"inutilisable et l'import de données externes peut alors être destructif."
-#: models.py:1229
+#: models.py:1231
msgid "Find external id"
msgstr "Identifiant externe de mobilier"
-#: models.py:1231
+#: models.py:1233
msgid ""
"Formula to manage find external ID. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
@@ -826,11 +827,11 @@ msgstr ""
"précaution. Une formule incorrecte peut rendre l'application inutilisable et "
"l'import de données externes peut alors être destructif."
-#: models.py:1236
+#: models.py:1238
msgid "Container external id"
msgstr "ID externe du contenant"
-#: models.py:1238
+#: models.py:1240
msgid ""
"Formula to manage container external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
@@ -840,11 +841,11 @@ msgstr ""
"précaution. Une formule incorrecte peut rendre l'application inutilisable et "
"l'import de données externes peut alors être destructif."
-#: models.py:1243
+#: models.py:1245
msgid "Warehouse external id"
msgstr "ID externe du dépôt"
-#: models.py:1245
+#: models.py:1247
msgid ""
"Formula to manage warehouse external ID. Change this with care. With "
"incorrect formula, the application might be unusable and import of external "
@@ -854,11 +855,11 @@ msgstr ""
"précaution. Une formule incorrecte peut rendre l'application inutilisable et "
"l'import de données externes peut alors être destructif."
-#: models.py:1250
+#: models.py:1252
msgid "Raw name for person"
msgstr "Nom brut pour une personne"
-#: models.py:1252
+#: models.py:1254
msgid ""
"Formula to manage person raw_name. Change this with care. With incorrect "
"formula, the application might be unusable and import of external data can "
@@ -868,43 +869,43 @@ msgstr ""
"Une formule incorrecte peut rendre l'application inutilisable et l'import de "
"données externes peut alors être destructif."
-#: models.py:1256
+#: models.py:1258
msgid "Current active"
msgstr "Actuellement utilisé"
-#: models.py:1257
+#: models.py:1259
msgid "Currency"
msgstr "Devise"
-#: models.py:1261
+#: models.py:1263
msgid "Ishtar site profile"
msgstr "Profil d'instance Ishtar"
-#: models.py:1262
+#: models.py:1264
msgid "Ishtar site profiles"
msgstr "Profils d'instance Ishtar"
-#: models.py:1331
+#: models.py:1333
msgid "Variable name"
msgstr "Nom de la variable"
-#: models.py:1332
+#: models.py:1334
msgid "Description of the variable"
msgstr "Description de la variable"
-#: models.py:1334 models.py:2152
+#: models.py:1336 models.py:2154
msgid "Value"
msgstr "Valeur"
-#: models.py:1337
+#: models.py:1339
msgid "Global variable"
msgstr "Variable globale"
-#: models.py:1460 models.py:1490
+#: models.py:1462 models.py:1492
msgid "Total"
msgstr "Total"
-#: models.py:1467 models.py:1591 models.py:1603
+#: models.py:1469 models.py:1593 models.py:1605
#: templates/ishtar/sheet_person.html:24
#: templates/ishtar/dashboards/dashboard_main_detail.html:141
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
@@ -912,135 +913,135 @@ msgstr "Total"
msgid "Number"
msgstr "Nombre"
-#: models.py:1554
+#: models.py:1556
msgid "Administrative Act"
msgstr "Acte administratif"
-#: models.py:1558
+#: models.py:1560
msgid "Associated object"
msgstr "Objet associé"
-#: models.py:1562
+#: models.py:1564
msgid "Document template"
msgstr "Patron de document"
-#: models.py:1563
+#: models.py:1565
msgid "Document templates"
msgstr "Patrons de document"
-#: models.py:1594 models.py:1604 models.py:2376
+#: models.py:1596 models.py:1606 models.py:2378 models.py:3193
msgid "State"
msgstr "État"
-#: models.py:1608 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1610 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr "Département"
-#: models.py:1609
+#: models.py:1611
msgid "Departments"
msgstr "Départements"
-#: models.py:1646
+#: models.py:1648
msgid "Raw phone"
msgstr "Téléphone brut"
-#: models.py:1652
+#: models.py:1654
msgid "Alternative address is prefered"
msgstr "L'adresse alternative est préférée"
-#: models.py:1691
+#: models.py:1693
msgid "Tel: "
msgstr "Tél :"
-#: models.py:1695
+#: models.py:1697
msgid "Mobile: "
msgstr "Mobile :"
-#: models.py:1699
+#: models.py:1701
msgid "Email: "
msgstr "Courriel :"
-#: models.py:1704
+#: models.py:1706
msgid "Merge key"
msgstr "Clé de fusion"
-#: models.py:1778
+#: models.py:1780
msgid "Organization types"
msgstr "Types d'organisation"
-#: models.py:1825
+#: models.py:1827
msgid "Class name"
msgstr "Nom de la classe"
-#: models.py:1828
+#: models.py:1830
msgid "Importer - Model"
msgstr "Importeur - Modèle"
-#: models.py:1829
+#: models.py:1831
msgid "Importer - Models"
msgstr "Importeur - Modèles"
-#: models.py:1846 templates/ishtar/dashboards/dashboard_main.html:34
+#: models.py:1848 templates/ishtar/dashboards/dashboard_main.html:34
msgid "Users"
msgstr "Utilisateurs"
-#: models.py:1849
+#: models.py:1851
msgid "Associated model"
msgstr "Modèle associé"
-#: models.py:1852
+#: models.py:1854
msgid "Models that can accept new items"
msgstr "Modèles qui peuvent accepter de nouveaux éléments"
-#: models.py:1853
+#: models.py:1855
msgid "Leave blank for no restrictions"
msgstr "Laissez vide pour aucune restriction"
-#: models.py:1855
+#: models.py:1857
msgid "Is template"
msgstr "Est un patron"
-#: models.py:1856
+#: models.py:1858
msgid "Unicity keys (separator \";\")"
msgstr "Clés d'unicité (séparateur « ; »)"
-#: models.py:1860
+#: models.py:1862
msgid "Importer - Type"
msgstr "Importeur - Type"
-#: models.py:1861
+#: models.py:1863
msgid "Importer - Types"
msgstr "Importeur - Types"
-#: models.py:1960
+#: models.py:1962
msgid "Importer - Default"
msgstr "Importeur - Par défaut"
-#: models.py:1961
+#: models.py:1963
msgid "Importer - Defaults"
msgstr "Importeur - Par défaut"
-#: models.py:1996
+#: models.py:1998
msgid "Importer - Default value"
msgstr "Importeur - Valeur par défaut"
-#: models.py:1997
+#: models.py:1999
msgid "Importer - Default values"
msgstr "Importeur - Valeurs par défaut"
-#: models.py:2031
+#: models.py:2033
msgid "Column number"
msgstr "Numéro de colonne"
-#: models.py:2034
+#: models.py:2036
msgid "Required"
msgstr "Requis"
-#: models.py:2036
+#: models.py:2038
msgid "Export field name"
msgstr "Exporter le nom du champ"
-#: models.py:2037
+#: models.py:2039
msgid ""
"Fill this field if the field name is ambiguous for export. For instance: "
"concatenated fields."
@@ -1048,534 +1049,601 @@ msgstr ""
"Remplir ce champ si le nom du champ est ambigu pour l'export, par exemple "
"dans le cas de champs concaténés."
-#: models.py:2042
+#: models.py:2044
msgid "Importer - Column"
msgstr "Importeur - Colonne"
-#: models.py:2043
+#: models.py:2045
msgid "Importer - Columns"
msgstr "Importeur - Colonnes"
-#: models.py:2063
+#: models.py:2065
msgid "Field name"
msgstr "Nom du champ"
-#: models.py:2065 models.py:2099
+#: models.py:2067 models.py:2101
msgid "Force creation of new items"
msgstr "Forcer la création de nouveaux éléments"
-#: models.py:2067 models.py:2101
+#: models.py:2069 models.py:2103
msgid "Concatenate with existing"
msgstr "Concaténer avec l'existant"
-#: models.py:2069 models.py:2103
+#: models.py:2071 models.py:2105
msgid "Concatenate character"
msgstr "Caractère de concaténation"
-#: models.py:2073
+#: models.py:2075
msgid "Importer - Duplicate field"
msgstr "Importeur - Champ dupliqué"
-#: models.py:2074
+#: models.py:2076
msgid "Importer - Duplicate fields"
msgstr "Importeur - Champs dupliqués"
-#: models.py:2081
+#: models.py:2083
msgid "Regular expression"
msgstr "Expression régulière"
-#: models.py:2084
+#: models.py:2086
msgid "Importer - Regular expression"
msgstr "Importeur - Expression régulière"
-#: models.py:2085
+#: models.py:2087
msgid "Importer - Regular expressions"
msgstr "Importeur - Expressions régulières"
-#: models.py:2108
+#: models.py:2110
msgid "Importer - Target"
msgstr "Importeur - Cible"
-#: models.py:2109
+#: models.py:2111
msgid "Importer - Targets"
msgstr "Importeur - Cibles"
-#: models.py:2133 views.py:578
+#: models.py:2135 views.py:578
msgid "True"
msgstr "Oui"
-#: models.py:2134 views.py:580
+#: models.py:2136 views.py:580
msgid "False"
msgstr "Non"
-#: models.py:2153
+#: models.py:2155
msgid "Is set"
msgstr "Est défini"
-#: models.py:2160
+#: models.py:2162
msgid "Importer - Target key"
msgstr "Importeur - Clé de rapprochement"
-#: models.py:2161
+#: models.py:2163
msgid "Importer - Targets keys"
msgstr "Importeur - Clés de rapprochement"
-#: models.py:2213 models.py:3009
+#: models.py:2215 models.py:3011
msgid "Format"
msgstr "Format"
-#: models.py:2214 models.py:3101
+#: models.py:2216 models.py:3103
msgid "Operation type"
msgstr "Type d'opération"
-#: models.py:2215
+#: models.py:2217
msgid "Period"
msgstr "Période"
-#: models.py:2216
+#: models.py:2218
msgid "Report state"
msgstr "État de rapport"
-#: models.py:2217
+#: models.py:2219
msgid "Remain type"
msgstr "Type de vestige"
-#: models.py:2218
+#: models.py:2220
msgid "Unit"
msgstr "Unité"
-#: models.py:2220
+#: models.py:2222
msgid "Activity type"
msgstr "Type d'activité"
-#: models.py:2221
+#: models.py:2223
msgid "Material"
msgstr "Matériau"
-#: models.py:2223
+#: models.py:2225
msgid "Conservatory state"
msgstr "État de conservation"
-#: models.py:2224
+#: models.py:2226
msgid "Container type"
msgstr "Type de contenant"
-#: models.py:2225
+#: models.py:2227
msgid "Preservation type"
msgstr "Type de conservation"
-#: models.py:2226
+#: models.py:2228
msgid "Object type"
msgstr "Type d'objet"
-#: models.py:2227
+#: models.py:2229
msgid "Integrity type"
msgstr "Type d'intégrité"
-#: models.py:2229
+#: models.py:2231
msgid "Remarkability type"
msgstr "Type de remarquabilité"
-#: models.py:2230
+#: models.py:2232
msgid "Batch type"
msgstr "Type de lot"
-#: models.py:2232
+#: models.py:2234
msgid "Identification type"
msgstr "Type d'identification"
-#: models.py:2234
+#: models.py:2236
msgid "Context record relation type"
msgstr "Type de relations entre Unités d'Enregistrement"
-#: models.py:2235 models.py:3159
+#: models.py:2237 models.py:3161
msgid "Spatial reference system"
msgstr "Système de référence spatiale"
-#: models.py:2236 models.py:2987
+#: models.py:2238 models.py:2989
msgid "Support type"
msgstr "Type de support"
-#: models.py:2237 models.py:2628
+#: models.py:2239 models.py:2630
msgid "Title type"
msgstr "Type de titre"
-#: models.py:2243
+#: models.py:2245
msgid "Integer"
msgstr "Entier"
-#: models.py:2244
+#: models.py:2246
msgid "Float"
msgstr "Nombre à virgule"
-#: models.py:2245
+#: models.py:2247
msgid "String"
msgstr "Chaîne de caractères"
-#: models.py:2246 templates/sheet_ope.html:86
+#: models.py:2248 templates/sheet_ope.html:86
msgid "Date"
msgstr "Date"
-#: models.py:2248 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:2250 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/dashboards/dashboard_main_detail.html:126
msgid "Year"
msgstr "Année"
-#: models.py:2249
+#: models.py:2251
msgid "String to boolean"
msgstr "Chaîne de caractères vers booléen"
-#: models.py:2250
+#: models.py:2252
msgctxt "filesystem"
msgid "File"
msgstr "Fichier"
-#: models.py:2251
+#: models.py:2253
msgid "Unknow type"
msgstr "Type inconnu"
-#: models.py:2267
+#: models.py:2269
msgid "4 digit year. e.g.: \"2015\""
msgstr "Année sur 4 chiffres. Exemple : « 2015 »"
-#: models.py:2268
+#: models.py:2270
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:2269
+#: models.py:2271
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:2279
+#: models.py:2281
msgid "Options"
msgstr "Options"
-#: models.py:2281
+#: models.py:2283
msgid "Split character(s)"
msgstr "Caractère(s) de séparation"
-#: models.py:2285
+#: models.py:2287
msgid "Importer - Formater type"
msgstr "Importeur - Type de mise en forme"
-#: models.py:2286
+#: models.py:2288
msgid "Importer - Formater types"
msgstr "Importeur - Types de mise en forme"
-#: models.py:2338 templates/ishtar/dashboards/dashboard_main_detail.html:63
+#: models.py:2340 templates/ishtar/dashboards/dashboard_main_detail.html:63
msgid "Created"
msgstr "Créé"
-#: models.py:2339
+#: models.py:2341
msgid "Analyse in progress"
msgstr "Analyse en cours"
-#: models.py:2340
+#: models.py:2342
msgid "Analysed"
msgstr "Analysé"
-#: models.py:2341
+#: models.py:2343
msgid "Import pending"
msgstr "Import en attente"
-#: models.py:2342
+#: models.py:2344
msgid "Import in progress"
msgstr "Import en cours"
-#: models.py:2343
+#: models.py:2345 models.py:3184
msgid "Finished with errors"
msgstr "Terminé avec des erreurs"
-#: models.py:2344
+#: models.py:2346 models.py:3185
msgid "Finished"
msgstr "Terminé"
-#: models.py:2345
+#: models.py:2347
msgid "Archived"
msgstr "Archivé"
-#: models.py:2360
+#: models.py:2362
msgid "Imported file"
msgstr "Fichier importé"
-#: models.py:2362
+#: models.py:2364
msgid "Associated images (zip file)"
msgstr "Images associées (fichier zip)"
-#: models.py:2364
+#: models.py:2366
msgid "Encoding"
msgstr "Codage"
-#: models.py:2366
+#: models.py:2368
msgid "Skip lines"
msgstr "Nombre de lignes d'entête"
-#: models.py:2367 templates/ishtar/import_list.html:51
+#: models.py:2369 templates/ishtar/import_list.html:51
msgid "Error file"
msgstr "Fichier erreur"
-#: models.py:2370
+#: models.py:2372
msgid "Result file"
msgstr "Fichier résultant"
-#: models.py:2373 templates/ishtar/import_list.html:57
+#: models.py:2375 templates/ishtar/import_list.html:57
msgid "Match file"
msgstr "Fichier de correspondance"
-#: models.py:2379
+#: models.py:2381
msgid "Conservative import"
msgstr "Import conservateur"
-#: models.py:2383
+#: models.py:2385
msgid "End date"
msgstr "Date de fin"
-#: models.py:2386
+#: models.py:2388
msgid "Remaining seconds"
msgstr "Secondes restantes"
-#: models.py:2389
+#: models.py:2391
msgid "Import"
msgstr "Import"
-#: models.py:2418
+#: models.py:2420
msgid "Analyse"
msgstr "Analyser"
-#: models.py:2420 models.py:2423
+#: models.py:2422 models.py:2425
msgid "Re-analyse"
msgstr "Analyser de nouveau "
-#: models.py:2421
+#: models.py:2423
msgid "Launch import"
msgstr "Lancer l'import"
-#: models.py:2424
+#: models.py:2426
msgid "Re-import"
msgstr "Ré-importer"
-#: models.py:2425
+#: models.py:2427
msgid "Archive"
msgstr "Archiver"
-#: models.py:2427
+#: models.py:2429
msgid "Unarchive"
msgstr "Désarchiver"
-#: models.py:2428 widgets.py:198 templates/ishtar/form_delete.html:11
+#: models.py:2430 widgets.py:198 templates/ishtar/form_delete.html:11
msgid "Delete"
msgstr "Supprimer"
-#: models.py:2569
+#: models.py:2571
msgid "Organizations"
msgstr "Organisations"
-#: models.py:2571
+#: models.py:2573
msgid "Can view all Organizations"
msgstr "Peut voir toutes les Organisations"
-#: models.py:2572
+#: models.py:2574
msgid "Can view own Organization"
msgstr "Peut voir sa propre Organisation"
-#: models.py:2573
+#: models.py:2575
msgid "Can add own Organization"
msgstr "Peut ajouter sa propre Organisation"
-#: models.py:2575
+#: models.py:2577
msgid "Can change own Organization"
msgstr "Peut modifier sa propre Organisation"
-#: models.py:2577
+#: models.py:2579
msgid "Can delete own Organization"
msgstr "Peut supprimer sa propre Organisation"
-#: models.py:2612
+#: models.py:2614
msgid "Groups"
msgstr "Groupes"
-#: models.py:2617
+#: models.py:2619
msgid "Person types"
msgstr "Types de personne"
-#: models.py:2629
+#: models.py:2631
msgid "Title types"
msgstr "Types de titre"
-#: models.py:2638
+#: models.py:2640
msgid "Mr"
msgstr "M."
-#: models.py:2639
+#: models.py:2641
msgid "Miss"
msgstr "Mlle"
-#: models.py:2640
+#: models.py:2642
msgid "Mr and Mrs"
msgstr "M. et Mme"
-#: models.py:2641
+#: models.py:2643
msgid "Mrs"
msgstr "Mme"
-#: models.py:2642
+#: models.py:2644
msgid "Doctor"
msgstr "Dr."
-#: models.py:2675
+#: models.py:2677
msgid "Contact type"
msgstr "Type de contact"
-#: models.py:2678 models.py:2742
+#: models.py:2680 models.py:2744
msgid "Types"
msgstr "Types"
-#: models.py:2681
+#: models.py:2683
msgid "Is attached to"
msgstr "Est rattaché à"
-#: models.py:2686
+#: models.py:2688
msgid "Persons"
msgstr "Personnes"
-#: models.py:2688
+#: models.py:2690
msgid "Can view all Persons"
msgstr "Peut voir toutes les Personnes"
-#: models.py:2689
+#: models.py:2691
msgid "Can view own Person"
msgstr "Peut voir sa propre Personne"
-#: models.py:2690
+#: models.py:2692
msgid "Can add own Person"
msgstr "Peut ajouter sa propre Personne"
-#: models.py:2691
+#: models.py:2693
msgid "Can change own Person"
msgstr "Peut modifier sa propre Personne"
-#: models.py:2692
+#: models.py:2694
msgid "Can delete own Person"
msgstr "Peut supprimer sa propre Personne"
-#: models.py:2881
+#: models.py:2883
msgid "Advanced shortcut menu"
msgstr "Menu de raccourci (avancé)"
-#: models.py:2884
+#: models.py:2886
msgid "Ishtar user"
msgstr "Utilisateur d'Ishtar"
-#: models.py:2885
+#: models.py:2887
msgid "Ishtar users"
msgstr "Utilisateurs d'Ishtar"
-#: models.py:2925
+#: models.py:2927
msgid "To modify the password use the form in Auth > User"
msgstr ""
"Pour modifier le mot de passe, utilisez le formulaire dans Authentification "
"> Utilisateurs"
-#: models.py:2933
+#: models.py:2935
msgid "Author types"
msgstr "Types d'auteur"
-#: models.py:2950
+#: models.py:2952
msgid "Can view all Authors"
msgstr "Peut voir tous les Auteurs"
-#: models.py:2952
+#: models.py:2954
msgid "Can view own Author"
msgstr "Peut voir son propre Auteur"
-#: models.py:2954
+#: models.py:2956
msgid "Can add own Author"
msgstr "Peut ajouter son propre Auteur"
-#: models.py:2956
+#: models.py:2958
msgid "Can change own Author"
msgstr "Peut modifier son propre Auteur"
-#: models.py:2958
+#: models.py:2960
msgid "Can delete own Author"
msgstr "Peut supprimer son propre Auteur"
-#: models.py:2979
+#: models.py:2981
msgid "Source types"
msgstr "Types de document"
-#: models.py:2988
+#: models.py:2990
msgid "Support types"
msgstr "Types de support"
-#: models.py:2995
+#: models.py:2997
msgid "Format type"
msgstr "Type de format"
-#: models.py:2996
+#: models.py:2998
msgid "Format types"
msgstr "Types de format"
-#: models.py:3004
+#: models.py:3006
msgid "External ID"
msgstr "Identifiant externe"
-#: models.py:3007
+#: models.py:3009
msgid "Support"
msgstr "Support"
-#: models.py:3011
+#: models.py:3013
msgid "Scale"
msgstr "Échelle"
-#: models.py:3025
+#: models.py:3027
msgid "Item number"
msgstr "Numéro d'élément"
-#: models.py:3026
+#: models.py:3028
msgid "Ref."
msgstr "Réf."
-#: models.py:3029
+#: models.py:3031
msgid "Internal ref."
msgstr "Réf. interne"
-#: models.py:3072
+#: models.py:3074
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:3073 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:3075 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Localisation"
-#: models.py:3098
+#: models.py:3100
msgid "Is preventive"
msgstr "Est du préventif"
-#: models.py:3102
+#: models.py:3104
msgid "Operation types"
msgstr "Types d'opération"
-#: models.py:3131
+#: models.py:3133
msgid "Preventive"
msgstr "Préventif"
-#: models.py:3132
+#: models.py:3134
msgid "Research"
msgstr "Programmé"
-#: models.py:3155
+#: models.py:3157
msgid "Authority name"
msgstr "Registre"
-#: models.py:3156
+#: models.py:3158
msgid "Authority SRID"
msgstr "SRID"
-#: models.py:3160
+#: models.py:3162
msgid "Spatial reference systems"
msgstr "Systèmes de référence spatiale"
+#: models.py:3169
+msgid "Filename"
+msgstr "Nom de fichier"
+
+#: models.py:3174
+msgid "Administration script"
+msgstr "Script d'administration"
+
+#: models.py:3175
+msgid "Administration scripts"
+msgstr "Scripts d'administration"
+
+#: models.py:3182
+msgid "Scheduled"
+msgstr "Planifié"
+
+#: models.py:3183
+msgid "In progress"
+msgstr "En cours"
+
+#: models.py:3198
+msgid "Result"
+msgstr "Résultat"
+
+#: models.py:3201
+msgid "Administration task"
+msgstr "Tâche d'administration"
+
+#: models.py:3202
+msgid "Administration tasks"
+msgstr "Tâches d'administration"
+
+#: models.py:3206
+msgid "Unknown"
+msgstr "Inconnu"
+
+#: models.py:3221
+msgid ""
+"ISHTAR_SCRIPT_DIR is not set in your local_settings. Contact your "
+"administrator."
+msgstr ""
+"ISHTAR_SCRIPT_DIR n'est pas défini dans votre fichier local_settings. "
+"Contactez votre administrateur."
+
+#: models.py:3230
+msgid ""
+"Your ISHTAR_SCRIPT_DIR is containing dots \"..\". As it can refer to "
+"relative paths, it can be a security issue and this is not allowed. Only put "
+"a full path."
+msgstr ""
+"La variable ISHTAR_SCRIPT_DIR contient des points « .. ». Comme cela peut "
+"correspondre à un chemin relatif, il est possible que cela puisse poser un "
+"problème de sécurité et cela n'est pas permis. Seul un chemin complet est "
+"permis."
+
+#: models.py:3241
+msgid "Your ISHTAR_SCRIPT_DIR: \"{}\" is not a valid directory."
+msgstr "ISHTAR_SCRIPT_DIR: « {} » n'est pas un répertoire valable."
+
+#: models.py:3257
+msgid ""
+"Script \"{}\" is not available in your script directory. Check your "
+"configuration."
+msgstr ""
+"Le script « {} »n'est pas un fichier valable de votre répertoire de script. "
+"Vérifiez votre configuration."
+
#: utils.py:100
msgid " (...)"
msgstr " (...)"
diff --git a/version.py b/version.py
index 3f6b5cc62..9218f4cb4 100644
--- a/version.py
+++ b/version.py
@@ -1,5 +1,5 @@
-# 1.99.1
-VERSION = (1, 99, 1, 1)
+# 1.99.2
+VERSION = (1, 99, 2)
def get_version():