summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.example2
-rw-r--r--archaeological_context_records/forms.py9
-rw-r--r--archaeological_context_records/locale/django.pot106
-rw-r--r--archaeological_context_records/views.py7
-rw-r--r--archaeological_files/forms.py13
-rw-r--r--archaeological_files/locale/django.pot121
-rw-r--r--archaeological_files/views.py2
-rw-r--r--archaeological_finds/forms.py8
-rw-r--r--archaeological_finds/locale/django.pot86
-rw-r--r--archaeological_finds/views.py8
-rw-r--r--archaeological_operations/forms.py113
-rw-r--r--archaeological_operations/locale/django.pot370
-rw-r--r--archaeological_operations/migrations/0049_auto__add_field_historicaloperation_abstract__add_field_operation_abst.py606
-rw-r--r--archaeological_operations/models.py3
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html6
-rw-r--r--archaeological_operations/tests.py25
-rw-r--r--archaeological_operations/views.py11
-rw-r--r--ishtar_common/admin.py8
-rw-r--r--ishtar_common/fixtures/initial_data-fr.json396
-rw-r--r--ishtar_common/forms_common.py8
-rw-r--r--ishtar_common/locale/django.pot378
-rw-r--r--ishtar_common/static/media/style.css81
-rw-r--r--ishtar_common/templates/blocks/JQueryJqGrid.html11
-rw-r--r--ishtar_common/templates/blocks/form_flex_snippet.html14
-rw-r--r--ishtar_common/templates/ishtar/sheet_source.html3
-rw-r--r--ishtar_common/templates/ishtar/wizard/default_wizard.html4
-rw-r--r--ishtar_common/templates/ishtar/wizard/search.html9
-rw-r--r--ishtar_common/views.py37
-rw-r--r--ishtar_common/widgets.py5
-rw-r--r--ishtar_common/wizards.py11
-rw-r--r--translations/fr/archaeological_context_records.po110
-rw-r--r--translations/fr/archaeological_files.po122
-rw-r--r--translations/fr/archaeological_files_pdl.po2
-rw-r--r--translations/fr/archaeological_finds.po90
-rw-r--r--translations/fr/archaeological_operations.po374
-rw-r--r--translations/fr/archaeological_warehouse.po2
-rw-r--r--translations/fr/ishtar_common.po382
37 files changed, 2411 insertions, 1132 deletions
diff --git a/Makefile.example b/Makefile.example
index 837bc74cd..7ea3d8304 100644
--- a/Makefile.example
+++ b/Makefile.example
@@ -126,6 +126,7 @@ fixtures_common: fixtures_common_importers fixtures_common_towns
ishtar_common.persontype \
ishtar_common.organizationtype \
ishtar_common.sourcetype \
+ ishtar_common.operationtype \
> '../ishtar_common/fixtures/initial_data-'$(default_data)'.json'
fixtures_common_importers:
@@ -150,7 +151,6 @@ fixtures_common_towns:
fixtures_operations:
cd $(project); $(PYTHON) ./manage.py dumpdata --indent 4 \
archaeological_operations.acttype \
- archaeological_operations.operationtype \
archaeological_operations.period \
archaeological_operations.remaintype \
> '../archaeological_operations/fixtures/initial_data-'$(default_data)'.json'
diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py
index 59f683620..98da5ce10 100644
--- a/archaeological_context_records/forms.py
+++ b/archaeological_context_records/forms.py
@@ -29,7 +29,8 @@ from django.forms.formsets import formset_factory
from django.utils.translation import ugettext_lazy as _
from ishtar_common.models import valid_id
-from archaeological_operations.models import Period, Parcel, Operation
+from archaeological_operations.models import Period, Parcel, Operation, \
+ ArchaeologicalSite
import models
from ishtar_common import widgets
@@ -49,6 +50,12 @@ class RecordSelect(TableSelect):
operation__year = forms.IntegerField(label=_(u"Operation's year"))
operation__operation_code = forms.IntegerField(
label=_(u"Operation's number (index by year)"))
+ archaeological_sites = forms.IntegerField(
+ label=_("Archaelogical site"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-archaeologicalsite'),
+ associated_model=ArchaeologicalSite),
+ validators=[valid_id(ArchaeologicalSite)])
datings__period = forms.ChoiceField(label=_(u"Period"), choices=[])
unit = forms.ChoiceField(label=_(u"Unit type"), choices=[])
parcel = ParcelField(label=_(u"Parcel (section/number)"))
diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot
index 9e403163d..8b88d7cc3 100644
--- a/archaeological_context_records/locale/django.pot
+++ b/archaeological_context_records/locale/django.pot
@@ -7,187 +7,191 @@
msgid ""
msgstr ""
-#: forms.py:44 forms.py:97 models.py:125
+#: forms.py:45 forms.py:104 models.py:125
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr ""
-#: forms.py:48
+#: forms.py:49
msgid "Code PATRIARCHE"
msgstr ""
-#: forms.py:49
+#: forms.py:50
msgid "Operation's year"
msgstr ""
-#: forms.py:51
+#: forms.py:52
msgid "Operation's number (index by year)"
msgstr ""
-#: forms.py:52 forms.py:163 models.py:48
+#: forms.py:54
+msgid "Archaelogical site"
+msgstr ""
+
+#: forms.py:59 forms.py:170 models.py:48
msgid "Period"
msgstr ""
-#: forms.py:53
+#: forms.py:60
msgid "Unit type"
msgstr ""
-#: forms.py:54
+#: forms.py:61
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:72 forms.py:259 views.py:73
+#: forms.py:79 forms.py:266 views.py:78
msgid "Context record search"
msgstr ""
-#: forms.py:86
+#: forms.py:93
msgid "You should at least select one context record."
msgstr ""
-#: forms.py:92
+#: forms.py:99
msgid "General"
msgstr ""
-#: forms.py:96 models.py:118 models.py:121
+#: forms.py:103 models.py:118 models.py:121
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr ""
-#: forms.py:99 models.py:126 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:106 models.py:126 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr ""
-#: forms.py:101 models.py:131
+#: forms.py:108 models.py:131
msgid "Length (cm)"
msgstr ""
-#: forms.py:102 models.py:132
+#: forms.py:109 models.py:132
msgid "Width (cm)"
msgstr ""
-#: forms.py:103 models.py:133
+#: forms.py:110 models.py:133
msgid "Thickness (cm)"
msgstr ""
-#: forms.py:104 models.py:135
+#: forms.py:111 models.py:135
msgid "Depth (cm)"
msgstr ""
-#: forms.py:105 models.py:141
+#: forms.py:112 models.py:141
msgid "Unit"
msgstr ""
-#: forms.py:107 models.py:137
+#: forms.py:114 models.py:137
msgid "Location"
msgstr ""
-#: forms.py:152
+#: forms.py:159
msgid "This ID already exist for this operation."
msgstr ""
-#: forms.py:158 forms.py:182 models.py:59
+#: forms.py:165 forms.py:189 models.py:59
msgid "Dating"
msgstr ""
-#: forms.py:164 models.py:49
+#: forms.py:171 models.py:49
msgid "Start date"
msgstr ""
-#: forms.py:165 models.py:50 models.py:130
+#: forms.py:172 models.py:50 models.py:130
msgid "End date"
msgstr ""
-#: forms.py:166 models.py:53
+#: forms.py:173 models.py:53
msgid "Quality"
msgstr ""
-#: forms.py:167 models.py:35 models.py:51
+#: forms.py:174 models.py:35 models.py:51
msgid "Dating type"
msgstr ""
-#: forms.py:191 ishtar_menu.py:29 models.py:321
+#: forms.py:198 ishtar_menu.py:29 models.py:321
msgid "Context record"
msgstr ""
-#: forms.py:211
+#: forms.py:218
msgid "Relations"
msgstr ""
-#: forms.py:215 forms.py:222 models.py:146
+#: forms.py:222 forms.py:229 models.py:146
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr ""
-#: forms.py:218 models.py:143
+#: forms.py:225 models.py:143
msgid "Has furniture?"
msgstr ""
-#: forms.py:220 models.py:145
+#: forms.py:227 models.py:145
msgid "Filling"
msgstr ""
-#: forms.py:224 models.py:166
+#: forms.py:231 models.py:166
msgid "Activity"
msgstr ""
-#: forms.py:226 models.py:164
+#: forms.py:233 models.py:164
msgid "Identification"
msgstr ""
-#: forms.py:228 models.py:149
+#: forms.py:235 models.py:149
msgid "TAQ"
msgstr ""
-#: forms.py:229 models.py:153
+#: forms.py:236 models.py:153
msgid "Estimated TAQ"
msgstr ""
-#: forms.py:231 models.py:156
+#: forms.py:238 models.py:156
msgid "TPQ"
msgstr ""
-#: forms.py:232 models.py:160
+#: forms.py:239 models.py:160
msgid "Estimated TPQ"
msgstr ""
-#: forms.py:245
+#: forms.py:252
msgid "Operation search"
msgstr ""
-#: forms.py:247
+#: forms.py:254
msgid "You should select an operation."
msgstr ""
-#: forms.py:252
+#: forms.py:259
msgid "Would you like to delete this context record?"
msgstr ""
-#: forms.py:261
+#: forms.py:268
msgid "You should select a context record."
msgstr ""
-#: forms.py:266
+#: forms.py:273
msgid "Town of the operation"
msgstr ""
-#: forms.py:268
+#: forms.py:275
msgid "Year of the operation"
msgstr ""
-#: forms.py:270
+#: forms.py:277
msgid "Period of the context record"
msgstr ""
-#: forms.py:272
+#: forms.py:279
msgid "Unit type of the context record"
msgstr ""
-#: forms.py:285
+#: forms.py:292
msgid "Documentation search"
msgstr ""
-#: forms.py:287
+#: forms.py:294
msgid "You should select a document."
msgstr ""
@@ -364,27 +368,27 @@ msgstr ""
msgid "Context record documentations"
msgstr ""
-#: views.py:83
+#: views.py:88
msgid "New context record"
msgstr ""
-#: views.py:93
+#: views.py:98
msgid "Context record modification"
msgstr ""
-#: views.py:107
+#: views.py:112
msgid "Context record deletion"
msgstr ""
-#: views.py:115
+#: views.py:120
msgid "Context record: new source"
msgstr ""
-#: views.py:123
+#: views.py:128
msgid "Context record: source modification"
msgstr ""
-#: views.py:129
+#: views.py:134
msgid "Context record: source deletion"
msgstr ""
diff --git a/archaeological_context_records/views.py b/archaeological_context_records/views.py
index 13375f866..883b2c85e 100644
--- a/archaeological_context_records/views.py
+++ b/archaeological_context_records/views.py
@@ -39,7 +39,8 @@ contextrecord_extra_keys = {
'datings__period': 'datings__period__pk',
'parcel_0': 'operation__parcels__section',
'parcel_1': 'operation__parcels__parcel_number',
- 'label': 'label__icontains'
+ 'label': 'label__icontains',
+ 'archaeological_sites': 'operation__archaeological_sites__pk',
}
get_contextrecord = get_item(
@@ -60,6 +61,10 @@ get_contextrecordsource = get_item(
'get_contextrecordsource', 'contextrecordsource',
bool_fields=['duplicate'],
extra_request_keys={
+ 'title': 'title__icontains',
+ 'description': 'description__icontains',
+ 'comment': 'comment__icontains',
+ 'additional_information': 'additional_information__icontains',
'context_record__parcel__town': 'context_record__parcel__town__pk',
'context_record__operation__year': 'context_record__operation__year',
'context_record__operation': 'context_record__operation__pk',
diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py
index 8c360e364..42b3f6b6f 100644
--- a/archaeological_files/forms.py
+++ b/archaeological_files/forms.py
@@ -53,6 +53,9 @@ class FileSelect(TableSelect):
internal_reference = forms.CharField(max_length=200,
label=_("Other reference"))
towns = get_town_field()
+ if settings.ISHTAR_DPTS:
+ towns__numero_insee__startswith = forms.ChoiceField(
+ label="Department", choices=[])
name = forms.CharField(label=_(u"File name"), max_length=200)
file_type = forms.ChoiceField(label=_("File type"), choices=[])
saisine_type = forms.ChoiceField(label=_("Saisine type"), choices=[])
@@ -95,6 +98,10 @@ class FileSelect(TableSelect):
self.fields['saisine_type'].help_text = models.SaisineType.get_help()
self.fields['file_type'].choices = models.FileType.get_types()
self.fields['file_type'].help_text = models.FileType.get_help()
+ if settings.ISHTAR_DPTS:
+ k = 'towns__numero_insee__startswith'
+ self.fields[k].choices = [
+ ('', '--')] + list(settings.ISHTAR_DPTS)
def get_input_ids(self):
ids = super(FileSelect, self).get_input_ids()
@@ -396,8 +403,7 @@ class AdministrativeActFileModifySelect(TableSelect):
if settings.ISHTAR_DPTS:
k = 'operation__towns__numero_insee__startswith'
self.fields[k].choices = [
- ('', '--')] + [(str(dpt), str(dpt))
- for dpt in settings.ISHTAR_DPTS]
+ ('', '--')] + list(settings.ISHTAR_DPTS)
class AdministrativeActFileSelect(TableSelect):
@@ -464,8 +470,7 @@ class AdministrativeActFileSelect(TableSelect):
if settings.ISHTAR_DPTS:
k = 'operation__towns__numero_insee__startswith'
self.fields[k].choices = [
- ('', '--')] + [(str(dpt), str(dpt))
- for dpt in settings.ISHTAR_DPTS]
+ ('', '--')] + list(settings.ISHTAR_DPTS)
class AdministrativeActFileFormSelection(AdministrativeActOpeFormSelection):
diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot
index 01477d187..ee94947e0 100644
--- a/archaeological_files/locale/django.pot
+++ b/archaeological_files/locale/django.pot
@@ -3,214 +3,215 @@
# This file is distributed under the same license as the Ishtar package.
# Étienne Loks <etienne.loks at peacefrogs net>, 2010-2014.
# Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata
+# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata
msgid ""
msgstr ""
-#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431
+#: forms.py:51 forms.py:198 forms.py:242 forms.py:383 forms.py:437
#: models.py:75 templates/ishtar/sheet_file.html:150
msgid "Year"
msgstr ""
-#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78
+#: forms.py:52 forms.py:203 forms.py:244 forms.py:436 models.py:78
msgid "Numeric reference"
msgstr ""
-#: forms.py:54 forms.py:198 forms.py:433
+#: forms.py:54 forms.py:205 forms.py:439
msgid "Other reference"
msgstr ""
-#: forms.py:56 forms.py:411
+#: forms.py:59 forms.py:417
msgid "File name"
msgstr ""
-#: forms.py:57 forms.py:137 forms.py:202 models.py:84
+#: forms.py:60 forms.py:144 forms.py:209 models.py:84
msgid "File type"
msgstr ""
-#: forms.py:58 forms.py:139 forms.py:299
+#: forms.py:61 forms.py:146 forms.py:306
msgid "Saisine type"
msgstr ""
-#: forms.py:59
+#: forms.py:62
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:60
+#: forms.py:63
msgid "Is active?"
msgstr ""
-#: forms.py:62 forms.py:267 forms.py:413 models.py:91
+#: forms.py:65 forms.py:274 forms.py:419 models.py:91
msgid "General contractor"
msgstr ""
-#: forms.py:69 forms.py:422
+#: forms.py:72 forms.py:428
msgid "Organization of general contractor"
msgstr ""
-#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:127
+#: forms.py:79 forms.py:441 templates/ishtar/sheet_file.html:127
msgid "In charge"
msgstr ""
-#: forms.py:83 forms.py:450
+#: forms.py:86 forms.py:456
msgid "Created by"
msgstr ""
-#: forms.py:90 forms.py:292 forms.py:443 models.py:116
+#: forms.py:93 forms.py:299 forms.py:449 models.py:116
msgid "Permit reference"
msgstr ""
-#: forms.py:108
+#: forms.py:115
msgid "Archaeological file search"
msgstr ""
-#: forms.py:122
+#: forms.py:129
msgid "You should select a file."
msgstr ""
-#: forms.py:125 forms.py:200 models.py:124
+#: forms.py:132 forms.py:207 models.py:124
msgid "Creation date"
msgstr ""
-#: forms.py:126 forms.py:302 models.py:126
+#: forms.py:133 forms.py:309 models.py:126
msgid "Reception date"
msgstr ""
-#: forms.py:131
+#: forms.py:138
msgid "Slicing"
msgstr ""
-#: forms.py:133
+#: forms.py:140
msgid "Department detail"
msgstr ""
-#: forms.py:135
+#: forms.py:142
msgid "Date get from"
msgstr ""
-#: forms.py:141
+#: forms.py:148
msgid "Date after"
msgstr ""
-#: forms.py:143
+#: forms.py:150
msgid "Date before"
msgstr ""
-#: forms.py:180 templates/ishtar/sheet_file.html:31
+#: forms.py:187 templates/ishtar/sheet_file.html:31
msgid "General"
msgstr ""
-#: forms.py:185 models.py:86
+#: forms.py:192 models.py:86
msgid "Person in charge"
msgstr ""
-#: forms.py:199 models.py:83
+#: forms.py:206 models.py:83
msgid "Name"
msgstr ""
-#: forms.py:204 models.py:128
+#: forms.py:211 models.py:128
msgid "Related file"
msgstr ""
-#: forms.py:208 forms.py:346 models.py:145
+#: forms.py:215 forms.py:353 models.py:145
#: templates/ishtar/sheet_file.html:111
msgid "Comment"
msgstr ""
-#: forms.py:212 models.py:136
+#: forms.py:219 models.py:136
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:215 models.py:142
+#: forms.py:222 models.py:142
msgid "Main address"
msgstr ""
-#: forms.py:216
+#: forms.py:223
msgid "Main address - complement"
msgstr ""
-#: forms.py:228
+#: forms.py:235
#, python-format
msgid "<br/>(last recorded: %s)"
msgstr ""
-#: forms.py:250
+#: forms.py:257
msgid "Another file with this numeric id exists."
msgstr ""
-#: forms.py:261
+#: forms.py:268
msgid "Preventive informations"
msgstr ""
-#: forms.py:279 models.py:103
+#: forms.py:286 models.py:103
msgid "Responsible for town planning service"
msgstr ""
-#: forms.py:289 models.py:57 models.py:115
+#: forms.py:296 models.py:57 models.py:115
msgid "Permit type"
msgstr ""
-#: forms.py:295 models.py:139
+#: forms.py:302 models.py:139
msgid "Total developed surface (m2)"
msgstr ""
-#: forms.py:314 templates/ishtar/sheet_file.html:101
+#: forms.py:321 templates/ishtar/sheet_file.html:101
#: templates/ishtar/dashboards/dashboard_file.html:42
msgid "Research archaeology"
msgstr ""
-#: forms.py:322 models.py:148 templates/ishtar/sheet_file.html:102
+#: forms.py:329 models.py:148 templates/ishtar/sheet_file.html:102
msgid "Departments"
msgstr ""
-#: forms.py:333 models.py:157
+#: forms.py:340 models.py:157
msgid "Scientist in charge"
msgstr ""
-#: forms.py:335 models.py:151 templates/ishtar/sheet_file.html:104
+#: forms.py:342 models.py:151 templates/ishtar/sheet_file.html:104
msgid "Requested operation type"
msgstr ""
-#: forms.py:337
+#: forms.py:344
msgid "Lead organization"
msgstr ""
-#: forms.py:353 models.py:161 templates/ishtar/sheet_file.html:109
+#: forms.py:360 models.py:161 templates/ishtar/sheet_file.html:109
msgid "Classified area"
msgstr ""
-#: forms.py:355 models.py:163 templates/ishtar/sheet_file.html:110
+#: forms.py:362 models.py:163 templates/ishtar/sheet_file.html:110
msgid "Protected area"
msgstr ""
-#: forms.py:367
+#: forms.py:374
msgid "Would you like to close this archaeological file?"
msgstr ""
-#: forms.py:372
+#: forms.py:379
msgid "Would you like to delete this archaelogical file ?"
msgstr ""
-#: forms.py:377
+#: forms.py:384
msgid "Index"
msgstr ""
-#: forms.py:381 forms.py:405 forms.py:493
+#: forms.py:388 forms.py:411 forms.py:498
msgid "Act type"
msgstr ""
-#: forms.py:382 forms.py:447
+#: forms.py:389 forms.py:453
msgid "Object (full text search)"
msgstr ""
-#: forms.py:387 forms.py:446 models.py:518
+#: forms.py:394 forms.py:452 models.py:518
msgid "Department"
msgstr ""
-#: forms.py:407
+#: forms.py:413
msgid "Signature date after"
msgstr ""
-#: forms.py:409
+#: forms.py:415
msgid "Signature date before"
msgstr ""
@@ -383,39 +384,39 @@ msgstr ""
msgid "File"
msgstr ""
-#: views.py:142
+#: views.py:144
msgid "File search"
msgstr ""
-#: views.py:151
+#: views.py:153
msgid "New file"
msgstr ""
-#: views.py:170
+#: views.py:172
msgid "File modification"
msgstr ""
-#: views.py:193
+#: views.py:195
msgid "File closing"
msgstr ""
-#: views.py:198
+#: views.py:200
msgid "File deletion"
msgstr ""
-#: views.py:205
+#: views.py:207
msgid "File: search administrative act"
msgstr ""
-#: views.py:214
+#: views.py:216
msgid "File: new administrative act"
msgstr ""
-#: views.py:224
+#: views.py:226
msgid "File: administrative act modification"
msgstr ""
-#: views.py:233
+#: views.py:235
msgid "File: administrative act deletion"
msgstr ""
diff --git a/archaeological_files/views.py b/archaeological_files/views.py
index 9b2044ecc..e31cd00b8 100644
--- a/archaeological_files/views.py
+++ b/archaeological_files/views.py
@@ -86,6 +86,8 @@ get_file = get_item(
'parcel_1': ('parcels__parcel_number',
'operations__parcels__parcel_number'),
'end_date': 'end_date__isnull',
+ 'towns__numero_insee__startswith':
+ 'towns__numero_insee__startswith',
'name': 'name__icontains',
'permit_reference': 'permit_reference__icontains',
'general_contractor__attached_to':
diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py
index d61704259..1498d4028 100644
--- a/archaeological_finds/forms.py
+++ b/archaeological_finds/forms.py
@@ -29,7 +29,7 @@ from django.utils.safestring import mark_safe
from django.utils.translation import ugettext_lazy as _
from ishtar_common.models import Person, valid_id, valid_ids
-from archaeological_operations.models import Period
+from archaeological_operations.models import Period, ArchaeologicalSite
from archaeological_context_records.models import DatingType, DatingQuality
from archaeological_warehouse.models import Warehouse
import models
@@ -153,6 +153,12 @@ class FindSelect(TableSelect):
label=_(u"Year"))
base_finds__context_record__operation__code_patriarche = \
forms.IntegerField(label=_(u"Code PATRIARCHE"))
+ archaeological_sites = forms.IntegerField(
+ label=_("Archaelogical site"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-archaeologicalsite'),
+ associated_model=ArchaeologicalSite),
+ validators=[valid_id(ArchaeologicalSite)])
datings__period = forms.ChoiceField(label=_(u"Period"), choices=[])
# TODO search by warehouse
material_types = forms.ChoiceField(label=_(u"Material type"), choices=[])
diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot
index 688d732f9..ff9f8a546 100644
--- a/archaeological_finds/locale/django.pot
+++ b/archaeological_finds/locale/django.pot
@@ -12,7 +12,7 @@ msgstr ""
msgid "Find"
msgstr ""
-#: forms.py:54 forms.py:289 models.py:108 models.py:288
+#: forms.py:54 forms.py:295 models.py:108 models.py:288
msgid "Free-ID"
msgstr ""
@@ -20,12 +20,12 @@ msgstr ""
msgid "Previous ID"
msgstr ""
-#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:289
+#: forms.py:57 forms.py:171 forms.py:235 models.py:111 models.py:289
#: models.py:565 templates/ishtar/sheet_find.html:87
msgid "Description"
msgstr ""
-#: forms.py:60 forms.py:167 models.py:122
+#: forms.py:60 forms.py:173 models.py:122
msgid "Batch/object"
msgstr ""
@@ -33,11 +33,11 @@ msgstr ""
msgid "Is complete?"
msgstr ""
-#: forms.py:65 forms.py:158 forms.py:293 models.py:50
+#: forms.py:65 forms.py:164 forms.py:299 models.py:50
msgid "Material type"
msgstr ""
-#: forms.py:66 forms.py:162 models.py:60 models.py:293
+#: forms.py:66 forms.py:168 models.py:60 models.py:293
msgid "Conservatory state"
msgstr ""
@@ -45,11 +45,11 @@ msgstr ""
msgid "Object types"
msgstr ""
-#: forms.py:71 forms.py:161 models.py:67
+#: forms.py:71 forms.py:167 models.py:67
msgid "Preservation type"
msgstr ""
-#: forms.py:74 forms.py:164 models.py:321
+#: forms.py:74 forms.py:170 models.py:321
msgid "Integrity"
msgstr ""
@@ -69,15 +69,15 @@ msgstr ""
msgid "Diameter (cm)"
msgstr ""
-#: forms.py:80 forms.py:294 models.py:298
+#: forms.py:80 forms.py:300 models.py:298
msgid "Volume (l)"
msgstr ""
-#: forms.py:81 forms.py:295 models.py:299
+#: forms.py:81 forms.py:301 models.py:299
msgid "Weight (g)"
msgstr ""
-#: forms.py:82 forms.py:296 models.py:302
+#: forms.py:82 forms.py:302 models.py:302
msgid "Find number"
msgstr ""
@@ -85,7 +85,7 @@ msgstr ""
msgid "Mark"
msgstr ""
-#: forms.py:84 forms.py:169 models.py:332
+#: forms.py:84 forms.py:175 models.py:332
msgid "Check"
msgstr ""
@@ -116,15 +116,15 @@ msgstr ""
msgid "Dating"
msgstr ""
-#: forms.py:124 forms.py:156
+#: forms.py:124 forms.py:162
msgid "Period"
msgstr ""
-#: forms.py:125 forms.py:231 models.py:577 models.py:618
+#: forms.py:125 forms.py:237 models.py:577 models.py:618
msgid "Start date"
msgstr ""
-#: forms.py:127 forms.py:233 models.py:578 models.py:619
+#: forms.py:127 forms.py:239 models.py:578 models.py:619
msgid "End date"
msgstr ""
@@ -148,91 +148,95 @@ msgstr ""
msgid "Code PATRIARCHE"
msgstr ""
-#: forms.py:159 models.py:84
+#: forms.py:157
+msgid "Archaelogical site"
+msgstr ""
+
+#: forms.py:165 models.py:84
msgid "Object type"
msgstr ""
-#: forms.py:170
+#: forms.py:176
msgid "Has an image?"
msgstr ""
-#: forms.py:199 views.py:91
+#: forms.py:205 views.py:97
msgid "Find search"
msgstr ""
-#: forms.py:212
+#: forms.py:218
msgid "Base treatment"
msgstr ""
-#: forms.py:216 models.py:554 models.py:568
+#: forms.py:222 models.py:554 models.py:568
msgid "Treatment type"
msgstr ""
-#: forms.py:218 models.py:575 models.py:616
+#: forms.py:224 models.py:575 models.py:616
msgid "Person"
msgstr ""
-#: forms.py:224 models.py:570
+#: forms.py:230 models.py:570
msgid "Location"
msgstr ""
-#: forms.py:245
+#: forms.py:251
msgid "Upstream finds"
msgstr ""
-#: forms.py:247 models.py:347
+#: forms.py:253 models.py:347
msgid "Finds"
msgstr ""
-#: forms.py:257
+#: forms.py:263
msgid "You should at least select one archaeological find."
msgstr ""
-#: forms.py:286
+#: forms.py:292
msgid "Resulting find"
msgstr ""
-#: forms.py:291
+#: forms.py:297
msgid "Precise description"
msgstr ""
-#: forms.py:305
+#: forms.py:311
msgid "Resulting finds"
msgstr ""
-#: forms.py:309
+#: forms.py:315
msgid "Upstream find"
msgstr ""
-#: forms.py:316
+#: forms.py:322
msgid "Archaeological find search"
msgstr ""
-#: forms.py:318
+#: forms.py:324
msgid "You should select an archaeological find."
msgstr ""
-#: forms.py:323
+#: forms.py:329
msgid "Year of the operation"
msgstr ""
-#: forms.py:325
+#: forms.py:331
msgid "Period of the archaelogical find"
msgstr ""
-#: forms.py:327
+#: forms.py:333
msgid "Material type of the archaelogical find"
msgstr ""
-#: forms.py:329
+#: forms.py:335
msgid "Description of the archaelogical find"
msgstr ""
-#: forms.py:341
+#: forms.py:347
msgid "Documentation search"
msgstr ""
-#: forms.py:343
+#: forms.py:349
msgid "You should select a document."
msgstr ""
@@ -532,23 +536,23 @@ msgstr ""
msgid "Properties"
msgstr ""
-#: views.py:86
+#: views.py:92
msgid "New find"
msgstr ""
-#: views.py:99
+#: views.py:105
msgid "Find modification"
msgstr ""
-#: views.py:117
+#: views.py:123
msgid "Find: new source"
msgstr ""
-#: views.py:125
+#: views.py:131
msgid "Find: source modification"
msgstr ""
-#: views.py:131
+#: views.py:137
msgid "Find: source deletion"
msgstr ""
diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py
index 36388d85b..5306e84a5 100644
--- a/archaeological_finds/views.py
+++ b/archaeological_finds/views.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2016 É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
@@ -43,6 +43,8 @@ find_extra_keys = {
'base_finds__context_record__operation__year__contains',
'base_finds__context_record__operation':
'base_finds__context_record__operation__pk',
+ 'archaeological_sites':
+ 'base_finds__context_record__operation__archaeological_sites__pk',
'base_finds__context_record__operation__code_patriarche':
'base_finds__context_record__operation__code_patriarche',
'datings__period': 'datings__period__pk',
@@ -70,6 +72,10 @@ get_findsource = get_item(
models.FindSource, 'get_findsource', 'findsource',
bool_fields=['duplicate'],
extra_request_keys={
+ 'title': 'title__icontains',
+ 'description': 'description__icontains',
+ 'comment': 'comment__icontains',
+ 'additional_information': 'additional_information__icontains',
'find__context_record__operation__year':
'find__context_record__operation__year',
'find__datings__period': 'find__datings__period__pk',
diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py
index ec66a2a7a..981e4e3b9 100644
--- a/archaeological_operations/forms.py
+++ b/archaeological_operations/forms.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2010-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2010-2016 É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
@@ -411,15 +411,18 @@ OPERATOR, created = OrganizationType.objects.get_or_create(txt_idx='operator')
class OperationSelect(TableSelect):
- year = forms.IntegerField(label=_("Year"))
- operation_code = forms.IntegerField(label=_(u"Numeric reference"))
- common_name = forms.CharField(label=_(u"Name (full text search)"),
- max_length=30)
if settings.COUNTRY == 'fr':
code_patriarche = forms.IntegerField(label="Code PATRIARCHE")
- towns = get_town_field()
+ common_name = forms.CharField(label=_(u"Name (full text search)"),
+ max_length=30)
operation_type = forms.ChoiceField(label=_(u"Operation type"),
choices=[])
+ year = forms.IntegerField(label=_("Year"))
+ operation_code = forms.IntegerField(label=_(u"Numeric reference"))
+ towns = get_town_field()
+ if settings.ISHTAR_DPTS:
+ towns__numero_insee__startswith = forms.ChoiceField(
+ label="Department", choices=[])
scientist = forms.IntegerField(
widget=widgets.JQueryAutoComplete(
reverse_lazy('autocomplete-person-permissive',
@@ -427,6 +430,14 @@ class OperationSelect(TableSelect):
unicode(SRA_AGENT.pk)])]),
associated_model=Person),
label=_(u"Scientist in charge"))
+ operator = forms.IntegerField(
+ label=_("Operator"),
+ widget=widgets.JQueryAutoComplete(
+ reverse_lazy('autocomplete-organization', args=[OPERATOR.pk]),
+ associated_model=Organization),
+ validators=[valid_id(Organization)])
+ operator_reference = forms.CharField(label=_(u"Operator reference"),
+ max_length=20)
in_charge = forms.IntegerField(
widget=widgets.JQueryAutoComplete(
reverse_lazy(
@@ -436,14 +447,12 @@ class OperationSelect(TableSelect):
),
associated_model=Person),
label=_(u"In charge"))
- operator = forms.IntegerField(
- label=_("Operator"),
+ archaeological_sites = forms.IntegerField(
+ label=_("Archaelogical site"),
widget=widgets.JQueryAutoComplete(
- reverse_lazy('autocomplete-organization', args=[OPERATOR.pk]),
- associated_model=Organization),
- validators=[valid_id(Organization)])
- remains = forms.ChoiceField(label=_(u"Remains"), choices=[])
- periods = forms.ChoiceField(label=_(u"Periods"), choices=[])
+ reverse_lazy('autocomplete-archaeologicalsite'),
+ associated_model=models.ArchaeologicalSite),
+ validators=[valid_id(models.ArchaeologicalSite)])
start_before = forms.DateField(label=_(u"Started before"),
widget=widgets.JQueryDate)
start_after = forms.DateField(label=_(u"Started after"),
@@ -452,6 +461,8 @@ class OperationSelect(TableSelect):
widget=widgets.JQueryDate)
end_after = forms.DateField(label=_(u"Ended after"),
widget=widgets.JQueryDate)
+ remains = forms.ChoiceField(label=_(u"Remains"), choices=[])
+ periods = forms.ChoiceField(label=_(u"Periods"), choices=[])
parcel = ParcelField(label=_("Parcel (section/number)"))
end_date = forms.NullBooleanField(label=_(u"Is open?"))
history_creator = forms.IntegerField(
@@ -460,10 +471,14 @@ class OperationSelect(TableSelect):
reverse_lazy('autocomplete-person', args=['0', 'user']),
associated_model=Person),
validators=[valid_id(Person)])
+ abstract = forms.CharField(label=_(u"Abstract (full text search)"))
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"))
+ relation_types = forms.MultipleChoiceField(
+ label=_(u"Search within relations"), choices=[],
+ widget=forms.CheckboxSelectMultiple)
def __init__(self, *args, **kwargs):
super(OperationSelect, self).__init__(*args, **kwargs)
@@ -481,12 +496,21 @@ class OperationSelect(TableSelect):
self.fields['periods'].help_text = models.Period.get_help()
self.fields['record_quality'].choices = \
[('', '--')] + list(models.QUALITY)
+ if settings.ISHTAR_DPTS:
+ k = 'towns__numero_insee__startswith'
+ self.fields[k].choices = [
+ ('', '--')] + list(settings.ISHTAR_DPTS)
+ self.fields['relation_types'].choices = models.RelationType.get_types(
+ empty_first=False)
def get_input_ids(self):
ids = super(OperationSelect, self).get_input_ids()
ids.pop(ids.index('parcel'))
ids.append('parcel_0')
ids.append('parcel_1')
+ ids.pop(ids.index('relation_types'))
+ for idx, c in enumerate(self.fields['relation_types'].choices):
+ ids.append('relation_types_{}'.format(idx))
return ids
@@ -544,6 +568,13 @@ if FILES_AVAILABLE:
reverse_lazy('autocomplete-file'), associated_model=File),
validators=[valid_id(File)], required=False)
+
+class OperationFormAbstract(forms.Form):
+ form_label = _(u"Abstract")
+ abstract = forms.CharField(
+ label=_(u"Abstract"),
+ widget=forms.Textarea(attrs={'class': 'xlarge'}), required=False)
+
SLICING = (("month", _(u"months")), ('year', _(u"years")),)
DATE_SOURCE = (('creation', _(u"Creation date")),
@@ -635,6 +666,21 @@ class OperationFormGeneral(forms.Form):
'report_processing': models.ReportState,
'archaeological_site': models.ArchaeologicalSite}
pk = forms.IntegerField(required=False, widget=forms.HiddenInput)
+ if settings.COUNTRY == 'fr':
+ code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE",
+ required=False)
+ common_name = forms.CharField(label=_(u"Generic name"), required=False,
+ max_length=120, widget=forms.Textarea)
+ operation_type = forms.ChoiceField(label=_(u"Operation type"),
+ choices=[])
+ year = forms.IntegerField(label=_(u"Year"),
+ initial=lambda: datetime.datetime.now().year,
+ validators=[validators.MinValueValidator(1900),
+ validators.MaxValueValidator(2100)])
+ operation_code = forms.IntegerField(
+ label=_(u"Operation code"),
+ initial=models.Operation.get_available_operation_code,
+ widget=OperationCodeInput(attrs={'readonly': 'readonly'}))
scientist = forms.IntegerField(
label=_("Head scientist"),
widget=widgets.JQueryAutoComplete(
@@ -652,6 +698,8 @@ class OperationFormGeneral(forms.Form):
limit={'organization_type': (OPERATOR.pk,)},
associated_model=Organization, new=True),
validators=[valid_id(Organization)], required=False)
+ operator_reference = forms.CharField(label=_(u"Operator reference"),
+ required=False, max_length=20)
in_charge = forms.IntegerField(
label=_("In charge"),
widget=widgets.JQueryAutoComplete(
@@ -660,8 +708,14 @@ class OperationFormGeneral(forms.Form):
associated_model=Person,
limit={'person_types': [SRA_AGENT.pk]}, new=True),
validators=[valid_id(Person)], required=False)
- operation_type = forms.ChoiceField(label=_(u"Operation type"),
- choices=[])
+ surface = forms.IntegerField(
+ required=False, widget=widgets.AreaWidget,
+ label=_(u"Total surface (m2)"),
+ validators=[validators.MinValueValidator(0),
+ validators.MaxValueValidator(999999999)])
+ archaeological_site = widgets.MultipleAutocompleteField(
+ model=models.ArchaeologicalSite,
+ label=_("Associated archaeological sites"), new=True, required=False)
start_date = forms.DateField(
label=_(u"Start date"), required=False, widget=widgets.JQueryDate)
excavation_end_date = forms.DateField(
@@ -672,36 +726,14 @@ class OperationFormGeneral(forms.Form):
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)"),
- validators=[validators.MinValueValidator(0),
- validators.MaxValueValidator(999999999)])
- year = forms.IntegerField(label=_(u"Year"),
- initial=lambda: datetime.datetime.now().year,
- validators=[validators.MinValueValidator(1900),
- validators.MaxValueValidator(2100)])
- operation_code = forms.IntegerField(
- label=_(u"Operation code"),
- initial=models.Operation.get_available_operation_code,
- widget=OperationCodeInput(attrs={'readonly': 'readonly'}))
- common_name = forms.CharField(label=_(u"Generic name"), required=False,
- max_length=120, widget=forms.Textarea)
- operator_reference = forms.CharField(label=_(u"Operator reference"),
- required=False, max_length=20)
- archaeological_site = widgets.MultipleAutocompleteField(
- model=models.ArchaeologicalSite,
- label=_("Associated archaeological sites"), new=True, required=False)
if settings.COUNTRY == 'fr':
- negative_result = forms.NullBooleanField(
- required=False, label=u"Résultat considéré comme négatif")
- code_patriarche = forms.IntegerField(label=u"Code PATRIARCHE",
- required=False)
code_dracar = forms.CharField(
label=u"Code DRACAR", required=False,
validators=[validators.MaxLengthValidator(10)])
cira_date = forms.DateField(label=u"Date avis CIRA", required=False,
widget=widgets.JQueryDate)
+ negative_result = forms.NullBooleanField(
+ required=False, label=u"Résultat considéré comme négatif")
cira_rapporteur = forms.IntegerField(
label=u"Rapporteur CIRA",
widget=widgets.JQueryAutoComplete(
@@ -1068,8 +1100,7 @@ class AdministrativeActOpeSelect(TableSelect):
if settings.ISHTAR_DPTS:
k = 'operation__towns__numero_insee__startswith'
self.fields[k].choices = [
- ('', '--')] + [(str(dpt), str(dpt))
- for dpt in settings.ISHTAR_DPTS]
+ ('', '--')] + list(settings.ISHTAR_DPTS)
class AdministrativeActOpeFormSelection(forms.Form):
diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot
index 55f832463..f27f74e8b 100644
--- a/archaeological_operations/locale/django.pot
+++ b/archaeological_operations/locale/django.pot
@@ -7,12 +7,12 @@
msgid ""
msgstr ""
-#: forms.py:69 forms.py:336 forms.py:854 forms.py:876 forms.py:880
-#: models.py:790 templates/ishtar/blocks/window_tables/parcels.html:8
+#: forms.py:69 forms.py:336 forms.py:883 forms.py:905 forms.py:909
+#: models.py:791 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr ""
-#: forms.py:72 forms.py:188 forms.py:830 models.py:780
+#: forms.py:72 forms.py:188 forms.py:859 models.py:781
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -21,18 +21,18 @@ msgstr ""
msgid "Town"
msgstr ""
-#: forms.py:74 forms.py:414 forms.py:680 forms.py:1043 models.py:161
-#: models.py:596 models.py:778
+#: forms.py:74 forms.py:414 forms.py:709 forms.py:1072 models.py:161
+#: models.py:597 models.py:779
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
msgstr ""
-#: forms.py:77 models.py:781
+#: forms.py:77 models.py:782
#: templates/ishtar/blocks/window_tables/parcels.html:7
msgid "Section"
msgstr ""
-#: forms.py:80 models.py:782
+#: forms.py:80 models.py:783
msgid "Parcel number"
msgstr ""
@@ -64,8 +64,8 @@ msgstr ""
msgid "Relation type"
msgstr ""
-#: forms.py:348 ishtar_menu.py:33 models.py:240 models.py:495 models.py:520
-#: models.py:535 models.py:587 models.py:777 wizards.py:341 wizards.py:352
+#: forms.py:348 ishtar_menu.py:33 models.py:241 models.py:496 models.py:521
+#: models.py:536 models.py:588 models.py:778 wizards.py:341 wizards.py:352
#: templates/ishtar/sheet_operation.html:6
msgid "Operation"
msgstr ""
@@ -94,328 +94,344 @@ msgstr ""
msgid "Name (full text search)"
msgstr ""
-#: forms.py:421 forms.py:567 forms.py:663 forms.py:1020 models.py:170
+#: forms.py:421
+msgid "Archaelogical site"
+msgstr ""
+
+#: forms.py:430 forms.py:596 forms.py:692 forms.py:1049 models.py:170
msgid "Operation type"
msgstr ""
-#: forms.py:429 models.py:581
+#: forms.py:438 models.py:582
msgid "Scientist in charge"
msgstr ""
-#: forms.py:438 forms.py:656 models.py:158
+#: forms.py:447 forms.py:685 models.py:158
msgid "In charge"
msgstr ""
-#: forms.py:440 forms.py:569 forms.py:649 models.py:156
+#: forms.py:449 forms.py:598 forms.py:678 models.py:156
msgid "Operator"
msgstr ""
-#: forms.py:445 forms.py:920 models.py:83 models.py:172
+#: forms.py:454 forms.py:949 models.py:83 models.py:172
msgid "Remains"
msgstr ""
-#: forms.py:446 forms.py:899 forms.py:917 models.py:81 models.py:177
+#: forms.py:455 forms.py:928 forms.py:946 models.py:81 models.py:177
msgid "Periods"
msgstr ""
-#: forms.py:447
+#: forms.py:456
msgid "Started before"
msgstr ""
-#: forms.py:449
+#: forms.py:458
msgid "Started after"
msgstr ""
-#: forms.py:451
+#: forms.py:460
msgid "Ended before"
msgstr ""
-#: forms.py:453
+#: forms.py:462
msgid "Ended after"
msgstr ""
-#: forms.py:455
+#: forms.py:464
msgid "Parcel (section/number)"
msgstr ""
-#: forms.py:456
+#: forms.py:465
msgid "Is open?"
msgstr ""
-#: forms.py:458 forms.py:1056
+#: forms.py:467 forms.py:1085
msgid "Created by"
msgstr ""
-#: forms.py:463 forms.py:716 models.py:235
+#: forms.py:472
+msgid "Abstract (full text search)"
+msgstr ""
+
+#: forms.py:473 forms.py:745 models.py:235
msgid "Record quality"
msgstr ""
-#: forms.py:464 forms.py:673 models.py:189
+#: forms.py:474 forms.py:702 models.py:189
msgid "Report processing"
msgstr ""
-#: forms.py:466 forms.py:719 models.py:230
+#: forms.py:476 forms.py:748 models.py:230
msgid "Virtual operation"
msgstr ""
-#: forms.py:494 forms.py:1013 views.py:205
+#: forms.py:478
+msgid "Search within relations"
+msgstr ""
+
+#: forms.py:516 forms.py:1042 views.py:214
msgid "Operation search"
msgstr ""
-#: forms.py:507 forms.py:1015
+#: forms.py:529 forms.py:1044
msgid "You should select an operation."
msgstr ""
-#: forms.py:538
+#: forms.py:560
msgid "Associated file"
msgstr ""
-#: forms.py:542 forms.py:779 models.py:593 wizards.py:78
+#: forms.py:564 forms.py:808 models.py:594 wizards.py:78
msgid "Archaelogical file"
msgstr ""
-#: forms.py:547
+#: forms.py:571 forms.py:573 models.py:237
+msgid "Abstract"
+msgstr ""
+
+#: forms.py:576
msgid "months"
msgstr ""
-#: forms.py:547
+#: forms.py:576
msgid "years"
msgstr ""
-#: forms.py:549 models.py:142
+#: forms.py:578 models.py:142
msgid "Creation date"
msgstr ""
-#: forms.py:550
+#: forms.py:579
msgid "Start of field work"
msgstr ""
-#: forms.py:552
+#: forms.py:581
msgid "All"
msgstr ""
-#: forms.py:553
+#: forms.py:582
msgid "Preventive"
msgstr ""
-#: forms.py:554
+#: forms.py:583
msgid "Research"
msgstr ""
-#: forms.py:558
+#: forms.py:587
msgid "Slicing"
msgstr ""
-#: forms.py:561
+#: forms.py:590
msgid "Department detail"
msgstr ""
-#: forms.py:563
+#: forms.py:592
msgid "Date get from"
msgstr ""
-#: forms.py:565
+#: forms.py:594
msgid "Preventive/Research"
msgstr ""
-#: forms.py:571
+#: forms.py:600
msgid "Date after"
msgstr ""
-#: forms.py:573
+#: forms.py:602
msgid "Date before"
msgstr ""
-#: forms.py:575
+#: forms.py:604
msgid "With reports"
msgstr ""
-#: forms.py:576
+#: forms.py:605
msgid "With finds"
msgstr ""
-#: forms.py:628 forms.py:1096 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:657 forms.py:1124 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr ""
-#: forms.py:639
+#: forms.py:668
msgid "Head scientist"
msgstr ""
-#: forms.py:666 models.py:51 models.py:145 models.py:950
+#: forms.py:695 models.py:51 models.py:145 models.py:951
msgid "Start date"
msgstr ""
-#: forms.py:668 models.py:147
+#: forms.py:697 models.py:147
msgid "Excavation end date"
msgstr ""
-#: forms.py:671 models.py:148
+#: forms.py:700 models.py:148
msgid "Report delivery date"
msgstr ""
-#: forms.py:677
+#: forms.py:706
msgid "Total surface (m2)"
msgstr ""
-#: forms.py:685 forms.py:774 models.py:162 models.py:374
+#: forms.py:714 forms.py:803 models.py:162 models.py:375
msgid "Operation code"
msgstr ""
-#: forms.py:688 models.py:222
+#: forms.py:717 models.py:222
msgid "Generic name"
msgstr ""
-#: forms.py:690 models.py:221
+#: forms.py:719 models.py:221
msgid "Operator reference"
msgstr ""
-#: forms.py:694
+#: forms.py:723
msgid "Associated archaeological sites"
msgstr ""
-#: forms.py:714 models.py:223
+#: forms.py:743 models.py:223
msgid "Comment"
msgstr ""
-#: forms.py:744
+#: forms.py:773
msgid ""
"If you want to set an excavation end date you have to provide a start date."
msgstr ""
-#: forms.py:749
+#: forms.py:778
msgid "The excavation end date cannot be before the start date."
msgstr ""
-#: forms.py:764
+#: forms.py:793
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:768
+#: forms.py:797
msgid "Bad operation code"
msgstr ""
-#: forms.py:800
+#: forms.py:829
msgid "Preventive informations - excavation"
msgstr ""
-#: forms.py:801 models.py:175
+#: forms.py:830 models.py:175
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr ""
-#: forms.py:802 models.py:180
+#: forms.py:831 models.py:180
msgid "Scheduled man-days"
msgstr ""
-#: forms.py:804 models.py:183
+#: forms.py:833 models.py:183
msgid "Optional man-days"
msgstr ""
-#: forms.py:806 models.py:186
+#: forms.py:835 models.py:186
msgid "Effective man-days"
msgstr ""
-#: forms.py:816
+#: forms.py:845
msgid "Preventive informations - diagnostic"
msgstr ""
-#: forms.py:819 models.py:205
+#: forms.py:848 models.py:205
msgid "Prescription on zoning"
msgstr ""
-#: forms.py:821 models.py:208
+#: forms.py:850 models.py:208
msgid "Prescription on large area"
msgstr ""
-#: forms.py:824 models.py:210
+#: forms.py:853 models.py:210
msgid "Prescription on geoarchaeological context"
msgstr ""
-#: forms.py:828 forms.py:850 models.py:174 models.py:606
+#: forms.py:857 forms.py:879 models.py:174 models.py:607
msgid "Towns"
msgstr ""
-#: forms.py:857 models.py:789 models.py:948
+#: forms.py:886 models.py:790 models.py:949
msgid "Parcel"
msgstr ""
-#: forms.py:884 models.py:45
+#: forms.py:913 models.py:45
msgid "Remain types"
msgstr ""
-#: forms.py:888 models.py:44
+#: forms.py:917 models.py:44
msgid "Remain type"
msgstr ""
-#: forms.py:903
+#: forms.py:932
msgid "Period"
msgstr ""
-#: forms.py:914 models.py:78
+#: forms.py:943 models.py:78
msgid "Reference"
msgstr ""
-#: forms.py:915 models.py:79
+#: forms.py:944 models.py:79
msgid "Name"
msgstr ""
-#: forms.py:939
+#: forms.py:968
msgid "This reference already exists."
msgstr ""
-#: forms.py:956
+#: forms.py:985
msgid "Associated archaelogical sites"
msgstr ""
-#: forms.py:962 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
+#: forms.py:991 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
msgid "Search"
msgstr ""
-#: forms.py:967
+#: forms.py:996
msgid "Would you like to close this operation?"
msgstr ""
-#: forms.py:972
+#: forms.py:1001
msgid "Would you like to delete this operation?"
msgstr ""
-#: forms.py:981 forms.py:1044 models.py:522 models.py:572
+#: forms.py:1010 forms.py:1073 models.py:523 models.py:573
msgid "Index"
msgstr ""
-#: forms.py:1007
+#: forms.py:1036
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
"%(last_val)d"
msgstr ""
-#: forms.py:1019
+#: forms.py:1048
msgid "Operation's town"
msgstr ""
-#: forms.py:1022
+#: forms.py:1051
msgid "Operation's year"
msgstr ""
-#: forms.py:1033
+#: forms.py:1062
msgid "Documentation search"
msgstr ""
-#: forms.py:1035
+#: forms.py:1064
msgid "You should select a document."
msgstr ""
-#: forms.py:1048 forms.py:1099 models.py:546 models.py:566
+#: forms.py:1077 forms.py:1127 models.py:547 models.py:567
msgid "Act type"
msgstr ""
-#: forms.py:1052 models.py:496
+#: forms.py:1081 models.py:497
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -423,52 +439,52 @@ msgstr ""
msgid "Department"
msgstr ""
-#: forms.py:1053
+#: forms.py:1082
msgid "Object (full text search)"
msgstr ""
-#: forms.py:1076 views.py:339
+#: forms.py:1104 views.py:350
msgid "Administrative act search"
msgstr ""
-#: forms.py:1091 forms.py:1145 forms.py:1212
+#: forms.py:1119 forms.py:1173 forms.py:1240
msgid "You should select an administrative act."
msgstr ""
-#: forms.py:1104 models.py:597
+#: forms.py:1132 models.py:598
#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr ""
-#: forms.py:1107 models.py:594
+#: forms.py:1135 models.py:595
msgid "Signature date"
msgstr ""
-#: forms.py:1122
+#: forms.py:1150
msgid "Would you like to delete this administrative act?"
msgstr ""
-#: forms.py:1127
+#: forms.py:1155
msgid "Template"
msgstr ""
-#: forms.py:1151 forms.py:1155
+#: forms.py:1179 forms.py:1183
msgid "This document is not intended for this type of act."
msgstr ""
-#: forms.py:1173
+#: forms.py:1201
msgid "Doc generation"
msgstr ""
-#: forms.py:1175
+#: forms.py:1203
msgid "Generate the associated doc?"
msgstr ""
-#: forms.py:1187
+#: forms.py:1215
msgid "Indexed?"
msgstr ""
-#: forms.py:1196 ishtar_menu.py:110 views.py:373
+#: forms.py:1224 ishtar_menu.py:110 views.py:384
msgctxt "admin act register"
msgid "Register"
msgstr ""
@@ -505,7 +521,7 @@ msgstr ""
msgid "General informations"
msgstr ""
-#: ishtar_menu.py:94 models.py:241
+#: ishtar_menu.py:94 models.py:242
#: templates/ishtar/dashboards/dashboard_operation.html:9
msgid "Operations"
msgstr ""
@@ -514,7 +530,7 @@ msgstr ""
msgid "Administrative Act"
msgstr ""
-#: ishtar_menu.py:121 models.py:613
+#: ishtar_menu.py:121 models.py:614
#: templates/ishtar/sheet_administrativeact.html:6
msgid "Administrative act"
msgstr ""
@@ -523,11 +539,11 @@ msgstr ""
msgid "Documents"
msgstr ""
-#: models.py:50 models.py:66 models.py:1412
+#: models.py:50 models.py:66 models.py:1413
msgid "Order"
msgstr ""
-#: models.py:52 models.py:951
+#: models.py:52 models.py:952
msgid "End date"
msgstr ""
@@ -599,7 +615,7 @@ msgstr ""
msgid "In charge scientist"
msgstr ""
-#: models.py:167 models.py:773
+#: models.py:167 models.py:774
msgid "File"
msgstr ""
@@ -616,276 +632,276 @@ msgid ""
"If checked, it means that this operation have not been officialy registered."
msgstr ""
-#: models.py:243
+#: models.py:244
msgid "Can view all Operation"
msgstr ""
-#: models.py:244
+#: models.py:245
msgid "Can view own Operation"
msgstr ""
-#: models.py:245
+#: models.py:246
msgid "Can add own Operation"
msgstr ""
-#: models.py:246
+#: models.py:247
msgid "Can change own Operation"
msgstr ""
-#: models.py:247
+#: models.py:248
msgid "Can delete own Operation"
msgstr ""
-#: models.py:248
+#: models.py:249
msgid "Can close Operation"
msgstr ""
-#: models.py:271
+#: models.py:272
msgid "OPE"
msgstr ""
-#: models.py:331
+#: models.py:332
msgid "Intercommunal"
msgstr ""
-#: models.py:357 models.py:534
+#: models.py:358 models.py:535
msgid "Archaeological file"
msgstr ""
-#: models.py:358
+#: models.py:359
msgid "Code patriarche"
msgstr ""
-#: models.py:400
+#: models.py:401
msgid "This operation code already exists for this year"
msgstr ""
-#: models.py:466
+#: models.py:467
msgid "Inverse relation"
msgstr ""
-#: models.py:470
+#: models.py:471
msgid "Operation relation type"
msgstr ""
-#: models.py:471
+#: models.py:472
msgid "Operation relation types"
msgstr ""
-#: models.py:484
+#: models.py:485
msgid "Operation record relation"
msgstr ""
-#: models.py:485
+#: models.py:486
msgid "Operation record relations"
msgstr ""
-#: models.py:506
+#: models.py:507
msgid "Operation documentation"
msgstr ""
-#: models.py:507
+#: models.py:508
msgid "Operation documentations"
msgstr ""
-#: models.py:510
+#: models.py:511
msgid "Can view all Operation source"
msgstr ""
-#: models.py:512
+#: models.py:513
msgid "Can view own Operation source"
msgstr ""
-#: models.py:514
+#: models.py:515
msgid "Can add own Operation source"
msgstr ""
-#: models.py:516
+#: models.py:517
msgid "Can change own Operation source"
msgstr ""
-#: models.py:518
+#: models.py:519
msgid "Can delete own Operation source"
msgstr ""
-#: models.py:537
+#: models.py:538
msgid "Intended to"
msgstr ""
-#: models.py:539
+#: models.py:540
msgid "Code"
msgstr ""
-#: models.py:542
+#: models.py:543
msgid "Associated template"
msgstr ""
-#: models.py:543
+#: models.py:544
msgid "Indexed"
msgstr ""
-#: models.py:547
+#: models.py:548
msgid "Act types"
msgstr ""
-#: models.py:570
+#: models.py:571
msgid "Person in charge of the operation"
msgstr ""
-#: models.py:576
+#: models.py:577
msgid "Archaeological preventive operator"
msgstr ""
-#: models.py:584
+#: models.py:585
msgid "Signatory"
msgstr ""
-#: models.py:603
+#: models.py:604
msgid "Departments"
msgstr ""
-#: models.py:604
+#: models.py:605
msgid "Cached values get from associated departments"
msgstr ""
-#: models.py:607
+#: models.py:608
msgid "Cached values get from associated towns"
msgstr ""
-#: models.py:614
+#: models.py:615
msgid "Administrative acts"
msgstr ""
-#: models.py:617
+#: models.py:618
msgid "Can view all Administrative act"
msgstr ""
-#: models.py:619
+#: models.py:620
msgid "Can view own Administrative act"
msgstr ""
-#: models.py:621
+#: models.py:622
msgid "Can add own Administrative act"
msgstr ""
-#: models.py:623
+#: models.py:624
msgid "Can change own Administrative act"
msgstr ""
-#: models.py:625
+#: models.py:626
msgid "Can delete own Administrative act"
msgstr ""
-#: models.py:634
+#: models.py:635
#: templates/ishtar/blocks/window_tables/administrativacts.html:5
msgid "Ref."
msgstr ""
-#: models.py:717
+#: models.py:718
msgid "This index already exists for this year"
msgstr ""
-#: models.py:784
+#: models.py:785
msgid "External ID"
msgstr ""
-#: models.py:786
+#: models.py:787
msgid "Address - Locality"
msgstr ""
-#: models.py:946
+#: models.py:947
msgid "Owner"
msgstr ""
-#: models.py:954
+#: models.py:955
msgid "Parcel owner"
msgstr ""
-#: models.py:955
+#: models.py:956
msgid "Parcel owners"
msgstr ""
-#: models.py:981
+#: models.py:982
msgid "Recorded"
msgstr ""
-#: models.py:982
+#: models.py:983
msgid "Effective"
msgstr ""
-#: models.py:983
+#: models.py:984
msgid "Active"
msgstr ""
-#: models.py:984
+#: models.py:985
msgid "Field completed"
msgstr ""
-#: models.py:985
+#: models.py:986
msgid "Associated report"
msgstr ""
-#: models.py:986
+#: models.py:987
msgid "Closed"
msgstr ""
-#: models.py:987
+#: models.py:988
msgid "Documented and closed"
msgstr ""
-#: models.py:1413
+#: models.py:1414
msgid "Is preventive"
msgstr ""
-#: models.py:1416
+#: models.py:1417
msgid "Operation type old"
msgstr ""
-#: models.py:1417
+#: models.py:1418
msgid "Operation types old"
msgstr ""
-#: views.py:226
+#: views.py:236
msgid "New operation"
msgstr ""
-#: views.py:260
+#: views.py:271
msgid "Operation modification"
msgstr ""
-#: views.py:300
+#: views.py:311
msgid "Operation closing"
msgstr ""
-#: views.py:306
+#: views.py:317
msgid "Operation deletion"
msgstr ""
-#: views.py:311
+#: views.py:322
msgid "Operation: source search"
msgstr ""
-#: views.py:319
+#: views.py:330
msgid "Operation: source creation"
msgstr ""
-#: views.py:327
+#: views.py:338
msgid "Operation: source modification"
msgstr ""
-#: views.py:333
+#: views.py:344
msgid "Operation: source deletion"
msgstr ""
-#: views.py:348
+#: views.py:359
msgid "Operation: new administrative act"
msgstr ""
-#: views.py:358
+#: views.py:369
msgid "Operation: administrative act modification"
msgstr ""
-#: views.py:367
+#: views.py:378
msgid "Operation: administrative act deletion"
msgstr ""
@@ -1049,14 +1065,6 @@ msgstr ""
msgid "Day"
msgstr ""
-#: templates/ishtar/sheet_operation.html:61
-msgid "Remains:"
-msgstr ""
-
-#: templates/ishtar/sheet_operation.html:62
-msgid "Periods:"
-msgstr ""
-
#: templates/ishtar/sheet_operation.html:84
msgid "Permit type:"
msgstr ""
diff --git a/archaeological_operations/migrations/0049_auto__add_field_historicaloperation_abstract__add_field_operation_abst.py b/archaeological_operations/migrations/0049_auto__add_field_historicaloperation_abstract__add_field_operation_abst.py
new file mode 100644
index 000000000..3bdc0e750
--- /dev/null
+++ b/archaeological_operations/migrations/0049_auto__add_field_historicaloperation_abstract__add_field_operation_abst.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 'HistoricalOperation.abstract'
+ db.add_column('archaeological_operations_historicaloperation', 'abstract',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+ # Adding field 'Operation.abstract'
+ db.add_column('archaeological_operations_operation', 'abstract',
+ self.gf('django.db.models.fields.TextField')(null=True, blank=True),
+ keep_default=False)
+
+
+ def backwards(self, orm):
+ # Deleting field 'HistoricalOperation.abstract'
+ db.delete_column('archaeological_operations_historicaloperation', 'abstract')
+
+ # Deleting field 'Operation.abstract'
+ db.delete_column('archaeological_operations_operation', 'abstract')
+
+
+ models = {
+ 'archaeological_files.file': {
+ 'Meta': {'ordering': "('cached_label',)", 'object_name': 'File'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_advised': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'classified_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'corporation_general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'creation_date': ('django.db.models.fields.DateField', [], {'default': 'datetime.date.today', 'null': 'True', 'blank': 'True'}),
+ 'departments': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '120', 'null': 'True', 'blank': 'True'}),
+ 'file_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.FileType']"}),
+ 'general_contractor': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'general_contractor_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_line': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_files_file'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_responsability'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'instruction_deadline': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'internal_reference': ('django.db.models.fields.CharField', [], {'max_length': '60', 'null': 'True', 'blank': 'True'}),
+ 'locality': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'main_town': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'file_main'", 'null': 'True', 'to': "orm['ishtar_common.Town']"}),
+ 'mh_listing': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'mh_register': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'numeric_reference': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'organization': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'permit_reference': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'permit_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.PermitType']", 'null': 'True', 'blank': 'True'}),
+ 'planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'protected_area': ('django.db.models.fields.NullBooleanField', [], {'null': 'True', 'blank': 'True'}),
+ 'raw_general_contractor': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'raw_town_planning_service': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'reception_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'related_file': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.File']", 'null': 'True', 'blank': 'True'}),
+ 'requested_operation_type': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.OperationType']"}),
+ 'research_comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'responsible_town_planning_service': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'responsible_town_planning_service_files'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'saisine_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_files.SaisineType']", 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'total_developed_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'total_surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns': ('django.db.models.fields.related.ManyToManyField', [], {'related_name': "'file'", 'symmetrical': 'False', 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'default': '2016'})
+ },
+ 'archaeological_files.filetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'FileType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.permittype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PermitType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_files.saisinetype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'SaisineType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'delay': ('django.db.models.fields.IntegerField', [], {'default': '30'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.acttype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'ActType'},
+ 'associated_template': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'acttypes'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.DocumentTemplate']"}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'indexed': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'intented_to': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.administrativeact': {
+ 'Meta': {'ordering': "('year', 'signature_date', 'index', 'act_type')", 'object_name': 'AdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.ActType']"}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_administrativeact'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'in_charge': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operation_in_charge'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'administrative_act'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'operator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_operator'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'adminact_scientist'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signatory': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'signatory'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.archaeologicalsite': {
+ 'Meta': {'object_name': 'ArchaeologicalSite'},
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_archaeologicalsite'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'periods': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
+ 'remains': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.RemainType']", 'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaladministrativeact': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalAdministrativeAct'},
+ 'act_object': ('django.db.models.fields.TextField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'act_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'departments_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+ 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+ 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}),
+ 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}),
+ 'in_charge_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'index': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'operation_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'operator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'ref_sra': ('django.db.models.fields.CharField', [], {'max_length': '15', 'null': 'True', 'blank': 'True'}),
+ 'scientist_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signatory_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'signature_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'towns_label': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.historicaloperation': {
+ 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOperation'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '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'},
+ 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'archaeological_sites': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['archaeological_operations.ArchaeologicalSite']", 'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'operations'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'cached_label': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'cira_date': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'cira_rapporteur': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'cira_rapporteur'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Person']"}),
+ 'code_dracar': ('django.db.models.fields.CharField', [], {'max_length': '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'}),
+ 'receipt_date_in_documentation': ('django.db.models.fields.DateField', [], {'null': 'True', 'blank': 'True'}),
+ 'reference': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'scale': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'source_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SourceType']"}),
+ 'support_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.SupportType']", 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '300'})
+ },
+ 'archaeological_operations.operationtypeold': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationTypeOld'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.parcel': {
+ 'Meta': {'ordering': "('year', 'section', 'parcel_number')", 'object_name': 'Parcel'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'associated_file': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_files.File']"}),
+ 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcel'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'operation': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'parcels'", 'null': 'True', 'to': "orm['archaeological_operations.Operation']"}),
+ 'parcel_number': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+ 'section': ('django.db.models.fields.CharField', [], {'max_length': '4'}),
+ 'town': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcels'", 'to': "orm['ishtar_common.Town']"}),
+ 'year': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ },
+ 'archaeological_operations.parcelowner': {
+ 'Meta': {'object_name': 'ParcelOwner'},
+ 'end_date': ('django.db.models.fields.DateField', [], {}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_date': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_archaeological_operations_parcelowner'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'owner': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'parcel_owner'", 'to': "orm['ishtar_common.Person']"}),
+ 'parcel': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'owners'", 'to': "orm['archaeological_operations.Parcel']"}),
+ 'start_date': ('django.db.models.fields.DateField', [], {})
+ },
+ 'archaeological_operations.period': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'Period'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'end_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'parent': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.Period']", 'null': 'True', 'blank': 'True'}),
+ 'start_date': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.recordrelations': {
+ 'Meta': {'ordering': "('left_record', 'relation_type')", 'object_name': 'RecordRelations'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'left_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'right_relations'", 'to': "orm['archaeological_operations.Operation']"}),
+ 'relation_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']"}),
+ 'right_record': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'left_relations'", 'to': "orm['archaeological_operations.Operation']"})
+ },
+ 'archaeological_operations.relationtype': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'RelationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'inverse_relation': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['archaeological_operations.RelationType']", 'null': 'True', 'blank': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'symmetrical': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.remaintype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'RemainType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'archaeological_operations.reportstate': {
+ 'Meta': {'ordering': "('order',)", 'object_name': 'ReportState'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'auth.group': {
+ 'Meta': {'object_name': 'Group'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+ 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+ },
+ 'auth.permission': {
+ 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+ 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+ },
+ 'auth.user': {
+ 'Meta': {'object_name': 'User'},
+ 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+ 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+ 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+ 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+ 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+ 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+ },
+ 'contenttypes.contenttype': {
+ 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+ 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.arrondissement': {
+ 'Meta': {'object_name': 'Arrondissement'},
+ 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.author': {
+ 'Meta': {'object_name': 'Author'},
+ 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"})
+ },
+ 'ishtar_common.authortype': {
+ 'Meta': {'object_name': 'AuthorType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.canton': {
+ 'Meta': {'object_name': 'Canton'},
+ 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'})
+ },
+ 'ishtar_common.department': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'Department'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}),
+ 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.documenttemplate': {
+ 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'},
+ 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'})
+ },
+ 'ishtar_common.format': {
+ 'Meta': {'object_name': 'Format'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.import': {
+ 'Meta': {'object_name': 'Import'},
+ 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+ 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}),
+ 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+ 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}),
+ 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}),
+ 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+ 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}),
+ 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"})
+ },
+ 'ishtar_common.importertype': {
+ 'Meta': {'object_name': 'ImporterType'},
+ 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}),
+ 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}),
+ 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}),
+ 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.ishtaruser': {
+ 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']},
+ 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'})
+ },
+ 'ishtar_common.operationtype': {
+ 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}),
+ 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.organization': {
+ 'Meta': {'object_name': 'Organization'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '300'}),
+ 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.organizationtype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.person': {
+ 'Meta': {'object_name': 'Person'},
+ 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}),
+ 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}),
+ 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}),
+ 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}),
+ 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}),
+ 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}),
+ 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+ 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}),
+ 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}),
+ 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}),
+ 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}),
+ 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}),
+ 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}),
+ 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'})
+ },
+ 'ishtar_common.persontype': {
+ 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.sourcetype': {
+ 'Meta': {'object_name': 'SourceType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.state': {
+ 'Meta': {'ordering': "['number']", 'object_name': 'State'},
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}),
+ 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'})
+ },
+ 'ishtar_common.supporttype': {
+ 'Meta': {'object_name': 'SupportType'},
+ 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+ 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'})
+ },
+ 'ishtar_common.town': {
+ 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'},
+ 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}),
+ 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}),
+ 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}),
+ 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+ 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+ 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}),
+ 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'})
+ }
+ }
+
+ complete_apps = ['archaeological_operations'] \ No newline at end of file
diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py
index 795c1a805..448adcd68 100644
--- a/archaeological_operations/models.py
+++ b/archaeological_operations/models.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python
# -*- coding: utf-8 -*-
-# Copyright (C) 2012-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet>
+# Copyright (C) 2012-2016 É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
@@ -234,6 +234,7 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,
record_quality = models.CharField(
_(u"Record quality"), max_length=2, null=True, blank=True,
choices=QUALITY)
+ abstract = models.TextField(_(u"Abstract"), null=True, blank=True)
history = HistoricalRecords()
class Meta:
diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html
index c0beac524..c45d6eb73 100644
--- a/archaeological_operations/templates/ishtar/sheet_operation.html
+++ b/archaeological_operations/templates/ishtar/sheet_operation.html
@@ -57,9 +57,8 @@
{% 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>
+{% field_multiple "Remains" item.remains %}
+{% field_multiple "Periods" item.periods %}
{% if item.QUALITY_DICT %}
{% field "Record quality" item.record_quality|from_dict:item.QUALITY_DICT %}
@@ -68,6 +67,7 @@
{% field "Record quality" item.record_quality|from_dict:item.history_object.QUALITY_DICT %}
{% endif %}
+{% field "Abstract" item.abstract %}
{% if item.associated_file %}
<p><label>{%trans "Associated file:"%}</label> <span class='value'><a href='#' onclick='load_window("{% url show-file item.associated_file.pk ''%}")'>{{ item.associated_file }}</a></span></p><!-- Displayed as Year/index/Commune/Common_name This should be a link to the file sheet of the related file -->
diff --git a/archaeological_operations/tests.py b/archaeological_operations/tests.py
index 91ec1deb0..578382ccd 100644
--- a/archaeological_operations/tests.py
+++ b/archaeological_operations/tests.py
@@ -514,9 +514,9 @@ class OperationInitTest(object):
class OperationTest(TestCase, OperationInitTest):
fixtures = [settings.ROOT_PATH +
- '../fixtures/initial_data.json',
+ '../fixtures/initial_data-auth-fr.json',
settings.ROOT_PATH +
- '../ishtar_common/fixtures/initial_data.json',
+ '../ishtar_common/fixtures/initial_data-fr.json',
settings.ROOT_PATH +
'../archaeological_files/fixtures/initial_data.json',
settings.ROOT_PATH +
@@ -544,6 +544,27 @@ class OperationTest(TestCase, OperationInitTest):
{'operator': self.orgas[0].pk})
self.assertTrue(json.loads(response.content)['total'] == 2)
+ def testRelatedSearch(self):
+ c = Client()
+ rel1 = models.RelationType.objects.create(
+ symmetrical=True, label='Include', txt_idx='include')
+ rel2 = models.RelationType.objects.create(
+ symmetrical=False, label='Included', txt_idx='included',
+ inverse_relation=rel1)
+ models.RecordRelations.objects.create(
+ left_record=self.operations[0],
+ right_record=self.operations[1],
+ relation_type=rel1)
+ self.operations[1].year = 2011
+ self.operations[1].save()
+ search = {'year': '2010', 'relation_types_0': rel2.pk}
+ response = c.get(reverse('get-operation'), search)
+ # no result when no authentification
+ self.assertTrue(not json.loads(response.content))
+ c.login(username=self.username, password=self.password)
+ response = c.get(reverse('get-operation'), search)
+ self.assertTrue(json.loads(response.content)['total'] == 2)
+
def testOwnSearch(self):
c = Client()
response = c.get(reverse('get-operation'), {'year': '2010'})
diff --git a/archaeological_operations/views.py b/archaeological_operations/views.py
index a10f63e88..9482f44b4 100644
--- a/archaeological_operations/views.py
+++ b/archaeological_operations/views.py
@@ -133,12 +133,15 @@ get_operation = get_item(
dated_fields=['start_date__lte', 'start_date__gte',
'excavation_end_date__lte', 'excavation_end_date__gte'],
extra_request_keys={'common_name': 'common_name__icontains',
+ 'abstract': 'abstract__icontains',
'end_date': 'end_date__isnull',
'year_index': ('year', 'operation_code'),
'start_before': 'start_date__lte',
'start_after': 'start_date__gte',
'end_before': 'excavation_end_date__lte',
'end_after': 'excavation_end_date__gte',
+ 'towns__numero_insee__startswith':
+ 'towns__numero_insee__startswith',
'parcel_0': ('parcels__section',
'associated_file__parcels__section'),
'parcel_1': (
@@ -146,6 +149,8 @@ get_operation = get_item(
'associated_file__parcels__parcel_number'),
'history_creator':
'history_creator__ishtaruser__person__pk',
+ 'archaeological_sites':
+ 'archaeological_sites__pk',
},
)
show_operation = show_item(models.Operation, 'operation')
@@ -157,6 +162,10 @@ get_operationsource = get_item(
'get_operationsource', 'operationsource',
bool_fields=['duplicate'],
extra_request_keys={
+ 'title': 'title__icontains',
+ 'description': 'description__icontains',
+ 'comment': 'comment__icontains',
+ 'additional_information': 'additional_information__icontains',
'operation__towns': 'operation__towns__pk',
'operation__operation_type': 'operation__operation_type__pk',
'operation__year': 'operation__year'})
@@ -216,6 +225,7 @@ wizard_steps = [
('remains-operation_creation', RemainForm),
('periods-operation_creation', PeriodForm),
('relations-operation_creation', RecordRelationsFormSet),
+ ('abstract-operation_creation', OperationFormAbstract),
('final-operation_creation', FinalForm)]
if FILES_AVAILABLE:
wizard_steps.insert(0, ('filechoice-operation_creation',
@@ -256,6 +266,7 @@ operation_modification_wizard = OperationModificationWizard.as_view([
('remains-operation_modification', RemainForm),
('periods-operation_modification', PeriodForm),
('relations-operation_modification', RecordRelationsFormSet),
+ ('abstract-operation_modification', OperationFormAbstract),
('final-operation_modification', FinalForm)],
label=_(u"Operation modification"),
condition_dict={
diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py
index 8c998deac..f8cc34208 100644
--- a/ishtar_common/admin.py
+++ b/ishtar_common/admin.py
@@ -101,18 +101,22 @@ admin.site.register(models.Department, DepartmentAdmin)
class OrganizationAdmin(HistorizedObjectAdmin):
- list_display = ('name', 'organization_type')
+ list_display = ('pk', 'name', 'organization_type')
list_filter = ("organization_type",)
search_fields = ('name',)
+ exclude = ('merge_key', 'merge_exclusion', 'merge_candidate',
+ 'exclude_from_merge')
model = models.Organization
admin.site.register(models.Organization, OrganizationAdmin)
class PersonAdmin(HistorizedObjectAdmin):
- list_display = ('name', 'surname', 'raw_name', 'email')
+ list_display = ('pk', 'name', 'surname', 'raw_name', 'email')
list_filter = ("person_types",)
search_fields = ('name', 'surname', 'email', 'raw_name')
+ exclude = ('merge_key', 'merge_exclusion', 'merge_candidate',
+ 'exclude_from_merge')
model = models.Person
admin.site.register(models.Person, PersonAdmin)
diff --git a/ishtar_common/fixtures/initial_data-fr.json b/ishtar_common/fixtures/initial_data-fr.json
index dfac559fd..48793410f 100644
--- a/ishtar_common/fixtures/initial_data-fr.json
+++ b/ishtar_common/fixtures/initial_data-fr.json
@@ -779,5 +779,401 @@
"order": 1,
"txt_idx": "sampling"
}
+ },
+ {
+ "pk": 115,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Autre \u00e9tude",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "other_study"
+ }
+ },
+ {
+ "pk": 1,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "Une op\u00e9ration arch\u00e9ologique visant \u00e0 qualifier et quantifier la pr\u00e9sence de vestiges sur une surface donn\u00e9e.",
+ "available": true,
+ "label": "Diagnostic arch\u00e9ologique",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "arch_diagnostic"
+ }
+ },
+ {
+ "pk": 7,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "\u00c9tude de b\u00e2ti (pr\u00e9ventif)",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "building_study"
+ }
+ },
+ {
+ "pk": 10,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "\u00c9tude documentaire (pr\u00e9ventif)",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "documents_study"
+ }
+ },
+ {
+ "pk": 12,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "\u00c9valuation",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "evaluation"
+ }
+ },
+ {
+ "pk": 113,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": true,
+ "label": "Fouille ancienne",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "ancient_excavation"
+ }
+ },
+ {
+ "pk": 2,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "A pr\u00e9ciser",
+ "available": true,
+ "label": "Fouille arch\u00e9ologique pr\u00e9ventive",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "prev_excavation"
+ }
+ },
+ {
+ "pk": 123,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": false,
+ "label": "Prospection inventaire (pr\u00e9ventif)",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "inventory_survey"
+ }
+ },
+ {
+ "pk": 124,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": false,
+ "label": "Prospection (pr\u00e9ventif)",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "survey"
+ }
+ },
+ {
+ "pk": 22,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": true,
+ "label": "Sauvetage urgent",
+ "preventive": true,
+ "order": 1,
+ "txt_idx": "emergency_excavation"
+ }
+ },
+ {
+ "pk": 118,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Aide \u00e0 la pr\u00e9paration de publication",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "assistance_preparation_help"
+ }
+ },
+ {
+ "pk": 130,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Aide \u00e0 l'\u00e9dition",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "AE"
+ }
+ },
+ {
+ "pk": 132,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": true,
+ "label": "Diagnostic arch\u00e9ologique (programm\u00e9)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "arch_diagnostic_research"
+ }
+ },
+ {
+ "pk": 131,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Diffusion (pour les colloques, expo, s\u00e9minaires...)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "communication"
+ }
+ },
+ {
+ "pk": 8,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "\u00c9tude de b\u00e2ti (programm\u00e9)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "building_study_research"
+ }
+ },
+ {
+ "pk": 11,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "\u00c9tude documentaire (programm\u00e9)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "documents_study_research"
+ }
+ },
+ {
+ "pk": 3,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Fouille arch\u00e9ologique programm\u00e9e",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "prog_excavation"
+ }
+ },
+ {
+ "pk": 13,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Fouille arch\u00e9ologique programm\u00e9e pluriannuelle",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "prog_excavation_multiyear"
+ }
+ },
+ {
+ "pk": 122,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Programme d'analyses",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "analysis_program"
+ }
+ },
+ {
+ "pk": 16,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Projet Collectif de Recherche",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "collective_research_project"
+ }
+ },
+ {
+ "pk": 14,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Prospection a\u00e9rienne",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "aerial_survey_research"
+ }
+ },
+ {
+ "pk": 126,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": false,
+ "label": "Prospection a\u00e9rienne (pr\u00e9ventif)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "aerial_survey"
+ }
+ },
+ {
+ "pk": 117,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Prospection avec mat\u00e9riel sp\u00e9cialis\u00e9",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "specialized_eqp_prospection"
+ }
+ },
+ {
+ "pk": 20,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Prospection avec relev\u00e9 d'art rupestre",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "rock_art_survey"
+ }
+ },
+ {
+ "pk": 120,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": true,
+ "label": "Prospection d\u00e9tecteur de m\u00e9taux",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "metal_detector_prospection"
+ }
+ },
+ {
+ "pk": 114,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": false,
+ "label": "Prospection diachronique",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "diachronic_prospection"
+ }
+ },
+ {
+ "pk": 17,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Prospection inventaire",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "inventory_survey_research"
+ }
+ },
+ {
+ "pk": 18,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": false,
+ "label": "Prospection (programm\u00e9)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "survey_research"
+ }
+ },
+ {
+ "pk": 5,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "Une campagne de prospection sur un th\u00e8me particulier",
+ "available": true,
+ "label": "Prospection th\u00e9matique",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "thematic_survey"
+ }
+ },
+ {
+ "pk": 116,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": false,
+ "label": "Prospection th\u00e9matique",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "thematic_prospection"
+ }
+ },
+ {
+ "pk": 121,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": null,
+ "available": true,
+ "label": "Relev\u00e9 d'art rupestre",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "cave_art_record"
+ }
+ },
+ {
+ "pk": 21,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "Pas assez gros pour \u00eatre une fouille, mais porte n\u00e9anmoins atteinte au sous-sol.",
+ "available": false,
+ "label": "Sondage",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "sampling_research"
+ }
+ },
+ {
+ "pk": 127,
+ "model": "ishtar_common.operationtype",
+ "fields": {
+ "comment": "",
+ "available": true,
+ "label": "Sondage (programm\u00e9)",
+ "preventive": false,
+ "order": 1,
+ "txt_idx": "sampling"
+ }
}
]
diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py
index 29997a741..5863baab2 100644
--- a/ishtar_common/forms_common.py
+++ b/ishtar_common/forms_common.py
@@ -593,6 +593,9 @@ class SourceForm(forms.Form):
required=False)
description = forms.CharField(label=_(u"Description"),
widget=forms.Textarea, required=False)
+ additional_information = forms.CharField(
+ label=_(u"Additional information"), widget=forms.Textarea,
+ required=False)
duplicate = forms.BooleanField(label=_(u"Has a duplicate"),
required=False)
@@ -609,9 +612,14 @@ class SourceSelect(TableSelect):
validators=[models.valid_id(models.Author)], label=_(u"Author"),
required=False)
+ title = forms.CharField(label=_(u"Title"))
source_type = forms.ChoiceField(label=_("Source type"), choices=[])
reference = forms.CharField(label=_(u"Reference"))
internal_reference = forms.CharField(label=_(u"Internal reference"))
+ description = forms.CharField(label=_(u"Description"))
+ comment = forms.CharField(label=_(u"Comment"))
+ additional_information = forms.CharField(
+ label=_(u"Additional informations"))
duplicate = forms.NullBooleanField(label=_(u"Has a duplicate"))
def __init__(self, *args, **kwargs):
diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot
index 20e1cd7bf..5a49d053f 100644
--- a/ishtar_common/locale/django.pot
+++ b/ishtar_common/locale/django.pot
@@ -23,7 +23,7 @@ msgstr ""
msgid "Archaeological file"
msgstr ""
-#: context_processors.py:34 models.py:1166
+#: context_processors.py:34 models.py:1178
msgid "Operation"
msgstr ""
@@ -175,7 +175,7 @@ msgid "Template"
msgstr ""
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2262
+#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2274
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
msgid "Town"
@@ -191,25 +191,25 @@ msgid ""
"french town Saint-Denis in the Seine-Saint-Denis department.</p>"
msgstr ""
-#: forms_common.py:66 forms_common.py:640 ishtar_menu.py:42 models.py:1960
-#: models.py:2090 models.py:2144 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:648 ishtar_menu.py:42 models.py:1973
+#: models.py:2102 models.py:2156 templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr ""
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1883
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1895
#: 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:992 models.py:1216 models.py:1433
-#: models.py:1877 models.py:1950 models.py:2248
+#: forms_common.py:259 models.py:992 models.py:1228 models.py:1445
+#: models.py:1889 models.py:1963 models.py:2260
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
msgid "Name"
msgstr ""
-#: forms_common.py:161 models.py:1161 models.py:1564
+#: forms_common.py:161 models.py:1173 models.py:1576
msgid "Organization type"
msgstr ""
@@ -247,8 +247,8 @@ msgstr ""
msgid "Mobile phone"
msgstr ""
-#: forms_common.py:197 forms_common.py:229 models.py:1588 models.py:1879
-#: models.py:2185 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1600 models.py:1891
+#: models.py:2197 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
@@ -260,7 +260,7 @@ msgstr ""
msgid "Organization search"
msgstr ""
-#: forms_common.py:227 forms_common.py:257 models.py:1948
+#: forms_common.py:227 forms_common.py:257 models.py:1961
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr ""
@@ -273,13 +273,14 @@ msgstr ""
msgid "Identity"
msgstr ""
-#: forms_common.py:256 forms_common.py:574 models.py:1946 models.py:2182
-#: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55
+#: forms_common.py:256 forms_common.py:574 forms_common.py:615 models.py:1959
+#: models.py:2194 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:1952
+#: forms_common.py:261 models.py:1965
msgid "Raw name"
msgstr ""
@@ -287,7 +288,7 @@ msgstr ""
msgid "Current organization"
msgstr ""
-#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1930
+#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1943
msgid "Person type"
msgstr ""
@@ -319,7 +320,7 @@ msgstr ""
msgid "Send the new password by email?"
msgstr ""
-#: forms_common.py:430 forms_common.py:443 models.py:2263
+#: forms_common.py:430 forms_common.py:443 models.py:2275
msgid "Towns"
msgstr ""
@@ -335,69 +336,78 @@ msgstr ""
msgid "Documentation informations"
msgstr ""
-#: forms_common.py:576 forms_common.py:612 models.py:1565 models.py:2165
+#: forms_common.py:576 forms_common.py:616 models.py:1577 models.py:2177
msgid "Source type"
msgstr ""
-#: forms_common.py:578 forms_common.py:613 templates/sheet_ope.html:84
+#: forms_common.py:578 forms_common.py:617 templates/sheet_ope.html:84
msgid "Reference"
msgstr ""
-#: forms_common.py:581 forms_common.py:614
+#: forms_common.py:581 forms_common.py:618
msgid "Internal reference"
msgstr ""
-#: forms_common.py:584 models.py:2196
+#: forms_common.py:584 models.py:2208
msgid "Numerical ressource (web address)"
msgstr ""
-#: forms_common.py:585 models.py:2198
+#: forms_common.py:585 models.py:2210
msgid "Receipt date"
msgstr ""
-#: forms_common.py:587 models.py:1715 models.py:2200
+#: forms_common.py:587 models.py:1727 models.py:2212
msgid "Creation date"
msgstr ""
-#: forms_common.py:590 models.py:2203
+#: forms_common.py:590 models.py:2215
msgid "Receipt date in documentation"
msgstr ""
-#: forms_common.py:592 models.py:260 models.py:1460 models.py:2210
+#: forms_common.py:592 forms_common.py:620 models.py:260 models.py:1472
+#: models.py:2222
msgid "Comment"
msgstr ""
-#: forms_common.py:594 models.py:1220 models.py:1392 models.py:1434
-#: models.py:2209 templates/sheet_ope.html:128
+#: forms_common.py:594 forms_common.py:619 models.py:1232 models.py:1404
+#: models.py:1446 models.py:2221 templates/sheet_ope.html:128
msgid "Description"
msgstr ""
-#: forms_common.py:596 forms_common.py:615 models.py:2213
+#: forms_common.py:597 models.py:2223
+msgid "Additional information"
+msgstr ""
+
+#: forms_common.py:599 forms_common.py:623 models.py:2225
msgid "Has a duplicate"
msgstr ""
-#: forms_common.py:609 forms_common.py:633 forms_common.py:666 models.py:2149
+#: forms_common.py:612 forms_common.py:641 forms_common.py:674 models.py:2161
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr ""
-#: forms_common.py:625
+#: forms_common.py:622
+msgid "Additional informations"
+msgstr ""
+
+#: forms_common.py:633
msgid "Would you like to delete this documentation?"
msgstr ""
-#: forms_common.py:641 models.py:1566 models.py:2139 models.py:2146
+#: forms_common.py:649 models.py:1578 models.py:2151 models.py:2158
msgid "Author type"
msgstr ""
-#: forms_common.py:659
+#: forms_common.py:667
msgid "Author selection"
msgstr ""
-#: forms_common.py:673
+#: forms_common.py:681
msgid "There are identical authors."
msgstr ""
-#: forms_common.py:677 models.py:2150 models.py:2192
+#: forms_common.py:685 models.py:2162 models.py:2204
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
@@ -411,7 +421,7 @@ msgstr ""
msgid "Account management"
msgstr ""
-#: ishtar_menu.py:34 models.py:776 views.py:1084
+#: ishtar_menu.py:34 models.py:776 views.py:1117
msgid "Global variables"
msgstr ""
@@ -435,19 +445,19 @@ msgstr ""
msgid "Merge"
msgstr ""
-#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1752 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1764 widgets.py:110
msgid "Delete"
msgstr ""
-#: ishtar_menu.py:96 models.py:1726
+#: ishtar_menu.py:96 models.py:1738
msgid "Imports"
msgstr ""
-#: ishtar_menu.py:99 views.py:1092
+#: ishtar_menu.py:99 views.py:1125
msgid "New import"
msgstr ""
-#: ishtar_menu.py:103 views.py:1106
+#: ishtar_menu.py:103 views.py:1139
msgid "Current imports"
msgstr ""
@@ -479,7 +489,7 @@ msgstr ""
msgid "Available"
msgstr ""
-#: models.py:474 models.py:1506
+#: models.py:474 models.py:1518
msgid "Key"
msgstr ""
@@ -495,7 +505,7 @@ msgstr ""
msgid "Creator"
msgstr ""
-#: models.py:687 models.py:2274
+#: models.py:687 models.py:2286
msgid "Order"
msgstr ""
@@ -515,7 +525,7 @@ msgstr ""
msgid "Description of the variable"
msgstr ""
-#: models.py:772 models.py:1507
+#: models.py:772 models.py:1519
msgid "Value"
msgstr ""
@@ -549,7 +559,7 @@ msgstr ""
msgid "Document templates"
msgstr ""
-#: models.py:1031 models.py:1041 models.py:1710
+#: models.py:1031 models.py:1041 models.py:1722
msgid "State"
msgstr ""
@@ -561,534 +571,530 @@ msgstr ""
msgid "Departments"
msgstr ""
-#: models.py:1098
-msgid "Tel:"
+#: models.py:1100
+msgid "Tel: "
msgstr ""
-#: models.py:1100
+#: models.py:1104
msgid "Mobile: "
msgstr ""
-#: models.py:1102
+#: models.py:1108
msgid "Email: "
msgstr ""
-#: models.py:1107
+#: models.py:1113
msgid "Merge key"
msgstr ""
-#: models.py:1162
+#: models.py:1174
msgid "Organization types"
msgstr ""
-#: models.py:1168
+#: models.py:1180
msgid "Archaeological site"
msgstr ""
-#: models.py:1169
+#: models.py:1181
msgid "Parcels"
msgstr ""
-#: models.py:1171
+#: models.py:1183
msgid "Operation source"
msgstr ""
-#: models.py:1177 views.py:899 views.py:956
+#: models.py:1189 views.py:932 views.py:989
msgid "Archaeological files"
msgstr ""
-#: models.py:1184 views.py:902 views.py:966
+#: models.py:1196 views.py:935 views.py:999
msgid "Context records"
msgstr ""
-#: models.py:1187 views.py:904 views.py:971
+#: models.py:1199 views.py:937 views.py:1004
msgid "Finds"
msgstr ""
-#: models.py:1218
+#: models.py:1230
msgid "Slug"
msgstr ""
-#: models.py:1222 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1234 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr ""
-#: models.py:1224
+#: models.py:1236
msgid "Associated model"
msgstr ""
-#: models.py:1226
+#: models.py:1238
msgid "Is template"
msgstr ""
-#: models.py:1227
+#: models.py:1239
msgid "Unicity keys (separator \";\")"
msgstr ""
-#: models.py:1231
+#: models.py:1243
msgid "Importer - Type"
msgstr ""
-#: models.py:1232
+#: models.py:1244
msgid "Importer - Types"
msgstr ""
-#: models.py:1322
+#: models.py:1334
msgid "Importer - Default"
msgstr ""
-#: models.py:1323
+#: models.py:1335
msgid "Importer - Defaults"
msgstr ""
-#: models.py:1358
+#: models.py:1370
msgid "Importer - Default value"
msgstr ""
-#: models.py:1359
+#: models.py:1371
msgid "Importer - Default values"
msgstr ""
-#: models.py:1391
+#: models.py:1403
msgid "Column number"
msgstr ""
-#: models.py:1394
+#: models.py:1406
msgid "Required"
msgstr ""
-#: models.py:1397
+#: models.py:1409
msgid "Importer - Column"
msgstr ""
-#: models.py:1398
+#: models.py:1410
msgid "Importer - Columns"
msgstr ""
-#: models.py:1418
+#: models.py:1430
msgid "Field name"
msgstr ""
-#: models.py:1420 models.py:1454
+#: models.py:1432 models.py:1466
msgid "Force creation of new item"
msgstr ""
-#: models.py:1422 models.py:1456
+#: models.py:1434 models.py:1468
msgid "Concatenate with existing"
msgstr ""
-#: models.py:1424 models.py:1458
+#: models.py:1436 models.py:1470
msgid "Concatenate character"
msgstr ""
-#: models.py:1428
+#: models.py:1440
msgid "Importer - Duplicate field"
msgstr ""
-#: models.py:1429
+#: models.py:1441
msgid "Importer - Duplicate fields"
msgstr ""
-#: models.py:1436
+#: models.py:1448
msgid "Regular expression"
msgstr ""
-#: models.py:1439
+#: models.py:1451
msgid "Importer - Regular expression"
msgstr ""
-#: models.py:1440
+#: models.py:1452
msgid "Importer - Regular expressions"
msgstr ""
-#: models.py:1463
+#: models.py:1475
msgid "Importer - Target"
msgstr ""
-#: models.py:1464
+#: models.py:1476
msgid "Importer - Targets"
msgstr ""
-#: models.py:1488 views.py:306
+#: models.py:1500 views.py:306
msgid "True"
msgstr ""
-#: models.py:1489 views.py:308
+#: models.py:1501 views.py:308
msgid "False"
msgstr ""
-#: models.py:1508
+#: models.py:1520
msgid "Is set"
msgstr ""
-#: models.py:1515
+#: models.py:1527
msgid "Importer - Target key"
msgstr ""
-#: models.py:1516
+#: models.py:1528
msgid "Importer - Targets keys"
msgstr ""
-#: models.py:1567 models.py:2177 models.py:2188
+#: models.py:1579 models.py:2189 models.py:2200
msgid "Format"
msgstr ""
-#: models.py:1568 models.py:2278
+#: models.py:1580 models.py:2290
msgid "Operation type"
msgstr ""
-#: models.py:1569
+#: models.py:1581
msgid "Period"
msgstr ""
-#: models.py:1570
+#: models.py:1582
msgid "Unit"
msgstr ""
-#: models.py:1571
+#: models.py:1583
msgid "Material"
msgstr ""
-#: models.py:1573
+#: models.py:1585
msgid "Conservatory state"
msgstr ""
-#: models.py:1574
+#: models.py:1586
msgid "Preservation type"
msgstr ""
-#: models.py:1575
+#: models.py:1587
msgid "Object type"
msgstr ""
-#: models.py:1577
+#: models.py:1589
msgid "Identification type"
msgstr ""
-#: models.py:1578 models.py:2171
+#: models.py:1590 models.py:2183
msgid "Support type"
msgstr ""
-#: models.py:1584
+#: models.py:1596
msgid "Integer"
msgstr ""
-#: models.py:1585
+#: models.py:1597
msgid "Float"
msgstr ""
-#: models.py:1586
+#: models.py:1598
msgid "String"
msgstr ""
-#: models.py:1587 templates/sheet_ope.html:86
+#: models.py:1599 templates/sheet_ope.html:86
msgid "Date"
msgstr ""
-#: models.py:1589 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1601 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:1590
+#: models.py:1602
msgid "String to boolean"
msgstr ""
-#: models.py:1591
+#: models.py:1603
msgctxt "filesystem"
msgid "File"
msgstr ""
-#: models.py:1592
+#: models.py:1604
msgid "Unknow type"
msgstr ""
-#: models.py:1608
+#: models.py:1620
msgid "4 digit year. e.g.: \"2015\""
msgstr ""
-#: models.py:1609
+#: models.py:1621
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr ""
-#: models.py:1610
+#: models.py:1622
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr ""
-#: models.py:1620
+#: models.py:1632
msgid "Options"
msgstr ""
-#: models.py:1622
+#: models.py:1634
msgid "Split character(s)"
msgstr ""
-#: models.py:1626
+#: models.py:1638
msgid "Importer - Formater type"
msgstr ""
-#: models.py:1627
+#: models.py:1639
msgid "Importer - Formater types"
msgstr ""
-#: models.py:1674 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1686 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr ""
-#: models.py:1675
+#: models.py:1687
msgid "Analyse in progress"
msgstr ""
-#: models.py:1676
+#: models.py:1688
msgid "Analysed"
msgstr ""
-#: models.py:1677
+#: models.py:1689
msgid "Import pending"
msgstr ""
-#: models.py:1678
+#: models.py:1690
msgid "Import in progress"
msgstr ""
-#: models.py:1679
+#: models.py:1691
msgid "Finished with errors"
msgstr ""
-#: models.py:1680
+#: models.py:1692
msgid "Finished"
msgstr ""
-#: models.py:1681
+#: models.py:1693
msgid "Archived"
msgstr ""
-#: models.py:1693
+#: models.py:1705
msgid "Imported file"
msgstr ""
-#: models.py:1696
+#: models.py:1708
msgid "Associated images (zip file)"
msgstr ""
-#: models.py:1698
+#: models.py:1710
msgid "Encoding"
msgstr ""
-#: models.py:1700
+#: models.py:1712
msgid "Skip lines"
msgstr ""
-#: models.py:1701 templates/ishtar/import_list.html:47
+#: models.py:1713 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr ""
-#: models.py:1704
+#: models.py:1716
msgid "Result file"
msgstr ""
-#: models.py:1707 templates/ishtar/import_list.html:53
+#: models.py:1719 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr ""
-#: models.py:1713
+#: models.py:1725
msgid "Conservative import"
msgstr ""
-#: models.py:1718
+#: models.py:1730
msgid "End date"
msgstr ""
-#: models.py:1720
+#: models.py:1732
msgid "Seconds remaining"
msgstr ""
-#: models.py:1725
+#: models.py:1737
msgid "Import"
msgstr ""
-#: models.py:1742
+#: models.py:1754
msgid "Analyse"
msgstr ""
-#: models.py:1744 models.py:1747
+#: models.py:1756 models.py:1759
msgid "Re-analyse"
msgstr ""
-#: models.py:1745
+#: models.py:1757
msgid "Launch import"
msgstr ""
-#: models.py:1748
+#: models.py:1760
msgid "Re-import"
msgstr ""
-#: models.py:1749
+#: models.py:1761
msgid "Archive"
msgstr ""
-#: models.py:1751
+#: models.py:1763
msgid "Unarchive"
msgstr ""
-#: models.py:1884
+#: models.py:1896
msgid "Organizations"
msgstr ""
-#: models.py:1886
+#: models.py:1898
msgid "Can view all Organization"
msgstr ""
-#: models.py:1887
+#: models.py:1899
msgid "Can view own Organization"
msgstr ""
-#: models.py:1888
+#: models.py:1900
msgid "Can add own Organization"
msgstr ""
-#: models.py:1890
+#: models.py:1902
msgid "Can change own Organization"
msgstr ""
-#: models.py:1892
+#: models.py:1904
msgid "Can delete own Organization"
msgstr ""
-#: models.py:1926
+#: models.py:1939
msgid "Groups"
msgstr ""
-#: models.py:1931
+#: models.py:1944
msgid "Person types"
msgstr ""
-#: models.py:1938
+#: models.py:1951
msgid "Mr"
msgstr ""
-#: models.py:1939
+#: models.py:1952
msgid "Miss"
msgstr ""
-#: models.py:1940
+#: models.py:1953
msgid "Mr and Miss"
msgstr ""
-#: models.py:1941
+#: models.py:1954
msgid "Mrs"
msgstr ""
-#: models.py:1942
+#: models.py:1955
msgid "Doctor"
msgstr ""
-#: models.py:1954 models.py:2001
+#: models.py:1967 models.py:2014
msgid "Types"
msgstr ""
-#: models.py:1957
+#: models.py:1970
msgid "Is attached to"
msgstr ""
-#: models.py:1961
+#: models.py:1974
msgid "Persons"
msgstr ""
-#: models.py:1963
+#: models.py:1976
msgid "Can view all Person"
msgstr ""
-#: models.py:1964
+#: models.py:1977
msgid "Can view own Person"
msgstr ""
-#: models.py:1965
+#: models.py:1978
msgid "Can add own Person"
msgstr ""
-#: models.py:1966
+#: models.py:1979
msgid "Can change own Person"
msgstr ""
-#: models.py:1967
+#: models.py:1980
msgid "Can delete own Person"
msgstr ""
-#: models.py:2094
+#: models.py:2106
msgid "Ishtar user"
msgstr ""
-#: models.py:2095
+#: models.py:2107
msgid "Ishtar users"
msgstr ""
-#: models.py:2140
+#: models.py:2152
msgid "Author types"
msgstr ""
-#: models.py:2166
+#: models.py:2178
msgid "Source types"
msgstr ""
-#: models.py:2172
+#: models.py:2184
msgid "Support types"
msgstr ""
-#: models.py:2178
+#: models.py:2190
msgid "Formats"
msgstr ""
-#: models.py:2183
+#: models.py:2195
msgid "External ID"
msgstr ""
-#: models.py:2186
+#: models.py:2198
msgid "Support"
msgstr ""
-#: models.py:2190
+#: models.py:2202
msgid "Scale"
msgstr ""
-#: models.py:2204
+#: models.py:2216
msgid "Item number"
msgstr ""
-#: models.py:2205
+#: models.py:2217
msgid "Ref."
msgstr ""
-#: models.py:2208
+#: models.py:2220
msgid "Internal ref."
msgstr ""
-#: models.py:2211
-msgid "Additional information"
-msgstr ""
-
-#: models.py:2249
+#: models.py:2261
msgid "Surface (m2)"
msgstr ""
-#: models.py:2250 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2262 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr ""
-#: models.py:2275
+#: models.py:2287
msgid "Is preventive"
msgstr ""
-#: models.py:2279
+#: models.py:2291
msgid "Operation types"
msgstr ""
-#: models.py:2305
+#: models.py:2317
msgid "Preventive"
msgstr ""
-#: models.py:2306
+#: models.py:2318
msgid "Research"
msgstr ""
@@ -1120,34 +1126,34 @@ msgstr ""
msgid "Organization deletion"
msgstr ""
-#: views.py:600 templates/base.html:80
+#: views.py:633 templates/base.html:80
#: templates/ishtar/sheet_organization.html:35
#: templatetags/link_to_window.py:16
msgid "Details"
msgstr ""
-#: views.py:828 views.py:882
+#: views.py:861 views.py:915
msgid "Operation not permitted."
msgstr ""
-#: views.py:830
+#: views.py:863
#, python-format
msgid "New %s"
msgstr ""
-#: views.py:900 views.py:960
+#: views.py:933 views.py:993
msgid "Operations"
msgstr ""
-#: views.py:1153 templates/ishtar/import_list.html:43
+#: views.py:1186 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr ""
-#: views.py:1168
+#: views.py:1201
msgid "Delete import"
msgstr ""
-#: views.py:1227 views.py:1243
+#: views.py:1260 views.py:1276
msgid "Corporation manager"
msgstr ""
@@ -1511,7 +1517,7 @@ msgstr ""
msgid "full"
msgstr ""
-#: templates/blocks/JQueryJqGrid.html:88
+#: templates/blocks/JQueryJqGrid.html:96
#: templates/ishtar/blocks/window_tables/dynamic_documents.html:42
msgid "An error as occured during search. Check your query fields."
msgstr ""
diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css
index fdde40cb0..a4c62739b 100644
--- a/ishtar_common/static/media/style.css
+++ b/ishtar_common/static/media/style.css
@@ -8,7 +8,7 @@ a.remove,
background-color:#fff;
}
-div.form {
+div.form, ul.form {
background-color: #f1f2f6;
}
@@ -132,6 +132,11 @@ textarea{
height:80px;
}
+textarea.xlarge{
+ height: 450px;
+ width: 450px;
+}
+
dt{
font-weight:bold;
color:#922;
@@ -407,7 +412,10 @@ div#main_menu > ul > li{
div#content{
clear:both;
- margin:190px 200px 70px 200px;
+ margin-top:190px ;
+ margin-bottom: 70px;
+ margin-left: 200px;
+ margin-right: 150px;
text-align:center;
}
@@ -498,6 +506,47 @@ div.form {
text-align:center;
}
+ul.form-flex {
+ list-style-type: none;
+ text-align: left;
+ display: -ms-flexbox;
+ display: -webkit-flex;
+ display: -moz-flex;
+ display: flex;
+ -webkit-flex-wrap: wrap;
+ -ms-flex-wrap: wrap;
+ -moz-flex-wrap: wrap;
+ flex-wrap: wrap;
+ width: 400px;
+ padding: 0;
+ margin: 0;
+}
+
+
+ul.form-flex li{
+ width: 395px;
+}
+
+@media screen and (min-width: 1051px) {
+ div.form,
+ ul.form-flex {
+ width: 800px;
+ }
+}
+
+@media screen and (min-width: 1400px) {
+ div.form,
+ ul.form-flex {
+ width: 1200px;
+ }
+}
+
+ul.form-flex label {
+ display: inline-block;
+ width: 150px;
+ padding-left: 10px;
+}
+
.form table{
padding:0.2em;
margin-left:auto;
@@ -520,10 +569,24 @@ div.form {
color:#922;
}
-.form table .required th{
+.form .required label{
font-weight:bold;
}
+.form p.input{
+ display: inline-block;
+ width: 200px;
+ margin: 5px;
+}
+
+.form p.input input{
+ width: 200px;
+}
+
+.form p.input select{
+ width: 200px;
+}
+
.form input[readonly=True]{
background-color:#f1f2f6;
border:0;
@@ -538,6 +601,10 @@ div.form {
font-size:0.9em;
}
+ul.form .help_text{
+ width: 400px;
+}
+
.help_text div{
background-color:#FFF;
margin:1em;;
@@ -613,10 +680,6 @@ table.confirm tr.spacer td:last-child{
background-image:none;
}
-.ui-widget-header {
- background:none;
-}
-
.ui-tabs .ui-tabs-nav li a{
color: #D14;
}
@@ -972,8 +1035,8 @@ a.remove{
width:60px;
}
-.widget-parcel{
- width:60px;
+.form p.input input.widget-parcel{
+ width:85px;
}
.small, .small input{
diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html
index e8647dadf..1639c70f2 100644
--- a/ishtar_common/templates/blocks/JQueryJqGrid.html
+++ b/ishtar_common/templates/blocks/JQueryJqGrid.html
@@ -1,5 +1,4 @@
{% load i18n %}
-</table>
<button id='search_{{name}}' class='submit'>{% trans "Search" %}</button>
@@ -42,7 +41,15 @@ jQuery(document).ready(function(){
for (idx in query_vars)
{
var key = query_vars[idx];
- var val = jQuery("#id_"+key).val();
+ var item = jQuery("#id_"+key);
+ var val = null;
+ if (item.prop('type') == 'checkbox'){
+ if (item.prop('checked')){
+ var val = item.val();
+ }
+ } else {
+ var val = item.val();
+ }
if (val){
if (data) data += "&";
data += key + "=" + val;
diff --git a/ishtar_common/templates/blocks/form_flex_snippet.html b/ishtar_common/templates/blocks/form_flex_snippet.html
new file mode 100644
index 000000000..03d8b15f0
--- /dev/null
+++ b/ishtar_common/templates/blocks/form_flex_snippet.html
@@ -0,0 +1,14 @@
+{% load i18n %}
+<ul class='form-flex'>
+ {% if form.non_field_errors %}<li class='errors'>
+ {{form.non_field_errors}}
+ </li>{%endif%}
+ {% for field in form %}{% if not field.is_hidden %}
+ <li{% if field.field.required %} class='required'{% endif %}>
+ {{ field.label_tag }}
+ <p class='input'>{{ field.errors }}{{field|safe}}</p>{% if field.help_text %}
+ <a href="#{{field.auto_id}}" class="help_display" title="{% trans "Help"%}">?</a>
+ <div class="help_text" id="{{field.auto_id}}_help">
+ {{field.help_text}}</div>
+ {%endif%}</li>{% else %}{{field}}{% endif %}{% endfor %}
+</ul>
diff --git a/ishtar_common/templates/ishtar/sheet_source.html b/ishtar_common/templates/ishtar/sheet_source.html
index 47e285017..06001f783 100644
--- a/ishtar_common/templates/ishtar/sheet_source.html
+++ b/ishtar_common/templates/ishtar/sheet_source.html
@@ -12,6 +12,9 @@
{% field "Item number" item.item_number %}
{% field "Ref." item.reference %}
{% field "Internal ref." item.internal_reference %}
+{% field "Creation date" item.creation_date %}
+{% field "Receipt date" item.receipt_date %}
+{% field "Receipt date in documentation" item.receipt_date_in_documentation %}
{% field "Has a duplicate" item.duplicate %}
{% field "Description" item.description %}
{% field "Comment" item.comment %}
diff --git a/ishtar_common/templates/ishtar/wizard/default_wizard.html b/ishtar_common/templates/ishtar/wizard/default_wizard.html
index a39037d10..1a17cf32b 100644
--- a/ishtar_common/templates/ishtar/wizard/default_wizard.html
+++ b/ishtar_common/templates/ishtar/wizard/default_wizard.html
@@ -35,9 +35,9 @@
<tr class='modify'><td colspan="2"><button name="formset_modify" value="{{wizard.steps.current}}">{% trans "Add/Modify" %}</button></td></tr></li>
</table>
{% else %}
-<table>
+{% if not is_search %}<table>{% endif %}
{% table_form wizard.form %}
-</table>
+{% if not is_search %}</table>{% endif %}
{% endif %}
<input type="hidden" name="{{ step_field }}" value="{{ step0 }}" />
{{ previous_fields|safe }}
diff --git a/ishtar_common/templates/ishtar/wizard/search.html b/ishtar_common/templates/ishtar/wizard/search.html
index 5cf96552b..e5066cf87 100644
--- a/ishtar_common/templates/ishtar/wizard/search.html
+++ b/ishtar_common/templates/ishtar/wizard/search.html
@@ -8,8 +8,8 @@
<ul id='form_path'>
<li class='current'><a href='#'>{{current_step.form_label}}</a></li>
</ul>
-<div class='form'>
{% if wizard.form.forms %}
+<div class='form'>
<div class='top_button'><input type="submit" id="submit_form" value="{% trans "Validate" %}"/></div>
<table class='formset'>
{%if wizard.form.non_form_errors%}<tr class='error'><th colspan='2'>{{wizard.form.non_form_errors}}</th></tr>{%endif%}
@@ -20,9 +20,8 @@
<tr class='modify'><td colspan="2"><button name="formset_modify" value="{{wizard.steps.current}}">{% trans "Add/Modify" %}</button></td></tr></li>
</table>
{% else %}
-<table>
- {{ wizard.form.as_table }}
-</table>
-{% endif %}
+<div class='form'>
+ {{ wizard.form.as_p }}
</div>
+{% endif %}
{% endblock %}
diff --git a/ishtar_common/views.py b/ishtar_common/views.py
index 1f2bc7f67..50acd5595 100644
--- a/ishtar_common/views.py
+++ b/ishtar_common/views.py
@@ -378,6 +378,13 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
old = 'old' in request_items and int(request_items['old'])
except ValueError:
return HttpResponse('[]', mimetype='text/plain')
+
+ relation_types = set()
+ for k in request_items:
+ if k.startswith('relation_types_'):
+ relation_types.add(request_items[k])
+ continue
+
for k in request_keys:
val = request_items.get(k)
if not val:
@@ -460,15 +467,41 @@ def get_item(model, func_name, default_name, extra_request_keys=[],
and_reqs.append(reqs)
break
query = Q(**dct)
- if own:
- query = query & model.get_query_owns(request.user)
for k, or_req in or_reqs:
alt_dct = dct.copy()
alt_dct.pop(k)
alt_dct.update(or_req)
query = query | Q(**alt_dct)
+
+ if relation_types:
+ alt_dct = {
+ 'right_relations__relation_type__pk__in': list(relation_types)}
+ for k in dct:
+ val = dct[k]
+ if k == 'year':
+ k = 'year__exact'
+ alt_dct['right_relations__right_record__' + k] = val
+ if not dct:
+ # fake condition to trick Django (1.4): without it only the
+ # alt_dct is managed
+ query = query & Q(pk__isnull=False)
+ query = query | Q(**alt_dct)
+ for k, or_req in or_reqs:
+ altor_dct = alt_dct.copy()
+ altor_dct.pop(k)
+ for j in or_req:
+ val = or_req[j]
+ if j == 'year':
+ j = 'year__exact'
+ altor_dct['right_relations__right_record__' + j] = val
+ query = query | Q(**altor_dct)
+
+ if own:
+ query = query & model.get_query_owns(request.user)
+
for and_req in and_reqs:
query = query & and_req
+
items = model.objects.filter(query).distinct()
q = request_items.get('sidx')
diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py
index dc6324b79..688648e10 100644
--- a/ishtar_common/widgets.py
+++ b/ishtar_common/widgets.py
@@ -567,9 +567,10 @@ class JQueryJqGrid(forms.RadioSelect):
return jq_col_names, extra_cols
def render(self, name, value=None, attrs=None):
- t = loader.get_template('blocks/form_snippet.html')
+ t = loader.get_template('blocks/form_flex_snippet.html')
form = self.form()
- rendered = t.render(Context({'form': form}))
+ rendered = t.render(Context({'form': form,
+ 'flex': True}))
dct = {}
if self.new:
model_name = self.associated_model._meta.object_name.lower()
diff --git a/ishtar_common/wizards.py b/ishtar_common/wizards.py
index 031498ca3..ffbf9b994 100644
--- a/ishtar_common/wizards.py
+++ b/ishtar_common/wizards.py
@@ -188,9 +188,13 @@ class Wizard(NamedUrlWizardView):
self.request.session['CURRENT_ACTION'] = self.get_wizard_name()
step = self.steps.first
current_step = self.steps.current
- context.update({'current_step': self.form_list[current_step],
- 'wizard_label': self.label,
- 'current_object': self.get_current_object()})
+ dct = {'current_step': self.form_list[current_step],
+ 'wizard_label': self.label,
+ 'current_object': self.get_current_object(),
+ 'is_search': current_step.startswith('selec-')
+ if current_step else False
+ }
+ context.update(dct)
if step == current_step:
return context
previous_steps, next_steps, previous_step_counter = [], [], 0
@@ -988,6 +992,7 @@ class SearchWizard(NamedUrlWizardView):
self.request.session['CURRENT_ACTION'] = self.get_wizard_name()
current_step = self.steps.current
context.update({'current_step': self.form_list[current_step],
+ 'is_search': True,
'wizard_label': self.label})
return context
diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po
index c53f6c519..d81ad8fc5 100644
--- a/translations/fr/archaeological_context_records.po
+++ b/translations/fr/archaeological_context_records.po
@@ -9,194 +9,198 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-01-18 06:32-0500\n"
+"PO-Revision-Date: 2016-01-28 03:54-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"
+"X-Generator: Zanata 3.8.2\n"
-#: forms.py:44 forms.py:97 models.py:125
+#: forms.py:45 forms.py:104 models.py:125
#: templates/ishtar/sheet_contextrecord.html:72
msgid "ID"
msgstr "Identifiant"
-#: forms.py:48
+#: forms.py:49
msgid "Code PATRIARCHE"
msgstr "Code PATRIARCHE"
-#: forms.py:49
+#: forms.py:50
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:51
+#: forms.py:52
msgid "Operation's number (index by year)"
msgstr "Numéro de l'opération (index par année)"
-#: forms.py:52 forms.py:163 models.py:48
+#: forms.py:54
+msgid "Archaelogical site"
+msgstr "Entité Archéologique"
+
+#: forms.py:59 forms.py:170 models.py:48
msgid "Period"
msgstr "Période"
-#: forms.py:53
+#: forms.py:60
msgid "Unit type"
msgstr "Type d'unité"
-#: forms.py:54
+#: forms.py:61
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:72 forms.py:259 views.py:73
+#: forms.py:79 forms.py:266 views.py:78
msgid "Context record search"
msgstr "Recherche d'Unité d'Enregistrement"
-#: forms.py:86
+#: forms.py:93
msgid "You should at least select one context record."
msgstr "Vous devez sélectionner au moins une Unité d'Enregistrement."
-#: forms.py:92
+#: forms.py:99
msgid "General"
msgstr "Général"
-#: forms.py:96 models.py:118 models.py:121
+#: forms.py:103 models.py:118 models.py:121
#: templates/ishtar/sheet_contextrecord.html:76
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:99 models.py:126 templates/ishtar/sheet_contextrecord.html:42
+#: forms.py:106 models.py:126 templates/ishtar/sheet_contextrecord.html:42
#: templates/ishtar/sheet_contextrecord.html:75
msgid "Description"
msgstr "Description"
-#: forms.py:101 models.py:131
+#: forms.py:108 models.py:131
msgid "Length (cm)"
msgstr "Longueur (cm)"
-#: forms.py:102 models.py:132
+#: forms.py:109 models.py:132
msgid "Width (cm)"
msgstr "Largeur (cm)"
-#: forms.py:103 models.py:133
+#: forms.py:110 models.py:133
msgid "Thickness (cm)"
msgstr "Épaisseur (cm)"
-#: forms.py:104 models.py:135
+#: forms.py:111 models.py:135
msgid "Depth (cm)"
msgstr "Profondeur (cm)"
-#: forms.py:105 models.py:141
+#: forms.py:112 models.py:141
msgid "Unit"
msgstr "Unité"
-#: forms.py:107 models.py:137
+#: forms.py:114 models.py:137
msgid "Location"
msgstr "Lieu"
-#: forms.py:152
+#: forms.py:159
msgid "This ID already exist for this operation."
msgstr "Cet identifiant existe déjà pour cette opération."
-#: forms.py:158 forms.py:182 models.py:59
+#: forms.py:165 forms.py:189 models.py:59
msgid "Dating"
msgstr "Datation"
-#: forms.py:164 models.py:49
+#: forms.py:171 models.py:49
msgid "Start date"
msgstr "Date de début"
-#: forms.py:165 models.py:50 models.py:130
+#: forms.py:172 models.py:50 models.py:130
msgid "End date"
msgstr "Date de fin"
-#: forms.py:166 models.py:53
+#: forms.py:173 models.py:53
msgid "Quality"
msgstr "Qualité"
-#: forms.py:167 models.py:35 models.py:51
+#: forms.py:174 models.py:35 models.py:51
msgid "Dating type"
msgstr "Type de datation"
-#: forms.py:191 ishtar_menu.py:29 models.py:321
+#: forms.py:198 ishtar_menu.py:29 models.py:321
msgid "Context record"
msgstr "Unité d'Enregistrement"
-#: forms.py:211
+#: forms.py:218
msgid "Relations"
msgstr "Relations"
-#: forms.py:215 forms.py:222 models.py:146
+#: forms.py:222 forms.py:229 models.py:146
#: templates/ishtar/sheet_contextrecord.html:52
msgid "Interpretation"
msgstr "Interprétation"
-#: forms.py:218 models.py:143
+#: forms.py:225 models.py:143
msgid "Has furniture?"
msgstr "Contient du mobilier ?"
-#: forms.py:220 models.py:145
+#: forms.py:227 models.py:145
msgid "Filling"
msgstr "Remplissage"
-#: forms.py:224 models.py:166
+#: forms.py:231 models.py:166
msgid "Activity"
msgstr "Activité"
-#: forms.py:226 models.py:164
+#: forms.py:233 models.py:164
msgid "Identification"
msgstr "Identification"
-#: forms.py:228 models.py:149
+#: forms.py:235 models.py:149
msgid "TAQ"
msgstr "TAQ"
-#: forms.py:229 models.py:153
+#: forms.py:236 models.py:153
msgid "Estimated TAQ"
msgstr "TAQ estimé"
-#: forms.py:231 models.py:156
+#: forms.py:238 models.py:156
msgid "TPQ"
msgstr "TPQ"
-#: forms.py:232 models.py:160
+#: forms.py:239 models.py:160
msgid "Estimated TPQ"
msgstr "TPQ estimé"
-#: forms.py:245
+#: forms.py:252
msgid "Operation search"
msgstr "Recherche d'opérations"
-#: forms.py:247
+#: forms.py:254
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
-#: forms.py:252
+#: forms.py:259
msgid "Would you like to delete this context record?"
msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?"
-#: forms.py:261
+#: forms.py:268
msgid "You should select a context record."
msgstr "Vous devez sélectionner une Unité d'Enregistrement."
-#: forms.py:266
+#: forms.py:273
msgid "Town of the operation"
msgstr "Commune de l'opération"
-#: forms.py:268
+#: forms.py:275
msgid "Year of the operation"
msgstr "Année de l'opération"
-#: forms.py:270
+#: forms.py:277
msgid "Period of the context record"
msgstr "Période de l'Unité d'Enregistrement"
-#: forms.py:272
+#: forms.py:279
msgid "Unit type of the context record"
msgstr "Type d'unité de l'Unité d'Enregistrement"
-#: forms.py:285
+#: forms.py:292
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:287
+#: forms.py:294
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
@@ -377,27 +381,27 @@ msgstr "Documentation d'une Unité d'Enregistrement"
msgid "Context record documentations"
msgstr "Documentations des Unités d'Enregistrement"
-#: views.py:83
+#: views.py:88
msgid "New context record"
msgstr "Nouvelle Unité d'Enregistrement"
-#: views.py:93
+#: views.py:98
msgid "Context record modification"
msgstr "Modification d'une Unité d'Enregistrement"
-#: views.py:107
+#: views.py:112
msgid "Context record deletion"
msgstr "Suppression d'une Unité d'Enregistrement"
-#: views.py:115
+#: views.py:120
msgid "Context record: new source"
msgstr "Unité d'Enregistrement : nouvelle documentation associée"
-#: views.py:123
+#: views.py:128
msgid "Context record: source modification"
msgstr "Unité d'Enregistrement : modification d'une documentation associée"
-#: views.py:129
+#: views.py:134
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 aa89350c5..797112282 100644
--- a/translations/fr/archaeological_files.po
+++ b/translations/fr/archaeological_files.po
@@ -14,213 +14,213 @@ msgstr ""
"Language-Team: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
-"X-Generator: Zanata 3.7.3\n"
+"X-Generator: Zanata 3.8.2\n"
-#: forms.py:51 forms.py:191 forms.py:235 forms.py:376 forms.py:431
+#: forms.py:51 forms.py:198 forms.py:242 forms.py:383 forms.py:437
#: models.py:75 templates/ishtar/sheet_file.html:150
msgid "Year"
msgstr "Année"
-#: forms.py:52 forms.py:196 forms.py:237 forms.py:430 models.py:78
+#: forms.py:52 forms.py:203 forms.py:244 forms.py:436 models.py:78
msgid "Numeric reference"
msgstr "Référence numérique"
-#: forms.py:54 forms.py:198 forms.py:433
+#: forms.py:54 forms.py:205 forms.py:439
msgid "Other reference"
msgstr "Autre référence"
-#: forms.py:56 forms.py:411
+#: forms.py:59 forms.py:417
msgid "File name"
msgstr "Nom du dossier"
-#: forms.py:57 forms.py:137 forms.py:202 models.py:84
+#: forms.py:60 forms.py:144 forms.py:209 models.py:84
msgid "File type"
msgstr "Type de dossier"
-#: forms.py:58 forms.py:139 forms.py:299
+#: forms.py:61 forms.py:146 forms.py:306
msgid "Saisine type"
msgstr "Type de saisine"
-#: forms.py:59
+#: forms.py:62
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:60
+#: forms.py:63
msgid "Is active?"
msgstr "Est actif ?"
-#: forms.py:62 forms.py:267 forms.py:413 models.py:91
+#: forms.py:65 forms.py:274 forms.py:419 models.py:91
msgid "General contractor"
msgstr "Aménageur"
-#: forms.py:69 forms.py:422
+#: forms.py:72 forms.py:428
msgid "Organization of general contractor"
msgstr "Organisation de l'aménageur"
-#: forms.py:76 forms.py:435 templates/ishtar/sheet_file.html:127
+#: forms.py:79 forms.py:441 templates/ishtar/sheet_file.html:127
msgid "In charge"
msgstr "Responsable"
-#: forms.py:83 forms.py:450
+#: forms.py:86 forms.py:456
msgid "Created by"
msgstr "Créé par"
-#: forms.py:90 forms.py:292 forms.py:443 models.py:116
+#: forms.py:93 forms.py:299 forms.py:449 models.py:116
msgid "Permit reference"
msgstr "Référence du permis"
-#: forms.py:108
+#: forms.py:115
msgid "Archaeological file search"
msgstr "Recherche de dossiers archéologiques"
-#: forms.py:122
+#: forms.py:129
msgid "You should select a file."
msgstr "Vous devez sélectionner un dossier archéologique."
-#: forms.py:125 forms.py:200 models.py:124
+#: forms.py:132 forms.py:207 models.py:124
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:126 forms.py:302 models.py:126
+#: forms.py:133 forms.py:309 models.py:126
msgid "Reception date"
msgstr "Date de réception"
-#: forms.py:131
+#: forms.py:138
msgid "Slicing"
msgstr "Découpage"
-#: forms.py:133
+#: forms.py:140
msgid "Department detail"
msgstr "Détail par département"
-#: forms.py:135
+#: forms.py:142
msgid "Date get from"
msgstr "Date utilisée"
-#: forms.py:141
+#: forms.py:148
msgid "Date after"
msgstr "Date après"
-#: forms.py:143
+#: forms.py:150
msgid "Date before"
msgstr "Date avant"
-#: forms.py:180 templates/ishtar/sheet_file.html:31
+#: forms.py:187 templates/ishtar/sheet_file.html:31
msgid "General"
msgstr "Général"
-#: forms.py:185 models.py:86
+#: forms.py:192 models.py:86
msgid "Person in charge"
msgstr "Responsable"
-#: forms.py:199 models.py:83
+#: forms.py:206 models.py:83
msgid "Name"
msgstr "Nom"
-#: forms.py:204 models.py:128
+#: forms.py:211 models.py:128
msgid "Related file"
msgstr "Dossier en relation avec"
-#: forms.py:208 forms.py:346 models.py:145
+#: forms.py:215 forms.py:353 models.py:145
#: templates/ishtar/sheet_file.html:111
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:212 models.py:136
+#: forms.py:219 models.py:136
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:215 models.py:142
+#: forms.py:222 models.py:142
msgid "Main address"
msgstr "Adresse des terrains"
-#: forms.py:216
+#: forms.py:223
msgid "Main address - complement"
msgstr "Adresse des terrains - complément"
-#: forms.py:228
+#: forms.py:235
#, python-format
msgid "<br/>(last recorded: %s)"
msgstr "<br/>(dernier enregistrement : %s)"
-#: forms.py:250
+#: forms.py:257
msgid "Another file with this numeric id exists."
msgstr "Un autre dossier avec cet identifiant numérique existe."
-#: forms.py:261
+#: forms.py:268
msgid "Preventive informations"
msgstr "Information archéologie préventive"
-#: forms.py:279 models.py:103
+#: forms.py:286 models.py:103
msgid "Responsible for town planning service"
msgstr "Responsable au service instructeur"
-#: forms.py:289 models.py:57 models.py:115
+#: forms.py:296 models.py:57 models.py:115
msgid "Permit type"
msgstr "Type de permis"
-#: forms.py:295 models.py:139
+#: forms.py:302 models.py:139
msgid "Total developed surface (m2)"
msgstr "Surface totale aménagée (m2)"
-#: forms.py:314 templates/ishtar/sheet_file.html:101
+#: forms.py:321 templates/ishtar/sheet_file.html:101
#: templates/ishtar/dashboards/dashboard_file.html:42
msgid "Research archaeology"
msgstr "Archéologie programmée"
-#: forms.py:322 models.py:148 templates/ishtar/sheet_file.html:102
+#: forms.py:329 models.py:148 templates/ishtar/sheet_file.html:102
msgid "Departments"
msgstr "Départements"
-#: forms.py:333 models.py:157
+#: forms.py:340 models.py:157
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:335 models.py:151 templates/ishtar/sheet_file.html:104
+#: forms.py:342 models.py:151 templates/ishtar/sheet_file.html:104
msgid "Requested operation type"
msgstr "Type d'opération demandée"
-#: forms.py:337
+#: forms.py:344
msgid "Lead organization"
msgstr "Organisation porteuse du projet"
-#: forms.py:353 models.py:161 templates/ishtar/sheet_file.html:109
+#: forms.py:360 models.py:161 templates/ishtar/sheet_file.html:109
msgid "Classified area"
msgstr "Au sein d'un site classé"
-#: forms.py:355 models.py:163 templates/ishtar/sheet_file.html:110
+#: forms.py:362 models.py:163 templates/ishtar/sheet_file.html:110
msgid "Protected area"
msgstr "Au sein d'un secteur sauvegardé"
-#: forms.py:367
+#: forms.py:374
msgid "Would you like to close this archaeological file?"
msgstr "Voulez vous clore ce dossier archéologique ?"
-#: forms.py:372
+#: forms.py:379
msgid "Would you like to delete this archaelogical file ?"
msgstr "Voulez vous supprimer ce dossier archéologique ?"
-#: forms.py:377
+#: forms.py:384
msgid "Index"
msgstr "Index"
-#: forms.py:381 forms.py:405 forms.py:493
+#: forms.py:388 forms.py:411 forms.py:498
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:382 forms.py:447
+#: forms.py:389 forms.py:453
msgid "Object (full text search)"
msgstr "Objet (recherche texte intégral)"
-#: forms.py:387 forms.py:446 models.py:518
+#: forms.py:394 forms.py:452 models.py:518
msgid "Department"
msgstr "Département"
-#: forms.py:407
+#: forms.py:413
msgid "Signature date after"
msgstr "Date de signature après"
-#: forms.py:409
+#: forms.py:415
msgid "Signature date before"
msgstr "Date de signature avant"
@@ -393,39 +393,39 @@ msgstr "Pas de commune"
msgid "File"
msgstr "Dossier"
-#: views.py:142
+#: views.py:144
msgid "File search"
msgstr "Recherche de dossier archéologique"
-#: views.py:151
+#: views.py:153
msgid "New file"
msgstr "Nouveau dossier archéologique"
-#: views.py:170
+#: views.py:172
msgid "File modification"
msgstr "Modification de dossier archéologique"
-#: views.py:193
+#: views.py:195
msgid "File closing"
msgstr "Clotûre de dossier"
-#: views.py:198
+#: views.py:200
msgid "File deletion"
msgstr "Suppression de dossier archéologique"
-#: views.py:205
+#: views.py:207
msgid "File: search administrative act"
msgstr "Dossier : rechercher un acte administratif"
-#: views.py:214
+#: views.py:216
msgid "File: new administrative act"
msgstr "Dossier : nouvel acte administratif"
-#: views.py:224
+#: views.py:226
msgid "File: administrative act modification"
msgstr "Dossier : modification d'acte administratif"
-#: views.py:233
+#: views.py:235
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 c2d267281..f53c27e4c 100644
--- a/translations/fr/archaeological_files_pdl.po
+++ b/translations/fr/archaeological_files_pdl.po
@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=(n > 1)\n"
-"X-Generator: Zanata 3.7.3\n"
+"X-Generator: Zanata 3.8.2\n"
#: forms.py:39
msgid "General"
diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po
index 248dddd39..c4cb2d21a 100644
--- a/translations/fr/archaeological_finds.po
+++ b/translations/fr/archaeological_finds.po
@@ -9,19 +9,19 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-01-18 06:33-0500\n"
+"PO-Revision-Date: 2016-01-28 03:55-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"
+"X-Generator: Zanata 3.8.2\n"
#: forms.py:45 ishtar_menu.py:31 models.py:346 models.py:542 models.py:612
#: templates/ishtar/sheet_find.html:6
msgid "Find"
msgstr "Mobilier"
-#: forms.py:54 forms.py:289 models.py:108 models.py:288
+#: forms.py:54 forms.py:295 models.py:108 models.py:288
msgid "Free-ID"
msgstr "Identifiant libre"
@@ -29,12 +29,12 @@ msgstr "Identifiant libre"
msgid "Previous ID"
msgstr "Identifiant précédent"
-#: forms.py:57 forms.py:165 forms.py:229 models.py:111 models.py:289
+#: forms.py:57 forms.py:171 forms.py:235 models.py:111 models.py:289
#: models.py:565 templates/ishtar/sheet_find.html:87
msgid "Description"
msgstr "Description"
-#: forms.py:60 forms.py:167 models.py:122
+#: forms.py:60 forms.py:173 models.py:122
msgid "Batch/object"
msgstr "Lot/objet"
@@ -42,11 +42,11 @@ msgstr "Lot/objet"
msgid "Is complete?"
msgstr "Est complet ?"
-#: forms.py:65 forms.py:158 forms.py:293 models.py:50
+#: forms.py:65 forms.py:164 forms.py:299 models.py:50
msgid "Material type"
msgstr "Type de matériau"
-#: forms.py:66 forms.py:162 models.py:60 models.py:293
+#: forms.py:66 forms.py:168 models.py:60 models.py:293
msgid "Conservatory state"
msgstr "État sanitaire"
@@ -54,11 +54,11 @@ msgstr "État sanitaire"
msgid "Object types"
msgstr "Types d'objet"
-#: forms.py:71 forms.py:161 models.py:67
+#: forms.py:71 forms.py:167 models.py:67
msgid "Preservation type"
msgstr "Type de conservation"
-#: forms.py:74 forms.py:164 models.py:321
+#: forms.py:74 forms.py:170 models.py:321
msgid "Integrity"
msgstr "Intégrité"
@@ -78,15 +78,15 @@ msgstr "Hauteur (cm)"
msgid "Diameter (cm)"
msgstr "Diametre (cm)"
-#: forms.py:80 forms.py:294 models.py:298
+#: forms.py:80 forms.py:300 models.py:298
msgid "Volume (l)"
msgstr "Volume (l)"
-#: forms.py:81 forms.py:295 models.py:299
+#: forms.py:81 forms.py:301 models.py:299
msgid "Weight (g)"
msgstr "Poids (g)"
-#: forms.py:82 forms.py:296 models.py:302
+#: forms.py:82 forms.py:302 models.py:302
msgid "Find number"
msgstr "Mobilier (en nombre)"
@@ -94,7 +94,7 @@ msgstr "Mobilier (en nombre)"
msgid "Mark"
msgstr "Marque"
-#: forms.py:84 forms.py:169 models.py:332
+#: forms.py:84 forms.py:175 models.py:332
msgid "Check"
msgstr "Vérification"
@@ -127,15 +127,15 @@ msgstr ""
msgid "Dating"
msgstr "Datation"
-#: forms.py:124 forms.py:156
+#: forms.py:124 forms.py:162
msgid "Period"
msgstr "Période"
-#: forms.py:125 forms.py:231 models.py:577 models.py:618
+#: forms.py:125 forms.py:237 models.py:577 models.py:618
msgid "Start date"
msgstr "Date de début"
-#: forms.py:127 forms.py:233 models.py:578 models.py:619
+#: forms.py:127 forms.py:239 models.py:578 models.py:619
msgid "End date"
msgstr "Date de fin"
@@ -159,91 +159,95 @@ msgstr "Année"
msgid "Code PATRIARCHE"
msgstr "Code PATRIARCHE"
-#: forms.py:159 models.py:84
+#: forms.py:157
+msgid "Archaelogical site"
+msgstr "Entité Archéologique"
+
+#: forms.py:165 models.py:84
msgid "Object type"
msgstr "Type d'objet"
-#: forms.py:170
+#: forms.py:176
msgid "Has an image?"
msgstr "Dispose d'une image ?"
-#: forms.py:199 views.py:91
+#: forms.py:205 views.py:97
msgid "Find search"
msgstr "Recherche de mobilier"
-#: forms.py:212
+#: forms.py:218
msgid "Base treatment"
msgstr "Traitement de base"
-#: forms.py:216 models.py:554 models.py:568
+#: forms.py:222 models.py:554 models.py:568
msgid "Treatment type"
msgstr "Type de traitement"
-#: forms.py:218 models.py:575 models.py:616
+#: forms.py:224 models.py:575 models.py:616
msgid "Person"
msgstr "Individu"
-#: forms.py:224 models.py:570
+#: forms.py:230 models.py:570
msgid "Location"
msgstr "Lieu"
-#: forms.py:245
+#: forms.py:251
msgid "Upstream finds"
msgstr "Mobilier amont"
-#: forms.py:247 models.py:347
+#: forms.py:253 models.py:347
msgid "Finds"
msgstr "Mobilier"
-#: forms.py:257
+#: forms.py:263
msgid "You should at least select one archaeological find."
msgstr "Vous devez sélectionner au moins un mobilier archéologique."
-#: forms.py:286
+#: forms.py:292
msgid "Resulting find"
msgstr "Mobilier résultant"
-#: forms.py:291
+#: forms.py:297
msgid "Precise description"
msgstr "Description précise"
-#: forms.py:305
+#: forms.py:311
msgid "Resulting finds"
msgstr "Mobiliers résultants"
-#: forms.py:309
+#: forms.py:315
msgid "Upstream find"
msgstr "Mobilier amont"
-#: forms.py:316
+#: forms.py:322
msgid "Archaeological find search"
msgstr "Recherche de mobilier"
-#: forms.py:318
+#: forms.py:324
msgid "You should select an archaeological find."
msgstr "Vous devez sélectionner du mobilier."
-#: forms.py:323
+#: forms.py:329
msgid "Year of the operation"
msgstr "Année de l'opération"
-#: forms.py:325
+#: forms.py:331
msgid "Period of the archaelogical find"
msgstr "Période du mobilier"
-#: forms.py:327
+#: forms.py:333
msgid "Material type of the archaelogical find"
msgstr "Type de matériau du mobilier"
-#: forms.py:329
+#: forms.py:335
msgid "Description of the archaelogical find"
msgstr "Description du mobilier"
-#: forms.py:341
+#: forms.py:347
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:343
+#: forms.py:349
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
@@ -543,23 +547,23 @@ msgstr "Propriété"
msgid "Properties"
msgstr "Propriétés"
-#: views.py:86
+#: views.py:92
msgid "New find"
msgstr "Nouveau mobilier"
-#: views.py:99
+#: views.py:105
msgid "Find modification"
msgstr "Modification de mobilier"
-#: views.py:117
+#: views.py:123
msgid "Find: new source"
msgstr "Mobilier : nouvelle documentation associée"
-#: views.py:125
+#: views.py:131
msgid "Find: source modification"
msgstr "Mobilier : modification de documentation associée"
-#: views.py:131
+#: views.py:137
msgid "Find: source deletion"
msgstr "Mobilier : suppression de mobilier associé"
diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po
index 5e30180d5..5b13c7d5a 100644
--- a/translations/fr/archaeological_operations.po
+++ b/translations/fr/archaeological_operations.po
@@ -9,19 +9,19 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-01-18 06:41-0500\n"
+"PO-Revision-Date: 2016-01-28 03:56-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"
+"X-Generator: Zanata 3.8.2\n"
-#: forms.py:69 forms.py:336 forms.py:854 forms.py:876 forms.py:880
-#: models.py:790 templates/ishtar/blocks/window_tables/parcels.html:8
+#: forms.py:69 forms.py:336 forms.py:883 forms.py:905 forms.py:909
+#: models.py:791 templates/ishtar/blocks/window_tables/parcels.html:8
msgid "Parcels"
msgstr "Parcelles"
-#: forms.py:72 forms.py:188 forms.py:830 models.py:780
+#: forms.py:72 forms.py:188 forms.py:859 models.py:781
#: templates/ishtar/blocks/window_tables/parcels.html:5
#: templates/ishtar/dashboards/dashboard_operation.html:302
#: templates/ishtar/dashboards/dashboard_operation.html:315
@@ -30,18 +30,18 @@ msgstr "Parcelles"
msgid "Town"
msgstr "Commune"
-#: forms.py:74 forms.py:414 forms.py:680 forms.py:1043 models.py:161
-#: models.py:596 models.py:778
+#: forms.py:74 forms.py:414 forms.py:709 forms.py:1072 models.py:161
+#: models.py:597 models.py:779
#: templates/ishtar/blocks/window_tables/parcels.html:6
msgid "Year"
msgstr "Année"
-#: forms.py:77 models.py:781
+#: forms.py:77 models.py:782
#: templates/ishtar/blocks/window_tables/parcels.html:7
msgid "Section"
msgstr "Section"
-#: forms.py:80 models.py:782
+#: forms.py:80 models.py:783
msgid "Parcel number"
msgstr "Numéro de parcelle"
@@ -73,8 +73,8 @@ msgstr "Il y a des parcelles identiques."
msgid "Relation type"
msgstr "Type de relation"
-#: forms.py:348 ishtar_menu.py:33 models.py:240 models.py:495 models.py:520
-#: models.py:535 models.py:587 models.py:777 wizards.py:341 wizards.py:352
+#: forms.py:348 ishtar_menu.py:33 models.py:241 models.py:496 models.py:521
+#: models.py:536 models.py:588 models.py:778 wizards.py:341 wizards.py:352
#: templates/ishtar/sheet_operation.html:6
msgid "Operation"
msgstr "Opération"
@@ -103,204 +103,220 @@ msgstr "Identifiant numérique"
msgid "Name (full text search)"
msgstr "Nom (recherche texte intégral)"
-#: forms.py:421 forms.py:567 forms.py:663 forms.py:1020 models.py:170
+#: forms.py:421
+msgid "Archaelogical site"
+msgstr "Entité Archéologique"
+
+#: forms.py:430 forms.py:596 forms.py:692 forms.py:1049 models.py:170
msgid "Operation type"
msgstr "Type d'opération"
-#: forms.py:429 models.py:581
+#: forms.py:438 models.py:582
msgid "Scientist in charge"
msgstr "Responsable scientifique"
-#: forms.py:438 forms.py:656 models.py:158
+#: forms.py:447 forms.py:685 models.py:158
msgid "In charge"
msgstr "Responsable"
-#: forms.py:440 forms.py:569 forms.py:649 models.py:156
+#: forms.py:449 forms.py:598 forms.py:678 models.py:156
msgid "Operator"
msgstr "Opérateur"
-#: forms.py:445 forms.py:920 models.py:83 models.py:172
+#: forms.py:454 forms.py:949 models.py:83 models.py:172
msgid "Remains"
msgstr "Vestiges"
-#: forms.py:446 forms.py:899 forms.py:917 models.py:81 models.py:177
+#: forms.py:455 forms.py:928 forms.py:946 models.py:81 models.py:177
msgid "Periods"
msgstr "Périodes"
-#: forms.py:447
+#: forms.py:456
msgid "Started before"
msgstr "Commencé avant"
-#: forms.py:449
+#: forms.py:458
msgid "Started after"
msgstr "Commencé après"
-#: forms.py:451
+#: forms.py:460
msgid "Ended before"
msgstr "Terminé avant"
-#: forms.py:453
+#: forms.py:462
msgid "Ended after"
msgstr "Terminé après"
-#: forms.py:455
+#: forms.py:464
msgid "Parcel (section/number)"
msgstr "Parcelle (section/numéro)"
-#: forms.py:456
+#: forms.py:465
msgid "Is open?"
msgstr "Est ouvert ?"
-#: forms.py:458 forms.py:1056
+#: forms.py:467 forms.py:1085
msgid "Created by"
msgstr "Créé par"
-#: forms.py:463 forms.py:716 models.py:235
+#: forms.py:472
+msgid "Abstract (full text search)"
+msgstr "Résumé (recherche texte intégral)"
+
+#: forms.py:473 forms.py:745 models.py:235
msgid "Record quality"
msgstr "Qualité d'enregistrement"
-#: forms.py:464 forms.py:673 models.py:189
+#: forms.py:474 forms.py:702 models.py:189
msgid "Report processing"
msgstr "Traitement du rapport"
-#: forms.py:466 forms.py:719 models.py:230
+#: forms.py:476 forms.py:748 models.py:230
msgid "Virtual operation"
msgstr "Opération virtuelle"
-#: forms.py:494 forms.py:1013 views.py:205
+#: forms.py:478
+msgid "Search within relations"
+msgstr "Recherche parmi les relations"
+
+#: forms.py:516 forms.py:1042 views.py:214
msgid "Operation search"
msgstr "Recherche d'opérations"
-#: forms.py:507 forms.py:1015
+#: forms.py:529 forms.py:1044
msgid "You should select an operation."
msgstr "Vous devez sélectionner une opération."
-#: forms.py:538
+#: forms.py:560
msgid "Associated file"
msgstr "Dossier associé"
-#: forms.py:542 forms.py:779 models.py:593 wizards.py:78
+#: forms.py:564 forms.py:808 models.py:594 wizards.py:78
msgid "Archaelogical file"
msgstr "Dossier"
-#: forms.py:547
+#: forms.py:571 forms.py:573 models.py:237
+msgid "Abstract"
+msgstr "Résumé"
+
+#: forms.py:576
msgid "months"
msgstr "mois"
-#: forms.py:547
+#: forms.py:576
msgid "years"
msgstr "années"
-#: forms.py:549 models.py:142
+#: forms.py:578 models.py:142
msgid "Creation date"
msgstr "Date de création"
-#: forms.py:550
+#: forms.py:579
msgid "Start of field work"
msgstr "Début du travail de terrain"
-#: forms.py:552
+#: forms.py:581
msgid "All"
msgstr "Tous"
-#: forms.py:553
+#: forms.py:582
msgid "Preventive"
msgstr "Préventif"
-#: forms.py:554
+#: forms.py:583
msgid "Research"
msgstr "Programmée"
-#: forms.py:558
+#: forms.py:587
msgid "Slicing"
msgstr "Découpage"
-#: forms.py:561
+#: forms.py:590
msgid "Department detail"
msgstr "Détail par département"
-#: forms.py:563
+#: forms.py:592
msgid "Date get from"
msgstr "Date obtenue depuis"
-#: forms.py:565
+#: forms.py:594
msgid "Preventive/Research"
msgstr "Préventif/Programmé"
-#: forms.py:571
+#: forms.py:600
msgid "Date after"
msgstr "Date après"
-#: forms.py:573
+#: forms.py:602
msgid "Date before"
msgstr "Date avant"
-#: forms.py:575
+#: forms.py:604
msgid "With reports"
msgstr "Avec un rapport"
-#: forms.py:576
+#: forms.py:605
msgid "With finds"
msgstr "Avec du matériel"
-#: forms.py:628 forms.py:1096 templates/ishtar/sheet_administrativeact.html:11
+#: forms.py:657 forms.py:1124 templates/ishtar/sheet_administrativeact.html:11
#: templates/ishtar/sheet_operation.html:32
msgid "General"
msgstr "Général"
-#: forms.py:639
+#: forms.py:668
msgid "Head scientist"
msgstr "Responsable scientifique"
-#: forms.py:666 models.py:51 models.py:145 models.py:950
+#: forms.py:695 models.py:51 models.py:145 models.py:951
msgid "Start date"
msgstr "Date de début"
-#: forms.py:668 models.py:147
+#: forms.py:697 models.py:147
msgid "Excavation end date"
msgstr "Date de fin de chantier"
-#: forms.py:671 models.py:148
+#: forms.py:700 models.py:148
msgid "Report delivery date"
msgstr "Date de livraison du rapport"
-#: forms.py:677
+#: forms.py:706
msgid "Total surface (m2)"
msgstr "Surface totale (m2)"
-#: forms.py:685 forms.py:774 models.py:162 models.py:374
+#: forms.py:714 forms.py:803 models.py:162 models.py:375
msgid "Operation code"
msgstr "Code de l'opération"
-#: forms.py:688 models.py:222
+#: forms.py:717 models.py:222
msgid "Generic name"
msgstr "Nom générique"
-#: forms.py:690 models.py:221
+#: forms.py:719 models.py:221
msgid "Operator reference"
msgstr "Référence de l'opérateur"
-#: forms.py:694
+#: forms.py:723
msgid "Associated archaeological sites"
msgstr "Entités archéologiques associées"
-#: forms.py:714 models.py:223
+#: forms.py:743 models.py:223
msgid "Comment"
msgstr "Commentaire"
-#: forms.py:744
+#: forms.py:773
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:749
+#: forms.py:778
msgid "The excavation end date cannot be before the start date."
msgstr ""
"La date de fin de chantier ne peut être antérieure à la date de début."
-#: forms.py:764
+#: forms.py:793
#, python-format
msgid ""
"Operation code already exist for year: %(year)d - use a value bigger than "
@@ -309,100 +325,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:768
+#: forms.py:797
msgid "Bad operation code"
msgstr "Mauvais code d'opération"
-#: forms.py:800
+#: forms.py:829
msgid "Preventive informations - excavation"
msgstr "Information archéologie préventive - fouille"
-#: forms.py:801 models.py:175
+#: forms.py:830 models.py:175
#: templates/ishtar/dashboards/dashboard_operation.html:495
msgid "Cost (euros)"
msgstr "Coût (euros)"
-#: forms.py:802 models.py:180
+#: forms.py:831 models.py:180
msgid "Scheduled man-days"
msgstr "Jours-hommes prévus"
-#: forms.py:804 models.py:183
+#: forms.py:833 models.py:183
msgid "Optional man-days"
msgstr "Jours-hommes optionnels"
-#: forms.py:806 models.py:186
+#: forms.py:835 models.py:186
msgid "Effective man-days"
msgstr "Jours-hommes effectifs"
-#: forms.py:816
+#: forms.py:845
msgid "Preventive informations - diagnostic"
msgstr "Information archéologie préventive - diagnostic"
-#: forms.py:819 models.py:205
+#: forms.py:848 models.py:205
msgid "Prescription on zoning"
msgstr "Prescription sur zonage"
-#: forms.py:821 models.py:208
+#: forms.py:850 models.py:208
msgid "Prescription on large area"
msgstr "Prescription sur une vaste surface"
-#: forms.py:824 models.py:210
+#: forms.py:853 models.py:210
msgid "Prescription on geoarchaeological context"
msgstr "Prescription sur un contexte géoarchéologique"
-#: forms.py:828 forms.py:850 models.py:174 models.py:606
+#: forms.py:857 forms.py:879 models.py:174 models.py:607
msgid "Towns"
msgstr "Communes"
-#: forms.py:857 models.py:789 models.py:948
+#: forms.py:886 models.py:790 models.py:949
msgid "Parcel"
msgstr "Parcelle"
-#: forms.py:884 models.py:45
+#: forms.py:913 models.py:45
msgid "Remain types"
msgstr "Types de vestige"
-#: forms.py:888 models.py:44
+#: forms.py:917 models.py:44
msgid "Remain type"
msgstr "Type de vestige"
-#: forms.py:903
+#: forms.py:932
msgid "Period"
msgstr "Période"
-#: forms.py:914 models.py:78
+#: forms.py:943 models.py:78
msgid "Reference"
msgstr "Référence"
-#: forms.py:915 models.py:79
+#: forms.py:944 models.py:79
msgid "Name"
msgstr "Nom"
-#: forms.py:939
+#: forms.py:968
msgid "This reference already exists."
msgstr "Cette référence existe déjà."
-#: forms.py:956
+#: forms.py:985
msgid "Associated archaelogical sites"
msgstr "Entités archéologiques associées"
-#: forms.py:962 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
+#: forms.py:991 ishtar_menu.py:36 ishtar_menu.py:63 ishtar_menu.py:125
msgid "Search"
msgstr "Recherche"
-#: forms.py:967
+#: forms.py:996
msgid "Would you like to close this operation?"
msgstr "Voulez-vous clore cette opération ?"
-#: forms.py:972
+#: forms.py:1001
msgid "Would you like to delete this operation?"
msgstr "Voulez-vous supprimer cette opération ?"
-#: forms.py:981 forms.py:1044 models.py:522 models.py:572
+#: forms.py:1010 forms.py:1073 models.py:523 models.py:573
msgid "Index"
msgstr "Index"
-#: forms.py:1007
+#: forms.py:1036
#, python-format
msgid ""
"Index already exists for operation: %(operation)s - use a value bigger than "
@@ -411,27 +427,27 @@ msgstr ""
"Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "
"plus grande que %(last_val)d"
-#: forms.py:1019
+#: forms.py:1048
msgid "Operation's town"
msgstr "Commune de l'opération"
-#: forms.py:1022
+#: forms.py:1051
msgid "Operation's year"
msgstr "Année de l'opération"
-#: forms.py:1033
+#: forms.py:1062
msgid "Documentation search"
msgstr "Recherche de document"
-#: forms.py:1035
+#: forms.py:1064
msgid "You should select a document."
msgstr "Vous devez sélectionner un document."
-#: forms.py:1048 forms.py:1099 models.py:546 models.py:566
+#: forms.py:1077 forms.py:1127 models.py:547 models.py:567
msgid "Act type"
msgstr "Type d'acte"
-#: forms.py:1052 models.py:496
+#: forms.py:1081 models.py:497
#: templates/ishtar/dashboards/dashboard_operation.html:273
#: templates/ishtar/dashboards/dashboard_operation.html:286
#: templates/ishtar/dashboards/dashboard_operation.html:453
@@ -439,52 +455,52 @@ msgstr "Type d'acte"
msgid "Department"
msgstr "Département"
-#: forms.py:1053
+#: forms.py:1082
msgid "Object (full text search)"
msgstr "Objet (recherche texte intégral)"
-#: forms.py:1076 views.py:339
+#: forms.py:1104 views.py:350
msgid "Administrative act search"
msgstr "Recherche d'actes administratifs"
-#: forms.py:1091 forms.py:1145 forms.py:1212
+#: forms.py:1119 forms.py:1173 forms.py:1240
msgid "You should select an administrative act."
msgstr "Vous devez sélectionner un acte administratif."
-#: forms.py:1104 models.py:597
+#: forms.py:1132 models.py:598
#: templates/ishtar/blocks/window_tables/administrativacts.html:8
msgid "Object"
msgstr "Objet"
-#: forms.py:1107 models.py:594
+#: forms.py:1135 models.py:595
msgid "Signature date"
msgstr "Date de signature"
-#: forms.py:1122
+#: forms.py:1150
msgid "Would you like to delete this administrative act?"
msgstr "Voulez-vous supprimer cet acte administratif ?"
-#: forms.py:1127
+#: forms.py:1155
msgid "Template"
msgstr "Patron"
-#: forms.py:1151 forms.py:1155
+#: forms.py:1179 forms.py:1183
msgid "This document is not intended for this type of act."
msgstr "Ce document n'est pas destiné à ce type d'acte."
-#: forms.py:1173
+#: forms.py:1201
msgid "Doc generation"
msgstr "Génération de document"
-#: forms.py:1175
+#: forms.py:1203
msgid "Generate the associated doc?"
msgstr "Générer le document associé ?"
-#: forms.py:1187
+#: forms.py:1215
msgid "Indexed?"
msgstr "Indexé ?"
-#: forms.py:1196 ishtar_menu.py:110 views.py:373
+#: forms.py:1224 ishtar_menu.py:110 views.py:384
msgctxt "admin act register"
msgid "Register"
msgstr "Registre"
@@ -521,7 +537,7 @@ msgstr "Tableau de bord"
msgid "General informations"
msgstr "Informations générales"
-#: ishtar_menu.py:94 models.py:241
+#: ishtar_menu.py:94 models.py:242
#: templates/ishtar/dashboards/dashboard_operation.html:9
msgid "Operations"
msgstr "Opérations"
@@ -530,7 +546,7 @@ msgstr "Opérations"
msgid "Administrative Act"
msgstr "Acte administratif"
-#: ishtar_menu.py:121 models.py:613
+#: ishtar_menu.py:121 models.py:614
#: templates/ishtar/sheet_administrativeact.html:6
msgid "Administrative act"
msgstr "Acte administratif"
@@ -539,11 +555,11 @@ msgstr "Acte administratif"
msgid "Documents"
msgstr "Documents"
-#: models.py:50 models.py:66 models.py:1412
+#: models.py:50 models.py:66 models.py:1413
msgid "Order"
msgstr "Ordre"
-#: models.py:52 models.py:951
+#: models.py:52 models.py:952
msgid "End date"
msgstr "Date de fin"
@@ -615,7 +631,7 @@ msgstr "Date de clôture"
msgid "In charge scientist"
msgstr "Responsable scientifique"
-#: models.py:167 models.py:773
+#: models.py:167 models.py:774
msgid "File"
msgstr "Dossier"
@@ -634,276 +650,276 @@ msgstr ""
"Si coché, cela signifie que cette opération n'a pas été officiellement "
"enregistrée."
-#: models.py:243
+#: models.py:244
msgid "Can view all Operation"
msgstr "Peut voir toutes les Opérations"
-#: models.py:244
+#: models.py:245
msgid "Can view own Operation"
msgstr "Peut voir sa propre Opération"
-#: models.py:245
+#: models.py:246
msgid "Can add own Operation"
msgstr "Peut ajouter sa propre Opération"
-#: models.py:246
+#: models.py:247
msgid "Can change own Operation"
msgstr "Peut changer sa propre Opération"
-#: models.py:247
+#: models.py:248
msgid "Can delete own Operation"
msgstr "Peut supprimer sa propre Opération"
-#: models.py:248
+#: models.py:249
msgid "Can close Operation"
msgstr "Peut fermer une Opération"
-#: models.py:271
+#: models.py:272
msgid "OPE"
msgstr "OPE"
-#: models.py:331
+#: models.py:332
msgid "Intercommunal"
msgstr "Intercommunal"
-#: models.py:357 models.py:534
+#: models.py:358 models.py:535
msgid "Archaeological file"
msgstr "Dossier archéologique"
-#: models.py:358
+#: models.py:359
msgid "Code patriarche"
msgstr "Code patriarche"
-#: models.py:400
+#: models.py:401
msgid "This operation code already exists for this year"
msgstr "Ce code d'opération existe déjà pour cette année."
-#: models.py:466
+#: models.py:467
msgid "Inverse relation"
msgstr "Relation inverse"
-#: models.py:470
+#: models.py:471
msgid "Operation relation type"
msgstr "Type de relation entre opérations"
-#: models.py:471
+#: models.py:472
msgid "Operation relation types"
msgstr "Types de relation entre opérations"
-#: models.py:484
+#: models.py:485
msgid "Operation record relation"
msgstr "Relation entre opérations"
-#: models.py:485
+#: models.py:486
msgid "Operation record relations"
msgstr "Relations entre opérations"
-#: models.py:506
+#: models.py:507
msgid "Operation documentation"
msgstr "Documentation d'une opération"
-#: models.py:507
+#: models.py:508
msgid "Operation documentations"
msgstr "Documentations des opérations"
-#: models.py:510
+#: models.py:511
msgid "Can view all Operation source"
msgstr "Peut voir toutes les Sources des opérations"
-#: models.py:512
+#: models.py:513
msgid "Can view own Operation source"
msgstr "Peut voir sa propre Source d'opération"
-#: models.py:514
+#: models.py:515
msgid "Can add own Operation source"
msgstr "Peut ajouter sa propre Source d'opération"
-#: models.py:516
+#: models.py:517
msgid "Can change own Operation source"
msgstr "Peut changer sa propre Source d'opération"
-#: models.py:518
+#: models.py:519
msgid "Can delete own Operation source"
msgstr "Peut supprimer sa propre Source d'opération"
-#: models.py:537
+#: models.py:538
msgid "Intended to"
msgstr "Destiné à"
-#: models.py:539
+#: models.py:540
msgid "Code"
msgstr "Code"
-#: models.py:542
+#: models.py:543
msgid "Associated template"
msgstr "Patron associé"
-#: models.py:543
+#: models.py:544
msgid "Indexed"
msgstr "Indexé"
-#: models.py:547
+#: models.py:548
msgid "Act types"
msgstr "Types d'acte"
-#: models.py:570
+#: models.py:571
msgid "Person in charge of the operation"
msgstr "Responsable d'opération"
-#: models.py:576
+#: models.py:577
msgid "Archaeological preventive operator"
msgstr "Opérateur d'archéologie préventive"
-#: models.py:584
+#: models.py:585
msgid "Signatory"
msgstr "Signataire"
-#: models.py:603
+#: models.py:604
msgid "Departments"
msgstr "Départements"
-#: models.py:604
+#: models.py:605
msgid "Cached values get from associated departments"
msgstr "Valeur en cache des départements associés"
-#: models.py:607
+#: models.py:608
msgid "Cached values get from associated towns"
msgstr "Valeur en cache des communes associées"
-#: models.py:614
+#: models.py:615
msgid "Administrative acts"
msgstr "Actes administratifs"
-#: models.py:617
+#: models.py:618
msgid "Can view all Administrative act"
msgstr "Peut voir tous les Actes administratifs"
-#: models.py:619
+#: models.py:620
msgid "Can view own Administrative act"
msgstr "Peut voir son propre Acte administratif"
-#: models.py:621
+#: models.py:622
msgid "Can add own Administrative act"
msgstr "Peut ajouter son propre Acte administratif"
-#: models.py:623
+#: models.py:624
msgid "Can change own Administrative act"
msgstr "Peut changer son propre Acte administratif"
-#: models.py:625
+#: models.py:626
msgid "Can delete own Administrative act"
msgstr "Peut supprimer son propre Acte administratif"
-#: models.py:634
+#: models.py:635
#: templates/ishtar/blocks/window_tables/administrativacts.html:5
msgid "Ref."
msgstr "Réf."
-#: models.py:717
+#: models.py:718
msgid "This index already exists for this year"
msgstr "Cet index existe déjà pour cette année."
-#: models.py:784
+#: models.py:785
msgid "External ID"
msgstr "ID externe"
-#: models.py:786
+#: models.py:787
msgid "Address - Locality"
msgstr "Adresse - Lieu-dit"
-#: models.py:946
+#: models.py:947
msgid "Owner"
msgstr "Propriétaire"
-#: models.py:954
+#: models.py:955
msgid "Parcel owner"
msgstr "Propriétaire de parcelle"
-#: models.py:955
+#: models.py:956
msgid "Parcel owners"
msgstr "Propriétaires de parcelle"
-#: models.py:981
+#: models.py:982
msgid "Recorded"
msgstr "Enregistré"
-#: models.py:982
+#: models.py:983
msgid "Effective"
msgstr "Effectif"
-#: models.py:983
+#: models.py:984
msgid "Active"
msgstr "Actif"
-#: models.py:984
+#: models.py:985
msgid "Field completed"
msgstr "Terrain achevé"
-#: models.py:985
+#: models.py:986
msgid "Associated report"
msgstr "Rapport associé"
-#: models.py:986
+#: models.py:987
msgid "Closed"
msgstr "Fermé"
-#: models.py:987
+#: models.py:988
msgid "Documented and closed"
msgstr "Documenté et clos"
-#: models.py:1413
+#: models.py:1414
msgid "Is preventive"
msgstr "Préventif"
-#: models.py:1416
+#: models.py:1417
msgid "Operation type old"
msgstr "Type d'opération - ancien"
-#: models.py:1417
+#: models.py:1418
msgid "Operation types old"
msgstr "Types d'opération - ancien"
-#: views.py:226
+#: views.py:236
msgid "New operation"
msgstr "Nouvelle opération"
-#: views.py:260
+#: views.py:271
msgid "Operation modification"
msgstr "Modification d'une opération"
-#: views.py:300
+#: views.py:311
msgid "Operation closing"
msgstr "Clôture de l'opération"
-#: views.py:306
+#: views.py:317
msgid "Operation deletion"
msgstr "Suppression d'une opération"
-#: views.py:311
+#: views.py:322
msgid "Operation: source search"
msgstr "Opération : recherche de documentation associée"
-#: views.py:319
+#: views.py:330
msgid "Operation: source creation"
msgstr "Opération : nouvelle documentation associée"
-#: views.py:327
+#: views.py:338
msgid "Operation: source modification"
msgstr "Opération : modification d'une documentation associée"
-#: views.py:333
+#: views.py:344
msgid "Operation: source deletion"
msgstr "Opération : suppression d'une documentation associée"
-#: views.py:348
+#: views.py:359
msgid "Operation: new administrative act"
msgstr "Opération : nouvel acte administratif"
-#: views.py:358
+#: views.py:369
msgid "Operation: administrative act modification"
msgstr "Opération : modification d'un acte administratif"
-#: views.py:367
+#: views.py:378
msgid "Operation: administrative act deletion"
msgstr "Opération : suppression d'un acte administratif"
@@ -1069,14 +1085,6 @@ msgstr "Durée :"
msgid "Day"
msgstr "Jour"
-#: templates/ishtar/sheet_operation.html:61
-msgid "Remains:"
-msgstr "Vestiges :"
-
-#: templates/ishtar/sheet_operation.html:62
-msgid "Periods:"
-msgstr "Périodes :"
-
#: templates/ishtar/sheet_operation.html:84
msgid "Permit type:"
msgstr "Type de permis :"
diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po
index 58522e76a..27a73417d 100644
--- a/translations/fr/archaeological_warehouse.po
+++ b/translations/fr/archaeological_warehouse.po
@@ -13,7 +13,7 @@ msgstr ""
"Language-Team: \n"
"Language: fr\n"
"Plural-Forms: nplurals=2; plural=n>1;\n"
-"X-Generator: Zanata 3.7.3\n"
+"X-Generator: Zanata 3.8.2\n"
#: forms.py:34 forms.py:89 models.py:44 models.py:71
msgid "Warehouse"
diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po
index a60b9e546..b9ea9a031 100644
--- a/translations/fr/ishtar_common.po
+++ b/translations/fr/ishtar_common.po
@@ -9,12 +9,12 @@ msgstr ""
"MIME-Version: 1.0\n"
"Content-Transfer-Encoding: 8bit\n"
"Content-Type: text/plain; charset=UTF-8\n"
-"PO-Revision-Date: 2016-01-18 06:40-0500\n"
+"PO-Revision-Date: 2016-01-28 03:56-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"
+"X-Generator: Zanata 3.8.2\n"
#: __init__.py:8
msgid "username"
@@ -32,7 +32,7 @@ msgstr "Élément associé"
msgid "Archaeological file"
msgstr "Dossier"
-#: context_processors.py:34 models.py:1166
+#: context_processors.py:34 models.py:1178
msgid "Operation"
msgstr "Opération"
@@ -189,7 +189,7 @@ msgid "Template"
msgstr "Patron"
#: forms_common.py:39 forms_common.py:57 forms_common.py:169
-#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2262
+#: forms_common.py:269 forms_common.py:274 models.py:1059 models.py:2274
#: templates/blocks/JQueryAdvancedTown.html:19
#: templates/ishtar/sheet_organization.html:17
msgid "Town"
@@ -213,25 +213,25 @@ 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:640 ishtar_menu.py:42 models.py:1960
-#: models.py:2090 models.py:2144 templates/ishtar/sheet_person.html:6
+#: forms_common.py:66 forms_common.py:648 ishtar_menu.py:42 models.py:1973
+#: models.py:2102 models.py:2156 templates/ishtar/sheet_person.html:6
msgid "Person"
msgstr "Individu"
-#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1883
+#: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1895
#: 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:992 models.py:1216 models.py:1433
-#: models.py:1877 models.py:1950 models.py:2248
+#: forms_common.py:259 models.py:992 models.py:1228 models.py:1445
+#: models.py:1889 models.py:1963 models.py:2260
#: templates/ishtar/sheet_organization.html:12
#: templates/ishtar/sheet_organization.html:25
msgid "Name"
msgstr "Nom"
-#: forms_common.py:161 models.py:1161 models.py:1564
+#: forms_common.py:161 models.py:1173 models.py:1576
msgid "Organization type"
msgstr "Type d'organisation"
@@ -269,8 +269,8 @@ msgstr "Téléphone"
msgid "Mobile phone"
msgstr "Téléphone portable"
-#: forms_common.py:197 forms_common.py:229 models.py:1588 models.py:1879
-#: models.py:2185 templates/sheet_ope.html:85 templates/sheet_ope.html.py:105
+#: forms_common.py:197 forms_common.py:229 models.py:1600 models.py:1891
+#: models.py:2197 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
@@ -282,7 +282,7 @@ msgstr "Type"
msgid "Organization search"
msgstr "Recherche d'organisations"
-#: forms_common.py:227 forms_common.py:257 models.py:1948
+#: forms_common.py:227 forms_common.py:257 models.py:1961
#: templates/ishtar/sheet_organization.html:26
msgid "Surname"
msgstr "Prénom"
@@ -295,13 +295,14 @@ msgstr "Recherche d'individus"
msgid "Identity"
msgstr "Identité"
-#: forms_common.py:256 forms_common.py:574 models.py:1946 models.py:2182
-#: templates/sheet_ope.html:104 templates/ishtar/sheet_person.html:55
+#: forms_common.py:256 forms_common.py:574 forms_common.py:615 models.py:1959
+#: models.py:2194 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:1952
+#: forms_common.py:261 models.py:1965
msgid "Raw name"
msgstr "Nom brut"
@@ -309,7 +310,7 @@ msgstr "Nom brut"
msgid "Current organization"
msgstr "Organisation actuelle"
-#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1930
+#: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:1943
msgid "Person type"
msgstr "Type d'individu"
@@ -341,7 +342,7 @@ msgstr "Ce nom d'utilisateur existe déjà."
msgid "Send the new password by email?"
msgstr "Envoyer le nouveau mot de passe par courriel ?"
-#: forms_common.py:430 forms_common.py:443 models.py:2263
+#: forms_common.py:430 forms_common.py:443 models.py:2275
msgid "Towns"
msgstr "Communes"
@@ -357,69 +358,78 @@ msgstr "Seul un choix peut être coché."
msgid "Documentation informations"
msgstr "Information sur le document"
-#: forms_common.py:576 forms_common.py:612 models.py:1565 models.py:2165
+#: forms_common.py:576 forms_common.py:616 models.py:1577 models.py:2177
msgid "Source type"
msgstr "Type de source"
-#: forms_common.py:578 forms_common.py:613 templates/sheet_ope.html:84
+#: forms_common.py:578 forms_common.py:617 templates/sheet_ope.html:84
msgid "Reference"
msgstr "Référence"
-#: forms_common.py:581 forms_common.py:614
+#: forms_common.py:581 forms_common.py:618
msgid "Internal reference"
msgstr "Référence interne"
-#: forms_common.py:584 models.py:2196
+#: forms_common.py:584 models.py:2208
msgid "Numerical ressource (web address)"
msgstr "Ressource numérique (adresse web)"
-#: forms_common.py:585 models.py:2198
+#: forms_common.py:585 models.py:2210
msgid "Receipt date"
msgstr "Date de réception"
-#: forms_common.py:587 models.py:1715 models.py:2200
+#: forms_common.py:587 models.py:1727 models.py:2212
msgid "Creation date"
msgstr "Date de création"
-#: forms_common.py:590 models.py:2203
+#: forms_common.py:590 models.py:2215
msgid "Receipt date in documentation"
msgstr "Date de réception en documentation"
-#: forms_common.py:592 models.py:260 models.py:1460 models.py:2210
+#: forms_common.py:592 forms_common.py:620 models.py:260 models.py:1472
+#: models.py:2222
msgid "Comment"
msgstr "Commentaire"
-#: forms_common.py:594 models.py:1220 models.py:1392 models.py:1434
-#: models.py:2209 templates/sheet_ope.html:128
+#: forms_common.py:594 forms_common.py:619 models.py:1232 models.py:1404
+#: models.py:1446 models.py:2221 templates/sheet_ope.html:128
msgid "Description"
msgstr "Description"
-#: forms_common.py:596 forms_common.py:615 models.py:2213
+#: forms_common.py:597 models.py:2223
+msgid "Additional information"
+msgstr "Informations supplémentaires"
+
+#: forms_common.py:599 forms_common.py:623 models.py:2225
msgid "Has a duplicate"
msgstr "Existe en doublon"
-#: forms_common.py:609 forms_common.py:633 forms_common.py:666 models.py:2149
+#: forms_common.py:612 forms_common.py:641 forms_common.py:674 models.py:2161
#: templates/ishtar/wizard/wizard_person_deletion.html:124
msgid "Author"
msgstr "Auteur"
-#: forms_common.py:625
+#: forms_common.py:622
+msgid "Additional informations"
+msgstr "Informations complémentaires"
+
+#: forms_common.py:633
msgid "Would you like to delete this documentation?"
msgstr "Voulez-vous supprimer ce document ?"
-#: forms_common.py:641 models.py:1566 models.py:2139 models.py:2146
+#: forms_common.py:649 models.py:1578 models.py:2151 models.py:2158
msgid "Author type"
msgstr "Type d'auteur"
-#: forms_common.py:659
+#: forms_common.py:667
msgid "Author selection"
msgstr "Sélection d'auteur"
-#: forms_common.py:673
+#: forms_common.py:681
msgid "There are identical authors."
msgstr "Il y a des auteurs identiques."
-#: forms_common.py:677 models.py:2150 models.py:2192
+#: forms_common.py:685 models.py:2162 models.py:2204
#: templates/sheet_ope.html:106
#: templates/ishtar/blocks/window_tables/documents.html:7
msgid "Authors"
@@ -433,7 +443,7 @@ msgstr "Administration"
msgid "Account management"
msgstr "Gestion des comptes"
-#: ishtar_menu.py:34 models.py:776 views.py:1084
+#: ishtar_menu.py:34 models.py:776 views.py:1117
msgid "Global variables"
msgstr "Variables globales"
@@ -457,19 +467,19 @@ msgstr "Modification"
msgid "Merge"
msgstr "Fusion"
-#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1752 widgets.py:110
+#: ishtar_menu.py:61 ishtar_menu.py:88 models.py:1764 widgets.py:110
msgid "Delete"
msgstr "Suppression"
-#: ishtar_menu.py:96 models.py:1726
+#: ishtar_menu.py:96 models.py:1738
msgid "Imports"
msgstr "Imports"
-#: ishtar_menu.py:99 views.py:1092
+#: ishtar_menu.py:99 views.py:1125
msgid "New import"
msgstr "Nouvel import"
-#: ishtar_menu.py:103 views.py:1106
+#: ishtar_menu.py:103 views.py:1139
msgid "Current imports"
msgstr "Imports en cours"
@@ -501,7 +511,7 @@ msgstr "Identifiant textuel"
msgid "Available"
msgstr "Disponible"
-#: models.py:474 models.py:1506
+#: models.py:474 models.py:1518
msgid "Key"
msgstr "Clé"
@@ -517,7 +527,7 @@ msgstr "Dernier éditeur"
msgid "Creator"
msgstr "Créateur"
-#: models.py:687 models.py:2274
+#: models.py:687 models.py:2286
msgid "Order"
msgstr "Ordre"
@@ -537,7 +547,7 @@ msgstr "Nom de la variable"
msgid "Description of the variable"
msgstr "Description de la variable"
-#: models.py:772 models.py:1507
+#: models.py:772 models.py:1519
msgid "Value"
msgstr "Valeur"
@@ -571,7 +581,7 @@ msgstr "Patron de document"
msgid "Document templates"
msgstr "Patrons de documents"
-#: models.py:1031 models.py:1041 models.py:1710
+#: models.py:1031 models.py:1041 models.py:1722
msgid "State"
msgstr "État"
@@ -583,534 +593,530 @@ msgstr "Département"
msgid "Departments"
msgstr "Départements"
-#: models.py:1098
-msgid "Tel:"
+#: models.py:1100
+msgid "Tel: "
msgstr "Tél :"
-#: models.py:1100
+#: models.py:1104
msgid "Mobile: "
msgstr "Mobile :"
-#: models.py:1102
+#: models.py:1108
msgid "Email: "
msgstr "Courriel :"
-#: models.py:1107
+#: models.py:1113
msgid "Merge key"
msgstr "Clé de fusion"
-#: models.py:1162
+#: models.py:1174
msgid "Organization types"
msgstr "Types d'organisation"
-#: models.py:1168
+#: models.py:1180
msgid "Archaeological site"
msgstr "Entité Archéologique"
-#: models.py:1169
+#: models.py:1181
msgid "Parcels"
msgstr "Parcelles"
-#: models.py:1171
+#: models.py:1183
msgid "Operation source"
msgstr "Documentation de l'opération"
-#: models.py:1177 views.py:899 views.py:956
+#: models.py:1189 views.py:932 views.py:989
msgid "Archaeological files"
msgstr "Dossiers archéologiques"
-#: models.py:1184 views.py:902 views.py:966
+#: models.py:1196 views.py:935 views.py:999
msgid "Context records"
msgstr "Unité d'Enregistrement"
-#: models.py:1187 views.py:904 views.py:971
+#: models.py:1199 views.py:937 views.py:1004
msgid "Finds"
msgstr "Mobilier"
-#: models.py:1218
+#: models.py:1230
msgid "Slug"
msgstr "Identifiant texte"
-#: models.py:1222 templates/ishtar/dashboards/dashboard_main.html:26
+#: models.py:1234 templates/ishtar/dashboards/dashboard_main.html:26
msgid "Users"
msgstr "Utilisateurs"
-#: models.py:1224
+#: models.py:1236
msgid "Associated model"
msgstr "Modèle associé"
-#: models.py:1226
+#: models.py:1238
msgid "Is template"
msgstr "Est un patron"
-#: models.py:1227
+#: models.py:1239
msgid "Unicity keys (separator \";\")"
msgstr "Clés d'unicité (séparateur « ; »)"
-#: models.py:1231
+#: models.py:1243
msgid "Importer - Type"
msgstr "Importeur - Type"
-#: models.py:1232
+#: models.py:1244
msgid "Importer - Types"
msgstr "Importeur - Types"
-#: models.py:1322
+#: models.py:1334
msgid "Importer - Default"
msgstr "Importeur - Par défaut"
-#: models.py:1323
+#: models.py:1335
msgid "Importer - Defaults"
msgstr "Importeur - Par défaut"
-#: models.py:1358
+#: models.py:1370
msgid "Importer - Default value"
msgstr "Importeur - Valeur par défaut"
-#: models.py:1359
+#: models.py:1371
msgid "Importer - Default values"
msgstr "Importeur - Valeurs par défaut"
-#: models.py:1391
+#: models.py:1403
msgid "Column number"
msgstr "Numéro de colonne"
-#: models.py:1394
+#: models.py:1406
msgid "Required"
msgstr "Requis"
-#: models.py:1397
+#: models.py:1409
msgid "Importer - Column"
msgstr "Importeur - Colonne"
-#: models.py:1398
+#: models.py:1410
msgid "Importer - Columns"
msgstr "Importeur - Colonnes"
-#: models.py:1418
+#: models.py:1430
msgid "Field name"
msgstr "Nom du champ"
-#: models.py:1420 models.py:1454
+#: models.py:1432 models.py:1466
msgid "Force creation of new item"
msgstr "Forcer la création de nouveaux éléments"
-#: models.py:1422 models.py:1456
+#: models.py:1434 models.py:1468
msgid "Concatenate with existing"
msgstr "Concaténer avec l'existant"
-#: models.py:1424 models.py:1458
+#: models.py:1436 models.py:1470
msgid "Concatenate character"
msgstr "Caractère de concaténation"
-#: models.py:1428
+#: models.py:1440
msgid "Importer - Duplicate field"
msgstr "Importeur - Champ dupliqué"
-#: models.py:1429
+#: models.py:1441
msgid "Importer - Duplicate fields"
msgstr "Importeur - Champs dupliqués"
-#: models.py:1436
+#: models.py:1448
msgid "Regular expression"
msgstr "Expression régulière"
-#: models.py:1439
+#: models.py:1451
msgid "Importer - Regular expression"
msgstr "Importeur - Expression régulière"
-#: models.py:1440
+#: models.py:1452
msgid "Importer - Regular expressions"
msgstr "Importeur - Expressions régulières"
-#: models.py:1463
+#: models.py:1475
msgid "Importer - Target"
msgstr "Importeur - Cible"
-#: models.py:1464
+#: models.py:1476
msgid "Importer - Targets"
msgstr "Importeur - Cibles"
-#: models.py:1488 views.py:306
+#: models.py:1500 views.py:306
msgid "True"
msgstr "Oui"
-#: models.py:1489 views.py:308
+#: models.py:1501 views.py:308
msgid "False"
msgstr "Non"
-#: models.py:1508
+#: models.py:1520
msgid "Is set"
msgstr "Est défini"
-#: models.py:1515
+#: models.py:1527
msgid "Importer - Target key"
msgstr "Importeur - Rapprochement"
-#: models.py:1516
+#: models.py:1528
msgid "Importer - Targets keys"
msgstr "Importeur - Rapprochements"
-#: models.py:1567 models.py:2177 models.py:2188
+#: models.py:1579 models.py:2189 models.py:2200
msgid "Format"
msgstr "Format"
-#: models.py:1568 models.py:2278
+#: models.py:1580 models.py:2290
msgid "Operation type"
msgstr "Type d'opération"
-#: models.py:1569
+#: models.py:1581
msgid "Period"
msgstr "Périodes"
-#: models.py:1570
+#: models.py:1582
msgid "Unit"
msgstr "Unité"
-#: models.py:1571
+#: models.py:1583
msgid "Material"
msgstr "Matériau"
-#: models.py:1573
+#: models.py:1585
msgid "Conservatory state"
msgstr "État de conservation"
-#: models.py:1574
+#: models.py:1586
msgid "Preservation type"
msgstr "Type de conservation"
-#: models.py:1575
+#: models.py:1587
msgid "Object type"
msgstr "Type d'objet"
-#: models.py:1577
+#: models.py:1589
msgid "Identification type"
msgstr "Type d'identification"
-#: models.py:1578 models.py:2171
+#: models.py:1590 models.py:2183
msgid "Support type"
msgstr "Type de support"
-#: models.py:1584
+#: models.py:1596
msgid "Integer"
msgstr "Entier"
-#: models.py:1585
+#: models.py:1597
msgid "Float"
msgstr "Nombre à virgule"
-#: models.py:1586
+#: models.py:1598
msgid "String"
msgstr "Chaine de caractères"
-#: models.py:1587 templates/sheet_ope.html:86
+#: models.py:1599 templates/sheet_ope.html:86
msgid "Date"
msgstr "Date"
-#: models.py:1589 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83
+#: models.py:1601 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:1590
+#: models.py:1602
msgid "String to boolean"
msgstr "Chaîne de caractère vers booléen"
-#: models.py:1591
+#: models.py:1603
msgctxt "filesystem"
msgid "File"
msgstr "Fichier"
-#: models.py:1592
+#: models.py:1604
msgid "Unknow type"
msgstr "Type inconnu"
-#: models.py:1608
+#: models.py:1620
msgid "4 digit year. e.g.: \"2015\""
msgstr "Année à 4 chiffres. Exemple : « 2015 »"
-#: models.py:1609
+#: models.py:1621
msgid "4 digit year/month/day. e.g.: \"2015/02/04\""
msgstr "Année à 4 chiffres/mois/jour. Exemple : « 2015/02/04 »"
-#: models.py:1610
+#: models.py:1622
msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""
msgstr "Jour/mois/année à 4 chiffres. Exemple : « 04/02/2015 »"
-#: models.py:1620
+#: models.py:1632
msgid "Options"
msgstr "Options"
-#: models.py:1622
+#: models.py:1634
msgid "Split character(s)"
msgstr "Caractère de séparation"
-#: models.py:1626
+#: models.py:1638
msgid "Importer - Formater type"
msgstr "Importeur - Type de mise en forme"
-#: models.py:1627
+#: models.py:1639
msgid "Importer - Formater types"
msgstr "Importeur - Types de mise en forme"
-#: models.py:1674 templates/ishtar/dashboards/dashboard_main_detail.html:61
+#: models.py:1686 templates/ishtar/dashboards/dashboard_main_detail.html:61
msgid "Created"
msgstr "Créé"
-#: models.py:1675
+#: models.py:1687
msgid "Analyse in progress"
msgstr "Analyse en cours"
-#: models.py:1676
+#: models.py:1688
msgid "Analysed"
msgstr "Analysé"
-#: models.py:1677
+#: models.py:1689
msgid "Import pending"
msgstr "Import en attente"
-#: models.py:1678
+#: models.py:1690
msgid "Import in progress"
msgstr "Import en cours"
-#: models.py:1679
+#: models.py:1691
msgid "Finished with errors"
msgstr "Finis avec des erreurs"
-#: models.py:1680
+#: models.py:1692
msgid "Finished"
msgstr "Terminé"
-#: models.py:1681
+#: models.py:1693
msgid "Archived"
msgstr "Archivé"
-#: models.py:1693
+#: models.py:1705
msgid "Imported file"
msgstr "Fichier importé"
-#: models.py:1696
+#: models.py:1708
msgid "Associated images (zip file)"
msgstr "Images associées (fichier zip)"
-#: models.py:1698
+#: models.py:1710
msgid "Encoding"
msgstr "Codage"
-#: models.py:1700
+#: models.py:1712
msgid "Skip lines"
msgstr "Nombre de lignes d'entête"
-#: models.py:1701 templates/ishtar/import_list.html:47
+#: models.py:1713 templates/ishtar/import_list.html:47
msgid "Error file"
msgstr "Fichier erreur"
-#: models.py:1704
+#: models.py:1716
msgid "Result file"
msgstr "Fichier résultant"
-#: models.py:1707 templates/ishtar/import_list.html:53
+#: models.py:1719 templates/ishtar/import_list.html:53
msgid "Match file"
msgstr "Fichier de correspondance"
-#: models.py:1713
+#: models.py:1725
msgid "Conservative import"
msgstr "Import conservateur"
-#: models.py:1718
+#: models.py:1730
msgid "End date"
msgstr "Date de fin"
-#: models.py:1720
+#: models.py:1732
msgid "Seconds remaining"
msgstr "Secondes restantes"
-#: models.py:1725
+#: models.py:1737
msgid "Import"
msgstr "Import"
-#: models.py:1742
+#: models.py:1754
msgid "Analyse"
msgstr "Analyser"
-#: models.py:1744 models.py:1747
+#: models.py:1756 models.py:1759
msgid "Re-analyse"
msgstr "Analyser de nouveau "
-#: models.py:1745
+#: models.py:1757
msgid "Launch import"
msgstr "Lancer l'import"
-#: models.py:1748
+#: models.py:1760
msgid "Re-import"
msgstr "re-import"
-#: models.py:1749
+#: models.py:1761
msgid "Archive"
msgstr "Archiver"
-#: models.py:1751
+#: models.py:1763
msgid "Unarchive"
msgstr "Dé-archiver"
-#: models.py:1884
+#: models.py:1896
msgid "Organizations"
msgstr "Organisations"
-#: models.py:1886
+#: models.py:1898
msgid "Can view all Organization"
msgstr "Peut voir toutes les Organisations"
-#: models.py:1887
+#: models.py:1899
msgid "Can view own Organization"
msgstr "Peut voir sa propre Organisation"
-#: models.py:1888
+#: models.py:1900
msgid "Can add own Organization"
msgstr "Peut ajouter sa propre Organisation"
-#: models.py:1890
+#: models.py:1902
msgid "Can change own Organization"
msgstr "Peut changer sa propre Organisation"
-#: models.py:1892
+#: models.py:1904
msgid "Can delete own Organization"
msgstr "Peut supprimer sa propre Organisation"
-#: models.py:1926
+#: models.py:1939
msgid "Groups"
msgstr "Groupes"
-#: models.py:1931
+#: models.py:1944
msgid "Person types"
msgstr "Types d'individu"
-#: models.py:1938
+#: models.py:1951
msgid "Mr"
msgstr "M."
-#: models.py:1939
+#: models.py:1952
msgid "Miss"
msgstr "Mlle"
-#: models.py:1940
+#: models.py:1953
msgid "Mr and Miss"
msgstr "M. et Mme"
-#: models.py:1941
+#: models.py:1954
msgid "Mrs"
msgstr "Mme"
-#: models.py:1942
+#: models.py:1955
msgid "Doctor"
msgstr "Dr."
-#: models.py:1954 models.py:2001
+#: models.py:1967 models.py:2014
msgid "Types"
msgstr "Types"
-#: models.py:1957
+#: models.py:1970
msgid "Is attached to"
msgstr "Est rattaché à"
-#: models.py:1961
+#: models.py:1974
msgid "Persons"
msgstr "Individus"
-#: models.py:1963
+#: models.py:1976
msgid "Can view all Person"
msgstr "Peut voir toutes les Personnes"
-#: models.py:1964
+#: models.py:1977
msgid "Can view own Person"
msgstr "Peut voir sa propre Personne"
-#: models.py:1965
+#: models.py:1978
msgid "Can add own Person"
msgstr "Peut ajouter sa propre Personne"
-#: models.py:1966
+#: models.py:1979
msgid "Can change own Person"
msgstr "Peut changer sa propre Personne"
-#: models.py:1967
+#: models.py:1980
msgid "Can delete own Person"
msgstr "Peut supprimer sa propre Personne"
-#: models.py:2094
+#: models.py:2106
msgid "Ishtar user"
msgstr "Utilisateur d'Ishtar"
-#: models.py:2095
+#: models.py:2107
msgid "Ishtar users"
msgstr "Utilisateurs d'Ishtar"
-#: models.py:2140
+#: models.py:2152
msgid "Author types"
msgstr "Types d'auteur"
-#: models.py:2166
+#: models.py:2178
msgid "Source types"
msgstr "Types de source"
-#: models.py:2172
+#: models.py:2184
msgid "Support types"
msgstr "Types de support"
-#: models.py:2178
+#: models.py:2190
msgid "Formats"
msgstr "Formats"
-#: models.py:2183
+#: models.py:2195
msgid "External ID"
msgstr "Identifiant extern"
-#: models.py:2186
+#: models.py:2198
msgid "Support"
msgstr "Support"
-#: models.py:2190
+#: models.py:2202
msgid "Scale"
msgstr "Échelle"
-#: models.py:2204
+#: models.py:2216
msgid "Item number"
msgstr "Numéro d'élément"
-#: models.py:2205
+#: models.py:2217
msgid "Ref."
msgstr "Réf."
-#: models.py:2208
+#: models.py:2220
msgid "Internal ref."
msgstr "Réf. interne"
-#: models.py:2211
-msgid "Additional information"
-msgstr "Informations supplémentaires"
-
-#: models.py:2249
+#: models.py:2261
msgid "Surface (m2)"
msgstr "Surface (m2)"
-#: models.py:2250 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
+#: models.py:2262 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107
msgid "Localisation"
msgstr "Localisation"
-#: models.py:2275
+#: models.py:2287
msgid "Is preventive"
msgstr "Est du préventif"
-#: models.py:2279
+#: models.py:2291
msgid "Operation types"
msgstr "Types d'opération"
-#: models.py:2305
+#: models.py:2317
msgid "Preventive"
msgstr "Préventif"
-#: models.py:2306
+#: models.py:2318
msgid "Research"
msgstr "Recherche"
@@ -1142,34 +1148,34 @@ msgstr "Modification d'une organisation"
msgid "Organization deletion"
msgstr "Suppression d'une organisation"
-#: views.py:600 templates/base.html:80
+#: views.py:633 templates/base.html:80
#: templates/ishtar/sheet_organization.html:35
#: templatetags/link_to_window.py:16
msgid "Details"
msgstr "Détails"
-#: views.py:828 views.py:882
+#: views.py:861 views.py:915
msgid "Operation not permitted."
msgstr "Opération non permise."
-#: views.py:830
+#: views.py:863
#, python-format
msgid "New %s"
msgstr "Nouveau %s"
-#: views.py:900 views.py:960
+#: views.py:933 views.py:993
msgid "Operations"
msgstr "Opérations"
-#: views.py:1153 templates/ishtar/import_list.html:43
+#: views.py:1186 templates/ishtar/import_list.html:43
msgid "Link unmatched items"
msgstr "Associer les éléments non rapprochés"
-#: views.py:1168
+#: views.py:1201
msgid "Delete import"
msgstr "Suppression de l'import"
-#: views.py:1227 views.py:1243
+#: views.py:1260 views.py:1276
msgid "Corporation manager"
msgstr "Représentant de la personne morale"
@@ -1533,7 +1539,7 @@ msgstr "simple"
msgid "full"
msgstr "complet"
-#: templates/blocks/JQueryJqGrid.html:88
+#: templates/blocks/JQueryJqGrid.html:96
#: templates/ishtar/blocks/window_tables/dynamic_documents.html:42
msgid "An error as occured during search. Check your query fields."
msgstr ""