summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
committerÉtienne Loks <etienne.loks@proxience.com>2016-01-10 15:35:51 +0100
commit9de20f503852855b5dda8723693c5d156232d16d (patch)
tree8d8e7c09faf179b2fed07878d1cf450a245a78d0
parent5e0b683ccc3851a4092e4d459a43fb557299d47e (diff)
parent23622f70dc4b6b544dcd99994e46ea20ff309777 (diff)
downloadIshtar-9de20f503852855b5dda8723693c5d156232d16d.tar.bz2
Ishtar-9de20f503852855b5dda8723693c5d156232d16d.zip
Merge branch 'master' into master-land-planner-2999
-rw-r--r--archaeological_context_records/forms.py34
-rw-r--r--archaeological_context_records/locale/django.pot194
-rw-r--r--archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py586
-rw-r--r--archaeological_context_records/models.py4
-rw-r--r--archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html11
-rw-r--r--archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html18
-rw-r--r--archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html3
-rw-r--r--archaeological_context_records/urls.py5
-rw-r--r--archaeological_context_records/views.py9
-rw-r--r--archaeological_context_records/wizards.py20
-rw-r--r--archaeological_files/data_importer.py3
-rw-r--r--archaeological_files/forms.py4
-rw-r--r--archaeological_files/locale/django.pot72
-rw-r--r--archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py335
-rw-r--r--archaeological_files/models.py5
-rw-r--r--archaeological_files/views.py1
-rw-r--r--archaeological_files_pdl/migrations/__init__.py0
-rw-r--r--archaeological_finds/data_importer.py2
-rw-r--r--archaeological_finds/locale/django.pot136
-rw-r--r--archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py910
-rw-r--r--archaeological_finds/models.py3
-rw-r--r--archaeological_finds/templates/ishtar/sheet_findsource.html11
-rw-r--r--archaeological_finds/templates/ishtar/sheet_findsource_pdf.html18
-rw-r--r--archaeological_finds/templates/ishtar/sheet_findsource_window.html3
-rw-r--r--archaeological_finds/urls.py6
-rw-r--r--archaeological_finds/views.py3
-rw-r--r--archaeological_operations/admin.py2
-rw-r--r--archaeological_operations/forms.py86
-rw-r--r--archaeological_operations/locale/django.pot506
-rw-r--r--archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py615
-rw-r--r--archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py606
-rw-r--r--archaeological_operations/models.py21
-rw-r--r--archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html2
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html18
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operationsource.html11
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html18
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operationsource_window.html3
-rw-r--r--archaeological_operations/urls.py5
-rw-r--r--archaeological_operations/views.py6
-rw-r--r--archaeological_operations/wizards.py3
-rw-r--r--archaeological_warehouse/locale/django.pot4
-rw-r--r--example_project/settings.py11
-rw-r--r--ishtar_common/__init__.py6
-rw-r--r--ishtar_common/data_importer.py9
-rw-r--r--ishtar_common/forms_common.py15
-rw-r--r--ishtar_common/locale/django.pot453
-rw-r--r--ishtar_common/management/commands/ishtar_import.py38
-rw-r--r--ishtar_common/models.py21
-rw-r--r--ishtar_common/templates/blocks/JQueryJqGrid.html1
-rw-r--r--ishtar_common/templates/blocks/inline_formset.html2
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_field_url.html3
-rw-r--r--ishtar_common/templates/ishtar/sheet.html4
-rw-r--r--ishtar_common/templates/ishtar/sheet_source.html24
-rw-r--r--ishtar_common/templates/ishtar/sheet_toolbar.html2
-rw-r--r--ishtar_common/templates/ishtar/wizard/relations_wizard.html32
-rw-r--r--ishtar_common/templatetags/inline_formset.py7
-rw-r--r--ishtar_common/templatetags/link_to_window.py26
-rw-r--r--ishtar_common/templatetags/window_field.py12
-rw-r--r--ishtar_common/views.py30
-rw-r--r--ishtar_common/wizards.py30
-rw-r--r--translations/fr/archaeological_context_records.po206
-rw-r--r--translations/fr/archaeological_files.po82
-rw-r--r--translations/fr/archaeological_files_pdl.po8
-rw-r--r--translations/fr/archaeological_finds.po144
-rw-r--r--translations/fr/archaeological_operations.po523
-rw-r--r--translations/fr/archaeological_warehouse.po14
-rw-r--r--translations/fr/ishtar_common.po465
67 files changed, 5045 insertions, 1425 deletions
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index df5a83539..59f683620 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2015 É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
@@ -36,7 +36,8 @@ from ishtar_common import widgets
from ishtar_common.forms import FinalForm, FormSet, \
reverse_lazy, get_form_selection, TableSelect
from ishtar_common.forms_common import get_town_field, SourceSelect
-from archaeological_operations.forms import OperationSelect, ParcelField
+from archaeological_operations.forms import OperationSelect, ParcelField,\
+ RecordRelationsForm as OpeRecordRelationsForm
class RecordSelect(TableSelect):
@@ -181,6 +182,35 @@ DatingFormSet = formset_factory(DatingForm, can_delete=True,
DatingFormSet.form_label = _("Dating")
+class RecordRelationsForm(OpeRecordRelationsForm):
+ current_model = models.RelationType
+ current_related_model = models.ContextRecord
+ associated_models = {'right_record': models.ContextRecord,
+ 'relation_type': models.RelationType}
+ right_record = forms.ChoiceField(
+ label=_(u"Context record"), choices=[], required=False)
+
+ def __init__(self, *args, **kwargs):
+ crs = None
+ if 'data' in kwargs and 'CONTEXT_RECORDS' in kwargs['data']:
+ crs = kwargs['data']['CONTEXT_RECORDS']
+ # clean data if not "real" data
+ prefix_value = kwargs['prefix'] + '-right_record'
+ if not [k for k in kwargs['data'].keys()
+ if k.startswith(prefix_value) and kwargs['data'][k]]:
+ kwargs['data'] = None
+ if 'files' in kwargs:
+ kwargs.pop('files')
+ super(RecordRelationsForm, self).__init__(*args, **kwargs)
+ self.fields['relation_type'].choices = \
+ models.RelationType.get_types()
+ if crs:
+ self.fields['right_record'].choices = [('', '-' * 2)] + crs
+
+RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True)
+RecordRelationsFormSet.form_label = _(u"Relations")
+
+
class RecordFormInterpretation(forms.Form):
form_label = _("Interpretation")
associated_models = {'activity': models.ActivityType,
diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot
index ca271337c..82298595c 100644
--- a/archaeological_context_records/locale/django.pot
+++ b/archaeological_context_records/locale/django.pot
@@ -6,380 +6,384 @@
msgid ""
msgstr ""
-#: forms.py:43 forms.py:96 models.py:123
+#: forms.py:44 forms.py:97 models.py:124
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr ""
-#: forms.py:47
+#: forms.py:48
msgid "Code PATRIARCHE"
msgstr ""
-#: forms.py:48
+#: forms.py:49
msgid "Operation's year"
msgstr ""
-#: forms.py:50
+#: forms.py:51
msgid "Operation's number (index by year)"
msgstr ""
-#: forms.py:51 forms.py:162 models.py:47
+#: forms.py:52 forms.py:163 models.py:48
msgid "Period"
msgstr ""
-#: forms.py:52
+#: forms.py:53
msgid "Unit type"
msgstr ""
-#: forms.py:53
+#: forms.py:54
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:71 forms.py:229 views.py:68
+#: forms.py:72 forms.py:259 views.py:68
msgid "Context record search"
msgstr ""
-#: forms.py:85
+#: forms.py:86
msgid "You should at least select one context record."
msgstr ""
-#: forms.py:91
+#: forms.py:92
msgid "General"
msgstr ""
-#: forms.py:95 models.py:116 models.py:119
+#: forms.py:96 models.py:117 models.py:120
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr ""
-#: forms.py:98 models.py:124 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:99 models.py:125 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr ""
-#: forms.py:100 models.py:129
+#: forms.py:101 models.py:130
msgid "Length (cm)"
msgstr ""
-#: forms.py:101 models.py:130
+#: forms.py:102 models.py:131
msgid "Width (cm)"
msgstr ""
-#: forms.py:102 models.py:131
+#: forms.py:103 models.py:132
msgid "Thickness (cm)"
msgstr ""
-#: forms.py:103 models.py:133
+#: forms.py:104 models.py:134
msgid "Depth (cm)"
msgstr ""
-#: forms.py:104 models.py:139
+#: forms.py:105 models.py:140
msgid "Unit"
msgstr ""
-#: forms.py:106 models.py:135
+#: forms.py:107 models.py:136
msgid "Location"
msgstr ""
-#: forms.py:151
+#: forms.py:152
msgid "This ID already exist for this operation."
msgstr ""
-#: forms.py:157 forms.py:181 models.py:58
+#: forms.py:158 forms.py:182 models.py:59
msgid "Dating"
msgstr ""
-#: forms.py:163 models.py:48
+#: forms.py:164 models.py:49
msgid "Start date"
msgstr ""
-#: forms.py:164 models.py:49 models.py:128
+#: forms.py:165 models.py:50 models.py:129
msgid "End date"
msgstr ""
-#: forms.py:165 models.py:52
+#: forms.py:166 models.py:53
msgid "Quality"
msgstr ""
-#: forms.py:166 models.py:34 models.py:50
+#: forms.py:167 models.py:35 models.py:51
msgid "Dating type"
msgstr ""
-#: forms.py:185 forms.py:192 models.py:144
+#: forms.py:191 ishtar_menu.py:29 models.py:318
+msgid "Context record"
+msgstr ""
+
+#: forms.py:211
+msgid "Relations"
+msgstr ""
+
+#: forms.py:215 forms.py:222 models.py:145
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr ""
-#: forms.py:188 models.py:141
+#: forms.py:218 models.py:142
msgid "Has furniture?"
msgstr ""
-#: forms.py:190 models.py:143
+#: forms.py:220 models.py:144
msgid "Filling"
msgstr ""
-#: forms.py:194 models.py:164
+#: forms.py:224 models.py:165
msgid "Activity"
msgstr ""
-#: forms.py:196 models.py:162
+#: forms.py:226 models.py:163
msgid "Identification"
msgstr ""
-#: forms.py:198 models.py:147
+#: forms.py:228 models.py:148
msgid "TAQ"
msgstr ""
-#: forms.py:199 models.py:151
+#: forms.py:229 models.py:152
msgid "Estimated TAQ"
msgstr ""
-#: forms.py:201 models.py:154
+#: forms.py:231 models.py:155
msgid "TPQ"
msgstr ""
-#: forms.py:202 models.py:158
+#: forms.py:232 models.py:159
msgid "Estimated TPQ"
msgstr ""
-#: forms.py:215
+#: forms.py:245
msgid "Operation search"
msgstr ""
-#: forms.py:217
+#: forms.py:247
msgid "You should select an operation."
msgstr ""
-#: forms.py:222
+#: forms.py:252
msgid "Would you like to delete this context record?"
msgstr ""
-#: forms.py:231
+#: forms.py:261
msgid "You should select a context record."
msgstr ""
-#: forms.py:236
+#: forms.py:266
msgid "Town of the operation"
msgstr ""
-#: forms.py:238
+#: forms.py:268
msgid "Year of the operation"
msgstr ""
-#: forms.py:240
+#: forms.py:270
msgid "Period of the context record"
msgstr ""
-#: forms.py:242
+#: forms.py:272
msgid "Unit type of the context record"
msgstr ""
-#: forms.py:255
+#: forms.py:285
msgid "Documentation search"
msgstr ""
-#: forms.py:257
+#: forms.py:287
msgid "You should select a document."
msgstr ""
-#: ishtar_menu.py:27 models.py:310
-msgid "Context record"
-msgstr ""
-
-#: ishtar_menu.py:28
+#: ishtar_menu.py:30
msgid "Search"
msgstr ""
-#: ishtar_menu.py:32
+#: ishtar_menu.py:34
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:36 ishtar_menu.py:53
+#: ishtar_menu.py:38 ishtar_menu.py:55
msgid "Modification"
msgstr ""
-#: ishtar_menu.py:40 ishtar_menu.py:59
+#: ishtar_menu.py:42 ishtar_menu.py:61
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:44
+#: ishtar_menu.py:46
msgid "Documentation"
msgstr ""
-#: ishtar_menu.py:47
+#: ishtar_menu.py:49
msgid "Add"
msgstr ""
-#: models.py:35
+#: models.py:36
msgid "Dating types"
msgstr ""
-#: models.py:41
+#: models.py:42
msgid "Dating quality"
msgstr ""
-#: models.py:42
+#: models.py:43
msgid "Dating qualities"
msgstr ""
-#: models.py:54
+#: models.py:55
msgid "Precise dating"
msgstr ""
-#: models.py:59
+#: models.py:60
msgid "Datings"
msgstr ""
-#: models.py:70 models.py:84 models.py:96
+#: models.py:71 models.py:85 models.py:97
msgid "Order"
msgstr ""
-#: models.py:71
+#: models.py:72
msgid "Parent unit"
msgstr ""
-#: models.py:75
+#: models.py:76
msgid "Type Unit"
msgstr ""
-#: models.py:76
+#: models.py:77
msgid "Types Unit"
msgstr ""
-#: models.py:87
+#: models.py:88
msgid "Type Activity"
msgstr ""
-#: models.py:88
+#: models.py:89
msgid "Types Activity"
msgstr ""
-#: models.py:99
+#: models.py:100
msgid "Type Identification"
msgstr ""
-#: models.py:100
+#: models.py:101
msgid "Types Identification"
msgstr ""
-#: models.py:117
+#: models.py:118
msgid "External ID"
msgstr ""
-#: models.py:121 wizards.py:60
+#: models.py:122 wizards.py:68
msgid "Operation"
msgstr ""
-#: models.py:125
+#: models.py:126
msgid "Comment"
msgstr ""
-#: models.py:126
+#: models.py:127
msgid "Date d'ouverture"
msgstr ""
-#: models.py:136
+#: models.py:137
msgid "A short description of the location of the context record"
msgstr ""
-#: models.py:148
+#: models.py:149
msgid ""
"\"Terminus Ante Quem\" the context record can't have been created after this "
"date"
msgstr ""
-#: models.py:152
+#: models.py:153
msgid "Estimation of a \"Terminus Ante Quem\""
msgstr ""
-#: models.py:155
+#: models.py:156
msgid ""
"\"Terminus Post Quem\" the context record can't have been created before "
"this date"
msgstr ""
-#: models.py:159
+#: models.py:160
msgid "Estimation of a \"Terminus Post Quem\""
msgstr ""
-#: models.py:170 models.py:171 templates/ishtar/sheet_contextrecord.html:6
+#: models.py:171 models.py:172 templates/ishtar/sheet_contextrecord.html:6
msgid "Context Record"
msgstr ""
-#: models.py:173
+#: models.py:174
msgid "Can view all Context Record"
msgstr ""
-#: models.py:175
+#: models.py:176
msgid "Can view own Context Record"
msgstr ""
-#: models.py:177
+#: models.py:178
msgid "Can add own Context Record"
msgstr ""
-#: models.py:179
+#: models.py:180
msgid "Can change own Context Record"
msgstr ""
-#: models.py:181
+#: models.py:182
msgid "Can delete own Context Record"
msgstr ""
-#: models.py:190
+#: models.py:191
msgctxt "short"
msgid "Context record"
msgstr ""
-#: models.py:282
+#: models.py:289
msgid "Inverse relation"
msgstr ""
-#: models.py:286 templates/ishtar/sheet_contextrecord.html:71
+#: models.py:293 templates/ishtar/sheet_contextrecord.html:71
msgid "Relation type"
msgstr ""
-#: models.py:287
+#: models.py:294
msgid "Relation types"
msgstr ""
-#: models.py:299
+#: models.py:307
msgid "Record relation"
msgstr ""
-#: models.py:300
+#: models.py:308
msgid "Record relations"
msgstr ""
-#: models.py:307
+#: models.py:315
msgid "Context record documentation"
msgstr ""
-#: models.py:308
+#: models.py:316
msgid "Context record documentations"
msgstr ""
-#: views.py:77
+#: views.py:78
msgid "New context record"
msgstr ""
-#: views.py:86
+#: views.py:88
msgid "Context record modification"
msgstr ""
-#: views.py:100
+#: views.py:102
msgid "Context record deletion"
msgstr ""
-#: views.py:108
+#: views.py:110
msgid "Context record: new source"
msgstr ""
-#: views.py:116
+#: views.py:118
msgid "Context record: source modification"
msgstr ""
-#: views.py:122
+#: views.py:124
msgid "Context record: source deletion"
msgstr ""
diff --git a/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py b/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py
new file mode 100644
index 000000000..2bed4037f
--- /dev/null
+++ b/archaeological_context_records/migrations/0013_auto__add_field_contextrecordsource_duplicate__chg_field_contextrecord.py
@@ -0,0 +1,586 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'ContextRecordSource.duplicate'
+ db.add_column('archaeological_context_records_contextrecordsource', 'duplicate',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ # Changing field 'ContextRecordSource.internal_reference'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ # Changing field 'ContextRecordSource.reference'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ def backwards(self, orm):
+ # Deleting field 'ContextRecordSource.duplicate'
+ db.delete_column('archaeological_context_records_contextrecordsource', 'duplicate')
+
+
+ # Changing field 'ContextRecordSource.internal_reference'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+
+ # Changing field 'ContextRecordSource.reference'
+ db.alter_column('archaeological_context_records_contextrecordsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, 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': {'object_name': 'ContextRecord'},
+ 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", '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'}),
+ 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'has_furniture': ('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'}),
+ 'identification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.IdentificationType']", '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.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}),
+ '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.IntegerField', [], {'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.IntegerField', [], {'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.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'}),
+ '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'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_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.historicalcontextrecord': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalContextRecord'},
+ 'activity_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}),
+ 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'has_furniture': ('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'}),
+ 'identification_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', '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'}),
+ '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.IntegerField', [], {'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.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_context_records.identificationtype': {
+ 'Meta': {'ordering': "('order',)", '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',)", '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'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_context_records.unit': {
+ 'Meta': {'ordering': "('order',)", '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'}),
+ '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'}),
+ '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.CharField', [], {'max_length': '60', '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2015'})
+ },
+ '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'},
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.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': {'object_name': 'Author'},
+ 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"})
+ },
+ 'ishtar_common.authortype': {
+ 'Meta': {'object_name': 'AuthorType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.canton': {
+ 'Meta': {'object_name': 'Canton'},
+ 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.department': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Department'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.format': {
+ 'Meta': {'object_name': 'Format'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_context_records'] \ No newline at end of file
diff --git a/archaeological_context_records/models.py b/archaeological_context_records/models.py
index 85f7582f3..52d976cfd 100644
--- a/archaeological_context_records/models.py
+++ b/archaeological_context_records/models.py
@@ -106,6 +106,7 @@ class IdentificationType(GeneralType):
class ContextRecord(BaseHistorizedItem, OwnPerms, ShortMenuItem):
+ SHOW_URL = 'show-contextrecord'
TABLE_COLS = ['parcel.town', 'operation.year',
'operation.operation_code',
'label', 'unit']
@@ -296,6 +297,7 @@ class RelationType(GeneralRelationType):
class RecordRelations(GeneralRecordRelations, models.Model):
+ MAIN_ATTR = 'left_record'
left_record = models.ForeignKey(ContextRecord,
related_name='right_relations')
right_record = models.ForeignKey(ContextRecord,
@@ -310,6 +312,8 @@ post_delete.connect(post_delete_record_relation, sender=RecordRelations)
class ContextRecordSource(Source):
+ SHOW_URL = 'show-contextrecordsource'
+
class Meta:
verbose_name = _(u"Context record documentation")
verbose_name_plural = _(u"Context record documentations")
diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html
new file mode 100644
index 000000000..17d09d843
--- /dev/null
+++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource.html
@@ -0,0 +1,11 @@
+{% extends "ishtar/sheet_source.html" %}
+{% load i18n window_field link_to_window %}
+
+{% block head_sheet %}
+{{block.super}}
+<h1>{% trans "Context record source"%}</h1>
+{% endblock %}
+
+{% block related %}
+{% field "Related context record" item.owner '' item.owner|link_to_window %}
+{% endblock %}
diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html
new file mode 100644
index 000000000..8e6b9bb85
--- /dev/null
+++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_pdf.html
@@ -0,0 +1,18 @@
+{% extends "ishtar/sheet_contextrecordsource.html" %}
+{% block header %}
+<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" />
+{% endblock %}
+{% block main_head %}
+{{ block.super }}
+<div id="pdfheader">
+Ishtar &ndash; {{APP_NAME}} &ndash; {{item}}
+</div>
+{% endblock %}
+{%block head_sheet%}{%endblock%}
+{%block main_foot%}
+<div id="pdffooter">
+&ndash; <pdf:pagenumber/> &ndash;
+</div>
+</body>
+</html>
+{%endblock%}
diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html
new file mode 100644
index 000000000..21dd20758
--- /dev/null
+++ b/archaeological_context_records/templates/ishtar/sheet_contextrecordsource_window.html
@@ -0,0 +1,3 @@
+{% extends "ishtar/sheet_contextrecordsource.html" %}
+{% block main_head %}{%endblock%}
+{% block main_foot %}{%endblock%}
diff --git a/archaeological_context_records/urls.py b/archaeological_context_records/urls.py
index 6ffc2f194..da6d80a98 100644
--- a/archaeological_context_records/urls.py
+++ b/archaeological_context_records/urls.py
@@ -19,6 +19,7 @@
from django.conf.urls.defaults import *
+from archaeological_context_records import models
from ishtar_common.wizards import check_rights
import views
@@ -59,7 +60,7 @@ urlpatterns = patterns(
urlpatterns += patterns(
'archaeological_context_records.views',
url(r'show-contextrecord(?:/(?P<pk>.+))?/(?P<type>.+)?$',
- 'show_contextrecord', name='show-contextrecord'),
+ 'show_contextrecord', name=models.ContextRecord.SHOW_URL),
url(r'show-historized-contextrecord/(?P<pk>.+)?/(?P<date>.+)?$',
'show_contextrecord', name='show-historized-contextrecord'),
url(r'revert-contextrecord/(?P<pk>.+)/(?P<date>.+)$',
@@ -80,6 +81,8 @@ urlpatterns += patterns(
url(r'get-contextrecord-full/(?P<type>.+)?$',
'get_contextrecord', name='get-contextrecord-full',
kwargs={'full': True}),
+ url(r'show-contextrecordsource(?:/(?P<pk>.+))?/(?P<type>.+)?$',
+ 'show_contextrecordsource', name=models.ContextRecordSource.SHOW_URL),
url(r'get-contexrecordsource/(?P<type>.+)?$',
'get_contextrecordsource', name='get-contextrecordsource'),
)
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py
index cbf34ee07..13375f866 100644
--- a/archaeological_context_records/views.py
+++ b/archaeological_context_records/views.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2015 É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
@@ -51,9 +51,14 @@ get_contextrecord_for_ope = get_item(
'get_contextrecord', 'contextrecord',
extra_request_keys=contextrecord_extra_keys,
own_table_cols=models.ContextRecord.TABLE_COLS_FOR_OPE)
+
+show_contextrecordsource = show_item(models.ContextRecordSource,
+ 'contextrecordsource')
+
get_contextrecordsource = get_item(
models.ContextRecordSource,
'get_contextrecordsource', 'contextrecordsource',
+ bool_fields=['duplicate'],
extra_request_keys={
'context_record__parcel__town': 'context_record__parcel__town__pk',
'context_record__operation__year': 'context_record__operation__year',
@@ -73,6 +78,7 @@ record_creation_wizard = RecordWizard.as_view([
('general-record_creation', RecordFormGeneral),
('datings-record_creation', DatingFormSet),
('interpretation-record_creation', RecordFormInterpretation),
+ ('relations-record_creation', RecordRelationsFormSet),
('final-record_creation', FinalForm)],
label=_(u"New context record"),
url_name='record_creation',)
@@ -82,6 +88,7 @@ record_modification_wizard = RecordModifWizard.as_view([
('general-record_modification', RecordFormGeneral),
('datings-record_modification', DatingFormSet),
('interpretation-record_modification', RecordFormInterpretation),
+ ('relations-record_creation', RecordRelationsFormSet),
('final-record_modification', FinalForm)],
label=_(u"Context record modification"),
url_name='record_modification',)
diff --git a/archaeological_context_records/wizards.py b/archaeological_context_records/wizards.py
index 99c666e89..2449b400e 100644
--- a/archaeological_context_records/wizards.py
+++ b/archaeological_context_records/wizards.py
@@ -29,6 +29,14 @@ class RecordWizard(Wizard):
model = models.ContextRecord
edit = False
wizard_done_window = reverse_lazy('show-contextrecord')
+ relations_step_key = 'relations'
+
+ def get_template_names(self):
+ templates = super(RecordWizard, self).get_template_names()
+ current_step = self.steps.current
+ if current_step.startswith(self.relations_step_key):
+ templates = ['ishtar/wizard/relations_wizard.html'] + templates
+ return templates
def get_current_operation(self):
step = self.steps.current
@@ -87,9 +95,21 @@ class RecordWizard(Wizard):
else:
current_object = self.get_current_object()
data['context_record'] = current_object
+ elif step.startswith('relations') and hasattr(form, 'management_form'):
+ data['CONTEXT_RECORDS'] = self.get_other_context_records()
form = super(RecordWizard, self).get_form(step, data, files)
return form
+ def get_other_context_records(self):
+ operation = self.get_current_operation()
+ if not operation:
+ return []
+ q = models.ContextRecord.objects.filter(operation=operation)
+ obj = self.get_current_object()
+ if obj and obj.pk:
+ q = q.exclude(pk=obj.pk)
+ return [(cr.pk, unicode(cr)) for cr in q.all()]
+
class RecordModifWizard(RecordWizard):
modification = True
diff --git a/archaeological_files/data_importer.py b/archaeological_files/data_importer.py
index 7e3c0c118..ba92c63ab 100644
--- a/archaeological_files/data_importer.py
+++ b/archaeological_files/data_importer.py
@@ -61,7 +61,8 @@ class FilePostProcessing(object):
def post_processing(self, item, data):
if not item.end_date: # auto-close
open_date = item.reception_date or item.creation_date
- item.end_date = open_date + datetime.timedelta(30)
+ if open_date:
+ item.end_date = open_date + datetime.timedelta(30)
item.save()
return item
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index a8dd99135..8c360e364 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -379,6 +379,8 @@ class AdministrativeActFileModifySelect(TableSelect):
ref_sra = forms.CharField(label=u"Référence SRA",
max_length=15)
act_type = forms.ChoiceField(label=_("Act type"), choices=[])
+ act_object = forms.CharField(label=_(u"Object (full text search)"),
+ max_length=300)
operation__towns = get_town_field()
if settings.ISHTAR_DPTS:
operation__towns__numero_insee__startswith = forms.ChoiceField(
@@ -442,6 +444,8 @@ class AdministrativeActFileSelect(TableSelect):
if settings.ISHTAR_DPTS:
operation__towns__numero_insee__startswith = forms.ChoiceField(
label=_(u"Department"), choices=[])
+ act_object = forms.CharField(label=_(u"Object (full text search)"),
+ max_length=300)
history_creator = forms.IntegerField(
label=_(u"Created by"),
widget=widgets.JQueryAutoComplete(
diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot
index 3c3a4ef24..b480fa0fd 100644
--- a/archaeological_files/locale/django.pot
+++ b/archaeological_files/locale/django.pot
@@ -6,20 +6,20 @@
msgid ""
msgstr ""
-#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:429
+#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431
#: models.py:75 templates/ishtar/sheet_file.html:137
msgid "Year"
msgstr ""
-#: forms.py:52 forms.py:196 forms.py:237 forms.py:428 models.py:78
+#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78
msgid "Numeric reference"
msgstr ""
-#: forms.py:54 forms.py:198 forms.py:431
+#: forms.py:54 forms.py:198 forms.py:433
msgid "Other reference"
msgstr ""
-#: forms.py:56 forms.py:409
+#: forms.py:56 forms.py:411
msgid "File name"
msgstr ""
@@ -39,23 +39,23 @@ msgstr ""
msgid "Is active?"
msgstr ""
-#: forms.py:62 forms.py:267 forms.py:411 models.py:91
+#: forms.py:62 forms.py:267 forms.py:413 models.py:91
msgid "General contractor"
msgstr ""
-#: forms.py:69 forms.py:420
+#: forms.py:69 forms.py:422
msgid "Organization of general contractor"
msgstr ""
-#: forms.py:76 forms.py:433 templates/ishtar/sheet_file.html:114
+#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:114
msgid "In charge"
msgstr ""
-#: forms.py:83 forms.py:446
+#: forms.py:83 forms.py:450
msgid "Created by"
msgstr ""
-#: forms.py:90 forms.py:292 forms.py:441 models.py:117
+#: forms.py:90 forms.py:292 forms.py:443 models.py:117
msgid "Permit reference"
msgstr ""
@@ -193,67 +193,71 @@ msgstr ""
msgid "Index"
msgstr ""
-#: forms.py:381 forms.py:403 forms.py:489
+#: forms.py:381 forms.py:405 forms.py:493
msgid "Act type"
msgstr ""
-#: forms.py:385 forms.py:444 models.py:514
+#: forms.py:382 forms.py:447
+msgid "Object (full text search)"
+msgstr ""
+
+#: forms.py:387 forms.py:446 models.py:514
msgid "Department"
msgstr ""
-#: forms.py:405
+#: forms.py:407
msgid "Signature date after"
msgstr ""
-#: forms.py:407
+#: forms.py:409
msgid "Signature date before"
msgstr ""
-#: ishtar_menu.py:30 models.py:186 templates/ishtar/sheet_file.html:6
+#: ishtar_menu.py:33 models.py:186 templates/ishtar/sheet_file.html:6
msgid "Archaeological file"
msgstr ""
-#: ishtar_menu.py:32 ishtar_menu.py:50
+#: ishtar_menu.py:36 ishtar_menu.py:59
msgid "Search"
msgstr ""
-#: ishtar_menu.py:35
+#: ishtar_menu.py:40
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:38 ishtar_menu.py:58
+#: ishtar_menu.py:44 ishtar_menu.py:67
msgid "Modification"
msgstr ""
-#: ishtar_menu.py:41
+#: ishtar_menu.py:48
msgid "Closing"
msgstr ""
-#: ishtar_menu.py:44 ishtar_menu.py:62
+#: ishtar_menu.py:52 ishtar_menu.py:71
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:47
+#: ishtar_menu.py:56
msgid "Administrative act"
msgstr ""
-#: ishtar_menu.py:54
+#: ishtar_menu.py:63
msgid "Add"
msgstr ""
-#: ishtar_menu.py:66
+#: ishtar_menu.py:75
msgid "Documents"
msgstr ""
-#: ishtar_menu.py:72
+#: ishtar_menu.py:81
msgid "Dashboard"
msgstr ""
-#: ishtar_menu.py:74
+#: ishtar_menu.py:82
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:77 models.py:187
+#: ishtar_menu.py:85 models.py:187
#: templates/ishtar/dashboards/dashboard_file.html:8
msgid "Archaeological files"
msgstr ""
@@ -382,39 +386,39 @@ msgstr ""
msgid "File"
msgstr ""
-#: views.py:141
+#: views.py:142
msgid "File search"
msgstr ""
-#: views.py:150
+#: views.py:151
msgid "New file"
msgstr ""
-#: views.py:169
+#: views.py:170
msgid "File modification"
msgstr ""
-#: views.py:192
+#: views.py:193
msgid "File closing"
msgstr ""
-#: views.py:197
+#: views.py:198
msgid "File deletion"
msgstr ""
-#: views.py:204
+#: views.py:205
msgid "File: search administrative act"
msgstr ""
-#: views.py:213
+#: views.py:214
msgid "File: new administrative act"
msgstr ""
-#: views.py:223
+#: views.py:224
msgid "File: administrative act modification"
msgstr ""
-#: views.py:232
+#: views.py:233
msgid "File: administrative act deletion"
msgstr ""
diff --git a/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py b/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py
new file mode 100644
index 000000000..52a9f70e4
--- /dev/null
+++ b/archaeological_files/migrations/0029_auto__chg_field_file_creation_date__chg_field_historicalfile_creation_.py
@@ -0,0 +1,335 @@
+# -*- 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 'File.creation_date'
+ db.alter_column('archaeological_files_file', 'creation_date', self.gf('django.db.models.fields.DateField')(null=True))
+
+ # Changing field 'HistoricalFile.creation_date'
+ db.alter_column('archaeological_files_historicalfile', 'creation_date', self.gf('django.db.models.fields.DateField')(null=True))
+
+ def backwards(self, orm):
+
+ # Changing field 'File.creation_date'
+ db.alter_column('archaeological_files_file', 'creation_date', self.gf('django.db.models.fields.DateField')())
+
+ # Changing field 'HistoricalFile.creation_date'
+ db.alter_column('archaeological_files_historicalfile', 'creation_date', self.gf('django.db.models.fields.DateField')())
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'})
+ },
+ 'archaeological_files.filebydepartment': {
+ 'Meta': {'object_name': 'FileByDepartment', 'db_table': "'file_department'", 'managed': 'False'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+ },
+ '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.historicalfile': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFile'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'general_contractor_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', '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'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ '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_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'permit_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'permit_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'planning_service_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'saisine_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'})
+ },
+ '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'})
+ },
+ '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.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.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.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.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_files'] \ No newline at end of file
diff --git a/archaeological_files/models.py b/archaeological_files/models.py
index 16cd6df65..d64d20a02 100644
--- a/archaeological_files/models.py
+++ b/archaeological_files/models.py
@@ -120,8 +120,9 @@ class File(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
blank=True, related_name='file_main')
towns = models.ManyToManyField(Town, verbose_name=_(u"Towns"),
related_name='file')
- creation_date = models.DateField(_(u"Creation date"),
- default=datetime.date.today)
+ creation_date = models.DateField(
+ _(u"Creation date"), default=datetime.date.today, blank=True,
+ null=True)
reception_date = models.DateField(_(u'Reception date'), blank=True,
null=True)
related_file = models.ForeignKey("File", verbose_name=_(u"Related file"),
diff --git a/archaeological_files/views.py b/archaeological_files/views.py
index ad6eff854..9b2044ecc 100644
--- a/archaeological_files/views.py
+++ b/archaeological_files/views.py
@@ -116,6 +116,7 @@ get_administrativeactfile = get_item(
'history_creator': 'history_creator__ishtaruser__person__pk',
'operation__towns': 'operation__towns__pk',
'act_type__intented_to': 'act_type__intented_to',
+ 'act_object': 'act_object__icontains',
'signature_date_before': 'signature_date__lte',
'signature_date_after': 'signature_date__gte',
'associated_file__general_contractor__attached_to':
diff --git a/archaeological_files_pdl/migrations/__init__.py b/archaeological_files_pdl/migrations/__init__.py
new file mode 100644
index 000000000..e69de29bb
--- /dev/null
+++ b/archaeological_files_pdl/migrations/__init__.py
diff --git a/archaeological_finds/data_importer.py b/archaeological_finds/data_importer.py
index dec9b7cf1..57b4e3927 100644
--- a/archaeological_finds/data_importer.py
+++ b/archaeological_finds/data_importer.py
@@ -73,7 +73,7 @@ class FindsImporterBibracte(Importer):
ImportFormater('find__conservatory_state',
TypeFormater(models.ConservatoryState), required=False),
# preservation_to_consider
- ImportFormater('find__preservation_to_consider',
+ ImportFormater('find__preservation_to_considers',
TypeFormater(models.PreservationType), required=False),
# comment
ImportFormater('comment', UnicodeFormater(1000), required=False),
diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot
index dad1db351..b6108730c 100644
--- a/archaeological_finds/locale/django.pot
+++ b/archaeological_finds/locale/django.pot
@@ -6,21 +6,21 @@
msgid ""
msgstr ""
-#: forms.py:45 ishtar_menu.py:27 models.py:344 models.py:530 models.py:600
+#: forms.py:45 ishtar_menu.py:31 models.py:345 models.py:539 models.py:609
#: templates/ishtar/sheet_find.html:6
msgid "Find"
msgstr ""
-#: forms.py:54 forms.py:289 models.py:108 models.py:286
+#: forms.py:54 forms.py:289 models.py:108 models.py:287
msgid "Free-ID"
msgstr ""
-#: forms.py:56 models.py:328
+#: forms.py:56 models.py:329
msgid "Previous ID"
msgstr ""
-#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:287
-#: models.py:553 templates/ishtar/sheet_find.html:87
+#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:288
+#: models.py:562 templates/ishtar/sheet_find.html:87
msgid "Description"
msgstr ""
@@ -28,7 +28,7 @@ msgstr ""
msgid "Batch/object"
msgstr ""
-#: forms.py:62 models.py:314
+#: forms.py:62 models.py:315
msgid "Is complete?"
msgstr ""
@@ -36,11 +36,11 @@ msgstr ""
msgid "Material type"
msgstr ""
-#: forms.py:66 forms.py:162 models.py:60 models.py:291
+#: forms.py:66 forms.py:162 models.py:60 models.py:292
msgid "Conservatory state"
msgstr ""
-#: forms.py:69 models.py:85 models.py:317
+#: forms.py:69 models.py:85 models.py:318
msgid "Object types"
msgstr ""
@@ -48,55 +48,55 @@ msgstr ""
msgid "Preservation type"
msgstr ""
-#: forms.py:74 forms.py:164 models.py:319
+#: forms.py:74 forms.py:164 models.py:320
msgid "Integrity"
msgstr ""
-#: forms.py:76 models.py:320
+#: forms.py:76 models.py:321
msgid "Length (cm)"
msgstr ""
-#: forms.py:77 models.py:321
+#: forms.py:77 models.py:322
msgid "Width (cm)"
msgstr ""
-#: forms.py:78 models.py:322
+#: forms.py:78 models.py:323
msgid "Height (cm)"
msgstr ""
-#: forms.py:79 models.py:323
+#: forms.py:79 models.py:324
msgid "Diameter (cm)"
msgstr ""
-#: forms.py:80 forms.py:294 models.py:296
+#: forms.py:80 forms.py:294 models.py:297
msgid "Volume (l)"
msgstr ""
-#: forms.py:81 forms.py:295 models.py:297
+#: forms.py:81 forms.py:295 models.py:298
msgid "Weight (g)"
msgstr ""
-#: forms.py:82 forms.py:296 models.py:300
+#: forms.py:82 forms.py:296 models.py:301
msgid "Find number"
msgstr ""
-#: forms.py:83 models.py:324
+#: forms.py:83 models.py:325
msgid "Mark"
msgstr ""
-#: forms.py:84 forms.py:169 models.py:330
+#: forms.py:84 forms.py:169 models.py:331
msgid "Check"
msgstr ""
-#: forms.py:86 models.py:332
+#: forms.py:86 models.py:333
msgid "Check date"
msgstr ""
-#: forms.py:87 models.py:112 models.py:325 models.py:554
+#: forms.py:87 models.py:112 models.py:326 models.py:563
msgid "Comment"
msgstr ""
-#: forms.py:90 models.py:326
+#: forms.py:90 models.py:327
msgid "Comment on dating"
msgstr ""
@@ -111,7 +111,7 @@ msgid ""
"p>"
msgstr ""
-#: forms.py:119 forms.py:147 models.py:308
+#: forms.py:119 forms.py:147 models.py:309
msgid "Dating"
msgstr ""
@@ -119,11 +119,11 @@ msgstr ""
msgid "Period"
msgstr ""
-#: forms.py:125 forms.py:231 models.py:565 models.py:606
+#: forms.py:125 forms.py:231 models.py:574 models.py:615
msgid "Start date"
msgstr ""
-#: forms.py:127 forms.py:233 models.py:566 models.py:607
+#: forms.py:127 forms.py:233 models.py:575 models.py:616
msgid "End date"
msgstr ""
@@ -163,15 +163,15 @@ msgstr ""
msgid "Base treatment"
msgstr ""
-#: forms.py:216 models.py:542 models.py:556
+#: forms.py:216 models.py:551 models.py:565
msgid "Treatment type"
msgstr ""
-#: forms.py:218 models.py:563 models.py:604
+#: forms.py:218 models.py:572 models.py:613
msgid "Person"
msgstr ""
-#: forms.py:224 models.py:558
+#: forms.py:224 models.py:567
msgid "Location"
msgstr ""
@@ -179,7 +179,7 @@ msgstr ""
msgid "Upstream finds"
msgstr ""
-#: forms.py:247 models.py:345
+#: forms.py:247 models.py:346
msgid "Finds"
msgstr ""
@@ -235,23 +235,23 @@ msgstr ""
msgid "You should select a document."
msgstr ""
-#: ishtar_menu.py:29
+#: ishtar_menu.py:34
msgid "Search"
msgstr ""
-#: ishtar_menu.py:33 ishtar_menu.py:48
+#: ishtar_menu.py:39 ishtar_menu.py:56
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:37 ishtar_menu.py:53
+#: ishtar_menu.py:44 ishtar_menu.py:61
msgid "Modification"
msgstr ""
-#: ishtar_menu.py:45
+#: ishtar_menu.py:53
msgid "Documentation"
msgstr ""
-#: ishtar_menu.py:58
+#: ishtar_menu.py:66
msgid "Deletion"
msgstr ""
@@ -267,7 +267,7 @@ msgstr ""
msgid "Parent material"
msgstr ""
-#: models.py:51 models.py:289
+#: models.py:51 models.py:290
msgid "Material types"
msgstr ""
@@ -303,7 +303,7 @@ msgstr ""
msgid "Batch"
msgstr ""
-#: models.py:109 models.py:283 models.py:548
+#: models.py:109 models.py:284 models.py:557
msgid "External ID"
msgstr ""
@@ -335,7 +335,7 @@ msgstr ""
msgid "Complete ID"
msgstr ""
-#: models.py:136 models.py:281
+#: models.py:136 models.py:282
msgid "Base find"
msgstr ""
@@ -411,123 +411,123 @@ msgstr ""
msgid "Base find - Discovery date"
msgstr ""
-#: models.py:285
+#: models.py:286
msgid "Order"
msgstr ""
-#: models.py:294
+#: models.py:295
msgid "Type of preservation to consider"
msgstr ""
-#: models.py:298
+#: models.py:299
msgid "Weight unit"
msgstr ""
-#: models.py:304 templates/ishtar/sheet_find.html:61
+#: models.py:305 templates/ishtar/sheet_find.html:61
msgid "Upstream treatment"
msgstr ""
-#: models.py:307 templates/ishtar/sheet_find.html:63
+#: models.py:308 templates/ishtar/sheet_find.html:63
msgid "Downstream treatment"
msgstr ""
-#: models.py:312 models.py:551 templates/ishtar/sheet_find.html:65
+#: models.py:313 models.py:560 templates/ishtar/sheet_find.html:65
msgid "Container"
msgstr ""
-#: models.py:347
+#: models.py:348
msgid "Can view all Find"
msgstr ""
-#: models.py:348
+#: models.py:349
msgid "Can view own Find"
msgstr ""
-#: models.py:349
+#: models.py:350
msgid "Can add own Find"
msgstr ""
-#: models.py:350
+#: models.py:351
msgid "Can change own Find"
msgstr ""
-#: models.py:351
+#: models.py:352
msgid "Can delete own Find"
msgstr ""
-#: models.py:356
+#: models.py:357
msgid "FIND"
msgstr ""
-#: models.py:528
+#: models.py:537
msgid "Find documentation"
msgstr ""
-#: models.py:529
+#: models.py:538
msgid "Find documentations"
msgstr ""
-#: models.py:539
+#: models.py:548
msgid "Virtual"
msgstr ""
-#: models.py:543
+#: models.py:552
msgid "Treatment types"
msgstr ""
-#: models.py:560
+#: models.py:569
msgid "Other location"
msgstr ""
-#: models.py:570 models.py:592
+#: models.py:579 models.py:601
msgid "Treatment"
msgstr ""
-#: models.py:571
+#: models.py:580
msgid "Treatments"
msgstr ""
-#: models.py:573
+#: models.py:582
msgid "Can view all Treatment"
msgstr ""
-#: models.py:574
+#: models.py:583
msgid "Can view own Treatment"
msgstr ""
-#: models.py:575
+#: models.py:584
msgid "Can add own Treatment"
msgstr ""
-#: models.py:576
+#: models.py:585
msgid "Can change own Treatment"
msgstr ""
-#: models.py:577
+#: models.py:586
msgid "Can delete own Treatment"
msgstr ""
-#: models.py:583
+#: models.py:592
msgid "by"
msgstr ""
-#: models.py:589
+#: models.py:598
msgid "Treatment documentation"
msgstr ""
-#: models.py:590
+#: models.py:599
msgid "Treament documentations"
msgstr ""
-#: models.py:603
+#: models.py:612
msgid "Administrative act"
msgstr ""
-#: models.py:610
+#: models.py:619
msgid "Property"
msgstr ""
-#: models.py:611
+#: models.py:620
msgid "Properties"
msgstr ""
@@ -551,11 +551,11 @@ msgstr ""
msgid "Find: source deletion"
msgstr ""
-#: wizards.py:63
+#: wizards.py:61
msgid "Operation"
msgstr ""
-#: wizards.py:64
+#: wizards.py:62
msgid "Context record"
msgstr ""
diff --git a/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py b/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py
new file mode 100644
index 000000000..3e288d58d
--- /dev/null
+++ b/archaeological_finds/migrations/0043_auto__add_field_findsource_duplicate__chg_field_findsource_internal_re.py
@@ -0,0 +1,910 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'FindSource.duplicate'
+ db.add_column('archaeological_finds_findsource', 'duplicate',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ # Changing field 'FindSource.internal_reference'
+ db.alter_column('archaeological_finds_findsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ # Changing field 'FindSource.reference'
+ db.alter_column('archaeological_finds_findsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+ # Adding field 'TreatmentSource.duplicate'
+ db.add_column('archaeological_finds_treatmentsource', 'duplicate',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ # Changing field 'TreatmentSource.internal_reference'
+ db.alter_column('archaeological_finds_treatmentsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ # Changing field 'TreatmentSource.reference'
+ db.alter_column('archaeological_finds_treatmentsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ def backwards(self, orm):
+ # Deleting field 'FindSource.duplicate'
+ db.delete_column('archaeological_finds_findsource', 'duplicate')
+
+
+ # Changing field 'FindSource.internal_reference'
+ db.alter_column('archaeological_finds_findsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+
+ # Changing field 'FindSource.reference'
+ db.alter_column('archaeological_finds_findsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+ # Deleting field 'TreatmentSource.duplicate'
+ db.delete_column('archaeological_finds_treatmentsource', 'duplicate')
+
+
+ # Changing field 'TreatmentSource.internal_reference'
+ db.alter_column('archaeological_finds_treatmentsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+
+ # Changing field 'TreatmentSource.reference'
+ db.alter_column('archaeological_finds_treatmentsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, 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': {'object_name': 'ContextRecord'},
+ 'activity': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.ActivityType']", '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'}),
+ 'depth': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'filling': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'has_furniture': ('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'}),
+ 'identification': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_context_records.IdentificationType']", '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.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'location': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}),
+ '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.IntegerField', [], {'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.IntegerField', [], {'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.identificationtype': {
+ 'Meta': {'ordering': "('order',)", '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',)", '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'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_context_records.unit': {
+ 'Meta': {'ordering': "('order',)", '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'}),
+ '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'}),
+ '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.CharField', [], {'max_length': '60', '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2015'})
+ },
+ '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'},
+ 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}),
+ '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'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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', [], {}),
+ 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ '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'})
+ },
+ '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': {'object_name': 'Find'},
+ 'base_finds': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'find'", 'symmetrical': 'False', 'to': "orm['archaeological_finds.BaseFind']"}),
+ 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}),
+ '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', 'blank': 'True'}),
+ 'container': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'finds'", 'null': 'True', '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'}),
+ 'downstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'upstream_treatment'", 'null': 'True', 'to': "orm['archaeological_finds.Treatment']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': '100', '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']"}),
+ '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'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'upstream_treatment': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'downstream_treatment'", 'null': 'True', '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.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.CharField', [], {'max_length': '12', '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'}),
+ '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'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_finds.historicalbasefind': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalBaseFind'},
+ 'batch': ('django.db.models.fields.CharField', [], {'default': "'U'", 'max_length': '1'}),
+ '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'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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', [], {}),
+ 'material_index': ('django.db.models.fields.IntegerField', [], {'default': '0'}),
+ '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'})
+ },
+ 'archaeological_finds.historicalfind': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalFind'},
+ 'check_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'checked': ('django.db.models.fields.CharField', [], {'default': "'NC'", 'max_length': '2'}),
+ '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'}),
+ 'downstream_treatment_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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': '100', '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'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'previous_id': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'thumbnail': ('django.db.models.fields.files.ImageField', [], {'max_length': '100', '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'},
+ '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'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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'}),
+ 'location_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'other_location': ('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'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'treatment_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'})
+ },
+ '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.treatment': {
+ 'Meta': {'object_name': 'Treatment'},
+ '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'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', '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_treatment'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']", 'null': 'True', 'blank': 'True'}),
+ 'other_location': ('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']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'treatment_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_finds.TreatmentType']"})
+ },
+ '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.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'}),
+ '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'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'treatment': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_finds.Treatment']"})
+ },
+ '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'}),
+ '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'}),
+ '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': '1'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.administrativeact': {
+ 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.archaeologicalsite': {
+ 'Meta': {'object_name': 'ArchaeologicalSite'},
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operation': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'},
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.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.container': {
+ 'Meta': {'object_name': 'Container'},
+ 'comment': ('django.db.models.fields.TextField', [], {}),
+ 'container_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.ContainerType']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_container'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'location': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.Warehouse']"}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '40'})
+ },
+ 'archaeological_warehouse.containertype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ContainerType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'height': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'length': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}),
+ 'volume': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'width': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_warehouse.warehouse': {
+ 'Meta': {'object_name': 'Warehouse'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_warehouse_warehouse'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '40'}),
+ 'person_in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'warehouse_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}),
+ 'warehouse_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_warehouse.WarehouseType']"})
+ },
+ 'archaeological_warehouse.warehousetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'WarehouseType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.arrondissement': {
+ 'Meta': {'object_name': 'Arrondissement'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.author': {
+ 'Meta': {'object_name': 'Author'},
+ 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"})
+ },
+ 'ishtar_common.authortype': {
+ 'Meta': {'object_name': 'AuthorType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.canton': {
+ 'Meta': {'object_name': 'Canton'},
+ 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.department': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Department'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.documenttemplate': {
+ 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'},
+ 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.format': {
+ 'Meta': {'object_name': 'Format'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_finds'] \ No newline at end of file
diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py
index 32b4334ff..f677b1297 100644
--- a/archaeological_finds/models.py
+++ b/archaeological_finds/models.py
@@ -246,6 +246,7 @@ CHECK_CHOICES = (('NC', _(u"Not checked")),
class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
CHECK_DICT = dict(CHECK_CHOICES)
+ SHOW_URL = 'show-find'
TABLE_COLS = ['label', 'material_types', 'datings.period',
'base_finds.context_record.parcel.town',
'base_finds.context_record.operation.year',
@@ -533,6 +534,8 @@ class Find(BaseHistorizedItem, ImageModel, OwnPerms, ShortMenuItem):
class FindSource(Source):
+ SHOW_URL = 'show-findsource'
+
class Meta:
verbose_name = _(u"Find documentation")
verbose_name_plural = _(u"Find documentations")
diff --git a/archaeological_finds/templates/ishtar/sheet_findsource.html b/archaeological_finds/templates/ishtar/sheet_findsource.html
new file mode 100644
index 000000000..04db0336c
--- /dev/null
+++ b/archaeological_finds/templates/ishtar/sheet_findsource.html
@@ -0,0 +1,11 @@
+{% extends "ishtar/sheet_source.html" %}
+{% load i18n window_field link_to_window %}
+
+{% block head_sheet %}
+{{block.super}}
+<h1>{% trans "Find source"%}</h1>
+{% endblock %}
+
+{% block related %}
+{% field "Related find" item.owner '' item.owner|link_to_window %}
+{% endblock %}
diff --git a/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html b/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html
new file mode 100644
index 000000000..b7f8ec473
--- /dev/null
+++ b/archaeological_finds/templates/ishtar/sheet_findsource_pdf.html
@@ -0,0 +1,18 @@
+{% extends "ishtar/sheet_findsource.html" %}
+{% block header %}
+<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" />
+{% endblock %}
+{% block main_head %}
+{{ block.super }}
+<div id="pdfheader">
+Ishtar &ndash; {{APP_NAME}} &ndash; {{item}}
+</div>
+{% endblock %}
+{%block head_sheet%}{%endblock%}
+{%block main_foot%}
+<div id="pdffooter">
+&ndash; <pdf:pagenumber/> &ndash;
+</div>
+</body>
+</html>
+{%endblock%}
diff --git a/archaeological_finds/templates/ishtar/sheet_findsource_window.html b/archaeological_finds/templates/ishtar/sheet_findsource_window.html
new file mode 100644
index 000000000..b2a2974bf
--- /dev/null
+++ b/archaeological_finds/templates/ishtar/sheet_findsource_window.html
@@ -0,0 +1,3 @@
+{% extends "ishtar/sheet_findsource.html" %}
+{% block main_head %}{%endblock%}
+{% block main_foot %}{%endblock%}
diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py
index 7a01f952b..e38520329 100644
--- a/archaeological_finds/urls.py
+++ b/archaeological_finds/urls.py
@@ -22,6 +22,8 @@ from django.conf.urls.defaults import *
from ishtar_common.wizards import check_rights
import views
+from archaeological_finds import models
+
# be carreful: each check_rights must be relevant with ishtar_menu
# forms
@@ -76,8 +78,10 @@ urlpatterns += patterns(
name='get-find-full', kwargs={'full': True}),
url(r'get-findsource/(?P<type>.+)?$',
'get_findsource', name='get-findsource'),
+ url(r'show-findsource(?:/(?P<pk>.+))?/(?P<type>.+)?$', 'show_findsource',
+ name=models.FindSource.SHOW_URL),
url(r'show-find(?:/(?P<pk>.+))?/(?P<type>.+)?$', 'show_find',
- name='show-find'),
+ name=models.Find.SHOW_URL),
url(r'show-historized-find/(?P<pk>.+)?/(?P<date>.+)?$',
'show_find', name='show-historized-find'),
url(r'revert-find/(?P<pk>.+)/(?P<date>.+)$',
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 40c241cb1..36388d85b 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -64,8 +64,11 @@ get_find_for_ope = get_item(
extra_request_keys=find_extra_keys,
own_table_cols=models.Find.TABLE_COLS_FOR_OPE)
+show_findsource = show_item(models.FindSource, 'findsource')
+
get_findsource = get_item(
models.FindSource, 'get_findsource', 'findsource',
+ bool_fields=['duplicate'],
extra_request_keys={
'find__context_record__operation__year':
'find__context_record__operation__year',
diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py
index a8a9147b7..2a0ec652c 100644
--- a/archaeological_operations/admin.py
+++ b/archaeological_operations/admin.py
@@ -100,7 +100,7 @@ class RelationTypeAdmin(admin.ModelAdmin):
admin.site.register(models.RelationType, RelationTypeAdmin)
-general_models = [models.RemainType, models.ActType]
+general_models = [models.RemainType, models.ActType, models.ReportState]
for model in general_models:
admin.site.register(model, GeneralTypeAdmin)
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index 3d679d555..90977416b 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -335,6 +335,74 @@ ParcelFormSet = formset_factory(ParcelForm, can_delete=True,
formset=ParcelFormSet)
ParcelFormSet.form_label = _(u"Parcels")
+
+class RecordRelationsForm(forms.Form):
+ base_model = 'right_relation'
+ current_model = models.RelationType
+ current_related_model = models.Operation
+ associated_models = {'right_record': models.Operation,
+ 'relation_type': models.RelationType}
+ relation_type = forms.ChoiceField(label=_(u"Relation type"),
+ choices=[], required=False)
+ right_record = forms.IntegerField(
+ label=_(u"Operation"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-operation'),
+ associated_model=models.Operation),
+ validators=[valid_id(models.Operation)], required=False)
+
+ def __init__(self, *args, **kwargs):
+ super(RecordRelationsForm, self).__init__(*args, **kwargs)
+ self.fields['relation_type'].choices = \
+ models.RelationType.get_types()
+
+ @classmethod
+ def _format_lst(cls, current):
+ nc = []
+ for rel, ope in sorted(current):
+ if not nc or nc[-1][0] != rel:
+ nc.append([rel, []])
+ nc[-1][1].append(ope)
+ rendered = u";".join(
+ [u"{}{} {}".format(rel, _(u":"), u" ; ".join(opes))
+ for rel, opes in nc])
+ return rendered
+
+ @classmethod
+ def get_formated_datas(cls, cleaned_datas):
+ result, current, deleted = [], [], []
+ for data in cleaned_datas:
+ if not data:
+ continue
+ try:
+ relation_type = cls.current_model.objects.get(
+ pk=data.get('relation_type'))
+ except cls.current_model.DoesNotExist:
+ continue
+ try:
+ right_record = cls.current_related_model.objects.get(
+ pk=data.get('right_record'))
+ except cls.current_related_model.DoesNotExist:
+ continue
+ values = [unicode(relation_type), right_record.reference]
+ if data.get('DELETE'):
+ deleted.append(values)
+ else:
+ current.append(values)
+ if current:
+ nc = []
+ for rel, ope in sorted(current):
+ if not nc or nc[-1][0] != rel:
+ nc.append([rel, []])
+ nc[-1][1].append(ope)
+ result.append((_("Current relations"), cls._format_lst(current)))
+ if deleted:
+ result.append((_("Deleted relations"), u" ; ".join(deleted)))
+ return result
+
+RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True)
+RecordRelationsFormSet.form_label = _(u"Relations")
+
SRA_AGENT, created = PersonType.objects.get_or_create(txt_idx='sra_agent')
HEAD_SCIENTIST, created = PersonType.objects.get_or_create(
txt_idx='head_scientist')
@@ -393,6 +461,8 @@ class OperationSelect(TableSelect):
associated_model=Person),
validators=[valid_id(Person)])
record_quality = forms.ChoiceField(label=_(u"Record quality"))
+ report_processing = forms.ChoiceField(label=_(u"Report processing"),
+ choices=[])
virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation"))
def __init__(self, *args, **kwargs):
@@ -401,6 +471,10 @@ class OperationSelect(TableSelect):
models.OperationType.get_types()
self.fields['operation_type'].help_text = \
models.OperationType.get_help()
+ self.fields['report_processing'].choices = \
+ models.ReportState.get_types()
+ self.fields['report_processing'].help_text = \
+ models.ReportState.get_help()
self.fields['remains'].choices = models.RemainType.get_types()
self.fields['remains'].help_text = models.RemainType.get_help()
self.fields['periods'].choices = models.Period.get_types()
@@ -558,6 +632,7 @@ class OperationFormGeneral(forms.Form):
'cira_rapporteur': Person,
'operator': Organization,
'operation_type': models.OperationType,
+ 'report_processing': models.ReportState,
'archaeological_site': models.ArchaeologicalSite}
pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
scientist = forms.IntegerField(
@@ -595,6 +670,8 @@ class OperationFormGeneral(forms.Form):
report_delivery_date = forms.DateField(
label=_(u"Report delivery date"), required=False,
widget=widgets.JQueryDate)
+ report_processing = forms.ChoiceField(label=_(u"Report processing"),
+ choices=[], required=False)
surface = forms.IntegerField(
required=False, widget=widgets.AreaWidget,
label=_(u"Total surface (m2)"),
@@ -650,6 +727,10 @@ class OperationFormGeneral(forms.Form):
models.OperationType.get_types()
self.fields['operation_type'].help_text = \
models.OperationType.get_help()
+ self.fields['report_processing'].choices = \
+ models.ReportState.get_types()
+ self.fields['report_processing'].help_text = \
+ models.ReportState.get_help()
self.fields['record_quality'].choices = \
[('', '--')] + list(models.QUALITY)
# data POSTED
@@ -693,7 +774,8 @@ class OperationFormGeneral(forms.Form):
class OperationFormModifGeneral(OperationFormGeneral):
- operation_code = forms.IntegerField(label=_(u"Operation code"))
+ operation_code = forms.IntegerField(label=_(u"Operation code"),
+ required=False)
if FILES_AVAILABLE:
currents = {'associated_file': File}
associated_file = forms.IntegerField(
@@ -971,6 +1053,8 @@ class AdministrativeActOpeSelect(TableSelect):
if settings.ISHTAR_DPTS:
operation__towns__numero_insee__startswith = forms.ChoiceField(
label=_(u"Department"), choices=[])
+ act_object = forms.CharField(label=_(u"Object (full text search)"),
+ max_length=300)
history_creator = forms.IntegerField(
label=_(u"Created by"),
widget=widgets.JQueryAutoComplete(
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index 548ffdf34..3c6dc4c47 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -6,12 +6,12 @@
msgid ""
msgstr ""
-#: forms.py:69 forms.py:336 forms.py:775 forms.py:797 forms.py:801
-#: models.py:774 templates/ishtar/blocks/window_tables/parcels.html:8
+#: forms.py:69 forms.py:336 forms.py:856 forms.py:878 forms.py:882
+#: models.py:788 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr ""
-#: forms.py:72 forms.py:188 forms.py:751 models.py:764
+#: forms.py:72 forms.py:188 forms.py:832 models.py:778
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -20,18 +20,18 @@ msgstr ""
msgid "Town"
msgstr ""
-#: forms.py:74 forms.py:346 forms.py:603 forms.py:982 models.py:148
-#: models.py:580 models.py:762
+#: forms.py:74 forms.py:414 forms.py:680 forms.py:1045 models.py:160
+#: models.py:594 models.py:776
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
msgstr ""
-#: forms.py:77 models.py:765
+#: forms.py:77 models.py:779
#: templates/ishtar/blocks/window_tables/parcels.html:7
msgid "Section"
msgstr ""
-#: forms.py:80 models.py:766
+#: forms.py:80 models.py:780
msgid "Parcel number"
msgstr ""
@@ -59,341 +59,362 @@ msgstr ""
msgid "There are identical parcels."
msgstr ""
-#: forms.py:347
+#: forms.py:345
+msgid "Relation type"
+msgstr ""
+
+#: forms.py:348 ishtar_menu.py:33 models.py:239 models.py:494 models.py:519
+#: models.py:533 models.py:585 models.py:775 wizards.py:341 wizards.py:352
+#: templates/ishtar/sheet_operation.html:6
+msgid "Operation"
+msgstr ""
+
+#: forms.py:367
+msgid ":"
+msgstr ""
+
+#: forms.py:398
+msgid "Current relations"
+msgstr ""
+
+#: forms.py:400
+msgid "Deleted relations"
+msgstr ""
+
+#: forms.py:404 templates/ishtar/sheet_operation.html:100
+msgid "Relations"
+msgstr ""
+
+#: forms.py:415
msgid "Numeric reference"
msgstr ""
-#: forms.py:348
+#: forms.py:416
msgid "Name (full text search)"
msgstr ""
-#: forms.py:353 forms.py:493 forms.py:588 forms.py:959 models.py:157
+#: forms.py:421 forms.py:567 forms.py:663 forms.py:1022 models.py:169
msgid "Operation type"
msgstr ""
-#: forms.py:361 models.py:565
+#: forms.py:429 models.py:579
msgid "Scientist in charge"
msgstr ""
-#: forms.py:370 forms.py:581 models.py:145
+#: forms.py:438 forms.py:656 models.py:157
msgid "In charge"
msgstr ""
-#: forms.py:372 forms.py:495 forms.py:574 models.py:143
+#: forms.py:440 forms.py:569 forms.py:649 models.py:155
msgid "Operator"
msgstr ""
-#: forms.py:377 forms.py:859 models.py:71 models.py:159
+#: forms.py:445 forms.py:922 models.py:83 models.py:171
msgid "Remains"
msgstr ""
-#: forms.py:378 forms.py:829 forms.py:849 forms.py:856 models.py:69
-#: models.py:164
+#: forms.py:446 forms.py:901 forms.py:919 models.py:81 models.py:176
msgid "Periods"
msgstr ""
-#: forms.py:379
+#: forms.py:447
msgid "Started before"
msgstr ""
-#: forms.py:381
+#: forms.py:449
msgid "Started after"
msgstr ""
-#: forms.py:383
+#: forms.py:451
msgid "Ended before"
msgstr ""
-#: forms.py:385
+#: forms.py:453
msgid "Ended after"
msgstr ""
-#: forms.py:387
+#: forms.py:455
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:388
+#: forms.py:456
msgid "Is open?"
msgstr ""
-#: forms.py:390 forms.py:993
+#: forms.py:458 forms.py:1058
msgid "Created by"
msgstr ""
-#: forms.py:395 forms.py:642 models.py:219
+#: forms.py:463 forms.py:719 models.py:234
msgid "Record quality"
msgstr ""
-#: forms.py:396 forms.py:645 models.py:214
+#: forms.py:464 forms.py:673 models.py:188
+msgid "Report processing"
+msgstr ""
+
+#: forms.py:466 forms.py:722 models.py:229
msgid "Virtual operation"
msgstr ""
-#: forms.py:420 forms.py:952 views.py:201
+#: forms.py:494 forms.py:1015 views.py:203
msgid "Operation search"
msgstr ""
-#: forms.py:433 forms.py:954
+#: forms.py:507 forms.py:1017
msgid "You should select an operation."
msgstr ""
-#: forms.py:464
+#: forms.py:538
msgid "Associated file"
msgstr ""
-#: forms.py:468 forms.py:700 models.py:577 wizards.py:75
+#: forms.py:542 forms.py:781 models.py:591 wizards.py:78
msgid "Archaelogical file"
msgstr ""
-#: forms.py:473
+#: forms.py:547
msgid "months"
msgstr ""
-#: forms.py:473
+#: forms.py:547
msgid "years"
msgstr ""
-#: forms.py:475 models.py:129
+#: forms.py:549 models.py:141
msgid "Creation date"
msgstr ""
-#: forms.py:476
+#: forms.py:550
msgid "Start of field work"
msgstr ""
-#: forms.py:478
+#: forms.py:552
msgid "All"
msgstr ""
-#: forms.py:479
+#: forms.py:553
msgid "Preventive"
msgstr ""
-#: forms.py:480
+#: forms.py:554
msgid "Research"
msgstr ""
-#: forms.py:484
+#: forms.py:558
msgid "Slicing"
msgstr ""
-#: forms.py:487
+#: forms.py:561
msgid "Department detail"
msgstr ""
-#: forms.py:489
+#: forms.py:563
msgid "Date get from"
msgstr ""
-#: forms.py:491
+#: forms.py:565
msgid "Preventive/Research"
msgstr ""
-#: forms.py:497
+#: forms.py:571
msgid "Date after"
msgstr ""
-#: forms.py:499
+#: forms.py:573
msgid "Date before"
msgstr ""
-#: forms.py:501
+#: forms.py:575
msgid "With reports"
msgstr ""
-#: forms.py:502
+#: forms.py:576
msgid "With finds"
msgstr ""
-#: forms.py:554 forms.py:1033 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:628 forms.py:1098 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr ""
-#: forms.py:564
+#: forms.py:639
msgid "Head scientist"
msgstr ""
-#: forms.py:591 models.py:51 models.py:132 models.py:934
+#: forms.py:666 models.py:51 models.py:144 models.py:948
msgid "Start date"
msgstr ""
-#: forms.py:593 models.py:134
+#: forms.py:668 models.py:146
msgid "Excavation end date"
msgstr ""
-#: forms.py:596 models.py:135
+#: forms.py:671 models.py:147
msgid "Report delivery date"
msgstr ""
-#: forms.py:600
+#: forms.py:677
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:608 forms.py:696 models.py:149 models.py:358
+#: forms.py:685 forms.py:777 models.py:161 models.py:373
msgid "Operation code"
msgstr ""
-#: forms.py:611 models.py:206
+#: forms.py:688 models.py:221
msgid "Generic name"
msgstr ""
-#: forms.py:613 models.py:205
+#: forms.py:690 models.py:220
msgid "Operator reference"
msgstr ""
-#: forms.py:617
+#: forms.py:694
msgid "Associated archaeological sites"
msgstr ""
-#: forms.py:640 models.py:207
+#: forms.py:717 models.py:222
msgid "Comment"
msgstr ""
-#: forms.py:666
+#: forms.py:747
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
-#: forms.py:671
+#: forms.py:752
msgid "The excavation end date cannot be before the start date."
msgstr ""
-#: forms.py:686
+#: forms.py:767
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:690
+#: forms.py:771
msgid "Bad operation code"
msgstr ""
-#: forms.py:721
+#: forms.py:802
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:722 models.py:162
+#: forms.py:803 models.py:174
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr ""
-#: forms.py:723 models.py:167
+#: forms.py:804 models.py:179
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:725 models.py:170
+#: forms.py:806 models.py:182
msgid "Optional man-days"
msgstr ""
-#: forms.py:727 models.py:173
+#: forms.py:808 models.py:185
msgid "Effective man-days"
msgstr ""
-#: forms.py:737
+#: forms.py:818
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:740 models.py:189
+#: forms.py:821 models.py:204
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:742 models.py:192
+#: forms.py:823 models.py:207
msgid "Prescription on large area"
msgstr ""
-#: forms.py:745 models.py:194
+#: forms.py:826 models.py:209
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:749 forms.py:771 models.py:161 models.py:590
+#: forms.py:830 forms.py:852 models.py:173 models.py:604
msgid "Towns"
msgstr ""
-#: forms.py:778 models.py:773 models.py:932
+#: forms.py:859 models.py:787 models.py:946
msgid "Parcel"
msgstr ""
-#: forms.py:805 forms.py:825 models.py:45
+#: forms.py:886 models.py:45
msgid "Remain types"
msgstr ""
-#: forms.py:808 models.py:44
+#: forms.py:890 models.py:44
msgid "Remain type"
msgstr ""
-#: forms.py:821
-msgid "There are identical remain types"
-msgstr ""
-
-#: forms.py:832
+#: forms.py:905
msgid "Period"
msgstr ""
-#: forms.py:845
-msgid "There are identical periods"
-msgstr ""
-
-#: forms.py:853 models.py:66
+#: forms.py:916 models.py:78
msgid "Reference"
msgstr ""
-#: forms.py:854 models.py:67
+#: forms.py:917 models.py:79
msgid "Name"
msgstr ""
-#: forms.py:878
+#: forms.py:941
msgid "This reference already exists."
msgstr ""
-#: forms.py:895
+#: forms.py:958
msgid "Associated archaelogical sites"
msgstr ""
-#: forms.py:901 ishtar_menu.py:34 ishtar_menu.py:61 ishtar_menu.py:123
+#: forms.py:964 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
msgid "Search"
msgstr ""
-#: forms.py:906
+#: forms.py:969
msgid "Would you like to close this operation?"
msgstr ""
-#: forms.py:911
+#: forms.py:974
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:920 forms.py:983 models.py:507 models.py:556
+#: forms.py:983 forms.py:1046 models.py:521 models.py:570
msgid "Index"
msgstr ""
-#: forms.py:946
+#: forms.py:1009
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:958
+#: forms.py:1021
msgid "Operation's town"
msgstr ""
-#: forms.py:961
+#: forms.py:1024
msgid "Operation's year"
msgstr ""
-#: forms.py:972
+#: forms.py:1035
msgid "Documentation search"
msgstr ""
-#: forms.py:974
+#: forms.py:1037
msgid "You should select a document."
msgstr ""
-#: forms.py:987 forms.py:1036 models.py:530 models.py:550
+#: forms.py:1050 forms.py:1101 models.py:544 models.py:564
msgid "Act type"
msgstr ""
-#: forms.py:991 models.py:481
+#: forms.py:1054 models.py:495
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -401,112 +422,111 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:1013 views.py:331
+#: forms.py:1055
+msgid "Object (full text search)"
+msgstr ""
+
+#: forms.py:1078 views.py:337
msgid "Administrative act search"
msgstr ""
-#: forms.py:1028 forms.py:1082 forms.py:1149
+#: forms.py:1093 forms.py:1147 forms.py:1214
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1041 models.py:581
+#: forms.py:1106 models.py:595
+#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr ""
-#: forms.py:1044 models.py:578
+#: forms.py:1109 models.py:592
msgid "Signature date"
msgstr ""
-#: forms.py:1059
+#: forms.py:1124
msgid "Would you like to delete this administrative act?"
msgstr ""
-#: forms.py:1064
+#: forms.py:1129
msgid "Template"
msgstr ""
-#: forms.py:1088 forms.py:1092
+#: forms.py:1153 forms.py:1157
msgid "This document is not intended for this type of act."
msgstr ""
-#: forms.py:1110
+#: forms.py:1175
msgid "Doc generation"
msgstr ""
-#: forms.py:1112
+#: forms.py:1177
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1124
+#: forms.py:1189
msgid "Indexed?"
msgstr ""
-#: forms.py:1133 ishtar_menu.py:108 views.py:365
+#: forms.py:1198 ishtar_menu.py:110 views.py:371
msgctxt "admin act register"
msgid "Register"
msgstr ""
-#: ishtar_menu.py:31 models.py:224 models.py:480 models.py:505 models.py:519
-#: models.py:571 models.py:761 wizards.py:336 wizards.py:347
-#: templates/ishtar/sheet_operation.html:6
-msgid "Operation"
-msgstr ""
-
-#: ishtar_menu.py:39
+#: ishtar_menu.py:41
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:44 ishtar_menu.py:71 ishtar_menu.py:135
+#: ishtar_menu.py:46 ishtar_menu.py:73 ishtar_menu.py:136
msgid "Modification"
msgstr ""
-#: ishtar_menu.py:49
+#: ishtar_menu.py:51
msgid "Closing"
msgstr ""
-#: ishtar_menu.py:53 ishtar_menu.py:76 ishtar_menu.py:141
+#: ishtar_menu.py:55 ishtar_menu.py:78 ishtar_menu.py:141
msgid "Deletion"
msgstr ""
-#: ishtar_menu.py:58
+#: ishtar_menu.py:60
msgid "Documentation"
msgstr ""
-#: ishtar_menu.py:66 ishtar_menu.py:129 widgets.py:52
+#: ishtar_menu.py:68 ishtar_menu.py:131 widgets.py:52
msgid "Add"
msgstr ""
-#: ishtar_menu.py:85
+#: ishtar_menu.py:87
msgid "Dashboard"
msgstr ""
-#: ishtar_menu.py:88
+#: ishtar_menu.py:90
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:92 models.py:225
+#: ishtar_menu.py:94 models.py:240
#: templates/ishtar/dashboards/dashboard_operation.html:9
msgid "Operations"
msgstr ""
-#: ishtar_menu.py:104
+#: ishtar_menu.py:106
msgid "Administrative Act"
msgstr ""
-#: ishtar_menu.py:119 models.py:597
+#: ishtar_menu.py:121 models.py:611
#: templates/ishtar/sheet_administrativeact.html:6
msgid "Administrative act"
msgstr ""
-#: ishtar_menu.py:147
+#: ishtar_menu.py:146
msgid "Documents"
msgstr ""
-#: models.py:50 models.py:1396
+#: models.py:50 models.py:66 models.py:1410
msgid "Order"
msgstr ""
-#: models.py:52 models.py:935
+#: models.py:52 models.py:949
msgid "End date"
msgstr ""
@@ -522,345 +542,353 @@ msgstr ""
msgid "Types Period"
msgstr ""
-#: models.py:75
+#: models.py:69
+msgid "Report state"
+msgstr ""
+
+#: models.py:70
+msgid "Report states"
+msgstr ""
+
+#: models.py:87
msgid "Archaeological site"
msgstr ""
-#: models.py:76 models.py:211
+#: models.py:88 models.py:226
msgid "Archaeological sites"
msgstr ""
-#: models.py:79
+#: models.py:91
msgid "Can view all Archaeological site"
msgstr ""
-#: models.py:81
+#: models.py:93
msgid "Can view own Archaeological site"
msgstr ""
-#: models.py:83
+#: models.py:95
msgid "Can add own Archaeological site"
msgstr ""
-#: models.py:85
+#: models.py:97
msgid "Can change own Archaeological site"
msgstr ""
-#: models.py:87
+#: models.py:99
msgid "Can delete own Archaeological site"
msgstr ""
-#: models.py:117
+#: models.py:129
msgid "Not documented"
msgstr ""
-#: models.py:118
+#: models.py:130
msgid "Arbitrary"
msgstr ""
-#: models.py:119
+#: models.py:131
msgid "Reliable"
msgstr ""
-#: models.py:131
+#: models.py:143
msgid "Closing date"
msgstr ""
-#: models.py:138
+#: models.py:150
msgid "In charge scientist"
msgstr ""
-#: models.py:154 models.py:757
+#: models.py:166 models.py:771
msgid "File"
msgstr ""
-#: models.py:158
+#: models.py:170
msgid "Surface (m2)"
msgstr ""
-#: models.py:208
+#: models.py:223
msgid "Cached name"
msgstr ""
-#: models.py:216
+#: models.py:231
msgid ""
"If checked, it means that this operation have not been officialy registered."
msgstr ""
-#: models.py:227
+#: models.py:242
msgid "Can view all Operation"
msgstr ""
-#: models.py:228
+#: models.py:243
msgid "Can view own Operation"
msgstr ""
-#: models.py:229
+#: models.py:244
msgid "Can add own Operation"
msgstr ""
-#: models.py:230
+#: models.py:245
msgid "Can change own Operation"
msgstr ""
-#: models.py:231
+#: models.py:246
msgid "Can delete own Operation"
msgstr ""
-#: models.py:232
+#: models.py:247
msgid "Can close Operation"
msgstr ""
-#: models.py:255
+#: models.py:270
msgid "OPE"
msgstr ""
-#: models.py:315
+#: models.py:330
msgid "Intercommunal"
msgstr ""
-#: models.py:341 models.py:518
+#: models.py:356 models.py:532
msgid "Archaeological file"
msgstr ""
-#: models.py:342
+#: models.py:357
msgid "Code patriarche"
msgstr ""
-#: models.py:384
+#: models.py:399
msgid "This operation code already exists for this year"
msgstr ""
-#: models.py:453
+#: models.py:465
msgid "Inverse relation"
msgstr ""
-#: models.py:457
+#: models.py:469
msgid "Operation relation type"
msgstr ""
-#: models.py:458
+#: models.py:470
msgid "Operation relation types"
msgstr ""
-#: models.py:470
+#: models.py:483
msgid "Operation record relation"
msgstr ""
-#: models.py:471
+#: models.py:484
msgid "Operation record relations"
msgstr ""
-#: models.py:491
+#: models.py:505
msgid "Operation documentation"
msgstr ""
-#: models.py:492
+#: models.py:506
msgid "Operation documentations"
msgstr ""
-#: models.py:495
+#: models.py:509
msgid "Can view all Operation source"
msgstr ""
-#: models.py:497
+#: models.py:511
msgid "Can view own Operation source"
msgstr ""
-#: models.py:499
+#: models.py:513
msgid "Can add own Operation source"
msgstr ""
-#: models.py:501
+#: models.py:515
msgid "Can change own Operation source"
msgstr ""
-#: models.py:503
+#: models.py:517
msgid "Can delete own Operation source"
msgstr ""
-#: models.py:521
+#: models.py:535
msgid "Intended to"
msgstr ""
-#: models.py:523
+#: models.py:537
msgid "Code"
msgstr ""
-#: models.py:526
+#: models.py:540
msgid "Associated template"
msgstr ""
-#: models.py:527
+#: models.py:541
msgid "Indexed"
msgstr ""
-#: models.py:531
+#: models.py:545
msgid "Act types"
msgstr ""
-#: models.py:554
+#: models.py:568
msgid "Person in charge of the operation"
msgstr ""
-#: models.py:560
+#: models.py:574
msgid "Archaeological preventive operator"
msgstr ""
-#: models.py:568
+#: models.py:582
msgid "Signatory"
msgstr ""
-#: models.py:587
+#: models.py:601
msgid "Departments"
msgstr ""
-#: models.py:588
+#: models.py:602
msgid "Cached values get from associated departments"
msgstr ""
-#: models.py:591
+#: models.py:605
msgid "Cached values get from associated towns"
msgstr ""
-#: models.py:598
+#: models.py:612
msgid "Administrative acts"
msgstr ""
-#: models.py:601
+#: models.py:615
msgid "Can view all Administrative act"
msgstr ""
-#: models.py:603
+#: models.py:617
msgid "Can view own Administrative act"
msgstr ""
-#: models.py:605
+#: models.py:619
msgid "Can add own Administrative act"
msgstr ""
-#: models.py:607
+#: models.py:621
msgid "Can change own Administrative act"
msgstr ""
-#: models.py:609
+#: models.py:623
msgid "Can delete own Administrative act"
msgstr ""
-#: models.py:618
+#: models.py:632
#: templates/ishtar/blocks/window_tables/administrativacts.html:5
msgid "Ref."
msgstr ""
-#: models.py:701
+#: models.py:715
msgid "This index already exists for this year"
msgstr ""
-#: models.py:768
+#: models.py:782
msgid "External ID"
msgstr ""
-#: models.py:770
+#: models.py:784
msgid "Address - Locality"
msgstr ""
-#: models.py:930
+#: models.py:944
msgid "Owner"
msgstr ""
-#: models.py:938
+#: models.py:952
msgid "Parcel owner"
msgstr ""
-#: models.py:939
+#: models.py:953
msgid "Parcel owners"
msgstr ""
-#: models.py:965
+#: models.py:979
msgid "Recorded"
msgstr ""
-#: models.py:966
+#: models.py:980
msgid "Effective"
msgstr ""
-#: models.py:967
+#: models.py:981
msgid "Active"
msgstr ""
-#: models.py:968
+#: models.py:982
msgid "Field completed"
msgstr ""
-#: models.py:969
+#: models.py:983
msgid "Associated report"
msgstr ""
-#: models.py:970
+#: models.py:984
msgid "Closed"
msgstr ""
-#: models.py:971
+#: models.py:985
msgid "Documented and closed"
msgstr ""
-#: models.py:1397
+#: models.py:1411
msgid "Is preventive"
msgstr ""
-#: models.py:1400
+#: models.py:1414
msgid "Operation type old"
msgstr ""
-#: models.py:1401
+#: models.py:1415
msgid "Operation types old"
msgstr ""
-#: views.py:221
+#: views.py:224
msgid "New operation"
msgstr ""
-#: views.py:252
+#: views.py:258
msgid "Operation modification"
msgstr ""
-#: views.py:292
+#: views.py:298
msgid "Operation closing"
msgstr ""
-#: views.py:298
+#: views.py:304
msgid "Operation deletion"
msgstr ""
-#: views.py:303
+#: views.py:309
msgid "Operation: source search"
msgstr ""
-#: views.py:311
+#: views.py:317
msgid "Operation: source creation"
msgstr ""
-#: views.py:319
+#: views.py:325
msgid "Operation: source modification"
msgstr ""
-#: views.py:325
+#: views.py:331
msgid "Operation: source deletion"
msgstr ""
-#: views.py:340
+#: views.py:346
msgid "Operation: new administrative act"
msgstr ""
-#: views.py:350
+#: views.py:356
msgid "Operation: administrative act modification"
msgstr ""
-#: views.py:359
+#: views.py:365
msgid "Operation: administrative act deletion"
msgstr ""
-#: wizards.py:200
+#: wizards.py:203
msgid ""
"Warning: No Archaelogical File is provided. If you have forget it return to "
"the first step."
@@ -896,7 +924,7 @@ msgid "Internal reference:"
msgstr ""
#: templates/ishtar/sheet_administrativeact.html:15
-#: templates/ishtar/sheet_operation.html:53
+#: templates/ishtar/sheet_operation.html:55
msgid "Type:"
msgstr ""
@@ -918,7 +946,7 @@ msgid "Archaeological preventive operator:"
msgstr ""
#: templates/ishtar/sheet_administrativeact.html:21
-#: templates/ishtar/sheet_operation.html:70
+#: templates/ishtar/sheet_operation.html:73
msgid "Associated file:"
msgstr ""
@@ -927,7 +955,7 @@ msgid "Associated operation:"
msgstr ""
#: templates/ishtar/sheet_administrativeact.html:24
-#: templates/ishtar/sheet_operation.html:54
+#: templates/ishtar/sheet_operation.html:56
msgid "Surface:"
msgstr ""
@@ -1008,87 +1036,91 @@ msgstr ""
msgid "by"
msgstr ""
-#: templates/ishtar/sheet_operation.html:55
+#: templates/ishtar/sheet_operation.html:57
msgid "Cost:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:56
+#: templates/ishtar/sheet_operation.html:58
msgid "Duration:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:56
+#: templates/ishtar/sheet_operation.html:58
msgid "Day"
msgstr ""
-#: templates/ishtar/sheet_operation.html:58
+#: templates/ishtar/sheet_operation.html:61
msgid "Remains:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:59
+#: templates/ishtar/sheet_operation.html:62
msgid "Periods:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:73
+#: templates/ishtar/sheet_operation.html:76
msgid "Town planning service:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:74
+#: templates/ishtar/sheet_operation.html:77
msgid "Permit type:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:75
+#: templates/ishtar/sheet_operation.html:78
msgid "Permit reference:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:76
+#: templates/ishtar/sheet_operation.html:79
msgid "General contractor organisation:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:77
+#: templates/ishtar/sheet_operation.html:80
msgid "General contractor:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:81
+#: templates/ishtar/sheet_operation.html:84
msgid "Comment:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:83
+#: templates/ishtar/sheet_operation.html:86
msgid "Localisation"
msgstr ""
-#: templates/ishtar/sheet_operation.html:84
+#: templates/ishtar/sheet_operation.html:87
msgid "Towns:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:86
+#: templates/ishtar/sheet_operation.html:89
msgid "Main address:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:87
+#: templates/ishtar/sheet_operation.html:90
msgid "Complement:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:88
+#: templates/ishtar/sheet_operation.html:91
msgid "Postal code:"
msgstr ""
-#: templates/ishtar/sheet_operation.html:96
+#: templates/ishtar/sheet_operation.html:105
+msgid "Details"
+msgstr ""
+
+#: templates/ishtar/sheet_operation.html:110
msgid "Associated parcels"
msgstr ""
-#: templates/ishtar/sheet_operation.html:100
+#: templates/ishtar/sheet_operation.html:114
msgid "Administrativ acts"
msgstr ""
-#: templates/ishtar/sheet_operation.html:104
+#: templates/ishtar/sheet_operation.html:118
msgid "Document from this operation"
msgstr ""
-#: templates/ishtar/sheet_operation.html:109
+#: templates/ishtar/sheet_operation.html:123
msgid "Context records"
msgstr ""
-#: templates/ishtar/sheet_operation.html:121
+#: templates/ishtar/sheet_operation.html:135
msgid "Finds"
msgstr ""
@@ -1101,7 +1133,7 @@ msgstr ""
msgid "Date"
msgstr ""
-#: templates/ishtar/blocks/window_tables/administrativacts.html:16
+#: templates/ishtar/blocks/window_tables/administrativacts.html:18
msgid "No administrative act associated"
msgstr ""
diff --git a/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py b/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py
new file mode 100644
index 000000000..dc45a5485
--- /dev/null
+++ b/archaeological_operations/migrations/0046_auto__add_reportstate__add_field_historicaloperation_report_processing.py
@@ -0,0 +1,615 @@
+# -*- 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 'ReportState'
+ db.create_table('archaeological_operations_reportstate', (
+ ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)),
+ ('label', self.gf('django.db.models.fields.CharField')(max_length=100)),
+ ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)),
+ ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)),
+ ('available', self.gf('django.db.models.fields.BooleanField')(default=True)),
+ ('order', self.gf('django.db.models.fields.IntegerField')()),
+ ))
+ db.send_create_signal('archaeological_operations', ['ReportState'])
+
+ # Adding field 'HistoricalOperation.report_processing_id'
+ db.add_column('archaeological_operations_historicaloperation', 'report_processing_id',
+ self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Operation.report_processing'
+ db.add_column('archaeological_operations_operation', 'report_processing',
+ self.gf('django.db.models.fields.related.ForeignKey')(to=orm['archaeological_operations.ReportState'], null=True, blank=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting model 'ReportState'
+ db.delete_table('archaeological_operations_reportstate')
+
+ # Deleting field 'HistoricalOperation.report_processing_id'
+ db.delete_column('archaeological_operations_historicaloperation', 'report_processing_id')
+
+ # Deleting field 'Operation.report_processing'
+ db.delete_column('archaeological_operations_operation', 'report_processing_id')
+
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ '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.CharField', [], {'max_length': '60', '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2015'})
+ },
+ 'archaeological_files.filetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.permittype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.saisinetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.acttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'},
+ 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.administrativeact': {
+ 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.archaeologicalsite': {
+ 'Meta': {'object_name': 'ArchaeologicalSite'},
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaladministrativeact': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaloperation': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'},
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operation': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'},
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operationbydepartment': {
+ 'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.operationsource': {
+ 'Meta': {'object_name': 'OperationSource'},
+ 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '25', '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'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '25', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_operations.operationtypeold': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcelowner': {
+ 'Meta': {'object_name': 'ParcelOwner'},
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_operations.period': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'Period'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.recordrelations': {
+ 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.relationtype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.remaintype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.reportstate': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.arrondissement': {
+ 'Meta': {'object_name': 'Arrondissement'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.author': {
+ 'Meta': {'object_name': 'Author'},
+ 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"})
+ },
+ 'ishtar_common.authortype': {
+ 'Meta': {'object_name': 'AuthorType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.canton': {
+ 'Meta': {'object_name': 'Canton'},
+ 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.department': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Department'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.documenttemplate': {
+ 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'},
+ 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.format': {
+ 'Meta': {'object_name': 'Format'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_operations'] \ No newline at end of file
diff --git a/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py b/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py
new file mode 100644
index 000000000..c31f53436
--- /dev/null
+++ b/archaeological_operations/migrations/0047_auto__add_field_operationsource_duplicate__chg_field_operationsource_i.py
@@ -0,0 +1,606 @@
+# -*- coding: utf-8 -*-
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+
+class Migration(SchemaMigration):
+
+ def forwards(self, orm):
+ # Adding field 'OperationSource.duplicate'
+ db.add_column('archaeological_operations_operationsource', 'duplicate',
+ self.gf('django.db.models.fields.BooleanField')(default=False),
+ keep_default=False)
+
+
+ # Changing field 'OperationSource.internal_reference'
+ db.alter_column('archaeological_operations_operationsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ # Changing field 'OperationSource.reference'
+ db.alter_column('archaeological_operations_operationsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=100, null=True))
+
+ def backwards(self, orm):
+ # Deleting field 'OperationSource.duplicate'
+ db.delete_column('archaeological_operations_operationsource', 'duplicate')
+
+
+ # Changing field 'OperationSource.internal_reference'
+ db.alter_column('archaeological_operations_operationsource', 'internal_reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+
+ # Changing field 'OperationSource.reference'
+ db.alter_column('archaeological_operations_operationsource', 'reference', self.gf('django.db.models.fields.CharField')(max_length=25, null=True))
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ '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.CharField', [], {'max_length': '60', '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'}),
+ 'reference_number': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2015'})
+ },
+ 'archaeological_files.filetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.permittype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.saisinetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.acttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'},
+ 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.administrativeact': {
+ 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.archaeologicalsite': {
+ 'Meta': {'object_name': 'ArchaeologicalSite'},
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaladministrativeact': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaloperation': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'},
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operation': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'Operation'},
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'code_patriarche': ('django.db.models.fields.IntegerField', [], {'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'common_name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today'}),
+ 'eas_number': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'effective_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'excavation_end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_cost': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'fnap_financing': ('django.db.models.fields.FloatField', [], {'null': 'True', 'blank': 'True'}),
+ 'geoarchaeological_context_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_operation'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'large_area_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'negative_result': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_code': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'+'", 'to': "orm['ishtar_common.OperationType']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'operator_reference': ('django.db.models.fields.CharField', [], {'max_length': '20', 'null': 'True', 'blank': 'True'}),
+ 'optional_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'record_quality': ('django.db.models.fields.CharField', [], {'max_length': '2', 'null': 'True', 'blank': 'True'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'}),
+ 'report_delivery_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'report_processing': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ReportState']", 'null': 'True', 'blank': 'True'}),
+ 'scheduled_man_days': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operation_scientist_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.Town']", 'symmetrical': 'False'}),
+ 'virtual_operation': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'zoning_prescription': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.operationbydepartment': {
+ 'Meta': {'object_name': 'OperationByDepartment', 'db_table': "'operation_department'", 'managed': 'False'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.operationsource': {
+ 'Meta': {'object_name': 'OperationSource'},
+ 'additional_information': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_url': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'operationsource_related'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Author']"}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'duplicate': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '12', 'null': 'True', 'blank': 'True'}),
+ 'format_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Format']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'item_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'source'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'receipt_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_operations.operationtypeold': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcelowner': {
+ 'Meta': {'object_name': 'ParcelOwner'},
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_operations.period': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'Period'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.recordrelations': {
+ 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.relationtype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.remaintype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.reportstate': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.arrondissement': {
+ 'Meta': {'object_name': 'Arrondissement'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.author': {
+ 'Meta': {'object_name': 'Author'},
+ 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"})
+ },
+ 'ishtar_common.authortype': {
+ 'Meta': {'object_name': 'AuthorType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.canton': {
+ 'Meta': {'object_name': 'Canton'},
+ 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.department': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Department'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.documenttemplate': {
+ 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'},
+ 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.format': {
+ 'Meta': {'object_name': 'Format'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ '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.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_operations'] \ No newline at end of file
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index a1cd43b58..795c1a805 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -62,6 +62,18 @@ class Period(GeneralType):
return self.label
+class ReportState(GeneralType):
+ order = models.IntegerField(_(u"Order"))
+
+ class Meta:
+ verbose_name = _(u"Report state")
+ verbose_name_plural = _(u"Report states")
+ ordering = ('order',)
+
+ def __unicode__(self):
+ return self.label
+
+
class ArchaeologicalSite(BaseHistorizedItem):
reference = models.CharField(_(u"Reference"), max_length=20, unique=True)
name = models.CharField(_(u"Name"), max_length=200,
@@ -122,6 +134,7 @@ QUALITY = (('ND', _(u"Not documented")),
class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
DashboardFormItem):
QUALITY_DICT = dict(QUALITY)
+ SHOW_URL = 'show-operation'
TABLE_COLS = ['year_index', 'operation_type', 'remains', 'towns',
'start_date', 'excavation_end_date']
if FILES_AVAILABLE:
@@ -172,6 +185,9 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
# preventive
effective_man_days = models.IntegerField(_(u"Effective man-days"),
blank=True, null=True)
+ report_processing = models.ForeignKey(
+ ReportState, verbose_name=_(u"Report processing"),
+ blank=True, null=True)
if settings.COUNTRY == 'fr':
code_patriarche = models.IntegerField(u"Code PATRIARCHE", null=True,
blank=True, unique=True)
@@ -257,7 +273,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
@property
def short_label(self):
if settings.COUNTRY == 'fr':
- return self.code_patriarche
+ return self.reference
return unicode(self)
@property
@@ -457,6 +473,7 @@ class RelationType(GeneralRelationType):
class RecordRelations(GeneralRecordRelations, models.Model):
+ MAIN_ATTR = 'left_record'
left_record = models.ForeignKey(Operation,
related_name='right_relations')
right_record = models.ForeignKey(Operation,
@@ -466,6 +483,7 @@ class RecordRelations(GeneralRecordRelations, models.Model):
class Meta:
verbose_name = _(u"Operation record relation")
verbose_name_plural = _(u"Operation record relations")
+ ordering = ('left_record', 'relation_type')
post_delete.connect(post_delete_record_relation, sender=RecordRelations)
@@ -505,6 +523,7 @@ class OperationSource(Source):
null=True)
TABLE_COLS = ['operation.year', 'operation.operation_code'] + \
Source.TABLE_COLS
+ SHOW_URL = 'show-operationsource'
@property
def owner(self):
diff --git a/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html b/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html
index 0be468b59..426669cca 100644
--- a/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html
+++ b/archaeological_operations/templates/ishtar/blocks/window_tables/administrativacts.html
@@ -5,12 +5,14 @@
<th>{% trans "Ref." %}</th>
<th>{% trans "Type" %}</th>
<th>{% trans "Date" %}</th>
+ <th>{% trans "Object" %}</th>
</tr>
{% for act in data %}
<tr>
<td>{{act.full_ref}}</td>
<td class='string'>{{act.act_type}}</td>
<td>{{act.signature_date}}</td>
+ <td>{{act.act_object}}</td>
</tr>
{% empty %}
<tr><td colspan="4" class='no_items'>{% trans "No administrative act associated" %}</td></tr>
diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html
index 545b1c143..e3a53e5fa 100644
--- a/archaeological_operations/templates/ishtar/sheet_operation.html
+++ b/archaeological_operations/templates/ishtar/sheet_operation.html
@@ -48,13 +48,16 @@
{% if item.operator %}<p><label>{%trans "Operator:"%}</label> <span class='value'>{{ item.operator }}</span></p>{% endif %}
<p><label>{%trans "State:"%}</label> <span class='value'>{% if item.is_active %}{%trans "Active file"%}</span></p>
{% else %}{%trans "Closed operation"%}</span></p>
-<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p>
+{% if item.closing.date %}<p><label>{%trans "Closing date:"%}</label> <span class='value'>{{ item.closing.date }} <strong>{%trans "by" %}</strong> {{ item.closing.user }}</span></p>{% endif %}
{% endif %}
+{% field "Report delivery date" item.report_delivery_date %}
+{% field "Report processing" item.report_processing %}
<p><label>{%trans "Type:"%}</label> <span class='value'>{{ item.operation_type }}</span></p>
{% if item.surface %}<p><label>{%trans "Surface:"%}</label> <span class='value'>{{ item.surface }} m<sup>2</sup> ({{ item.surface_ha }} ha)</span></p>{% endif %}
{% if item.cost %}<p><label>{%trans "Cost:"%}</label> <span class='value'>{{ item.cost }} &euro;{% if item.cost_by_m2 %}, ({{ item.cost_by_m2 }} &euro;/m<sup>2</sup>){%endif%}</span></p>{%endif%}
{% if item.duration %}<p><label>{%trans "Duration:"%}</label> <span class='value'>{{ item.duration }} {%trans "Day"%}s</span></p>{%endif%}
+
<p><label>{%trans "Remains:"%}</label> <span class='value'>{{ item.remains.all|join:", " }}</span></p>
<p><label>{%trans "Periods:"%}</label> <span class='value'>{{ item.periods.all|join:", " }}</span></p>
@@ -78,7 +81,7 @@
{% endif %}
{% endif %}
-{% if item.comment %}<p><label>{%trans "Comment:"%}</label> <span class='value'>{{ item.comment }}</span></p>{%endif%}
+{% field "Comment" item.comment "<pre>" "</pre>" %}
<h3>{% trans "Localisation"%}</h3>
<p><label>{%trans "Towns:"%}</label> <span class='value'>{{ item.towns.all|join:", " }}</span></p>
@@ -93,6 +96,17 @@
<p><label>{%trans "Altitude (m NGF):"%}</label> <span class='value'>{{ item.altitude }}</span></p>
{% endcomment %}
+{% if item.right_relations.count %}
+<h3>{% trans "Relations"%}</h3>
+{% for rel in item.right_relations.all %}
+{% ifchanged rel.relation_type %}
+{% if forloop.counter0 %}</ul>{% endif %}
+<h4>{{rel.relation_type}}</h4><ul>{% endifchanged %}
+<li><a href="#" onclick="load_window('/show-operation/{{rel.right_record.pk}}/');" class="display_details">{% trans "Details" %}</a> {{rel.right_record}}</li>
+{% if forloop.last %}</ul>{% endif %}
+{% endfor %}
+{% endif %}
+
{% trans "Associated parcels" as parcels_label %}
{% include "ishtar/blocks/window_tables/parcels.html" %}
diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource.html b/archaeological_operations/templates/ishtar/sheet_operationsource.html
new file mode 100644
index 000000000..5bb8518a5
--- /dev/null
+++ b/archaeological_operations/templates/ishtar/sheet_operationsource.html
@@ -0,0 +1,11 @@
+{% extends "ishtar/sheet_source.html" %}
+{% load i18n window_field link_to_window %}
+
+{% block head_sheet %}
+{{block.super}}
+<h1>{% trans "Operation source"%}</h1>
+{% endblock %}
+
+{% block related %}
+{% field "Related operation" item.owner '' item.owner|link_to_window %}
+{% endblock %}
diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html b/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html
new file mode 100644
index 000000000..32362d4c2
--- /dev/null
+++ b/archaeological_operations/templates/ishtar/sheet_operationsource_pdf.html
@@ -0,0 +1,18 @@
+{% extends "ishtar/sheet_operationsource.html" %}
+{% block header %}
+<link rel="stylesheet" href="{{STATIC_URL}}/media/style_basic.css" />
+{% endblock %}
+{% block main_head %}
+{{ block.super }}
+<div id="pdfheader">
+Ishtar &ndash; {{APP_NAME}} &ndash; {{item}}
+</div>
+{% endblock %}
+{%block head_sheet%}{%endblock%}
+{%block main_foot%}
+<div id="pdffooter">
+&ndash; <pdf:pagenumber/> &ndash;
+</div>
+</body>
+</html>
+{%endblock%}
diff --git a/archaeological_operations/templates/ishtar/sheet_operationsource_window.html b/archaeological_operations/templates/ishtar/sheet_operationsource_window.html
new file mode 100644
index 000000000..8cd2c7fa1
--- /dev/null
+++ b/archaeological_operations/templates/ishtar/sheet_operationsource_window.html
@@ -0,0 +1,3 @@
+{% extends "ishtar/sheet_operationsource.html" %}
+{% block main_head %}{%endblock%}
+{% block main_foot %}{%endblock%}
diff --git a/archaeological_operations/urls.py b/archaeological_operations/urls.py
index 68ac0bad0..76723deab 100644
--- a/archaeological_operations/urls.py
+++ b/archaeological_operations/urls.py
@@ -21,6 +21,7 @@ from django.conf.urls.defaults import *
from ishtar_common.wizards import check_rights
import views
+import models
# be carreful: each check_rights must be relevant with ishtar_menu
@@ -104,7 +105,7 @@ urlpatterns += patterns(
url(r'revert-operation/(?P<pk>.+)/(?P<date>.+)$',
'revert_operation', name='revert-operation'),
url(r'show-operation(?:/(?P<pk>.+))?/(?P<type>.+)?$',
- 'show_operation', name='show-operation'),
+ 'show_operation', name=models.Operation.SHOW_URL),
url(r'show-historized-operation/(?P<pk>.+)?/(?P<date>.+)?$',
'show_operation', name='show-historized-operation'),
url(r'get-administrativeactop/(?P<type>.+)?$',
@@ -125,6 +126,8 @@ urlpatterns += patterns(
url(r'generatedoc-administrativeactop/(?P<pk>.+)?/(?P<template_pk>.+)?$',
'generatedoc_administrativeactop',
name='generatedoc-administrativeactop'),
+ url(r'show-operationsource(?:/(?P<pk>.+))?/(?P<type>.+)?$',
+ 'show_operationsource', name=models.OperationSource.SHOW_URL),
url(r'get-operationsource/(?P<type>.+)?$',
'get_operationsource', name='get-operationsource'),
url(r'dashboard_operation/$', 'dashboard_operation',
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index d3d50d791..256985f50 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -151,9 +151,11 @@ get_operation = get_item(
show_operation = show_item(models.Operation, 'operation')
revert_operation = revert_item(models.Operation)
+show_operationsource = show_item(models.OperationSource, 'operationsource')
get_operationsource = get_item(
models.OperationSource,
'get_operationsource', 'operationsource',
+ bool_fields=['duplicate'],
extra_request_keys={
'operation__towns': 'operation__towns__pk',
'operation__operation_type': 'operation__operation_type__pk',
@@ -166,6 +168,7 @@ get_administrativeactop = get_item(
'operation__towns': 'operation__towns__pk',
'act_type__intented_to': 'act_type__intented_to',
'year': 'signature_date__year',
+ 'act_object': 'act_object__icontains',
'history_creator':
'history_creator__ishtaruser__person__pk',
'operation__towns__numero_insee__startswith':
@@ -180,6 +183,7 @@ get_administrativeact = get_item(
'indexed': 'index__isnull',
'history_creator':
'history_creator__ishtaruser__person__pk',
+ 'act_object': 'act_object__icontains',
'operation__towns__numero_insee__startswith':
'operation__towns__numero_insee__startswith',
'operation__towns': 'operation__towns__pk'},
@@ -211,6 +215,7 @@ wizard_steps = [
('parcels-operation_creation', SelectedParcelFormSet),
('remains-operation_creation', RemainForm),
('periods-operation_creation', PeriodForm),
+ ('relations-operation_creation', RecordRelationsFormSet),
('final-operation_creation', FinalForm)]
if FILES_AVAILABLE:
wizard_steps.insert(0, ('filechoice-operation_creation',
@@ -250,6 +255,7 @@ operation_modification_wizard = OperationModificationWizard.as_view([
('parcelsgeneral-operation_modification', SelectedParcelGeneralFormSet),
('remains-operation_modification', RemainForm),
('periods-operation_modification', PeriodForm),
+ ('relations-operation_modification', RecordRelationsFormSet),
('final-operation_modification', FinalForm)],
label=_(u"Operation modification"),
condition_dict={
diff --git a/archaeological_operations/wizards.py b/archaeological_operations/wizards.py
index 78a5c3350..2e7b3c4b4 100644
--- a/archaeological_operations/wizards.py
+++ b/archaeological_operations/wizards.py
@@ -40,6 +40,7 @@ class OperationWizard(Wizard):
model = models.Operation
object_parcel_type = 'operation'
parcel_step_key = 'parcels'
+ relations_step_key = 'relations'
# step contening the current(s) town(s)
town_step_keys = ['towns-', 'townsgeneral-']
town_input_id = 'town' # input id of the current(s) town(s)
@@ -52,6 +53,8 @@ class OperationWizard(Wizard):
current_step = self.steps.current
if current_step.startswith(self.parcel_step_key):
templates = ['ishtar/wizard/parcels_wizard.html'] + templates
+ elif current_step.startswith(self.relations_step_key):
+ templates = ['ishtar/wizard/relations_wizard.html'] + templates
return templates
def get_current_file(self):
diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot
index b236bd19e..3eae70393 100644
--- a/archaeological_warehouse/locale/django.pot
+++ b/archaeological_warehouse/locale/django.pot
@@ -74,7 +74,7 @@ msgstr ""
msgid "Add a new container"
msgstr ""
-#: forms.py:132 ishtar_menu.py:31 views.py:94
+#: forms.py:132 ishtar_menu.py:32 views.py:94
msgid "Packaging"
msgstr ""
@@ -90,7 +90,7 @@ msgstr ""
msgid "Packaged finds"
msgstr ""
-#: ishtar_menu.py:29
+#: ishtar_menu.py:30
msgid "Find"
msgstr ""
diff --git a/example_project/settings.py b/example_project/settings.py
index 6a0bf4079..e124198aa 100644
--- a/example_project/settings.py
+++ b/example_project/settings.py
@@ -10,6 +10,9 @@ DEBUG_TOOLBAR = False
TEMPLATE_DEBUG = DEBUG
SQL_DEBUG = False
+if "test" in sys.argv:
+ sys.path.insert(0, '..')
+
IMAGE_MAX_SIZE = (1024, 768)
THUMB_MAX_SIZE = (300, 300)
@@ -17,13 +20,17 @@ CACHE_SMALLTIMEOUT = 120
CACHE_TIMEOUT = 3600
CACHE_BACKEND = 'memcached://127.0.0.1:11211/'
-ROOT_PATH = os.path.abspath(os.path.curdir) + os.path.sep
+SEP = os.path.sep
+ROOT_PATH = SEP.join(
+ os.path.abspath(__file__).split(SEP)[:-1]) + SEP
STATIC_URL = '/static/'
STATIC_ROOT = ROOT_PATH + 'static/'
BASE_URL = "/"
-
URL_PATH = ""
+# prefix for archaeological files code
+FILE_PREFIX = "SRA"
+
ODT_TEMPLATE = ROOT_PATH + "../ishtar_common/static/template.odt"
LOGIN_REDIRECT_URL = "/" + URL_PATH
diff --git a/ishtar_common/__init__.py b/ishtar_common/__init__.py
index 7b8a90c36..84ec7c204 100644
--- a/ishtar_common/__init__.py
+++ b/ishtar_common/__init__.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2014 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2014-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
from django.utils.translation import ugettext as _
@@ -10,8 +10,10 @@ _(u"email address")
VERSION = (0, 9)
+_(u"Related item")
+
+
def get_version():
return u'.'.join((unicode(num) for num in VERSION))
__version__ = get_version()
-
diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py
index 34f8ebec8..09ef64c26 100644
--- a/ishtar_common/data_importer.py
+++ b/ishtar_common/data_importer.py
@@ -1180,6 +1180,15 @@ class Importer(object):
# contruct many dict for each values
default_dict = {}
+
+ # # get default values
+ p = [attribute]
+ if c_path:
+ p = list(c_path) + p
+ p = tuple(p)
+ if p in self._defaults:
+ for k in self._defaults[p]:
+ default_dict[k] = self._defaults[p][k]
# # init with simple values that will be duplicated
for key in val.keys():
if type(val[key]) not in (list, tuple):
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 93f6b9ec6..f194caffa 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -574,12 +574,24 @@ class SourceForm(forms.Form):
title = forms.CharField(label=_(u"Title"),
validators=[validators.MaxLengthValidator(200)])
source_type = forms.ChoiceField(label=_(u"Source type"), choices=[])
+ reference = forms.CharField(
+ label=_(u"Reference"),
+ validators=[validators.MaxLengthValidator(100)], required=False)
+ internal_reference = forms.CharField(
+ label=_(u"Internal reference"),
+ validators=[validators.MaxLengthValidator(100)], required=False)
associated_url = forms.URLField(
required=False, label=_(u"Numerical ressource (web address)"))
receipt_date = forms.DateField(label=_(u"Receipt date"), required=False,
widget=widgets.JQueryDate)
creation_date = forms.DateField(label=_(u"Creation date"), required=False,
widget=widgets.JQueryDate)
+ comment = forms.CharField(label=_(u"Comment"), widget=forms.Textarea,
+ required=False)
+ description = forms.CharField(label=_(u"Description"),
+ widget=forms.Textarea, required=False)
+ duplicate = forms.BooleanField(label=_(u"Has a duplicate"),
+ required=False)
def __init__(self, *args, **kwargs):
super(SourceForm, self).__init__(*args, **kwargs)
@@ -595,6 +607,9 @@ class SourceSelect(TableSelect):
required=False)
source_type = forms.ChoiceField(label=_("Source type"), choices=[])
+ reference = forms.CharField(label=_(u"Reference"))
+ internal_reference = forms.CharField(label=_(u"Internal reference"))
+ duplicate = forms.NullBooleanField(label=_(u"Has a duplicate"))
def __init__(self, *args, **kwargs):
super(SourceSelect, self).__init__(*args, **kwargs)
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index f4deb1cbf..338719184 100644
--- a/ishtar_common/locale/django.pot
+++ b/ishtar_common/locale/django.pot
@@ -18,7 +18,7 @@ msgstr ""
msgid "Archaeological file"
msgstr ""
-#: context_processors.py:34 models.py:1110
+#: context_processors.py:34 models.py:1133
msgid "Operation"
msgstr ""
@@ -141,7 +141,7 @@ msgstr ""
msgid "Enter a valid name consisting of letters, spaces and hyphens."
msgstr ""
-#: forms.py:71 forms_common.py:419
+#: forms.py:71 forms_common.py:420
msgid "Confirm"
msgstr ""
@@ -165,15 +165,14 @@ msgstr ""
msgid "Add a new item"
msgstr ""
-#: forms.py:171 models.py:970
+#: forms.py:171 models.py:993
msgid "Template"
msgstr ""
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:268 forms_common.py:273 models.py:1036 models.py:2168
+#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2202
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
-#: templates/ishtar/sheet_person.html:30
msgid "Town"
msgstr ""
@@ -187,70 +186,64 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:66 forms_common.py:621 ishtar_menu.py:40 models.py:1895
-#: models.py:2007 models.py:2061 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:622 ishtar_menu.py:42 models.py:1918
+#: models.py:2041 models.py:2095 templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr ""
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:58 models.py:1824
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1847
#: templates/ishtar/sheet_organization.html:6
msgid "Organization"
msgstr ""
#: forms_common.py:160 forms_common.py:196 forms_common.py:226
-#: forms_common.py:259 models.py:969 models.py:1158 models.py:1375
-#: models.py:1818 models.py:1885 models.py:2154
+#: forms_common.py:259 models.py:992 models.py:1181 models.py:1398
+#: models.py:1841 models.py:1908 models.py:2188
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
-#: templates/ishtar/sheet_person.html:26
msgid "Name"
msgstr ""
-#: forms_common.py:161 models.py:1105 models.py:1506
+#: forms_common.py:161 models.py:1128 models.py:1529
msgid "Organization type"
msgstr ""
-#: forms_common.py:163 forms_common.py:262 models.py:1031
+#: forms_common.py:163 forms_common.py:263 models.py:1054
#: templates/ishtar/sheet_organization.html:14
-#: templates/ishtar/sheet_person.html:27
msgid "Address"
msgstr ""
-#: forms_common.py:165 forms_common.py:264 models.py:1032
+#: forms_common.py:165 forms_common.py:265 models.py:1055
#: templates/ishtar/sheet_organization.html:15
-#: templates/ishtar/sheet_person.html:28
msgid "Address complement"
msgstr ""
-#: forms_common.py:167 forms_common.py:266 models.py:1034
+#: forms_common.py:167 forms_common.py:267 models.py:1057
#: templates/ishtar/sheet_organization.html:16
-#: templates/ishtar/sheet_person.html:29
msgid "Postal code"
msgstr ""
-#: forms_common.py:170 forms_common.py:269 models.py:1037
+#: forms_common.py:170 forms_common.py:270 models.py:1060
msgid "Country"
msgstr ""
-#: forms_common.py:172 forms_common.py:228 forms_common.py:271
-#: forms_common.py:375 models.py:1043
+#: forms_common.py:172 forms_common.py:228 forms_common.py:272
+#: forms_common.py:376 models.py:1066
msgid "Email"
msgstr ""
-#: forms_common.py:173 forms_common.py:272 models.py:1039
+#: forms_common.py:173 forms_common.py:273 models.py:1062
#: templates/ishtar/sheet_organization.html:18
-#: templates/ishtar/sheet_person.html:31
msgid "Phone"
msgstr ""
-#: forms_common.py:174 models.py:1040
+#: forms_common.py:174 models.py:1063
#: templates/ishtar/sheet_organization.html:19
-#: templates/ishtar/sheet_person.html:32
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:197 forms_common.py:229 models.py:1529 models.py:1820
-#: models.py:2102 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1552 models.py:1843
+#: models.py:2136 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
#: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:27
#: templates/ishtar/sheet_person.html:56
@@ -262,7 +255,7 @@ msgstr ""
msgid "Organization search"
msgstr ""
-#: forms_common.py:227 forms_common.py:257 models.py:1883
+#: forms_common.py:227 forms_common.py:257 models.py:1906
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr ""
@@ -275,160 +268,160 @@ msgstr ""
msgid "Identity"
msgstr ""
-#: forms_common.py:256 forms_common.py:573 models.py:1881 models.py:2099
+#: forms_common.py:256 forms_common.py:574 models.py:1904 models.py:2133
#: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55
#: templates/ishtar/blocks/window_tables/documents.html:5
msgid "Title"
msgstr ""
-#: forms_common.py:261 models.py:1887
+#: forms_common.py:261 models.py:1910
msgid "Raw name"
msgstr ""
-#: forms_common.py:276
+#: forms_common.py:277
msgid "Current organization"
msgstr ""
-#: forms_common.py:324 forms_common.py:354 forms_common.py:358 models.py:1865
+#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1888
msgid "Person type"
msgstr ""
-#: forms_common.py:369 forms_common.py:374
+#: forms_common.py:370 forms_common.py:375
msgid "Account"
msgstr ""
-#: forms_common.py:378 wizards.py:1029
+#: forms_common.py:379 wizards.py:1141
msgid "New password"
msgstr ""
-#: forms_common.py:381
+#: forms_common.py:382
msgid "New password (confirmation)"
msgstr ""
-#: forms_common.py:400
+#: forms_common.py:401
msgid "Your password and confirmation password do not match."
msgstr ""
-#: forms_common.py:405
+#: forms_common.py:406
msgid "You must provide a correct password."
msgstr ""
-#: forms_common.py:413
+#: forms_common.py:414
msgid "This username already exists."
msgstr ""
-#: forms_common.py:420
+#: forms_common.py:421
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:429 forms_common.py:442 models.py:2169
+#: forms_common.py:430 forms_common.py:443 models.py:2203
msgid "Towns"
msgstr ""
-#: forms_common.py:439
+#: forms_common.py:440
msgid "There are identical towns."
msgstr ""
-#: forms_common.py:523
+#: forms_common.py:524
msgid "Only one choice can be checked."
msgstr ""
-#: forms_common.py:571
+#: forms_common.py:572
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:575 forms_common.py:596 models.py:1507 models.py:2082
+#: forms_common.py:576 forms_common.py:597 models.py:1530 models.py:2116
msgid "Source type"
msgstr ""
-#: forms_common.py:577 models.py:2113
+#: forms_common.py:578 models.py:2147
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:578 models.py:2115
+#: forms_common.py:579 models.py:2149
msgid "Receipt date"
msgstr ""
-#: forms_common.py:580 models.py:1656 models.py:2117
+#: forms_common.py:581 models.py:1679 models.py:2151
msgid "Creation date"
msgstr ""
-#: forms_common.py:593 forms_common.py:614 forms_common.py:647 models.py:2066
+#: forms_common.py:594 forms_common.py:615 forms_common.py:648 models.py:2100
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
-#: forms_common.py:606
+#: forms_common.py:607
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:622 models.py:1508 models.py:2056 models.py:2063
+#: forms_common.py:623 models.py:1531 models.py:2090 models.py:2097
msgid "Author type"
msgstr ""
-#: forms_common.py:640
+#: forms_common.py:641
msgid "Author selection"
msgstr ""
-#: forms_common.py:654
+#: forms_common.py:655
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:658 models.py:2067 models.py:2109
+#: forms_common.py:659 models.py:2101 models.py:2143
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
msgstr ""
-#: ishtar_menu.py:28
+#: ishtar_menu.py:29
msgid "Administration"
msgstr ""
-#: ishtar_menu.py:30 views.py:135
+#: ishtar_menu.py:31 views.py:135
msgid "Account management"
msgstr ""
-#: ishtar_menu.py:33 models.py:753 views.py:1075
+#: ishtar_menu.py:34 models.py:776 views.py:1077
msgid "Global variables"
msgstr ""
-#: ishtar_menu.py:38
+#: ishtar_menu.py:39
msgid "Directory"
msgstr ""
-#: ishtar_menu.py:42 ishtar_menu.py:60 templates/blocks/JQueryJqGrid.html:4
+#: ishtar_menu.py:45 ishtar_menu.py:69 templates/blocks/JQueryJqGrid.html:4
msgid "Search"
msgstr ""
-#: ishtar_menu.py:45 ishtar_menu.py:64 templates/ishtar/import_list.html:15
+#: ishtar_menu.py:49 ishtar_menu.py:74 templates/ishtar/import_list.html:15
msgid "Creation"
msgstr ""
-#: ishtar_menu.py:48 ishtar_menu.py:68
+#: ishtar_menu.py:53 ishtar_menu.py:79
msgid "Modification"
msgstr ""
-#: ishtar_menu.py:51 ishtar_menu.py:72 templates/ishtar/merge.html:5
+#: ishtar_menu.py:57 ishtar_menu.py:84 templates/ishtar/merge.html:5
msgid "Merge"
msgstr ""
-#: ishtar_menu.py:54 ishtar_menu.py:75 models.py:1693 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1716 widgets.py:110
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:82 models.py:1667
+#: ishtar_menu.py:96 models.py:1690
msgid "Imports"
msgstr ""
-#: ishtar_menu.py:84 views.py:1083
+#: ishtar_menu.py:99 views.py:1085
msgid "New import"
msgstr ""
-#: ishtar_menu.py:87 views.py:1097
+#: ishtar_menu.py:103 views.py:1099
msgid "Current imports"
msgstr ""
-#: ishtar_menu.py:90
+#: ishtar_menu.py:107
msgid "Old imports"
msgstr ""
@@ -444,7 +437,7 @@ msgstr ""
msgid "This item already exist."
msgstr ""
-#: models.py:256 models.py:1004 models.py:1016
+#: models.py:256 models.py:1027 models.py:1039
msgid "Label"
msgstr ""
@@ -452,613 +445,613 @@ msgstr ""
msgid "Textual ID"
msgstr ""
-#: models.py:260 models.py:1402 models.py:2124
+#: models.py:260 models.py:1425 models.py:2158
msgid "Comment"
msgstr ""
-#: models.py:261 models.py:973
+#: models.py:261 models.py:996
msgid "Available"
msgstr ""
-#: models.py:451 models.py:1448
+#: models.py:474 models.py:1471
msgid "Key"
msgstr ""
-#: models.py:457
+#: models.py:480
msgid "Key specific to an import"
msgstr ""
-#: models.py:528
+#: models.py:551
msgid "Last editor"
msgstr ""
-#: models.py:531
+#: models.py:554
msgid "Creator"
msgstr ""
-#: models.py:664 models.py:2180
+#: models.py:687 models.py:2214
msgid "Order"
msgstr ""
-#: models.py:665
+#: models.py:688
msgid "Symmetrical"
msgstr ""
-#: models.py:678
+#: models.py:701
msgid "Cannot have symmetrical and an inverse_relation"
msgstr ""
-#: models.py:746
+#: models.py:769
msgid "Variable name"
msgstr ""
-#: models.py:747
+#: models.py:770
msgid "Description of the variable"
msgstr ""
-#: models.py:749 models.py:1449
+#: models.py:772 models.py:1472
msgid "Value"
msgstr ""
-#: models.py:752
+#: models.py:775
msgid "Global variable"
msgstr ""
-#: models.py:874 models.py:904
+#: models.py:897 models.py:927
msgid "Total"
msgstr ""
-#: models.py:881 models.py:1005 models.py:1017
+#: models.py:904 models.py:1028 models.py:1040
#: templates/ishtar/dashboards/dashboard_main_detail.html:135
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
msgid "Number"
msgstr ""
-#: models.py:968
+#: models.py:991
msgid "Administrative Act"
msgstr ""
-#: models.py:972
+#: models.py:995
msgid "Associated object"
msgstr ""
-#: models.py:976
+#: models.py:999
msgid "Document template"
msgstr ""
-#: models.py:977
+#: models.py:1000
msgid "Document templates"
msgstr ""
-#: models.py:1008 models.py:1018 models.py:1651
+#: models.py:1031 models.py:1041 models.py:1674
msgid "State"
msgstr ""
-#: models.py:1022 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1045 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr ""
-#: models.py:1023
+#: models.py:1046
msgid "Departments"
msgstr ""
-#: models.py:1051
+#: models.py:1074
msgid "Merge key"
msgstr ""
-#: models.py:1106
+#: models.py:1129
msgid "Organization types"
msgstr ""
-#: models.py:1111
+#: models.py:1134
msgid "Parcels"
msgstr ""
-#: models.py:1113
+#: models.py:1136
msgid "Operation source"
msgstr ""
-#: models.py:1119 views.py:890 views.py:947
+#: models.py:1142 views.py:892 views.py:949
msgid "Archaeological files"
msgstr ""
-#: models.py:1126 views.py:893 views.py:957
+#: models.py:1149 views.py:895 views.py:959
msgid "Context records"
msgstr ""
-#: models.py:1129 views.py:895 views.py:962
+#: models.py:1152 views.py:897 views.py:964
msgid "Finds"
msgstr ""
-#: models.py:1160
+#: models.py:1183
msgid "Slug"
msgstr ""
-#: models.py:1162 models.py:1334 models.py:1376 models.py:2123
+#: models.py:1185 models.py:1357 models.py:1399 models.py:2157
#: templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: models.py:1164 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1187 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr ""
-#: models.py:1166
+#: models.py:1189
msgid "Associated model"
msgstr ""
-#: models.py:1168
+#: models.py:1191
msgid "Is template"
msgstr ""
-#: models.py:1169
+#: models.py:1192
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1173
+#: models.py:1196
msgid "Importer - Type"
msgstr ""
-#: models.py:1174
+#: models.py:1197
msgid "Importer - Types"
msgstr ""
-#: models.py:1264
+#: models.py:1287
msgid "Importer - Default"
msgstr ""
-#: models.py:1265
+#: models.py:1288
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1300
+#: models.py:1323
msgid "Importer - Default value"
msgstr ""
-#: models.py:1301
+#: models.py:1324
msgid "Importer - Default values"
msgstr ""
-#: models.py:1333
+#: models.py:1356
msgid "Column number"
msgstr ""
-#: models.py:1336
+#: models.py:1359
msgid "Required"
msgstr ""
-#: models.py:1339
+#: models.py:1362
msgid "Importer - Column"
msgstr ""
-#: models.py:1340
+#: models.py:1363
msgid "Importer - Columns"
msgstr ""
-#: models.py:1360
+#: models.py:1383
msgid "Field name"
msgstr ""
-#: models.py:1362 models.py:1396
+#: models.py:1385 models.py:1419
msgid "Force creation of new item"
msgstr ""
-#: models.py:1364 models.py:1398
+#: models.py:1387 models.py:1421
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1366 models.py:1400
+#: models.py:1389 models.py:1423
msgid "Concatenate character"
msgstr ""
-#: models.py:1370
+#: models.py:1393
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1371
+#: models.py:1394
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1378
+#: models.py:1401
msgid "Regular expression"
msgstr ""
-#: models.py:1381
+#: models.py:1404
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1382
+#: models.py:1405
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1405
+#: models.py:1428
msgid "Importer - Target"
msgstr ""
-#: models.py:1406
+#: models.py:1429
msgid "Importer - Targets"
msgstr ""
-#: models.py:1430 views.py:306
+#: models.py:1453 views.py:306
msgid "True"
msgstr ""
-#: models.py:1431 views.py:308
+#: models.py:1454 views.py:308
msgid "False"
msgstr ""
-#: models.py:1450
+#: models.py:1473
msgid "Is set"
msgstr ""
-#: models.py:1457
+#: models.py:1480
msgid "Importer - Target key"
msgstr ""
-#: models.py:1458
+#: models.py:1481
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1509 models.py:2094 models.py:2105
+#: models.py:1532 models.py:2128 models.py:2139
msgid "Format"
msgstr ""
-#: models.py:1510 models.py:2184
+#: models.py:1533 models.py:2218
msgid "Operation type"
msgstr ""
-#: models.py:1511
+#: models.py:1534
msgid "Period"
msgstr ""
-#: models.py:1512
+#: models.py:1535
msgid "Unit"
msgstr ""
-#: models.py:1513
+#: models.py:1536
msgid "Material"
msgstr ""
-#: models.py:1515
+#: models.py:1538
msgid "Conservatory state"
msgstr ""
-#: models.py:1516
+#: models.py:1539
msgid "Preservation type"
msgstr ""
-#: models.py:1517
+#: models.py:1540
msgid "Object type"
msgstr ""
-#: models.py:1519
+#: models.py:1542
msgid "Identification type"
msgstr ""
-#: models.py:1525
+#: models.py:1548
msgid "Integer"
msgstr ""
-#: models.py:1526
+#: models.py:1549
msgid "Float"
msgstr ""
-#: models.py:1527
+#: models.py:1550
msgid "String"
msgstr ""
-#: models.py:1528 templates/sheet_ope.html:86
+#: models.py:1551 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1530 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1553 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/sheet_person.html:54
#: templates/ishtar/dashboards/dashboard_main_detail.html:120
msgid "Year"
msgstr ""
-#: models.py:1531
+#: models.py:1554
msgid "String to boolean"
msgstr ""
-#: models.py:1532
+#: models.py:1555
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1533
+#: models.py:1556
msgid "Unknow type"
msgstr ""
-#: models.py:1549
+#: models.py:1572
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1550
+#: models.py:1573
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1551
+#: models.py:1574
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1561
+#: models.py:1584
msgid "Options"
msgstr ""
-#: models.py:1563
+#: models.py:1586
msgid "Split character(s)"
msgstr ""
-#: models.py:1567
+#: models.py:1590
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1568
+#: models.py:1591
msgid "Importer - Formater types"
msgstr ""
-#: models.py:1615 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1638 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr ""
-#: models.py:1616
+#: models.py:1639
msgid "Analyse in progress"
msgstr ""
-#: models.py:1617
+#: models.py:1640
msgid "Analysed"
msgstr ""
-#: models.py:1618
+#: models.py:1641
msgid "Import pending"
msgstr ""
-#: models.py:1619
+#: models.py:1642
msgid "Import in progress"
msgstr ""
-#: models.py:1620
+#: models.py:1643
msgid "Finished with errors"
msgstr ""
-#: models.py:1621
+#: models.py:1644
msgid "Finished"
msgstr ""
-#: models.py:1622
+#: models.py:1645
msgid "Archived"
msgstr ""
-#: models.py:1634
+#: models.py:1657
msgid "Imported file"
msgstr ""
-#: models.py:1637
+#: models.py:1660
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:1639
+#: models.py:1662
msgid "Encoding"
msgstr ""
-#: models.py:1641
+#: models.py:1664
msgid "Skip lines"
msgstr ""
-#: models.py:1642 templates/ishtar/import_list.html:47
+#: models.py:1665 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:1645
+#: models.py:1668
msgid "Result file"
msgstr ""
-#: models.py:1648 templates/ishtar/import_list.html:53
+#: models.py:1671 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:1654
+#: models.py:1677
msgid "Conservative import"
msgstr ""
-#: models.py:1659
+#: models.py:1682
msgid "End date"
msgstr ""
-#: models.py:1661
+#: models.py:1684
msgid "Seconds remaining"
msgstr ""
-#: models.py:1666
+#: models.py:1689
msgid "Import"
msgstr ""
-#: models.py:1683
+#: models.py:1706
msgid "Analyse"
msgstr ""
-#: models.py:1685 models.py:1688
+#: models.py:1708 models.py:1711
msgid "Re-analyse"
msgstr ""
-#: models.py:1686
+#: models.py:1709
msgid "Launch import"
msgstr ""
-#: models.py:1689
+#: models.py:1712
msgid "Re-import"
msgstr ""
-#: models.py:1690
+#: models.py:1713
msgid "Archive"
msgstr ""
-#: models.py:1692
+#: models.py:1715
msgid "Unarchive"
msgstr ""
-#: models.py:1825
+#: models.py:1848
msgid "Organizations"
msgstr ""
-#: models.py:1827
+#: models.py:1850
msgid "Can view all Organization"
msgstr ""
-#: models.py:1828
+#: models.py:1851
msgid "Can view own Organization"
msgstr ""
-#: models.py:1829
+#: models.py:1852
msgid "Can add own Organization"
msgstr ""
-#: models.py:1831
+#: models.py:1854
msgid "Can change own Organization"
msgstr ""
-#: models.py:1833
+#: models.py:1856
msgid "Can delete own Organization"
msgstr ""
-#: models.py:1861
+#: models.py:1884
msgid "Groups"
msgstr ""
-#: models.py:1866
+#: models.py:1889
msgid "Person types"
msgstr ""
-#: models.py:1873
+#: models.py:1896
msgid "Mr"
msgstr ""
-#: models.py:1874
+#: models.py:1897
msgid "Miss"
msgstr ""
-#: models.py:1875
+#: models.py:1898
msgid "Mr and Miss"
msgstr ""
-#: models.py:1876
+#: models.py:1899
msgid "Mrs"
msgstr ""
-#: models.py:1877
+#: models.py:1900
msgid "Doctor"
msgstr ""
-#: models.py:1889 models.py:1929
+#: models.py:1912 models.py:1952
msgid "Types"
msgstr ""
-#: models.py:1892
+#: models.py:1915
msgid "Is attached to"
msgstr ""
-#: models.py:1896
+#: models.py:1919
msgid "Persons"
msgstr ""
-#: models.py:1898
+#: models.py:1921
msgid "Can view all Person"
msgstr ""
-#: models.py:1899
+#: models.py:1922
msgid "Can view own Person"
msgstr ""
-#: models.py:1900
+#: models.py:1923
msgid "Can add own Person"
msgstr ""
-#: models.py:1901
+#: models.py:1924
msgid "Can change own Person"
msgstr ""
-#: models.py:1902
+#: models.py:1925
msgid "Can delete own Person"
msgstr ""
-#: models.py:2011
+#: models.py:2045
msgid "Ishtar user"
msgstr ""
-#: models.py:2012
+#: models.py:2046
msgid "Ishtar users"
msgstr ""
-#: models.py:2057
+#: models.py:2091
msgid "Author types"
msgstr ""
-#: models.py:2083
+#: models.py:2117
msgid "Source types"
msgstr ""
-#: models.py:2088
+#: models.py:2122
msgid "Support type"
msgstr ""
-#: models.py:2089
+#: models.py:2123
msgid "Support types"
msgstr ""
-#: models.py:2095
+#: models.py:2129
msgid "Formats"
msgstr ""
-#: models.py:2100
+#: models.py:2134
msgid "External ID"
msgstr ""
-#: models.py:2103
+#: models.py:2137
msgid "Support"
msgstr ""
-#: models.py:2107
+#: models.py:2141
msgid "Scale"
msgstr ""
-#: models.py:2118
+#: models.py:2152
msgid "Item number"
msgstr ""
-#: models.py:2119
+#: models.py:2153
msgid "Ref."
msgstr ""
-#: models.py:2121
+#: models.py:2155
msgid "Internal reference"
msgstr ""
-#: models.py:2125
+#: models.py:2159
msgid "Additional information"
msgstr ""
-#: models.py:2155
+#: models.py:2189
msgid "Surface (m2)"
msgstr ""
-#: models.py:2156 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2190 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2181
+#: models.py:2215
msgid "Is preventive"
msgstr ""
-#: models.py:2185
+#: models.py:2219
msgid "Operation types"
msgstr ""
-#: models.py:2211
+#: models.py:2245
msgid "Preventive"
msgstr ""
-#: models.py:2212
+#: models.py:2246
msgid "Research"
msgstr ""
@@ -1090,33 +1083,33 @@ msgstr ""
msgid "Organization deletion"
msgstr ""
-#: views.py:592 templates/base.html:80
+#: views.py:594 templates/base.html:80
#: templates/ishtar/sheet_organization.html:35
msgid "Details"
msgstr ""
-#: views.py:820 views.py:873
+#: views.py:822 views.py:875
msgid "Operation not permitted."
msgstr ""
-#: views.py:822
+#: views.py:824
#, python-format
msgid "New %s"
msgstr ""
-#: views.py:891 views.py:951
+#: views.py:893 views.py:953
msgid "Operations"
msgstr ""
-#: views.py:1144 templates/ishtar/import_list.html:43
+#: views.py:1146 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr ""
-#: views.py:1159
+#: views.py:1161
msgid "Delete import"
msgstr ""
-#: views.py:1218 views.py:1234
+#: views.py:1220 views.py:1236
msgid "Corporation manager"
msgstr ""
@@ -1136,15 +1129,15 @@ msgstr ""
msgid "Remove"
msgstr ""
-#: wizards.py:242 templates/ishtar/import_delete.html:20
+#: wizards.py:313 templates/ishtar/import_delete.html:20
msgid "Yes"
msgstr ""
-#: wizards.py:244
+#: wizards.py:315
msgid "No"
msgstr ""
-#: wizards.py:1085
+#: wizards.py:1198
#, python-format
msgid "[%(app_name)s] Account creation/modification"
msgstr ""
@@ -1654,7 +1647,7 @@ msgstr ""
msgid "Link"
msgstr ""
-#: templates/ishtar/sheet_person.html:68
+#: templates/ishtar/sheet_person.html:69
msgid "No document associated to this person"
msgstr ""
@@ -1759,6 +1752,7 @@ msgstr ""
#: templates/ishtar/wizard/default_wizard.html:35
#: templates/ishtar/wizard/parcels_wizard.html:24
+#: templates/ishtar/wizard/relations_wizard.html:23
#: templates/ishtar/wizard/search.html:20
#: templates/ishtar/wizard/towns_wizard.html:19
msgid "Add/Modify"
@@ -1776,6 +1770,7 @@ msgid ""
msgstr ""
#: templates/ishtar/wizard/parcels_wizard.html:20
+#: templates/ishtar/wizard/relations_wizard.html:20
msgid "all"
msgstr ""
diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py
new file mode 100644
index 000000000..aba1e45d5
--- /dev/null
+++ b/ishtar_common/management/commands/ishtar_import.py
@@ -0,0 +1,38 @@
+#!/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_import <command> <import_id>\n\n"\
+ "Launch the importation a configured import.\n"\
+ "<command> must be: \"analyse\", \"import\" or \"archive\"."
+
+ def handle(self, *args, **options):
+ if not args or len(args) < 2:
+ raise CommandError("<command> and <import_id> are mandatory")
+ command = args[0]
+ if args[0] not in ["analyse", "import", "archive"]:
+ raise CommandError(
+ "<command> must be: \"analyse\", \"import\" or \"archive\"."
+ )
+ try:
+ imp = models.Import.objects.get(pk=args[1])
+ except (ValueError, models.Import.DoesNotExist):
+ raise CommandError("{} is not a valid import ID".format(args[0]))
+ if command == 'analyse':
+ imp.initialize()
+ self.stdout.write("* {} analysed\n".format(imp))
+ self.stdout.flush()
+ elif command == 'import':
+ self.stdout.write("* import {}\n".format(imp))
+ imp.importation()
+ self.stdout.write("* {} imported\n".format(imp))
+ self.stdout.flush()
+ elif command == 'archive':
+ imp.archive()
+ self.stdout.write("*{} archived\n".format(imp))
+ self.stdout.flush()
diff --git a/ishtar_common/models.py b/ishtar_common/models.py
index 20b8a6f46..af1c70dce 100644
--- a/ishtar_common/models.py
+++ b/ishtar_common/models.py
@@ -1539,7 +1539,8 @@ TARGET_MODELS = [
('archaeological_finds.models.PreservationType', _(u"Preservation type")),
('archaeological_finds.models.ObjectType', _(u"Object type")),
('archaeological_context_records.models.IdentificationType',
- _("Identification type"))
+ _("Identification type")),
+ ('SupportType', _(u"Support type")),
]
TARGET_MODELS_KEYS = [tm[0] for tm in TARGET_MODELS]
@@ -1690,8 +1691,8 @@ class Import(models.Model):
verbose_name_plural = _(u"Imports")
def __unicode__(self):
- return u"%s - %s" % (unicode(self.importer_type),
- unicode(self.user))
+ return u"%s - %s - %d" % (unicode(self.importer_type),
+ unicode(self.user), self.pk)
def need_matching(self):
return bool(TargetKey.objects.filter(associated_import=self,
@@ -2150,14 +2151,15 @@ class Source(models.Model):
creation_date = models.DateField(blank=True, null=True,
verbose_name=_(u"Creation date"))
item_number = models.IntegerField(_(u"Item number"), default=1)
- reference = models.CharField(_(u"Ref."), max_length=25, null=True,
+ reference = models.CharField(_(u"Ref."), max_length=100, null=True,
blank=True)
- internal_reference = models.CharField(_(u"Internal reference"),
- max_length=25, null=True, blank=True)
+ internal_reference = models.CharField(
+ _(u"Internal ref."), max_length=100, null=True, blank=True)
description = models.TextField(_(u"Description"), blank=True, null=True)
comment = models.TextField(_(u"Comment"), blank=True, null=True)
additional_information = models.TextField(_(u"Additional information"),
blank=True, null=True)
+ duplicate = models.BooleanField(_(u"Has a duplicate"), default=False)
TABLE_COLS = ['title', 'source_type', 'authors', ]
class Meta:
@@ -2166,6 +2168,13 @@ class Source(models.Model):
def __unicode__(self):
return self.title
+ @property
+ def associated_filename(self):
+ values = [unicode(getattr(self, attr))
+ for attr in ('source_type', 'title')
+ if getattr(self, attr)]
+ return slugify(u"-".join(values))
+
if settings.COUNTRY == 'fr':
class Arrondissement(models.Model):
name = models.CharField(u"Nom", max_length=30)
diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html
index 7e7086738..e8647dadf 100644
--- a/ishtar_common/templates/blocks/JQueryJqGrid.html
+++ b/ishtar_common/templates/blocks/JQueryJqGrid.html
@@ -73,6 +73,7 @@ jQuery(document).ready(function(){
{name:'link', index:'link', width:30},
{{extra_cols|safe}}
],
+ height: 300,
sortname: 'value',
viewrecords: true,
sortorder: "asc",
diff --git a/ishtar_common/templates/blocks/inline_formset.html b/ishtar_common/templates/blocks/inline_formset.html
index 3affb7bf3..4d4042985 100644
--- a/ishtar_common/templates/blocks/inline_formset.html
+++ b/ishtar_common/templates/blocks/inline_formset.html
@@ -12,7 +12,7 @@
{% if frm.errors %}<tr><td colspan='3'><ul>{% for error in frm.errors.values %}<li>{{error}}</li>{% endfor%}</ul></td></tr>{% endif %}
<tr>{% endif %}{% for field in frm.visible_fields %}<td>
{% if field.errors %}<div class='errors'>{{ field.errors.as_ul }}</div>{% endif %}
- {{ field }}
+ {{ field|safe }}
{# Include the hidden fields in the form #}
{% if forloop.first %}
{{ formset.management_form }}
diff --git a/ishtar_common/templates/ishtar/blocks/window_field_url.html b/ishtar_common/templates/ishtar/blocks/window_field_url.html
new file mode 100644
index 000000000..b91f318b6
--- /dev/null
+++ b/ishtar_common/templates/ishtar/blocks/window_field_url.html
@@ -0,0 +1,3 @@
+{% load i18n %}
+{% if link %}<p><label>{% trans caption %}{% trans ":"%}</label>
+<span class='value'><a target="_blank" href='{{link|safe}}'>{% if link_name %}{{link_name}}{% else %}{% trans "link" %}{% endif %}</a></span></p>{% endif%}
diff --git a/ishtar_common/templates/ishtar/sheet.html b/ishtar_common/templates/ishtar/sheet.html
index 915376938..1302e4637 100644
--- a/ishtar_common/templates/ishtar/sheet.html
+++ b/ishtar_common/templates/ishtar/sheet.html
@@ -45,7 +45,9 @@ jQuery(document).ready(function(){
</script>
{% endblock %}
<div class="body">
-{% block content %}{% endblock %}
+{% block toolbar %}{% endblock %}
+{% block content %}
+{% endblock %}
</div>
</div>
{%block main_foot%}
diff --git a/ishtar_common/templates/ishtar/sheet_source.html b/ishtar_common/templates/ishtar/sheet_source.html
new file mode 100644
index 000000000..47e285017
--- /dev/null
+++ b/ishtar_common/templates/ishtar/sheet_source.html
@@ -0,0 +1,24 @@
+{% extends "ishtar/sheet.html" %}
+{% load i18n window_field link_to_window %}
+{% block toolbar %}{% include "ishtar/sheet_toolbar.html" %}{% endblock %}
+{% block content %}
+{% block general %}
+{% field "Title" item.title %}
+{% field "Source type" item.source_type %}
+{% field "Format type" item.format_type %}
+{% field "Scale" item.scale %}
+{% field_url "Web link" item.associated_url %}
+{% field_multiple "Authors" item.authors %}
+{% field "Item number" item.item_number %}
+{% field "Ref." item.reference %}
+{% field "Internal ref." item.internal_reference %}
+{% field "Has a duplicate" item.duplicate %}
+{% field "Description" item.description %}
+{% field "Comment" item.comment %}
+{% field "Additional information" item.additional_information %}
+{% endblock %}
+{% block related %}
+{% field "Related item" item.owner %}
+{% endblock %}
+{% endblock %}
+
diff --git a/ishtar_common/templates/ishtar/sheet_toolbar.html b/ishtar_common/templates/ishtar/sheet_toolbar.html
new file mode 100644
index 000000000..2e059781e
--- /dev/null
+++ b/ishtar_common/templates/ishtar/sheet_toolbar.html
@@ -0,0 +1,2 @@
+{% load i18n link_to_window %}<div class='tool'>{%trans "Export as:"%} <a href='{{item|link_to_odt}}'>{%trans "OpenOffice.org file"%}</a>, <a href='{{item|link_to_pdf}}'>{%trans "PDF file"%}</a></div>
+
diff --git a/ishtar_common/templates/ishtar/wizard/relations_wizard.html b/ishtar_common/templates/ishtar/wizard/relations_wizard.html
new file mode 100644
index 000000000..9ca592ca8
--- /dev/null
+++ b/ishtar_common/templates/ishtar/wizard/relations_wizard.html
@@ -0,0 +1,32 @@
+{% extends "ishtar/wizard/default_wizard.html" %}
+{% load i18n range inline_formset %}
+{% block extra_head %}
+{{wizard.form.media}}
+{% endblock %}
+{% block wizard_form %}
+<form action="." method="post">{% csrf_token %}
+<div class='form'>
+{{ wizard.form.media }}
+{{ wizard.management_form }}
+{{ wizard.form.management_form }}
+
+{% if wizard.form.non_form_errors%}
+<table class='formset'>
+<tr class='error'><th colspan='2'>{{wizard.form.non_form_errors}}</th></tr>
+</table>{%endif%}
+
+<table class='inline-table'>
+ <tr>{% for field in wizard.form.forms.0 %}<th{% if not forloop.last %} rowspan='2'{% endif %}>{{ field.label_tag }}</th>{% endfor %}</tr>
+ <tr><td>({% trans "all"%} <input type='checkbox' name='check-all' class='check-all'/>)</td></tr>
+ {% inline_formset 'Parcels' wizard.form.forms False %}
+</table>
+<p><button name="formset_modify" value="{{wizard.steps.current}}">{% trans "Add/Modify" %}</button></p>
+<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
+{{ previous_fields|safe }}
+{% block "validation_bar" %}
+{% include 'ishtar/wizard/validation_bar.html' %}
+{% endblock %}
+</div>
+</form>
+{% endblock %}
+
diff --git a/ishtar_common/templatetags/inline_formset.py b/ishtar_common/templatetags/inline_formset.py
index c3220f207..5e833c06f 100644
--- a/ishtar_common/templatetags/inline_formset.py
+++ b/ishtar_common/templatetags/inline_formset.py
@@ -2,11 +2,10 @@
# -*- coding: utf-8 -*-
from django import template
-from django.utils.translation import ugettext as _
-import re
register = template.Library()
+
@register.inclusion_tag('blocks/inline_formset.html')
def inline_formset(caption, formset, header=True, skip=False):
u"""
@@ -14,5 +13,5 @@ def inline_formset(caption, formset, header=True, skip=False):
For i18n of the caption be carreful to add manualy the caption label to
the translated fields
"""
- return {'caption':caption, 'formset':formset, 'header':header, 'skip':skip}
-
+ return {'caption': caption, 'formset': formset, 'header': header,
+ 'skip': skip}
diff --git a/ishtar_common/templatetags/link_to_window.py b/ishtar_common/templatetags/link_to_window.py
new file mode 100644
index 000000000..65e8b23ca
--- /dev/null
+++ b/ishtar_common/templatetags/link_to_window.py
@@ -0,0 +1,26 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+from django.core.urlresolvers import reverse
+from django.template import Library
+from django.utils.translation import ugettext as _
+
+register = Library()
+
+
+@register.filter
+def link_to_window(item):
+ return u' <a class="display_details" href="#" '\
+ 'onclick="load_window(\'{}\')">{}</a>'.format(
+ reverse(item.SHOW_URL, args=[item.pk, '']),
+ _("Details"))
+
+
+@register.filter
+def link_to_odt(item):
+ return reverse(item.SHOW_URL, args=[item.pk, 'odt'])
+
+
+@register.filter
+def link_to_pdf(item):
+ return reverse(item.SHOW_URL, args=[item.pk, 'pdf'])
diff --git a/ishtar_common/templatetags/window_field.py b/ishtar_common/templatetags/window_field.py
index 4a764166a..34071f60f 100644
--- a/ishtar_common/templatetags/window_field.py
+++ b/ishtar_common/templatetags/window_field.py
@@ -1,14 +1,26 @@
from django import template
+from django.utils.translation import ugettext_lazy as _
register = template.Library()
@register.inclusion_tag('ishtar/blocks/window_field.html')
def field(caption, data, pre_data='', post_data=''):
+ if data in (True, False):
+ data = _(unicode(data))
return {'caption': caption, 'data': data, "pre_data": pre_data,
'post_data': post_data}
+@register.inclusion_tag('ishtar/blocks/window_field_url.html')
+def field_url(caption, link, link_name=''):
+ if not link:
+ return u''
+ if not link.startswith('http://'):
+ link = 'http://' + link
+ return {'caption': caption, 'link': link, "link_name": link_name}
+
+
@register.inclusion_tag('ishtar/blocks/window_field_multiple.html')
def field_multiple(caption, data):
return {'caption': caption, 'data': data}
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index a18673b44..1320517ff 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -325,18 +325,24 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
# check rights
own = True # more restrictive by default
allowed = False
- for perm, lbl in model._meta.permissions:
- # if not specific any perm is relevant (read right)
- if specific_perms and perm not in specific_perms:
- continue
- if request.user.has_perm(model._meta.app_label + '.' + perm) \
- or (request.user.is_authenticated()
- and request.user.ishtaruser.has_right(
- perm, session=request.session)):
- allowed = True
- if "_own_" not in perm:
- own = False
- break # max right reach
+ if request.user.is_authenticated() and \
+ request.user.ishtaruser.has_right('administrator',
+ session=request.session):
+ allowed = True
+ own = False
+ else:
+ for perm, lbl in model._meta.permissions:
+ # if not specific any perm is relevant (read right)
+ if specific_perms and perm not in specific_perms:
+ continue
+ if request.user.has_perm(model._meta.app_label + '.' + perm) \
+ or (request.user.is_authenticated()
+ and request.user.ishtaruser.has_right(
+ perm, session=request.session)):
+ allowed = True
+ if "_own_" not in perm:
+ own = False
+ break # max right reach
if force_own:
own = True
EMPTY = ''
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index d00766978..031498ca3 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -326,7 +326,7 @@ class Wizard(NamedUrlWizardView):
for val in values:
item = associated_models[key].objects.get(pk=val)
if hasattr(item, 'short_label'):
- value = item.short_label
+ value = unicode(item.short_label)
else:
value = unicode(item)
rendered_values.append(value)
@@ -545,30 +545,46 @@ class Wizard(NamedUrlWizardView):
# material_index management for baseitems
obj.save()
m2m_items = {}
+ # clear
+ # TODO! perf - to be really optimized
for model in whole_associated_models:
- getattr(obj, model + 's').clear()
+ related_model = getattr(obj, model + 's')
+ # clear real m2m
+ if hasattr(related_model, 'clear'):
+ related_model.clear()
+ else:
+ for r in related_model.all():
+ r.delete()
for key, value in m2m:
+ related_model = getattr(obj, key + 's')
if key not in m2m_items:
if type(key) == dict:
vals = []
- for item in getattr(obj, key + 's').all():
+ for item in related_model.all():
v = {}
for k in value.keys():
v[k] = getattr(item, k)
vals.append(v)
m2m_items[key] = vals
else:
- m2m_items[key] = getattr(obj, key + 's').all()
+ m2m_items[key] = related_model.all()
if value not in m2m_items[key]:
if type(value) == dict:
- model = getattr(obj, key + 's').model
+ model = related_model.model
if issubclass(model, models.BaseHistorizedItem):
value['history_modifier'] = self.request.user
+ # not m2m -> foreign key
+ if not hasattr(related_model, 'clear'):
+ assert hasattr(model, 'MAIN_ATTR'), \
+ u"Must define a MAIN_ATTR for " + \
+ unicode(model.__class__)
+ value[getattr(model, 'MAIN_ATTR')] = obj
value = model.objects.create(**value)
value.save()
# check that an item is not add multiple times (forged forms)
- if value not in getattr(obj, key + 's').all():
- getattr(obj, key + 's').add(value)
+ if value not in related_model.all() and\
+ hasattr(related_model, 'add'):
+ related_model.add(value)
# necessary to manage interaction between models like
# material_index management for baseitems
obj.save()
diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po
index 9dfa7a2f7..86f2433a4 100644
--- a/translations/fr/archaeological_context_records.po
+++ b/translations/fr/archaeological_context_records.po
@@ -5,295 +5,297 @@
# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
-"PO-Revision-Date: \n"
-"Last-Translator: Étienne Loks <etienne.loks at peacefrogs net>\n"
-"Language-Team: \n"
-"Language: fr\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"PO-Revision-Date: 2015-12-23 05:03-0500\n"
+"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
+"Language-Team: \n"
+"Language: fr\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
-#: forms.py:43 forms.py:96 models.py:123
+#: forms.py:44 forms.py:97 models.py:124
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr "Identifiant"
-#: forms.py:47
+#: forms.py:48
msgid "Code PATRIARCHE"
msgstr "Code PATRIARCHE"
-#: forms.py:48
+#: forms.py:49
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:50
+#: forms.py:51
msgid "Operation's number (index by year)"
msgstr "Numéro de l'opération (index par année)"
-#: forms.py:51 forms.py:162 models.py:47
+#: forms.py:52 forms.py:163 models.py:48
msgid "Period"
msgstr "Période"
-#: forms.py:52
+#: forms.py:53
msgid "Unit type"
msgstr "Type d'unité"
-#: forms.py:53
+#: forms.py:54
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:71 forms.py:229 views.py:68
+#: forms.py:72 forms.py:259 views.py:68
msgid "Context record search"
msgstr "Recherche d'Unité d'Enregistrement"
-#: forms.py:85
+#: forms.py:86
msgid "You should at least select one context record."
msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement."
-#: forms.py:91
+#: forms.py:92
msgid "General"
msgstr "Général"
-#: forms.py:95 models.py:116 models.py:119
+#: forms.py:96 models.py:117 models.py:120
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:98 models.py:124 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:99 models.py:125 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr "Description"
-#: forms.py:100 models.py:129
+#: forms.py:101 models.py:130
msgid "Length (cm)"
msgstr "Longueur (cm)"
-#: forms.py:101 models.py:130
+#: forms.py:102 models.py:131
msgid "Width (cm)"
msgstr "Largeur (cm)"
-#: forms.py:102 models.py:131
+#: forms.py:103 models.py:132
msgid "Thickness (cm)"
msgstr "Épaisseur (cm)"
-#: forms.py:103 models.py:133
+#: forms.py:104 models.py:134
msgid "Depth (cm)"
msgstr "Profondeur (cm)"
-#: forms.py:104 models.py:139
+#: forms.py:105 models.py:140
msgid "Unit"
msgstr "Unité"
-#: forms.py:106 models.py:135
+#: forms.py:107 models.py:136
msgid "Location"
msgstr "Lieu"
-#: forms.py:151
+#: forms.py:152
msgid "This ID already exist for this operation."
msgstr "Cet identifiant existe déjà pour cette opération."
-#: forms.py:157 forms.py:181 models.py:58
+#: forms.py:158 forms.py:182 models.py:59
msgid "Dating"
msgstr "Datation"
-#: forms.py:163 models.py:48
+#: forms.py:164 models.py:49
msgid "Start date"
msgstr "Date de début"
-#: forms.py:164 models.py:49 models.py:128
+#: forms.py:165 models.py:50 models.py:129
msgid "End date"
msgstr "Date de fin"
-#: forms.py:165 models.py:52
+#: forms.py:166 models.py:53
msgid "Quality"
msgstr "Qualité"
-#: forms.py:166 models.py:34 models.py:50
+#: forms.py:167 models.py:35 models.py:51
msgid "Dating type"
msgstr "Type de datation"
-#: forms.py:185 forms.py:192 models.py:144
+#: forms.py:191 ishtar_menu.py:29 models.py:318
+msgid "Context record"
+msgstr "Unité d'Enregistrement"
+
+#: forms.py:211
+msgid "Relations"
+msgstr "Relations"
+
+#: forms.py:215 forms.py:222 models.py:145
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr "Interprétation"
-#: forms.py:188 models.py:141
+#: forms.py:218 models.py:142
msgid "Has furniture?"
msgstr "Contient du mobilier ?"
-#: forms.py:190 models.py:143
+#: forms.py:220 models.py:144
msgid "Filling"
msgstr "Remplissage"
-#: forms.py:194 models.py:164
+#: forms.py:224 models.py:165
msgid "Activity"
msgstr "Activité"
-#: forms.py:196 models.py:162
+#: forms.py:226 models.py:163
msgid "Identification"
msgstr "Identification"
-#: forms.py:198 models.py:147
+#: forms.py:228 models.py:148
msgid "TAQ"
msgstr "TAQ"
-#: forms.py:199 models.py:151
+#: forms.py:229 models.py:152
msgid "Estimated TAQ"
msgstr "TAQ estimé"
-#: forms.py:201 models.py:154
+#: forms.py:231 models.py:155
msgid "TPQ"
msgstr "TPQ"
-#: forms.py:202 models.py:158
+#: forms.py:232 models.py:159
msgid "Estimated TPQ"
msgstr "TPQ estimé"
-#: forms.py:215
+#: forms.py:245
msgid "Operation search"
msgstr "Recherche d'opérations"
-#: forms.py:217
+#: forms.py:247
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
-#: forms.py:222
+#: forms.py:252
msgid "Would you like to delete this context record?"
msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?"
-#: forms.py:231
+#: forms.py:261
msgid "You should select a context record."
msgstr "Vous devez sélectionner une Unité d'Enregistrement."
-#: forms.py:236
+#: forms.py:266
msgid "Town of the operation"
msgstr "Commune de l'opération"
-#: forms.py:238
+#: forms.py:268
msgid "Year of the operation"
msgstr "Année de l'opération"
-#: forms.py:240
+#: forms.py:270
msgid "Period of the context record"
msgstr "Période de l'Unité d'Enregistrement"
-#: forms.py:242
+#: forms.py:272
msgid "Unit type of the context record"
msgstr "Type d'unité de l'Unité d'Enregistrement"
-#: forms.py:255
+#: forms.py:285
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:257
+#: forms.py:287
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: ishtar_menu.py:27 models.py:310
-msgid "Context record"
-msgstr "Unité d'Enregistrement"
-
-#: ishtar_menu.py:28
+#: ishtar_menu.py:30
msgid "Search"
msgstr "Recherche"
-#: ishtar_menu.py:32
+#: ishtar_menu.py:34
msgid "Creation"
msgstr "Ajout"
-#: ishtar_menu.py:36 ishtar_menu.py:53
+#: ishtar_menu.py:38 ishtar_menu.py:55
msgid "Modification"
msgstr "Modification"
-#: ishtar_menu.py:40 ishtar_menu.py:59
+#: ishtar_menu.py:42 ishtar_menu.py:61
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:44
+#: ishtar_menu.py:46
msgid "Documentation"
msgstr "Documentation"
-#: ishtar_menu.py:47
+#: ishtar_menu.py:49
msgid "Add"
msgstr "Ajout"
-#: models.py:35
+#: models.py:36
msgid "Dating types"
msgstr "Types de datation"
-#: models.py:41
+#: models.py:42
msgid "Dating quality"
msgstr "Qualité de datation"
-#: models.py:42
+#: models.py:43
msgid "Dating qualities"
msgstr "Qualités de datation"
-#: models.py:54
+#: models.py:55
msgid "Precise dating"
msgstr "Datation précise"
-#: models.py:59
+#: models.py:60
msgid "Datings"
msgstr "Datations"
-#: models.py:70 models.py:84 models.py:96
+#: models.py:71 models.py:85 models.py:97
msgid "Order"
msgstr "Ordre"
-#: models.py:71
+#: models.py:72
msgid "Parent unit"
msgstr "Unité parente"
-#: models.py:75
+#: models.py:76
msgid "Type Unit"
msgstr "Type d'unité"
-#: models.py:76
+#: models.py:77
msgid "Types Unit"
msgstr "Types d'unité"
-#: models.py:87
+#: models.py:88
msgid "Type Activity"
msgstr "Type d'activité"
-#: models.py:88
+#: models.py:89
msgid "Types Activity"
msgstr "Types d'activité"
-#: models.py:99
+#: models.py:100
msgid "Type Identification"
msgstr "Type d'identification"
-#: models.py:100
+#: models.py:101
msgid "Types Identification"
msgstr "Types d'identification"
-#: models.py:117
+#: models.py:118
msgid "External ID"
msgstr "ID externe"
-#: models.py:121 wizards.py:60
+#: models.py:122 wizards.py:68
msgid "Operation"
msgstr "Opération"
-#: models.py:125
+#: models.py:126
msgid "Comment"
msgstr "Commentaires"
-#: models.py:126
+#: models.py:127
msgid "Date d'ouverture"
msgstr "Date d'ouverture"
-#: models.py:136
+#: models.py:137
msgid "A short description of the location of the context record"
msgstr "Une courte description de la situation de l'Unité d'Enregistrement"
-#: models.py:148
+#: models.py:149
msgid ""
"\"Terminus Ante Quem\" the context record can't have been created after this "
"date"
@@ -301,11 +303,11 @@ msgstr ""
"« Terminus Ante Quem » l'Unité d'Enregistrement ne peut avoir été créée "
"après cette date"
-#: models.py:152
+#: models.py:153
msgid "Estimation of a \"Terminus Ante Quem\""
msgstr "Estimation d'un « Terminus Ante Quem »"
-#: models.py:155
+#: models.py:156
msgid ""
"\"Terminus Post Quem\" the context record can't have been created before "
"this date"
@@ -313,88 +315,88 @@ msgstr ""
"« Terminus Post Quem » l'Unité d'Enregistrement ne peut avoir été créée "
"avant cette date"
-#: models.py:159
+#: models.py:160
msgid "Estimation of a \"Terminus Post Quem\""
msgstr "Estimation d'un « Terminus Post Quem »"
-#: models.py:170 models.py:171 templates/ishtar/sheet_contextrecord.html:6
+#: models.py:171 models.py:172 templates/ishtar/sheet_contextrecord.html:6
msgid "Context Record"
msgstr "Unité d'Enregistrement"
-#: models.py:173
+#: models.py:174
msgid "Can view all Context Record"
msgstr "Peut voir toutes les Unités d'Enregistrement"
-#: models.py:175
+#: models.py:176
msgid "Can view own Context Record"
msgstr "Peut voir sa propre Unité d'Enregistrement"
-#: models.py:177
+#: models.py:178
msgid "Can add own Context Record"
msgstr "Peut ajouter sa propre Unité d'Enregistrement"
-#: models.py:179
+#: models.py:180
msgid "Can change own Context Record"
msgstr "Peut changer sa propre Unité d'Enregistrement"
-#: models.py:181
+#: models.py:182
msgid "Can delete own Context Record"
msgstr "Peut supprimer sa propre Unité d'Enregistrement"
-#: models.py:190
+#: models.py:191
msgctxt "short"
msgid "Context record"
msgstr "UE"
-#: models.py:282
+#: models.py:289
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:286 templates/ishtar/sheet_contextrecord.html:71
+#: models.py:293 templates/ishtar/sheet_contextrecord.html:71
msgid "Relation type"
msgstr "Type de relation"
-#: models.py:287
+#: models.py:294
msgid "Relation types"
msgstr "Types de relation"
-#: models.py:299
+#: models.py:307
msgid "Record relation"
msgstr "Relation entre Unités d'Enregistrement"
-#: models.py:300
+#: models.py:308
msgid "Record relations"
msgstr "Relations entre Unités d'Enregistrement"
-#: models.py:307
+#: models.py:315
msgid "Context record documentation"
msgstr "Documentation d'une Unité d'Enregistrement"
-#: models.py:308
+#: models.py:316
msgid "Context record documentations"
msgstr "Documentations des Unités d'Enregistrement"
-#: views.py:77
+#: views.py:78
msgid "New context record"
msgstr "Nouvelle Unité d'Enregistrement"
-#: views.py:86
+#: views.py:88
msgid "Context record modification"
msgstr "Modification d'une Unité d'Enregistrement"
-#: views.py:100
+#: views.py:102
msgid "Context record deletion"
msgstr "Suppression d'une Unité d'Enregistrement"
-#: views.py:108
+#: views.py:110
msgid "Context record: new source"
msgstr "Unité d'Enregistrement : nouvelle documentation associée"
-#: views.py:116
+#: views.py:118
msgid "Context record: source modification"
msgstr "Unité d'Enregistrement : modification d'une documentation associée"
-#: views.py:122
+#: views.py:124
msgid "Context record: source deletion"
msgstr "Unité d'Enregistrement : suppression d'une documentation associée"
diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po
index 869358299..ca3f61ba1 100644
--- a/translations/fr/archaeological_files.po
+++ b/translations/fr/archaeological_files.po
@@ -5,32 +5,30 @@
# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
-"PO-Revision-Date: 2015-12-08 06:25-0500\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"PO-Revision-Date: 2015-12-28 06:34-0500\n"
"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
"Language-Team: \n"
"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
-#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:429
+#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431
#: models.py:75 templates/ishtar/sheet_file.html:137
msgid "Year"
msgstr "Année"
-#: forms.py:52 forms.py:196 forms.py:237 forms.py:428 models.py:78
+#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78
msgid "Numeric reference"
msgstr "Référence numérique"
-#: forms.py:54 forms.py:198 forms.py:431
+#: forms.py:54 forms.py:198 forms.py:433
msgid "Other reference"
msgstr "Autre référence"
-#: forms.py:56 forms.py:409
+#: forms.py:56 forms.py:411
msgid "File name"
msgstr "Nom du dossier"
@@ -50,23 +48,23 @@ msgstr "Parcelle (section/numéro)"
msgid "Is active?"
msgstr "Est actif ?"
-#: forms.py:62 forms.py:267 forms.py:411 models.py:91
+#: forms.py:62 forms.py:267 forms.py:413 models.py:91
msgid "General contractor"
msgstr "Aménageur"
-#: forms.py:69 forms.py:420
+#: forms.py:69 forms.py:422
msgid "Organization of general contractor"
msgstr "Organisation de l'aménageur"
-#: forms.py:76 forms.py:433 templates/ishtar/sheet_file.html:114
+#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:114
msgid "In charge"
msgstr "Responsable"
-#: forms.py:83 forms.py:446
+#: forms.py:83 forms.py:450
msgid "Created by"
msgstr "Créé par"
-#: forms.py:90 forms.py:292 forms.py:441 models.py:117
+#: forms.py:90 forms.py:292 forms.py:443 models.py:117
msgid "Permit reference"
msgstr "Référence du permis"
@@ -204,67 +202,71 @@ msgstr "Voulez vous supprimer ce dossier archéologique ?"
msgid "Index"
msgstr "Index"
-#: forms.py:381 forms.py:403 forms.py:489
+#: forms.py:381 forms.py:405 forms.py:493
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:385 forms.py:444 models.py:514
+#: forms.py:382 forms.py:447
+msgid "Object (full text search)"
+msgstr "Objet (recherche texte intégral)"
+
+#: forms.py:387 forms.py:446 models.py:514
msgid "Department"
msgstr "Département"
-#: forms.py:405
+#: forms.py:407
msgid "Signature date after"
msgstr "Date de signature après"
-#: forms.py:407
+#: forms.py:409
msgid "Signature date before"
msgstr "Date de signature avant"
-#: ishtar_menu.py:30 models.py:186 templates/ishtar/sheet_file.html:6
+#: ishtar_menu.py:33 models.py:186 templates/ishtar/sheet_file.html:6
msgid "Archaeological file"
msgstr "Dossier"
-#: ishtar_menu.py:32 ishtar_menu.py:50
+#: ishtar_menu.py:36 ishtar_menu.py:59
msgid "Search"
msgstr "Recherche"
-#: ishtar_menu.py:35
+#: ishtar_menu.py:40
msgid "Creation"
msgstr "Ajout"
-#: ishtar_menu.py:38 ishtar_menu.py:58
+#: ishtar_menu.py:44 ishtar_menu.py:67
msgid "Modification"
msgstr "Modification"
-#: ishtar_menu.py:41
+#: ishtar_menu.py:48
msgid "Closing"
msgstr "Clotûre"
-#: ishtar_menu.py:44 ishtar_menu.py:62
+#: ishtar_menu.py:52 ishtar_menu.py:71
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:47
+#: ishtar_menu.py:56
msgid "Administrative act"
msgstr "Acte administratif"
-#: ishtar_menu.py:54
+#: ishtar_menu.py:63
msgid "Add"
msgstr "Ajout"
-#: ishtar_menu.py:66
+#: ishtar_menu.py:75
msgid "Documents"
msgstr "Documents"
-#: ishtar_menu.py:72
+#: ishtar_menu.py:81
msgid "Dashboard"
msgstr "Tableau de bord"
-#: ishtar_menu.py:74
+#: ishtar_menu.py:82
msgid "General informations"
msgstr "Informations générales"
-#: ishtar_menu.py:77 models.py:187
+#: ishtar_menu.py:85 models.py:187
#: templates/ishtar/dashboards/dashboard_file.html:8
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
@@ -393,39 +395,39 @@ msgstr "Pas de commune"
msgid "File"
msgstr "Dossier"
-#: views.py:141
+#: views.py:142
msgid "File search"
msgstr "Recherche de dossier archéologique"
-#: views.py:150
+#: views.py:151
msgid "New file"
msgstr "Nouveau dossier archéologique"
-#: views.py:169
+#: views.py:170
msgid "File modification"
msgstr "Modification de dossier archéologique"
-#: views.py:192
+#: views.py:193
msgid "File closing"
msgstr "Clotûre de dossier"
-#: views.py:197
+#: views.py:198
msgid "File deletion"
msgstr "Suppression de dossier archéologique"
-#: views.py:204
+#: views.py:205
msgid "File: search administrative act"
msgstr "Dossier : rechercher un acte administratif"
-#: views.py:213
+#: views.py:214
msgid "File: new administrative act"
msgstr "Dossier : nouvel acte administratif"
-#: views.py:223
+#: views.py:224
msgid "File: administrative act modification"
msgstr "Dossier : modification d'acte administratif"
-#: views.py:232
+#: views.py:233
msgid "File: administrative act deletion"
msgstr "Dossier : suppression acte administratif"
diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po
index 1039d1d51..648d6a566 100644
--- a/translations/fr/archaeological_files_pdl.po
+++ b/translations/fr/archaeological_files_pdl.po
@@ -5,15 +5,13 @@
# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"PO-Revision-Date: 2015-12-08 06:24-0500\n"
"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
"Language-Team: \n"
"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
"X-Generator: Zanata 3.7.3\n"
diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po
index 2a2a14a67..8c13f4a07 100644
--- a/translations/fr/archaeological_finds.po
+++ b/translations/fr/archaeological_finds.po
@@ -5,33 +5,31 @@
# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"PO-Revision-Date: 2015-11-27 07:42-0500\n"
"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
"Language-Team: \n"
"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
-#: forms.py:45 ishtar_menu.py:27 models.py:344 models.py:530 models.py:600
+#: forms.py:45 ishtar_menu.py:31 models.py:345 models.py:539 models.py:609
#: templates/ishtar/sheet_find.html:6
msgid "Find"
msgstr "Mobilier"
-#: forms.py:54 forms.py:289 models.py:108 models.py:286
+#: forms.py:54 forms.py:289 models.py:108 models.py:287
msgid "Free-ID"
msgstr "Identifiant libre"
-#: forms.py:56 models.py:328
+#: forms.py:56 models.py:329
msgid "Previous ID"
msgstr "Identifiant précédent"
-#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:287
-#: models.py:553 templates/ishtar/sheet_find.html:87
+#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:288
+#: models.py:562 templates/ishtar/sheet_find.html:87
msgid "Description"
msgstr "Description"
@@ -39,7 +37,7 @@ msgstr "Description"
msgid "Batch/object"
msgstr "Lot/objet"
-#: forms.py:62 models.py:314
+#: forms.py:62 models.py:315
msgid "Is complete?"
msgstr "Est complet ?"
@@ -47,11 +45,11 @@ msgstr "Est complet ?"
msgid "Material type"
msgstr "Type de matériau"
-#: forms.py:66 forms.py:162 models.py:60 models.py:291
+#: forms.py:66 forms.py:162 models.py:60 models.py:292
msgid "Conservatory state"
msgstr "État sanitaire"
-#: forms.py:69 models.py:85 models.py:317
+#: forms.py:69 models.py:85 models.py:318
msgid "Object types"
msgstr "Types d'objet"
@@ -59,55 +57,55 @@ msgstr "Types d'objet"
msgid "Preservation type"
msgstr "Type de conservation"
-#: forms.py:74 forms.py:164 models.py:319
+#: forms.py:74 forms.py:164 models.py:320
msgid "Integrity"
msgstr "Intégrité"
-#: forms.py:76 models.py:320
+#: forms.py:76 models.py:321
msgid "Length (cm)"
msgstr "Longueur (cm)"
-#: forms.py:77 models.py:321
+#: forms.py:77 models.py:322
msgid "Width (cm)"
msgstr "Largeur (cm)"
-#: forms.py:78 models.py:322
+#: forms.py:78 models.py:323
msgid "Height (cm)"
msgstr "Hauteur (cm)"
-#: forms.py:79 models.py:323
+#: forms.py:79 models.py:324
msgid "Diameter (cm)"
msgstr "Diametre (cm)"
-#: forms.py:80 forms.py:294 models.py:296
+#: forms.py:80 forms.py:294 models.py:297
msgid "Volume (l)"
msgstr "Volume (l)"
-#: forms.py:81 forms.py:295 models.py:297
+#: forms.py:81 forms.py:295 models.py:298
msgid "Weight (g)"
msgstr "Poids (g)"
-#: forms.py:82 forms.py:296 models.py:300
+#: forms.py:82 forms.py:296 models.py:301
msgid "Find number"
msgstr "Mobilier (en nombre)"
-#: forms.py:83 models.py:324
+#: forms.py:83 models.py:325
msgid "Mark"
msgstr "Marque"
-#: forms.py:84 forms.py:169 models.py:330
+#: forms.py:84 forms.py:169 models.py:331
msgid "Check"
msgstr "Vérification"
-#: forms.py:86 models.py:332
+#: forms.py:86 models.py:333
msgid "Check date"
msgstr "Date de vérification"
-#: forms.py:87 models.py:112 models.py:325 models.py:554
+#: forms.py:87 models.py:112 models.py:326 models.py:563
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:90 models.py:326
+#: forms.py:90 models.py:327
msgid "Comment on dating"
msgstr "Commentaire général sur les datations"
@@ -124,7 +122,7 @@ msgstr ""
"<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le "
"ratio est conservé).</p>"
-#: forms.py:119 forms.py:147 models.py:308
+#: forms.py:119 forms.py:147 models.py:309
msgid "Dating"
msgstr "Datation"
@@ -132,11 +130,11 @@ msgstr "Datation"
msgid "Period"
msgstr "Période"
-#: forms.py:125 forms.py:231 models.py:565 models.py:606
+#: forms.py:125 forms.py:231 models.py:574 models.py:615
msgid "Start date"
msgstr "Date de début"
-#: forms.py:127 forms.py:233 models.py:566 models.py:607
+#: forms.py:127 forms.py:233 models.py:575 models.py:616
msgid "End date"
msgstr "Date de fin"
@@ -176,15 +174,15 @@ msgstr "Recherche de mobilier"
msgid "Base treatment"
msgstr "Traitement de base"
-#: forms.py:216 models.py:542 models.py:556
+#: forms.py:216 models.py:551 models.py:565
msgid "Treatment type"
msgstr "Type de traitement"
-#: forms.py:218 models.py:563 models.py:604
+#: forms.py:218 models.py:572 models.py:613
msgid "Person"
msgstr "Individu"
-#: forms.py:224 models.py:558
+#: forms.py:224 models.py:567
msgid "Location"
msgstr "Lieu"
@@ -192,7 +190,7 @@ msgstr "Lieu"
msgid "Upstream finds"
msgstr "Mobilier amont"
-#: forms.py:247 models.py:345
+#: forms.py:247 models.py:346
msgid "Finds"
msgstr "Mobilier"
@@ -248,23 +246,23 @@ msgstr "Recherche de document"
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: ishtar_menu.py:29
+#: ishtar_menu.py:34
msgid "Search"
msgstr "Recherche"
-#: ishtar_menu.py:33 ishtar_menu.py:48
+#: ishtar_menu.py:39 ishtar_menu.py:56
msgid "Creation"
msgstr "Ajout"
-#: ishtar_menu.py:37 ishtar_menu.py:53
+#: ishtar_menu.py:44 ishtar_menu.py:61
msgid "Modification"
msgstr "Modification"
-#: ishtar_menu.py:45
+#: ishtar_menu.py:53
msgid "Documentation"
msgstr "Documentation"
-#: ishtar_menu.py:58
+#: ishtar_menu.py:66
msgid "Deletion"
msgstr "Suppression"
@@ -280,7 +278,7 @@ msgstr "Recommandation"
msgid "Parent material"
msgstr "Matériau parent"
-#: models.py:51 models.py:289
+#: models.py:51 models.py:290
msgid "Material types"
msgstr "Types de matériau"
@@ -316,7 +314,7 @@ msgstr "Objet"
msgid "Batch"
msgstr "Lot"
-#: models.py:109 models.py:283 models.py:548
+#: models.py:109 models.py:284 models.py:557
msgid "External ID"
msgstr "ID externe"
@@ -348,7 +346,7 @@ msgstr "Valeur en cache - ne pas éditer"
msgid "Complete ID"
msgstr "ID complet"
-#: models.py:136 models.py:281
+#: models.py:136 models.py:282
msgid "Base find"
msgstr "Mobilier de base"
@@ -424,123 +422,123 @@ msgstr "Mobilier de base - Intérêt spécifique"
msgid "Base find - Discovery date"
msgstr "Mobilier de base - Date de découverte"
-#: models.py:285
+#: models.py:286
msgid "Order"
msgstr "Ordre"
-#: models.py:294
+#: models.py:295
msgid "Type of preservation to consider"
msgstr "Mesures de conservation à envisager"
-#: models.py:298
+#: models.py:299
msgid "Weight unit"
msgstr "Unité de poids"
-#: models.py:304 templates/ishtar/sheet_find.html:61
+#: models.py:305 templates/ishtar/sheet_find.html:61
msgid "Upstream treatment"
msgstr "Traitement amont"
-#: models.py:307 templates/ishtar/sheet_find.html:63
+#: models.py:308 templates/ishtar/sheet_find.html:63
msgid "Downstream treatment"
msgstr "Traitement aval"
-#: models.py:312 models.py:551 templates/ishtar/sheet_find.html:65
+#: models.py:313 models.py:560 templates/ishtar/sheet_find.html:65
msgid "Container"
msgstr "Contenant"
-#: models.py:347
+#: models.py:348
msgid "Can view all Find"
msgstr "Peut voir tout le Mobilier"
-#: models.py:348
+#: models.py:349
msgid "Can view own Find"
msgstr "Peut voir son propre Mobilier"
-#: models.py:349
+#: models.py:350
msgid "Can add own Find"
msgstr "Peut ajouter son propre Mobilier"
-#: models.py:350
+#: models.py:351
msgid "Can change own Find"
msgstr "Peut changer son propre Mobilier"
-#: models.py:351
+#: models.py:352
msgid "Can delete own Find"
msgstr "Peut supprimer son propre Mobilier"
-#: models.py:356
+#: models.py:357
msgid "FIND"
msgstr "MOBILIER"
-#: models.py:528
+#: models.py:537
msgid "Find documentation"
msgstr "Documentation de mobilier"
-#: models.py:529
+#: models.py:538
msgid "Find documentations"
msgstr "Documentations de mobilier"
-#: models.py:539
+#: models.py:548
msgid "Virtual"
msgstr "Virtuel"
-#: models.py:543
+#: models.py:552
msgid "Treatment types"
msgstr "Types de traitement"
-#: models.py:560
+#: models.py:569
msgid "Other location"
msgstr "Autre lieu"
-#: models.py:570 models.py:592
+#: models.py:579 models.py:601
msgid "Treatment"
msgstr "Traitement"
-#: models.py:571
+#: models.py:580
msgid "Treatments"
msgstr "Traitements"
-#: models.py:573
+#: models.py:582
msgid "Can view all Treatment"
msgstr "Peut voir tous les Traitements"
-#: models.py:574
+#: models.py:583
msgid "Can view own Treatment"
msgstr "Peut voir son propre Traitement"
-#: models.py:575
+#: models.py:584
msgid "Can add own Treatment"
msgstr "Peut ajouter son propre Traitement"
-#: models.py:576
+#: models.py:585
msgid "Can change own Treatment"
msgstr "Peut changer son propre Traitement"
-#: models.py:577
+#: models.py:586
msgid "Can delete own Treatment"
msgstr "Peut supprimer son propre Traitement"
-#: models.py:583
+#: models.py:592
msgid "by"
msgstr "par"
-#: models.py:589
+#: models.py:598
msgid "Treatment documentation"
msgstr "Documentation d'un traitement"
-#: models.py:590
+#: models.py:599
msgid "Treament documentations"
msgstr "Documentations des traitements"
-#: models.py:603
+#: models.py:612
msgid "Administrative act"
msgstr "Acte administratif"
-#: models.py:610
+#: models.py:619
msgid "Property"
msgstr "Propriété"
-#: models.py:611
+#: models.py:620
msgid "Properties"
msgstr "Propriétés"
@@ -564,11 +562,11 @@ msgstr "Mobilier : modification de documentation associée"
msgid "Find: source deletion"
msgstr "Mobilier : suppression de mobilier associé"
-#: wizards.py:63
+#: wizards.py:61
msgid "Operation"
msgstr "Opération"
-#: wizards.py:64
+#: wizards.py:62
msgid "Context record"
msgstr "Unité d'Enregistrement"
diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po
index 702820cc8..f12f83eaa 100644
--- a/translations/fr/archaeological_operations.po
+++ b/translations/fr/archaeological_operations.po
@@ -2,27 +2,25 @@
# Copyright (C) 2010-2015
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.
-# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
-"PO-Revision-Date: 2015-11-20 06:39-0500\n"
-"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
-"Language-Team: \n"
-"Language: fr\n"
"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"PO-Revision-Date: 2015-12-28 06:35-0500\n"
+"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
+"Language-Team: \n"
+"Language: fr\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
-#: forms.py:69 forms.py:336 forms.py:775 forms.py:797 forms.py:801
-#: models.py:774 templates/ishtar/blocks/window_tables/parcels.html:8
+#: forms.py:69 forms.py:336 forms.py:856 forms.py:878 forms.py:882
+#: models.py:788 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr "Parcelles"
-#: forms.py:72 forms.py:188 forms.py:751 models.py:764
+#: forms.py:72 forms.py:188 forms.py:832 models.py:778
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -31,18 +29,18 @@ msgstr "Parcelles"
msgid "Town"
msgstr "Commune"
-#: forms.py:74 forms.py:346 forms.py:603 forms.py:982 models.py:148
-#: models.py:580 models.py:762
+#: forms.py:74 forms.py:414 forms.py:680 forms.py:1045 models.py:160
+#: models.py:594 models.py:776
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
msgstr "Année"
-#: forms.py:77 models.py:765
+#: forms.py:77 models.py:779
#: templates/ishtar/blocks/window_tables/parcels.html:7
msgid "Section"
msgstr "Section"
-#: forms.py:80 models.py:766
+#: forms.py:80 models.py:780
msgid "Parcel number"
msgstr "Numéro de parcelle"
@@ -70,208 +68,238 @@ msgstr "exemple : \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou \"AB:24,AC:42\""
msgid "There are identical parcels."
msgstr "Il y a des parcelles identiques."
-#: forms.py:347
+#: forms.py:345
+msgid "Relation type"
+msgstr "Type de relation"
+
+#: forms.py:348 ishtar_menu.py:33 models.py:239 models.py:494 models.py:519
+#: models.py:533 models.py:585 models.py:775 wizards.py:341 wizards.py:352
+#: templates/ishtar/sheet_operation.html:6
+msgid "Operation"
+msgstr "Opération"
+
+#: forms.py:367
+msgid ":"
+msgstr ": "
+
+#: forms.py:398
+msgid "Current relations"
+msgstr "Relations actuelles"
+
+#: forms.py:400
+msgid "Deleted relations"
+msgstr "Relations supprimées"
+
+#: forms.py:404 templates/ishtar/sheet_operation.html:100
+msgid "Relations"
+msgstr "Relations"
+
+#: forms.py:415
msgid "Numeric reference"
msgstr "Identifiant numérique"
-#: forms.py:348
+#: forms.py:416
msgid "Name (full text search)"
msgstr "Nom (recherche texte intégral)"
-#: forms.py:353 forms.py:493 forms.py:588 forms.py:959 models.py:157
+#: forms.py:421 forms.py:567 forms.py:663 forms.py:1022 models.py:169
msgid "Operation type"
msgstr "Type d'opération"
-#: forms.py:361 models.py:565
+#: forms.py:429 models.py:579
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:370 forms.py:581 models.py:145
+#: forms.py:438 forms.py:656 models.py:157
msgid "In charge"
msgstr "Responsable"
-#: forms.py:372 forms.py:495 forms.py:574 models.py:143
+#: forms.py:440 forms.py:569 forms.py:649 models.py:155
msgid "Operator"
msgstr "Opérateur"
-#: forms.py:377 forms.py:859 models.py:71 models.py:159
+#: forms.py:445 forms.py:922 models.py:83 models.py:171
msgid "Remains"
msgstr "Vestiges"
-#: forms.py:378 forms.py:829 forms.py:849 forms.py:856 models.py:69
-#: models.py:164
+#: forms.py:446 forms.py:901 forms.py:919 models.py:81 models.py:176
msgid "Periods"
msgstr "Périodes"
-#: forms.py:379
+#: forms.py:447
msgid "Started before"
msgstr "Commencé avant"
-#: forms.py:381
+#: forms.py:449
msgid "Started after"
msgstr "Commencé après"
-#: forms.py:383
+#: forms.py:451
msgid "Ended before"
msgstr "Terminé avant"
-#: forms.py:385
+#: forms.py:453
msgid "Ended after"
msgstr "Terminé après"
-#: forms.py:387
+#: forms.py:455
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:388
+#: forms.py:456
msgid "Is open?"
msgstr "Est ouvert ?"
-#: forms.py:390 forms.py:993
+#: forms.py:458 forms.py:1058
msgid "Created by"
msgstr "Créé par"
-#: forms.py:395 forms.py:642 models.py:219
+#: forms.py:463 forms.py:719 models.py:234
msgid "Record quality"
msgstr "Qualité d'enregistrement"
-#: forms.py:396 forms.py:645 models.py:214
+#: forms.py:464 forms.py:673 models.py:188
+msgid "Report processing"
+msgstr "Traitement du rapport"
+
+#: forms.py:466 forms.py:722 models.py:229
msgid "Virtual operation"
msgstr "Opération virtuelle"
-#: forms.py:420 forms.py:952 views.py:201
+#: forms.py:494 forms.py:1015 views.py:203
msgid "Operation search"
msgstr "Recherche d'opérations"
-#: forms.py:433 forms.py:954
+#: forms.py:507 forms.py:1017
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
-#: forms.py:464
+#: forms.py:538
msgid "Associated file"
msgstr "Dossier associé"
-#: forms.py:468 forms.py:700 models.py:577 wizards.py:75
+#: forms.py:542 forms.py:781 models.py:591 wizards.py:78
msgid "Archaelogical file"
msgstr "Dossier"
-#: forms.py:473
+#: forms.py:547
msgid "months"
msgstr "mois"
-#: forms.py:473
+#: forms.py:547
msgid "years"
msgstr "années"
-#: forms.py:475 models.py:129
+#: forms.py:549 models.py:141
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:476
+#: forms.py:550
msgid "Start of field work"
msgstr "Début du travail de terrain"
-#: forms.py:478
+#: forms.py:552
msgid "All"
msgstr "Tous"
-#: forms.py:479
+#: forms.py:553
msgid "Preventive"
msgstr "Préventif"
-#: forms.py:480
+#: forms.py:554
msgid "Research"
msgstr "Programmée"
-#: forms.py:484
+#: forms.py:558
msgid "Slicing"
msgstr "Découpage"
-#: forms.py:487
+#: forms.py:561
msgid "Department detail"
msgstr "Détail par département"
-#: forms.py:489
+#: forms.py:563
msgid "Date get from"
msgstr "Date obtenue depuis"
-#: forms.py:491
+#: forms.py:565
msgid "Preventive/Research"
msgstr "Préventif/Programmé"
-#: forms.py:497
+#: forms.py:571
msgid "Date after"
msgstr "Date après"
-#: forms.py:499
+#: forms.py:573
msgid "Date before"
msgstr "Date avant"
-#: forms.py:501
+#: forms.py:575
msgid "With reports"
msgstr "Avec un rapport"
-#: forms.py:502
+#: forms.py:576
msgid "With finds"
msgstr "Avec du matériel"
-#: forms.py:554 forms.py:1033 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:628 forms.py:1098 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr "Général"
-#: forms.py:564
+#: forms.py:639
msgid "Head scientist"
msgstr "Responsable scientifique"
-#: forms.py:591 models.py:51 models.py:132 models.py:934
+#: forms.py:666 models.py:51 models.py:144 models.py:948
msgid "Start date"
msgstr "Date de début"
-#: forms.py:593 models.py:134
+#: forms.py:668 models.py:146
msgid "Excavation end date"
msgstr "Date de fin de chantier"
-#: forms.py:596 models.py:135
+#: forms.py:671 models.py:147
msgid "Report delivery date"
msgstr "Date de livraison du rapport"
-#: forms.py:600
+#: forms.py:677
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:608 forms.py:696 models.py:149 models.py:358
+#: forms.py:685 forms.py:777 models.py:161 models.py:373
msgid "Operation code"
msgstr "Code de l'opération"
-#: forms.py:611 models.py:206
+#: forms.py:688 models.py:221
msgid "Generic name"
msgstr "Nom générique"
-#: forms.py:613 models.py:205
+#: forms.py:690 models.py:220
msgid "Operator reference"
msgstr "Référence de l'opérateur"
-#: forms.py:617
+#: forms.py:694
msgid "Associated archaeological sites"
msgstr "Sites archéologiques associés"
-#: forms.py:640 models.py:207
+#: forms.py:717 models.py:222
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:666
+#: forms.py:747
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:671
+#: forms.py:752
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."
+msgstr ""
+"La date de fin de chantier ne peut être antérieure à la date de début."
-#: forms.py:686
+#: forms.py:767
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
@@ -280,108 +308,100 @@ 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:690
+#: forms.py:771
msgid "Bad operation code"
msgstr "Mauvais code d'opération"
-#: forms.py:721
+#: forms.py:802
msgid "Preventive informations - excavation"
msgstr "Information archéologie préventive - fouille"
-#: forms.py:722 models.py:162
+#: forms.py:803 models.py:174
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr "Coût (euros)"
-#: forms.py:723 models.py:167
+#: forms.py:804 models.py:179
msgid "Scheduled man-days"
msgstr "Jours-hommes prévus"
-#: forms.py:725 models.py:170
+#: forms.py:806 models.py:182
msgid "Optional man-days"
msgstr "Jours-hommes optionnels"
-#: forms.py:727 models.py:173
+#: forms.py:808 models.py:185
msgid "Effective man-days"
msgstr "Jours-hommes effectifs"
-#: forms.py:737
+#: forms.py:818
msgid "Preventive informations - diagnostic"
msgstr "Information archéologie préventive - diagnostic"
-#: forms.py:740 models.py:189
+#: forms.py:821 models.py:204
msgid "Prescription on zoning"
msgstr "Prescription sur zonage"
-#: forms.py:742 models.py:192
+#: forms.py:823 models.py:207
msgid "Prescription on large area"
msgstr "Prescription sur une vaste surface"
-#: forms.py:745 models.py:194
+#: forms.py:826 models.py:209
msgid "Prescription on geoarchaeological context"
msgstr "Prescription sur un contexte géoarchéologique"
-#: forms.py:749 forms.py:771 models.py:161 models.py:590
+#: forms.py:830 forms.py:852 models.py:173 models.py:604
msgid "Towns"
msgstr "Communes"
-#: forms.py:778 models.py:773 models.py:932
+#: forms.py:859 models.py:787 models.py:946
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:805 forms.py:825 models.py:45
+#: forms.py:886 models.py:45
msgid "Remain types"
msgstr "Types de vestige"
-#: forms.py:808 models.py:44
+#: forms.py:890 models.py:44
msgid "Remain type"
msgstr "Type de vestige"
-#: forms.py:821
-msgid "There are identical remain types"
-msgstr "Il y a des types de vestige identiques."
-
-#: forms.py:832
+#: forms.py:905
msgid "Period"
msgstr "Période"
-#: forms.py:845
-msgid "There are identical periods"
-msgstr "Il y a des périodes identiques."
-
-#: forms.py:853 models.py:66
+#: forms.py:916 models.py:78
msgid "Reference"
msgstr "Référence"
-#: forms.py:854 models.py:67
+#: forms.py:917 models.py:79
msgid "Name"
msgstr "Nom"
-#: forms.py:878
+#: forms.py:941
msgid "This reference already exists."
msgstr "Cette référence existe déjà."
-#: forms.py:895
+#: forms.py:958
msgid "Associated archaelogical sites"
msgstr "Entités archéologiques associées"
-#: forms.py:901 ishtar_menu.py:34 ishtar_menu.py:61 ishtar_menu.py:123
+#: forms.py:964 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
msgid "Search"
msgstr "Recherche"
-#: forms.py:906
+#: forms.py:969
msgid "Would you like to close this operation?"
msgstr "Voulez-vous clore cette opération ?"
-#: forms.py:911
+#: forms.py:974
msgid "Would you like to delete this operation?"
msgstr "Voulez-vous supprimer cette opération ?"
-#: forms.py:920 forms.py:983 models.py:507 models.py:556
+#: forms.py:983 forms.py:1046 models.py:521 models.py:570
msgid "Index"
msgstr "Index"
-#: forms.py:946
+#: forms.py:1009
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
@@ -390,27 +410,27 @@ msgstr ""
"Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "
"plus grande que %(last_val)d"
-#: forms.py:958
+#: forms.py:1021
msgid "Operation's town"
msgstr "Commune de l'opération"
-#: forms.py:961
+#: forms.py:1024
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:972
+#: forms.py:1035
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:974
+#: forms.py:1037
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: forms.py:987 forms.py:1036 models.py:530 models.py:550
+#: forms.py:1050 forms.py:1101 models.py:544 models.py:564
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:991 models.py:481
+#: forms.py:1054 models.py:495
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -418,112 +438,111 @@ msgstr "Type d'acte"
msgid "Department"
msgstr "Département"
-#: forms.py:1013 views.py:331
+#: forms.py:1055
+msgid "Object (full text search)"
+msgstr "Objet (recherche texte intégral)"
+
+#: forms.py:1078 views.py:337
msgid "Administrative act search"
msgstr "Recherche d'actes administratifs"
-#: forms.py:1028 forms.py:1082 forms.py:1149
+#: forms.py:1093 forms.py:1147 forms.py:1214
msgid "You should select an administrative act."
msgstr "Vous devez sélectionner un acte administratif."
-#: forms.py:1041 models.py:581
+#: forms.py:1106 models.py:595
+#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr "Objet"
-#: forms.py:1044 models.py:578
+#: forms.py:1109 models.py:592
msgid "Signature date"
msgstr "Date de signature"
-#: forms.py:1059
+#: forms.py:1124
msgid "Would you like to delete this administrative act?"
msgstr "Voulez-vous supprimer cet acte administratif ?"
-#: forms.py:1064
+#: forms.py:1129
msgid "Template"
msgstr "Patron"
-#: forms.py:1088 forms.py:1092
+#: forms.py:1153 forms.py:1157
msgid "This document is not intended for this type of act."
msgstr "Ce document n'est pas destiné à ce type d'acte."
-#: forms.py:1110
+#: forms.py:1175
msgid "Doc generation"
msgstr "Génération de document"
-#: forms.py:1112
+#: forms.py:1177
msgid "Generate the associated doc?"
msgstr "Générer le document associé ?"
-#: forms.py:1124
+#: forms.py:1189
msgid "Indexed?"
msgstr "Indexé ?"
-#: forms.py:1133 ishtar_menu.py:108 views.py:365
+#: forms.py:1198 ishtar_menu.py:110 views.py:371
msgctxt "admin act register"
msgid "Register"
msgstr "Registre"
-#: ishtar_menu.py:31 models.py:224 models.py:480 models.py:505 models.py:519
-#: models.py:571 models.py:761 wizards.py:336 wizards.py:347
-#: templates/ishtar/sheet_operation.html:6
-msgid "Operation"
-msgstr "Opération"
-
-#: ishtar_menu.py:39
+#: ishtar_menu.py:41
msgid "Creation"
msgstr "Ajout"
-#: ishtar_menu.py:44 ishtar_menu.py:71 ishtar_menu.py:135
+#: ishtar_menu.py:46 ishtar_menu.py:73 ishtar_menu.py:136
msgid "Modification"
msgstr "Modification"
-#: ishtar_menu.py:49
+#: ishtar_menu.py:51
msgid "Closing"
msgstr "Clôture"
-#: ishtar_menu.py:53 ishtar_menu.py:76 ishtar_menu.py:141
+#: ishtar_menu.py:55 ishtar_menu.py:78 ishtar_menu.py:141
msgid "Deletion"
msgstr "Suppression"
-#: ishtar_menu.py:58
+#: ishtar_menu.py:60
msgid "Documentation"
msgstr "Documentation"
-#: ishtar_menu.py:66 ishtar_menu.py:129 widgets.py:52
+#: ishtar_menu.py:68 ishtar_menu.py:131 widgets.py:52
msgid "Add"
msgstr "Ajout"
-#: ishtar_menu.py:85
+#: ishtar_menu.py:87
msgid "Dashboard"
msgstr "Tableau de bord"
-#: ishtar_menu.py:88
+#: ishtar_menu.py:90
msgid "General informations"
msgstr "Informations générales"
-#: ishtar_menu.py:92 models.py:225
+#: ishtar_menu.py:94 models.py:240
#: templates/ishtar/dashboards/dashboard_operation.html:9
msgid "Operations"
msgstr "Opérations"
-#: ishtar_menu.py:104
+#: ishtar_menu.py:106
msgid "Administrative Act"
msgstr "Acte administratif"
-#: ishtar_menu.py:119 models.py:597
+#: ishtar_menu.py:121 models.py:611
#: templates/ishtar/sheet_administrativeact.html:6
msgid "Administrative act"
msgstr "Acte administratif"
-#: ishtar_menu.py:147
+#: ishtar_menu.py:146
msgid "Documents"
msgstr "Documents"
-#: models.py:50 models.py:1396
+#: models.py:50 models.py:66 models.py:1410
msgid "Order"
msgstr "Ordre"
-#: models.py:52 models.py:935
+#: models.py:52 models.py:949
msgid "End date"
msgstr "Date de fin"
@@ -539,347 +558,355 @@ msgstr "Type de période"
msgid "Types Period"
msgstr "Types de période"
-#: models.py:75
+#: models.py:69
+msgid "Report state"
+msgstr "État de rapport"
+
+#: models.py:70
+msgid "Report states"
+msgstr "États de rapports"
+
+#: models.py:87
msgid "Archaeological site"
msgstr "Entité archéologique"
-#: models.py:76 models.py:211
+#: models.py:88 models.py:226
msgid "Archaeological sites"
msgstr "Entités archéologiques"
-#: models.py:79
+#: models.py:91
msgid "Can view all Archaeological site"
msgstr "Peut voir toutes les Entités archéologiques"
-#: models.py:81
+#: models.py:93
msgid "Can view own Archaeological site"
msgstr "Peut voir ses propres Entités archéologiques"
-#: models.py:83
+#: models.py:95
msgid "Can add own Archaeological site"
msgstr "Peut ajouter ses propres Entités archéologique"
-#: models.py:85
+#: models.py:97
msgid "Can change own Archaeological site"
msgstr "Peut changer ses propres Entités archéologiques"
-#: models.py:87
+#: models.py:99
msgid "Can delete own Archaeological site"
msgstr "Peut supprimer ses propres Entités archéologiques"
-#: models.py:117
+#: models.py:129
msgid "Not documented"
msgstr "Non documenté"
-#: models.py:118
+#: models.py:130
msgid "Arbitrary"
msgstr "Arbitraire"
-#: models.py:119
+#: models.py:131
msgid "Reliable"
msgstr "Fiable"
-#: models.py:131
+#: models.py:143
msgid "Closing date"
msgstr "Date de clôture"
-#: models.py:138
+#: models.py:150
msgid "In charge scientist"
msgstr "Responsable scientifique"
-#: models.py:154 models.py:757
+#: models.py:166 models.py:771
msgid "File"
msgstr "Dossier"
-#: models.py:158
+#: models.py:170
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:208
+#: models.py:223
msgid "Cached name"
msgstr "Nom en cache"
-#: models.py:216
+#: models.py:231
msgid ""
"If checked, it means that this operation have not been officialy registered."
msgstr ""
"Si coché, cela signifie que cette opération n'a pas été officiellement "
"enregistrée."
-#: models.py:227
+#: models.py:242
msgid "Can view all Operation"
msgstr "Peut voir toutes les Opérations"
-#: models.py:228
+#: models.py:243
msgid "Can view own Operation"
msgstr "Peut voir sa propre Opération"
-#: models.py:229
+#: models.py:244
msgid "Can add own Operation"
msgstr "Peut ajouter sa propre Opération"
-#: models.py:230
+#: models.py:245
msgid "Can change own Operation"
msgstr "Peut changer sa propre Opération"
-#: models.py:231
+#: models.py:246
msgid "Can delete own Operation"
msgstr "Peut supprimer sa propre Opération"
-#: models.py:232
+#: models.py:247
msgid "Can close Operation"
msgstr "Peut fermer une Opération"
-#: models.py:255
+#: models.py:270
msgid "OPE"
msgstr "OPE"
-#: models.py:315
+#: models.py:330
msgid "Intercommunal"
msgstr "Intercommunal"
-#: models.py:341 models.py:518
+#: models.py:356 models.py:532
msgid "Archaeological file"
msgstr "Dossier archéologique"
-#: models.py:342
+#: models.py:357
msgid "Code patriarche"
msgstr "Code patriarche"
-#: models.py:384
+#: models.py:399
msgid "This operation code already exists for this year"
msgstr "Ce code d'opération existe déjà pour cette année."
-#: models.py:453
+#: models.py:465
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:457
+#: models.py:469
msgid "Operation relation type"
msgstr "Type de relation entre opérations"
-#: models.py:458
+#: models.py:470
msgid "Operation relation types"
msgstr "Types de relation entre opérations"
-#: models.py:470
+#: models.py:483
msgid "Operation record relation"
msgstr "Relation entre opérations"
-#: models.py:471
+#: models.py:484
msgid "Operation record relations"
msgstr "Relations entre opérations"
-#: models.py:491
+#: models.py:505
msgid "Operation documentation"
msgstr "Documentation d'une opération"
-#: models.py:492
+#: models.py:506
msgid "Operation documentations"
msgstr "Documentations des opérations"
-#: models.py:495
+#: models.py:509
msgid "Can view all Operation source"
msgstr "Peut voir toutes les Sources des opérations"
-#: models.py:497
+#: models.py:511
msgid "Can view own Operation source"
msgstr "Peut voir sa propre Source d'opération"
-#: models.py:499
+#: models.py:513
msgid "Can add own Operation source"
msgstr "Peut ajouter sa propre Source d'opération"
-#: models.py:501
+#: models.py:515
msgid "Can change own Operation source"
msgstr "Peut changer sa propre Source d'opération"
-#: models.py:503
+#: models.py:517
msgid "Can delete own Operation source"
msgstr "Peut supprimer sa propre Source d'opération"
-#: models.py:521
+#: models.py:535
msgid "Intended to"
msgstr "Destiné à"
-#: models.py:523
+#: models.py:537
msgid "Code"
msgstr "Code"
-#: models.py:526
+#: models.py:540
msgid "Associated template"
msgstr "Patron associé"
-#: models.py:527
+#: models.py:541
msgid "Indexed"
msgstr "Indexé"
-#: models.py:531
+#: models.py:545
msgid "Act types"
msgstr "Types d'acte"
-#: models.py:554
+#: models.py:568
msgid "Person in charge of the operation"
msgstr "Responsable d'opération"
-#: models.py:560
+#: models.py:574
msgid "Archaeological preventive operator"
msgstr "Opérateur d'archéologie préventive"
-#: models.py:568
+#: models.py:582
msgid "Signatory"
msgstr "Signataire"
-#: models.py:587
+#: models.py:601
msgid "Departments"
msgstr "Départements"
-#: models.py:588
+#: models.py:602
msgid "Cached values get from associated departments"
msgstr "Valeur en cache des départements associés"
-#: models.py:591
+#: models.py:605
msgid "Cached values get from associated towns"
msgstr "Valeur en cache des communes associées"
-#: models.py:598
+#: models.py:612
msgid "Administrative acts"
msgstr "Actes administratifs"
-#: models.py:601
+#: models.py:615
msgid "Can view all Administrative act"
msgstr "Peut voir tous les Actes administratifs"
-#: models.py:603
+#: models.py:617
msgid "Can view own Administrative act"
msgstr "Peut voir son propre Acte administratif"
-#: models.py:605
+#: models.py:619
msgid "Can add own Administrative act"
msgstr "Peut ajouter son propre Acte administratif"
-#: models.py:607
+#: models.py:621
msgid "Can change own Administrative act"
msgstr "Peut changer son propre Acte administratif"
-#: models.py:609
+#: models.py:623
msgid "Can delete own Administrative act"
msgstr "Peut supprimer son propre Acte administratif"
-#: models.py:618
+#: models.py:632
#: templates/ishtar/blocks/window_tables/administrativacts.html:5
msgid "Ref."
msgstr "Réf."
-#: models.py:701
+#: models.py:715
msgid "This index already exists for this year"
msgstr "Cet index existe déjà pour cette année."
-#: models.py:768
+#: models.py:782
msgid "External ID"
msgstr "ID externe"
-#: models.py:770
+#: models.py:784
msgid "Address - Locality"
msgstr "Adresse - Lieu-dit"
-#: models.py:930
+#: models.py:944
msgid "Owner"
msgstr "Propriétaire"
-#: models.py:938
+#: models.py:952
msgid "Parcel owner"
msgstr "Propriétaire de parcelle"
-#: models.py:939
+#: models.py:953
msgid "Parcel owners"
msgstr "Propriétaires de parcelle"
-#: models.py:965
+#: models.py:979
msgid "Recorded"
msgstr "Enregistré"
-#: models.py:966
+#: models.py:980
msgid "Effective"
msgstr "Effectif"
-#: models.py:967
+#: models.py:981
msgid "Active"
msgstr "Actif"
-#: models.py:968
+#: models.py:982
msgid "Field completed"
msgstr "Terrain achevé"
-#: models.py:969
+#: models.py:983
msgid "Associated report"
msgstr "Rapport associé"
-#: models.py:970
+#: models.py:984
msgid "Closed"
msgstr "Fermé"
-#: models.py:971
+#: models.py:985
msgid "Documented and closed"
msgstr "Documenté et clos"
-#: models.py:1397
+#: models.py:1411
msgid "Is preventive"
msgstr "Préventif"
-#: models.py:1400
+#: models.py:1414
msgid "Operation type old"
msgstr "Type d'opération - ancien"
-#: models.py:1401
+#: models.py:1415
msgid "Operation types old"
msgstr "Types d'opération - ancien"
-#: views.py:221
+#: views.py:224
msgid "New operation"
msgstr "Nouvelle opération"
-#: views.py:252
+#: views.py:258
msgid "Operation modification"
msgstr "Modification d'une opération"
-#: views.py:292
+#: views.py:298
msgid "Operation closing"
msgstr "Clôture de l'opération"
-#: views.py:298
+#: views.py:304
msgid "Operation deletion"
msgstr "Suppression d'une opération"
-#: views.py:303
+#: views.py:309
msgid "Operation: source search"
msgstr "Opération : recherche de documentation associée"
-#: views.py:311
+#: views.py:317
msgid "Operation: source creation"
msgstr "Opération : nouvelle documentation associée"
-#: views.py:319
+#: views.py:325
msgid "Operation: source modification"
msgstr "Opération : modification d'une documentation associée"
-#: views.py:325
+#: views.py:331
msgid "Operation: source deletion"
msgstr "Opération : suppression d'une documentation associée"
-#: views.py:340
+#: views.py:346
msgid "Operation: new administrative act"
msgstr "Opération : nouvel acte administratif"
-#: views.py:350
+#: views.py:356
msgid "Operation: administrative act modification"
msgstr "Opération : modification d'un acte administratif"
-#: views.py:359
+#: views.py:365
msgid "Operation: administrative act deletion"
msgstr "Opération : suppression d'un acte administratif"
-#: wizards.py:200
+#: wizards.py:203
msgid ""
"Warning: No Archaelogical File is provided. If you have forget it return to "
"the first step."
@@ -917,7 +944,7 @@ msgid "Internal reference:"
msgstr "Référence interne :"
#: templates/ishtar/sheet_administrativeact.html:15
-#: templates/ishtar/sheet_operation.html:53
+#: templates/ishtar/sheet_operation.html:55
msgid "Type:"
msgstr "Type :"
@@ -939,7 +966,7 @@ msgid "Archaeological preventive operator:"
msgstr "Opérateur d'archéologie préventive :"
#: templates/ishtar/sheet_administrativeact.html:21
-#: templates/ishtar/sheet_operation.html:70
+#: templates/ishtar/sheet_operation.html:73
msgid "Associated file:"
msgstr "Dossier associé :"
@@ -948,7 +975,7 @@ msgid "Associated operation:"
msgstr "Opération associée :"
#: templates/ishtar/sheet_administrativeact.html:24
-#: templates/ishtar/sheet_operation.html:54
+#: templates/ishtar/sheet_operation.html:56
msgid "Surface:"
msgstr "Surface :"
@@ -1029,87 +1056,91 @@ msgstr "Date de clôture :"
msgid "by"
msgstr "par"
-#: templates/ishtar/sheet_operation.html:55
+#: templates/ishtar/sheet_operation.html:57
msgid "Cost:"
msgstr "Coût :"
-#: templates/ishtar/sheet_operation.html:56
+#: templates/ishtar/sheet_operation.html:58
msgid "Duration:"
msgstr "Durée :"
-#: templates/ishtar/sheet_operation.html:56
+#: templates/ishtar/sheet_operation.html:58
msgid "Day"
msgstr "Jour"
-#: templates/ishtar/sheet_operation.html:58
+#: templates/ishtar/sheet_operation.html:61
msgid "Remains:"
msgstr "Vestiges :"
-#: templates/ishtar/sheet_operation.html:59
+#: templates/ishtar/sheet_operation.html:62
msgid "Periods:"
msgstr "Périodes :"
-#: templates/ishtar/sheet_operation.html:73
+#: templates/ishtar/sheet_operation.html:76
msgid "Town planning service:"
msgstr "Service instructeur :"
-#: templates/ishtar/sheet_operation.html:74
+#: templates/ishtar/sheet_operation.html:77
msgid "Permit type:"
msgstr "Type de permis :"
-#: templates/ishtar/sheet_operation.html:75
+#: templates/ishtar/sheet_operation.html:78
msgid "Permit reference:"
msgstr "Référence du permis :"
-#: templates/ishtar/sheet_operation.html:76
+#: templates/ishtar/sheet_operation.html:79
msgid "General contractor organisation:"
msgstr "Organisation de l'aménageur :"
-#: templates/ishtar/sheet_operation.html:77
+#: templates/ishtar/sheet_operation.html:80
msgid "General contractor:"
msgstr "Aménageur :"
-#: templates/ishtar/sheet_operation.html:81
+#: templates/ishtar/sheet_operation.html:84
msgid "Comment:"
msgstr "Commentaire :"
-#: templates/ishtar/sheet_operation.html:83
+#: templates/ishtar/sheet_operation.html:86
msgid "Localisation"
msgstr "Localisation"
-#: templates/ishtar/sheet_operation.html:84
+#: templates/ishtar/sheet_operation.html:87
msgid "Towns:"
msgstr "Communes :"
-#: templates/ishtar/sheet_operation.html:86
+#: templates/ishtar/sheet_operation.html:89
msgid "Main address:"
msgstr "Adresse des terrains :"
-#: templates/ishtar/sheet_operation.html:87
+#: templates/ishtar/sheet_operation.html:90
msgid "Complement:"
msgstr "Complément :"
-#: templates/ishtar/sheet_operation.html:88
+#: templates/ishtar/sheet_operation.html:91
msgid "Postal code:"
msgstr "Code postal :"
-#: templates/ishtar/sheet_operation.html:96
+#: templates/ishtar/sheet_operation.html:105
+msgid "Details"
+msgstr "Détails"
+
+#: templates/ishtar/sheet_operation.html:110
msgid "Associated parcels"
msgstr "Parcelles associées"
-#: templates/ishtar/sheet_operation.html:100
+#: templates/ishtar/sheet_operation.html:114
msgid "Administrativ acts"
msgstr "Actes administratifs"
-#: templates/ishtar/sheet_operation.html:104
+#: templates/ishtar/sheet_operation.html:118
msgid "Document from this operation"
msgstr "Documents de cette opération"
-#: templates/ishtar/sheet_operation.html:109
+#: templates/ishtar/sheet_operation.html:123
msgid "Context records"
msgstr "Unités d'Enregistrement"
-#: templates/ishtar/sheet_operation.html:121
+#: templates/ishtar/sheet_operation.html:135
msgid "Finds"
msgstr "Mobilier"
@@ -1122,7 +1153,7 @@ msgstr "Type"
msgid "Date"
msgstr "Date"
-#: templates/ishtar/blocks/window_tables/administrativacts.html:16
+#: templates/ishtar/blocks/window_tables/administrativacts.html:18
msgid "No administrative act associated"
msgstr "Aucun acte administratif associé"
diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po
index a29c155a4..58522e76a 100644
--- a/translations/fr/archaeological_warehouse.po
+++ b/translations/fr/archaeological_warehouse.po
@@ -2,18 +2,16 @@
# Copyright (C) 2010-2011
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2011.
-# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"PO-Revision-Date: \n"
"Last-Translator: Étienne Loks <etienne.loks at peacefrogs net>\n"
"Language-Team: \n"
"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
@@ -85,7 +83,7 @@ msgstr "Vous devez sélectionner un contenant."
msgid "Add a new container"
msgstr "Ajouter un nouveau contenant."
-#: forms.py:132 ishtar_menu.py:31 views.py:94
+#: forms.py:132 ishtar_menu.py:32 views.py:94
msgid "Packaging"
msgstr "Conditionnement"
@@ -101,7 +99,7 @@ msgstr "Date"
msgid "Packaged finds"
msgstr "Mobilier conditionné"
-#: ishtar_menu.py:29
+#: ishtar_menu.py:30
msgid "Find"
msgstr "Mobilier"
diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po
index 7562a53be..0330ff950 100644
--- a/translations/fr/ishtar_common.po
+++ b/translations/fr/ishtar_common.po
@@ -2,18 +2,16 @@
# Copyright (C) 2010-2015
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.
-# Étienne Loks <etienne.loks@proxience.com>, 2015. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata
msgid ""
msgstr ""
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2015-12-09 00:28+0100\n"
+"MIME-Version: 1.0\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Content-Type: text/plain; charset=UTF-8\n"
"PO-Revision-Date: 2015-12-08 06:26-0500\n"
-"Last-Translator: Étienne Loks <etienne.loks@proxience.com>\n"
+"Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"
"Language-Team: \n"
"Language: fr\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
"X-Generator: Zanata 3.7.3\n"
@@ -29,7 +27,7 @@ msgstr "courriel"
msgid "Archaeological file"
msgstr "Dossier"
-#: context_processors.py:34 models.py:1110
+#: context_processors.py:34 models.py:1133
msgid "Operation"
msgstr "Opération"
@@ -157,7 +155,7 @@ msgstr "\"%(value)s\" n'est pas dans %(values)s"
msgid "Enter a valid name consisting of letters, spaces and hyphens."
msgstr "Entrez un nom correct composé de lettres, espaces et tirets."
-#: forms.py:71 forms_common.py:419
+#: forms.py:71 forms_common.py:420
msgid "Confirm"
msgstr "Confirmation"
@@ -181,15 +179,14 @@ msgstr "Vous devez sélectionner un élément."
msgid "Add a new item"
msgstr "Ajouter un nouvel élément"
-#: forms.py:171 models.py:970
+#: forms.py:171 models.py:993
msgid "Template"
msgstr "Patron"
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:268 forms_common.py:273 models.py:1036 models.py:2168
+#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2202
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
-#: templates/ishtar/sheet_person.html:30
msgid "Town"
msgstr "Commune"
@@ -211,70 +208,64 @@ msgstr ""
"<p class='example'>Par exemple tapez « saint denis 93 » pour obtenir la "
"commune Saint-Denis dans le département français de Seine-Saint-Denis.</p>"
-#: forms_common.py:66 forms_common.py:621 ishtar_menu.py:40 models.py:1895
-#: models.py:2007 models.py:2061 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:622 ishtar_menu.py:42 models.py:1918
+#: models.py:2041 models.py:2095 templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr "Individu"
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:58 models.py:1824
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1847
#: templates/ishtar/sheet_organization.html:6
msgid "Organization"
msgstr "Organisation"
#: forms_common.py:160 forms_common.py:196 forms_common.py:226
-#: forms_common.py:259 models.py:969 models.py:1158 models.py:1375
-#: models.py:1818 models.py:1885 models.py:2154
+#: forms_common.py:259 models.py:992 models.py:1181 models.py:1398
+#: models.py:1841 models.py:1908 models.py:2188
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
-#: templates/ishtar/sheet_person.html:26
msgid "Name"
msgstr "Nom"
-#: forms_common.py:161 models.py:1105 models.py:1506
+#: forms_common.py:161 models.py:1128 models.py:1529
msgid "Organization type"
msgstr "Type d'organisation"
-#: forms_common.py:163 forms_common.py:262 models.py:1031
+#: forms_common.py:163 forms_common.py:263 models.py:1054
#: templates/ishtar/sheet_organization.html:14
-#: templates/ishtar/sheet_person.html:27
msgid "Address"
msgstr "Adresse"
-#: forms_common.py:165 forms_common.py:264 models.py:1032
+#: forms_common.py:165 forms_common.py:265 models.py:1055
#: templates/ishtar/sheet_organization.html:15
-#: templates/ishtar/sheet_person.html:28
msgid "Address complement"
msgstr "Complément d'adresse"
-#: forms_common.py:167 forms_common.py:266 models.py:1034
+#: forms_common.py:167 forms_common.py:267 models.py:1057
#: templates/ishtar/sheet_organization.html:16
-#: templates/ishtar/sheet_person.html:29
msgid "Postal code"
msgstr "Code postal"
-#: forms_common.py:170 forms_common.py:269 models.py:1037
+#: forms_common.py:170 forms_common.py:270 models.py:1060
msgid "Country"
msgstr "Pays"
-#: forms_common.py:172 forms_common.py:228 forms_common.py:271
-#: forms_common.py:375 models.py:1043
+#: forms_common.py:172 forms_common.py:228 forms_common.py:272
+#: forms_common.py:376 models.py:1066
msgid "Email"
msgstr "Courriel"
-#: forms_common.py:173 forms_common.py:272 models.py:1039
+#: forms_common.py:173 forms_common.py:273 models.py:1062
#: templates/ishtar/sheet_organization.html:18
-#: templates/ishtar/sheet_person.html:31
msgid "Phone"
msgstr "Téléphone"
-#: forms_common.py:174 models.py:1040
+#: forms_common.py:174 models.py:1063
#: templates/ishtar/sheet_organization.html:19
-#: templates/ishtar/sheet_person.html:32
msgid "Mobile phone"
msgstr "Téléphone portable"
-#: forms_common.py:197 forms_common.py:229 models.py:1529 models.py:1820
-#: models.py:2102 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1552 models.py:1843
+#: models.py:2136 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
#: templates/sheet_ope.html:126 templates/ishtar/import_list.html:13
#: templates/ishtar/sheet_organization.html:27
#: templates/ishtar/sheet_person.html:56
@@ -286,7 +277,7 @@ msgstr "Type"
msgid "Organization search"
msgstr "Recherche d'organisations"
-#: forms_common.py:227 forms_common.py:257 models.py:1883
+#: forms_common.py:227 forms_common.py:257 models.py:1906
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr "Prénom"
@@ -299,160 +290,160 @@ msgstr "Recherche d'individus"
msgid "Identity"
msgstr "Identité"
-#: forms_common.py:256 forms_common.py:573 models.py:1881 models.py:2099
+#: forms_common.py:256 forms_common.py:574 models.py:1904 models.py:2133
#: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55
#: templates/ishtar/blocks/window_tables/documents.html:5
msgid "Title"
msgstr "Titre"
-#: forms_common.py:261 models.py:1887
+#: forms_common.py:261 models.py:1910
msgid "Raw name"
msgstr "Nom brut"
-#: forms_common.py:276
+#: forms_common.py:277
msgid "Current organization"
msgstr "Organisation actuelle"
-#: forms_common.py:324 forms_common.py:354 forms_common.py:358 models.py:1865
+#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1888
msgid "Person type"
msgstr "Type d'individu"
-#: forms_common.py:369 forms_common.py:374
+#: forms_common.py:370 forms_common.py:375
msgid "Account"
msgstr "Compte"
-#: forms_common.py:378 wizards.py:1029
+#: forms_common.py:379 wizards.py:1141
msgid "New password"
msgstr "Nouveau mot de passe"
-#: forms_common.py:381
+#: forms_common.py:382
msgid "New password (confirmation)"
msgstr "Nouveau mot de passe (confirmation)"
-#: forms_common.py:400
+#: forms_common.py:401
msgid "Your password and confirmation password do not match."
msgstr "La vérification du mot de passe a échoué."
-#: forms_common.py:405
+#: forms_common.py:406
msgid "You must provide a correct password."
msgstr "Vous devez fournir un mot de passe correct."
-#: forms_common.py:413
+#: forms_common.py:414
msgid "This username already exists."
msgstr "Ce nom d'utilisateur existe déjà."
-#: forms_common.py:420
+#: forms_common.py:421
msgid "Send the new password by email?"
msgstr "Envoyer le nouveau mot de passe par courriel ?"
-#: forms_common.py:429 forms_common.py:442 models.py:2169
+#: forms_common.py:430 forms_common.py:443 models.py:2203
msgid "Towns"
msgstr "Communes"
-#: forms_common.py:439
+#: forms_common.py:440
msgid "There are identical towns."
msgstr "Il y a des communes identiques."
-#: forms_common.py:523
+#: forms_common.py:524
msgid "Only one choice can be checked."
msgstr "Seul un choix peut être coché."
-#: forms_common.py:571
+#: forms_common.py:572
msgid "Documentation informations"
msgstr "Information sur le document"
-#: forms_common.py:575 forms_common.py:596 models.py:1507 models.py:2082
+#: forms_common.py:576 forms_common.py:597 models.py:1530 models.py:2116
msgid "Source type"
msgstr "Type de source"
-#: forms_common.py:577 models.py:2113
+#: forms_common.py:578 models.py:2147
msgid "Numerical ressource (web address)"
msgstr "Ressource numérique (adresse web)"
-#: forms_common.py:578 models.py:2115
+#: forms_common.py:579 models.py:2149
msgid "Receipt date"
msgstr "Date de réception"
-#: forms_common.py:580 models.py:1656 models.py:2117
+#: forms_common.py:581 models.py:1679 models.py:2151
msgid "Creation date"
msgstr "Date de création"
-#: forms_common.py:593 forms_common.py:614 forms_common.py:647 models.py:2066
+#: forms_common.py:594 forms_common.py:615 forms_common.py:648 models.py:2100
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr "Auteur"
-#: forms_common.py:606
+#: forms_common.py:607
msgid "Would you like to delete this documentation?"
msgstr "Voulez-vous supprimer ce document ?"
-#: forms_common.py:622 models.py:1508 models.py:2056 models.py:2063
+#: forms_common.py:623 models.py:1531 models.py:2090 models.py:2097
msgid "Author type"
msgstr "Type d'auteur"
-#: forms_common.py:640
+#: forms_common.py:641
msgid "Author selection"
msgstr "Sélection d'auteur"
-#: forms_common.py:654
+#: forms_common.py:655
msgid "There are identical authors."
msgstr "Il y a des auteurs identiques."
-#: forms_common.py:658 models.py:2067 models.py:2109
+#: forms_common.py:659 models.py:2101 models.py:2143
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
msgstr "Auteurs"
-#: ishtar_menu.py:28
+#: ishtar_menu.py:29
msgid "Administration"
msgstr "Administration"
-#: ishtar_menu.py:30 views.py:135
+#: ishtar_menu.py:31 views.py:135
msgid "Account management"
msgstr "Gestion des comptes"
-#: ishtar_menu.py:33 models.py:753 views.py:1075
+#: ishtar_menu.py:34 models.py:776 views.py:1077
msgid "Global variables"
msgstr "Variables globales"
-#: ishtar_menu.py:38
+#: ishtar_menu.py:39
msgid "Directory"
msgstr "Annuaire"
-#: ishtar_menu.py:42 ishtar_menu.py:60 templates/blocks/JQueryJqGrid.html:4
+#: ishtar_menu.py:45 ishtar_menu.py:69 templates/blocks/JQueryJqGrid.html:4
msgid "Search"
msgstr "Recherche"
-#: ishtar_menu.py:45 ishtar_menu.py:64 templates/ishtar/import_list.html:15
+#: ishtar_menu.py:49 ishtar_menu.py:74 templates/ishtar/import_list.html:15
msgid "Creation"
msgstr "Ajout"
-#: ishtar_menu.py:48 ishtar_menu.py:68
+#: ishtar_menu.py:53 ishtar_menu.py:79
msgid "Modification"
msgstr "Modification"
-#: ishtar_menu.py:51 ishtar_menu.py:72 templates/ishtar/merge.html:5
+#: ishtar_menu.py:57 ishtar_menu.py:84 templates/ishtar/merge.html:5
msgid "Merge"
msgstr "Fusion"
-#: ishtar_menu.py:54 ishtar_menu.py:75 models.py:1693 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1716 widgets.py:110
msgid "Delete"
msgstr "Suppression"
-#: ishtar_menu.py:82 models.py:1667
+#: ishtar_menu.py:96 models.py:1690
msgid "Imports"
msgstr "Imports"
-#: ishtar_menu.py:84 views.py:1083
+#: ishtar_menu.py:99 views.py:1085
msgid "New import"
msgstr "Nouvel import"
-#: ishtar_menu.py:87 views.py:1097
+#: ishtar_menu.py:103 views.py:1099
msgid "Current imports"
msgstr "Imports en cours"
-#: ishtar_menu.py:90
+#: ishtar_menu.py:107
msgid "Old imports"
msgstr "Anciens imports"
@@ -468,7 +459,7 @@ msgstr "Un élément sélectionné n'est pas valide."
msgid "This item already exist."
msgstr "Cet élément existe déjà."
-#: models.py:256 models.py:1004 models.py:1016
+#: models.py:256 models.py:1027 models.py:1039
msgid "Label"
msgstr "Libellé"
@@ -476,613 +467,613 @@ msgstr "Libellé"
msgid "Textual ID"
msgstr "Identifiant textuel"
-#: models.py:260 models.py:1402 models.py:2124
+#: models.py:260 models.py:1425 models.py:2158
msgid "Comment"
msgstr "Commentaire"
-#: models.py:261 models.py:973
+#: models.py:261 models.py:996
msgid "Available"
msgstr "Disponible"
-#: models.py:451 models.py:1448
+#: models.py:474 models.py:1471
msgid "Key"
msgstr "Clé"
-#: models.py:457
+#: models.py:480
msgid "Key specific to an import"
msgstr "Clé spécifique à un import"
-#: models.py:528
+#: models.py:551
msgid "Last editor"
msgstr "Dernier éditeur"
-#: models.py:531
+#: models.py:554
msgid "Creator"
msgstr "Créateur"
-#: models.py:664 models.py:2180
+#: models.py:687 models.py:2214
msgid "Order"
msgstr "Ordre"
-#: models.py:665
+#: models.py:688
msgid "Symmetrical"
msgstr "Symétrique"
-#: models.py:678
+#: models.py:701
msgid "Cannot have symmetrical and an inverse_relation"
msgstr "Ne pas être symétrique et avoir une relation inverse"
-#: models.py:746
+#: models.py:769
msgid "Variable name"
msgstr "Nom de la variable"
-#: models.py:747
+#: models.py:770
msgid "Description of the variable"
msgstr "Description de la variable"
-#: models.py:749 models.py:1449
+#: models.py:772 models.py:1472
msgid "Value"
msgstr "Valeur"
-#: models.py:752
+#: models.py:775
msgid "Global variable"
msgstr "Variables globales"
-#: models.py:874 models.py:904
+#: models.py:897 models.py:927
msgid "Total"
msgstr "Total"
-#: models.py:881 models.py:1005 models.py:1017
+#: models.py:904 models.py:1028 models.py:1040
#: templates/ishtar/dashboards/dashboard_main_detail.html:135
#: templates/ishtar/dashboards/dashboard_main_detail_users.html:26
msgid "Number"
msgstr "Nombre"
-#: models.py:968
+#: models.py:991
msgid "Administrative Act"
msgstr "Acte administratif"
-#: models.py:972
+#: models.py:995
msgid "Associated object"
msgstr "Objet associé"
-#: models.py:976
+#: models.py:999
msgid "Document template"
msgstr "Patron de document"
-#: models.py:977
+#: models.py:1000
msgid "Document templates"
msgstr "Patrons de documents"
-#: models.py:1008 models.py:1018 models.py:1651
+#: models.py:1031 models.py:1041 models.py:1674
msgid "State"
msgstr "État"
-#: models.py:1022 templates/blocks/JQueryAdvancedTown.html:12
+#: models.py:1045 templates/blocks/JQueryAdvancedTown.html:12
msgid "Department"
msgstr "Département"
-#: models.py:1023
+#: models.py:1046
msgid "Departments"
msgstr "Départements"
-#: models.py:1051
+#: models.py:1074
msgid "Merge key"
msgstr "Clé de fusion"
-#: models.py:1106
+#: models.py:1129
msgid "Organization types"
msgstr "Types d'organisation"
-#: models.py:1111
+#: models.py:1134
msgid "Parcels"
msgstr "Parcelles"
-#: models.py:1113
+#: models.py:1136
msgid "Operation source"
msgstr "Documentation de l'opération"
-#: models.py:1119 views.py:890 views.py:947
+#: models.py:1142 views.py:892 views.py:949
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
-#: models.py:1126 views.py:893 views.py:957
+#: models.py:1149 views.py:895 views.py:959
msgid "Context records"
msgstr "Unité d'Enregistrement"
-#: models.py:1129 views.py:895 views.py:962
+#: models.py:1152 views.py:897 views.py:964
msgid "Finds"
msgstr "Mobilier"
-#: models.py:1160
+#: models.py:1183
msgid "Slug"
msgstr "Identifiant texte"
-#: models.py:1162 models.py:1334 models.py:1376 models.py:2123
+#: models.py:1185 models.py:1357 models.py:1399 models.py:2157
#: templates/sheet_ope.html:128
msgid "Description"
msgstr "Description"
-#: models.py:1164 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1187 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr "Utilisateurs"
-#: models.py:1166
+#: models.py:1189
msgid "Associated model"
msgstr "Modèle associé"
-#: models.py:1168
+#: models.py:1191
msgid "Is template"
msgstr "Est un patron"
-#: models.py:1169
+#: models.py:1192
msgid "Unicity keys (separator \";\")"
msgstr "Clés d'unicité (séparateur « ; »)"
-#: models.py:1173
+#: models.py:1196
msgid "Importer - Type"
msgstr "Importeur - Type"
-#: models.py:1174
+#: models.py:1197
msgid "Importer - Types"
msgstr "Importeur - Types"
-#: models.py:1264
+#: models.py:1287
msgid "Importer - Default"
msgstr "Importeur - Par défaut"
-#: models.py:1265
+#: models.py:1288
msgid "Importer - Defaults"
msgstr "Importeur - Par défaut"
-#: models.py:1300
+#: models.py:1323
msgid "Importer - Default value"
msgstr "Importeur - Valeur par défaut"
-#: models.py:1301
+#: models.py:1324
msgid "Importer - Default values"
msgstr "Importeur - Valeurs par défaut"
-#: models.py:1333
+#: models.py:1356
msgid "Column number"
msgstr "Numéro de colonne"
-#: models.py:1336
+#: models.py:1359
msgid "Required"
msgstr "Requis"
-#: models.py:1339
+#: models.py:1362
msgid "Importer - Column"
msgstr "Importeur - Colonne"
-#: models.py:1340
+#: models.py:1363
msgid "Importer - Columns"
msgstr "Importeur - Colonnes"
-#: models.py:1360
+#: models.py:1383
msgid "Field name"
msgstr "Nom du champ"
-#: models.py:1362 models.py:1396
+#: models.py:1385 models.py:1419
msgid "Force creation of new item"
msgstr "Forcer la création de nouveaux éléments"
-#: models.py:1364 models.py:1398
+#: models.py:1387 models.py:1421
msgid "Concatenate with existing"
msgstr "Concaténer avec l'existant"
-#: models.py:1366 models.py:1400
+#: models.py:1389 models.py:1423
msgid "Concatenate character"
msgstr "Caractère de concaténation"
-#: models.py:1370
+#: models.py:1393
msgid "Importer - Duplicate field"
msgstr "Importeur - Champ dupliqué"
-#: models.py:1371
+#: models.py:1394
msgid "Importer - Duplicate fields"
msgstr "Importeur - Champs dupliqués"
-#: models.py:1378
+#: models.py:1401
msgid "Regular expression"
msgstr "Expression régulière"
-#: models.py:1381
+#: models.py:1404
msgid "Importer - Regular expression"
msgstr "Importeur - Expression régulière"
-#: models.py:1382
+#: models.py:1405
msgid "Importer - Regular expressions"
msgstr "Importeur - Expressions régulières"
-#: models.py:1405
+#: models.py:1428
msgid "Importer - Target"
msgstr "Importeur - Cible"
-#: models.py:1406
+#: models.py:1429
msgid "Importer - Targets"
msgstr "Importeur - Cibles"
-#: models.py:1430 views.py:306
+#: models.py:1453 views.py:306
msgid "True"
msgstr "Oui"
-#: models.py:1431 views.py:308
+#: models.py:1454 views.py:308
msgid "False"
msgstr "Non"
-#: models.py:1450
+#: models.py:1473
msgid "Is set"
msgstr "Est défini"
-#: models.py:1457
+#: models.py:1480
msgid "Importer - Target key"
msgstr "Importeur - Rapprochement"
-#: models.py:1458
+#: models.py:1481
msgid "Importer - Targets keys"
msgstr "Importeur - Rapprochements"
-#: models.py:1509 models.py:2094 models.py:2105
+#: models.py:1532 models.py:2128 models.py:2139
msgid "Format"
msgstr "Format"
-#: models.py:1510 models.py:2184
+#: models.py:1533 models.py:2218
msgid "Operation type"
msgstr "Type d'opération"
-#: models.py:1511
+#: models.py:1534
msgid "Period"
msgstr "Périodes"
-#: models.py:1512
+#: models.py:1535
msgid "Unit"
msgstr "Unité"
-#: models.py:1513
+#: models.py:1536
msgid "Material"
msgstr "Matériau"
-#: models.py:1515
+#: models.py:1538
msgid "Conservatory state"
msgstr "État de conservation"
-#: models.py:1516
+#: models.py:1539
msgid "Preservation type"
msgstr "Type de conservation"
-#: models.py:1517
+#: models.py:1540
msgid "Object type"
msgstr "Type d'objet"
-#: models.py:1519
+#: models.py:1542
msgid "Identification type"
msgstr "Type d'identification"
-#: models.py:1525
+#: models.py:1548
msgid "Integer"
msgstr "Entier"
-#: models.py:1526
+#: models.py:1549
msgid "Float"
msgstr "Nombre à virgule"
-#: models.py:1527
+#: models.py:1550
msgid "String"
msgstr "Chaine de caractères"
-#: models.py:1528 templates/sheet_ope.html:86
+#: models.py:1551 templates/sheet_ope.html:86
msgid "Date"
msgstr "Date"
-#: models.py:1530 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1553 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
#: templates/ishtar/sheet_person.html:54
#: templates/ishtar/dashboards/dashboard_main_detail.html:120
msgid "Year"
msgstr "Année"
-#: models.py:1531
+#: models.py:1554
msgid "String to boolean"
msgstr "Chaîne de caractère vers booléen"
-#: models.py:1532
+#: models.py:1555
msgctxt "filesystem"
msgid "File"
msgstr "Fichier"
-#: models.py:1533
+#: models.py:1556
msgid "Unknow type"
msgstr "Type inconnu"
-#: models.py:1549
+#: models.py:1572
msgid "4 digit year. e.g.: \"2015\""
msgstr "Année à 4 chiffres. Exemple : « 2015 »"
-#: models.py:1550
+#: models.py:1573
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr "Année à 4 chiffres/mois/jour. Exemple : « 2015/02/04 »"
-#: models.py:1551
+#: models.py:1574
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr "Jour/mois/année à 4 chiffres. Exemple : « 04/02/2015 »"
-#: models.py:1561
+#: models.py:1584
msgid "Options"
msgstr "Options"
-#: models.py:1563
+#: models.py:1586
msgid "Split character(s)"
msgstr "Caractère de séparation"
-#: models.py:1567
+#: models.py:1590
msgid "Importer - Formater type"
msgstr "Importeur - Type de mise en forme"
-#: models.py:1568
+#: models.py:1591
msgid "Importer - Formater types"
msgstr "Importeur - Types de mise en forme"
-#: models.py:1615 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1638 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr "Créé"
-#: models.py:1616
+#: models.py:1639
msgid "Analyse in progress"
msgstr "Analyse en cours"
-#: models.py:1617
+#: models.py:1640
msgid "Analysed"
msgstr "Analysé"
-#: models.py:1618
+#: models.py:1641
msgid "Import pending"
msgstr "Import en attente"
-#: models.py:1619
+#: models.py:1642
msgid "Import in progress"
msgstr "Import en cours"
-#: models.py:1620
+#: models.py:1643
msgid "Finished with errors"
msgstr "Finis avec des erreurs"
-#: models.py:1621
+#: models.py:1644
msgid "Finished"
msgstr "Terminé"
-#: models.py:1622
+#: models.py:1645
msgid "Archived"
msgstr "Archivé"
-#: models.py:1634
+#: models.py:1657
msgid "Imported file"
msgstr "Fichier importé"
-#: models.py:1637
+#: models.py:1660
msgid "Associated images (zip file)"
msgstr "Images associées (fichier zip)"
-#: models.py:1639
+#: models.py:1662
msgid "Encoding"
msgstr "Codage"
-#: models.py:1641
+#: models.py:1664
msgid "Skip lines"
msgstr "Nombre de lignes d'entête"
-#: models.py:1642 templates/ishtar/import_list.html:47
+#: models.py:1665 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr "Fichier erreur"
-#: models.py:1645
+#: models.py:1668
msgid "Result file"
msgstr "Fichier résultant"
-#: models.py:1648 templates/ishtar/import_list.html:53
+#: models.py:1671 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr "Fichier de correspondance"
-#: models.py:1654
+#: models.py:1677
msgid "Conservative import"
msgstr "Import conservateur"
-#: models.py:1659
+#: models.py:1682
msgid "End date"
msgstr "Date de fin"
-#: models.py:1661
+#: models.py:1684
msgid "Seconds remaining"
msgstr "Secondes restantes"
-#: models.py:1666
+#: models.py:1689
msgid "Import"
msgstr "Import"
-#: models.py:1683
+#: models.py:1706
msgid "Analyse"
msgstr "Analyser"
-#: models.py:1685 models.py:1688
+#: models.py:1708 models.py:1711
msgid "Re-analyse"
msgstr "Analyser de nouveau "
-#: models.py:1686
+#: models.py:1709
msgid "Launch import"
msgstr "Lancer l'import"
-#: models.py:1689
+#: models.py:1712
msgid "Re-import"
msgstr "re-import"
-#: models.py:1690
+#: models.py:1713
msgid "Archive"
msgstr "Archiver"
-#: models.py:1692
+#: models.py:1715
msgid "Unarchive"
msgstr "Dé-archiver"
-#: models.py:1825
+#: models.py:1848
msgid "Organizations"
msgstr "Organisations"
-#: models.py:1827
+#: models.py:1850
msgid "Can view all Organization"
msgstr "Peut voir toutes les Organisations"
-#: models.py:1828
+#: models.py:1851
msgid "Can view own Organization"
msgstr "Peut voir sa propre Organisation"
-#: models.py:1829
+#: models.py:1852
msgid "Can add own Organization"
msgstr "Peut ajouter sa propre Organisation"
-#: models.py:1831
+#: models.py:1854
msgid "Can change own Organization"
msgstr "Peut changer sa propre Organisation"
-#: models.py:1833
+#: models.py:1856
msgid "Can delete own Organization"
msgstr "Peut supprimer sa propre Organisation"
-#: models.py:1861
+#: models.py:1884
msgid "Groups"
msgstr "Groupes"
-#: models.py:1866
+#: models.py:1889
msgid "Person types"
msgstr "Types d'individu"
-#: models.py:1873
+#: models.py:1896
msgid "Mr"
msgstr "M."
-#: models.py:1874
+#: models.py:1897
msgid "Miss"
msgstr "Mlle"
-#: models.py:1875
+#: models.py:1898
msgid "Mr and Miss"
msgstr "M. et Mme"
-#: models.py:1876
+#: models.py:1899
msgid "Mrs"
msgstr "Mme"
-#: models.py:1877
+#: models.py:1900
msgid "Doctor"
msgstr "Dr."
-#: models.py:1889 models.py:1929
+#: models.py:1912 models.py:1952
msgid "Types"
msgstr "Types"
-#: models.py:1892
+#: models.py:1915
msgid "Is attached to"
msgstr "Est rattaché à"
-#: models.py:1896
+#: models.py:1919
msgid "Persons"
msgstr "Individus"
-#: models.py:1898
+#: models.py:1921
msgid "Can view all Person"
msgstr "Peut voir toutes les Personnes"
-#: models.py:1899
+#: models.py:1922
msgid "Can view own Person"
msgstr "Peut voir sa propre Personne"
-#: models.py:1900
+#: models.py:1923
msgid "Can add own Person"
msgstr "Peut ajouter sa propre Personne"
-#: models.py:1901
+#: models.py:1924
msgid "Can change own Person"
msgstr "Peut changer sa propre Personne"
-#: models.py:1902
+#: models.py:1925
msgid "Can delete own Person"
msgstr "Peut supprimer sa propre Personne"
-#: models.py:2011
+#: models.py:2045
msgid "Ishtar user"
msgstr "Utilisateur d'Ishtar"
-#: models.py:2012
+#: models.py:2046
msgid "Ishtar users"
msgstr "Utilisateurs d'Ishtar"
-#: models.py:2057
+#: models.py:2091
msgid "Author types"
msgstr "Types d'auteur"
-#: models.py:2083
+#: models.py:2117
msgid "Source types"
msgstr "Types de source"
-#: models.py:2088
+#: models.py:2122
msgid "Support type"
msgstr "Type de support"
-#: models.py:2089
+#: models.py:2123
msgid "Support types"
msgstr "Types de support"
-#: models.py:2095
+#: models.py:2129
msgid "Formats"
msgstr "Formats"
-#: models.py:2100
+#: models.py:2134
msgid "External ID"
msgstr "Identifiant extern"
-#: models.py:2103
+#: models.py:2137
msgid "Support"
msgstr "Support"
-#: models.py:2107
+#: models.py:2141
msgid "Scale"
msgstr "Échelle"
-#: models.py:2118
+#: models.py:2152
msgid "Item number"
msgstr "Numéro d'élément"
-#: models.py:2119
+#: models.py:2153
msgid "Ref."
msgstr "Réf."
-#: models.py:2121
+#: models.py:2155
msgid "Internal reference"
msgstr "Référence interne"
-#: models.py:2125
+#: models.py:2159
msgid "Additional information"
msgstr "Informations supplémentaires"
-#: models.py:2155
+#: models.py:2189
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:2156 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2190 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Localisation"
-#: models.py:2181
+#: models.py:2215
msgid "Is preventive"
msgstr "Est du préventif"
-#: models.py:2185
+#: models.py:2219
msgid "Operation types"
msgstr "Types d'opération"
-#: models.py:2211
+#: models.py:2245
msgid "Preventive"
msgstr "Préventif"
-#: models.py:2212
+#: models.py:2246
msgid "Research"
msgstr "Recherche"
@@ -1114,33 +1105,33 @@ msgstr "Modification d'une organisation"
msgid "Organization deletion"
msgstr "Suppression d'une organisation"
-#: views.py:592 templates/base.html:80
+#: views.py:594 templates/base.html:80
#: templates/ishtar/sheet_organization.html:35
msgid "Details"
msgstr "Détails"
-#: views.py:820 views.py:873
+#: views.py:822 views.py:875
msgid "Operation not permitted."
msgstr "Opération non permise."
-#: views.py:822
+#: views.py:824
#, python-format
msgid "New %s"
msgstr "Nouveau %s"
-#: views.py:891 views.py:951
+#: views.py:893 views.py:953
msgid "Operations"
msgstr "Opérations"
-#: views.py:1144 templates/ishtar/import_list.html:43
+#: views.py:1146 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr "Associer les éléments non rapprochés"
-#: views.py:1159
+#: views.py:1161
msgid "Delete import"
msgstr "Suppression de l'import"
-#: views.py:1218 views.py:1234
+#: views.py:1220 views.py:1236
msgid "Corporation manager"
msgstr "Représentant de la personne morale"
@@ -1160,15 +1151,15 @@ msgstr "Chargement..."
msgid "Remove"
msgstr "Enlever"
-#: wizards.py:242 templates/ishtar/import_delete.html:20
+#: wizards.py:313 templates/ishtar/import_delete.html:20
msgid "Yes"
msgstr "Oui"
-#: wizards.py:244
+#: wizards.py:315
msgid "No"
msgstr "Non"
-#: wizards.py:1085
+#: wizards.py:1198
#, python-format
msgid "[%(app_name)s] Account creation/modification"
msgstr "[%(app_name)s] Ajout - modification du compte"
@@ -1680,7 +1671,7 @@ msgstr "Dossiers archéologiques associés"
msgid "Link"
msgstr "Lien"
-#: templates/ishtar/sheet_person.html:68
+#: templates/ishtar/sheet_person.html:69
msgid "No document associated to this person"
msgstr "Pas de document associé à cette personne"
@@ -1787,6 +1778,7 @@ msgstr "Voulez-vous sauver ces informations ?"
#: templates/ishtar/wizard/default_wizard.html:35
#: templates/ishtar/wizard/parcels_wizard.html:24
+#: templates/ishtar/wizard/relations_wizard.html:23
#: templates/ishtar/wizard/search.html:20
#: templates/ishtar/wizard/towns_wizard.html:19
msgid "Add/Modify"
@@ -1808,6 +1800,7 @@ msgstr ""
"dossier."
#: templates/ishtar/wizard/parcels_wizard.html:20
+#: templates/ishtar/wizard/relations_wizard.html:20
msgid "all"
msgstr "tout"