diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-04-03 17:30:58 +0200 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-04-03 17:30:58 +0200 | 
| commit | 95c2cf33370ac73cfab6963d54d2a5bc8728d7a8 (patch) | |
| tree | a9d415d60bb689c6af40c4427d40c9ca8177f3ca | |
| parent | 4f4ea768d9d72b96bcf826c525ed1b066191b11b (diff) | |
| parent | c50c0e4e5701b9926fbdad82b4ae54964a9283bb (diff) | |
| download | Ishtar-95c2cf33370ac73cfab6963d54d2a5bc8728d7a8.tar.bz2 Ishtar-95c2cf33370ac73cfab6963d54d2a5bc8728d7a8.zip | |
Merge branch 'master' into v0.9
35 files changed, 704 insertions, 549 deletions
| diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 8a74c7110..e01054c0d 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -590,11 +590,11 @@ msgstr ""  msgid "Document from this context record"  msgstr "" -#: templates/ishtar/sheet_contextrecord.html:129 +#: templates/ishtar/sheet_contextrecord.html:131  msgid "Finds"  msgstr "" -#: templates/ishtar/sheet_contextrecord.html:134 +#: templates/ishtar/sheet_contextrecord.html:136  msgid "Documents from associated finds"  msgstr "" diff --git a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html index f7296848b..ecd80e36f 100644 --- a/archaeological_context_records/templates/ishtar/sheet_contextrecord.html +++ b/archaeological_context_records/templates/ishtar/sheet_contextrecord.html @@ -124,14 +124,18 @@  {% endif %}  {% trans "Document from this context record" as cr_docs %} -{% if item.source.count %} {% table_document cr_docs item.source.all %}{% endif %} +{% if item.source.count %} +{% dynamic_table_document cr_docs 'context_records_docs' 'context_record' item.pk '' output %} +{% endif %}  {% trans "Finds" as finds %}  {% if item.base_finds.count %}  {% dynamic_table_document finds 'finds_for_ope' 'base_finds__context_record' item.pk 'TABLE_COLS_FOR_OPE' output %}  {% endif %} -{% trans "Documents from associated finds" as find_docs %} -{% if item.find_docs_q.count %} {% table_document find_docs item.find_docs_q.all %}{% endif %} +{% trans "Documents from associated finds" as finds_docs %} +{% if item.find_docs_q.count %} +{% dynamic_table_document finds_docs 'finds_docs' 'find__base_finds__context_record' item.pk '' output %} +{% endif %}  {% endblock %} diff --git a/archaeological_files/templates/ishtar/administrativeact_document.html b/archaeological_files/templates/ishtar/administrativeact_document.html index cdb2b45be..5d71519f0 100644 --- a/archaeological_files/templates/ishtar/administrativeact_document.html +++ b/archaeological_files/templates/ishtar/administrativeact_document.html @@ -10,7 +10,7 @@  <form action="." method="post">{% csrf_token %}  <div class='form'>  <table> -{{ search_form.as_table }} +{{ search_form.as_p }}  </table>  <h4>{% trans "Choose the type of document" %}</h4>  <table> diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 83a9e2da3..3cfe13ea9 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -36,7 +36,7 @@ import models  from ishtar_common import widgets  from ishtar_common.forms import FormSet, FloatField, \ -    get_form_selection, reverse_lazy, TableSelect, get_now +    get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm  from ishtar_common.forms_common import get_town_field, SourceSelect @@ -314,6 +314,11 @@ ResultFindFormSet = formset_factory(ResultFindForm, can_delete=True,  ResultFindFormSet.form_label = _(u"Resulting finds") +class FindDeletionForm(FinalForm): +    confirm_msg = " " +    confirm_end_msg = _(u"Would you like to delete this find?") + +  class UpstreamFindFormSelection(FindFormSelection):      form_label = _(u"Upstream find") diff --git a/archaeological_finds/ishtar_menu.py b/archaeological_finds/ishtar_menu.py index ea8cd2c1f..daa12a37b 100644 --- a/archaeological_finds/ishtar_menu.py +++ b/archaeological_finds/ishtar_menu.py @@ -50,6 +50,11 @@ MENU_SECTIONS = [               #     model=models.Treatment,               #     access_controls=['add_treatment',               #                      'add_own_treatment']), +             MenuItem( +                 'find_deletion', _(u"Deletion"), +                 model=models.Find, +                 access_controls=['change_find', +                                  'change_own_find']),               SectionItem(                   'find_source', _(u"Documentation"),                   childs=[ diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 6ff8bc10a..5705ef914 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -4,6 +4,7 @@  # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.  # Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata  # Valérie-Emma Leroux <emma@iggdrasil.net>, 2016. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata  msgid ""  msgstr "" @@ -212,39 +213,43 @@ msgstr ""  msgid "Resulting finds"  msgstr "" -#: forms.py:318 +#: forms.py:319 +msgid "Would you like to delete this find?" +msgstr "" + +#: forms.py:323  msgid "Upstream find"  msgstr "" -#: forms.py:325 +#: forms.py:330  msgid "Archaeological find search"  msgstr "" -#: forms.py:327 +#: forms.py:332  msgid "You should select an archaeological find."  msgstr "" -#: forms.py:332 +#: forms.py:337  msgid "Year of the operation"  msgstr "" -#: forms.py:334 +#: forms.py:339  msgid "Period of the archaelogical find"  msgstr "" -#: forms.py:336 +#: forms.py:341  msgid "Material type of the archaelogical find"  msgstr "" -#: forms.py:338 +#: forms.py:343  msgid "Description of the archaelogical find"  msgstr "" -#: forms.py:350 +#: forms.py:355  msgid "Documentation search"  msgstr "" -#: forms.py:352 +#: forms.py:357  msgid "You should select a document."  msgstr "" @@ -252,20 +257,20 @@ msgstr ""  msgid "Search"  msgstr "" -#: ishtar_menu.py:40 ishtar_menu.py:57 +#: ishtar_menu.py:40 ishtar_menu.py:62  msgid "Creation"  msgstr "" -#: ishtar_menu.py:45 ishtar_menu.py:62 +#: ishtar_menu.py:45 ishtar_menu.py:67  msgid "Modification"  msgstr "" -#: ishtar_menu.py:54 -msgid "Documentation" +#: ishtar_menu.py:54 ishtar_menu.py:72 +msgid "Deletion"  msgstr "" -#: ishtar_menu.py:67 -msgid "Deletion" +#: ishtar_menu.py:59 +msgid "Documentation"  msgstr ""  #: models.py:39 @@ -544,15 +549,19 @@ msgstr ""  msgid "Find modification"  msgstr "" -#: views.py:129 +#: views.py:126 +msgid "Find deletion" +msgstr "" + +#: views.py:135  msgid "Find: new source"  msgstr "" -#: views.py:137 +#: views.py:143  msgid "Find: source modification"  msgstr "" -#: views.py:143 +#: views.py:149  msgid "Find: source deletion"  msgstr "" diff --git a/archaeological_finds/models.py b/archaeological_finds/models.py index 9308be593..b52aabbf2 100644 --- a/archaeological_finds/models.py +++ b/archaeological_finds/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 diff --git a/archaeological_finds/urls.py b/archaeological_finds/urls.py index e38520329..acf9c46a6 100644 --- a/archaeological_finds/urls.py +++ b/archaeological_finds/urls.py @@ -38,6 +38,9 @@ urlpatterns = patterns(      url(r'find_modification/(?P<step>.+)?$',          check_rights(['change_find', 'change_own_find'])(              views.find_modification_wizard), name='find_modification'), +    url(r'find_deletion/(?P<step>.+)?$', +        check_rights(['change_find', 'change_own_find'])( +            views.find_deletion_wizard), name='find_deletion'),      url(r'find_modify/(?P<pk>.+)/$',          views.find_modify, name='find_modify'),      url(r'find_source_creation/(?P<step>.+)?$', diff --git a/archaeological_finds/views.py b/archaeological_finds/views.py index f09b3099b..afe6715a8 100644 --- a/archaeological_finds/views.py +++ b/archaeological_finds/views.py @@ -63,13 +63,13 @@ get_find = get_item(      models.Find, 'get_find', 'find',      reversed_bool_fields=['image__isnull'],      base_request={'downstream_treatment__isnull': True}, -    extra_request_keys=find_extra_keys) +    extra_request_keys=find_extra_keys.copy())  get_find_for_ope = get_item(      models.Find, 'get_find', 'find',      reversed_bool_fields=['image__isnull'],      base_request={'downstream_treatment__isnull': True}, -    extra_request_keys=find_extra_keys, +    extra_request_keys=find_extra_keys.copy(),      own_table_cols=models.Find.TABLE_COLS_FOR_OPE)  show_findsource = show_item(models.FindSource, 'findsource') @@ -120,6 +120,12 @@ def find_modify(request, pk):          reverse('find_modification',                  kwargs={'step': 'find-find_modification'})) +find_deletion_wizard = FindDeletionWizard.as_view([ +    ('selec-find_deletion', FindFormSelection), +    ('final-find_deletion', FindDeletionForm)], +    label=_(u"Find deletion"), +    url_name='find_deletion',) +  find_source_creation_wizard = FindSourceWizard.as_view([      ('selec-find_source_creation', SourceFindFormSelection), diff --git a/archaeological_finds/wizards.py b/archaeological_finds/wizards.py index 1dc6ff348..61636aa25 100644 --- a/archaeological_finds/wizards.py +++ b/archaeological_finds/wizards.py @@ -1,6 +1,6 @@  #!/usr/bin/env python  # -*- coding: utf-8 -*- -# Copyright (C) 2012-2013  É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 @@ -75,6 +75,14 @@ class FindModificationWizard(FindWizard):      filter_owns = {'selec-find_modification': ['pk']} +class FindDeletionWizard(DeletionWizard): +    model = models.Find +    fields = ['label', 'material_types', 'datings', 'find_number', +              'object_types', 'description', 'conservatory_state', 'mark', +              'preservation_to_considers', 'integrities', 'volume', +              'weight', 'length', 'width', 'height', 'diameter', 'comment'] + +  class TreatmentWizard(Wizard):      model = models.Treatment diff --git a/archaeological_operations/admin.py b/archaeological_operations/admin.py index 34e6da2ca..9f886bc62 100644 --- a/archaeological_operations/admin.py +++ b/archaeological_operations/admin.py @@ -30,6 +30,10 @@ class AdministrativeActAdmin(HistorizedObjectAdmin):                      'act_type')      list_filter = ('act_type',)      search_fields = ('year', 'index') +    readonly_fields = ('in_charge', 'operator', 'scientist', 'signatory', +                       'operation', 'associated_file', 'imports', +                       'departments_label', 'towns_label', +                       'history_modifier', 'history_creator')      model = models.AdministrativeAct  admin.site.register(models.AdministrativeAct, AdministrativeActAdmin) diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index 84af8f287..6ef3d5a21 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -235,15 +235,26 @@ class ParcelFormSet(FormSet):                  values[number] = {}              values[number][field] = value +            if field == 'parcel': +                if not value: +                    continue +                try: +                    parcel = models.Parcel.objects.get(pk=value) +                except models.Parcel.DoesNotExist: +                    continue +                ordering_keys[number] = [ +                    parcel.town, parcel.year, parcel.section, +                    parcel.parcel_number] +                continue              if number not in ordering_keys:                  ordering_keys[number] = ['', '', '', '']              if field == 'town':                  ordering_keys[number][0] = value -            if field == 'year': +            elif field == 'year':                  ordering_keys[number][1] = value -            if field == 'section': +            elif field == 'section':                  ordering_keys[number][2] = value -            if field == 'parcel_number': +            elif field == 'parcel_number':                  ordering_keys[number][3] = value          reverse_ordering_keys = {} @@ -365,6 +376,17 @@ class RecordRelationsForm(forms.Form):               for rel, opes in nc])          return rendered +    def clean(self): +        cleaned_data = self.cleaned_data +        if (cleaned_data.get('relation_type', None) and +                not cleaned_data.get('right_record', None)): +            raise forms.ValidationError(_(u"You should select an operation.")) +        if (not cleaned_data.get('relation_type', None) and +                cleaned_data.get('right_record', None)): +            raise forms.ValidationError( +                _(u"You should select a relation type.")) +        return cleaned_data +      @classmethod      def get_formated_datas(cls, cleaned_datas):          result, current, deleted = [], [], [] @@ -466,12 +488,12 @@ class OperationSelect(TableSelect):      report_processing = forms.ChoiceField(label=_(u"Report processing"),                                            choices=[])      virtual_operation = forms.NullBooleanField(label=_(u"Virtual operation")) -    # archaeological_sites = forms.IntegerField( -    #     label=_("Archaelogical site"), -    #     widget=widgets.JQueryAutoComplete( -    #         reverse_lazy('autocomplete-archaeologicalsite'), -    #         associated_model=models.ArchaeologicalSite), -    #     validators=[valid_id(models.ArchaeologicalSite)]) +    archaeological_sites = forms.IntegerField( +        label=_("Archaelogical site"), +        widget=widgets.JQueryAutoComplete( +            reverse_lazy('autocomplete-archaeologicalsite'), +            associated_model=models.ArchaeologicalSite), +        validators=[valid_id(models.ArchaeologicalSite)])      history_creator = forms.IntegerField(          label=_(u"Created by"),          widget=widgets.JQueryAutoComplete( @@ -670,7 +692,7 @@ class OperationFormGeneral(forms.Form):                           'operator': Organization,                           'operation_type': models.OperationType,                           '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", @@ -683,10 +705,6 @@ class OperationFormGeneral(forms.Form):                                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( @@ -719,9 +737,9 @@ class OperationFormGeneral(forms.Form):          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) +    # 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( @@ -768,10 +786,12 @@ class OperationFormGeneral(forms.Form):              models.ReportState.get_help()          self.fields['record_quality'].choices = \              [('', '--')] + list(models.QUALITY) -        # data POSTED -        if kwargs and kwargs['data'] \ -           and 'readonly' in self.fields['operation_code'].widget.attrs: -            self.fields['operation_code'].widget.attrs.pop('readonly') +        if 'operation_code' in self.fields: +            self.fields.keyOrder = list(self.fields.keyOrder) +            self.fields.keyOrder.pop(self.fields.keyOrder.index( +                'operation_code')) +            self.fields.keyOrder.insert(self.fields.keyOrder.index('year'), +                                        'operation_code')      def clean(self):          cleaned_data = self.cleaned_data @@ -787,7 +807,9 @@ class OperationFormGeneral(forms.Form):                      _(u"The excavation end date cannot be before the start "                        u"date."))          year = self.cleaned_data.get("year") -        operation_code = cleaned_data.get("operation_code") +        operation_code = cleaned_data.get("operation_code", None) +        if not operation_code: +            return self.cleaned_data          ops = models.Operation.objects.filter(year=year,                                                operation_code=operation_code)          # manage unique operation ID @@ -917,6 +939,32 @@ SelectedParcelGeneralFormSet = formset_factory(ParcelForm, can_delete=True,                                                 formset=ParcelFormSet)  SelectedParcelGeneralFormSet.form_label = _("Parcels") +""" +class SelectedParcelFormSet(forms.Form): +    form_label = _("Parcels") +    base_model = 'parcel' +    associated_models = {'parcel': models.Parcel} +    parcel = forms.MultipleChoiceField( +        label=_("Parcel"), required=False, choices=[], +        widget=forms.CheckboxSelectMultiple) + +    def __init__(self, *args, **kwargs): +        parcels = None +        print(kwargs) +        if 'data' in kwargs and 'PARCELS' in kwargs['data']: +            parcels = kwargs['data']['PARCELS'] +            # clean data if not "real" data +            prefix_value = kwargs['prefix'] + '-parcel' +            if not [k for k in kwargs['data'].keys() +                    if k.startswith(prefix_value) and kwargs['data'][k]]: +                kwargs['data'] = None +                if 'files' in kwargs: +                    kwargs.pop('files') +        super(SelectedParcelFormSet, self).__init__(*args, **kwargs) +        if parcels: +            self.fields['parcel'].choices = [('', '--')] + parcels +""" +  class RemainForm(forms.Form):      form_label = _("Remain types") @@ -1000,7 +1048,8 @@ class ArchaeologicalSiteBasicForm(forms.Form):              reverse_lazy('autocomplete-archaeologicalsite'),              associated_model=models.ArchaeologicalSite,              new=True), -        validators=[valid_id(models.ArchaeologicalSite)]) +        validators=[valid_id(models.ArchaeologicalSite)], +        required=False)  ArchaeologicalSiteFormSet = formset_factory(ArchaeologicalSiteBasicForm, diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index b78e36c6c..969d77335 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -4,15 +4,16 @@  # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.  # Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata  # Valérie-Emma Leroux <emma@iggdrasil.net>, 2016. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata  msgid ""  msgstr "" -#: forms.py:66 forms.py:333 forms.py:892 forms.py:914 forms.py:918 -#: models.py:780 templates/ishtar/blocks/window_tables/parcels.html:8 +#: forms.py:66 forms.py:333 forms.py:903 forms.py:925 forms.py:929 +#: models.py:782 templates/ishtar/blocks/window_tables/parcels.html:8  msgid "Parcels"  msgstr "" -#: forms.py:69 forms.py:185 forms.py:868 models.py:770 +#: forms.py:69 forms.py:185 forms.py:879 models.py:772  #: templates/ishtar/blocks/window_tables/parcels.html:5  #: templates/ishtar/dashboards/dashboard_operation.html:302  #: templates/ishtar/dashboards/dashboard_operation.html:315 @@ -21,18 +22,18 @@ msgstr ""  msgid "Town"  msgstr "" -#: forms.py:71 forms.py:411 forms.py:682 forms.py:1099 models.py:158 -#: models.py:587 models.py:768 +#: forms.py:71 forms.py:422 forms.py:693 forms.py:1111 models.py:158 +#: models.py:589 models.py:770  #: templates/ishtar/blocks/window_tables/parcels.html:6  msgid "Year"  msgstr "" -#: forms.py:74 models.py:771 +#: forms.py:74 models.py:773  #: templates/ishtar/blocks/window_tables/parcels.html:7  msgid "Section"  msgstr "" -#: forms.py:77 models.py:772 +#: forms.py:77 models.py:774  msgid "Parcel number"  msgstr "" @@ -64,8 +65,8 @@ msgstr ""  msgid "Relation type"  msgstr "" -#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:488 models.py:513 -#: models.py:528 models.py:579 models.py:767 wizards.py:338 wizards.py:349 +#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515 +#: models.py:530 models.py:581 models.py:769 wizards.py:338 wizards.py:349  #: templates/ishtar/sheet_operation.html:6  msgid "Operation"  msgstr "" @@ -74,27 +75,35 @@ msgstr ""  msgid ":"  msgstr "" -#: forms.py:395 +#: forms.py:372 forms.py:548 forms.py:1083 +msgid "You should select an operation." +msgstr "" + +#: forms.py:376 +msgid "You should select a relation type." +msgstr "" + +#: forms.py:406  msgid "Current relations"  msgstr "" -#: forms.py:397 +#: forms.py:408  msgid "Deleted relations"  msgstr "" -#: forms.py:401 templates/ishtar/sheet_operation.html:115 +#: forms.py:412 templates/ishtar/sheet_operation.html:115  msgid "Relations"  msgstr "" -#: forms.py:412 +#: forms.py:423  msgid "Numeric reference"  msgstr "" -#: forms.py:417 forms.py:1109 +#: forms.py:428 forms.py:1121  msgid "Parcel (section/number)"  msgstr "" -#: forms.py:420 forms.py:1112 models.py:489 +#: forms.py:431 forms.py:1124 models.py:491  #: templates/ishtar/dashboards/dashboard_operation.html:273  #: templates/ishtar/dashboards/dashboard_operation.html:286  #: templates/ishtar/dashboards/dashboard_operation.html:453 @@ -102,397 +111,389 @@ msgstr ""  msgid "Department"  msgstr "" -#: forms.py:421 forms.py:953 models.py:77 +#: forms.py:432 forms.py:964 models.py:77  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:6  msgid "Name"  msgstr "" -#: forms.py:423 forms.py:604 forms.py:680 forms.py:1076 models.py:166 +#: forms.py:434 forms.py:615 forms.py:691 forms.py:1088 models.py:166  msgid "Operation type"  msgstr "" -#: forms.py:425 +#: forms.py:436  msgid "Is open?"  msgstr "" -#: forms.py:434 forms.py:710 models.py:155 +#: forms.py:445 forms.py:717 models.py:155  msgid "In charge"  msgstr "" -#: forms.py:441 models.py:573 +#: forms.py:452 models.py:575  msgid "Scientist in charge"  msgstr "" -#: forms.py:443 forms.py:606 forms.py:701 models.py:153 +#: forms.py:454 forms.py:617 forms.py:708 models.py:153  msgid "Operator"  msgstr "" -#: forms.py:450 forms.py:958 models.py:81 models.py:168 +#: forms.py:461 forms.py:969 models.py:81 models.py:168  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8  msgid "Remains"  msgstr "" -#: forms.py:451 forms.py:937 forms.py:955 models.py:79 models.py:173 +#: forms.py:462 forms.py:948 forms.py:966 models.py:79 models.py:173  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7  msgid "Periods"  msgstr "" -#: forms.py:452 +#: forms.py:463  msgid "Started before"  msgstr "" -#: forms.py:454 +#: forms.py:465  msgid "Started after"  msgstr "" -#: forms.py:456 +#: forms.py:467  msgid "Ended before"  msgstr "" -#: forms.py:458 +#: forms.py:469  msgid "Ended after"  msgstr "" -#: forms.py:461 +#: forms.py:472  msgid "Search within relations"  msgstr "" -#: forms.py:463 forms.py:752 models.py:219 +#: forms.py:474 forms.py:759 models.py:219  msgid "Comment"  msgstr "" -#: forms.py:464 +#: forms.py:475  msgid "Abstract (full text search)"  msgstr "" -#: forms.py:465 forms.py:754 models.py:231 +#: forms.py:476 forms.py:761 models.py:231  msgid "Record quality"  msgstr "" -#: forms.py:466 forms.py:733 models.py:185 +#: forms.py:477 forms.py:740 models.py:185  msgid "Report processing"  msgstr "" -#: forms.py:468 forms.py:757 models.py:226 +#: forms.py:479 forms.py:764 models.py:226  msgid "Virtual operation"  msgstr "" -#: forms.py:476 forms.py:1116 +#: forms.py:481 forms.py:1009 +msgid "Archaelogical site" +msgstr "" + +#: forms.py:487 forms.py:1128  msgid "Created by"  msgstr "" -#: forms.py:482 forms.py:1122 +#: forms.py:493 forms.py:1134  msgid "Modified by"  msgstr "" -#: forms.py:524 forms.py:1069 views.py:231 +#: forms.py:535 forms.py:1081 views.py:231  msgid "Operation search"  msgstr "" -#: forms.py:537 forms.py:1071 -msgid "You should select an operation." -msgstr "" - -#: forms.py:568 +#: forms.py:579  msgid "Associated file"  msgstr "" -#: forms.py:572 forms.py:816 models.py:584 wizards.py:76 +#: forms.py:583 forms.py:827 models.py:586 wizards.py:76  msgid "Archaelogical file"  msgstr "" -#: forms.py:579 forms.py:581 models.py:233 +#: forms.py:590 forms.py:592 models.py:233  msgid "Abstract"  msgstr "" -#: forms.py:584 +#: forms.py:595  msgid "months"  msgstr "" -#: forms.py:584 +#: forms.py:595  msgid "years"  msgstr "" -#: forms.py:586 models.py:139 +#: forms.py:597 models.py:139  msgid "Creation date"  msgstr "" -#: forms.py:587 +#: forms.py:598  msgid "Start of field work"  msgstr "" -#: forms.py:589 +#: forms.py:600  msgid "All"  msgstr "" -#: forms.py:590 +#: forms.py:601  msgid "Preventive"  msgstr "" -#: forms.py:591 +#: forms.py:602  msgid "Research"  msgstr "" -#: forms.py:595 +#: forms.py:606  msgid "Slicing"  msgstr "" -#: forms.py:598 +#: forms.py:609  msgid "Department detail"  msgstr "" -#: forms.py:600 +#: forms.py:611  msgid "Date get from"  msgstr "" -#: forms.py:602 +#: forms.py:613  msgid "Preventive/Research"  msgstr "" -#: forms.py:608 +#: forms.py:619  msgid "Date after"  msgstr "" -#: forms.py:610 +#: forms.py:621  msgid "Date before"  msgstr "" -#: forms.py:612 +#: forms.py:623  msgid "With reports"  msgstr "" -#: forms.py:613 +#: forms.py:624  msgid "With finds"  msgstr "" -#: forms.py:665 forms.py:1169 templates/ishtar/sheet_administrativeact.html:11 +#: forms.py:676 forms.py:1181 templates/ishtar/sheet_administrativeact.html:11  #: templates/ishtar/sheet_operation.html:32  msgid "General"  msgstr "" -#: forms.py:678 models.py:218 +#: forms.py:689 models.py:218  msgid "Generic name"  msgstr "" -#: forms.py:687 forms.py:812 models.py:159 models.py:368 -msgid "Operation code" -msgstr "" - -#: forms.py:691 +#: forms.py:698  msgid "Head scientist"  msgstr "" -#: forms.py:707 models.py:217 +#: forms.py:714 models.py:217  msgid "Operator reference"  msgstr "" -#: forms.py:719 +#: forms.py:726  msgid "Total surface (m2)"  msgstr "" -#: forms.py:724 -msgid "Associated archaeological sites" -msgstr "" - -#: forms.py:726 models.py:49 models.py:142 models.py:938 +#: forms.py:733 models.py:49 models.py:142 models.py:940  msgid "Start date"  msgstr "" -#: forms.py:728 models.py:144 +#: forms.py:735 models.py:144  msgid "Excavation end date"  msgstr "" -#: forms.py:731 models.py:145 +#: forms.py:738 models.py:145  msgid "Report delivery date"  msgstr "" -#: forms.py:782 +#: forms.py:791  msgid ""  "If you want to set an excavation end date you have to provide a start date."  msgstr "" -#: forms.py:787 +#: forms.py:796  msgid "The excavation end date cannot be before the start date."  msgstr "" -#: forms.py:802 +#: forms.py:813  #, python-format  msgid ""  "Operation code already exist for year: %(year)d - use a value bigger than "  "%(last_val)d"  msgstr "" -#: forms.py:806 +#: forms.py:817  msgid "Bad operation code"  msgstr "" -#: forms.py:838 +#: forms.py:823 models.py:159 models.py:368 +msgid "Operation code" +msgstr "" + +#: forms.py:849  msgid "Preventive informations - excavation"  msgstr "" -#: forms.py:839 models.py:171 +#: forms.py:850 models.py:171  #: templates/ishtar/dashboards/dashboard_operation.html:495  msgid "Cost (euros)"  msgstr "" -#: forms.py:840 models.py:176 +#: forms.py:851 models.py:176  msgid "Scheduled man-days"  msgstr "" -#: forms.py:842 models.py:179 +#: forms.py:853 models.py:179  msgid "Optional man-days"  msgstr "" -#: forms.py:844 models.py:182 +#: forms.py:855 models.py:182  msgid "Effective man-days"  msgstr "" -#: forms.py:854 +#: forms.py:865  msgid "Preventive informations - diagnostic"  msgstr "" -#: forms.py:857 models.py:201 +#: forms.py:868 models.py:201  msgid "Prescription on zoning"  msgstr "" -#: forms.py:859 models.py:204 +#: forms.py:870 models.py:204  msgid "Prescription on large area"  msgstr "" -#: forms.py:862 models.py:206 +#: forms.py:873 models.py:206  msgid "Prescription on geoarchaeological context"  msgstr "" -#: forms.py:866 forms.py:888 models.py:170 models.py:597 +#: forms.py:877 forms.py:899 models.py:170 models.py:599  msgid "Towns"  msgstr "" -#: forms.py:895 models.py:779 models.py:936 +#: forms.py:906 models.py:781 models.py:938  msgid "Parcel"  msgstr "" -#: forms.py:922 models.py:43 +#: forms.py:933 models.py:43  msgid "Remain types"  msgstr "" -#: forms.py:926 models.py:42 +#: forms.py:937 models.py:42  msgid "Remain type"  msgstr "" -#: forms.py:941 +#: forms.py:952  msgid "Period"  msgstr "" -#: forms.py:952 models.py:76 +#: forms.py:963 models.py:76  msgid "Reference"  msgstr "" -#: forms.py:977 +#: forms.py:988  msgid "This reference already exists."  msgstr "" -#: forms.py:994 models.py:85 +#: forms.py:1005 models.py:85  msgid "Archaeological site"  msgstr "" -#: forms.py:998 -msgid "Archaelogical site" -msgstr "" - -#: forms.py:1008 models.py:86 models.py:223 +#: forms.py:1020 models.py:86 models.py:223  #: templates/ishtar/sheet_operation.html:126  msgid "Archaeological sites"  msgstr "" -#: forms.py:1012 +#: forms.py:1024  msgid "Associated archaelogical sites"  msgstr "" -#: forms.py:1018 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1030 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92  msgid "Search"  msgstr "" -#: forms.py:1023 +#: forms.py:1035  msgid "Would you like to close this operation?"  msgstr "" -#: forms.py:1028 +#: forms.py:1040  msgid "Would you like to delete this operation?"  msgstr "" -#: forms.py:1037 forms.py:1100 models.py:515 models.py:564 +#: forms.py:1049 forms.py:1112 models.py:517 models.py:566  msgid "Index"  msgstr "" -#: forms.py:1063 +#: forms.py:1075  #, python-format  msgid ""  "Index already exists for operation: %(operation)s - use a value bigger than "  "%(last_val)d"  msgstr "" -#: forms.py:1075 +#: forms.py:1087  msgid "Operation's town"  msgstr "" -#: forms.py:1078 +#: forms.py:1090  msgid "Operation's year"  msgstr "" -#: forms.py:1089 +#: forms.py:1101  msgid "Documentation search"  msgstr "" -#: forms.py:1091 +#: forms.py:1103  msgid "You should select a document."  msgstr "" -#: forms.py:1106 forms.py:1172 models.py:539 models.py:558 +#: forms.py:1118 forms.py:1184 models.py:541 models.py:560  msgid "Act type"  msgstr "" -#: forms.py:1107 forms.py:1260 +#: forms.py:1119 forms.py:1272  msgid "Indexed?"  msgstr "" -#: forms.py:1113 forms.py:1177 models.py:588 +#: forms.py:1125 forms.py:1189 models.py:590  #: templates/ishtar/blocks/window_tables/administrativacts.html:8  msgid "Object"  msgstr "" -#: forms.py:1149 views.py:373 +#: forms.py:1161 views.py:373  msgid "Administrative act search"  msgstr "" -#: forms.py:1164 forms.py:1218 forms.py:1285 +#: forms.py:1176 forms.py:1230 forms.py:1297  msgid "You should select an administrative act."  msgstr "" -#: forms.py:1180 models.py:585 +#: forms.py:1192 models.py:587  msgid "Signature date"  msgstr "" -#: forms.py:1195 +#: forms.py:1207  msgid "Would you like to delete this administrative act?"  msgstr "" -#: forms.py:1200 +#: forms.py:1212  msgid "Template"  msgstr "" -#: forms.py:1224 forms.py:1228 +#: forms.py:1236 forms.py:1240  msgid "This document is not intended for this type of act."  msgstr "" -#: forms.py:1246 +#: forms.py:1258  msgid "Doc generation"  msgstr "" -#: forms.py:1248 +#: forms.py:1260  msgid "Generate the associated doc?"  msgstr "" -#: forms.py:1269 ishtar_menu.py:121 views.py:407 +#: forms.py:1281 ishtar_menu.py:121 views.py:407  msgctxt "admin act register"  msgid "Register"  msgstr "" @@ -513,7 +514,7 @@ msgstr ""  msgid "Deletion"  msgstr "" -#: ishtar_menu.py:58 models.py:604 +#: ishtar_menu.py:58 models.py:606  #: templates/ishtar/sheet_administrativeact.html:6  msgid "Administrative act"  msgstr "" @@ -547,11 +548,11 @@ msgstr ""  msgid "Operations"  msgstr "" -#: models.py:48 models.py:64 models.py:1400 +#: models.py:48 models.py:64 models.py:1402  msgid "Order"  msgstr "" -#: models.py:50 models.py:939 +#: models.py:50 models.py:941  msgid "End date"  msgstr "" @@ -615,7 +616,7 @@ msgstr ""  msgid "In charge scientist"  msgstr "" -#: models.py:163 models.py:763 +#: models.py:163 models.py:765  msgid "File"  msgstr "" @@ -664,7 +665,7 @@ msgstr ""  msgid "Intercommunal"  msgstr "" -#: models.py:351 models.py:527 +#: models.py:351 models.py:529  msgid "Archaeological file"  msgstr "" @@ -676,189 +677,189 @@ msgstr ""  msgid "This operation code already exists for this year"  msgstr "" -#: models.py:459 +#: models.py:461  msgid "Inverse relation"  msgstr "" -#: models.py:463 +#: models.py:465  msgid "Operation relation type"  msgstr "" -#: models.py:464 +#: models.py:466  msgid "Operation relation types"  msgstr "" -#: models.py:477 +#: models.py:479  msgid "Operation record relation"  msgstr "" -#: models.py:478 +#: models.py:480  msgid "Operation record relations"  msgstr "" -#: models.py:499 +#: models.py:501  msgid "Operation documentation"  msgstr "" -#: models.py:500 +#: models.py:502  msgid "Operation documentations"  msgstr "" -#: models.py:503 +#: models.py:505  msgid "Can view all Operation sources"  msgstr "" -#: models.py:505 +#: models.py:507  msgid "Can view own Operation source"  msgstr "" -#: models.py:507 +#: models.py:509  msgid "Can add own Operation source"  msgstr "" -#: models.py:509 +#: models.py:511  msgid "Can change own Operation source"  msgstr "" -#: models.py:511 +#: models.py:513  msgid "Can delete own Operation source"  msgstr "" -#: models.py:530 +#: models.py:532  msgid "Intended to"  msgstr "" -#: models.py:532 +#: models.py:534  msgid "Code"  msgstr "" -#: models.py:535 +#: models.py:537  msgid "Associated template"  msgstr "" -#: models.py:536 +#: models.py:538  msgid "Indexed"  msgstr "" -#: models.py:540 +#: models.py:542  msgid "Act types"  msgstr "" -#: models.py:562 +#: models.py:564  msgid "Person in charge of the operation"  msgstr "" -#: models.py:568 +#: models.py:570  msgid "Archaeological preventive operator"  msgstr "" -#: models.py:576 +#: models.py:578  msgid "Signatory"  msgstr "" -#: models.py:594 +#: models.py:596  msgid "Departments"  msgstr "" -#: models.py:595 +#: models.py:597  msgid "Cached values get from associated departments"  msgstr "" -#: models.py:598 +#: models.py:600  msgid "Cached values get from associated towns"  msgstr "" -#: models.py:605 templates/ishtar/sheet_operation.html:134 +#: models.py:607 templates/ishtar/sheet_operation.html:134  msgid "Administrative acts"  msgstr "" -#: models.py:608 +#: models.py:610  msgid "Can view all Administrative acts"  msgstr "" -#: models.py:610 +#: models.py:612  msgid "Can view own Administrative act"  msgstr "" -#: models.py:612 +#: models.py:614  msgid "Can add own Administrative act"  msgstr "" -#: models.py:614 +#: models.py:616  msgid "Can change own Administrative act"  msgstr "" -#: models.py:616 +#: models.py:618  msgid "Can delete own Administrative act"  msgstr "" -#: models.py:625 +#: models.py:627  #: templates/ishtar/blocks/window_tables/administrativacts.html:5  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:5  msgid "Ref."  msgstr "" -#: models.py:708 +#: models.py:710  msgid "This index already exists for this year"  msgstr "" -#: models.py:774 +#: models.py:776  msgid "External ID"  msgstr "" -#: models.py:776 +#: models.py:778  msgid "Address - Locality"  msgstr "" -#: models.py:934 +#: models.py:936  msgid "Owner"  msgstr "" -#: models.py:942 +#: models.py:944  msgid "Parcel owner"  msgstr "" -#: models.py:943 +#: models.py:945  msgid "Parcel owners"  msgstr "" -#: models.py:969 +#: models.py:971  msgid "Recorded"  msgstr "" -#: models.py:970 +#: models.py:972  msgid "Effective"  msgstr "" -#: models.py:971 +#: models.py:973  msgid "Active"  msgstr "" -#: models.py:972 +#: models.py:974  msgid "Field completed"  msgstr "" -#: models.py:973 +#: models.py:975  msgid "Associated report"  msgstr "" -#: models.py:974 +#: models.py:976  msgid "Closed"  msgstr "" -#: models.py:975 +#: models.py:977  msgid "Documented and closed"  msgstr "" -#: models.py:1401 +#: models.py:1403  msgid "Is preventive"  msgstr "" -#: models.py:1404 +#: models.py:1406  msgid "Operation type old"  msgstr "" -#: models.py:1405 +#: models.py:1407  msgid "Operation types old"  msgstr "" @@ -1110,10 +1111,18 @@ msgstr ""  msgid "Context records"  msgstr "" -#: templates/ishtar/sheet_operation.html:155 +#: templates/ishtar/sheet_operation.html:148 +msgid "Documents from associated context records" +msgstr "" + +#: templates/ishtar/sheet_operation.html:153  msgid "Finds"  msgstr "" +#: templates/ishtar/sheet_operation.html:158 +msgid "Documents from associated finds" +msgstr "" +  #: templates/ishtar/sheet_operationsource.html:6  msgid "Operation source"  msgstr "" diff --git a/archaeological_operations/models.py b/archaeological_operations/models.py index 945af21a4..d0a010d6a 100644 --- a/archaeological_operations/models.py +++ b/archaeological_operations/models.py @@ -427,6 +427,8 @@ class Operation(BaseHistorizedItem, OwnPerms, ValueGetter, ShortMenuItem,          # put a default year if start_date is defined          if self.start_date and not self.year:              self.year = self.start_date.year +        if self.operation_code is None: +            self.operation_code = self.get_available_operation_code(self.year)          return super(Operation, self).save(*args, **kwargs)  m2m_changed.connect(cached_label_changed, sender=Operation.towns.through) diff --git a/archaeological_operations/templates/ishtar/sheet_operation.html b/archaeological_operations/templates/ishtar/sheet_operation.html index 14210046b..d1cd1578c 100644 --- a/archaeological_operations/templates/ishtar/sheet_operation.html +++ b/archaeological_operations/templates/ishtar/sheet_operation.html @@ -145,21 +145,19 @@  {% dynamic_table_document context_records 'context_records_for_ope' 'operation' item.pk 'TABLE_COLS_FOR_OPE' output %}  {% endif %} -{% comment %}  {% trans "Documents from associated context records" as cr_docs %}  {% if item.context_record_docs_q.count %}  {% dynamic_table_document cr_docs 'context_records_docs' 'context_record__operation' item.pk '' output %}  {% endif %} -{% endcomment %}  {% trans "Finds" as finds %}  {% if item.finds %}  {% dynamic_table_document finds 'finds_for_ope' 'base_finds__context_record__operation' item.pk 'TABLE_COLS_FOR_OPE' output %}  {% endif %} -{% comment %} -{% trans "Documents from associated finds" as find_docs %} -{% if item.find_docs_q.count %} {% table_document find_docs item.find_docs_q.all %}{% endif %} -{% endcomment %} +{% trans "Documents from associated finds" as finds_docs %} +{% if item.find_docs_q.count %} +{% dynamic_table_document finds_docs 'finds_docs' 'find__base_finds__context_record__operation' item.pk '' output %} +{% endif %}  {% endblock %} diff --git a/archaeological_warehouse/ishtar_menu.py b/archaeological_warehouse/ishtar_menu.py index f9f0daf33..2da50e7ce 100644 --- a/archaeological_warehouse/ishtar_menu.py +++ b/archaeological_warehouse/ishtar_menu.py @@ -27,13 +27,13 @@ from archaeological_finds.models import Treatment  MENU_SECTIONS = [ -    (60, SectionItem('find_management', _(u"Find"), -     profile_restriction='warehouse', -     childs=[ -        MenuItem('warehouse_packaging', _(u"Packaging"), -                 model=Treatment, -                 access_controls=['add_treatment', 'add_own_treatment']), -    ])), +    #    (60, SectionItem('find_management', _(u"Find"), +    #     profile_restriction='warehouse', +    #     childs=[ +    #        MenuItem('warehouse_packaging', _(u"Packaging"), +    #                 model=Treatment, +    #                 access_controls=['add_treatment', 'add_own_treatment']), +    #    ])),  ]  """      (60, SectionItem('warehouse', _(u"Warehouse"), diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 99f03fed7..cb0992a12 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -74,7 +74,7 @@ msgstr ""  msgid "Add a new container"  msgstr "" -#: forms.py:132 ishtar_menu.py:33 views.py:94 +#: forms.py:132 views.py:94  msgid "Packaging"  msgstr "" @@ -90,10 +90,6 @@ msgstr ""  msgid "Packaged finds"  msgstr "" -#: ishtar_menu.py:30 -msgid "Find" -msgstr "" -  #: models.py:31  msgid "Warehouse types"  msgstr "" diff --git a/example_project/settings.py b/example_project/settings.py index 98eb14e9e..88738b479 100644 --- a/example_project/settings.py +++ b/example_project/settings.py @@ -237,6 +237,8 @@ JQUERY_UI_URL = STATIC_URL + "js/jquery-ui/"  if DEBUG_TOOLBAR: +    if '..' not in sys.path: +        sys.path.insert(0, '..')      global DEBUG_TOOLBAR_PANELS      global DEBUG_TOOLBAR_CONFIG      MIDDLEWARE_CLASSES += ['debug_toolbar.middleware.DebugToolbarMiddleware'] diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index 5863baab2..ae72d173f 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -223,8 +223,8 @@ class BaseOrganizationForm(forms.ModelForm):  class PersonSelect(TableSelect): -    name = forms.CharField(label=_(u"Name"), max_length=30) -    surname = forms.CharField(label=_(u"Surname"), max_length=20) +    name = forms.CharField(label=_(u"Name"), max_length=200) +    surname = forms.CharField(label=_(u"Surname"), max_length=50)      email = forms.CharField(label=_(u"Email"), max_length=75)      person_types = forms.ChoiceField(label=_(u"Type"), choices=[])      attached_to = forms.IntegerField( @@ -254,11 +254,11 @@ class SimplePersonForm(NewItemForm):      form_label = _("Identity")      associated_models = {'attached_to': models.Organization}      title = forms.ChoiceField(label=_("Title"), choices=models.Person.TYPE) -    surname = forms.CharField(label=_(u"Surname"), max_length=20, +    surname = forms.CharField(label=_(u"Surname"), max_length=50,                                validators=[name_validator]) -    name = forms.CharField(label=_(u"Name"), max_length=30, +    name = forms.CharField(label=_(u"Name"), max_length=200,                             validators=[name_validator]) -    raw_name = forms.CharField(label=_(u"Raw name"), max_length=255, +    raw_name = forms.CharField(label=_(u"Raw name"), max_length=300,                                 required=False)      address = forms.CharField(label=_(u"Address"), widget=forms.Textarea,                                required=False) diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 6f2d58879..0610c5e95 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -422,7 +422,7 @@ msgstr ""  msgid "Account management"  msgstr "" -#: ishtar_menu.py:34 models.py:853 views.py:1115 +#: ishtar_menu.py:34 models.py:853 views.py:1120  msgid "Global variables"  msgstr "" @@ -454,11 +454,11 @@ msgstr ""  msgid "Imports"  msgstr "" -#: ishtar_menu.py:99 views.py:1123 +#: ishtar_menu.py:99 views.py:1128  msgid "New import"  msgstr "" -#: ishtar_menu.py:103 views.py:1137 +#: ishtar_menu.py:103 views.py:1142  msgid "Current imports"  msgstr "" @@ -644,15 +644,15 @@ msgstr ""  msgid "Operation source"  msgstr "" -#: models.py:1259 views.py:940 views.py:991 +#: models.py:1259 views.py:945 views.py:996  msgid "Archaeological files"  msgstr "" -#: models.py:1261 views.py:943 views.py:999 +#: models.py:1261 views.py:948 views.py:1004  msgid "Context records"  msgstr "" -#: models.py:1263 views.py:945 views.py:1002 +#: models.py:1263 views.py:950 views.py:1007  msgid "Finds"  msgstr "" @@ -1163,34 +1163,34 @@ msgstr ""  msgid "Organization deletion"  msgstr "" -#: views.py:637 templates/base.html:80 +#: views.py:642 templates/base.html:80  #: templates/ishtar/sheet_organization.html:35  #: templatetags/link_to_window.py:16  msgid "Details"  msgstr "" -#: views.py:868 views.py:922 +#: views.py:873 views.py:927  msgid "Operation not permitted."  msgstr "" -#: views.py:870 +#: views.py:875  #, python-format  msgid "New %s"  msgstr "" -#: views.py:941 views.py:995 +#: views.py:946 views.py:1000  msgid "Operations"  msgstr "" -#: views.py:1184 templates/ishtar/import_list.html:43 +#: views.py:1189 templates/ishtar/import_list.html:43  msgid "Link unmatched items"  msgstr "" -#: views.py:1199 +#: views.py:1204  msgid "Delete import"  msgstr "" -#: views.py:1258 views.py:1274 +#: views.py:1263 views.py:1279  msgid "Corporation manager"  msgstr "" @@ -1198,11 +1198,11 @@ msgstr ""  msgid "Search..."  msgstr "" -#: widgets.py:602 templatetags/window_tables.py:80 +#: widgets.py:602 templatetags/window_tables.py:68  msgid "No results"  msgstr "" -#: widgets.py:603 templatetags/window_tables.py:81 +#: widgets.py:603 templatetags/window_tables.py:69  msgid "Loading..."  msgstr "" @@ -1571,7 +1571,11 @@ msgstr ""  msgid "."  msgstr "" -#: templates/blocks/form_flex_snippet.html:10 +#: templates/blocks/form_flex_snippet.html:12 +msgid "Show / hide advanced search" +msgstr "" + +#: templates/blocks/form_flex_snippet.html:18  #: templates/blocks/form_snippet.html:9  msgid "Help"  msgstr "" diff --git a/ishtar_common/static/js/ishtar.js b/ishtar_common/static/js/ishtar.js index c50d050ef..9af5cf2b0 100644 --- a/ishtar_common/static/js/ishtar.js +++ b/ishtar_common/static/js/ishtar.js @@ -41,6 +41,16 @@ $(document).ready(function(){                 {item:'operation', value:$("#current_operation").val()}          );      }); +    $("#current_contextrecord").change(function(){ +        $.post('/' + url_path + 'update-current-item/', +               {item:'contextrecord', value:$("#current_contextrecord").val()} +        ); +    }); +    $("#current_find").change(function(){ +        $.post('/' + url_path + 'update-current-item/', +               {item:'find', value:$("#current_find").val()} +        ); +    });      if ($(document).height() < 1.5*$(window).height()){          $('#to_bottom_arrow').hide();          $('#to_top_arrow').hide(); @@ -177,3 +187,11 @@ function closeAllWindows(){      jQuery("#window > div").hide("slow");      jQuery("#window").html("");  } + +function show_hide_flex(id){ +    if ($(id).is(':hidden')){ +        $(id).css('display', 'flex'); +    } else { +        $(id).hide(); +    } +} diff --git a/ishtar_common/static/media/style.css b/ishtar_common/static/media/style.css index 2a0079706..4467a0639 100644 --- a/ishtar_common/static/media/style.css +++ b/ishtar_common/static/media/style.css @@ -167,7 +167,7 @@ button, input[type=submit], button.submit{      border:1px solid #FFF;      margin:6px;      font-size:0.9em; -    padding:4px 3px; +    padding:4px 8px;      border-radius:4px;      -moz-border-radius:4px;      -webkit-border-radius:4px; @@ -179,6 +179,18 @@ button:hover, input[type=submit]:hover{      border:1px solid #922;  } +button.ui-widget-header { +    font-weight: normal; +    border:1px solid #f8b950; +    background: #f8b950; +} + +button.ui-widget-header:hover { +    color:#fff; +    border:1px solid #f8b950; +    background: #f8b950; +} +  textarea,  input[type=text],  input[type=password], @@ -204,7 +216,7 @@ input[role=textbox]:focus{      border:1px solid #D14;  } -.hidden{ +ul.form-flex.hidden, .hidden{      display:none;  } @@ -266,7 +278,7 @@ div#validation-bar.big{  }  a.button{ -    padding:0.5em; +    padding: 8px;  }  #reset_wizards{ diff --git a/ishtar_common/static/template.odt b/ishtar_common/static/template.odtBinary files differ index d1d0515bf..87b578800 100644 --- a/ishtar_common/static/template.odt +++ b/ishtar_common/static/template.odt diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html index 1639c70f2..063a3c1da 100644 --- a/ishtar_common/templates/blocks/JQueryJqGrid.html +++ b/ishtar_common/templates/blocks/JQueryJqGrid.html @@ -1,6 +1,6 @@  {% load i18n %} -<button id='search_{{name}}' class='submit'>{% trans "Search" %}</button> +<button id='search_{{name}}' class='submit ui-widget-header'>{% trans "Search" %}</button>  {% if url_new %}  <p><a href="#" onclick="open_window('{{url_new}}');">{{new_message}}</a></p> diff --git a/ishtar_common/templates/blocks/form_flex_snippet.html b/ishtar_common/templates/blocks/form_flex_snippet.html index 03d8b15f0..97ac37b44 100644 --- a/ishtar_common/templates/blocks/form_flex_snippet.html +++ b/ishtar_common/templates/blocks/form_flex_snippet.html @@ -1,14 +1,25 @@  {% load i18n %} -<ul class='form-flex'> -  {% if form.non_field_errors %}<li class='errors'> +  {% if form.non_field_errors %}<p class='errors'>      {{form.non_field_errors}} -  </li>{%endif%} -  {% for field in form %}{% if not field.is_hidden %} +  </p>{%endif%} +  {% for hidden in form.hidden_fields %}{{ hidden }}{% endfor %} +  {% for field in form.visible_fields %} +{% if forloop.counter0 == 0 %} +<ul class='form-flex head-form'> +{% endif %} +{% if forloop.counter0 == 6 %} +</ul> +<p class='center'><a href='#' onclick='show_hide_flex(".tail-form");return false'>{% trans "Show / hide advanced search" %}</a></p> +<ul class='form-flex tail-form hidden'> +{% endif %}    <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 %} +  {%endif%}</li> +{% if forloop.last %}  </ul> +{% endif %} +{% endfor %} diff --git a/ishtar_common/templates/ishtar/blocks/window_tables/dynamic_documents.html b/ishtar_common/templates/ishtar/blocks/window_tables/dynamic_documents.html index 76172d3ac..7239b64fc 100644 --- a/ishtar_common/templates/ishtar/blocks/window_tables/dynamic_documents.html +++ b/ishtar_common/templates/ishtar/blocks/window_tables/dynamic_documents.html @@ -7,10 +7,10 @@  <div id='foot_{{name}}' class='gridfooter'>  {% if source_full %}  {% trans "Export as CSV" %} ({{encoding}}) -<a href='{{simple_source}}csv{{ source_attrs }}' target='_blank'>{% trans "simple" %}</a> -  -<a href='{{source_full}}csv{{ source_attrs }}' target='_blank'>{% trans "full" %}</a> +<a href='{{simple_source}}csv{{ source_attrs|safe }}' target='_blank'>{% trans "simple" %}</a> -  +<a href='{{source_full}}csv{{ source_attrs|safe }}' target='_blank'>{% trans "full" %}</a>  {% else %} -<a href="{{simple_source}}csv{{ source_attrs }}" target="_blank">{% trans "Export as CSV" %} ({{encoding}})</a> +<a href="{{simple_source}}csv{{ source_attrs|safe }}" target="_blank">{% trans "Export as CSV" %} ({{encoding}})</a>  {% endif %}  </div> @@ -19,7 +19,7 @@  setTimeout(      function(){        $("#grid_{{name}}").jqGrid({ -        url:'{{source}}', +        url:'{{source|safe}}',          datatype: "json",          mtype: 'GET',          colNames:['id', '', {{col_names|safe}}], diff --git a/ishtar_common/templatetags/window_tables.py b/ishtar_common/templatetags/window_tables.py index 687b2cf49..cdd681b52 100644 --- a/ishtar_common/templatetags/window_tables.py +++ b/ishtar_common/templatetags/window_tables.py @@ -6,11 +6,18 @@ from django.conf import settings  from django.core.urlresolvers import resolve  from django.template.defaultfilters import slugify  from django.template.loader import get_template +from django.utils.safestring import mark_safe  from django.utils.translation import ugettext_lazy as _  from ishtar_common.forms import reverse_lazy  from ishtar_common.widgets import JQueryJqGrid +from archaeological_files.models import File +from archaeological_operations.models import OperationSource, Operation +from archaeological_context_records.models import ContextRecord, \ +    ContextRecordSource +from archaeological_finds.models import Find, FindSource +  register = template.Library() @@ -19,40 +26,21 @@ def table_document(caption, data):      return {'caption': caption, 'data': data}  ASSOCIATED_MODELS = {} -try: -    from archaeological_files.models import File -    ASSOCIATED_MODELS['files'] = (File, 'get-file', '') -except: -    pass - -try: -    from archaeological_operations.models import OperationSource, Operation -    ASSOCIATED_MODELS['operation_docs'] = (OperationSource, -                                           'get-operationsource', '') -    ASSOCIATED_MODELS['operations'] = (Operation, 'get-operation', '') -except: -    pass - -try: -    from archaeological_context_records.models import ContextRecord, \ -        ContextRecordSource -    ASSOCIATED_MODELS['context_records'] = (ContextRecord, 'get-contextrecord', -                                            'get-contextrecord-full') -    ASSOCIATED_MODELS['context_records_for_ope'] = ( -        ContextRecord, -        'get-contextrecord-for-ope', 'get-contextrecord-full') -    ASSOCIATED_MODELS['context_records_docs'] = (ContextRecordSource, -                                                 'get-contextrecordsource', '') -except: -    pass - -try: -    from archaeological_finds.models import Find -    ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full') -    ASSOCIATED_MODELS['finds_for_ope'] = ( -        Find, 'get-find-for-ope', 'get-find-full') -except: -    pass +ASSOCIATED_MODELS['files'] = (File, 'get-file', '') +ASSOCIATED_MODELS['operation_docs'] = (OperationSource, +                                       'get-operationsource', '') +ASSOCIATED_MODELS['operations'] = (Operation, 'get-operation', '') +ASSOCIATED_MODELS['context_records'] = (ContextRecord, 'get-contextrecord', +                                        'get-contextrecord-full') +ASSOCIATED_MODELS['context_records_for_ope'] = ( +    ContextRecord, +    'get-contextrecord-for-ope', 'get-contextrecord-full') +ASSOCIATED_MODELS['context_records_docs'] = (ContextRecordSource, +                                             'get-contextrecordsource', '') +ASSOCIATED_MODELS['finds'] = (Find, 'get-find', 'get-find-full') +ASSOCIATED_MODELS['finds_for_ope'] = ( +    Find, 'get-find-for-ope', 'get-find-full') +ASSOCIATED_MODELS['finds_docs'] = (FindSource, 'get-findsource', '')  @register.simple_tag(takes_context=True) @@ -64,7 +52,7 @@ def dynamic_table_document(context, caption, associated_model, key, value,      grid = JQueryJqGrid(None, None, model, table_cols=table_cols)      source = unicode(reverse_lazy(url))      source_full = unicode(reverse_lazy(url_full)) if url_full else '' -    source_attrs = '?{}={}'.format(key, value) +    source_attrs = mark_safe('?submited=1&{}={}'.format(key, value))      if output == 'html':          col_names, extra_cols = grid.get_cols()          t = get_template('ishtar/blocks/window_tables/dynamic_documents.html') diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 5ea53374d..54eb9164f 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -572,7 +572,12 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          datas = []          if old:              items = [item.get_previous(old) for item in items] +        c_ids = []          for item in items: +            # manual deduplicate when distinct is not enough +            if item.pk in c_ids: +                continue +            c_ids.append(item.pk)              data = [item.pk]              for keys in table_cols:                  if type(keys) not in (list, tuple): diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 57aa8cf69..b8b104a61 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.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>  # Copyright (C) 2007  skam <massimo dot scamarcia at gmail.com>  #                          (http://djangosnippets.org/snippets/233/) diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index d86fd954a..7d679c1f8 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -603,11 +603,11 @@ msgstr "Pas d'opération rattachée à cette UE !"  msgid "Document from this context record"  msgstr "Document associé à cette Unité d'Enregistrement" -#: templates/ishtar/sheet_contextrecord.html:129 +#: templates/ishtar/sheet_contextrecord.html:131  msgid "Finds"  msgstr "Mobilier" -#: templates/ishtar/sheet_contextrecord.html:134 +#: templates/ishtar/sheet_contextrecord.html:136  msgid "Documents from associated finds"  msgstr "Documents du mobilier associé" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 6de4b7686..6a9ed4c3c 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -4,13 +4,14 @@  # Étienne Loks <etienne.loks at peacefrogs net>, 2010-2015.  # Étienne Loks <etienne.loks@iggdrasil.net>, 2015. #zanata  # Valérie-Emma Leroux <emma@iggdrasil.net>, 2016. #zanata +# Étienne Loks <etienne.loks@iggdrasil.net>, 2016. #zanata  msgid ""  msgstr ""  "MIME-Version: 1.0\n"  "Content-Transfer-Encoding: 8bit\n"  "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-02-24 10:49-0500\n" -"Last-Translator: Valérie-Emma Leroux <emma@iggdrasil.net>\n" +"PO-Revision-Date: 2016-03-07 12:02-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" @@ -223,39 +224,43 @@ msgstr "Description précise"  msgid "Resulting finds"  msgstr "Mobiliers résultants" -#: forms.py:318 +#: forms.py:319 +msgid "Would you like to delete this find?" +msgstr "Souhaitez vous supprimer ce mobilier ?" + +#: forms.py:323  msgid "Upstream find"  msgstr "Mobilier amont" -#: forms.py:325 +#: forms.py:330  msgid "Archaeological find search"  msgstr "Recherche de mobilier" -#: forms.py:327 +#: forms.py:332  msgid "You should select an archaeological find."  msgstr "Vous devez sélectionner du mobilier." -#: forms.py:332 +#: forms.py:337  msgid "Year of the operation"  msgstr "Année de l'opération" -#: forms.py:334 +#: forms.py:339  msgid "Period of the archaelogical find"  msgstr "Période du mobilier" -#: forms.py:336 +#: forms.py:341  msgid "Material type of the archaelogical find"  msgstr "Type de matériau du mobilier" -#: forms.py:338 +#: forms.py:343  msgid "Description of the archaelogical find"  msgstr "Description du mobilier" -#: forms.py:350 +#: forms.py:355  msgid "Documentation search"  msgstr "Recherche de document" -#: forms.py:352 +#: forms.py:357  msgid "You should select a document."  msgstr "Vous devez sélectionner un document." @@ -263,22 +268,22 @@ msgstr "Vous devez sélectionner un document."  msgid "Search"  msgstr "Recherche" -#: ishtar_menu.py:40 ishtar_menu.py:57 +#: ishtar_menu.py:40 ishtar_menu.py:62  msgid "Creation"  msgstr "Ajout" -#: ishtar_menu.py:45 ishtar_menu.py:62 +#: ishtar_menu.py:45 ishtar_menu.py:67  msgid "Modification"  msgstr "Modification" -#: ishtar_menu.py:54 -msgid "Documentation" -msgstr "Documentation" - -#: ishtar_menu.py:67 +#: ishtar_menu.py:54 ishtar_menu.py:72  msgid "Deletion"  msgstr "Suppression" +#: ishtar_menu.py:59 +msgid "Documentation" +msgstr "Documentation" +  #: models.py:39  msgid "Code"  msgstr "Code" @@ -555,15 +560,19 @@ msgstr "Nouveau mobilier"  msgid "Find modification"  msgstr "Modification de mobilier" -#: views.py:129 +#: views.py:126 +msgid "Find deletion" +msgstr "Suppression de mobilier" + +#: views.py:135  msgid "Find: new source"  msgstr "Mobilier : nouvelle documentation associée" -#: views.py:137 +#: views.py:143  msgid "Find: source modification"  msgstr "Mobilier : modification de documentation associée" -#: views.py:143 +#: views.py:149  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 96e211cb1..eb5ab5738 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -10,19 +10,19 @@ msgstr ""  "MIME-Version: 1.0\n"  "Content-Transfer-Encoding: 8bit\n"  "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-02-25 07:05-0500\n" +"PO-Revision-Date: 2016-03-16 03:20-0400\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.8.2\n" -#: forms.py:66 forms.py:333 forms.py:892 forms.py:914 forms.py:918 -#: models.py:780 templates/ishtar/blocks/window_tables/parcels.html:8 +#: forms.py:66 forms.py:333 forms.py:903 forms.py:925 forms.py:929 +#: models.py:782 templates/ishtar/blocks/window_tables/parcels.html:8  msgid "Parcels"  msgstr "Parcelles" -#: forms.py:69 forms.py:185 forms.py:868 models.py:770 +#: forms.py:69 forms.py:185 forms.py:879 models.py:772  #: templates/ishtar/blocks/window_tables/parcels.html:5  #: templates/ishtar/dashboards/dashboard_operation.html:302  #: templates/ishtar/dashboards/dashboard_operation.html:315 @@ -31,18 +31,18 @@ msgstr "Parcelles"  msgid "Town"  msgstr "Commune" -#: forms.py:71 forms.py:411 forms.py:682 forms.py:1099 models.py:158 -#: models.py:587 models.py:768 +#: forms.py:71 forms.py:422 forms.py:693 forms.py:1111 models.py:158 +#: models.py:589 models.py:770  #: templates/ishtar/blocks/window_tables/parcels.html:6  msgid "Year"  msgstr "Année" -#: forms.py:74 models.py:771 +#: forms.py:74 models.py:773  #: templates/ishtar/blocks/window_tables/parcels.html:7  msgid "Section"  msgstr "Section" -#: forms.py:77 models.py:772 +#: forms.py:77 models.py:774  msgid "Parcel number"  msgstr "Numéro de parcelle" @@ -74,8 +74,8 @@ msgstr "Il y a des parcelles identiques."  msgid "Relation type"  msgstr "Type de relation" -#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:488 models.py:513 -#: models.py:528 models.py:579 models.py:767 wizards.py:338 wizards.py:349 +#: forms.py:345 ishtar_menu.py:30 models.py:237 models.py:490 models.py:515 +#: models.py:530 models.py:581 models.py:769 wizards.py:338 wizards.py:349  #: templates/ishtar/sheet_operation.html:6  msgid "Operation"  msgstr "Opération" @@ -84,27 +84,35 @@ msgstr "Opération"  msgid ":"  msgstr ": " -#: forms.py:395 +#: forms.py:372 forms.py:548 forms.py:1083 +msgid "You should select an operation." +msgstr "Vous devez sélectionner une opération." + +#: forms.py:376 +msgid "You should select a relation type." +msgstr "Vous devez sélectionner un type de relation." + +#: forms.py:406  msgid "Current relations"  msgstr "Relations actuelles" -#: forms.py:397 +#: forms.py:408  msgid "Deleted relations"  msgstr "Relations supprimées" -#: forms.py:401 templates/ishtar/sheet_operation.html:115 +#: forms.py:412 templates/ishtar/sheet_operation.html:115  msgid "Relations"  msgstr "Relations" -#: forms.py:412 +#: forms.py:423  msgid "Numeric reference"  msgstr "Identifiant numérique" -#: forms.py:417 forms.py:1109 +#: forms.py:428 forms.py:1121  msgid "Parcel (section/number)"  msgstr "Parcelle (section/numéro)" -#: forms.py:420 forms.py:1112 models.py:489 +#: forms.py:431 forms.py:1124 models.py:491  #: templates/ishtar/dashboards/dashboard_operation.html:273  #: templates/ishtar/dashboards/dashboard_operation.html:286  #: templates/ishtar/dashboards/dashboard_operation.html:453 @@ -112,223 +120,215 @@ msgstr "Parcelle (section/numéro)"  msgid "Department"  msgstr "Département" -#: forms.py:421 forms.py:953 models.py:77 +#: forms.py:432 forms.py:964 models.py:77  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:6  msgid "Name"  msgstr "Nom" -#: forms.py:423 forms.py:604 forms.py:680 forms.py:1076 models.py:166 +#: forms.py:434 forms.py:615 forms.py:691 forms.py:1088 models.py:166  msgid "Operation type"  msgstr "Type d'opération" -#: forms.py:425 +#: forms.py:436  msgid "Is open?"  msgstr "Est ouvert ?" -#: forms.py:434 forms.py:710 models.py:155 +#: forms.py:445 forms.py:717 models.py:155  msgid "In charge"  msgstr "Responsable" -#: forms.py:441 models.py:573 +#: forms.py:452 models.py:575  msgid "Scientist in charge"  msgstr "Responsable scientifique" -#: forms.py:443 forms.py:606 forms.py:701 models.py:153 +#: forms.py:454 forms.py:617 forms.py:708 models.py:153  msgid "Operator"  msgstr "Opérateur" -#: forms.py:450 forms.py:958 models.py:81 models.py:168 +#: forms.py:461 forms.py:969 models.py:81 models.py:168  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8  msgid "Remains"  msgstr "Vestiges" -#: forms.py:451 forms.py:937 forms.py:955 models.py:79 models.py:173 +#: forms.py:462 forms.py:948 forms.py:966 models.py:79 models.py:173  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:7  msgid "Periods"  msgstr "Périodes" -#: forms.py:452 +#: forms.py:463  msgid "Started before"  msgstr "Commencé avant" -#: forms.py:454 +#: forms.py:465  msgid "Started after"  msgstr "Commencé après" -#: forms.py:456 +#: forms.py:467  msgid "Ended before"  msgstr "Terminé avant" -#: forms.py:458 +#: forms.py:469  msgid "Ended after"  msgstr "Terminé après" -#: forms.py:461 +#: forms.py:472  msgid "Search within relations"  msgstr "Recherche parmi les relations" -#: forms.py:463 forms.py:752 models.py:219 +#: forms.py:474 forms.py:759 models.py:219  msgid "Comment"  msgstr "Commentaire" -#: forms.py:464 +#: forms.py:475  msgid "Abstract (full text search)"  msgstr "Résumé (recherche texte intégral)" -#: forms.py:465 forms.py:754 models.py:231 +#: forms.py:476 forms.py:761 models.py:231  msgid "Record quality"  msgstr "Qualité d'enregistrement" -#: forms.py:466 forms.py:733 models.py:185 +#: forms.py:477 forms.py:740 models.py:185  msgid "Report processing"  msgstr "Traitement du rapport" -#: forms.py:468 forms.py:757 models.py:226 +#: forms.py:479 forms.py:764 models.py:226  msgid "Virtual operation"  msgstr "Opération virtuelle" -#: forms.py:476 forms.py:1116 +#: forms.py:481 forms.py:1009 +msgid "Archaelogical site" +msgstr "Entité Archéologique" + +#: forms.py:487 forms.py:1128  msgid "Created by"  msgstr "Créé par" -#: forms.py:482 forms.py:1122 +#: forms.py:493 forms.py:1134  msgid "Modified by"  msgstr "Modifié par" -#: forms.py:524 forms.py:1069 views.py:231 +#: forms.py:535 forms.py:1081 views.py:231  msgid "Operation search"  msgstr "Recherche d'opérations" -#: forms.py:537 forms.py:1071 -msgid "You should select an operation." -msgstr "Vous devez sélectionner une opération." - -#: forms.py:568 +#: forms.py:579  msgid "Associated file"  msgstr "Dossier associé" -#: forms.py:572 forms.py:816 models.py:584 wizards.py:76 +#: forms.py:583 forms.py:827 models.py:586 wizards.py:76  msgid "Archaelogical file"  msgstr "Dossier" -#: forms.py:579 forms.py:581 models.py:233 +#: forms.py:590 forms.py:592 models.py:233  msgid "Abstract"  msgstr "Résumé" -#: forms.py:584 +#: forms.py:595  msgid "months"  msgstr "mois" -#: forms.py:584 +#: forms.py:595  msgid "years"  msgstr "années" -#: forms.py:586 models.py:139 +#: forms.py:597 models.py:139  msgid "Creation date"  msgstr "Date de création" -#: forms.py:587 +#: forms.py:598  msgid "Start of field work"  msgstr "Début du travail de terrain" -#: forms.py:589 +#: forms.py:600  msgid "All" -msgstr "Tous" +msgstr "Tout" -#: forms.py:590 +#: forms.py:601  msgid "Preventive"  msgstr "Préventif" -#: forms.py:591 +#: forms.py:602  msgid "Research" -msgstr "Programmée" +msgstr "Programmé" -#: forms.py:595 +#: forms.py:606  msgid "Slicing"  msgstr "Découpage" -#: forms.py:598 +#: forms.py:609  msgid "Department detail"  msgstr "Détail par département" -#: forms.py:600 +#: forms.py:611  msgid "Date get from"  msgstr "Date obtenue depuis" -#: forms.py:602 +#: forms.py:613  msgid "Preventive/Research"  msgstr "Préventif/Programmé" -#: forms.py:608 +#: forms.py:619  msgid "Date after"  msgstr "Date après" -#: forms.py:610 +#: forms.py:621  msgid "Date before"  msgstr "Date avant" -#: forms.py:612 +#: forms.py:623  msgid "With reports"  msgstr "Avec un rapport" -#: forms.py:613 +#: forms.py:624  msgid "With finds"  msgstr "Avec du mobilier" -#: forms.py:665 forms.py:1169 templates/ishtar/sheet_administrativeact.html:11 +#: forms.py:676 forms.py:1181 templates/ishtar/sheet_administrativeact.html:11  #: templates/ishtar/sheet_operation.html:32  msgid "General"  msgstr "Général" -#: forms.py:678 models.py:218 +#: forms.py:689 models.py:218  msgid "Generic name"  msgstr "Nom générique" -#: forms.py:687 forms.py:812 models.py:159 models.py:368 -msgid "Operation code" -msgstr "Code de l'opération" - -#: forms.py:691 +#: forms.py:698  msgid "Head scientist"  msgstr "Responsable scientifique" -#: forms.py:707 models.py:217 +#: forms.py:714 models.py:217  msgid "Operator reference"  msgstr "Référence de l'opérateur" -#: forms.py:719 +#: forms.py:726  msgid "Total surface (m2)"  msgstr "Surface totale (m2)" -#: forms.py:724 -msgid "Associated archaeological sites" -msgstr "Entités archéologiques associées" - -#: forms.py:726 models.py:49 models.py:142 models.py:938 +#: forms.py:733 models.py:49 models.py:142 models.py:940  msgid "Start date"  msgstr "Date de début" -#: forms.py:728 models.py:144 +#: forms.py:735 models.py:144  msgid "Excavation end date"  msgstr "Date de fin de chantier" -#: forms.py:731 models.py:145 +#: forms.py:738 models.py:145  msgid "Report delivery date"  msgstr "Date de livraison du rapport" -#: forms.py:782 +#: forms.py:791  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:787 +#: forms.py:796  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:802 +#: forms.py:813  #, python-format  msgid ""  "Operation code already exist for year: %(year)d - use a value bigger than " @@ -337,109 +337,109 @@ 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:806 +#: forms.py:817  msgid "Bad operation code"  msgstr "Mauvais code d'opération" -#: forms.py:838 +#: forms.py:823 models.py:159 models.py:368 +msgid "Operation code" +msgstr "Code de l'opération" + +#: forms.py:849  msgid "Preventive informations - excavation"  msgstr "Information archéologie préventive - fouille" -#: forms.py:839 models.py:171 +#: forms.py:850 models.py:171  #: templates/ishtar/dashboards/dashboard_operation.html:495  msgid "Cost (euros)"  msgstr "Coût (euros)" -#: forms.py:840 models.py:176 +#: forms.py:851 models.py:176  msgid "Scheduled man-days"  msgstr "Jours-hommes prévus" -#: forms.py:842 models.py:179 +#: forms.py:853 models.py:179  msgid "Optional man-days"  msgstr "Jours-hommes optionnels" -#: forms.py:844 models.py:182 +#: forms.py:855 models.py:182  msgid "Effective man-days"  msgstr "Jours-hommes effectifs" -#: forms.py:854 +#: forms.py:865  msgid "Preventive informations - diagnostic"  msgstr "Information archéologie préventive - diagnostic" -#: forms.py:857 models.py:201 +#: forms.py:868 models.py:201  msgid "Prescription on zoning"  msgstr "Prescription sur zonage" -#: forms.py:859 models.py:204 +#: forms.py:870 models.py:204  msgid "Prescription on large area"  msgstr "Prescription sur une vaste surface" -#: forms.py:862 models.py:206 +#: forms.py:873 models.py:206  msgid "Prescription on geoarchaeological context"  msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:866 forms.py:888 models.py:170 models.py:597 +#: forms.py:877 forms.py:899 models.py:170 models.py:599  msgid "Towns"  msgstr "Communes" -#: forms.py:895 models.py:779 models.py:936 +#: forms.py:906 models.py:781 models.py:938  msgid "Parcel"  msgstr "Parcelle" -#: forms.py:922 models.py:43 +#: forms.py:933 models.py:43  msgid "Remain types"  msgstr "Types de vestige" -#: forms.py:926 models.py:42 +#: forms.py:937 models.py:42  msgid "Remain type"  msgstr "Type de vestige" -#: forms.py:941 +#: forms.py:952  msgid "Period"  msgstr "Période" -#: forms.py:952 models.py:76 +#: forms.py:963 models.py:76  msgid "Reference"  msgstr "Référence" -#: forms.py:977 +#: forms.py:988  msgid "This reference already exists."  msgstr "Cette référence existe déjà." -#: forms.py:994 models.py:85 +#: forms.py:1005 models.py:85  msgid "Archaeological site"  msgstr "Entité archéologique" -#: forms.py:998 -msgid "Archaelogical site" -msgstr "Entité Archéologique" - -#: forms.py:1008 models.py:86 models.py:223 +#: forms.py:1020 models.py:86 models.py:223  #: templates/ishtar/sheet_operation.html:126  msgid "Archaeological sites"  msgstr "Entités archéologiques" -#: forms.py:1012 +#: forms.py:1024  msgid "Associated archaelogical sites"  msgstr "Entités archéologiques associées" -#: forms.py:1018 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1030 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92  msgid "Search"  msgstr "Recherche" -#: forms.py:1023 +#: forms.py:1035  msgid "Would you like to close this operation?"  msgstr "Voulez-vous clore cette opération ?" -#: forms.py:1028 +#: forms.py:1040  msgid "Would you like to delete this operation?"  msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1037 forms.py:1100 models.py:515 models.py:564 +#: forms.py:1049 forms.py:1112 models.py:517 models.py:566  msgid "Index"  msgstr "Index" -#: forms.py:1063 +#: forms.py:1075  #, python-format  msgid ""  "Index already exists for operation: %(operation)s - use a value bigger than " @@ -448,68 +448,68 @@ msgstr ""  "Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur "  "plus grande que %(last_val)d" -#: forms.py:1075 +#: forms.py:1087  msgid "Operation's town"  msgstr "Commune de l'opération" -#: forms.py:1078 +#: forms.py:1090  msgid "Operation's year"  msgstr "Année de l'opération" -#: forms.py:1089 +#: forms.py:1101  msgid "Documentation search"  msgstr "Recherche de document" -#: forms.py:1091 +#: forms.py:1103  msgid "You should select a document."  msgstr "Vous devez sélectionner un document." -#: forms.py:1106 forms.py:1172 models.py:539 models.py:558 +#: forms.py:1118 forms.py:1184 models.py:541 models.py:560  msgid "Act type"  msgstr "Type d'acte" -#: forms.py:1107 forms.py:1260 +#: forms.py:1119 forms.py:1272  msgid "Indexed?"  msgstr "Indexé ?" -#: forms.py:1113 forms.py:1177 models.py:588 +#: forms.py:1125 forms.py:1189 models.py:590  #: templates/ishtar/blocks/window_tables/administrativacts.html:8  msgid "Object"  msgstr "Objet" -#: forms.py:1149 views.py:373 +#: forms.py:1161 views.py:373  msgid "Administrative act search"  msgstr "Recherche d'actes administratifs" -#: forms.py:1164 forms.py:1218 forms.py:1285 +#: forms.py:1176 forms.py:1230 forms.py:1297  msgid "You should select an administrative act."  msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1180 models.py:585 +#: forms.py:1192 models.py:587  msgid "Signature date"  msgstr "Date de signature" -#: forms.py:1195 +#: forms.py:1207  msgid "Would you like to delete this administrative act?"  msgstr "Voulez-vous supprimer cet acte administratif ?" -#: forms.py:1200 +#: forms.py:1212  msgid "Template"  msgstr "Patron" -#: forms.py:1224 forms.py:1228 +#: forms.py:1236 forms.py:1240  msgid "This document is not intended for this type of act."  msgstr "Ce document n'est pas destiné à ce type d'acte." -#: forms.py:1246 +#: forms.py:1258  msgid "Doc generation"  msgstr "Génération de document" -#: forms.py:1248 +#: forms.py:1260  msgid "Generate the associated doc?"  msgstr "Générer le document associé ?" -#: forms.py:1269 ishtar_menu.py:121 views.py:407 +#: forms.py:1281 ishtar_menu.py:121 views.py:407  msgctxt "admin act register"  msgid "Register"  msgstr "Registre" @@ -530,7 +530,7 @@ msgstr "Clôture"  msgid "Deletion"  msgstr "Suppression" -#: ishtar_menu.py:58 models.py:604 +#: ishtar_menu.py:58 models.py:606  #: templates/ishtar/sheet_administrativeact.html:6  msgid "Administrative act"  msgstr "Acte administratif" @@ -564,11 +564,11 @@ msgstr "Informations générales"  msgid "Operations"  msgstr "Opérations" -#: models.py:48 models.py:64 models.py:1400 +#: models.py:48 models.py:64 models.py:1402  msgid "Order"  msgstr "Ordre" -#: models.py:50 models.py:939 +#: models.py:50 models.py:941  msgid "End date"  msgstr "Date de fin" @@ -632,7 +632,7 @@ msgstr "Date de clôture"  msgid "In charge scientist"  msgstr "Responsable scientifique" -#: models.py:163 models.py:763 +#: models.py:163 models.py:765  msgid "File"  msgstr "Dossier" @@ -683,7 +683,7 @@ msgstr "OPE"  msgid "Intercommunal"  msgstr "Intercommunal" -#: models.py:351 models.py:527 +#: models.py:351 models.py:529  msgid "Archaeological file"  msgstr "Dossier archéologique" @@ -695,189 +695,189 @@ msgstr "Code patriarche"  msgid "This operation code already exists for this year"  msgstr "Ce code d'opération existe déjà pour cette année." -#: models.py:459 +#: models.py:461  msgid "Inverse relation"  msgstr "Relation inverse" -#: models.py:463 +#: models.py:465  msgid "Operation relation type"  msgstr "Type de relation entre opérations" -#: models.py:464 +#: models.py:466  msgid "Operation relation types"  msgstr "Types de relation entre opérations" -#: models.py:477 +#: models.py:479  msgid "Operation record relation"  msgstr "Relation entre opérations" -#: models.py:478 +#: models.py:480  msgid "Operation record relations"  msgstr "Relations entre opérations" -#: models.py:499 +#: models.py:501  msgid "Operation documentation"  msgstr "Documentation d'une opération" -#: models.py:500 +#: models.py:502  msgid "Operation documentations"  msgstr "Documentations des opérations" -#: models.py:503 +#: models.py:505  msgid "Can view all Operation sources"  msgstr "Peut voir toutes les Documentations d'opération" -#: models.py:505 +#: models.py:507  msgid "Can view own Operation source"  msgstr "Peut voir sa propre Documentation d'opération" -#: models.py:507 +#: models.py:509  msgid "Can add own Operation source"  msgstr "Peut ajouter sa propre Documentation d'opération" -#: models.py:509 +#: models.py:511  msgid "Can change own Operation source"  msgstr "Peut modifier sa propre Documentation d'opération" -#: models.py:511 +#: models.py:513  msgid "Can delete own Operation source"  msgstr "Peut supprimer sa propre Documentation d'opération" -#: models.py:530 +#: models.py:532  msgid "Intended to"  msgstr "Destiné à" -#: models.py:532 +#: models.py:534  msgid "Code"  msgstr "Code" -#: models.py:535 +#: models.py:537  msgid "Associated template"  msgstr "Patron associé" -#: models.py:536 +#: models.py:538  msgid "Indexed"  msgstr "Indexé" -#: models.py:540 +#: models.py:542  msgid "Act types"  msgstr "Types d'acte" -#: models.py:562 +#: models.py:564  msgid "Person in charge of the operation"  msgstr "Responsable d'opération" -#: models.py:568 +#: models.py:570  msgid "Archaeological preventive operator"  msgstr "Opérateur d'archéologie préventive" -#: models.py:576 +#: models.py:578  msgid "Signatory"  msgstr "Signataire" -#: models.py:594 +#: models.py:596  msgid "Departments"  msgstr "Départements" -#: models.py:595 +#: models.py:597  msgid "Cached values get from associated departments"  msgstr "Valeur en cache des départements associés" -#: models.py:598 +#: models.py:600  msgid "Cached values get from associated towns"  msgstr "Valeur en cache des communes associées" -#: models.py:605 templates/ishtar/sheet_operation.html:134 +#: models.py:607 templates/ishtar/sheet_operation.html:134  msgid "Administrative acts"  msgstr "Actes administratifs" -#: models.py:608 +#: models.py:610  msgid "Can view all Administrative acts"  msgstr "Peut voir tous les Actes administratifs" -#: models.py:610 +#: models.py:612  msgid "Can view own Administrative act"  msgstr "Peut voir son propre Acte administratif" -#: models.py:612 +#: models.py:614  msgid "Can add own Administrative act"  msgstr "Peut ajouter son propre Acte administratif" -#: models.py:614 +#: models.py:616  msgid "Can change own Administrative act"  msgstr "Peut modifier son propre Acte administratif" -#: models.py:616 +#: models.py:618  msgid "Can delete own Administrative act"  msgstr "Peut supprimer son propre Acte administratif" -#: models.py:625 +#: models.py:627  #: templates/ishtar/blocks/window_tables/administrativacts.html:5  #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:5  msgid "Ref."  msgstr "Réf." -#: models.py:708 +#: models.py:710  msgid "This index already exists for this year"  msgstr "Cet index existe déjà pour cette année." -#: models.py:774 +#: models.py:776  msgid "External ID"  msgstr "ID externe" -#: models.py:776 +#: models.py:778  msgid "Address - Locality"  msgstr "Adresse - Lieu-dit" -#: models.py:934 +#: models.py:936  msgid "Owner"  msgstr "Propriétaire" -#: models.py:942 +#: models.py:944  msgid "Parcel owner"  msgstr "Propriétaire de parcelle" -#: models.py:943 +#: models.py:945  msgid "Parcel owners"  msgstr "Propriétaires de parcelle" -#: models.py:969 +#: models.py:971  msgid "Recorded"  msgstr "Enregistré" -#: models.py:970 +#: models.py:972  msgid "Effective"  msgstr "Effectif" -#: models.py:971 +#: models.py:973  msgid "Active"  msgstr "Actif" -#: models.py:972 +#: models.py:974  msgid "Field completed"  msgstr "Terrain achevé" -#: models.py:973 +#: models.py:975  msgid "Associated report"  msgstr "Rapport associé" -#: models.py:974 +#: models.py:976  msgid "Closed"  msgstr "Clos" -#: models.py:975 +#: models.py:977  msgid "Documented and closed"  msgstr "Documenté et clos" -#: models.py:1401 +#: models.py:1403  msgid "Is preventive"  msgstr "Préventif" -#: models.py:1404 +#: models.py:1406  msgid "Operation type old"  msgstr "Type d'opération - ancien" -#: models.py:1405 +#: models.py:1407  msgid "Operation types old"  msgstr "Types d'opération - ancien" @@ -1131,10 +1131,18 @@ msgstr "Documents de cette opération"  msgid "Context records"  msgstr "Unités d'Enregistrement" -#: templates/ishtar/sheet_operation.html:155 +#: templates/ishtar/sheet_operation.html:148 +msgid "Documents from associated context records" +msgstr "Documents des Unités d'Enregistrement associées" + +#: templates/ishtar/sheet_operation.html:153  msgid "Finds"  msgstr "Mobilier" +#: templates/ishtar/sheet_operation.html:158 +msgid "Documents from associated finds" +msgstr "Documents du mobilier associé" +  #: templates/ishtar/sheet_operationsource.html:6  msgid "Operation source"  msgstr "Documentation associée à l'opération" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 331e2a61e..94ae37c05 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -83,7 +83,7 @@ msgstr "Vous devez sélectionner un contenant."  msgid "Add a new container"  msgstr "Ajouter un nouveau contenant." -#: forms.py:132 ishtar_menu.py:33 views.py:94 +#: forms.py:132 views.py:94  msgid "Packaging"  msgstr "Conditionnement" @@ -99,10 +99,6 @@ msgstr "Date"  msgid "Packaged finds"  msgstr "Mobilier conditionné" -#: ishtar_menu.py:30 -msgid "Find" -msgstr "Mobilier" -  #: models.py:31  msgid "Warehouse types"  msgstr "Types de dépôts" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index c7387396f..4177bafdd 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -10,7 +10,7 @@ msgstr ""  "MIME-Version: 1.0\n"  "Content-Transfer-Encoding: 8bit\n"  "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-02-25 07:04-0500\n" +"PO-Revision-Date: 2016-03-16 03:21-0400\n"  "Last-Translator: Étienne Loks <etienne.loks@iggdrasil.net>\n"  "Language-Team: \n"  "Language: fr\n" @@ -217,7 +217,7 @@ msgstr ""  #: forms_common.py:66 forms_common.py:648 ishtar_menu.py:42 models.py:2039  #: models.py:2168 models.py:2222 templates/ishtar/sheet_person.html:6  msgid "Person" -msgstr "Individu" +msgstr "Personne"  #: forms_common.py:157 forms_common.py:231 ishtar_menu.py:66 models.py:1961  #: templates/ishtar/sheet_organization.html:6 @@ -290,7 +290,7 @@ msgstr "Prénom"  #: forms_common.py:243 views.py:88  msgid "Person search" -msgstr "Recherche d'individus" +msgstr "Recherche de personnes"  #: forms_common.py:254  msgid "Identity" @@ -313,7 +313,7 @@ msgstr "Organisation actuelle"  #: forms_common.py:325 forms_common.py:355 forms_common.py:359 models.py:2009  msgid "Person type" -msgstr "Type d'individu" +msgstr "Type de personne"  #: forms_common.py:370 forms_common.py:375  msgid "Account" @@ -444,7 +444,7 @@ msgstr "Administration"  msgid "Account management"  msgstr "Gestion des comptes" -#: ishtar_menu.py:34 models.py:853 views.py:1115 +#: ishtar_menu.py:34 models.py:853 views.py:1120  msgid "Global variables"  msgstr "Variables globales" @@ -476,11 +476,11 @@ msgstr "Suppression"  msgid "Imports"  msgstr "Imports" -#: ishtar_menu.py:99 views.py:1123 +#: ishtar_menu.py:99 views.py:1128  msgid "New import"  msgstr "Nouvel import" -#: ishtar_menu.py:103 views.py:1137 +#: ishtar_menu.py:103 views.py:1142  msgid "Current imports"  msgstr "Imports en cours" @@ -666,15 +666,15 @@ msgstr "Parcelles"  msgid "Operation source"  msgstr "Documentation de l'opération" -#: models.py:1259 views.py:940 views.py:991 +#: models.py:1259 views.py:945 views.py:996  msgid "Archaeological files"  msgstr "Dossiers archéologiques" -#: models.py:1261 views.py:943 views.py:999 +#: models.py:1261 views.py:948 views.py:1004  msgid "Context records"  msgstr "Unités d'Enregistrement" -#: models.py:1263 views.py:945 views.py:1002 +#: models.py:1263 views.py:950 views.py:1007  msgid "Finds"  msgstr "Mobilier" @@ -1185,34 +1185,34 @@ msgstr "Modification d'une organisation"  msgid "Organization deletion"  msgstr "Suppression d'une organisation" -#: views.py:637 templates/base.html:80 +#: views.py:642 templates/base.html:80  #: templates/ishtar/sheet_organization.html:35  #: templatetags/link_to_window.py:16  msgid "Details"  msgstr "Détails" -#: views.py:868 views.py:922 +#: views.py:873 views.py:927  msgid "Operation not permitted."  msgstr "Opération non permise." -#: views.py:870 +#: views.py:875  #, python-format  msgid "New %s"  msgstr "Nouveau %s" -#: views.py:941 views.py:995 +#: views.py:946 views.py:1000  msgid "Operations"  msgstr "Opérations" -#: views.py:1184 templates/ishtar/import_list.html:43 +#: views.py:1189 templates/ishtar/import_list.html:43  msgid "Link unmatched items"  msgstr "Associer les éléments non rapprochés" -#: views.py:1199 +#: views.py:1204  msgid "Delete import"  msgstr "Suppression de l'import" -#: views.py:1258 views.py:1274 +#: views.py:1263 views.py:1279  msgid "Corporation manager"  msgstr "Représentant de la personne morale" @@ -1220,11 +1220,11 @@ msgstr "Représentant de la personne morale"  msgid "Search..."  msgstr "Recherche..." -#: widgets.py:602 templatetags/window_tables.py:80 +#: widgets.py:602 templatetags/window_tables.py:68  msgid "No results"  msgstr "Pas de résultats" -#: widgets.py:603 templatetags/window_tables.py:81 +#: widgets.py:603 templatetags/window_tables.py:69  msgid "Loading..."  msgstr "Chargement..." @@ -1595,7 +1595,11 @@ msgstr ", "  msgid "."  msgstr "." -#: templates/blocks/form_flex_snippet.html:10 +#: templates/blocks/form_flex_snippet.html:12 +msgid "Show / hide advanced search" +msgstr "Afficher/cacher la recherche avancée" + +#: templates/blocks/form_flex_snippet.html:18  #: templates/blocks/form_snippet.html:9  msgid "Help"  msgstr "Aide" diff --git a/xhtml2odt/xsl/document-content/tables.xsl b/xhtml2odt/xsl/document-content/tables.xsl index a063f6bfd..f17354455 100644 --- a/xhtml2odt/xsl/document-content/tables.xsl +++ b/xhtml2odt/xsl/document-content/tables.xsl @@ -57,16 +57,6 @@  </xsl:template>  <xsl:template match="h:table"> -    <table:table table:style-name="table-default"> -        <table:table-column> -            <xsl:attribute name="table:number-columns-repeated"> -                <xsl:value-of select="count(descendant::h:tr[1]/h:th|descendant::h:tr[1]/h:td)"/> -            </xsl:attribute> -        </table:table-column> -        <!--<xsl:attribute name="table:name"></xsl:attribute>--> -        <xsl:apply-templates/> -        <xsl:apply-templates select="h:tfoot/*"/> -    </table:table>      <xsl:if test="h:caption">          <xsl:variable name="number">              <xsl:call-template name="table.number"/> @@ -80,6 +70,16 @@              <xsl:text>: </xsl:text><xsl:value-of select="h:caption"/>          </text:p>      </xsl:if> +    <table:table table:style-name="table-default"> +        <table:table-column> +            <xsl:attribute name="table:number-columns-repeated"> +                <xsl:value-of select="count(descendant::h:tr[1]/h:th|descendant::h:tr[1]/h:td)"/> +            </xsl:attribute> +        </table:table-column> +        <!--<xsl:attribute name="table:name"></xsl:attribute>--> +        <xsl:apply-templates/> +        <xsl:apply-templates select="h:tfoot/*"/> +    </table:table>  </xsl:template>  <xsl:template match="h:table/h:caption"/> | 
