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 ""  | 
