summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commit95c2cf33370ac73cfab6963d54d2a5bc8728d7a8 (patch)
treea9d415d60bb689c6af40c4427d40c9ca8177f3ca
parent4f4ea768d9d72b96bcf826c525ed1b066191b11b (diff)
parentc50c0e4e5701b9926fbdad82b4ae54964a9283bb (diff)
downloadIshtar-95c2cf33370ac73cfab6963d54d2a5bc8728d7a8.tar.bz2
Ishtar-95c2cf33370ac73cfab6963d54d2a5bc8728d7a8.zip
Merge branch 'master' into v0.9
-rw-r--r--archaeological_context_records/locale/django.pot4
-rw-r--r--archaeological_context_records/templates/ishtar/sheet_contextrecord.html10
-rw-r--r--archaeological_files/templates/ishtar/administrativeact_document.html2
-rw-r--r--archaeological_finds/forms.py7
-rw-r--r--archaeological_finds/ishtar_menu.py5
-rw-r--r--archaeological_finds/locale/django.pot45
-rw-r--r--archaeological_finds/models.py2
-rw-r--r--archaeological_finds/urls.py3
-rw-r--r--archaeological_finds/views.py10
-rw-r--r--archaeological_finds/wizards.py10
-rw-r--r--archaeological_operations/admin.py4
-rw-r--r--archaeological_operations/forms.py95
-rw-r--r--archaeological_operations/locale/django.pot357
-rw-r--r--archaeological_operations/models.py2
-rw-r--r--archaeological_operations/templates/ishtar/sheet_operation.html10
-rw-r--r--archaeological_warehouse/ishtar_menu.py14
-rw-r--r--archaeological_warehouse/locale/django.pot6
-rw-r--r--example_project/settings.py2
-rw-r--r--ishtar_common/forms_common.py10
-rw-r--r--ishtar_common/locale/django.pot36
-rw-r--r--ishtar_common/static/js/ishtar.js18
-rw-r--r--ishtar_common/static/media/style.css18
-rw-r--r--ishtar_common/static/template.odtbin7013 -> 8034 bytes
-rw-r--r--ishtar_common/templates/blocks/JQueryJqGrid.html2
-rw-r--r--ishtar_common/templates/blocks/form_flex_snippet.html21
-rw-r--r--ishtar_common/templates/ishtar/blocks/window_tables/dynamic_documents.html8
-rw-r--r--ishtar_common/templatetags/window_tables.py58
-rw-r--r--ishtar_common/views.py5
-rw-r--r--ishtar_common/widgets.py2
-rw-r--r--translations/fr/archaeological_context_records.po4
-rw-r--r--translations/fr/archaeological_finds.po51
-rw-r--r--translations/fr/archaeological_operations.po362
-rw-r--r--translations/fr/archaeological_warehouse.po6
-rw-r--r--translations/fr/ishtar_common.po44
-rw-r--r--xhtml2odt/xsl/document-content/tables.xsl20
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.odt
index d1d0515bf..87b578800 100644
--- a/ishtar_common/static/template.odt
+++ b/ishtar_common/static/template.odt
Binary files differ
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"/>