diff options
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 }} €{% if item.cost_by_m2 %}, ({{ item.cost_by_m2 }} €/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 "" |