diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-02 10:10:59 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-09-02 10:10:59 +0200 |
commit | 151e42654a4bcfcff408c7799db199c71e81b5c5 (patch) | |
tree | 02786db1039902c7cc75f76aa7159829299970ac | |
parent | 661218e0acd24fc3bca76229b61d0cb91a54be1c (diff) | |
parent | 5eb8667794636e379a8c324da46c617ad365747a (diff) | |
download | Ishtar-151e42654a4bcfcff408c7799db199c71e81b5c5.tar.bz2 Ishtar-151e42654a4bcfcff408c7799db199c71e81b5c5.zip |
Merge branch 'master' into v0.9
46 files changed, 4480 insertions, 1582 deletions
diff --git a/CHANGES.md b/CHANGES.md index 0e12ef0f0..affe96683 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -1,6 +1,22 @@ Ishtar changelog ================ +0.97.4 (2016-09-02) +------------------- + +### Features ### + +- Non-available types are displayed when modifying old items using theses types +- Title types are no more hard-coded +- Archive item to exclude them from merge detection mechanism (python API only) +- Organization, Person sheets: add link to files +- Install: default nginx conf wait after long uwsgi response + +### Bug fixes ### + +- Account modify: fix bad initialization of the form +- Imports: delete town when associated import is deleted + 0.97.3 (2016-08-29) ------------------- diff --git a/archaeological_context_records/forms.py b/archaeological_context_records/forms.py index f3bbb1b65..4f10014de 100644 --- a/archaeological_context_records/forms.py +++ b/archaeological_context_records/forms.py @@ -36,7 +36,7 @@ import models from ishtar_common import widgets from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FinalForm, FormSet, \ - reverse_lazy, get_form_selection, TableSelect + reverse_lazy, get_form_selection, TableSelect, ManageOldType from ishtar_common.forms_common import get_town_field, SourceSelect from archaeological_operations.forms import OperationSelect, ParcelField,\ RecordRelationsForm as OpeRecordRelationsForm @@ -114,7 +114,7 @@ class RecordFormSelection(forms.Form): return cleaned_data -class RecordFormGeneral(forms.Form): +class RecordFormGeneral(ManageOldType, forms.Form): form_label = _("General") associated_models = {'parcel': Parcel, 'unit': models.Unit} pk = forms.IntegerField(required=False, widget=forms.HiddenInput) @@ -162,7 +162,8 @@ class RecordFormGeneral(forms.Form): (" - ".join([k for k in key if k]), [(parcel.pk, parcel.short_label) for parcel in gparcels]) ) - self.fields['unit'].choices = models.Unit.get_types() + self.fields['unit'].choices = models.Unit.get_types( + initial=self.init_data.get('unit')) self.fields['unit'].help_text = models.Unit.get_help() def clean(self): @@ -180,7 +181,7 @@ class RecordFormGeneral(forms.Form): return cleaned_data -class DatingForm(forms.Form): +class DatingForm(ManageOldType, forms.Form): form_label = _("Dating") base_model = 'dating' associated_models = {'dating_type': models.DatingType, @@ -195,11 +196,14 @@ class DatingForm(forms.Form): def __init__(self, *args, **kwargs): super(DatingForm, self).__init__(*args, **kwargs) - self.fields['dating_type'].choices = models.DatingType.get_types() + self.fields['dating_type'].choices = models.DatingType.get_types( + initial=self.init_data.get('dating_type')) self.fields['dating_type'].help_text = models.DatingType.get_help() - self.fields['quality'].choices = models.DatingQuality.get_types() + self.fields['quality'].choices = models.DatingQuality.get_types( + initial=self.init_data.get('quality')) self.fields['quality'].help_text = models.DatingQuality.get_help() - self.fields['period'].choices = Period.get_types() + self.fields['period'].choices = Period.get_types( + initial=self.init_data.get('period')) self.fields['period'].help_text = Period.get_help() @@ -229,7 +233,8 @@ class RecordRelationsForm(OpeRecordRelationsForm): kwargs.pop('files') super(RecordRelationsForm, self).__init__(*args, **kwargs) self.fields['relation_type'].choices = \ - models.RelationType.get_types() + models.RelationType.get_types( + initial=self.init_data.get('relation_type')) if crs: self.fields['right_record'].choices = [('', '-' * 2)] + crs @@ -237,7 +242,7 @@ RecordRelationsFormSet = formset_factory(RecordRelationsForm, can_delete=True) RecordRelationsFormSet.form_label = _(u"Relations") -class RecordFormInterpretation(forms.Form): +class RecordFormInterpretation(ManageOldType, forms.Form): form_label = _("Interpretation") associated_models = {'activity': models.ActivityType, 'identification': models.IdentificationType} @@ -263,10 +268,12 @@ class RecordFormInterpretation(forms.Form): def __init__(self, *args, **kwargs): super(RecordFormInterpretation, self).__init__(*args, **kwargs) - self.fields['activity'].choices = models.ActivityType.get_types() + self.fields['activity'].choices = models.ActivityType.get_types( + initial=self.init_data.get('activity')) self.fields['activity'].help_text = models.ActivityType.get_help() self.fields['identification'].choices = \ - models.IdentificationType.get_types() + models.IdentificationType.get_types( + initial=self.init_data.get('identification')) self.fields['identification'].help_text = \ models.IdentificationType.get_help() diff --git a/archaeological_context_records/locale/django.pot b/archaeological_context_records/locale/django.pot index 8daef7bec..3f3ab428e 100644 --- a/archaeological_context_records/locale/django.pot +++ b/archaeological_context_records/locale/django.pot @@ -32,7 +32,7 @@ msgstr "" msgid "Search within operation relations" msgstr "" -#: forms.py:64 forms.py:189 models.py:48 +#: forms.py:64 forms.py:190 models.py:48 msgid "Period" msgstr "" @@ -48,7 +48,7 @@ msgstr "" msgid "Search within relations" msgstr "" -#: forms.py:98 forms.py:288 views.py:118 +#: forms.py:98 forms.py:295 views.py:118 msgid "Context record search" msgstr "" @@ -94,120 +94,120 @@ msgstr "" msgid "Location" msgstr "" -#: forms.py:178 +#: forms.py:179 msgid "This ID already exists for this operation." msgstr "" -#: forms.py:184 forms.py:208 models.py:59 +#: forms.py:185 forms.py:212 models.py:59 msgid "Dating" msgstr "" -#: forms.py:190 models.py:49 +#: forms.py:191 models.py:49 msgid "Start date" msgstr "" -#: forms.py:191 models.py:50 models.py:135 +#: forms.py:192 models.py:50 models.py:135 msgid "End date" msgstr "" -#: forms.py:192 models.py:53 +#: forms.py:193 models.py:53 msgid "Quality" msgstr "" -#: forms.py:193 models.py:35 models.py:51 +#: forms.py:194 models.py:35 models.py:51 msgid "Dating type" msgstr "" -#: forms.py:217 ishtar_menu.py:29 models.py:354 +#: forms.py:221 ishtar_menu.py:29 models.py:354 msgid "Context record" msgstr "" -#: forms.py:237 +#: forms.py:242 msgid "Relations" msgstr "" -#: forms.py:241 forms.py:251 models.py:153 +#: forms.py:246 forms.py:256 models.py:153 #: templates/ishtar/sheet_contextrecord.html:37 msgid "Interpretation" msgstr "" -#: forms.py:245 +#: forms.py:250 msgid "Comments on dating" msgstr "" -#: forms.py:247 models.py:150 +#: forms.py:252 models.py:150 msgid "Has furniture?" msgstr "" -#: forms.py:249 models.py:152 +#: forms.py:254 models.py:152 msgid "Filling" msgstr "" -#: forms.py:253 models.py:173 +#: forms.py:258 models.py:173 msgid "Activity" msgstr "" -#: forms.py:255 models.py:171 +#: forms.py:260 models.py:171 msgid "Identification" msgstr "" -#: forms.py:257 models.py:156 +#: forms.py:262 models.py:156 msgid "TAQ" msgstr "" -#: forms.py:258 models.py:160 +#: forms.py:263 models.py:160 msgid "Estimated TAQ" msgstr "" -#: forms.py:260 models.py:163 +#: forms.py:265 models.py:163 msgid "TPQ" msgstr "" -#: forms.py:261 models.py:167 +#: forms.py:266 models.py:167 msgid "Estimated TPQ" msgstr "" -#: forms.py:274 +#: forms.py:281 msgid "Operation search" msgstr "" -#: forms.py:276 +#: forms.py:283 msgid "You should select an operation." msgstr "" -#: forms.py:281 +#: forms.py:288 msgid "Would you like to delete this context record?" msgstr "" -#: forms.py:290 +#: forms.py:297 msgid "You should select a context record." msgstr "" -#: forms.py:295 +#: forms.py:302 msgid "Year of the operation" msgstr "" -#: forms.py:297 +#: forms.py:304 msgid "Numeric reference" msgstr "" -#: forms.py:303 +#: forms.py:310 msgid "Town of the operation" msgstr "" -#: forms.py:305 +#: forms.py:312 msgid "Period of the context record" msgstr "" -#: forms.py:307 +#: forms.py:314 msgid "Unit type of the context record" msgstr "" -#: forms.py:320 +#: forms.py:327 msgid "Documentation search" msgstr "" -#: forms.py:322 +#: forms.py:329 msgid "You should select a document." msgstr "" diff --git a/archaeological_files/data_importer.py b/archaeological_files/data_importer.py index ba92c63ab..96b2ee007 100644 --- a/archaeological_files/data_importer.py +++ b/archaeological_files/data_importer.py @@ -23,7 +23,7 @@ import unicodecsv from django.conf import settings from ishtar_common.data_importer import * -from ishtar_common.models import Person, OrganizationType +from ishtar_common.models import OrganizationType from archaeological_operations.data_importer import * @@ -113,7 +113,7 @@ class FileImporterSraPdL(FilePostProcessing, Importer): None, # D, 4 ImportFormater( "general_contractor__title", # E, 5 - StrChoiceFormater(Person.TYPE, cli=True), + TypeFormater(models.TitleType), required=False, comment=u"Aménageur - titre"), None, # F, 6 diff --git a/archaeological_files/forms.py b/archaeological_files/forms.py index 369ffdaf0..26b839940 100644 --- a/archaeological_files/forms.py +++ b/archaeological_files/forms.py @@ -33,7 +33,8 @@ from ishtar_common.models import Person, PersonType, Organization, \ from archaeological_operations.models import ActType, AdministrativeAct, \ OperationType import models -from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect +from ishtar_common.forms import FinalForm, get_now, reverse_lazy, TableSelect, \ + ManageOldType from ishtar_common.forms_common import get_town_field from archaeological_operations.forms import AdministrativeActOpeForm, \ AdministrativeActOpeFormSelection, \ @@ -103,7 +104,8 @@ class FileSelect(TableSelect): def __init__(self, *args, **kwargs): super(FileSelect, self).__init__(*args, **kwargs) - self.fields['saisine_type'].choices = models.SaisineType.get_types() + self.fields['saisine_type'].choices = \ + models.SaisineType.get_types() self.fields['saisine_type'].help_text = models.SaisineType.get_help() self.fields['permit_type'].choices = models.PermitType.get_types() self.fields['permit_type'].help_text = models.PermitType.get_help() @@ -195,7 +197,7 @@ class DashboardForm(forms.Form): return fltr -class FileFormGeneral(forms.Form): +class FileFormGeneral(ManageOldType, forms.Form): form_label = _("General") associated_models = {'in_charge': Person, 'related_file': models.File, @@ -237,7 +239,8 @@ class FileFormGeneral(forms.Form): def __init__(self, *args, **kwargs): super(FileFormGeneral, self).__init__(*args, **kwargs) - self.fields['file_type'].choices = models.FileType.get_types() + self.fields['file_type'].choices = models.FileType.get_types( + initial=self.init_data.get('file_type')) self.fields['file_type'].help_text = models.FileType.get_help() q = models.File.objects\ .filter(internal_reference__isnull=False)\ @@ -276,7 +279,7 @@ RESPONSIBLE_PLANNING_SERVICE_ORGA, created = \ OrganizationType.objects.get_or_create(txt_idx='planning_service') -class FileFormPreventive(forms.Form): +class FileFormPreventive(ManageOldType, forms.Form): form_label = _(u"Preventive informations") associated_models = {'general_contractor': Person, 'saisine_type': models.SaisineType, @@ -322,14 +325,18 @@ class FileFormPreventive(forms.Form): def __init__(self, *args, **kwargs): super(FileFormPreventive, self).__init__(*args, **kwargs) - self.fields['saisine_type'].choices = models.SaisineType.get_types() - self.fields['saisine_type'].help_text = models.SaisineType.get_help() + if 'saisine_type' in self.fields: + self.fields['saisine_type'].choices = \ + models.SaisineType.get_types( + initial=self.init_data.get('saisine_type')) + self.fields['saisine_type'].help_text = \ + models.SaisineType.get_help() self.fields['permit_type'].choices = models.PermitType.get_types( - default='NP') + initial=self.init_data.get('permit_type'), default='NP') self.fields['permit_type'].help_text = models.PermitType.get_help() -class FileFormResearch(forms.Form): +class FileFormResearch(ManageOldType, forms.Form): form_label = _("Research archaeology") base_model = 'department' associated_models = {'scientist': Person, @@ -376,7 +383,9 @@ class FileFormResearch(forms.Form): def __init__(self, *args, **kwargs): super(FileFormResearch, self).__init__(*args, **kwargs) self.fields['requested_operation_type'].choices = \ - OperationType.get_types(dct={"preventive": False}) + OperationType.get_types( + dct={"preventive": False}, + initial=self.init_data.get('requested_operation_type')) self.fields['requested_operation_type'].help_text = \ OperationType.get_help() @@ -535,6 +544,7 @@ class AdministrativeActFileForm(AdministrativeActOpeForm): def __init__(self, *args, **kwargs): super(AdministrativeActFileForm, self).__init__(*args, **kwargs) self.fields['act_type'].choices = ActType.get_types( + initial=self.init_data.get('act_type'), dct={'intented_to': 'F'}) self.fields['act_type'].help_text = ActType.get_help( dct={'intented_to': 'F'}) diff --git a/archaeological_files/locale/django.pot b/archaeological_files/locale/django.pot index d1d5e5820..b8146add8 100644 --- a/archaeological_files/locale/django.pot +++ b/archaeological_files/locale/django.pot @@ -8,243 +8,243 @@ msgid "" msgstr "" -#: forms.py:51 forms.py:210 forms.py:254 forms.py:395 forms.py:422 +#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 #: models.py:76 templates/ishtar/sheet_file.html:139 msgid "Year" msgstr "" -#: forms.py:52 forms.py:215 forms.py:256 models.py:79 +#: forms.py:53 forms.py:217 forms.py:259 models.py:79 msgid "Numeric reference" msgstr "" -#: forms.py:54 forms.py:217 +#: forms.py:55 forms.py:219 msgid "Other reference" msgstr "" -#: forms.py:56 forms.py:430 +#: forms.py:57 forms.py:439 msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:59 forms.py:406 forms.py:433 models.py:512 +#: forms.py:60 forms.py:415 forms.py:442 models.py:512 msgid "Department" msgstr "" -#: forms.py:60 forms.py:442 +#: forms.py:61 forms.py:451 msgid "File name" msgstr "" -#: forms.py:61 forms.py:156 forms.py:221 models.py:87 +#: forms.py:62 forms.py:158 forms.py:223 models.py:87 msgid "File type" msgstr "" -#: forms.py:62 +#: forms.py:63 msgid "Is active?" msgstr "" -#: forms.py:63 forms.py:158 forms.py:318 +#: forms.py:64 forms.py:160 forms.py:321 msgid "Saisine type" msgstr "" -#: forms.py:64 forms.py:308 models.py:58 models.py:118 +#: forms.py:65 forms.py:311 models.py:58 models.py:118 msgid "Permit type" msgstr "" -#: forms.py:66 forms.py:311 models.py:119 +#: forms.py:67 forms.py:314 models.py:119 msgid "Permit reference" msgstr "" -#: forms.py:67 forms.py:227 forms.py:365 models.py:148 +#: forms.py:68 forms.py:229 forms.py:372 models.py:148 #: templates/ishtar/sheet_file.html:94 msgid "Comment" msgstr "" -#: forms.py:69 templates/ishtar/sheet_file.html:112 +#: forms.py:70 templates/ishtar/sheet_file.html:112 msgid "In charge" msgstr "" -#: forms.py:76 forms.py:286 forms.py:444 models.py:94 +#: forms.py:77 forms.py:289 forms.py:453 models.py:94 msgid "General contractor" msgstr "" -#: forms.py:83 forms.py:453 +#: forms.py:84 forms.py:462 msgid "Organization of general contractor" msgstr "" -#: forms.py:90 forms.py:476 +#: forms.py:91 forms.py:485 msgid "Created by" msgstr "" -#: forms.py:97 forms.py:484 +#: forms.py:98 forms.py:493 msgid "Modified by" msgstr "" -#: forms.py:127 +#: forms.py:129 msgid "Archaeological file search" msgstr "" -#: forms.py:141 +#: forms.py:143 msgid "You should select a file." msgstr "" -#: forms.py:144 forms.py:219 models.py:127 +#: forms.py:146 forms.py:221 models.py:127 msgid "Creation date" msgstr "" -#: forms.py:145 forms.py:321 models.py:129 +#: forms.py:147 forms.py:324 models.py:129 msgid "Reception date" msgstr "" -#: forms.py:150 +#: forms.py:152 msgid "Slicing" msgstr "" -#: forms.py:152 +#: forms.py:154 msgid "Department detail" msgstr "" -#: forms.py:154 +#: forms.py:156 msgid "Date get from" msgstr "" -#: forms.py:160 +#: forms.py:162 msgid "Date after" msgstr "" -#: forms.py:162 +#: forms.py:164 msgid "Date before" msgstr "" -#: forms.py:199 templates/ishtar/sheet_file.html:14 +#: forms.py:201 templates/ishtar/sheet_file.html:14 msgid "General" msgstr "" -#: forms.py:204 models.py:89 +#: forms.py:206 models.py:89 msgid "Person in charge" msgstr "" -#: forms.py:218 models.py:86 +#: forms.py:220 models.py:86 msgid "Name" msgstr "" -#: forms.py:223 models.py:131 +#: forms.py:225 models.py:131 msgid "Related file" msgstr "" -#: forms.py:231 models.py:139 +#: forms.py:233 models.py:139 msgid "Total surface (m2)" msgstr "" -#: forms.py:234 models.py:145 +#: forms.py:236 models.py:145 msgid "Main address" msgstr "" -#: forms.py:235 +#: forms.py:237 msgid "Main address - complement" msgstr "" -#: forms.py:247 +#: forms.py:250 #, python-format msgid "<br/>(last recorded: %s)" msgstr "" -#: forms.py:269 +#: forms.py:272 msgid "Another file with this numeric id exists." msgstr "" -#: forms.py:280 +#: forms.py:283 msgid "Preventive informations" msgstr "" -#: forms.py:298 models.py:106 +#: forms.py:301 models.py:106 msgid "Responsible for town planning service" msgstr "" -#: forms.py:314 models.py:142 +#: forms.py:317 models.py:142 msgid "Total developed surface (m2)" msgstr "" -#: forms.py:333 templates/ishtar/sheet_file.html:84 +#: forms.py:340 templates/ishtar/sheet_file.html:84 #: templates/ishtar/dashboards/dashboard_file.html:45 msgid "Research archaeology" msgstr "" -#: forms.py:341 models.py:151 templates/ishtar/sheet_file.html:85 +#: forms.py:348 models.py:151 templates/ishtar/sheet_file.html:85 msgid "Departments" msgstr "" -#: forms.py:352 models.py:160 +#: forms.py:359 models.py:160 msgid "Scientist in charge" msgstr "" -#: forms.py:354 models.py:154 templates/ishtar/sheet_file.html:87 +#: forms.py:361 models.py:154 templates/ishtar/sheet_file.html:87 msgid "Requested operation type" msgstr "" -#: forms.py:356 +#: forms.py:363 msgid "Lead organization" msgstr "" -#: forms.py:372 models.py:164 templates/ishtar/sheet_file.html:92 +#: forms.py:379 models.py:164 templates/ishtar/sheet_file.html:92 msgid "Classified area" msgstr "" -#: forms.py:374 models.py:166 templates/ishtar/sheet_file.html:93 +#: forms.py:381 models.py:166 templates/ishtar/sheet_file.html:93 msgid "Protected area" msgstr "" -#: forms.py:386 +#: forms.py:395 msgid "Would you like to close this archaeological file?" msgstr "" -#: forms.py:391 +#: forms.py:400 msgid "Would you like to delete this archaelogical file ?" msgstr "" -#: forms.py:396 forms.py:423 forms.py:546 +#: forms.py:405 forms.py:432 forms.py:556 msgid "Index" msgstr "" -#: forms.py:400 forms.py:427 forms.py:533 +#: forms.py:409 forms.py:436 forms.py:542 msgid "Act type" msgstr "" -#: forms.py:401 +#: forms.py:410 msgid "Object (full text search)" msgstr "" -#: forms.py:428 +#: forms.py:437 msgid "Indexed?" msgstr "" -#: forms.py:434 +#: forms.py:443 msgid "Object" msgstr "" -#: forms.py:438 +#: forms.py:447 msgid "Signature date after" msgstr "" -#: forms.py:440 +#: forms.py:449 msgid "Signature date before" msgstr "" -#: forms.py:461 +#: forms.py:470 msgid "File numeric reference" msgstr "" -#: forms.py:462 +#: forms.py:471 msgid "File year" msgstr "" -#: forms.py:464 +#: forms.py:473 msgid "File other reference" msgstr "" -#: forms.py:466 +#: forms.py:475 msgid "File in charge" msgstr "" -#: forms.py:474 +#: forms.py:483 msgid "File permit reference" msgstr "" diff --git a/archaeological_files/models.py b/archaeological_files/models.py index 1cfbe35d3..98223d7ff 100644 --- a/archaeological_files/models.py +++ b/archaeological_files/models.py @@ -30,7 +30,7 @@ from ishtar_common.utils import cached_label_changed, get_cache from ishtar_common.models import GeneralType, BaseHistorizedItem, \ HistoricalRecords, OwnPerms, Person, Organization, Department, Town, \ - Dashboard, DashboardFormItem, IshtarUser, ValueGetter, ShortMenuItem, \ + Dashboard, DashboardFormItem, ValueGetter, ShortMenuItem, \ OperationType, get_external_id from archaeological_operations.models import get_values_town_related, \ @@ -243,7 +243,7 @@ class File(ClosedItem, BaseHistorizedItem, OwnPerms, ValueGetter, if self.general_contractor: if self.general_contractor.name: address = u" ".join([ - getattr(self.general_contractor, key) + unicode(getattr(self.general_contractor, key)) for key in ('title', 'surname', 'name') if getattr(self.general_contractor, key)]) elif self.general_contractor.raw_name: diff --git a/archaeological_files/tests.py b/archaeological_files/tests.py index 030bc1624..63b8550e2 100644 --- a/archaeological_files/tests.py +++ b/archaeological_files/tests.py @@ -50,7 +50,7 @@ class FileInit(object): self.extra_models['person_type'] = person_type self.model_list.append(person_type) - person = models.Person(title='Mr', surname='Surname', name='Name', + person = models.Person(surname='Surname', name='Name', history_modifier=self.o_user) person.save() self.extra_models['person'] = person diff --git a/archaeological_files_pdl/forms.py b/archaeological_files_pdl/forms.py index a182d0f0e..99dc97137 100644 --- a/archaeological_files_pdl/forms.py +++ b/archaeological_files_pdl/forms.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2014-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2014-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 @@ -27,7 +27,7 @@ from django.utils.translation import ugettext_lazy as _ from ishtar_common.models import Person, Town, Department, valid_id from archaeological_files import models -from ishtar_common.forms import get_now, reverse_lazy +from ishtar_common.forms import get_now, reverse_lazy, ManageOldType from archaeological_files.forms import GENERAL_CONTRACTOR, \ GENERAL_CONTRACTOR_ORGA, RESPONSIBLE_PLANNING_SERVICE, \ RESPONSIBLE_PLANNING_SERVICE_ORGA @@ -37,7 +37,7 @@ from archaeological_operations.forms import SRA_AGENT from ishtar_common import widgets -class FileFormGeneral(forms.Form): +class FileFormGeneral(ManageOldType, forms.Form): form_label = _("General") associated_models = {'file_type': models.FileType} file_type = forms.ChoiceField(label=_("File type"), choices=[]) @@ -52,7 +52,8 @@ class FileFormGeneral(forms.Form): def __init__(self, *args, **kwargs): super(FileFormGeneral, self).__init__(*args, **kwargs) - self.fields['file_type'].choices = models.FileType.get_types() + self.fields['file_type'].choices = models.FileType.get_types( + initial=self.init_data.get('file_type')) self.fields['file_type'].help_text = models.FileType.get_help() def clean_reception_date(self): @@ -63,7 +64,7 @@ class FileFormGeneral(forms.Form): return value -class FileFormPreventiveType(forms.Form): +class FileFormPreventiveType(ManageOldType, forms.Form): form_label = u"Saisine" associated_models = {'saisine_type': models.SaisineType, 'permit_type': models.PermitType} @@ -74,10 +75,11 @@ class FileFormPreventiveType(forms.Form): def __init__(self, *args, **kwargs): super(FileFormPreventiveType, self).__init__(*args, **kwargs) - self.fields['saisine_type'].choices = models.SaisineType.get_types() + self.fields['saisine_type'].choices = models.SaisineType.get_types( + initial=self.init_data.get('saisine_type')) self.fields['saisine_type'].help_text = models.SaisineType.get_help() - self.fields['permit_type'].choices = \ - models.PermitType.get_types(default='NP') + self.fields['permit_type'].choices = models.PermitType.get_types( + default='NP', initial=self.init_data.get('permit_type')) self.fields['permit_type'].help_text = models.PermitType.get_help() diff --git a/archaeological_files_pdl/locale/django.pot b/archaeological_files_pdl/locale/django.pot index a4f73fea5..5c3d03a37 100644 --- a/archaeological_files_pdl/locale/django.pot +++ b/archaeological_files_pdl/locale/django.pot @@ -15,7 +15,7 @@ msgstr "" msgid "File type" msgstr "" -#: forms.py:44 forms.py:401 +#: forms.py:44 forms.py:403 msgid "Year" msgstr "" @@ -27,97 +27,97 @@ msgstr "" msgid "Reception date" msgstr "" -#: forms.py:62 +#: forms.py:63 msgid "Reception date cannot be after today." msgstr "" -#: forms.py:70 +#: forms.py:71 msgid "Permit type" msgstr "" -#: forms.py:72 +#: forms.py:73 msgid "Saisine type" msgstr "" -#: forms.py:85 +#: forms.py:87 msgid "Planning" msgstr "" -#: forms.py:88 +#: forms.py:90 msgid "Planning name" msgstr "" -#: forms.py:91 forms.py:121 +#: forms.py:93 forms.py:123 #: templates/ishtar/wizard/wizard_preventiveplanning.html:31 msgid "Towns" msgstr "" -#: forms.py:93 forms.py:123 +#: forms.py:95 forms.py:125 #: templates/ishtar/wizard/wizard_preventiveplanning.html:41 msgid "Departments" msgstr "" -#: forms.py:94 forms.py:124 +#: forms.py:96 forms.py:126 msgid "Locality" msgstr "" -#: forms.py:97 forms.py:127 +#: forms.py:99 forms.py:129 msgid "Address (number/street)" msgstr "" -#: forms.py:98 forms.py:128 +#: forms.py:100 forms.py:130 msgid "Number/street" msgstr "" -#: forms.py:100 forms.py:130 +#: forms.py:102 forms.py:132 msgid "Postal code" msgstr "" -#: forms.py:105 +#: forms.py:107 msgid "Total surface (m2)" msgstr "" -#: forms.py:110 +#: forms.py:112 msgid "Total developed surface (m2)" msgstr "" -#: forms.py:117 +#: forms.py:119 msgid "Address" msgstr "" -#: forms.py:231 forms.py:235 forms.py:265 forms.py:268 +#: forms.py:233 forms.py:237 forms.py:267 forms.py:270 msgid "General contractor" msgstr "" -#: forms.py:250 forms.py:362 +#: forms.py:252 forms.py:364 msgid "In charge" msgstr "" -#: forms.py:340 +#: forms.py:342 msgid "Town planning service" msgstr "" -#: forms.py:344 +#: forms.py:346 msgid "File reference" msgstr "" -#: forms.py:347 +#: forms.py:349 msgid "Planning service" msgstr "" -#: forms.py:381 +#: forms.py:383 msgid "Person in charge" msgstr "" -#: forms.py:393 +#: forms.py:395 msgid "Related file" msgstr "" -#: forms.py:397 +#: forms.py:399 msgid "Comment" msgstr "" -#: forms.py:404 +#: forms.py:406 msgid "Numeric reference" msgstr "" diff --git a/archaeological_finds/forms.py b/archaeological_finds/forms.py index 1ca359cce..6c6f41457 100644 --- a/archaeological_finds/forms.py +++ b/archaeological_finds/forms.py @@ -41,7 +41,8 @@ import models from ishtar_common import widgets from archaeological_operations.widgets import OAWidget from ishtar_common.forms import FormSet, FloatField, \ - get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm + get_form_selection, reverse_lazy, TableSelect, get_now, FinalForm, \ + ManageOldType from ishtar_common.forms_common import get_town_field, SourceSelect @@ -77,7 +78,7 @@ class RecordFormSelection(forms.Form): cr.operation.pk) -class FindForm(forms.Form): +class FindForm(ManageOldType, forms.Form): file_upload = True form_label = _("Find") base_models = ['get_first_base_find', 'object_type', 'material_type', @@ -147,22 +148,28 @@ class FindForm(forms.Form): def __init__(self, *args, **kwargs): super(FindForm, self).__init__(*args, **kwargs) self.fields['checked'].choices = models.CHECK_CHOICES - self.fields['material_type'].choices = models.MaterialType.get_types() self.fields['material_type'].help_text = models.MaterialType.get_help() self.fields['conservatory_state'].choices = \ - models.ConservatoryState.get_types() + models.ConservatoryState.get_types( + initial=self.init_data.get('conservatory_state')) self.fields['conservatory_state'].help_text = \ models.ConservatoryState.get_help() self.fields['preservation_to_consider'].choices = \ - models.PreservationType.get_types(empty_first=False) + models.PreservationType.get_types( + empty_first=False, + initial=self.init_data.get('preservation_to_consider')) self.fields['preservation_to_consider'].help_text = \ models.PreservationType.get_help() self.fields['integritie'].choices = \ - models.IntegrityType.get_types(empty_first=False) + models.IntegrityType.get_types( + empty_first=False, + initial=self.init_data.get('integritie')) self.fields['integritie'].help_text = \ models.IntegrityType.get_help() self.fields['remarkabilitie'].choices = \ - models.RemarkabilityType.get_types(empty_first=False) + models.RemarkabilityType.get_types( + empty_first=False, + initial=self.init_data.get('remarkabilitie')) self.fields['remarkabilitie'].help_text = \ models.RemarkabilityType.get_help() self.fields['estimated_value'].label = u"{} ({})".format( @@ -170,7 +177,7 @@ class FindForm(forms.Form): get_current_profile().currency) -class DateForm(forms.Form): +class DateForm(ManageOldType, forms.Form): form_label = _("Dating") base_model = 'dating' associated_models = {'dating_type': DatingType, @@ -189,11 +196,14 @@ class DateForm(forms.Form): def __init__(self, *args, **kwargs): super(DateForm, self).__init__(*args, **kwargs) - self.fields['dating_type'].choices = DatingType.get_types() + self.fields['dating_type'].choices = DatingType.get_types( + initial=self.init_data.get('dating_type')) self.fields['dating_type'].help_text = DatingType.get_help() - self.fields['period'].choices = Period.get_types() + self.fields['period'].choices = Period.get_types( + initial=self.init_data.get('period')) self.fields['period'].help_text = Period.get_help() - self.fields['quality'].choices = DatingQuality.get_types() + self.fields['quality'].choices = DatingQuality.get_types( + initial=self.init_data.get('quality')) self.fields['quality'].help_text = DatingQuality.get_help() @@ -405,7 +415,7 @@ def check_treatment(form_name, type_key, type_list=[], not_type_list=[]): return func -class ResultFindForm(forms.Form): +class ResultFindForm(ManageOldType, forms.Form): form_label = _(u"Resulting find") associated_models = {'material_type': models.MaterialType} label = forms.CharField( @@ -420,7 +430,8 @@ class ResultFindForm(forms.Form): def __init__(self, *args, **kwargs): super(ResultFindForm, self).__init__(*args, **kwargs) - self.fields['material_type'].choices = models.MaterialType.get_types() + self.fields['material_type'].choices = models.MaterialType.get_types( + initial=self.init_data.get('material_type')) self.fields['material_type'].help_text = models.MaterialType.get_help() ResultFindFormSet = formset_factory(ResultFindForm, can_delete=True, @@ -555,7 +566,7 @@ class FindBasketAddItemForm(forms.Form): return basket -class BaseTreatmentForm(SelectFindBasketForm): +class BaseTreatmentForm(ManageOldType, SelectFindBasketForm): form_label = _(u"Base treatment") associated_models = {'treatment_type': models.TreatmentType, 'person': Person, @@ -584,6 +595,7 @@ class BaseTreatmentForm(SelectFindBasketForm): def __init__(self, *args, **kwargs): super(BaseTreatmentForm, self).__init__(*args, **kwargs) self.fields['treatment_type'].choices = models.TreatmentType.get_types( + initial=self.init_data.get('treatment_type'), exclude=['packaging']) self.fields['treatment_type'].help_text = \ models.TreatmentType.get_help(exclude=['packaging']) diff --git a/archaeological_finds/locale/django.pot b/archaeological_finds/locale/django.pot index 19327cda6..ba5742288 100644 --- a/archaeological_finds/locale/django.pot +++ b/archaeological_finds/locale/django.pot @@ -8,299 +8,299 @@ msgid "" msgstr "" -#: forms.py:49 forms.py:53 wizards.py:62 +#: forms.py:50 forms.py:54 wizards.py:62 msgid "Context record" msgstr "" -#: forms.py:82 ishtar_menu.py:31 models.py:384 models.py:649 models.py:747 +#: forms.py:83 ishtar_menu.py:31 models.py:384 models.py:649 models.py:747 #: models.py:891 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "" -#: forms.py:93 forms.py:208 forms.py:412 models.py:113 models.py:317 +#: forms.py:94 forms.py:218 forms.py:422 models.py:113 models.py:317 msgid "Free ID" msgstr "" -#: forms.py:95 models.py:365 +#: forms.py:96 models.py:365 msgid "Previous ID" msgstr "" -#: forms.py:96 forms.py:237 forms.py:577 models.py:117 models.py:318 +#: forms.py:97 forms.py:247 forms.py:588 models.py:117 models.py:318 #: models.py:681 msgid "Description" msgstr "" -#: forms.py:99 forms.py:239 models.py:128 +#: forms.py:100 forms.py:249 models.py:128 msgid "Batch/object" msgstr "" -#: forms.py:101 models.py:346 +#: forms.py:102 models.py:346 msgid "Is complete?" msgstr "" -#: forms.py:104 forms.py:228 forms.py:416 models.py:48 +#: forms.py:105 forms.py:238 forms.py:426 models.py:48 msgid "Material type" msgstr "" -#: forms.py:105 forms.py:232 models.py:58 models.py:322 +#: forms.py:106 forms.py:242 models.py:58 models.py:322 msgid "Conservatory state" msgstr "" -#: forms.py:108 models.py:324 +#: forms.py:109 models.py:324 msgid "Conservatory comment" msgstr "" -#: forms.py:111 models.py:90 models.py:349 +#: forms.py:112 models.py:90 models.py:349 msgid "Object types" msgstr "" -#: forms.py:113 forms.py:231 models.py:65 +#: forms.py:114 forms.py:241 models.py:65 msgid "Preservation type" msgstr "" -#: forms.py:116 forms.py:234 models.py:351 +#: forms.py:117 forms.py:244 models.py:351 msgid "Integrity" msgstr "" -#: forms.py:119 forms.py:235 models.py:353 +#: forms.py:120 forms.py:245 models.py:353 msgid "Remarkability" msgstr "" -#: forms.py:121 models.py:355 +#: forms.py:122 models.py:355 msgid "Length (cm)" msgstr "" -#: forms.py:122 models.py:356 +#: forms.py:123 models.py:356 msgid "Width (cm)" msgstr "" -#: forms.py:123 models.py:357 +#: forms.py:124 models.py:357 msgid "Height (cm)" msgstr "" -#: forms.py:124 models.py:358 +#: forms.py:125 models.py:358 msgid "Diameter (cm)" msgstr "" -#: forms.py:125 forms.py:417 models.py:329 +#: forms.py:126 forms.py:427 models.py:329 msgid "Volume (l)" msgstr "" -#: forms.py:126 forms.py:418 models.py:330 +#: forms.py:127 forms.py:428 models.py:330 msgid "Weight (g)" msgstr "" -#: forms.py:128 models.py:359 +#: forms.py:129 models.py:359 msgid "Dimensions comment" msgstr "" -#: forms.py:129 forms.py:419 models.py:333 +#: forms.py:130 forms.py:429 models.py:333 msgid "Find number" msgstr "" -#: forms.py:130 models.py:361 +#: forms.py:131 models.py:361 msgid "Mark" msgstr "" -#: forms.py:131 forms.py:241 models.py:367 +#: forms.py:132 forms.py:251 models.py:367 msgid "Check" msgstr "" -#: forms.py:133 models.py:369 +#: forms.py:134 models.py:369 msgid "Check date" msgstr "" -#: forms.py:134 models.py:118 models.py:362 models.py:682 +#: forms.py:135 models.py:118 models.py:362 models.py:682 msgid "Comment" msgstr "" -#: forms.py:137 models.py:363 +#: forms.py:138 models.py:363 msgid "Comment on dating" msgstr "" -#: forms.py:138 models.py:371 +#: forms.py:139 models.py:371 msgid "Estimated value" msgstr "" -#: forms.py:140 +#: forms.py:141 msgid "Image" msgstr "" -#: forms.py:141 +#: forms.py:142 #, python-format msgid "" "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" "p>" msgstr "" -#: forms.py:174 forms.py:202 models.py:341 +#: forms.py:181 forms.py:212 models.py:341 msgid "Dating" msgstr "" -#: forms.py:179 forms.py:226 +#: forms.py:186 forms.py:236 msgid "Period" msgstr "" -#: forms.py:180 forms.py:579 models.py:695 models.py:760 models.py:896 +#: forms.py:187 forms.py:590 models.py:695 models.py:760 models.py:896 #: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 msgid "Start date" msgstr "" -#: forms.py:182 forms.py:581 models.py:696 models.py:761 models.py:897 +#: forms.py:189 forms.py:592 models.py:696 models.py:761 models.py:897 #: templates/ishtar/sheet_find.html:82 templates/ishtar/sheet_find.html:111 msgid "End date" msgstr "" -#: forms.py:183 +#: forms.py:190 msgid "Quality" msgstr "" -#: forms.py:185 +#: forms.py:192 msgid "Dating type" msgstr "" -#: forms.py:187 +#: forms.py:194 msgid "Precise dating" msgstr "" -#: forms.py:206 models.py:136 +#: forms.py:216 models.py:136 msgid "Short ID" msgstr "" -#: forms.py:207 models.py:139 +#: forms.py:217 models.py:139 msgid "Complete ID" msgstr "" -#: forms.py:211 +#: forms.py:221 msgid "Year" msgstr "" -#: forms.py:214 +#: forms.py:224 msgid "Code PATRIARCHE" msgstr "" -#: forms.py:218 +#: forms.py:228 msgid "Archaelogical site" msgstr "" -#: forms.py:224 +#: forms.py:234 msgid "Search within operation relations" msgstr "" -#: forms.py:229 models.py:89 +#: forms.py:239 models.py:89 msgid "Object type" msgstr "" -#: forms.py:242 +#: forms.py:252 msgid "Has an image?" msgstr "" -#: forms.py:284 forms.py:297 views.py:120 +#: forms.py:294 forms.py:307 views.py:120 msgid "Find search" msgstr "" -#: forms.py:311 +#: forms.py:321 msgid "Upstream finds" msgstr "" -#: forms.py:313 models.py:385 +#: forms.py:323 models.py:385 msgid "Finds" msgstr "" -#: forms.py:323 +#: forms.py:333 msgid "You should at least select one archaeological find." msgstr "" -#: forms.py:409 +#: forms.py:419 msgid "Resulting find" msgstr "" -#: forms.py:414 +#: forms.py:424 msgid "Precise description" msgstr "" -#: forms.py:428 +#: forms.py:439 msgid "Resulting finds" msgstr "" -#: forms.py:433 +#: forms.py:444 msgid "Would you like to delete this find?" msgstr "" -#: forms.py:437 +#: forms.py:448 msgid "Upstream find" msgstr "" -#: forms.py:448 +#: forms.py:459 msgid "Archaeological find search" msgstr "" -#: forms.py:450 +#: forms.py:461 msgid "You should select an archaeological find." msgstr "" -#: forms.py:455 +#: forms.py:466 msgid "Year of the operation" msgstr "" -#: forms.py:457 +#: forms.py:468 msgid "Numeric reference" msgstr "" -#: forms.py:464 +#: forms.py:475 msgid "Period of the archaelogical find" msgstr "" -#: forms.py:466 +#: forms.py:477 msgid "Material type of the archaelogical find" msgstr "" -#: forms.py:468 +#: forms.py:479 msgid "Description of the archaelogical find" msgstr "" -#: forms.py:480 +#: forms.py:491 msgid "Documentation search" msgstr "" -#: forms.py:482 +#: forms.py:493 msgid "You should select a document." msgstr "" -#: forms.py:499 +#: forms.py:510 msgid "Another basket already exist with this name." msgstr "" -#: forms.py:509 ishtar_menu.py:60 +#: forms.py:520 ishtar_menu.py:60 msgid "Basket" msgstr "" -#: forms.py:559 +#: forms.py:570 msgid "Base treatment" msgstr "" -#: forms.py:564 models.py:671 models.py:684 models.py:759 +#: forms.py:575 models.py:671 models.py:684 models.py:759 msgid "Treatment type" msgstr "" -#: forms.py:566 models.py:693 models.py:764 +#: forms.py:577 models.py:693 models.py:764 #: templates/ishtar/sheet_find.html:79 templates/ishtar/sheet_find.html:108 msgid "Doer" msgstr "" -#: forms.py:572 models.py:686 models.py:762 +#: forms.py:583 models.py:686 models.py:762 msgid "Location" msgstr "" -#: forms.py:592 +#: forms.py:604 msgid "Leave it blank if you want to select a single item" msgstr "" -#: forms.py:599 +#: forms.py:611 msgid "This treatment type is not available." msgstr "" -#: forms.py:603 +#: forms.py:615 msgid "This treatment needs a basket." msgstr "" diff --git a/archaeological_operations/forms.py b/archaeological_operations/forms.py index d524fdbc5..247dcc20a 100644 --- a/archaeological_operations/forms.py +++ b/archaeological_operations/forms.py @@ -45,7 +45,8 @@ from widgets import ParcelWidget, SelectParcelWidget, OAWidget from ishtar_common import widgets from ishtar_common.forms import FinalForm, FormSet, get_now, \ - reverse_lazy, get_form_selection, TableSelect, get_data_from_formset + reverse_lazy, get_form_selection, TableSelect, get_data_from_formset, \ + ManageOldType from ishtar_common.forms_common import TownFormSet, SourceForm, SourceSelect, \ get_town_field @@ -368,7 +369,7 @@ ParcelFormSet = formset_factory(ParcelForm, can_delete=True, ParcelFormSet.form_label = _(u"Parcels") -class RecordRelationsForm(forms.Form): +class RecordRelationsForm(ManageOldType, forms.Form): base_model = 'right_relation' current_model = models.RelationType current_related_model = models.Operation @@ -386,7 +387,8 @@ class RecordRelationsForm(forms.Form): def __init__(self, *args, **kwargs): super(RecordRelationsForm, self).__init__(*args, **kwargs) self.fields['relation_type'].choices = \ - models.RelationType.get_types() + models.RelationType.get_types( + initial=self.init_data.get('relation_type')) @classmethod def _format_lst(cls, current): @@ -709,7 +711,7 @@ class DashboardForm(forms.Form): return fltr -class OperationFormGeneral(forms.Form): +class OperationFormGeneral(ManageOldType, forms.Form): form_label = _(u"General") base_model = 'archaeological_site' associated_models = {'scientist': Person, @@ -804,11 +806,13 @@ class OperationFormGeneral(forms.Form): def __init__(self, *args, **kwargs): super(OperationFormGeneral, self).__init__(*args, **kwargs) self.fields['operation_type'].choices = \ - models.OperationType.get_types() + models.OperationType.get_types( + initial=self.init_data.get('operation_type')) self.fields['operation_type'].help_text = \ models.OperationType.get_help() self.fields['report_processing'].choices = \ - models.ReportState.get_types() + models.ReportState.get_types( + initial=self.init_data.get('report_processing')) self.fields['report_processing'].help_text = \ models.ReportState.get_help() self.fields['record_quality'].choices = \ @@ -1003,7 +1007,7 @@ class SelectedParcelFormSet(forms.Form): """ -class RemainForm(forms.Form): +class RemainForm(ManageOldType, forms.Form): form_label = _("Remain types") base_model = 'remain' associated_models = {'remain': models.RemainType} @@ -1014,11 +1018,12 @@ class RemainForm(forms.Form): def __init__(self, *args, **kwargs): super(RemainForm, self).__init__(*args, **kwargs) self.fields['remain'].choices = models.RemainType.get_types( + initial=self.init_data.get('remain'), empty_first=False) self.fields['remain'].help_text = models.RemainType.get_help() -class PeriodForm(forms.Form): +class PeriodForm(ManageOldType, forms.Form): form_label = _("Periods") base_model = 'period' associated_models = {'period': models.Period} @@ -1029,11 +1034,12 @@ class PeriodForm(forms.Form): def __init__(self, *args, **kwargs): super(PeriodForm, self).__init__(*args, **kwargs) self.fields['period'].choices = models.Period.get_types( + initial=self.init_data.get('period'), empty_first=False) self.fields['period'].help_text = models.Period.get_help() -class ArchaeologicalSiteForm(forms.Form): +class ArchaeologicalSiteForm(ManageOldType, forms.Form): reference = forms.CharField(label=_(u"Reference"), max_length=20) name = forms.CharField(label=_(u"Name"), max_length=200, required=False) periods = forms.MultipleChoiceField( @@ -1049,10 +1055,14 @@ class ArchaeologicalSiteForm(forms.Form): kwargs.pop('limits') super(ArchaeologicalSiteForm, self).__init__(*args, **kwargs) self.fields['periods'].choices = \ - models.Period.get_types(empty_first=False) + models.Period.get_types( + empty_first=False, + initial=self.init_data.get('periods')) self.fields['periods'].help_text = models.Period.get_help() self.fields['remains'].choices = \ - models.RemainType.get_types(empty_first=False) + models.RemainType.get_types( + initial=self.init_data.get('remains'), + empty_first=False) self.fields['remains'].help_text = models.RemainType.get_help() def clean_reference(self): @@ -1260,7 +1270,7 @@ class AdministrativeActOpeFormSelection(forms.Form): return cleaned_data -class AdministrativeActOpeForm(forms.Form): +class AdministrativeActOpeForm(ManageOldType, forms.Form): form_label = _("General") associated_models = {'act_type': models.ActType, } # 'signatory':Person} @@ -1280,6 +1290,7 @@ class AdministrativeActOpeForm(forms.Form): def __init__(self, *args, **kwargs): super(AdministrativeActOpeForm, self).__init__(*args, **kwargs) self.fields['act_type'].choices = models.ActType.get_types( + initial=self.init_data.get('act_type'), dct={'intented_to': 'O'}) self.fields['act_type'].help_text = models.ActType.get_help( dct={'intented_to': 'O'}) diff --git a/archaeological_operations/locale/django.pot b/archaeological_operations/locale/django.pot index 7c2ea0d62..5a84d8c91 100644 --- a/archaeological_operations/locale/django.pot +++ b/archaeological_operations/locale/django.pot @@ -8,12 +8,12 @@ msgid "" msgstr "" -#: forms.py:66 forms.py:368 forms.py:952 forms.py:974 forms.py:978 +#: forms.py:67 forms.py:369 forms.py:956 forms.py:978 forms.py:982 #: models.py:815 templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "" -#: forms.py:69 forms.py:202 forms.py:928 models.py:801 +#: forms.py:70 forms.py:203 forms.py:932 models.py:801 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -22,92 +22,92 @@ msgstr "" msgid "Town" msgstr "" -#: forms.py:71 forms.py:457 forms.py:731 forms.py:1192 models.py:194 +#: forms.py:72 forms.py:459 forms.py:733 forms.py:1202 models.py:194 #: models.py:618 models.py:799 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "" -#: forms.py:74 models.py:802 +#: forms.py:75 models.py:802 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "" -#: forms.py:77 models.py:804 +#: forms.py:78 models.py:804 msgid "Parcel number" msgstr "" -#: forms.py:79 models.py:806 models.py:823 models.py:872 +#: forms.py:80 models.py:806 models.py:823 models.py:872 msgid "Public domain" msgstr "" -#: forms.py:123 +#: forms.py:124 msgid "Town section is required." msgstr "" -#: forms.py:167 +#: forms.py:168 msgid "Current parcels" msgstr "" -#: forms.py:169 +#: forms.py:170 msgid "Deleted parcels" msgstr "" -#: forms.py:205 +#: forms.py:206 msgid "Full text input" msgstr "" -#: forms.py:207 +#: forms.py:208 msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\"" msgstr "" -#: forms.py:362 +#: forms.py:363 msgid "There are identical parcels." msgstr "" -#: forms.py:377 +#: forms.py:378 msgid "Relation type" msgstr "" -#: forms.py:380 ishtar_menu.py:30 models.py:276 models.py:518 models.py:543 +#: forms.py:381 ishtar_menu.py:30 models.py:276 models.py:518 models.py:543 #: models.py:559 models.py:610 models.py:798 wizards.py:338 wizards.py:349 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "" -#: forms.py:399 +#: forms.py:401 msgid ":" msgstr "" -#: forms.py:407 forms.py:585 forms.py:1157 +#: forms.py:409 forms.py:587 forms.py:1167 msgid "You should select an operation." msgstr "" -#: forms.py:411 +#: forms.py:413 msgid "You should select a relation type." msgstr "" -#: forms.py:441 +#: forms.py:443 msgid "Current relations" msgstr "" -#: forms.py:443 +#: forms.py:445 msgid "Deleted relations" msgstr "" -#: forms.py:447 templates/ishtar/sheet_operation.html:114 +#: forms.py:449 templates/ishtar/sheet_operation.html:114 msgid "Relations" msgstr "" -#: forms.py:458 forms.py:1163 +#: forms.py:460 forms.py:1173 msgid "Numeric reference" msgstr "" -#: forms.py:464 forms.py:1203 +#: forms.py:466 forms.py:1213 msgid "Parcel (section/number/public domain)" msgstr "" -#: forms.py:467 forms.py:1206 models.py:519 +#: forms.py:469 forms.py:1216 models.py:519 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -115,404 +115,404 @@ msgstr "" msgid "Department" msgstr "" -#: forms.py:468 forms.py:1038 models.py:78 +#: forms.py:470 forms.py:1044 models.py:78 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8 msgid "Name" msgstr "" -#: forms.py:470 forms.py:652 forms.py:729 forms.py:1169 models.py:202 +#: forms.py:472 forms.py:654 forms.py:731 forms.py:1179 models.py:202 msgid "Operation type" msgstr "" -#: forms.py:472 +#: forms.py:474 msgid "Is open?" msgstr "" -#: forms.py:481 forms.py:758 models.py:191 +#: forms.py:483 forms.py:760 models.py:191 msgid "In charge" msgstr "" -#: forms.py:488 models.py:604 +#: forms.py:490 models.py:604 msgid "Scientist in charge" msgstr "" -#: forms.py:490 forms.py:654 forms.py:749 models.py:189 +#: forms.py:492 forms.py:656 forms.py:751 models.py:189 msgid "Operator" msgstr "" -#: forms.py:497 forms.py:1043 models.py:82 models.py:204 +#: forms.py:499 forms.py:1049 models.py:82 models.py:204 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "" -#: forms.py:498 forms.py:1022 forms.py:1040 models.py:80 models.py:209 +#: forms.py:500 forms.py:1027 forms.py:1046 models.py:80 models.py:209 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "" -#: forms.py:499 +#: forms.py:501 msgid "Started before" msgstr "" -#: forms.py:501 +#: forms.py:503 msgid "Started after" msgstr "" -#: forms.py:503 +#: forms.py:505 msgid "Ended before" msgstr "" -#: forms.py:505 +#: forms.py:507 msgid "Ended after" msgstr "" -#: forms.py:508 +#: forms.py:510 msgid "Search within relations" msgstr "" -#: forms.py:510 forms.py:797 models.py:255 +#: forms.py:512 forms.py:799 models.py:255 msgid "Comment" msgstr "" -#: forms.py:511 +#: forms.py:513 msgid "Abstract (full text search)" msgstr "" -#: forms.py:512 forms.py:799 models.py:267 +#: forms.py:514 forms.py:801 models.py:267 msgid "Record quality" msgstr "" -#: forms.py:513 forms.py:781 models.py:221 +#: forms.py:515 forms.py:783 models.py:221 msgid "Report processing" msgstr "" -#: forms.py:515 forms.py:802 models.py:262 +#: forms.py:517 forms.py:804 models.py:262 msgid "Virtual operation" msgstr "" -#: forms.py:517 forms.py:1083 +#: forms.py:519 forms.py:1093 msgid "Archaelogical site" msgstr "" -#: forms.py:523 forms.py:1210 +#: forms.py:525 forms.py:1220 msgid "Created by" msgstr "" -#: forms.py:529 forms.py:1216 +#: forms.py:531 forms.py:1226 msgid "Modified by" msgstr "" -#: forms.py:572 forms.py:1155 views.py:247 +#: forms.py:574 forms.py:1165 views.py:247 msgid "Operation search" msgstr "" -#: forms.py:616 +#: forms.py:618 msgid "Associated file" msgstr "" -#: forms.py:620 forms.py:876 models.py:615 wizards.py:76 +#: forms.py:622 forms.py:880 models.py:615 wizards.py:76 msgid "Archaelogical file" msgstr "" -#: forms.py:627 forms.py:629 models.py:269 +#: forms.py:629 forms.py:631 models.py:269 msgid "Abstract" msgstr "" -#: forms.py:632 +#: forms.py:634 msgid "months" msgstr "" -#: forms.py:632 +#: forms.py:634 msgid "years" msgstr "" -#: forms.py:634 models.py:175 +#: forms.py:636 models.py:175 msgid "Creation date" msgstr "" -#: forms.py:635 +#: forms.py:637 msgid "Start of field work" msgstr "" -#: forms.py:637 +#: forms.py:639 msgid "All" msgstr "" -#: forms.py:638 +#: forms.py:640 msgid "Preventive" msgstr "" -#: forms.py:639 +#: forms.py:641 msgid "Research" msgstr "" -#: forms.py:643 +#: forms.py:645 msgid "Slicing" msgstr "" -#: forms.py:646 +#: forms.py:648 msgid "Department detail" msgstr "" -#: forms.py:648 +#: forms.py:650 msgid "Date get from" msgstr "" -#: forms.py:650 +#: forms.py:652 msgid "Preventive/Research" msgstr "" -#: forms.py:656 +#: forms.py:658 msgid "Date after" msgstr "" -#: forms.py:658 +#: forms.py:660 msgid "Date before" msgstr "" -#: forms.py:660 +#: forms.py:662 msgid "With reports" msgstr "" -#: forms.py:661 +#: forms.py:663 msgid "With finds" msgstr "" -#: forms.py:713 forms.py:1264 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:715 forms.py:1274 templates/ishtar/sheet_administrativeact.html:13 #: templates/ishtar/sheet_operation.html:30 msgid "General" msgstr "" -#: forms.py:727 models.py:254 +#: forms.py:729 models.py:254 msgid "Generic name" msgstr "" -#: forms.py:736 models.py:223 +#: forms.py:738 models.py:223 msgid "Old code" msgstr "" -#: forms.py:739 +#: forms.py:741 msgid "Head scientist" msgstr "" -#: forms.py:755 models.py:253 +#: forms.py:757 models.py:253 msgid "Operator reference" msgstr "" -#: forms.py:767 +#: forms.py:769 msgid "Total surface (m2)" msgstr "" -#: forms.py:774 models.py:50 models.py:178 models.py:988 +#: forms.py:776 models.py:50 models.py:178 models.py:988 msgid "Start date" msgstr "" -#: forms.py:776 models.py:180 +#: forms.py:778 models.py:180 msgid "Excavation end date" msgstr "" -#: forms.py:779 models.py:181 +#: forms.py:781 models.py:181 msgid "Report delivery date" msgstr "" -#: forms.py:829 +#: forms.py:833 msgid "" "If you want to set an excavation end date you have to provide a start date." msgstr "" -#: forms.py:834 +#: forms.py:838 msgid "The excavation end date cannot be before the start date." msgstr "" -#: forms.py:862 +#: forms.py:866 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:866 +#: forms.py:870 msgid "Bad operation code" msgstr "" -#: forms.py:872 models.py:195 models.py:405 +#: forms.py:876 models.py:195 models.py:405 msgid "Operation code" msgstr "" -#: forms.py:898 +#: forms.py:902 msgid "Preventive informations - excavation" msgstr "" -#: forms.py:899 models.py:207 +#: forms.py:903 models.py:207 #: templates/ishtar/dashboards/dashboard_operation.html:699 msgid "Cost (euros)" msgstr "" -#: forms.py:900 models.py:212 +#: forms.py:904 models.py:212 msgid "Scheduled man-days" msgstr "" -#: forms.py:902 models.py:215 +#: forms.py:906 models.py:215 msgid "Optional man-days" msgstr "" -#: forms.py:904 models.py:218 +#: forms.py:908 models.py:218 msgid "Effective man-days" msgstr "" -#: forms.py:914 +#: forms.py:918 msgid "Preventive informations - diagnostic" msgstr "" -#: forms.py:917 models.py:237 +#: forms.py:921 models.py:237 msgid "Prescription on zoning" msgstr "" -#: forms.py:919 models.py:240 +#: forms.py:923 models.py:240 msgid "Prescription on large area" msgstr "" -#: forms.py:922 models.py:242 +#: forms.py:926 models.py:242 msgid "Prescription on geoarchaeological context" msgstr "" -#: forms.py:926 forms.py:948 models.py:206 models.py:628 +#: forms.py:930 forms.py:952 models.py:206 models.py:628 msgid "Towns" msgstr "" -#: forms.py:955 models.py:814 models.py:986 +#: forms.py:959 models.py:814 models.py:986 msgid "Parcel" msgstr "" -#: forms.py:1007 models.py:44 +#: forms.py:1011 models.py:44 msgid "Remain types" msgstr "" -#: forms.py:1011 models.py:43 +#: forms.py:1015 models.py:43 msgid "Remain type" msgstr "" -#: forms.py:1026 +#: forms.py:1031 msgid "Period" msgstr "" -#: forms.py:1037 models.py:77 +#: forms.py:1043 models.py:77 msgid "Reference" msgstr "" -#: forms.py:1062 +#: forms.py:1072 msgid "This reference already exists." msgstr "" -#: forms.py:1079 models.py:86 +#: forms.py:1089 models.py:86 msgid "Archaeological site" msgstr "" -#: forms.py:1094 models.py:87 models.py:259 +#: forms.py:1104 models.py:87 models.py:259 #: templates/ishtar/sheet_operation.html:125 msgid "Archaeological sites" msgstr "" -#: forms.py:1098 +#: forms.py:1108 msgid "Associated archaelogical sites" msgstr "" -#: forms.py:1104 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1114 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 msgid "Search" msgstr "" -#: forms.py:1109 +#: forms.py:1119 msgid "Would you like to close this operation?" msgstr "" -#: forms.py:1114 +#: forms.py:1124 msgid "Would you like to delete this operation?" msgstr "" -#: forms.py:1123 forms.py:1193 forms.py:1328 models.py:545 models.py:595 +#: forms.py:1133 forms.py:1203 forms.py:1339 models.py:545 models.py:595 msgid "Index" msgstr "" -#: forms.py:1149 +#: forms.py:1159 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1161 +#: forms.py:1171 msgid "Operation's year" msgstr "" -#: forms.py:1168 +#: forms.py:1178 msgid "Operation's town" msgstr "" -#: forms.py:1181 +#: forms.py:1191 msgid "Documentation search" msgstr "" -#: forms.py:1183 +#: forms.py:1193 msgid "You should select a document." msgstr "" -#: forms.py:1200 forms.py:1267 models.py:570 models.py:589 +#: forms.py:1210 forms.py:1277 models.py:570 models.py:589 msgid "Act type" msgstr "" -#: forms.py:1201 forms.py:1398 +#: forms.py:1211 forms.py:1409 msgid "Indexed?" msgstr "" -#: forms.py:1207 forms.py:1272 models.py:619 +#: forms.py:1217 forms.py:1282 models.py:619 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "" -#: forms.py:1244 views.py:403 +#: forms.py:1254 views.py:403 msgid "Administrative act search" msgstr "" -#: forms.py:1259 forms.py:1356 forms.py:1423 +#: forms.py:1269 forms.py:1367 forms.py:1434 msgid "You should select an administrative act." msgstr "" -#: forms.py:1275 models.py:616 +#: forms.py:1285 models.py:616 msgid "Signature date" msgstr "" -#: forms.py:1316 +#: forms.py:1327 #, python-format msgid "" "This index already exist for year: %(year)d - use a value bigger than " "%(last_val)d" msgstr "" -#: forms.py:1320 +#: forms.py:1331 msgid "Bad index" msgstr "" -#: forms.py:1333 +#: forms.py:1344 msgid "Would you like to delete this administrative act?" msgstr "" -#: forms.py:1338 +#: forms.py:1349 msgid "Template" msgstr "" -#: forms.py:1362 forms.py:1366 +#: forms.py:1373 forms.py:1377 msgid "This document is not intended for this type of act." msgstr "" -#: forms.py:1384 +#: forms.py:1395 msgid "Doc generation" msgstr "" -#: forms.py:1386 +#: forms.py:1397 msgid "Generate the associated doc?" msgstr "" -#: forms.py:1407 ishtar_menu.py:121 views.py:456 +#: forms.py:1418 ishtar_menu.py:121 views.py:456 msgctxt "admin act register" msgid "Register" msgstr "" diff --git a/archaeological_operations/utils.py b/archaeological_operations/utils.py index 53bfedc62..a84ff44ae 100644 --- a/archaeological_operations/utils.py +++ b/archaeological_operations/utils.py @@ -289,7 +289,7 @@ def parse_title(value): return value.title() -def parse_name_surname(value): +def parse_name_surname(value, owner): value = parse_string(value) items = value.split(' ') name = items[0] @@ -305,7 +305,7 @@ def parse_name_surname(value): if q.count(): return q.all()[0] else: - defaults = {'history_modifier': get_default_user(), + defaults = {'history_modifier': owner, 'title': ''} defaults.update(values) p = Person.objects.create(**defaults) diff --git a/archaeological_warehouse/forms.py b/archaeological_warehouse/forms.py index d56df8139..b34be3ab3 100644 --- a/archaeological_warehouse/forms.py +++ b/archaeological_warehouse/forms.py @@ -26,7 +26,7 @@ from archaeological_finds.models import TreatmentType, FindBasket import models from ishtar_common import widgets from ishtar_common.forms import name_validator, reverse_lazy, \ - get_form_selection, TableSelect + get_form_selection, TableSelect, ManageOldType from archaeological_finds.forms import FindMultipleFormSelection, \ SelectFindBasketForm @@ -39,7 +39,7 @@ def get_warehouse_field(label=_(u"Warehouse"), required=True): validators=[valid_id(models.Warehouse)]) -class WarehouseForm(forms.Form): +class WarehouseForm(ManageOldType, forms.Form): name = forms.CharField(label=_(u"Name"), max_length=40, validators=[name_validator]) warehouse_type = forms.ChoiceField(label=_(u"Warehouse type"), @@ -71,7 +71,8 @@ class WarehouseForm(forms.Form): kwargs.pop('limits') super(WarehouseForm, self).__init__(*args, **kwargs) self.fields['warehouse_type'].choices = \ - models.WarehouseType.get_types() + models.WarehouseType.get_types( + initial=self.init_data.get('warehouse_type')) self.fields['warehouse_type'].help_text = \ models.WarehouseType.get_help() @@ -88,7 +89,7 @@ class WarehouseForm(forms.Form): return new_item -class ContainerForm(forms.Form): +class ContainerForm(ManageOldType, forms.Form): form_label = _(u"Container") reference = forms.CharField(label=_(u"Ref.")) container_type = forms.ChoiceField(label=_(u"Container type"), choices=[]) @@ -106,7 +107,8 @@ class ContainerForm(forms.Form): kwargs.pop('limits') super(ContainerForm, self).__init__(*args, **kwargs) self.fields['container_type'].choices = \ - models.ContainerType.get_types() + models.ContainerType.get_types( + initial=self.init_data.get('container_type')) self.fields['container_type'].help_text = \ models.ContainerType.get_help() diff --git a/archaeological_warehouse/locale/django.pot b/archaeological_warehouse/locale/django.pot index 264ef3791..c00e26082 100644 --- a/archaeological_warehouse/locale/django.pot +++ b/archaeological_warehouse/locale/django.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" -#: forms.py:34 forms.py:96 models.py:44 models.py:73 +#: forms.py:34 forms.py:97 models.py:44 models.py:73 msgid "Warehouse" msgstr "" @@ -22,7 +22,7 @@ msgstr "" msgid "Person in charge" msgstr "" -#: forms.py:54 forms.py:101 models.py:41 models.py:77 +#: forms.py:54 forms.py:102 models.py:41 models.py:77 msgid "Comment" msgstr "" @@ -50,43 +50,43 @@ msgstr "" msgid "Phone" msgstr "" -#: forms.py:92 models.py:80 +#: forms.py:93 models.py:80 msgid "Container" msgstr "" -#: forms.py:93 forms.py:127 models.py:63 +#: forms.py:94 forms.py:129 models.py:63 msgid "Ref." msgstr "" -#: forms.py:94 forms.py:126 models.py:66 models.py:75 +#: forms.py:95 forms.py:128 models.py:66 models.py:75 msgid "Container type" msgstr "" -#: forms.py:137 +#: forms.py:139 msgid "Container search" msgstr "" -#: forms.py:139 +#: forms.py:141 msgid "You should select a container." msgstr "" -#: forms.py:140 +#: forms.py:142 msgid "Add a new container" msgstr "" -#: forms.py:144 ishtar_menu.py:33 views.py:94 +#: forms.py:146 ishtar_menu.py:33 views.py:94 msgid "Packaging" msgstr "" -#: forms.py:151 +#: forms.py:153 msgid "Packager" msgstr "" -#: forms.py:157 +#: forms.py:159 msgid "Date" msgstr "" -#: forms.py:166 +#: forms.py:168 msgid "Packaged finds" msgstr "" diff --git a/docs/fr/source/installation.rst b/docs/fr/source/installation.rst index 5c6d3fdc6..e262e0df9 100644 --- a/docs/fr/source/installation.rst +++ b/docs/fr/source/installation.rst @@ -5,7 +5,7 @@ Installation ============ :Auteur: Étienne Loks -:Date: 2016-06-09 +:Date: 2016-08-31 :Copyright: CC-BY 3.0 Ce document présente les instructions d'installation d'Ishtar. @@ -44,7 +44,7 @@ Enfin pour créer une nouvelle instance d'Ishtar :: INSTANCE=le_nom_de_mon_instance URL=ishtar.my-organization.net ishtar-prepare-instance -INSTANCE est le nom de l'instance et URL le nom du domaine associé. +INSTANCE est le nom de l'instance et URL le nom du domaine associé (juste l'url pas de http:// ou https://). .. note:: Le nom de domaine doit bien entendu pointer vers l'adresse IP du serveur. Si à l'issue de l'installation, le service n'est pas joignable, verifiez bien votre configuration DNS ou le cas échéant verifez bien auprès du gestionnaire de nom de domaine que c'est le cas. diff --git a/install/nginx.conf.template b/install/nginx.conf.template index 8df09e859..673135c0e 100644 --- a/install/nginx.conf.template +++ b/install/nginx.conf.template @@ -29,6 +29,8 @@ server { location / { include uwsgi_params; uwsgi_pass 127.0.0.1:#UWSGI_PORT#; + uwsgi_read_timeout 1800; + uwsgi_send_timeout 600; } } diff --git a/ishtar_common/admin.py b/ishtar_common/admin.py index 675d85ec5..fb0ab1170 100644 --- a/ishtar_common/admin.py +++ b/ishtar_common/admin.py @@ -112,8 +112,7 @@ class OrganizationAdmin(HistorizedObjectAdmin): list_display = ('pk', 'name', 'organization_type') list_filter = ("organization_type",) search_fields = ('name',) - exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', - 'exclude_from_merge') + exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', ) model = models.Organization admin.site.register(models.Organization, OrganizationAdmin) @@ -123,8 +122,7 @@ class PersonAdmin(HistorizedObjectAdmin): list_display = ('pk', 'name', 'surname', 'raw_name', 'email') list_filter = ("person_types",) search_fields = ('name', 'surname', 'email', 'raw_name') - exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', - 'exclude_from_merge') + exclude = ('merge_key', 'merge_exclusion', 'merge_candidate', ) model = models.Person admin.site.register(models.Person, PersonAdmin) diff --git a/ishtar_common/forms.py b/ishtar_common/forms.py index 89df1b1a5..79ca2c360 100644 --- a/ishtar_common/forms.py +++ b/ishtar_common/forms.py @@ -194,6 +194,37 @@ def get_data_from_formset(data): return values +class ManageOldType(object): + def __init__(self, *args, **kwargs): + """ + init_data is used to manage deactivated items in list when editing + old data + """ + prefix = kwargs.get('prefix') or '' + self.init_data = {} + if 'data' in kwargs and kwargs['data']: + for k in kwargs['data']: + if prefix not in k: + continue + new_k = k[len(prefix) + 1:] + for val in kwargs['data'].getlist(k): + if not val: + continue + if new_k not in self.init_data: + self.init_data[new_k] = [] + self.init_data[new_k].append(val) + if 'initial' in kwargs and kwargs['initial']: + for k in kwargs['initial']: + if k not in self.init_data or not self.init_data[k]: + for val in kwargs['initial'].getlist(k): + if not val: + continue + if k not in self.init_data: + self.init_data[k] = [] + self.init_data[k].append(val) + super(ManageOldType, self).__init__(*args, **kwargs) + + class DocumentGenerationForm(forms.Form): """ Form to generate document by choosing the template diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index aef94476c..f6889ae1f 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -33,7 +33,8 @@ from django.utils.translation import ugettext_lazy as _ import models import widgets -from forms import FinalForm, FormSet, reverse_lazy, name_validator, TableSelect +from forms import FinalForm, FormSet, reverse_lazy, name_validator, \ + TableSelect, ManageOldType def get_town_field(label=_(u"Town"), required=True): @@ -154,7 +155,7 @@ class TargetKeyForm(forms.ModelForm): self.instance.save() -class OrganizationForm(NewItemForm): +class OrganizationForm(ManageOldType, NewItemForm): form_label = _(u"Organization") associated_models = {'organization_type': models.OrganizationType} name = forms.CharField( @@ -178,7 +179,8 @@ class OrganizationForm(NewItemForm): def __init__(self, *args, **kwargs): super(OrganizationForm, self).__init__(*args, **kwargs) self.fields['organization_type'].choices = \ - models.OrganizationType.get_types() + models.OrganizationType.get_types( + initial=self.init_data.get('organization_type')) self.fields['organization_type'].help_text = \ models.OrganizationType.get_help() self.limit_fields() @@ -254,10 +256,11 @@ class PersonFormSelection(forms.Form): validators=[models.valid_id(models.Person)]) -class SimplePersonForm(NewItemForm): +class SimplePersonForm(ManageOldType, NewItemForm): form_label = _("Identity") - associated_models = {'attached_to': models.Organization} - title = forms.ChoiceField(label=_("Title"), choices=models.Person.TYPE) + associated_models = {'attached_to': models.Organization, + 'title': models.TitleType} + title = forms.ChoiceField(label=_("Title"), choices=[]) surname = forms.CharField(label=_(u"Surname"), max_length=50, validators=[name_validator]) name = forms.CharField(label=_(u"Name"), max_length=200, @@ -308,6 +311,8 @@ class SimplePersonForm(NewItemForm): def __init__(self, *args, **kwargs): super(SimplePersonForm, self).__init__(*args, **kwargs) self.fields['raw_name'].widget.attrs['readonly'] = True + self.fields['title'].choices = models.TitleType.get_types( + initial=self.init_data.get('title')) class PersonUserSelect(PersonSelect): @@ -398,6 +403,7 @@ class PersonForm(SimplePersonForm): def __init__(self, *args, **kwargs): super(PersonForm, self).__init__(*args, **kwargs) self.fields['person_types'].choices = models.PersonType.get_types( + initial=self.init_data.get('person_types'), empty_first=False) self.fields['person_types'].help_text = models.PersonType.get_help() self.limit_fields() @@ -421,7 +427,7 @@ class NoOrgaPersonForm(PersonForm): self.fields.pop('attached_to') -class PersonTypeForm(forms.Form): +class PersonTypeForm(ManageOldType, forms.Form): form_label = _("Person type") base_model = 'person_type' associated_models = {'person_type': models.PersonType} @@ -432,6 +438,7 @@ class PersonTypeForm(forms.Form): def __init__(self, *args, **kwargs): super(PersonTypeForm, self).__init__(*args, **kwargs) self.fields['person_type'].choices = models.PersonType.get_types( + initial=self.init_data.get('person_type'), empty_first=False) self.fields['person_type'].help_text = models.PersonType.get_help() @@ -457,8 +464,10 @@ class AccountForm(forms.Form): try: person = models.Person.objects.get(pk=kwargs['initial']['pk']) account = models.IshtarUser.objects.get(person=person) - kwargs['initial'].update({'username': account.username, - 'email': account.email}) + if not kwargs['initial'].get('username'): + kwargs['initial']['username'] = account.username + if not kwargs['initial'].get('email'): + kwargs['initial']['email'] = account.email except ObjectDoesNotExist: pass return super(AccountForm, self).__init__(*args, **kwargs) @@ -638,7 +647,7 @@ class MergeOrganizationForm(MergeForm): ###################### # Sources management # ###################### -class SourceForm(forms.Form): +class SourceForm(ManageOldType, forms.Form): form_label = _(u"Documentation informations") associated_models = {'source_type': models.SourceType} title = forms.CharField(label=_(u"Title"), @@ -671,7 +680,8 @@ class SourceForm(forms.Form): def __init__(self, *args, **kwargs): super(SourceForm, self).__init__(*args, **kwargs) - self.fields['source_type'].choices = models.SourceType.get_types() + self.fields['source_type'].choices = models.SourceType.get_types( + initial=self.init_data.get('source_type')) class SourceSelect(TableSelect): @@ -707,7 +717,7 @@ class SourceDeletionForm(FinalForm): ###################### -class AuthorForm(NewItemForm): +class AuthorForm(ManageOldType, NewItemForm): form_label = _(u"Author") associated_models = {'person': models.Person, 'author_type': models.AuthorType} @@ -720,7 +730,8 @@ class AuthorForm(NewItemForm): def __init__(self, *args, **kwargs): super(AuthorForm, self).__init__(*args, **kwargs) - self.fields['author_type'].choices = models.AuthorType.get_types() + self.fields['author_type'].choices = models.AuthorType.get_types( + initial=self.init_data.get('author_type')) self.limit_fields() def save(self, user): diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 79a65ce86..a8a0a8682 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -24,7 +24,7 @@ msgstr "" msgid "Archaeological file" msgstr "" -#: context_processors.py:39 models.py:1457 +#: context_processors.py:39 models.py:1486 msgid "Operation" msgstr "" @@ -147,7 +147,7 @@ msgstr "" msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "" -#: forms.py:71 forms_common.py:490 +#: forms.py:71 forms_common.py:499 msgid "Confirm" msgstr "" @@ -171,18 +171,18 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:204 models.py:1234 +#: forms.py:235 models.py:1255 msgid "Template" msgstr "" -#: forms_common.py:39 forms_common.py:57 forms_common.py:170 -#: forms_common.py:293 models.py:1300 models.py:2583 +#: forms_common.py:40 forms_common.py:58 forms_common.py:171 +#: forms_common.py:296 models.py:1321 models.py:2618 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" msgstr "" -#: forms_common.py:41 +#: forms_common.py:42 msgid "" "<p>Type name, department code and/or postal code of the town you would like " "to select. The search is insensitive to case.</p>\n" @@ -192,70 +192,70 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.</p>" msgstr "" -#: forms_common.py:66 forms_common.py:718 ishtar_menu.py:47 models.py:1455 -#: models.py:2255 models.py:2407 models.py:2464 +#: forms_common.py:67 forms_common.py:728 ishtar_menu.py:47 models.py:1484 +#: models.py:2295 models.py:2442 models.py:2499 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" -#: forms_common.py:158 forms_common.py:234 forms_common.py:336 -#: ishtar_menu.py:71 models.py:1456 models.py:2172 +#: forms_common.py:159 forms_common.py:236 forms_common.py:341 +#: ishtar_menu.py:71 models.py:1485 models.py:2202 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" -#: forms_common.py:161 forms_common.py:197 forms_common.py:229 -#: forms_common.py:263 forms_common.py:331 models.py:902 models.py:1233 -#: models.py:1501 models.py:1719 models.py:2166 models.py:2242 models.py:2569 +#: forms_common.py:162 forms_common.py:199 forms_common.py:231 +#: forms_common.py:266 forms_common.py:336 models.py:923 models.py:1254 +#: models.py:1530 models.py:1748 models.py:2196 models.py:2281 models.py:2604 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:162 models.py:1442 models.py:1850 +#: forms_common.py:163 models.py:1471 models.py:1879 msgid "Organization type" msgstr "" -#: forms_common.py:164 forms_common.py:287 models.py:1295 +#: forms_common.py:165 forms_common.py:290 models.py:1316 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:166 forms_common.py:290 models.py:1296 +#: forms_common.py:167 forms_common.py:293 models.py:1317 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:168 forms_common.py:291 models.py:1298 +#: forms_common.py:169 forms_common.py:294 models.py:1319 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:171 forms_common.py:294 models.py:1301 +#: forms_common.py:172 forms_common.py:297 models.py:1322 msgid "Country" msgstr "" -#: forms_common.py:173 forms_common.py:231 forms_common.py:267 -#: forms_common.py:333 forms_common.py:446 models.py:1328 +#: forms_common.py:174 forms_common.py:233 forms_common.py:270 +#: forms_common.py:338 forms_common.py:453 models.py:1349 msgid "Email" msgstr "" -#: forms_common.py:174 forms_common.py:270 models.py:1313 +#: forms_common.py:175 forms_common.py:273 models.py:1334 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:18 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:175 forms_common.py:279 models.py:1325 +#: forms_common.py:176 forms_common.py:282 models.py:1346 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:36 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:198 forms_common.py:232 forms_common.py:334 models.py:1877 -#: models.py:2168 models.py:2505 templates/sheet_ope.html:85 +#: forms_common.py:200 forms_common.py:234 forms_common.py:339 models.py:1907 +#: models.py:2198 models.py:2540 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -263,210 +263,210 @@ msgstr "" msgid "Type" msgstr "" -#: forms_common.py:207 views.py:130 +#: forms_common.py:209 views.py:130 msgid "Organization search" msgstr "" -#: forms_common.py:230 forms_common.py:261 forms_common.py:332 models.py:2240 +#: forms_common.py:232 forms_common.py:264 forms_common.py:337 models.py:2279 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" -#: forms_common.py:246 forms_common.py:319 views.py:95 +#: forms_common.py:248 forms_common.py:324 views.py:95 msgid "Person search" msgstr "" -#: forms_common.py:258 templates/ishtar/sheet_person.html:7 +#: forms_common.py:260 templates/ishtar/sheet_person.html:7 #: templates/ishtar/wizard/wizard_person.html:6 msgid "Identity" msgstr "" -#: forms_common.py:260 forms_common.py:644 forms_common.py:685 models.py:2238 -#: models.py:2502 templates/sheet_ope.html:104 +#: forms_common.py:263 forms_common.py:653 forms_common.py:695 models.py:1880 +#: models.py:2275 models.py:2277 models.py:2537 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:265 models.py:2244 +#: forms_common.py:268 models.py:2283 msgid "Raw name" msgstr "" -#: forms_common.py:268 models.py:1314 +#: forms_common.py:271 models.py:1335 msgid "Phone description" msgstr "" -#: forms_common.py:271 models.py:1316 models.py:1318 +#: forms_common.py:274 models.py:1337 models.py:1339 msgid "Phone description 2" msgstr "" -#: forms_common.py:273 +#: forms_common.py:276 msgid "Phone 2" msgstr "" -#: forms_common.py:275 models.py:1322 +#: forms_common.py:278 models.py:1343 msgid "Phone description 3" msgstr "" -#: forms_common.py:277 models.py:1320 +#: forms_common.py:280 models.py:1341 msgid "Phone 3" msgstr "" -#: forms_common.py:282 +#: forms_common.py:285 msgid "Current organization" msgstr "" -#: forms_common.py:296 models.py:1303 +#: forms_common.py:299 models.py:1324 msgid "Other address: address" msgstr "" -#: forms_common.py:299 models.py:1306 +#: forms_common.py:302 models.py:1327 msgid "Other address: address complement" msgstr "" -#: forms_common.py:301 models.py:1307 +#: forms_common.py:304 models.py:1328 msgid "Other address: postal code" msgstr "" -#: forms_common.py:303 models.py:1309 +#: forms_common.py:306 models.py:1330 msgid "Other address: town" msgstr "" -#: forms_common.py:305 models.py:1311 +#: forms_common.py:308 models.py:1332 msgid "Other address: country" msgstr "" -#: forms_common.py:315 +#: forms_common.py:320 msgid "Already has an account" msgstr "" -#: forms_common.py:330 +#: forms_common.py:335 msgid "Username" msgstr "" -#: forms_common.py:348 +#: forms_common.py:353 msgid "Account search" msgstr "" -#: forms_common.py:395 forms_common.py:425 forms_common.py:429 models.py:2220 +#: forms_common.py:400 forms_common.py:431 forms_common.py:435 models.py:2250 msgid "Person type" msgstr "" -#: forms_common.py:440 forms_common.py:445 ishtar_menu.py:32 +#: forms_common.py:447 forms_common.py:452 ishtar_menu.py:32 msgid "Account" msgstr "" -#: forms_common.py:449 wizards.py:1170 +#: forms_common.py:456 wizards.py:1170 msgid "New password" msgstr "" -#: forms_common.py:452 +#: forms_common.py:459 msgid "New password (confirmation)" msgstr "" -#: forms_common.py:471 +#: forms_common.py:480 msgid "Your password and confirmation password do not match." msgstr "" -#: forms_common.py:476 +#: forms_common.py:485 msgid "You must provide a correct password." msgstr "" -#: forms_common.py:484 +#: forms_common.py:493 msgid "This username already exists." msgstr "" -#: forms_common.py:491 +#: forms_common.py:500 msgid "Send the new password by email?" msgstr "" -#: forms_common.py:500 forms_common.py:513 models.py:2584 +#: forms_common.py:509 forms_common.py:522 models.py:2619 msgid "Towns" msgstr "" -#: forms_common.py:510 +#: forms_common.py:519 msgid "There are identical towns." msgstr "" -#: forms_common.py:594 +#: forms_common.py:603 msgid "Only one choice can be checked." msgstr "" -#: forms_common.py:642 +#: forms_common.py:651 msgid "Documentation informations" msgstr "" -#: forms_common.py:646 forms_common.py:686 models.py:1851 models.py:2485 +#: forms_common.py:655 forms_common.py:696 models.py:1881 models.py:2520 msgid "Source type" msgstr "" -#: forms_common.py:648 forms_common.py:687 templates/sheet_ope.html:84 +#: forms_common.py:657 forms_common.py:697 templates/sheet_ope.html:84 msgid "Reference" msgstr "" -#: forms_common.py:651 forms_common.py:688 +#: forms_common.py:660 forms_common.py:698 msgid "Internal reference" msgstr "" -#: forms_common.py:654 models.py:2516 +#: forms_common.py:663 models.py:2551 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:655 models.py:2518 +#: forms_common.py:664 models.py:2553 msgid "Receipt date" msgstr "" -#: forms_common.py:657 models.py:2004 models.py:2520 +#: forms_common.py:666 models.py:2034 models.py:2555 msgid "Creation date" msgstr "" -#: forms_common.py:660 models.py:2523 +#: forms_common.py:669 models.py:2558 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:662 forms_common.py:690 models.py:287 models.py:516 -#: models.py:1746 models.py:2248 models.py:2530 +#: forms_common.py:671 forms_common.py:700 models.py:287 models.py:537 +#: models.py:1775 models.py:2287 models.py:2565 msgid "Comment" msgstr "" -#: forms_common.py:664 forms_common.py:689 models.py:904 models.py:1505 -#: models.py:1678 models.py:1720 models.py:2529 templates/sheet_ope.html:128 +#: forms_common.py:673 forms_common.py:699 models.py:925 models.py:1534 +#: models.py:1707 models.py:1749 models.py:2564 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:667 models.py:2531 +#: forms_common.py:676 models.py:2566 msgid "Additional information" msgstr "" -#: forms_common.py:669 forms_common.py:693 models.py:2533 +#: forms_common.py:678 forms_common.py:703 models.py:2568 msgid "Has a duplicate" msgstr "" -#: forms_common.py:682 forms_common.py:711 forms_common.py:744 models.py:2469 +#: forms_common.py:692 forms_common.py:721 forms_common.py:755 models.py:2504 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" -#: forms_common.py:692 +#: forms_common.py:702 msgid "Additional informations" msgstr "" -#: forms_common.py:703 +#: forms_common.py:713 msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:719 models.py:1852 models.py:2459 models.py:2466 +#: forms_common.py:729 models.py:1882 models.py:2494 models.py:2501 msgid "Author type" msgstr "" -#: forms_common.py:737 +#: forms_common.py:748 msgid "Author selection" msgstr "" -#: forms_common.py:751 +#: forms_common.py:762 msgid "There are identical authors." msgstr "" -#: forms_common.py:755 models.py:2470 models.py:2512 +#: forms_common.py:766 models.py:2505 models.py:2547 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -484,7 +484,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1029 views.py:1232 +#: ishtar_menu.py:39 models.py:1050 views.py:1232 msgid "Global variables" msgstr "" @@ -508,12 +508,12 @@ msgstr "" msgid "Merge" msgstr "" -#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2041 widgets.py:110 +#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2071 widgets.py:110 #: templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: ishtar_menu.py:101 models.py:2015 +#: ishtar_menu.py:101 models.py:2045 msgid "Imports" msgstr "" @@ -541,7 +541,7 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:283 models.py:515 models.py:1268 models.py:1280 +#: models.py:283 models.py:536 models.py:1289 models.py:1301 msgid "Label" msgstr "" @@ -549,191 +549,191 @@ msgstr "" msgid "Textual ID" msgstr "" -#: models.py:288 models.py:518 models.py:1237 +#: models.py:288 models.py:539 models.py:1258 msgid "Available" msgstr "" -#: models.py:537 models.py:1792 +#: models.py:558 models.py:1821 msgid "Key" msgstr "" -#: models.py:543 +#: models.py:564 msgid "Specific key to an import" msgstr "" -#: models.py:623 +#: models.py:644 msgid "Last editor" msgstr "" -#: models.py:626 +#: models.py:647 msgid "Creator" msgstr "" -#: models.py:766 models.py:2595 +#: models.py:787 models.py:2630 msgid "Order" msgstr "" -#: models.py:767 +#: models.py:788 msgid "Symmetrical" msgstr "" -#: models.py:768 +#: models.py:789 msgid "Tiny label" msgstr "" -#: models.py:782 +#: models.py:803 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:896 +#: models.py:917 msgid "Euro" msgstr "" -#: models.py:897 +#: models.py:918 msgid "US dollar" msgstr "" -#: models.py:903 models.py:1503 +#: models.py:924 models.py:1532 msgid "Slug" msgstr "" -#: models.py:905 +#: models.py:926 msgid "Files module" msgstr "" -#: models.py:906 +#: models.py:927 msgid "Context records module" msgstr "" -#: models.py:908 +#: models.py:929 msgid "Finds module" msgstr "" -#: models.py:909 +#: models.py:930 msgid "Need context records module" msgstr "" -#: models.py:911 +#: models.py:932 msgid "Warehouses module" msgstr "" -#: models.py:912 +#: models.py:933 msgid "Need finds module" msgstr "" -#: models.py:914 +#: models.py:935 msgid "Home page" msgstr "" -#: models.py:915 +#: models.py:936 msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax." msgstr "" -#: models.py:918 +#: models.py:939 msgid "File external id" msgstr "" -#: models.py:920 +#: models.py:941 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:925 +#: models.py:946 msgid "Parcel external id" msgstr "" -#: models.py:928 +#: models.py:949 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:933 +#: models.py:954 msgid "Context record external id" msgstr "" -#: models.py:935 +#: models.py:956 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:940 +#: models.py:961 msgid "Base find external id" msgstr "" -#: models.py:942 +#: models.py:963 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:947 +#: models.py:968 msgid "Find external id" msgstr "" -#: models.py:949 +#: models.py:970 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:954 +#: models.py:975 msgid "Raw name for person" msgstr "" -#: models.py:956 +#: models.py:977 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:960 +#: models.py:981 msgid "Current active" msgstr "" -#: models.py:961 +#: models.py:982 msgid "Currency" msgstr "" -#: models.py:965 +#: models.py:986 msgid "Ishtar site profile" msgstr "" -#: models.py:966 +#: models.py:987 msgid "Ishtar site profiles" msgstr "" -#: models.py:1022 +#: models.py:1043 msgid "Variable name" msgstr "" -#: models.py:1023 +#: models.py:1044 msgid "Description of the variable" msgstr "" -#: models.py:1025 models.py:1793 +#: models.py:1046 models.py:1822 msgid "Value" msgstr "" -#: models.py:1028 +#: models.py:1049 msgid "Global variable" msgstr "" -#: models.py:1138 models.py:1168 +#: models.py:1159 models.py:1189 msgid "Total" msgstr "" -#: models.py:1145 models.py:1269 models.py:1281 +#: models.py:1166 models.py:1290 models.py:1302 #: templates/ishtar/sheet_person.html:21 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -741,581 +741,589 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1232 +#: models.py:1253 msgid "Administrative Act" msgstr "" -#: models.py:1236 +#: models.py:1257 msgid "Associated object" msgstr "" -#: models.py:1240 +#: models.py:1261 msgid "Document template" msgstr "" -#: models.py:1241 +#: models.py:1262 msgid "Document templates" msgstr "" -#: models.py:1272 models.py:1282 models.py:1999 +#: models.py:1293 models.py:1303 models.py:2029 msgid "State" msgstr "" -#: models.py:1286 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1307 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1287 +#: models.py:1308 msgid "Departments" msgstr "" -#: models.py:1324 +#: models.py:1345 msgid "Raw phone" msgstr "" -#: models.py:1330 +#: models.py:1351 msgid "Alternative address is prefered" msgstr "" -#: models.py:1369 +#: models.py:1390 msgid "Tel: " msgstr "" -#: models.py:1373 +#: models.py:1394 msgid "Mobile: " msgstr "" -#: models.py:1377 +#: models.py:1398 msgid "Email: " msgstr "" -#: models.py:1382 +#: models.py:1403 msgid "Merge key" msgstr "" -#: models.py:1443 +#: models.py:1472 msgid "Organization types" msgstr "" -#: models.py:1459 +#: models.py:1488 msgid "Archaeological site" msgstr "" -#: models.py:1460 +#: models.py:1489 msgid "Parcels" msgstr "" -#: models.py:1462 +#: models.py:1491 msgid "Operation source" msgstr "" -#: models.py:1465 views.py:1057 views.py:1108 +#: models.py:1494 views.py:1057 views.py:1108 msgid "Archaeological files" msgstr "" -#: models.py:1467 views.py:1060 views.py:1116 +#: models.py:1496 views.py:1060 views.py:1116 msgid "Context records" msgstr "" -#: models.py:1469 +#: models.py:1498 msgid "Context record relations" msgstr "" -#: models.py:1471 views.py:1062 views.py:1119 +#: models.py:1500 views.py:1062 views.py:1119 msgid "Finds" msgstr "" -#: models.py:1507 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1536 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1509 +#: models.py:1538 msgid "Associated model" msgstr "" -#: models.py:1512 +#: models.py:1541 msgid "Is template" msgstr "" -#: models.py:1513 +#: models.py:1542 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1517 +#: models.py:1546 msgid "Importer - Type" msgstr "" -#: models.py:1518 +#: models.py:1547 msgid "Importer - Types" msgstr "" -#: models.py:1608 +#: models.py:1637 msgid "Importer - Default" msgstr "" -#: models.py:1609 +#: models.py:1638 msgid "Importer - Defaults" msgstr "" -#: models.py:1644 +#: models.py:1673 msgid "Importer - Default value" msgstr "" -#: models.py:1645 +#: models.py:1674 msgid "Importer - Default values" msgstr "" -#: models.py:1677 +#: models.py:1706 msgid "Column number" msgstr "" -#: models.py:1680 +#: models.py:1709 msgid "Required" msgstr "" -#: models.py:1683 +#: models.py:1712 msgid "Importer - Column" msgstr "" -#: models.py:1684 +#: models.py:1713 msgid "Importer - Columns" msgstr "" -#: models.py:1704 +#: models.py:1733 msgid "Field name" msgstr "" -#: models.py:1706 models.py:1740 +#: models.py:1735 models.py:1769 msgid "Force creation of new items" msgstr "" -#: models.py:1708 models.py:1742 +#: models.py:1737 models.py:1771 msgid "Concatenate with existing" msgstr "" -#: models.py:1710 models.py:1744 +#: models.py:1739 models.py:1773 msgid "Concatenate character" msgstr "" -#: models.py:1714 +#: models.py:1743 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1715 +#: models.py:1744 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1722 +#: models.py:1751 msgid "Regular expression" msgstr "" -#: models.py:1725 +#: models.py:1754 msgid "Importer - Regular expression" msgstr "" -#: models.py:1726 +#: models.py:1755 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1749 +#: models.py:1778 msgid "Importer - Target" msgstr "" -#: models.py:1750 +#: models.py:1779 msgid "Importer - Targets" msgstr "" -#: models.py:1774 views.py:343 +#: models.py:1803 views.py:343 msgid "True" msgstr "" -#: models.py:1775 views.py:345 +#: models.py:1804 views.py:345 msgid "False" msgstr "" -#: models.py:1794 +#: models.py:1823 msgid "Is set" msgstr "" -#: models.py:1801 +#: models.py:1830 msgid "Importer - Target key" msgstr "" -#: models.py:1802 +#: models.py:1831 msgid "Importer - Targets keys" msgstr "" -#: models.py:1853 models.py:2497 models.py:2508 +#: models.py:1883 models.py:2532 models.py:2543 msgid "Format" msgstr "" -#: models.py:1854 models.py:2599 +#: models.py:1884 models.py:2634 msgid "Operation type" msgstr "" -#: models.py:1855 +#: models.py:1885 msgid "Period" msgstr "" -#: models.py:1856 +#: models.py:1886 msgid "Report state" msgstr "" -#: models.py:1857 +#: models.py:1887 msgid "Unit" msgstr "" -#: models.py:1858 +#: models.py:1888 msgid "Material" msgstr "" -#: models.py:1860 +#: models.py:1890 msgid "Conservatory state" msgstr "" -#: models.py:1861 +#: models.py:1891 msgid "Preservation type" msgstr "" -#: models.py:1862 +#: models.py:1892 msgid "Object type" msgstr "" -#: models.py:1864 +#: models.py:1894 msgid "Identification type" msgstr "" -#: models.py:1866 +#: models.py:1896 msgid "Context record relation type" msgstr "" -#: models.py:1867 models.py:2491 +#: models.py:1897 models.py:2526 msgid "Support type" msgstr "" -#: models.py:1873 +#: models.py:1903 msgid "Integer" msgstr "" -#: models.py:1874 +#: models.py:1904 msgid "Float" msgstr "" -#: models.py:1875 +#: models.py:1905 msgid "String" msgstr "" -#: models.py:1876 templates/sheet_ope.html:86 +#: models.py:1906 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:1878 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:1908 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:1879 +#: models.py:1909 msgid "String to boolean" msgstr "" -#: models.py:1880 +#: models.py:1910 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:1881 +#: models.py:1911 msgid "Unknow type" msgstr "" -#: models.py:1897 +#: models.py:1927 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:1898 +#: models.py:1928 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:1899 +#: models.py:1929 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:1909 +#: models.py:1939 msgid "Options" msgstr "" -#: models.py:1911 +#: models.py:1941 msgid "Split character(s)" msgstr "" -#: models.py:1915 +#: models.py:1945 msgid "Importer - Formater type" msgstr "" -#: models.py:1916 +#: models.py:1946 msgid "Importer - Formater types" msgstr "" -#: models.py:1963 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:1993 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:1964 +#: models.py:1994 msgid "Analyse in progress" msgstr "" -#: models.py:1965 +#: models.py:1995 msgid "Analysed" msgstr "" -#: models.py:1966 +#: models.py:1996 msgid "Import pending" msgstr "" -#: models.py:1967 +#: models.py:1997 msgid "Import in progress" msgstr "" -#: models.py:1968 +#: models.py:1998 msgid "Finished with errors" msgstr "" -#: models.py:1969 +#: models.py:1999 msgid "Finished" msgstr "" -#: models.py:1970 +#: models.py:2000 msgid "Archived" msgstr "" -#: models.py:1982 +#: models.py:2012 msgid "Imported file" msgstr "" -#: models.py:1985 +#: models.py:2015 msgid "Associated images (zip file)" msgstr "" -#: models.py:1987 +#: models.py:2017 msgid "Encoding" msgstr "" -#: models.py:1989 +#: models.py:2019 msgid "Skip lines" msgstr "" -#: models.py:1990 templates/ishtar/import_list.html:47 +#: models.py:2020 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:1993 +#: models.py:2023 msgid "Result file" msgstr "" -#: models.py:1996 templates/ishtar/import_list.html:53 +#: models.py:2026 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2002 +#: models.py:2032 msgid "Conservative import" msgstr "" -#: models.py:2007 +#: models.py:2037 msgid "End date" msgstr "" -#: models.py:2009 +#: models.py:2039 msgid "Remaining seconds" msgstr "" -#: models.py:2014 +#: models.py:2044 msgid "Import" msgstr "" -#: models.py:2031 +#: models.py:2061 msgid "Analyse" msgstr "" -#: models.py:2033 models.py:2036 +#: models.py:2063 models.py:2066 msgid "Re-analyse" msgstr "" -#: models.py:2034 +#: models.py:2064 msgid "Launch import" msgstr "" -#: models.py:2037 +#: models.py:2067 msgid "Re-import" msgstr "" -#: models.py:2038 +#: models.py:2068 msgid "Archive" msgstr "" -#: models.py:2040 +#: models.py:2070 msgid "Unarchive" msgstr "" -#: models.py:2173 +#: models.py:2203 msgid "Organizations" msgstr "" -#: models.py:2175 +#: models.py:2205 msgid "Can view all Organizations" msgstr "" -#: models.py:2176 +#: models.py:2206 msgid "Can view own Organization" msgstr "" -#: models.py:2177 +#: models.py:2207 msgid "Can add own Organization" msgstr "" -#: models.py:2179 +#: models.py:2209 msgid "Can change own Organization" msgstr "" -#: models.py:2181 +#: models.py:2211 msgid "Can delete own Organization" msgstr "" -#: models.py:2216 +#: models.py:2246 msgid "Groups" msgstr "" -#: models.py:2221 +#: models.py:2251 msgid "Person types" msgstr "" -#: models.py:2228 +#: models.py:2257 +msgid "Title type" +msgstr "" + +#: models.py:2258 +msgid "Title types" +msgstr "" + +#: models.py:2265 msgid "Mr" msgstr "" -#: models.py:2229 +#: models.py:2266 msgid "Miss" msgstr "" -#: models.py:2230 +#: models.py:2267 msgid "Mr and Mrs" msgstr "" -#: models.py:2231 +#: models.py:2268 msgid "Mrs" msgstr "" -#: models.py:2232 +#: models.py:2269 msgid "Doctor" msgstr "" -#: models.py:2246 +#: models.py:2285 msgid "Contact type" msgstr "" -#: models.py:2249 models.py:2296 +#: models.py:2288 models.py:2331 msgid "Types" msgstr "" -#: models.py:2252 +#: models.py:2291 msgid "Is attached to" msgstr "" -#: models.py:2256 +#: models.py:2296 msgid "Persons" msgstr "" -#: models.py:2258 +#: models.py:2298 msgid "Can view all Persons" msgstr "" -#: models.py:2259 +#: models.py:2299 msgid "Can view own Person" msgstr "" -#: models.py:2260 +#: models.py:2300 msgid "Can add own Person" msgstr "" -#: models.py:2261 +#: models.py:2301 msgid "Can change own Person" msgstr "" -#: models.py:2262 +#: models.py:2302 msgid "Can delete own Person" msgstr "" -#: models.py:2411 +#: models.py:2446 msgid "Ishtar user" msgstr "" -#: models.py:2412 +#: models.py:2447 msgid "Ishtar users" msgstr "" -#: models.py:2454 +#: models.py:2489 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2460 +#: models.py:2495 msgid "Author types" msgstr "" -#: models.py:2486 +#: models.py:2521 msgid "Source types" msgstr "" -#: models.py:2492 +#: models.py:2527 msgid "Support types" msgstr "" -#: models.py:2498 +#: models.py:2533 msgid "Formats" msgstr "" -#: models.py:2503 +#: models.py:2538 msgid "External ID" msgstr "" -#: models.py:2506 +#: models.py:2541 msgid "Support" msgstr "" -#: models.py:2510 +#: models.py:2545 msgid "Scale" msgstr "" -#: models.py:2524 +#: models.py:2559 msgid "Item number" msgstr "" -#: models.py:2525 +#: models.py:2560 msgid "Ref." msgstr "" -#: models.py:2528 +#: models.py:2563 msgid "Internal ref." msgstr "" -#: models.py:2570 +#: models.py:2605 msgid "Surface (m2)" msgstr "" -#: models.py:2571 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2606 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2596 +#: models.py:2631 msgid "Is preventive" msgstr "" -#: models.py:2600 +#: models.py:2635 msgid "Operation types" msgstr "" -#: models.py:2626 +#: models.py:2661 msgid "Preventive" msgstr "" -#: models.py:2627 +#: models.py:2662 msgid "Research" msgstr "" @@ -1983,6 +1991,14 @@ msgstr "" msgid "No person in this organization" msgstr "" +#: templates/ishtar/sheet_organization.html:38 +msgid "General contractor organization of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_organization.html:43 +msgid "Town planning service of archaelogical files" +msgstr "" + #: templates/ishtar/sheet_person.html:20 #: templates/ishtar/wizard/wizard_person.html:19 msgid "Phone type" @@ -2010,19 +2026,27 @@ msgstr "" msgid "Associated operations as responsible" msgstr "" -#: templates/ishtar/sheet_person.html:80 -msgid "Associated archaelogical files" +#: templates/ishtar/sheet_person.html:79 +msgid "In charge of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_person.html:84 +msgid "General contractor of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_person.html:89 +msgid "Responsible for town planning service of archaelogical files" msgstr "" -#: templates/ishtar/sheet_person.html:86 +#: templates/ishtar/sheet_person.html:95 msgid "Documents associated to operations" msgstr "" -#: templates/ishtar/sheet_person.html:91 +#: templates/ishtar/sheet_person.html:100 msgid "Documents associated to context records" msgstr "" -#: templates/ishtar/sheet_person.html:96 +#: templates/ishtar/sheet_person.html:105 msgid "Documents associated to finds" msgstr "" diff --git a/ishtar_common/migrations/0055_auto.py b/ishtar_common/migrations/0055_auto.py new file mode 100644 index 000000000..db41eb868 --- /dev/null +++ b/ishtar_common/migrations/0055_auto.py @@ -0,0 +1,415 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding M2M table for field imports on 'Town' + db.create_table('ishtar_common_town_imports', ( + ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), + ('town', models.ForeignKey(orm['ishtar_common.town'], null=False)), + ('import', models.ForeignKey(orm['ishtar_common.import'], null=False)) + )) + db.create_unique('ishtar_common_town_imports', ['town_id', 'import_id']) + + + def backwards(self, orm): + # Removing M2M table for field imports on 'Town' + db.delete_table('ishtar_common_town_imports') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common']
\ No newline at end of file diff --git a/ishtar_common/migrations/0056_auto__add_titletype__add_field_person_pretitle.py b/ishtar_common/migrations/0056_auto__add_titletype__add_field_person_pretitle.py new file mode 100644 index 000000000..6db62c107 --- /dev/null +++ b/ishtar_common/migrations/0056_auto__add_titletype__add_field_person_pretitle.py @@ -0,0 +1,434 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'TitleType' + db.create_table('ishtar_common_titletype', ( + ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('label', self.gf('django.db.models.fields.CharField')(max_length=100)), + ('txt_idx', self.gf('django.db.models.fields.CharField')(unique=True, max_length=100)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('available', self.gf('django.db.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('ishtar_common', ['TitleType']) + + # Adding field 'Person.pretitle' + db.add_column('ishtar_common_person', 'pretitle', + self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ishtar_common.TitleType'], null=True, blank=True), + keep_default=False) + + + def backwards(self, orm): + # Deleting model 'TitleType' + db.delete_table('ishtar_common_titletype') + + # Deleting field 'Person.pretitle' + db.delete_column('ishtar_common_person', 'pretitle_id') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'pretitle': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common']
\ No newline at end of file diff --git a/ishtar_common/migrations/0057_rename_pretitle_old_title.py b/ishtar_common/migrations/0057_rename_pretitle_old_title.py new file mode 100644 index 000000000..8a13b6c88 --- /dev/null +++ b/ishtar_common/migrations/0057_rename_pretitle_old_title.py @@ -0,0 +1,421 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + db.delete_index('ishtar_common_person', ['pretitle_id']) + db.rename_column('ishtar_common_person', 'pretitle_id', 'title_id') + db.create_index('ishtar_common_person', ['title_id']) + db.rename_column('ishtar_common_person', 'title', 'old_title') + + def backwards(self, orm): + db.delete_index('ishtar_common_person', ['title_id']) + db.rename_column('ishtar_common_person', 'title_id', 'pretitle_id') + db.create_index('ishtar_common_person', ['pretitle_id']) + db.rename_column('ishtar_common_person', 'old_title', 'title') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common'] diff --git a/ishtar_common/migrations/0058_generate_title.py b/ishtar_common/migrations/0058_generate_title.py new file mode 100644 index 000000000..ac0d1d602 --- /dev/null +++ b/ishtar_common/migrations/0058_generate_title.py @@ -0,0 +1,435 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models +from django.utils import translation + +TYPE = ( + ('Mr', u'Mr'), + ('Ms', u'Miss'), + ('Mr and Miss', u'Mr and Mrs'), + ('Md', u'Mrs'), + ('Dr', u'Doctor'), +) + + +class Migration(SchemaMigration): + + def forwards(self, orm): + keys = {} + translation.activate('fr') + for key, lbl in TYPE: + lbl = translation.ugettext(lbl) + keys[key] = orm['ishtar_common.TitleType'].objects.create( + label=lbl, txt_idx=key.lower()) + translation.deactivate() + for person in orm['ishtar_common.Person'].objects.all(): + if not person.old_title: + continue + person.title_id = keys[person.old_title].id + person.save() + + def backwards(self, orm): + pass + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'exclude_from_merge': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common'] diff --git a/ishtar_common/migrations/0059_rename_exc_from_merge_to_archived.py b/ishtar_common/migrations/0059_rename_exc_from_merge_to_archived.py new file mode 100644 index 000000000..c329b76e2 --- /dev/null +++ b/ishtar_common/migrations/0059_rename_exc_from_merge_to_archived.py @@ -0,0 +1,419 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + db.rename_column('ishtar_common_person', 'exclude_from_merge', 'archived') + db.rename_column('ishtar_common_organization', 'exclude_from_merge', 'archived') + db.rename_column('ishtar_common_historicalorganization', 'exclude_from_merge', 'archived') + + def backwards(self, orm): + db.rename_column('ishtar_common_person', 'archived', 'exclude_from_merge') + db.rename_column('ishtar_common_organization', 'archived', 'exclude_from_merge') + db.rename_column('ishtar_common_historicalorganization', 'archived', 'exclude_from_merge') + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common'] diff --git a/ishtar_common/migrations/0060_auto__add_historicalperson.py b/ishtar_common/migrations/0060_auto__add_historicalperson.py new file mode 100644 index 000000000..a1db55c37 --- /dev/null +++ b/ishtar_common/migrations/0060_auto__add_historicalperson.py @@ -0,0 +1,498 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'HistoricalPerson' + db.create_table('ishtar_common_historicalperson', ( + ('id', self.gf('django.db.models.fields.IntegerField')(db_index=True, blank=True)), + ('history_modifier_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('history_creator_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('address', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('address_complement', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('postal_code', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)), + ('town', self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True)), + ('country', self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True)), + ('alt_address', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('alt_address_complement', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('alt_postal_code', self.gf('django.db.models.fields.CharField')(max_length=10, null=True, blank=True)), + ('alt_town', self.gf('django.db.models.fields.CharField')(max_length=70, null=True, blank=True)), + ('alt_country', self.gf('django.db.models.fields.CharField')(max_length=30, null=True, blank=True)), + ('phone', self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True)), + ('phone_desc', self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True)), + ('phone2', self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True)), + ('phone_desc2', self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True)), + ('phone3', self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True)), + ('phone_desc3', self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True)), + ('raw_phone', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('mobile_phone', self.gf('django.db.models.fields.CharField')(max_length=18, null=True, blank=True)), + ('email', self.gf('django.db.models.fields.EmailField')(max_length=300, null=True, blank=True)), + ('alt_address_is_prefered', self.gf('django.db.models.fields.BooleanField')(default=False)), + ('merge_key', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('archived', self.gf('django.db.models.fields.NullBooleanField')(default=False, null=True, blank=True)), + ('old_title', self.gf('django.db.models.fields.CharField')(max_length=100, null=True, blank=True)), + ('title_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('surname', self.gf('django.db.models.fields.CharField')(max_length=50, null=True, blank=True)), + ('name', self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True)), + ('raw_name', self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True)), + ('contact_type', self.gf('django.db.models.fields.CharField')(max_length=300, null=True, blank=True)), + ('comment', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), + ('attached_to_id', self.gf('django.db.models.fields.IntegerField')(db_index=True, null=True, blank=True)), + ('history_id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('history_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), + ('history_user', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True)), + ('history_type', self.gf('django.db.models.fields.CharField')(max_length=1)), + )) + db.send_create_signal('ishtar_common', ['HistoricalPerson']) + + + def backwards(self, orm): + # Deleting model 'HistoricalPerson' + db.delete_table('ishtar_common_historicalperson') + + + models = { + 'auth.group': { + 'Meta': {'object_name': 'Group'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + 'auth.permission': { + 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + 'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + 'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'ishtar_common.arrondissement': { + 'Meta': {'object_name': 'Arrondissement'}, + 'department': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.author': { + 'Meta': {'object_name': 'Author'}, + 'author_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.AuthorType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'author'", 'to': "orm['ishtar_common.Person']"}) + }, + 'ishtar_common.authortype': { + 'Meta': {'object_name': 'AuthorType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.canton': { + 'Meta': {'object_name': 'Canton'}, + 'arrondissement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Arrondissement']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '30'}) + }, + 'ishtar_common.department': { + 'Meta': {'ordering': "['number']", 'object_name': 'Department'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}), + 'state': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.State']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.documenttemplate': { + 'Meta': {'ordering': "['associated_object_name', 'name']", 'object_name': 'DocumentTemplate'}, + 'associated_object_name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'template': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}) + }, + 'ishtar_common.format': { + 'Meta': {'object_name': 'Format'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.formatertype': { + 'Meta': {'ordering': "('formater_type', 'options')", 'unique_together': "(('formater_type', 'options', 'many_split'),)", 'object_name': 'FormaterType'}, + 'formater_type': ('django.db.models.fields.CharField', [], {'max_length': '20'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'many_split': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'options': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.globalvar': { + 'Meta': {'ordering': "['slug']", 'object_name': 'GlobalVar'}, + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalorganization': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalOrganization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.historicalperson': { + 'Meta': {'ordering': "('-history_date', '-history_id')", 'object_name': 'HistoricalPerson'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), + 'history_id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'history_modifier_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'history_type': ('django.db.models.fields.CharField', [], {'max_length': '1'}), + 'history_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True'}), + 'id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'blank': 'True'}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title_id': ('django.db.models.fields.IntegerField', [], {'db_index': 'True', 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.import': { + 'Meta': {'object_name': 'Import'}, + 'conservative_import': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'encoding': ('django.db.models.fields.CharField', [], {'default': "'utf-8'", 'max_length': '15'}), + 'end_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), + 'error_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100'}), + 'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.ImporterType']"}), + 'match_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'seconds_remaining': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), + 'skip_lines': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'state': ('django.db.models.fields.CharField', [], {'default': "'C'", 'max_length': '2'}), + 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']"}) + }, + 'ishtar_common.importercolumn': { + 'Meta': {'ordering': "('importer_type', 'col_number')", 'unique_together': "(('importer_type', 'col_number'),)", 'object_name': 'ImporterColumn'}, + 'col_number': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'columns'", 'to': "orm['ishtar_common.ImporterType']"}), + 'regexp_pre_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.importerdefault': { + 'Meta': {'object_name': 'ImporterDefault'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'defaults'", 'to': "orm['ishtar_common.ImporterType']"}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerdefaultvalues': { + 'Meta': {'object_name': 'ImporterDefaultValues'}, + 'default_target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'default_values'", 'to': "orm['ishtar_common.ImporterDefault']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'value': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.importerduplicatefield': { + 'Meta': {'object_name': 'ImporterDuplicateField'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'duplicate_fields'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}) + }, + 'ishtar_common.importertype': { + 'Meta': {'object_name': 'ImporterType'}, + 'associated_models': ('django.db.models.fields.CharField', [], {'max_length': '200'}), + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_template': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'slug': ('django.db.models.fields.SlugField', [], {'max_length': '100', 'unique': 'True', 'null': 'True', 'blank': 'True'}), + 'unicity_keys': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'users': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.importtarget': { + 'Meta': {'object_name': 'ImportTarget'}, + 'column': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'targets'", 'to': "orm['ishtar_common.ImporterColumn']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'concat': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'concat_str': ('django.db.models.fields.CharField', [], {'max_length': '5', 'null': 'True', 'blank': 'True'}), + 'force_new': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'formater_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.FormaterType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'regexp_filter': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Regexp']", 'null': 'True', 'blank': 'True'}), + 'target': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.ishtarsiteprofile': { + 'Meta': {'ordering': "['label']", 'object_name': 'IshtarSiteProfile'}, + 'active': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), + 'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'context_record_external_id': ('django.db.models.fields.TextField', [], {'default': "'{parcel__external_id}-{label}'"}), + 'currency': ('django.db.models.fields.CharField', [], {'default': "u'\\u20ac'", 'max_length': "'5'"}), + 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'file_external_id': ('django.db.models.fields.TextField', [], {'default': "'{settings__ISHTAR_LOCAL_PREFIX}{year}-{numeric_reference}'"}), + 'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{get_first_base_find__context_record__external_id}-{label}'"}), + 'homepage': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.TextField', [], {}), + 'parcel_external_id': ('django.db.models.fields.TextField', [], {'default': "'{associated_file__external_id}{operation__code_patriarche}-{town__numero_insee}-{section}{parcel_number}'"}), + 'person_raw_name': ('django.db.models.fields.TextField', [], {'default': "'{name|upper} {surname}'"}), + 'slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50'}), + 'warehouse': ('django.db.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'ishtar_common.ishtaruser': { + 'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, + 'person': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'ishtaruser'", 'unique': 'True', 'to': "orm['ishtar_common.Person']"}), + 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) + }, + 'ishtar_common.itemkey': { + 'Meta': {'object_name': 'ItemKey'}, + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'importer': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'key': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'object_id': ('django.db.models.fields.PositiveIntegerField', [], {}) + }, + 'ishtar_common.operationtype': { + 'Meta': {'ordering': "['-preventive', 'order', 'label']", 'object_name': 'OperationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'order': ('django.db.models.fields.IntegerField', [], {'default': '1'}), + 'preventive': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.organization': { + 'Meta': {'object_name': 'Organization'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_organization'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Organization']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '500'}), + 'organization_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.OrganizationType']"}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.organizationtype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'OrganizationType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.person': { + 'Meta': {'object_name': 'Person'}, + 'address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_complement': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'alt_address_is_prefered': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'alt_country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'alt_postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'alt_town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}), + 'archived': ('django.db.models.fields.NullBooleanField', [], {'default': 'False', 'null': 'True', 'blank': 'True'}), + 'attached_to': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'members'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['ishtar_common.Organization']"}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'contact_type': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'country': ('django.db.models.fields.CharField', [], {'max_length': '30', 'null': 'True', 'blank': 'True'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'history_creator': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'history_modifier': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'on_delete': 'models.SET_NULL', 'to': "orm['auth.User']"}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_person'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'merge_candidate': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_candidate_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_exclusion': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'merge_exclusion_rel_+'", 'null': 'True', 'to': "orm['ishtar_common.Person']"}), + 'merge_key': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'mobile_phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), + 'old_title': ('django.db.models.fields.CharField', [], {'max_length': '100', 'null': 'True', 'blank': 'True'}), + 'person_types': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ishtar_common.PersonType']", 'symmetrical': 'False'}), + 'phone': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone2': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone3': ('django.db.models.fields.CharField', [], {'max_length': '18', 'null': 'True', 'blank': 'True'}), + 'phone_desc': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc2': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'phone_desc3': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'postal_code': ('django.db.models.fields.CharField', [], {'max_length': '10', 'null': 'True', 'blank': 'True'}), + 'raw_name': ('django.db.models.fields.CharField', [], {'max_length': '300', 'null': 'True', 'blank': 'True'}), + 'raw_phone': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'surname': ('django.db.models.fields.CharField', [], {'max_length': '50', 'null': 'True', 'blank': 'True'}), + 'title': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.TitleType']", 'null': 'True', 'blank': 'True'}), + 'town': ('django.db.models.fields.CharField', [], {'max_length': '70', 'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.persontype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'PersonType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.regexp': { + 'Meta': {'object_name': 'Regexp'}, + 'description': ('django.db.models.fields.CharField', [], {'max_length': '500', 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'regexp': ('django.db.models.fields.CharField', [], {'max_length': '500'}) + }, + 'ishtar_common.sourcetype': { + 'Meta': {'object_name': 'SourceType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.state': { + 'Meta': {'ordering': "['number']", 'object_name': 'State'}, + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '30'}), + 'number': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '3'}) + }, + 'ishtar_common.supporttype': { + 'Meta': {'object_name': 'SupportType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.targetkey': { + 'Meta': {'unique_together': "(('target', 'key', 'associated_user', 'associated_import'),)", 'object_name': 'TargetKey'}, + 'associated_import': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Import']", 'null': 'True', 'blank': 'True'}), + 'associated_user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.IshtarUser']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_set': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'key': ('django.db.models.fields.TextField', [], {}), + 'target': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'keys'", 'to': "orm['ishtar_common.ImportTarget']"}), + 'value': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}) + }, + 'ishtar_common.titletype': { + 'Meta': {'ordering': "('label',)", 'object_name': 'TitleType'}, + 'available': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'comment': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'txt_idx': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100'}) + }, + 'ishtar_common.town': { + 'Meta': {'ordering': "['numero_insee']", 'object_name': 'Town'}, + 'canton': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Canton']", 'null': 'True', 'blank': 'True'}), + 'center': ('django.contrib.gis.db.models.fields.PointField', [], {'srid': '27572', 'null': 'True', 'blank': 'True'}), + 'departement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ishtar_common.Department']", 'null': 'True', 'blank': 'True'}), + 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'imports': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'imported_ishtar_common_town'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.Import']"}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'numero_insee': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '6'}), + 'surface': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}) + } + } + + complete_apps = ['ishtar_common']
\ No newline at end of file diff --git a/ishtar_common/models.py b/ishtar_common/models.py index 6228ea1d0..c536b64ae 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -329,8 +329,36 @@ class GeneralType(Cached, models.Model): return u"" @classmethod + def _get_initial_types(cls, initial, type_pks): + new_vals = [] + for value in initial: + try: + pk = int(value) + except ValueError: + continue + if pk in type_pks: + continue + try: + extra_type = cls.objects.get(pk=pk) + new_vals.append((extra_type.pk, unicode(extra_type))) + except cls.DoesNotExist: + continue + return new_vals + + @classmethod def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True, - default=None): + default=None, initial=None): + types = cls._pre_get_types(dct, instances, exclude, empty_first, + default) + if not initial: + return types + new_vals = cls._get_initial_types(initial, [idx for idx, lbl in types]) + types += new_vals + return types + + @classmethod + def _pre_get_types(cls, dct={}, instances=False, exclude=[], + empty_first=True, default=None): # cache cache_key = None if not instances: @@ -1384,8 +1412,8 @@ class Merge(models.Model): blank=True, null=True) merge_exclusion = models.ManyToManyField("self", blank=True, null=True) - exclude_from_merge = models.NullBooleanField(default=False, - blank=True, null=True) + archived = models.NullBooleanField(default=False, + blank=True, null=True) # 1 for one word similarity, 2 for two word similarity, etc. MERGE_CLEMENCY = None EMPTY_MERGE_KEY = '--' @@ -1394,7 +1422,7 @@ class Merge(models.Model): abstract = True def generate_merge_key(self): - if self.exclude_from_merge: + if self.archived: return self.merge_key = slugify(self.name if self.name else '') if not self.merge_key: @@ -1402,7 +1430,7 @@ class Merge(models.Model): self.merge_key = self.merge_key def generate_merge_candidate(self): - if self.exclude_from_merge: + if self.archived: return if not self.merge_key: self.generate_merge_key() @@ -1413,7 +1441,7 @@ class Merge(models.Model): .exclude(pk=self.pk)\ .exclude(merge_exclusion=self)\ .exclude(merge_candidate=self)\ - .exclude(exclude_from_merge=True) + .exclude(archived=True) if not self.MERGE_CLEMENCY: q = q.filter(merge_key=self.merge_key) else: @@ -1432,6 +1460,14 @@ class Merge(models.Model): self.generate_merge_candidate() return item + def archive(self): + self.archived = True + self.save() + for m in self.merge_candidate.all(): + m.delete() + for m in self.merge_exclusion.all(): + m.delete() + def merge(self, item): merge_model_objects(self, item) self.generate_merge_candidate() @@ -1848,6 +1884,7 @@ class TargetKey(models.Model): TARGET_MODELS = [ ('OrganizationType', _(u"Organization type")), + ('TitleType', _(u"Title")), ('SourceType', _(u"Source type")), ('AuthorType', _(u"Author type")), ('Format', _(u"Format")), @@ -2222,6 +2259,13 @@ class PersonType(GeneralType): ordering = ('label',) +class TitleType(GeneralType): + class Meta: + verbose_name = _(u"Title type") + verbose_name_plural = _(u"Title types") + ordering = ('label',) + + class Person(Address, Merge, OwnPerms, ValueGetter): _prefix = 'person_' TYPE = ( @@ -2235,8 +2279,10 @@ class Person(Address, Merge, OwnPerms, ValueGetter): 'attached_to') SHOW_URL = 'show-person' MODIFY_URL = 'person_modify' - title = models.CharField(_(u"Title"), max_length=100, choices=TYPE, - blank=True, null=True) + old_title = models.CharField(_(u"Title"), max_length=100, choices=TYPE, + blank=True, null=True) + title = models.ForeignKey(TitleType, verbose_name=_(u"Title"), + blank=True, null=True) surname = models.CharField(_(u"Surname"), max_length=50, blank=True, null=True) name = models.CharField(_(u"Name"), max_length=200, blank=True, @@ -2250,6 +2296,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter): attached_to = models.ForeignKey( 'Organization', related_name='members', on_delete=models.SET_NULL, verbose_name=_(u"Is attached to"), blank=True, null=True) + history = HistoricalRecords() class Meta: verbose_name = _(u"Person") @@ -2283,11 +2330,6 @@ class Person(Address, Merge, OwnPerms, ValueGetter): def get_values(self, prefix=''): values = super(Person, self).get_values(prefix=prefix) - title = '' - TYPES = dict(self.TYPE) - if self.title in TYPES: - title = dict(self.TYPE)[self.title] - values[prefix + 'title'] = title if not self.attached_to: values.update( Person.get_empty_values(prefix=prefix + 'attached_to_')) @@ -2354,7 +2396,7 @@ class Person(Address, Merge, OwnPerms, ValueGetter): def full_label(self): values = [] if self.title: - values = [unicode(_(self.title))] + values = [self.title.label] values += [unicode(getattr(self, attr)) for attr in ('surname', 'name') if getattr(self, attr)] if not values and self.raw_name: @@ -2425,7 +2467,7 @@ class IshtarUser(User): else: person_type, created = PersonType.objects.get_or_create( txt_idx='public_access') - person = Person.objects.create(title='Mr', surname=surname, + person = Person.objects.create(surname=surname, name=name, email=email, history_modifier=user) person.person_types.add(person_type) @@ -2565,7 +2607,7 @@ if settings.COUNTRY == 'fr': (self.name, unicode(self.arrondissement))) -class Town(models.Model): +class Town(Imported, models.Model): name = models.CharField(_(u"Name"), max_length=100) surface = models.IntegerField(_(u"Surface (m2)"), blank=True, null=True) center = models.PointField(_(u"Localisation"), srid=settings.SRID, @@ -2602,7 +2644,7 @@ class OperationType(GeneralType): @classmethod def get_types(cls, dct={}, instances=False, exclude=[], empty_first=True, - default=None): + default=None, initial=[]): tuples = [] dct['available'] = True if not instances and empty_first and not default: @@ -2619,7 +2661,10 @@ class OperationType(GeneralType): if exclude: items = items.exclude(txt_idx__in=exclude) current_preventive, current_lst = None, None - for item in items.order_by(*cls._meta.ordering).all(): + item_list = list(items.order_by(*cls._meta.ordering).all()) + new_vals = cls._get_initial_types(initial, [i.pk for i in item_list]) + item_list += new_vals + for item in item_list: if not current_lst or item.preventive != current_preventive: if current_lst: tuples.append(current_lst) diff --git a/ishtar_common/ooo_translation.py b/ishtar_common/ooo_translation.py index a93a916ae..5a3d4cb84 100644 --- a/ishtar_common/ooo_translation.py +++ b/ishtar_common/ooo_translation.py @@ -1,6 +1,6 @@ #!/usr/bin/python # -*- coding: utf-8 -*- -# Copyright (C) 2013-2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2013-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 @@ -19,9 +19,10 @@ from django.conf import settings from django.utils import translation -from django.utils.translation import pgettext_lazy +# from django.utils.translation import pgettext_lazy + +# [('study', pgettext_lazy('ooo key', u'study')),] -# [('study', pgettext_lazy('ooo key', u'study')),] TRANSLATION_STRINGS = [] ooo_translation = {} diff --git a/ishtar_common/templates/base.html b/ishtar_common/templates/base.html index b601076fe..4b8b68f8a 100644 --- a/ishtar_common/templates/base.html +++ b/ishtar_common/templates/base.html @@ -125,7 +125,7 @@ <p class='progress-detail progress-1'>{% trans "Processing..." %}</p> <p class='progress-detail progress-2'>{% trans "This can be long." %}</p> <p class='progress-detail progress-3'>{% trans "Time to take a coffee?" %} <i class="fa fa-coffee" aria-hidden="true"></i></p> - <p class='progress-detail progress-4'>{% trans "Time to take another coffee?" %} <i class="fa fa-coffee" aria-hidden="true"></i></p></div> + <p class='progress-detail progress-4'>{% trans "Time to take another coffee?" %} <i class="fa fa-coffee" aria-hidden="true"></i></p> </div> </div> </body> diff --git a/ishtar_common/templates/ishtar/sheet_organization.html b/ishtar_common/templates/ishtar/sheet_organization.html index 2ece97a8b..8a47c35f5 100644 --- a/ishtar_common/templates/ishtar/sheet_organization.html +++ b/ishtar_common/templates/ishtar/sheet_organization.html @@ -1,5 +1,5 @@ {% extends "ishtar/sheet.html" %} -{% load i18n window_header %} +{% load i18n window_header window_tables %} {% block head_title %}{% trans "Organization" %}{% endblock %} @@ -15,7 +15,7 @@ {% if item.mobile_phone %}<p><label>{% trans "Mobile phone" %}</label> <span class='value'>{{item.mobile_phone}}</span></p> {% endif %} -<table> +<table class='simple'> <caption>{%trans "Person in the organization"%}</caption> <tr> <th>{% trans "Name" %}</th> @@ -35,4 +35,14 @@ {% endfor %} </table> +{% trans "General contractor organization of archaelogical files" as af %} +{% if item.general_contractor_files.count %} +{% dynamic_table_document af 'files' 'corporation_general_contractor' item.pk '' output %} +{% endif %} + +{% trans "Town planning service of archaelogical files" as af %} +{% if item.planning_service_files.count %} +{% dynamic_table_document af 'files' 'planning_service' item.pk '' output %} +{% endif %} + {% endblock %} diff --git a/ishtar_common/templates/ishtar/sheet_person.html b/ishtar_common/templates/ishtar/sheet_person.html index f5c42c11a..8fc2d9211 100644 --- a/ishtar_common/templates/ishtar/sheet_person.html +++ b/ishtar_common/templates/ishtar/sheet_person.html @@ -76,12 +76,21 @@ {% dynamic_table_document ao 'operations' 'in_charge' item.pk '' output %} {% endif %} - -{% trans "Associated archaelogical files" as af %} +{% trans "In charge of archaelogical files" as af %} {% if item.file_responsability.count %} {% dynamic_table_document af 'files' 'in_charge' item.pk '' output %} {% endif %} +{% trans "General contractor of archaelogical files" as af %} +{% if item.general_contractor_files.count %} +{% dynamic_table_document af 'files' 'general_contractor' item.pk '' output %} +{% endif %} + +{% trans "Responsible for town planning service of archaelogical files" as af %} +{% if item.responsible_town_planning_service_files.count %} +{% dynamic_table_document af 'files' 'responsible_town_planning_service' item.pk '' output %} +{% endif %} + {% if item.operation_docs_q.count %} {% trans "Documents associated to operations" as operation_docs %} {% dynamic_table_document operation_docs 'operation_docs' 'person' item.pk '' output %} diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index a4d354eb1..8c918b5a9 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2015 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2015-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 @@ -24,6 +24,7 @@ from django.contrib.auth.models import User from django.contrib.contenttypes.models import ContentType from django.core.cache import cache from django.core.exceptions import ValidationError +from django.core.files.base import File as DjangoFile from django.core.urlresolvers import reverse from django.template.defaultfilters import slugify from django.test import TestCase @@ -175,12 +176,14 @@ class MergeTest(TestCase): self.author_1_pk = models.Author.objects.create( person=self.person_1, author_type=self.author_types[0]).pk + self.title = models.TitleType.objects.create(label='Test') + self.company_2 = models.Organization.objects.create( history_modifier=self.user, name='Goscinny Corp.', organization_type=self.organisation_types[1]) self.person_2 = models.Person.objects.create( name='Bill', history_modifier=self.user, surname='Peyo', - title='Mr', attached_to=self.company_2) + title=self.title, attached_to=self.company_2) self.person_2.person_types.add(self.person_types[1]) self.author_2_pk = models.Author.objects.create( person=self.person_2, author_type=self.author_types[1]).pk @@ -193,7 +196,7 @@ class MergeTest(TestCase): # preserve existing fields self.assertEqual(self.person_1.name, 'Boule') # fill missing fields - self.assertEqual(self.person_1.title, 'Mr') + self.assertEqual(self.person_1.title, self.title) # string field with only spaces is an empty field self.assertEqual(self.person_1.surname, 'Peyo') # preserve existing foreign key @@ -215,8 +218,42 @@ class MergeTest(TestCase): self.assertTrue(self.person_types[1] in self.person_3.person_types.all()) + def testPersonMergeCandidate(self): + init_mc = self.person_1.merge_candidate.count() + person = models.Person.objects.create( + name=self.person_1.name, + surname=self.person_1.surname, history_modifier=self.user, + attached_to=self.person_1.attached_to) + self.assertEqual(self.person_1.merge_candidate.count(), + init_mc + 1) + person.archive() + self.assertEqual(self.person_1.merge_candidate.count(), + init_mc) + + +class ImportTest(TestCase): + def testDeleteRelated(self): + town = models.Town.objects.create(name='my-test') + self.assertEqual(models.Town.objects.filter(name='my-test').count(), 1) + + # create an import, fields are not relevant... + create_user() + importer_type = models.ImporterType.objects.create( + associated_models='ishtar_common.models.Person') + mcc_operation_file = DjangoFile(file( + settings.ROOT_PATH + + '../archaeological_operations/tests/MCC-operations-example.csv', + 'rb')) + imprt = models.Import.objects.create( + user=models.IshtarUser.objects.all()[0], + importer_type=importer_type, + imported_file=mcc_operation_file) + + town.imports.add(imprt) + imprt.delete() + # town should be deleted + self.assertEqual(models.Town.objects.filter(name='my-test').count(), 0) -class ImportKeyTest(TestCase): def testKeys(self): content_type = ContentType.objects.get_for_model( models.OrganizationType) @@ -291,12 +328,12 @@ class IshtarSiteProfileTest(TestCase): self.assertTrue(profile2.context_record and profile2.find) def testDefaultProfile(self): - cache.set('default-ishtarsiteprofile-is-current-profile', None, + cache.set('default-ishtar_common-IshtarSiteProfile', None, settings.CACHE_TIMEOUT) self.assertFalse(models.IshtarSiteProfile.objects.count()) - profile = models.get_current_profile() + profile = models.get_current_profile(force=True) self.assertTrue(profile) - self.assertTrue(models.IshtarSiteProfile.objects.count()) + self.assertEqual(models.IshtarSiteProfile.objects.count(), 1) def testMenuFiltering(self): cache.set('default-ishtarsiteprofile-is-current-profile', None, diff --git a/ishtar_common/utils.py b/ishtar_common/utils.py index 28b1affa5..9fe7a3a00 100644 --- a/ishtar_common/utils.py +++ b/ishtar_common/utils.py @@ -1,6 +1,6 @@ #!/usr/bin/env python # -*- coding: utf-8 -*- -# Copyright (C) 2013 Étienne Loks <etienne.loks_AT_peacefrogsDOTnet> +# Copyright (C) 2013-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/ishtar_common/wizards.py b/ishtar_common/wizards.py index 1ac28d640..a42e2d8b5 100644 --- a/ishtar_common/wizards.py +++ b/ishtar_common/wizards.py @@ -113,10 +113,10 @@ def _check_right(step, condition=True): class Wizard(NamedUrlWizardView): model = None label = '' + translated_keys = [] modification = None # True when the wizard modify an item storage_name = \ 'django.contrib.formtools.wizard.storage.session.SessionStorage' - translated_keys = ['title'] wizard_done_template = 'ishtar/wizard/wizard_done.html' wizard_done_window = '' wizard_confirm = 'ishtar/wizard/confirm_wizard.html' diff --git a/translations/de/ishtar_common.po b/translations/de/ishtar_common.po index 32f5c3109..94c3ec5cd 100644 --- a/translations/de/ishtar_common.po +++ b/translations/de/ishtar_common.po @@ -8,7 +8,7 @@ msgstr "" "Last-Translator: Valérie-Emma Leroux <emma@iggdrasil.net>\n" "Language-Team: German (Germany)\n" "Language: de-DE\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" "Plural-Forms: nplurals=2; plural=(n != 1)\n" #: __init__.py:8 @@ -27,7 +27,7 @@ msgstr "" msgid "Archaeological file" msgstr "" -#: context_processors.py:39 models.py:1457 +#: context_processors.py:39 models.py:1486 msgid "Operation" msgstr "" @@ -150,7 +150,7 @@ msgstr "" msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "" -#: forms.py:71 forms_common.py:490 +#: forms.py:71 forms_common.py:499 msgid "Confirm" msgstr "" @@ -174,18 +174,18 @@ msgstr "" msgid "Add a new item" msgstr "" -#: forms.py:204 models.py:1234 +#: forms.py:235 models.py:1255 msgid "Template" msgstr "" -#: forms_common.py:39 forms_common.py:57 forms_common.py:170 -#: forms_common.py:293 models.py:1300 models.py:2583 +#: forms_common.py:40 forms_common.py:58 forms_common.py:171 +#: forms_common.py:296 models.py:1321 models.py:2618 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" msgstr "" -#: forms_common.py:41 +#: forms_common.py:42 msgid "" "<p>Type name, department code and/or postal code of the town you would like " "to select. The search is insensitive to case.</p>\n" @@ -195,70 +195,70 @@ msgid "" "french town Saint-Denis in the Seine-Saint-Denis department.</p>" msgstr "" -#: forms_common.py:66 forms_common.py:718 ishtar_menu.py:47 models.py:1455 -#: models.py:2255 models.py:2407 models.py:2464 +#: forms_common.py:67 forms_common.py:728 ishtar_menu.py:47 models.py:1484 +#: models.py:2295 models.py:2442 models.py:2499 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "" -#: forms_common.py:158 forms_common.py:234 forms_common.py:336 -#: ishtar_menu.py:71 models.py:1456 models.py:2172 +#: forms_common.py:159 forms_common.py:236 forms_common.py:341 +#: ishtar_menu.py:71 models.py:1485 models.py:2202 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "" -#: forms_common.py:161 forms_common.py:197 forms_common.py:229 -#: forms_common.py:263 forms_common.py:331 models.py:902 models.py:1233 -#: models.py:1501 models.py:1719 models.py:2166 models.py:2242 models.py:2569 +#: forms_common.py:162 forms_common.py:199 forms_common.py:231 +#: forms_common.py:266 forms_common.py:336 models.py:923 models.py:1254 +#: models.py:1530 models.py:1748 models.py:2196 models.py:2281 models.py:2604 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "" -#: forms_common.py:162 models.py:1442 models.py:1850 +#: forms_common.py:163 models.py:1471 models.py:1879 msgid "Organization type" msgstr "" -#: forms_common.py:164 forms_common.py:287 models.py:1295 +#: forms_common.py:165 forms_common.py:290 models.py:1316 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "" -#: forms_common.py:166 forms_common.py:290 models.py:1296 +#: forms_common.py:167 forms_common.py:293 models.py:1317 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "" -#: forms_common.py:168 forms_common.py:291 models.py:1298 +#: forms_common.py:169 forms_common.py:294 models.py:1319 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "" -#: forms_common.py:171 forms_common.py:294 models.py:1301 +#: forms_common.py:172 forms_common.py:297 models.py:1322 msgid "Country" msgstr "" -#: forms_common.py:173 forms_common.py:231 forms_common.py:267 -#: forms_common.py:333 forms_common.py:446 models.py:1328 +#: forms_common.py:174 forms_common.py:233 forms_common.py:270 +#: forms_common.py:338 forms_common.py:453 models.py:1349 msgid "Email" msgstr "" -#: forms_common.py:174 forms_common.py:270 models.py:1313 +#: forms_common.py:175 forms_common.py:273 models.py:1334 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:18 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "" -#: forms_common.py:175 forms_common.py:279 models.py:1325 +#: forms_common.py:176 forms_common.py:282 models.py:1346 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:36 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "" -#: forms_common.py:198 forms_common.py:232 forms_common.py:334 models.py:1877 -#: models.py:2168 models.py:2505 templates/sheet_ope.html:85 +#: forms_common.py:200 forms_common.py:234 forms_common.py:339 models.py:1907 +#: models.py:2198 models.py:2540 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -266,210 +266,210 @@ msgstr "" msgid "Type" msgstr "" -#: forms_common.py:207 views.py:130 +#: forms_common.py:209 views.py:130 msgid "Organization search" msgstr "" -#: forms_common.py:230 forms_common.py:261 forms_common.py:332 models.py:2240 +#: forms_common.py:232 forms_common.py:264 forms_common.py:337 models.py:2279 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "" -#: forms_common.py:246 forms_common.py:319 views.py:95 +#: forms_common.py:248 forms_common.py:324 views.py:95 msgid "Person search" msgstr "" -#: forms_common.py:258 templates/ishtar/sheet_person.html:7 +#: forms_common.py:260 templates/ishtar/sheet_person.html:7 #: templates/ishtar/wizard/wizard_person.html:6 msgid "Identity" msgstr "" -#: forms_common.py:260 forms_common.py:644 forms_common.py:685 models.py:2238 -#: models.py:2502 templates/sheet_ope.html:104 +#: forms_common.py:263 forms_common.py:653 forms_common.py:695 models.py:1880 +#: models.py:2275 models.py:2277 models.py:2537 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "" -#: forms_common.py:265 models.py:2244 +#: forms_common.py:268 models.py:2283 msgid "Raw name" msgstr "" -#: forms_common.py:268 models.py:1314 +#: forms_common.py:271 models.py:1335 msgid "Phone description" msgstr "" -#: forms_common.py:271 models.py:1316 models.py:1318 +#: forms_common.py:274 models.py:1337 models.py:1339 msgid "Phone description 2" msgstr "" -#: forms_common.py:273 +#: forms_common.py:276 msgid "Phone 2" msgstr "" -#: forms_common.py:275 models.py:1322 +#: forms_common.py:278 models.py:1343 msgid "Phone description 3" msgstr "" -#: forms_common.py:277 models.py:1320 +#: forms_common.py:280 models.py:1341 msgid "Phone 3" msgstr "" -#: forms_common.py:282 +#: forms_common.py:285 msgid "Current organization" msgstr "" -#: forms_common.py:296 models.py:1303 +#: forms_common.py:299 models.py:1324 msgid "Other address: address" msgstr "" -#: forms_common.py:299 models.py:1306 +#: forms_common.py:302 models.py:1327 msgid "Other address: address complement" msgstr "" -#: forms_common.py:301 models.py:1307 +#: forms_common.py:304 models.py:1328 msgid "Other address: postal code" msgstr "" -#: forms_common.py:303 models.py:1309 +#: forms_common.py:306 models.py:1330 msgid "Other address: town" msgstr "" -#: forms_common.py:305 models.py:1311 +#: forms_common.py:308 models.py:1332 msgid "Other address: country" msgstr "" -#: forms_common.py:315 +#: forms_common.py:320 msgid "Already has an account" msgstr "" -#: forms_common.py:330 +#: forms_common.py:335 msgid "Username" msgstr "" -#: forms_common.py:348 +#: forms_common.py:353 msgid "Account search" msgstr "" -#: forms_common.py:395 forms_common.py:425 forms_common.py:429 models.py:2220 +#: forms_common.py:400 forms_common.py:431 forms_common.py:435 models.py:2250 msgid "Person type" msgstr "" -#: forms_common.py:440 forms_common.py:445 ishtar_menu.py:32 +#: forms_common.py:447 forms_common.py:452 ishtar_menu.py:32 msgid "Account" msgstr "" -#: forms_common.py:449 wizards.py:1170 +#: forms_common.py:456 wizards.py:1170 msgid "New password" msgstr "" -#: forms_common.py:452 +#: forms_common.py:459 msgid "New password (confirmation)" msgstr "" -#: forms_common.py:471 +#: forms_common.py:480 msgid "Your password and confirmation password do not match." msgstr "" -#: forms_common.py:476 +#: forms_common.py:485 msgid "You must provide a correct password." msgstr "" -#: forms_common.py:484 +#: forms_common.py:493 msgid "This username already exists." msgstr "" -#: forms_common.py:491 +#: forms_common.py:500 msgid "Send the new password by email?" msgstr "" -#: forms_common.py:500 forms_common.py:513 models.py:2584 +#: forms_common.py:509 forms_common.py:522 models.py:2619 msgid "Towns" msgstr "" -#: forms_common.py:510 +#: forms_common.py:519 msgid "There are identical towns." msgstr "" -#: forms_common.py:594 +#: forms_common.py:603 msgid "Only one choice can be checked." msgstr "" -#: forms_common.py:642 +#: forms_common.py:651 msgid "Documentation informations" msgstr "" -#: forms_common.py:646 forms_common.py:686 models.py:1851 models.py:2485 +#: forms_common.py:655 forms_common.py:696 models.py:1881 models.py:2520 msgid "Source type" msgstr "" -#: forms_common.py:648 forms_common.py:687 templates/sheet_ope.html:84 +#: forms_common.py:657 forms_common.py:697 templates/sheet_ope.html:84 msgid "Reference" msgstr "" -#: forms_common.py:651 forms_common.py:688 +#: forms_common.py:660 forms_common.py:698 msgid "Internal reference" msgstr "" -#: forms_common.py:654 models.py:2516 +#: forms_common.py:663 models.py:2551 msgid "Numerical ressource (web address)" msgstr "" -#: forms_common.py:655 models.py:2518 +#: forms_common.py:664 models.py:2553 msgid "Receipt date" msgstr "" -#: forms_common.py:657 models.py:2004 models.py:2520 +#: forms_common.py:666 models.py:2034 models.py:2555 msgid "Creation date" msgstr "" -#: forms_common.py:660 models.py:2523 +#: forms_common.py:669 models.py:2558 msgid "Receipt date in documentation" msgstr "" -#: forms_common.py:662 forms_common.py:690 models.py:287 models.py:516 -#: models.py:1746 models.py:2248 models.py:2530 +#: forms_common.py:671 forms_common.py:700 models.py:287 models.py:537 +#: models.py:1775 models.py:2287 models.py:2565 msgid "Comment" msgstr "" -#: forms_common.py:664 forms_common.py:689 models.py:904 models.py:1505 -#: models.py:1678 models.py:1720 models.py:2529 templates/sheet_ope.html:128 +#: forms_common.py:673 forms_common.py:699 models.py:925 models.py:1534 +#: models.py:1707 models.py:1749 models.py:2564 templates/sheet_ope.html:128 msgid "Description" msgstr "" -#: forms_common.py:667 models.py:2531 +#: forms_common.py:676 models.py:2566 msgid "Additional information" msgstr "" -#: forms_common.py:669 forms_common.py:693 models.py:2533 +#: forms_common.py:678 forms_common.py:703 models.py:2568 msgid "Has a duplicate" msgstr "" -#: forms_common.py:682 forms_common.py:711 forms_common.py:744 models.py:2469 +#: forms_common.py:692 forms_common.py:721 forms_common.py:755 models.py:2504 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "" -#: forms_common.py:692 +#: forms_common.py:702 msgid "Additional informations" msgstr "" -#: forms_common.py:703 +#: forms_common.py:713 msgid "Would you like to delete this documentation?" msgstr "" -#: forms_common.py:719 models.py:1852 models.py:2459 models.py:2466 +#: forms_common.py:729 models.py:1882 models.py:2494 models.py:2501 msgid "Author type" msgstr "" -#: forms_common.py:737 +#: forms_common.py:748 msgid "Author selection" msgstr "" -#: forms_common.py:751 +#: forms_common.py:762 msgid "There are identical authors." msgstr "" -#: forms_common.py:755 models.py:2470 models.py:2512 +#: forms_common.py:766 models.py:2505 models.py:2547 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -487,7 +487,7 @@ msgstr "" msgid "Deletion" msgstr "" -#: ishtar_menu.py:39 models.py:1029 views.py:1232 +#: ishtar_menu.py:39 models.py:1050 views.py:1232 msgid "Global variables" msgstr "" @@ -511,12 +511,12 @@ msgstr "" msgid "Merge" msgstr "" -#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2041 widgets.py:110 +#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2071 widgets.py:110 #: templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "" -#: ishtar_menu.py:101 models.py:2015 +#: ishtar_menu.py:101 models.py:2045 msgid "Imports" msgstr "" @@ -544,7 +544,7 @@ msgstr "" msgid "This item already exists." msgstr "" -#: models.py:283 models.py:515 models.py:1268 models.py:1280 +#: models.py:283 models.py:536 models.py:1289 models.py:1301 msgid "Label" msgstr "" @@ -552,191 +552,191 @@ msgstr "" msgid "Textual ID" msgstr "" -#: models.py:288 models.py:518 models.py:1237 +#: models.py:288 models.py:539 models.py:1258 msgid "Available" msgstr "" -#: models.py:537 models.py:1792 +#: models.py:558 models.py:1821 msgid "Key" msgstr "" -#: models.py:543 +#: models.py:564 msgid "Specific key to an import" msgstr "" -#: models.py:623 +#: models.py:644 msgid "Last editor" msgstr "" -#: models.py:626 +#: models.py:647 msgid "Creator" msgstr "" -#: models.py:766 models.py:2595 +#: models.py:787 models.py:2630 msgid "Order" msgstr "" -#: models.py:767 +#: models.py:788 msgid "Symmetrical" msgstr "" -#: models.py:768 +#: models.py:789 msgid "Tiny label" msgstr "" -#: models.py:782 +#: models.py:803 msgid "Cannot have symmetrical and an inverse_relation" msgstr "" -#: models.py:896 +#: models.py:917 msgid "Euro" msgstr "" -#: models.py:897 +#: models.py:918 msgid "US dollar" msgstr "" -#: models.py:903 models.py:1503 +#: models.py:924 models.py:1532 msgid "Slug" msgstr "" -#: models.py:905 +#: models.py:926 msgid "Files module" msgstr "" -#: models.py:906 +#: models.py:927 msgid "Context records module" msgstr "" -#: models.py:908 +#: models.py:929 msgid "Finds module" msgstr "" -#: models.py:909 +#: models.py:930 msgid "Need context records module" msgstr "" -#: models.py:911 +#: models.py:932 msgid "Warehouses module" msgstr "" -#: models.py:912 +#: models.py:933 msgid "Need finds module" msgstr "" -#: models.py:914 +#: models.py:935 msgid "Home page" msgstr "" -#: models.py:915 +#: models.py:936 msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax." msgstr "" -#: models.py:918 +#: models.py:939 msgid "File external id" msgstr "" -#: models.py:920 +#: models.py:941 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:925 +#: models.py:946 msgid "Parcel external id" msgstr "" -#: models.py:928 +#: models.py:949 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:933 +#: models.py:954 msgid "Context record external id" msgstr "" -#: models.py:935 +#: models.py:956 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:940 +#: models.py:961 msgid "Base find external id" msgstr "" -#: models.py:942 +#: models.py:963 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " "data can be destructive." msgstr "" -#: models.py:947 +#: models.py:968 msgid "Find external id" msgstr "" -#: models.py:949 +#: models.py:970 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:954 +#: models.py:975 msgid "Raw name for person" msgstr "" -#: models.py:956 +#: models.py:977 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "" -#: models.py:960 +#: models.py:981 msgid "Current active" msgstr "" -#: models.py:961 +#: models.py:982 msgid "Currency" msgstr "" -#: models.py:965 +#: models.py:986 msgid "Ishtar site profile" msgstr "" -#: models.py:966 +#: models.py:987 msgid "Ishtar site profiles" msgstr "" -#: models.py:1022 +#: models.py:1043 msgid "Variable name" msgstr "" -#: models.py:1023 +#: models.py:1044 msgid "Description of the variable" msgstr "" -#: models.py:1025 models.py:1793 +#: models.py:1046 models.py:1822 msgid "Value" msgstr "" -#: models.py:1028 +#: models.py:1049 msgid "Global variable" msgstr "" -#: models.py:1138 models.py:1168 +#: models.py:1159 models.py:1189 msgid "Total" msgstr "" -#: models.py:1145 models.py:1269 models.py:1281 +#: models.py:1166 models.py:1290 models.py:1302 #: templates/ishtar/sheet_person.html:21 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -744,581 +744,589 @@ msgstr "" msgid "Number" msgstr "" -#: models.py:1232 +#: models.py:1253 msgid "Administrative Act" msgstr "" -#: models.py:1236 +#: models.py:1257 msgid "Associated object" msgstr "" -#: models.py:1240 +#: models.py:1261 msgid "Document template" msgstr "" -#: models.py:1241 +#: models.py:1262 msgid "Document templates" msgstr "" -#: models.py:1272 models.py:1282 models.py:1999 +#: models.py:1293 models.py:1303 models.py:2029 msgid "State" msgstr "" -#: models.py:1286 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1307 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "" -#: models.py:1287 +#: models.py:1308 msgid "Departments" msgstr "" -#: models.py:1324 +#: models.py:1345 msgid "Raw phone" msgstr "" -#: models.py:1330 +#: models.py:1351 msgid "Alternative address is prefered" msgstr "" -#: models.py:1369 +#: models.py:1390 msgid "Tel: " msgstr "" -#: models.py:1373 +#: models.py:1394 msgid "Mobile: " msgstr "" -#: models.py:1377 +#: models.py:1398 msgid "Email: " msgstr "" -#: models.py:1382 +#: models.py:1403 msgid "Merge key" msgstr "" -#: models.py:1443 +#: models.py:1472 msgid "Organization types" msgstr "" -#: models.py:1459 +#: models.py:1488 msgid "Archaeological site" msgstr "" -#: models.py:1460 +#: models.py:1489 msgid "Parcels" msgstr "" -#: models.py:1462 +#: models.py:1491 msgid "Operation source" msgstr "" -#: models.py:1465 views.py:1057 views.py:1108 +#: models.py:1494 views.py:1057 views.py:1108 msgid "Archaeological files" msgstr "" -#: models.py:1467 views.py:1060 views.py:1116 +#: models.py:1496 views.py:1060 views.py:1116 msgid "Context records" msgstr "" -#: models.py:1469 +#: models.py:1498 msgid "Context record relations" msgstr "" -#: models.py:1471 views.py:1062 views.py:1119 +#: models.py:1500 views.py:1062 views.py:1119 msgid "Finds" msgstr "" -#: models.py:1507 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1536 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "" -#: models.py:1509 +#: models.py:1538 msgid "Associated model" msgstr "" -#: models.py:1512 +#: models.py:1541 msgid "Is template" msgstr "" -#: models.py:1513 +#: models.py:1542 msgid "Unicity keys (separator \";\")" msgstr "" -#: models.py:1517 +#: models.py:1546 msgid "Importer - Type" msgstr "" -#: models.py:1518 +#: models.py:1547 msgid "Importer - Types" msgstr "" -#: models.py:1608 +#: models.py:1637 msgid "Importer - Default" msgstr "" -#: models.py:1609 +#: models.py:1638 msgid "Importer - Defaults" msgstr "" -#: models.py:1644 +#: models.py:1673 msgid "Importer - Default value" msgstr "" -#: models.py:1645 +#: models.py:1674 msgid "Importer - Default values" msgstr "" -#: models.py:1677 +#: models.py:1706 msgid "Column number" msgstr "" -#: models.py:1680 +#: models.py:1709 msgid "Required" msgstr "" -#: models.py:1683 +#: models.py:1712 msgid "Importer - Column" msgstr "" -#: models.py:1684 +#: models.py:1713 msgid "Importer - Columns" msgstr "" -#: models.py:1704 +#: models.py:1733 msgid "Field name" msgstr "" -#: models.py:1706 models.py:1740 +#: models.py:1735 models.py:1769 msgid "Force creation of new items" msgstr "" -#: models.py:1708 models.py:1742 +#: models.py:1737 models.py:1771 msgid "Concatenate with existing" msgstr "" -#: models.py:1710 models.py:1744 +#: models.py:1739 models.py:1773 msgid "Concatenate character" msgstr "" -#: models.py:1714 +#: models.py:1743 msgid "Importer - Duplicate field" msgstr "" -#: models.py:1715 +#: models.py:1744 msgid "Importer - Duplicate fields" msgstr "" -#: models.py:1722 +#: models.py:1751 msgid "Regular expression" msgstr "" -#: models.py:1725 +#: models.py:1754 msgid "Importer - Regular expression" msgstr "" -#: models.py:1726 +#: models.py:1755 msgid "Importer - Regular expressions" msgstr "" -#: models.py:1749 +#: models.py:1778 msgid "Importer - Target" msgstr "" -#: models.py:1750 +#: models.py:1779 msgid "Importer - Targets" msgstr "" -#: models.py:1774 views.py:343 +#: models.py:1803 views.py:343 msgid "True" msgstr "" -#: models.py:1775 views.py:345 +#: models.py:1804 views.py:345 msgid "False" msgstr "" -#: models.py:1794 +#: models.py:1823 msgid "Is set" msgstr "" -#: models.py:1801 +#: models.py:1830 msgid "Importer - Target key" msgstr "" -#: models.py:1802 +#: models.py:1831 msgid "Importer - Targets keys" msgstr "" -#: models.py:1853 models.py:2497 models.py:2508 +#: models.py:1883 models.py:2532 models.py:2543 msgid "Format" msgstr "" -#: models.py:1854 models.py:2599 +#: models.py:1884 models.py:2634 msgid "Operation type" msgstr "" -#: models.py:1855 +#: models.py:1885 msgid "Period" msgstr "" -#: models.py:1856 +#: models.py:1886 msgid "Report state" msgstr "" -#: models.py:1857 +#: models.py:1887 msgid "Unit" msgstr "" -#: models.py:1858 +#: models.py:1888 msgid "Material" msgstr "" -#: models.py:1860 +#: models.py:1890 msgid "Conservatory state" msgstr "" -#: models.py:1861 +#: models.py:1891 msgid "Preservation type" msgstr "" -#: models.py:1862 +#: models.py:1892 msgid "Object type" msgstr "" -#: models.py:1864 +#: models.py:1894 msgid "Identification type" msgstr "" -#: models.py:1866 +#: models.py:1896 msgid "Context record relation type" msgstr "" -#: models.py:1867 models.py:2491 +#: models.py:1897 models.py:2526 msgid "Support type" msgstr "" -#: models.py:1873 +#: models.py:1903 msgid "Integer" msgstr "" -#: models.py:1874 +#: models.py:1904 msgid "Float" msgstr "" -#: models.py:1875 +#: models.py:1905 msgid "String" msgstr "" -#: models.py:1876 templates/sheet_ope.html:86 +#: models.py:1906 templates/sheet_ope.html:86 msgid "Date" msgstr "" -#: models.py:1878 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:1908 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "" -#: models.py:1879 +#: models.py:1909 msgid "String to boolean" msgstr "" -#: models.py:1880 +#: models.py:1910 msgctxt "filesystem" msgid "File" msgstr "" -#: models.py:1881 +#: models.py:1911 msgid "Unknow type" msgstr "" -#: models.py:1897 +#: models.py:1927 msgid "4 digit year. e.g.: \"2015\"" msgstr "" -#: models.py:1898 +#: models.py:1928 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "" -#: models.py:1899 +#: models.py:1929 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "" -#: models.py:1909 +#: models.py:1939 msgid "Options" msgstr "" -#: models.py:1911 +#: models.py:1941 msgid "Split character(s)" msgstr "" -#: models.py:1915 +#: models.py:1945 msgid "Importer - Formater type" msgstr "" -#: models.py:1916 +#: models.py:1946 msgid "Importer - Formater types" msgstr "" -#: models.py:1963 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:1993 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "" -#: models.py:1964 +#: models.py:1994 msgid "Analyse in progress" msgstr "" -#: models.py:1965 +#: models.py:1995 msgid "Analysed" msgstr "" -#: models.py:1966 +#: models.py:1996 msgid "Import pending" msgstr "" -#: models.py:1967 +#: models.py:1997 msgid "Import in progress" msgstr "" -#: models.py:1968 +#: models.py:1998 msgid "Finished with errors" msgstr "" -#: models.py:1969 +#: models.py:1999 msgid "Finished" msgstr "" -#: models.py:1970 +#: models.py:2000 msgid "Archived" msgstr "" -#: models.py:1982 +#: models.py:2012 msgid "Imported file" msgstr "" -#: models.py:1985 +#: models.py:2015 msgid "Associated images (zip file)" msgstr "" -#: models.py:1987 +#: models.py:2017 msgid "Encoding" msgstr "" -#: models.py:1989 +#: models.py:2019 msgid "Skip lines" msgstr "" -#: models.py:1990 templates/ishtar/import_list.html:47 +#: models.py:2020 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "" -#: models.py:1993 +#: models.py:2023 msgid "Result file" msgstr "" -#: models.py:1996 templates/ishtar/import_list.html:53 +#: models.py:2026 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "" -#: models.py:2002 +#: models.py:2032 msgid "Conservative import" msgstr "" -#: models.py:2007 +#: models.py:2037 msgid "End date" msgstr "" -#: models.py:2009 +#: models.py:2039 msgid "Remaining seconds" msgstr "" -#: models.py:2014 +#: models.py:2044 msgid "Import" msgstr "" -#: models.py:2031 +#: models.py:2061 msgid "Analyse" msgstr "" -#: models.py:2033 models.py:2036 +#: models.py:2063 models.py:2066 msgid "Re-analyse" msgstr "" -#: models.py:2034 +#: models.py:2064 msgid "Launch import" msgstr "" -#: models.py:2037 +#: models.py:2067 msgid "Re-import" msgstr "" -#: models.py:2038 +#: models.py:2068 msgid "Archive" msgstr "" -#: models.py:2040 +#: models.py:2070 msgid "Unarchive" msgstr "" -#: models.py:2173 +#: models.py:2203 msgid "Organizations" msgstr "" -#: models.py:2175 +#: models.py:2205 msgid "Can view all Organizations" msgstr "" -#: models.py:2176 +#: models.py:2206 msgid "Can view own Organization" msgstr "" -#: models.py:2177 +#: models.py:2207 msgid "Can add own Organization" msgstr "" -#: models.py:2179 +#: models.py:2209 msgid "Can change own Organization" msgstr "" -#: models.py:2181 +#: models.py:2211 msgid "Can delete own Organization" msgstr "" -#: models.py:2216 +#: models.py:2246 msgid "Groups" msgstr "" -#: models.py:2221 +#: models.py:2251 msgid "Person types" msgstr "" -#: models.py:2228 +#: models.py:2257 +msgid "Title type" +msgstr "" + +#: models.py:2258 +msgid "Title types" +msgstr "" + +#: models.py:2265 msgid "Mr" msgstr "" -#: models.py:2229 +#: models.py:2266 msgid "Miss" msgstr "" -#: models.py:2230 +#: models.py:2267 msgid "Mr and Mrs" msgstr "" -#: models.py:2231 +#: models.py:2268 msgid "Mrs" msgstr "" -#: models.py:2232 +#: models.py:2269 msgid "Doctor" msgstr "" -#: models.py:2246 +#: models.py:2285 msgid "Contact type" msgstr "" -#: models.py:2249 models.py:2296 +#: models.py:2288 models.py:2331 msgid "Types" msgstr "" -#: models.py:2252 +#: models.py:2291 msgid "Is attached to" msgstr "" -#: models.py:2256 +#: models.py:2296 msgid "Persons" msgstr "" -#: models.py:2258 +#: models.py:2298 msgid "Can view all Persons" msgstr "" -#: models.py:2259 +#: models.py:2299 msgid "Can view own Person" msgstr "" -#: models.py:2260 +#: models.py:2300 msgid "Can add own Person" msgstr "" -#: models.py:2261 +#: models.py:2301 msgid "Can change own Person" msgstr "" -#: models.py:2262 +#: models.py:2302 msgid "Can delete own Person" msgstr "" -#: models.py:2411 +#: models.py:2446 msgid "Ishtar user" msgstr "" -#: models.py:2412 +#: models.py:2447 msgid "Ishtar users" msgstr "" -#: models.py:2454 +#: models.py:2489 msgid "To modify the password use the form in Auth > User" msgstr "" -#: models.py:2460 +#: models.py:2495 msgid "Author types" msgstr "" -#: models.py:2486 +#: models.py:2521 msgid "Source types" msgstr "" -#: models.py:2492 +#: models.py:2527 msgid "Support types" msgstr "" -#: models.py:2498 +#: models.py:2533 msgid "Formats" msgstr "" -#: models.py:2503 +#: models.py:2538 msgid "External ID" msgstr "" -#: models.py:2506 +#: models.py:2541 msgid "Support" msgstr "" -#: models.py:2510 +#: models.py:2545 msgid "Scale" msgstr "" -#: models.py:2524 +#: models.py:2559 msgid "Item number" msgstr "" -#: models.py:2525 +#: models.py:2560 msgid "Ref." msgstr "" -#: models.py:2528 +#: models.py:2563 msgid "Internal ref." msgstr "" -#: models.py:2570 +#: models.py:2605 msgid "Surface (m2)" msgstr "" -#: models.py:2571 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2606 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "" -#: models.py:2596 +#: models.py:2631 msgid "Is preventive" msgstr "" -#: models.py:2600 +#: models.py:2635 msgid "Operation types" msgstr "" -#: models.py:2626 +#: models.py:2661 msgid "Preventive" msgstr "" -#: models.py:2627 +#: models.py:2662 msgid "Research" msgstr "" @@ -1986,6 +1994,14 @@ msgstr "" msgid "No person in this organization" msgstr "" +#: templates/ishtar/sheet_organization.html:38 +msgid "General contractor organization of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_organization.html:43 +msgid "Town planning service of archaelogical files" +msgstr "" + #: templates/ishtar/sheet_person.html:20 #: templates/ishtar/wizard/wizard_person.html:19 msgid "Phone type" @@ -2013,19 +2029,27 @@ msgstr "" msgid "Associated operations as responsible" msgstr "" -#: templates/ishtar/sheet_person.html:80 -msgid "Associated archaelogical files" +#: templates/ishtar/sheet_person.html:79 +msgid "In charge of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_person.html:84 +msgid "General contractor of archaelogical files" +msgstr "" + +#: templates/ishtar/sheet_person.html:89 +msgid "Responsible for town planning service of archaelogical files" msgstr "" -#: templates/ishtar/sheet_person.html:86 +#: templates/ishtar/sheet_person.html:95 msgid "Documents associated to operations" msgstr "" -#: templates/ishtar/sheet_person.html:91 +#: templates/ishtar/sheet_person.html:100 msgid "Documents associated to context records" msgstr "" -#: templates/ishtar/sheet_person.html:96 +#: templates/ishtar/sheet_person.html:105 msgid "Documents associated to finds" msgstr "" diff --git a/translations/fr/archaeological_context_records.po b/translations/fr/archaeological_context_records.po index 8091a7cb7..d763386d0 100644 --- a/translations/fr/archaeological_context_records.po +++ b/translations/fr/archaeological_context_records.po @@ -14,7 +14,7 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" #: forms.py:46 forms.py:123 models.py:130 #: templates/ishtar/sheet_contextrecord.html:59 @@ -41,7 +41,7 @@ msgstr "Entité Archéologique" msgid "Search within operation relations" msgstr "Rechercher parmi les opérations reliées" -#: forms.py:64 forms.py:189 models.py:48 +#: forms.py:64 forms.py:190 models.py:48 msgid "Period" msgstr "Période" @@ -57,7 +57,7 @@ msgstr "Parcelle (section/nombre/domaine public)" msgid "Search within relations" msgstr "Recherche parmi les relations" -#: forms.py:98 forms.py:288 views.py:118 +#: forms.py:98 forms.py:295 views.py:118 msgid "Context record search" msgstr "Recherche d'Unité d'Enregistrement" @@ -103,120 +103,120 @@ msgstr "Unité" msgid "Location" msgstr "Lieu" -#: forms.py:178 +#: forms.py:179 msgid "This ID already exists for this operation." msgstr "Cet identifiant existe déjà pour cette opération." -#: forms.py:184 forms.py:208 models.py:59 +#: forms.py:185 forms.py:212 models.py:59 msgid "Dating" msgstr "Datation" -#: forms.py:190 models.py:49 +#: forms.py:191 models.py:49 msgid "Start date" msgstr "Date de début" -#: forms.py:191 models.py:50 models.py:135 +#: forms.py:192 models.py:50 models.py:135 msgid "End date" msgstr "Date de fin" -#: forms.py:192 models.py:53 +#: forms.py:193 models.py:53 msgid "Quality" msgstr "Qualité" -#: forms.py:193 models.py:35 models.py:51 +#: forms.py:194 models.py:35 models.py:51 msgid "Dating type" msgstr "Type de datation" -#: forms.py:217 ishtar_menu.py:29 models.py:354 +#: forms.py:221 ishtar_menu.py:29 models.py:354 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:237 +#: forms.py:242 msgid "Relations" msgstr "Relations" -#: forms.py:241 forms.py:251 models.py:153 +#: forms.py:246 forms.py:256 models.py:153 #: templates/ishtar/sheet_contextrecord.html:37 msgid "Interpretation" msgstr "Interprétation" -#: forms.py:245 +#: forms.py:250 msgid "Comments on dating" msgstr "Commentaires sur la datation" -#: forms.py:247 models.py:150 +#: forms.py:252 models.py:150 msgid "Has furniture?" msgstr "Contient du mobilier ?" -#: forms.py:249 models.py:152 +#: forms.py:254 models.py:152 msgid "Filling" msgstr "Remplissage" -#: forms.py:253 models.py:173 +#: forms.py:258 models.py:173 msgid "Activity" msgstr "Activité" -#: forms.py:255 models.py:171 +#: forms.py:260 models.py:171 msgid "Identification" msgstr "Identification" -#: forms.py:257 models.py:156 +#: forms.py:262 models.py:156 msgid "TAQ" msgstr "TAQ" -#: forms.py:258 models.py:160 +#: forms.py:263 models.py:160 msgid "Estimated TAQ" msgstr "TAQ estimé" -#: forms.py:260 models.py:163 +#: forms.py:265 models.py:163 msgid "TPQ" msgstr "TPQ" -#: forms.py:261 models.py:167 +#: forms.py:266 models.py:167 msgid "Estimated TPQ" msgstr "TPQ estimé" -#: forms.py:274 +#: forms.py:281 msgid "Operation search" msgstr "Recherche d'Opérations" -#: forms.py:276 +#: forms.py:283 msgid "You should select an operation." msgstr "Vous devez sélectionner une Opération." -#: forms.py:281 +#: forms.py:288 msgid "Would you like to delete this context record?" msgstr "Voulez-vous supprimer cette Unité d'Enregistrement ?" -#: forms.py:290 +#: forms.py:297 msgid "You should select a context record." msgstr "Vous devez sélectionner une Unité d'Enregistrement." -#: forms.py:295 +#: forms.py:302 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:297 +#: forms.py:304 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:303 +#: forms.py:310 msgid "Town of the operation" msgstr "Commune de l'opération" -#: forms.py:305 +#: forms.py:312 msgid "Period of the context record" msgstr "Période de l'Unité d'Enregistrement" -#: forms.py:307 +#: forms.py:314 msgid "Unit type of the context record" msgstr "Type d'unité de l'Unité d'Enregistrement" -#: forms.py:320 +#: forms.py:327 msgid "Documentation search" msgstr "Recherche de documents" -#: forms.py:322 +#: forms.py:329 msgid "You should select a document." msgstr "Vous devez sélectionner un document." diff --git a/translations/fr/archaeological_files.po b/translations/fr/archaeological_files.po index 33f9ee0fa..ab6a53867 100644 --- a/translations/fr/archaeological_files.po +++ b/translations/fr/archaeological_files.po @@ -15,245 +15,245 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" -#: forms.py:51 forms.py:210 forms.py:254 forms.py:395 forms.py:422 +#: forms.py:52 forms.py:212 forms.py:257 forms.py:404 forms.py:431 #: models.py:76 templates/ishtar/sheet_file.html:139 msgid "Year" msgstr "Année" -#: forms.py:52 forms.py:215 forms.py:256 models.py:79 +#: forms.py:53 forms.py:217 forms.py:259 models.py:79 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:54 forms.py:217 +#: forms.py:55 forms.py:219 msgid "Other reference" msgstr "Autre référence" -#: forms.py:56 forms.py:430 +#: forms.py:57 forms.py:439 msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/nombre/domaine public)" -#: forms.py:59 forms.py:406 forms.py:433 models.py:512 +#: forms.py:60 forms.py:415 forms.py:442 models.py:512 msgid "Department" msgstr "Département" -#: forms.py:60 forms.py:442 +#: forms.py:61 forms.py:451 msgid "File name" msgstr "Nom du dossier" -#: forms.py:61 forms.py:156 forms.py:221 models.py:87 +#: forms.py:62 forms.py:158 forms.py:223 models.py:87 msgid "File type" msgstr "Type de dossier" -#: forms.py:62 +#: forms.py:63 msgid "Is active?" msgstr "Est actif ?" -#: forms.py:63 forms.py:158 forms.py:318 +#: forms.py:64 forms.py:160 forms.py:321 msgid "Saisine type" msgstr "Type de saisine" -#: forms.py:64 forms.py:308 models.py:58 models.py:118 +#: forms.py:65 forms.py:311 models.py:58 models.py:118 msgid "Permit type" msgstr "Type de permis" -#: forms.py:66 forms.py:311 models.py:119 +#: forms.py:67 forms.py:314 models.py:119 msgid "Permit reference" msgstr "Référence du permis" -#: forms.py:67 forms.py:227 forms.py:365 models.py:148 +#: forms.py:68 forms.py:229 forms.py:372 models.py:148 #: templates/ishtar/sheet_file.html:94 msgid "Comment" msgstr "Commentaire" -#: forms.py:69 templates/ishtar/sheet_file.html:112 +#: forms.py:70 templates/ishtar/sheet_file.html:112 msgid "In charge" msgstr "Responsable" -#: forms.py:76 forms.py:286 forms.py:444 models.py:94 +#: forms.py:77 forms.py:289 forms.py:453 models.py:94 msgid "General contractor" msgstr "Aménageur" -#: forms.py:83 forms.py:453 +#: forms.py:84 forms.py:462 msgid "Organization of general contractor" msgstr "Organisation de l'aménageur" -#: forms.py:90 forms.py:476 +#: forms.py:91 forms.py:485 msgid "Created by" msgstr "Créé par" -#: forms.py:97 forms.py:484 +#: forms.py:98 forms.py:493 msgid "Modified by" msgstr "Modifié par" -#: forms.py:127 +#: forms.py:129 msgid "Archaeological file search" msgstr "Recherche de dossiers archéologiques" -#: forms.py:141 +#: forms.py:143 msgid "You should select a file." msgstr "Vous devez sélectionner un dossier archéologique." -#: forms.py:144 forms.py:219 models.py:127 +#: forms.py:146 forms.py:221 models.py:127 msgid "Creation date" msgstr "Date de création" -#: forms.py:145 forms.py:321 models.py:129 +#: forms.py:147 forms.py:324 models.py:129 msgid "Reception date" msgstr "Date de réception" -#: forms.py:150 +#: forms.py:152 msgid "Slicing" msgstr "Découpage" -#: forms.py:152 +#: forms.py:154 msgid "Department detail" msgstr "Détail par département" -#: forms.py:154 +#: forms.py:156 msgid "Date get from" msgstr "Date utilisée" -#: forms.py:160 +#: forms.py:162 msgid "Date after" msgstr "Date après" -#: forms.py:162 +#: forms.py:164 msgid "Date before" msgstr "Date avant" -#: forms.py:199 templates/ishtar/sheet_file.html:14 +#: forms.py:201 templates/ishtar/sheet_file.html:14 msgid "General" msgstr "Général" -#: forms.py:204 models.py:89 +#: forms.py:206 models.py:89 msgid "Person in charge" msgstr "Responsable" -#: forms.py:218 models.py:86 +#: forms.py:220 models.py:86 msgid "Name" msgstr "Nom" -#: forms.py:223 models.py:131 +#: forms.py:225 models.py:131 msgid "Related file" msgstr "Dossier associé" -#: forms.py:231 models.py:139 +#: forms.py:233 models.py:139 msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:234 models.py:145 +#: forms.py:236 models.py:145 msgid "Main address" msgstr "Adresse des terrains" -#: forms.py:235 +#: forms.py:237 msgid "Main address - complement" msgstr "Adresse des terrains - complément" -#: forms.py:247 +#: forms.py:250 #, python-format msgid "<br/>(last recorded: %s)" msgstr "<br/>(dernier enregistrement : %s)" -#: forms.py:269 +#: forms.py:272 msgid "Another file with this numeric id exists." msgstr "Un autre dossier avec cet identifiant numérique existe." -#: forms.py:280 +#: forms.py:283 msgid "Preventive informations" msgstr "Information archéologie préventive" -#: forms.py:298 models.py:106 +#: forms.py:301 models.py:106 msgid "Responsible for town planning service" msgstr "Responsable au service instructeur" -#: forms.py:314 models.py:142 +#: forms.py:317 models.py:142 msgid "Total developed surface (m2)" msgstr "Surface totale aménagée (m2)" -#: forms.py:333 templates/ishtar/sheet_file.html:84 +#: forms.py:340 templates/ishtar/sheet_file.html:84 #: templates/ishtar/dashboards/dashboard_file.html:45 msgid "Research archaeology" msgstr "Archéologie programmée" -#: forms.py:341 models.py:151 templates/ishtar/sheet_file.html:85 +#: forms.py:348 models.py:151 templates/ishtar/sheet_file.html:85 msgid "Departments" msgstr "Départements" -#: forms.py:352 models.py:160 +#: forms.py:359 models.py:160 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:354 models.py:154 templates/ishtar/sheet_file.html:87 +#: forms.py:361 models.py:154 templates/ishtar/sheet_file.html:87 msgid "Requested operation type" msgstr "Type d'opération demandée" -#: forms.py:356 +#: forms.py:363 msgid "Lead organization" msgstr "Organisation porteuse du projet" -#: forms.py:372 models.py:164 templates/ishtar/sheet_file.html:92 +#: forms.py:379 models.py:164 templates/ishtar/sheet_file.html:92 msgid "Classified area" msgstr "Au sein d'un site classé" -#: forms.py:374 models.py:166 templates/ishtar/sheet_file.html:93 +#: forms.py:381 models.py:166 templates/ishtar/sheet_file.html:93 msgid "Protected area" msgstr "Au sein d'un secteur sauvegardé" -#: forms.py:386 +#: forms.py:395 msgid "Would you like to close this archaeological file?" msgstr "Voulez vous clore ce dossier archéologique ?" -#: forms.py:391 +#: forms.py:400 msgid "Would you like to delete this archaelogical file ?" msgstr "Voulez vous supprimer ce dossier archéologique ?" -#: forms.py:396 forms.py:423 forms.py:546 +#: forms.py:405 forms.py:432 forms.py:556 msgid "Index" msgstr "Index" -#: forms.py:400 forms.py:427 forms.py:533 +#: forms.py:409 forms.py:436 forms.py:542 msgid "Act type" msgstr "Type d'acte" -#: forms.py:401 +#: forms.py:410 msgid "Object (full text search)" msgstr "Objet (recherche texte intégral)" -#: forms.py:428 +#: forms.py:437 msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:434 +#: forms.py:443 msgid "Object" msgstr "Objet" -#: forms.py:438 +#: forms.py:447 msgid "Signature date after" msgstr "Date de signature après" -#: forms.py:440 +#: forms.py:449 msgid "Signature date before" msgstr "Date de signature avant" -#: forms.py:461 +#: forms.py:470 msgid "File numeric reference" msgstr "Dossier : réf. numérique" -#: forms.py:462 +#: forms.py:471 msgid "File year" msgstr "Dossier : année" -#: forms.py:464 +#: forms.py:473 msgid "File other reference" msgstr "Dossier : autre référence" -#: forms.py:466 +#: forms.py:475 msgid "File in charge" msgstr "Dossier : responsable" -#: forms.py:474 +#: forms.py:483 msgid "File permit reference" msgstr "Dossier : réf. du permis" diff --git a/translations/fr/archaeological_files_pdl.po b/translations/fr/archaeological_files_pdl.po index e668bc64d..34955a35a 100644 --- a/translations/fr/archaeological_files_pdl.po +++ b/translations/fr/archaeological_files_pdl.po @@ -14,7 +14,7 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" #: forms.py:41 msgid "General" @@ -24,7 +24,7 @@ msgstr "Général" msgid "File type" msgstr "Type de dossier" -#: forms.py:44 forms.py:401 +#: forms.py:44 forms.py:403 msgid "Year" msgstr "Année" @@ -36,97 +36,97 @@ msgstr "Date de création" msgid "Reception date" msgstr "Date de réception" -#: forms.py:62 +#: forms.py:63 msgid "Reception date cannot be after today." msgstr "La date de réception ne peut pas être dans le futur." -#: forms.py:70 +#: forms.py:71 msgid "Permit type" msgstr "Type de permis" -#: forms.py:72 +#: forms.py:73 msgid "Saisine type" msgstr "Type de saisine" -#: forms.py:85 +#: forms.py:87 msgid "Planning" msgstr "Aménagement" -#: forms.py:88 +#: forms.py:90 msgid "Planning name" msgstr "Nom de l'aménagement" -#: forms.py:91 forms.py:121 +#: forms.py:93 forms.py:123 #: templates/ishtar/wizard/wizard_preventiveplanning.html:31 msgid "Towns" msgstr "Communes" -#: forms.py:93 forms.py:123 +#: forms.py:95 forms.py:125 #: templates/ishtar/wizard/wizard_preventiveplanning.html:41 msgid "Departments" msgstr "Départements" -#: forms.py:94 forms.py:124 +#: forms.py:96 forms.py:126 msgid "Locality" msgstr "Lieu-dit" -#: forms.py:97 forms.py:127 +#: forms.py:99 forms.py:129 msgid "Address (number/street)" msgstr "Adresse (n° / voie)" -#: forms.py:98 forms.py:128 +#: forms.py:100 forms.py:130 msgid "Number/street" msgstr "N° / voie" -#: forms.py:100 forms.py:130 +#: forms.py:102 forms.py:132 msgid "Postal code" msgstr "Code postal" -#: forms.py:105 +#: forms.py:107 msgid "Total surface (m2)" msgstr "Surface totale des terrains (m2)" -#: forms.py:110 +#: forms.py:112 msgid "Total developed surface (m2)" msgstr "Surface totale aménagée (m2)" -#: forms.py:117 +#: forms.py:119 msgid "Address" msgstr "Adresse" -#: forms.py:231 forms.py:235 forms.py:265 forms.py:268 +#: forms.py:233 forms.py:237 forms.py:267 forms.py:270 msgid "General contractor" msgstr "Aménageur" -#: forms.py:250 forms.py:362 +#: forms.py:252 forms.py:364 msgid "In charge" msgstr "Responsable" -#: forms.py:340 +#: forms.py:342 msgid "Town planning service" msgstr "Service instructeur" -#: forms.py:344 +#: forms.py:346 msgid "File reference" msgstr "Référence du dossier" -#: forms.py:347 +#: forms.py:349 msgid "Planning service" msgstr "Service instructeur" -#: forms.py:381 +#: forms.py:383 msgid "Person in charge" msgstr "Dossier suivi par" -#: forms.py:393 +#: forms.py:395 msgid "Related file" msgstr "Dossier lié à" -#: forms.py:397 +#: forms.py:399 msgid "Comment" msgstr "Commentaires" -#: forms.py:404 +#: forms.py:406 msgid "Numeric reference" msgstr "Référence numérique" diff --git a/translations/fr/archaeological_finds.po b/translations/fr/archaeological_finds.po index 5ad26c255..6e39f7374 100644 --- a/translations/fr/archaeological_finds.po +++ b/translations/fr/archaeological_finds.po @@ -15,127 +15,127 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" -#: forms.py:49 forms.py:53 wizards.py:62 +#: forms.py:50 forms.py:54 wizards.py:62 msgid "Context record" msgstr "Unité d'Enregistrement" -#: forms.py:82 ishtar_menu.py:31 models.py:384 models.py:649 models.py:747 +#: forms.py:83 ishtar_menu.py:31 models.py:384 models.py:649 models.py:747 #: models.py:891 templates/ishtar/sheet_find.html:5 msgid "Find" msgstr "Mobilier" -#: forms.py:93 forms.py:208 forms.py:412 models.py:113 models.py:317 +#: forms.py:94 forms.py:218 forms.py:422 models.py:113 models.py:317 msgid "Free ID" msgstr "ID libre" -#: forms.py:95 models.py:365 +#: forms.py:96 models.py:365 msgid "Previous ID" msgstr "Identifiant précédent" -#: forms.py:96 forms.py:237 forms.py:577 models.py:117 models.py:318 +#: forms.py:97 forms.py:247 forms.py:588 models.py:117 models.py:318 #: models.py:681 msgid "Description" msgstr "Description" -#: forms.py:99 forms.py:239 models.py:128 +#: forms.py:100 forms.py:249 models.py:128 msgid "Batch/object" msgstr "Lot/objet" -#: forms.py:101 models.py:346 +#: forms.py:102 models.py:346 msgid "Is complete?" msgstr "Est complet ?" -#: forms.py:104 forms.py:228 forms.py:416 models.py:48 +#: forms.py:105 forms.py:238 forms.py:426 models.py:48 msgid "Material type" msgstr "Type de matériau" -#: forms.py:105 forms.py:232 models.py:58 models.py:322 +#: forms.py:106 forms.py:242 models.py:58 models.py:322 msgid "Conservatory state" msgstr "État sanitaire" -#: forms.py:108 models.py:324 +#: forms.py:109 models.py:324 msgid "Conservatory comment" msgstr "Commentaire relatif à la conservation" -#: forms.py:111 models.py:90 models.py:349 +#: forms.py:112 models.py:90 models.py:349 msgid "Object types" msgstr "Types d'objet" -#: forms.py:113 forms.py:231 models.py:65 +#: forms.py:114 forms.py:241 models.py:65 msgid "Preservation type" msgstr "Type de conservation" -#: forms.py:116 forms.py:234 models.py:351 +#: forms.py:117 forms.py:244 models.py:351 msgid "Integrity" msgstr "Intégrité" -#: forms.py:119 forms.py:235 models.py:353 +#: forms.py:120 forms.py:245 models.py:353 msgid "Remarkability" msgstr "Remarquabilité" -#: forms.py:121 models.py:355 +#: forms.py:122 models.py:355 msgid "Length (cm)" msgstr "Longueur (cm)" -#: forms.py:122 models.py:356 +#: forms.py:123 models.py:356 msgid "Width (cm)" msgstr "Largeur (cm)" -#: forms.py:123 models.py:357 +#: forms.py:124 models.py:357 msgid "Height (cm)" msgstr "Hauteur (cm)" -#: forms.py:124 models.py:358 +#: forms.py:125 models.py:358 msgid "Diameter (cm)" msgstr "Diamètre (cm)" -#: forms.py:125 forms.py:417 models.py:329 +#: forms.py:126 forms.py:427 models.py:329 msgid "Volume (l)" msgstr "Volume (l)" -#: forms.py:126 forms.py:418 models.py:330 +#: forms.py:127 forms.py:428 models.py:330 msgid "Weight (g)" msgstr "Poids (g)" -#: forms.py:128 models.py:359 +#: forms.py:129 models.py:359 msgid "Dimensions comment" msgstr "Commentaire concernant les dimensions" -#: forms.py:129 forms.py:419 models.py:333 +#: forms.py:130 forms.py:429 models.py:333 msgid "Find number" msgstr "Mobilier (en nombre)" -#: forms.py:130 models.py:361 +#: forms.py:131 models.py:361 msgid "Mark" msgstr "Marque" -#: forms.py:131 forms.py:241 models.py:367 +#: forms.py:132 forms.py:251 models.py:367 msgid "Check" msgstr "Vérification" -#: forms.py:133 models.py:369 +#: forms.py:134 models.py:369 msgid "Check date" msgstr "Date de vérification" -#: forms.py:134 models.py:118 models.py:362 models.py:682 +#: forms.py:135 models.py:118 models.py:362 models.py:682 msgid "Comment" msgstr "Commentaires" -#: forms.py:137 models.py:363 +#: forms.py:138 models.py:363 msgid "Comment on dating" msgstr "Commentaire général sur les datations" -#: forms.py:138 models.py:371 +#: forms.py:139 models.py:371 msgid "Estimated value" msgstr "Valeur estimée" -#: forms.py:140 +#: forms.py:141 msgid "Image" msgstr "Image" -#: forms.py:141 +#: forms.py:142 #, python-format msgid "" "<p>Heavy images are resized to: %(width)dx%(height)d (ratio is preserved).</" @@ -144,174 +144,174 @@ msgstr "" "<p>Les images trop grandes sont retaillées en : %(width)dx%(height)d (le " "ratio est conservé).</p>" -#: forms.py:174 forms.py:202 models.py:341 +#: forms.py:181 forms.py:212 models.py:341 msgid "Dating" msgstr "Datation" -#: forms.py:179 forms.py:226 +#: forms.py:186 forms.py:236 msgid "Period" msgstr "Période" -#: forms.py:180 forms.py:579 models.py:695 models.py:760 models.py:896 +#: forms.py:187 forms.py:590 models.py:695 models.py:760 models.py:896 #: templates/ishtar/sheet_find.html:81 templates/ishtar/sheet_find.html:110 msgid "Start date" msgstr "Date de début" -#: forms.py:182 forms.py:581 models.py:696 models.py:761 models.py:897 +#: forms.py:189 forms.py:592 models.py:696 models.py:761 models.py:897 #: templates/ishtar/sheet_find.html:82 templates/ishtar/sheet_find.html:111 msgid "End date" msgstr "Date de fin" -#: forms.py:183 +#: forms.py:190 msgid "Quality" msgstr "Qualité" -#: forms.py:185 +#: forms.py:192 msgid "Dating type" msgstr "Type de datation" -#: forms.py:187 +#: forms.py:194 msgid "Precise dating" msgstr "Datation précise" -#: forms.py:206 models.py:136 +#: forms.py:216 models.py:136 msgid "Short ID" msgstr "ID court" -#: forms.py:207 models.py:139 +#: forms.py:217 models.py:139 msgid "Complete ID" msgstr "ID complet" -#: forms.py:211 +#: forms.py:221 msgid "Year" msgstr "Année" -#: forms.py:214 +#: forms.py:224 msgid "Code PATRIARCHE" msgstr "Code PATRIARCHE" -#: forms.py:218 +#: forms.py:228 msgid "Archaelogical site" msgstr "Entité Archéologique" -#: forms.py:224 +#: forms.py:234 msgid "Search within operation relations" msgstr "Rechercher parmi les opérations reliées" -#: forms.py:229 models.py:89 +#: forms.py:239 models.py:89 msgid "Object type" msgstr "Type d'objet" -#: forms.py:242 +#: forms.py:252 msgid "Has an image?" msgstr "Dispose d'une image ?" -#: forms.py:284 forms.py:297 views.py:120 +#: forms.py:294 forms.py:307 views.py:120 msgid "Find search" msgstr "Recherche de mobilier" -#: forms.py:311 +#: forms.py:321 msgid "Upstream finds" msgstr "Mobilier amont" -#: forms.py:313 models.py:385 +#: forms.py:323 models.py:385 msgid "Finds" msgstr "Mobilier" -#: forms.py:323 +#: forms.py:333 msgid "You should at least select one archaeological find." msgstr "Vous devez sélectionner au moins un mobilier archéologique." -#: forms.py:409 +#: forms.py:419 msgid "Resulting find" msgstr "Mobilier résultant" -#: forms.py:414 +#: forms.py:424 msgid "Precise description" msgstr "Description précise" -#: forms.py:428 +#: forms.py:439 msgid "Resulting finds" msgstr "Mobiliers résultants" -#: forms.py:433 +#: forms.py:444 msgid "Would you like to delete this find?" msgstr "Souhaitez vous supprimer ce mobilier ?" -#: forms.py:437 +#: forms.py:448 msgid "Upstream find" msgstr "Mobilier amont" -#: forms.py:448 +#: forms.py:459 msgid "Archaeological find search" msgstr "Recherche de mobilier" -#: forms.py:450 +#: forms.py:461 msgid "You should select an archaeological find." msgstr "Vous devez sélectionner du mobilier." -#: forms.py:455 +#: forms.py:466 msgid "Year of the operation" msgstr "Année de l'opération" -#: forms.py:457 +#: forms.py:468 msgid "Numeric reference" msgstr "Référence numérique" -#: forms.py:464 +#: forms.py:475 msgid "Period of the archaelogical find" msgstr "Période du mobilier" -#: forms.py:466 +#: forms.py:477 msgid "Material type of the archaelogical find" msgstr "Type de matériau du mobilier" -#: forms.py:468 +#: forms.py:479 msgid "Description of the archaelogical find" msgstr "Description du mobilier" -#: forms.py:480 +#: forms.py:491 msgid "Documentation search" msgstr "Recherche de document" -#: forms.py:482 +#: forms.py:493 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:499 +#: forms.py:510 msgid "Another basket already exist with this name." msgstr "Un autre panier existe déjà avec ce nom." -#: forms.py:509 ishtar_menu.py:60 +#: forms.py:520 ishtar_menu.py:60 msgid "Basket" msgstr "Panier" -#: forms.py:559 +#: forms.py:570 msgid "Base treatment" msgstr "Traitement de base" -#: forms.py:564 models.py:671 models.py:684 models.py:759 +#: forms.py:575 models.py:671 models.py:684 models.py:759 msgid "Treatment type" msgstr "Type de traitement" -#: forms.py:566 models.py:693 models.py:764 +#: forms.py:577 models.py:693 models.py:764 #: templates/ishtar/sheet_find.html:79 templates/ishtar/sheet_find.html:108 msgid "Doer" msgstr "Opérateur" -#: forms.py:572 models.py:686 models.py:762 +#: forms.py:583 models.py:686 models.py:762 msgid "Location" msgstr "Lieu" -#: forms.py:592 +#: forms.py:604 msgid "Leave it blank if you want to select a single item" msgstr "Ne pas modifier si vous voulez sélectionner un seul élément" -#: forms.py:599 +#: forms.py:611 msgid "This treatment type is not available." msgstr "Ce type de traitement n'est pas disponible" -#: forms.py:603 +#: forms.py:615 msgid "This treatment needs a basket." msgstr "Ce traitement nécessite de sélectionner un panier." diff --git a/translations/fr/archaeological_operations.po b/translations/fr/archaeological_operations.po index c709c7303..b154cdab2 100644 --- a/translations/fr/archaeological_operations.po +++ b/translations/fr/archaeological_operations.po @@ -15,14 +15,14 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" -#: forms.py:66 forms.py:368 forms.py:952 forms.py:974 forms.py:978 +#: forms.py:67 forms.py:369 forms.py:956 forms.py:978 forms.py:982 #: models.py:815 templates/ishtar/blocks/window_tables/parcels.html:10 msgid "Parcels" msgstr "Parcelles" -#: forms.py:69 forms.py:202 forms.py:928 models.py:801 +#: forms.py:70 forms.py:203 forms.py:932 models.py:801 #: templates/ishtar/blocks/window_tables/parcels.html:7 #: templates/ishtar/dashboards/dashboard_operation.html:432 #: templates/ishtar/dashboards/dashboard_operation.html:446 @@ -31,92 +31,92 @@ msgstr "Parcelles" msgid "Town" msgstr "Commune" -#: forms.py:71 forms.py:457 forms.py:731 forms.py:1192 models.py:194 +#: forms.py:72 forms.py:459 forms.py:733 forms.py:1202 models.py:194 #: models.py:618 models.py:799 #: templates/ishtar/blocks/window_tables/parcels.html:8 msgid "Year" msgstr "Année" -#: forms.py:74 models.py:802 +#: forms.py:75 models.py:802 #: templates/ishtar/blocks/window_tables/parcels.html:9 msgid "Section" msgstr "Section" -#: forms.py:77 models.py:804 +#: forms.py:78 models.py:804 msgid "Parcel number" msgstr "Numéro de parcelle" -#: forms.py:79 models.py:806 models.py:823 models.py:872 +#: forms.py:80 models.py:806 models.py:823 models.py:872 msgid "Public domain" msgstr "Domaine public" -#: forms.py:123 +#: forms.py:124 msgid "Town section is required." msgstr "Vous devez renseigner le secteur." -#: forms.py:167 +#: forms.py:168 msgid "Current parcels" msgstr "Parcelles actuelles" -#: forms.py:169 +#: forms.py:170 msgid "Deleted parcels" msgstr "Parcelles supprimées" -#: forms.py:205 +#: forms.py:206 msgid "Full text input" msgstr "Saisie libre" -#: forms.py:207 +#: forms.py:208 msgid "example: \"2013: XD:1 to 13,24,33 to 39, YD:24\" or \"AB:24,AC:42\"" msgstr "exemple : \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou \"AB:24,AC:42\"" -#: forms.py:362 +#: forms.py:363 msgid "There are identical parcels." msgstr "Il y a des parcelles identiques." -#: forms.py:377 +#: forms.py:378 msgid "Relation type" msgstr "Type de relation" -#: forms.py:380 ishtar_menu.py:30 models.py:276 models.py:518 models.py:543 +#: forms.py:381 ishtar_menu.py:30 models.py:276 models.py:518 models.py:543 #: models.py:559 models.py:610 models.py:798 wizards.py:338 wizards.py:349 #: templates/ishtar/sheet_operation.html:4 msgid "Operation" msgstr "Opération" -#: forms.py:399 +#: forms.py:401 msgid ":" msgstr ": " -#: forms.py:407 forms.py:585 forms.py:1157 +#: forms.py:409 forms.py:587 forms.py:1167 msgid "You should select an operation." msgstr "Vous devez sélectionner une opération." -#: forms.py:411 +#: forms.py:413 msgid "You should select a relation type." msgstr "Vous devez sélectionner un type de relation." -#: forms.py:441 +#: forms.py:443 msgid "Current relations" msgstr "Relations actuelles" -#: forms.py:443 +#: forms.py:445 msgid "Deleted relations" msgstr "Relations supprimées" -#: forms.py:447 templates/ishtar/sheet_operation.html:114 +#: forms.py:449 templates/ishtar/sheet_operation.html:114 msgid "Relations" msgstr "Relations" -#: forms.py:458 forms.py:1163 +#: forms.py:460 forms.py:1173 msgid "Numeric reference" msgstr "Identifiant numérique" -#: forms.py:464 forms.py:1203 +#: forms.py:466 forms.py:1213 msgid "Parcel (section/number/public domain)" msgstr "Parcelle (section/nombre/domaine public)" -#: forms.py:467 forms.py:1206 models.py:519 +#: forms.py:469 forms.py:1216 models.py:519 #: templates/ishtar/dashboards/dashboard_operation.html:390 #: templates/ishtar/dashboards/dashboard_operation.html:411 #: templates/ishtar/dashboards/dashboard_operation.html:643 @@ -124,219 +124,219 @@ msgstr "Parcelle (section/nombre/domaine public)" msgid "Department" msgstr "Département" -#: forms.py:468 forms.py:1038 models.py:78 +#: forms.py:470 forms.py:1044 models.py:78 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:8 msgid "Name" msgstr "Nom" -#: forms.py:470 forms.py:652 forms.py:729 forms.py:1169 models.py:202 +#: forms.py:472 forms.py:654 forms.py:731 forms.py:1179 models.py:202 msgid "Operation type" msgstr "Type d'opération" -#: forms.py:472 +#: forms.py:474 msgid "Is open?" msgstr "Est ouvert ?" -#: forms.py:481 forms.py:758 models.py:191 +#: forms.py:483 forms.py:760 models.py:191 msgid "In charge" msgstr "Responsable" -#: forms.py:488 models.py:604 +#: forms.py:490 models.py:604 msgid "Scientist in charge" msgstr "Responsable scientifique" -#: forms.py:490 forms.py:654 forms.py:749 models.py:189 +#: forms.py:492 forms.py:656 forms.py:751 models.py:189 msgid "Operator" msgstr "Opérateur" -#: forms.py:497 forms.py:1043 models.py:82 models.py:204 +#: forms.py:499 forms.py:1049 models.py:82 models.py:204 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:10 msgid "Remains" msgstr "Vestiges" -#: forms.py:498 forms.py:1022 forms.py:1040 models.py:80 models.py:209 +#: forms.py:500 forms.py:1027 forms.py:1046 models.py:80 models.py:209 #: templates/ishtar/blocks/window_tables/archaeologicalsites.html:9 msgid "Periods" msgstr "Périodes" -#: forms.py:499 +#: forms.py:501 msgid "Started before" msgstr "Commencé avant" -#: forms.py:501 +#: forms.py:503 msgid "Started after" msgstr "Commencé après" -#: forms.py:503 +#: forms.py:505 msgid "Ended before" msgstr "Terminé avant" -#: forms.py:505 +#: forms.py:507 msgid "Ended after" msgstr "Terminé après" -#: forms.py:508 +#: forms.py:510 msgid "Search within relations" msgstr "Recherche parmi les relations" -#: forms.py:510 forms.py:797 models.py:255 +#: forms.py:512 forms.py:799 models.py:255 msgid "Comment" msgstr "Commentaire" -#: forms.py:511 +#: forms.py:513 msgid "Abstract (full text search)" msgstr "Résumé (recherche texte intégral)" -#: forms.py:512 forms.py:799 models.py:267 +#: forms.py:514 forms.py:801 models.py:267 msgid "Record quality" msgstr "Qualité d'enregistrement" -#: forms.py:513 forms.py:781 models.py:221 +#: forms.py:515 forms.py:783 models.py:221 msgid "Report processing" msgstr "Traitement du rapport" -#: forms.py:515 forms.py:802 models.py:262 +#: forms.py:517 forms.py:804 models.py:262 msgid "Virtual operation" msgstr "Opération virtuelle" -#: forms.py:517 forms.py:1083 +#: forms.py:519 forms.py:1093 msgid "Archaelogical site" msgstr "Entité Archéologique" -#: forms.py:523 forms.py:1210 +#: forms.py:525 forms.py:1220 msgid "Created by" msgstr "Créé par" -#: forms.py:529 forms.py:1216 +#: forms.py:531 forms.py:1226 msgid "Modified by" msgstr "Modifié par" -#: forms.py:572 forms.py:1155 views.py:247 +#: forms.py:574 forms.py:1165 views.py:247 msgid "Operation search" msgstr "Recherche d'opérations" -#: forms.py:616 +#: forms.py:618 msgid "Associated file" msgstr "Dossier associé" -#: forms.py:620 forms.py:876 models.py:615 wizards.py:76 +#: forms.py:622 forms.py:880 models.py:615 wizards.py:76 msgid "Archaelogical file" msgstr "Dossier" -#: forms.py:627 forms.py:629 models.py:269 +#: forms.py:629 forms.py:631 models.py:269 msgid "Abstract" msgstr "Résumé" -#: forms.py:632 +#: forms.py:634 msgid "months" msgstr "mois" -#: forms.py:632 +#: forms.py:634 msgid "years" msgstr "années" -#: forms.py:634 models.py:175 +#: forms.py:636 models.py:175 msgid "Creation date" msgstr "Date de création" -#: forms.py:635 +#: forms.py:637 msgid "Start of field work" msgstr "Début du travail de terrain" -#: forms.py:637 +#: forms.py:639 msgid "All" msgstr "Tout" -#: forms.py:638 +#: forms.py:640 msgid "Preventive" msgstr "Préventif" -#: forms.py:639 +#: forms.py:641 msgid "Research" msgstr "Programmé" -#: forms.py:643 +#: forms.py:645 msgid "Slicing" msgstr "Découpage" -#: forms.py:646 +#: forms.py:648 msgid "Department detail" msgstr "Détail par département" -#: forms.py:648 +#: forms.py:650 msgid "Date get from" msgstr "Date obtenue depuis" -#: forms.py:650 +#: forms.py:652 msgid "Preventive/Research" msgstr "Préventif/Programmé" -#: forms.py:656 +#: forms.py:658 msgid "Date after" msgstr "Date après" -#: forms.py:658 +#: forms.py:660 msgid "Date before" msgstr "Date avant" -#: forms.py:660 +#: forms.py:662 msgid "With reports" msgstr "Avec un rapport" -#: forms.py:661 +#: forms.py:663 msgid "With finds" msgstr "Avec du mobilier" -#: forms.py:713 forms.py:1264 templates/ishtar/sheet_administrativeact.html:13 +#: forms.py:715 forms.py:1274 templates/ishtar/sheet_administrativeact.html:13 #: templates/ishtar/sheet_operation.html:30 msgid "General" msgstr "Général" -#: forms.py:727 models.py:254 +#: forms.py:729 models.py:254 msgid "Generic name" msgstr "Nom générique" -#: forms.py:736 models.py:223 +#: forms.py:738 models.py:223 msgid "Old code" msgstr "Ancien code" -#: forms.py:739 +#: forms.py:741 msgid "Head scientist" msgstr "Responsable scientifique" -#: forms.py:755 models.py:253 +#: forms.py:757 models.py:253 msgid "Operator reference" msgstr "Référence de l'opérateur" -#: forms.py:767 +#: forms.py:769 msgid "Total surface (m2)" msgstr "Surface totale (m2)" -#: forms.py:774 models.py:50 models.py:178 models.py:988 +#: forms.py:776 models.py:50 models.py:178 models.py:988 msgid "Start date" msgstr "Date de début" -#: forms.py:776 models.py:180 +#: forms.py:778 models.py:180 msgid "Excavation end date" msgstr "Date de fin de chantier" -#: forms.py:779 models.py:181 +#: forms.py:781 models.py:181 msgid "Report delivery date" msgstr "Date de livraison du rapport" -#: forms.py:829 +#: forms.py:833 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:834 +#: forms.py:838 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:862 +#: forms.py:866 #, python-format msgid "" "Operation code already exist for year: %(year)d - use a value bigger than " @@ -345,109 +345,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:866 +#: forms.py:870 msgid "Bad operation code" msgstr "Mauvais code d'opération" -#: forms.py:872 models.py:195 models.py:405 +#: forms.py:876 models.py:195 models.py:405 msgid "Operation code" msgstr "Code de l'opération" -#: forms.py:898 +#: forms.py:902 msgid "Preventive informations - excavation" msgstr "Information archéologie préventive - fouille" -#: forms.py:899 models.py:207 +#: forms.py:903 models.py:207 #: templates/ishtar/dashboards/dashboard_operation.html:699 msgid "Cost (euros)" msgstr "Coût (euros)" -#: forms.py:900 models.py:212 +#: forms.py:904 models.py:212 msgid "Scheduled man-days" msgstr "Jours-hommes prévus" -#: forms.py:902 models.py:215 +#: forms.py:906 models.py:215 msgid "Optional man-days" msgstr "Jours-hommes optionnels" -#: forms.py:904 models.py:218 +#: forms.py:908 models.py:218 msgid "Effective man-days" msgstr "Jours-hommes effectifs" -#: forms.py:914 +#: forms.py:918 msgid "Preventive informations - diagnostic" msgstr "Information archéologie préventive - diagnostic" -#: forms.py:917 models.py:237 +#: forms.py:921 models.py:237 msgid "Prescription on zoning" msgstr "Prescription sur zonage" -#: forms.py:919 models.py:240 +#: forms.py:923 models.py:240 msgid "Prescription on large area" msgstr "Prescription sur une vaste surface" -#: forms.py:922 models.py:242 +#: forms.py:926 models.py:242 msgid "Prescription on geoarchaeological context" msgstr "Prescription sur un contexte géoarchéologique" -#: forms.py:926 forms.py:948 models.py:206 models.py:628 +#: forms.py:930 forms.py:952 models.py:206 models.py:628 msgid "Towns" msgstr "Communes" -#: forms.py:955 models.py:814 models.py:986 +#: forms.py:959 models.py:814 models.py:986 msgid "Parcel" msgstr "Parcelle" -#: forms.py:1007 models.py:44 +#: forms.py:1011 models.py:44 msgid "Remain types" msgstr "Types de vestige" -#: forms.py:1011 models.py:43 +#: forms.py:1015 models.py:43 msgid "Remain type" msgstr "Type de vestige" -#: forms.py:1026 +#: forms.py:1031 msgid "Period" msgstr "Période" -#: forms.py:1037 models.py:77 +#: forms.py:1043 models.py:77 msgid "Reference" msgstr "Référence" -#: forms.py:1062 +#: forms.py:1072 msgid "This reference already exists." msgstr "Cette référence existe déjà." -#: forms.py:1079 models.py:86 +#: forms.py:1089 models.py:86 msgid "Archaeological site" msgstr "Entité archéologique" -#: forms.py:1094 models.py:87 models.py:259 +#: forms.py:1104 models.py:87 models.py:259 #: templates/ishtar/sheet_operation.html:125 msgid "Archaeological sites" msgstr "Entités archéologiques" -#: forms.py:1098 +#: forms.py:1108 msgid "Associated archaelogical sites" msgstr "Entités archéologiques associées" -#: forms.py:1104 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 +#: forms.py:1114 ishtar_menu.py:33 ishtar_menu.py:63 ishtar_menu.py:92 msgid "Search" msgstr "Recherche" -#: forms.py:1109 +#: forms.py:1119 msgid "Would you like to close this operation?" msgstr "Voulez-vous clore cette opération ?" -#: forms.py:1114 +#: forms.py:1124 msgid "Would you like to delete this operation?" msgstr "Voulez-vous supprimer cette opération ?" -#: forms.py:1123 forms.py:1193 forms.py:1328 models.py:545 models.py:595 +#: forms.py:1133 forms.py:1203 forms.py:1339 models.py:545 models.py:595 msgid "Index" msgstr "Index" -#: forms.py:1149 +#: forms.py:1159 #, python-format msgid "" "Index already exists for operation: %(operation)s - use a value bigger than " @@ -456,48 +456,48 @@ msgstr "" "Cet index existe déjà pour l'opération : %(operation)s, utilisez une valeur " "plus grande que %(last_val)d" -#: forms.py:1161 +#: forms.py:1171 msgid "Operation's year" msgstr "Année de l'opération" -#: forms.py:1168 +#: forms.py:1178 msgid "Operation's town" msgstr "Commune de l'opération" -#: forms.py:1181 +#: forms.py:1191 msgid "Documentation search" msgstr "Recherche de document" -#: forms.py:1183 +#: forms.py:1193 msgid "You should select a document." msgstr "Vous devez sélectionner un document." -#: forms.py:1200 forms.py:1267 models.py:570 models.py:589 +#: forms.py:1210 forms.py:1277 models.py:570 models.py:589 msgid "Act type" msgstr "Type d'acte" -#: forms.py:1201 forms.py:1398 +#: forms.py:1211 forms.py:1409 msgid "Indexed?" msgstr "Indexé ?" -#: forms.py:1207 forms.py:1272 models.py:619 +#: forms.py:1217 forms.py:1282 models.py:619 #: templates/ishtar/blocks/window_tables/administrativacts.html:10 msgid "Object" msgstr "Objet" -#: forms.py:1244 views.py:403 +#: forms.py:1254 views.py:403 msgid "Administrative act search" msgstr "Recherche d'actes administratifs" -#: forms.py:1259 forms.py:1356 forms.py:1423 +#: forms.py:1269 forms.py:1367 forms.py:1434 msgid "You should select an administrative act." msgstr "Vous devez sélectionner un acte administratif." -#: forms.py:1275 models.py:616 +#: forms.py:1285 models.py:616 msgid "Signature date" msgstr "Date de signature" -#: forms.py:1316 +#: forms.py:1327 #, python-format msgid "" "This index already exist for year: %(year)d - use a value bigger than " @@ -506,31 +506,31 @@ msgstr "" "Cet index existe déjà pour l'année : %(year)d, utilisez une valeur plus " "grande que %(last_val)d" -#: forms.py:1320 +#: forms.py:1331 msgid "Bad index" msgstr "Mauvais index" -#: forms.py:1333 +#: forms.py:1344 msgid "Would you like to delete this administrative act?" msgstr "Voulez-vous supprimer cet acte administratif ?" -#: forms.py:1338 +#: forms.py:1349 msgid "Template" msgstr "Patron" -#: forms.py:1362 forms.py:1366 +#: forms.py:1373 forms.py:1377 msgid "This document is not intended for this type of act." msgstr "Ce document n'est pas destiné à ce type d'acte." -#: forms.py:1384 +#: forms.py:1395 msgid "Doc generation" msgstr "Génération de document" -#: forms.py:1386 +#: forms.py:1397 msgid "Generate the associated doc?" msgstr "Générer le document associé ?" -#: forms.py:1407 ishtar_menu.py:121 views.py:456 +#: forms.py:1418 ishtar_menu.py:121 views.py:456 msgctxt "admin act register" msgid "Register" msgstr "Registre" diff --git a/translations/fr/archaeological_warehouse.po b/translations/fr/archaeological_warehouse.po index 23dde1c2c..2e7367415 100644 --- a/translations/fr/archaeological_warehouse.po +++ b/translations/fr/archaeological_warehouse.po @@ -13,9 +13,9 @@ msgstr "" "Language-Team: \n" "Language: fr\n" "Plural-Forms: nplurals=2; plural=n>1;\n" -"X-Generator: Zanata 3.9.3\n" +"X-Generator: Zanata 3.9.5\n" -#: forms.py:34 forms.py:96 models.py:44 models.py:73 +#: forms.py:34 forms.py:97 models.py:44 models.py:73 msgid "Warehouse" msgstr "Dépôt" @@ -31,7 +31,7 @@ msgstr "Type de dépôt" msgid "Person in charge" msgstr "Responsable" -#: forms.py:54 forms.py:101 models.py:41 models.py:77 +#: forms.py:54 forms.py:102 models.py:41 models.py:77 msgid "Comment" msgstr "Commentaires" @@ -59,43 +59,43 @@ msgstr "Pays" msgid "Phone" msgstr "Téléphone" -#: forms.py:92 models.py:80 +#: forms.py:93 models.py:80 msgid "Container" msgstr "Contenant" -#: forms.py:93 forms.py:127 models.py:63 +#: forms.py:94 forms.py:129 models.py:63 msgid "Ref." msgstr "Réf." -#: forms.py:94 forms.py:126 models.py:66 models.py:75 +#: forms.py:95 forms.py:128 models.py:66 models.py:75 msgid "Container type" msgstr "Type de contenant" -#: forms.py:137 +#: forms.py:139 msgid "Container search" msgstr "Recherche de contenant" -#: forms.py:139 +#: forms.py:141 msgid "You should select a container." msgstr "Vous devez sélectionner un contenant." -#: forms.py:140 +#: forms.py:142 msgid "Add a new container" msgstr "Ajouter un nouveau contenant." -#: forms.py:144 ishtar_menu.py:33 views.py:94 +#: forms.py:146 ishtar_menu.py:33 views.py:94 msgid "Packaging" msgstr "Conditionnement" -#: forms.py:151 +#: forms.py:153 msgid "Packager" msgstr "Personne assurant le conditionnement" -#: forms.py:157 +#: forms.py:159 msgid "Date" msgstr "Date" -#: forms.py:166 +#: forms.py:168 msgid "Packaged finds" msgstr "Mobilier conditionné" diff --git a/translations/fr/ishtar_common.po b/translations/fr/ishtar_common.po index cc510c51c..090b141d0 100644 --- a/translations/fr/ishtar_common.po +++ b/translations/fr/ishtar_common.po @@ -10,12 +10,12 @@ msgstr "" "MIME-Version: 1.0\n" "Content-Transfer-Encoding: 8bit\n" "Content-Type: text/plain; charset=UTF-8\n" -"PO-Revision-Date: 2016-08-29 11:39-0400\n" +"PO-Revision-Date: 2016-09-02 03:42-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.9.3\n" +"X-Generator: Zanata 3.9.5\n" #: __init__.py:8 msgid "username" @@ -33,7 +33,7 @@ msgstr "Élément associé" msgid "Archaeological file" msgstr "Dossier" -#: context_processors.py:39 models.py:1457 +#: context_processors.py:39 models.py:1486 msgid "Operation" msgstr "Opération" @@ -161,7 +161,7 @@ msgstr "\"%(value)s\" n'est pas dans %(values)s" msgid "Enter a valid name consisting of letters, spaces and hyphens." msgstr "Entrez un nom correct composé de lettres, espaces et tirets." -#: forms.py:71 forms_common.py:490 +#: forms.py:71 forms_common.py:499 msgid "Confirm" msgstr "Confirmer" @@ -185,18 +185,18 @@ msgstr "Vous devez sélectionner un élément." msgid "Add a new item" msgstr "Ajouter un nouvel élément" -#: forms.py:204 models.py:1234 +#: forms.py:235 models.py:1255 msgid "Template" msgstr "Patron" -#: forms_common.py:39 forms_common.py:57 forms_common.py:170 -#: forms_common.py:293 models.py:1300 models.py:2583 +#: forms_common.py:40 forms_common.py:58 forms_common.py:171 +#: forms_common.py:296 models.py:1321 models.py:2618 #: templates/blocks/JQueryAdvancedTown.html:19 #: templates/ishtar/sheet_organization.html:13 msgid "Town" msgstr "Commune" -#: forms_common.py:41 +#: forms_common.py:42 msgid "" "<p>Type name, department code and/or postal code of the town you would like " "to select. The search is insensitive to case.</p>\n" @@ -214,70 +214,70 @@ msgstr "" "<p class='example'>Par exemple tapez « saint denis 93 » pour obtenir la " "commune Saint-Denis dans le département français de Seine-Saint-Denis.</p>" -#: forms_common.py:66 forms_common.py:718 ishtar_menu.py:47 models.py:1455 -#: models.py:2255 models.py:2407 models.py:2464 +#: forms_common.py:67 forms_common.py:728 ishtar_menu.py:47 models.py:1484 +#: models.py:2295 models.py:2442 models.py:2499 #: templates/ishtar/sheet_person.html:4 msgid "Person" msgstr "Personne" -#: forms_common.py:158 forms_common.py:234 forms_common.py:336 -#: ishtar_menu.py:71 models.py:1456 models.py:2172 +#: forms_common.py:159 forms_common.py:236 forms_common.py:341 +#: ishtar_menu.py:71 models.py:1485 models.py:2202 #: templates/ishtar/sheet_organization.html:4 msgid "Organization" msgstr "Organisation" -#: forms_common.py:161 forms_common.py:197 forms_common.py:229 -#: forms_common.py:263 forms_common.py:331 models.py:902 models.py:1233 -#: models.py:1501 models.py:1719 models.py:2166 models.py:2242 models.py:2569 +#: forms_common.py:162 forms_common.py:199 forms_common.py:231 +#: forms_common.py:266 forms_common.py:336 models.py:923 models.py:1254 +#: models.py:1530 models.py:1748 models.py:2196 models.py:2281 models.py:2604 #: templates/ishtar/sheet_organization.html:8 #: templates/ishtar/sheet_organization.html:21 msgid "Name" msgstr "Nom" -#: forms_common.py:162 models.py:1442 models.py:1850 +#: forms_common.py:163 models.py:1471 models.py:1879 msgid "Organization type" msgstr "Type d'organisation" -#: forms_common.py:164 forms_common.py:287 models.py:1295 +#: forms_common.py:165 forms_common.py:290 models.py:1316 #: templates/ishtar/sheet_organization.html:10 msgid "Address" msgstr "Adresse" -#: forms_common.py:166 forms_common.py:290 models.py:1296 +#: forms_common.py:167 forms_common.py:293 models.py:1317 #: templates/ishtar/sheet_organization.html:11 msgid "Address complement" msgstr "Complément d'adresse" -#: forms_common.py:168 forms_common.py:291 models.py:1298 +#: forms_common.py:169 forms_common.py:294 models.py:1319 #: templates/ishtar/sheet_organization.html:12 msgid "Postal code" msgstr "Code postal" -#: forms_common.py:171 forms_common.py:294 models.py:1301 +#: forms_common.py:172 forms_common.py:297 models.py:1322 msgid "Country" msgstr "Pays" -#: forms_common.py:173 forms_common.py:231 forms_common.py:267 -#: forms_common.py:333 forms_common.py:446 models.py:1328 +#: forms_common.py:174 forms_common.py:233 forms_common.py:270 +#: forms_common.py:338 forms_common.py:453 models.py:1349 msgid "Email" msgstr "Courriel" -#: forms_common.py:174 forms_common.py:270 models.py:1313 +#: forms_common.py:175 forms_common.py:273 models.py:1334 #: templates/ishtar/sheet_organization.html:14 #: templates/ishtar/sheet_person.html:18 #: templates/ishtar/wizard/wizard_person.html:17 msgid "Phone" msgstr "Téléphone" -#: forms_common.py:175 forms_common.py:279 models.py:1325 +#: forms_common.py:176 forms_common.py:282 models.py:1346 #: templates/ishtar/sheet_organization.html:15 #: templates/ishtar/sheet_person.html:36 #: templates/ishtar/wizard/wizard_person.html:35 msgid "Mobile phone" msgstr "Téléphone portable" -#: forms_common.py:198 forms_common.py:232 forms_common.py:334 models.py:1877 -#: models.py:2168 models.py:2505 templates/sheet_ope.html:85 +#: forms_common.py:200 forms_common.py:234 forms_common.py:339 models.py:1907 +#: models.py:2198 models.py:2540 templates/sheet_ope.html:85 #: templates/sheet_ope.html.py:105 templates/sheet_ope.html:126 #: templates/ishtar/import_list.html:13 #: templates/ishtar/sheet_organization.html:23 @@ -285,210 +285,210 @@ msgstr "Téléphone portable" msgid "Type" msgstr "Type" -#: forms_common.py:207 views.py:130 +#: forms_common.py:209 views.py:130 msgid "Organization search" msgstr "Recherche d'organisations" -#: forms_common.py:230 forms_common.py:261 forms_common.py:332 models.py:2240 +#: forms_common.py:232 forms_common.py:264 forms_common.py:337 models.py:2279 #: templates/ishtar/sheet_organization.html:22 msgid "Surname" msgstr "Prénom" -#: forms_common.py:246 forms_common.py:319 views.py:95 +#: forms_common.py:248 forms_common.py:324 views.py:95 msgid "Person search" msgstr "Recherche de personnes" -#: forms_common.py:258 templates/ishtar/sheet_person.html:7 +#: forms_common.py:260 templates/ishtar/sheet_person.html:7 #: templates/ishtar/wizard/wizard_person.html:6 msgid "Identity" msgstr "Identité" -#: forms_common.py:260 forms_common.py:644 forms_common.py:685 models.py:2238 -#: models.py:2502 templates/sheet_ope.html:104 +#: forms_common.py:263 forms_common.py:653 forms_common.py:695 models.py:1880 +#: models.py:2275 models.py:2277 models.py:2537 templates/sheet_ope.html:104 #: templates/ishtar/blocks/window_tables/documents.html:7 msgid "Title" msgstr "Titre" -#: forms_common.py:265 models.py:2244 +#: forms_common.py:268 models.py:2283 msgid "Raw name" msgstr "Nom brut" -#: forms_common.py:268 models.py:1314 +#: forms_common.py:271 models.py:1335 msgid "Phone description" msgstr "Type de téléphone" -#: forms_common.py:271 models.py:1316 models.py:1318 +#: forms_common.py:274 models.py:1337 models.py:1339 msgid "Phone description 2" msgstr "Type de téléphone 2" -#: forms_common.py:273 +#: forms_common.py:276 msgid "Phone 2" msgstr "Téléphone 2" -#: forms_common.py:275 models.py:1322 +#: forms_common.py:278 models.py:1343 msgid "Phone description 3" msgstr "Type de téléphone 3" -#: forms_common.py:277 models.py:1320 +#: forms_common.py:280 models.py:1341 msgid "Phone 3" msgstr "Téléphone 3" -#: forms_common.py:282 +#: forms_common.py:285 msgid "Current organization" msgstr "Organisation actuelle" -#: forms_common.py:296 models.py:1303 +#: forms_common.py:299 models.py:1324 msgid "Other address: address" msgstr "Autre adresse : adresse" -#: forms_common.py:299 models.py:1306 +#: forms_common.py:302 models.py:1327 msgid "Other address: address complement" msgstr "Autre adresse : complément d'adresse" -#: forms_common.py:301 models.py:1307 +#: forms_common.py:304 models.py:1328 msgid "Other address: postal code" msgstr "Autre adresse : code postal" -#: forms_common.py:303 models.py:1309 +#: forms_common.py:306 models.py:1330 msgid "Other address: town" msgstr "Autre adresse : ville" -#: forms_common.py:305 models.py:1311 +#: forms_common.py:308 models.py:1332 msgid "Other address: country" msgstr "Autre adresse : pays" -#: forms_common.py:315 +#: forms_common.py:320 msgid "Already has an account" msgstr "As déjà un compte" -#: forms_common.py:330 +#: forms_common.py:335 msgid "Username" msgstr "Nom d'utilisateur" -#: forms_common.py:348 +#: forms_common.py:353 msgid "Account search" msgstr "Recherche de comptes" -#: forms_common.py:395 forms_common.py:425 forms_common.py:429 models.py:2220 +#: forms_common.py:400 forms_common.py:431 forms_common.py:435 models.py:2250 msgid "Person type" msgstr "Type de personne" -#: forms_common.py:440 forms_common.py:445 ishtar_menu.py:32 +#: forms_common.py:447 forms_common.py:452 ishtar_menu.py:32 msgid "Account" msgstr "Compte" -#: forms_common.py:449 wizards.py:1170 +#: forms_common.py:456 wizards.py:1170 msgid "New password" msgstr "Nouveau mot de passe" -#: forms_common.py:452 +#: forms_common.py:459 msgid "New password (confirmation)" msgstr "Nouveau mot de passe (confirmation)" -#: forms_common.py:471 +#: forms_common.py:480 msgid "Your password and confirmation password do not match." msgstr "La vérification du mot de passe a échoué." -#: forms_common.py:476 +#: forms_common.py:485 msgid "You must provide a correct password." msgstr "Vous devez fournir un mot de passe correct." -#: forms_common.py:484 +#: forms_common.py:493 msgid "This username already exists." msgstr "Ce nom d'utilisateur existe déjà." -#: forms_common.py:491 +#: forms_common.py:500 msgid "Send the new password by email?" msgstr "Envoyer le nouveau mot de passe par courriel ?" -#: forms_common.py:500 forms_common.py:513 models.py:2584 +#: forms_common.py:509 forms_common.py:522 models.py:2619 msgid "Towns" msgstr "Communes" -#: forms_common.py:510 +#: forms_common.py:519 msgid "There are identical towns." msgstr "Il y a des communes identiques." -#: forms_common.py:594 +#: forms_common.py:603 msgid "Only one choice can be checked." msgstr "Seul un choix peut être coché." -#: forms_common.py:642 +#: forms_common.py:651 msgid "Documentation informations" msgstr "Information sur le document" -#: forms_common.py:646 forms_common.py:686 models.py:1851 models.py:2485 +#: forms_common.py:655 forms_common.py:696 models.py:1881 models.py:2520 msgid "Source type" msgstr "Type de document" -#: forms_common.py:648 forms_common.py:687 templates/sheet_ope.html:84 +#: forms_common.py:657 forms_common.py:697 templates/sheet_ope.html:84 msgid "Reference" msgstr "Référence" -#: forms_common.py:651 forms_common.py:688 +#: forms_common.py:660 forms_common.py:698 msgid "Internal reference" msgstr "Référence interne" -#: forms_common.py:654 models.py:2516 +#: forms_common.py:663 models.py:2551 msgid "Numerical ressource (web address)" msgstr "Ressource numérique (adresse web)" -#: forms_common.py:655 models.py:2518 +#: forms_common.py:664 models.py:2553 msgid "Receipt date" msgstr "Date de réception" -#: forms_common.py:657 models.py:2004 models.py:2520 +#: forms_common.py:666 models.py:2034 models.py:2555 msgid "Creation date" msgstr "Date de création" -#: forms_common.py:660 models.py:2523 +#: forms_common.py:669 models.py:2558 msgid "Receipt date in documentation" msgstr "Date de réception en documentation" -#: forms_common.py:662 forms_common.py:690 models.py:287 models.py:516 -#: models.py:1746 models.py:2248 models.py:2530 +#: forms_common.py:671 forms_common.py:700 models.py:287 models.py:537 +#: models.py:1775 models.py:2287 models.py:2565 msgid "Comment" msgstr "Commentaire" -#: forms_common.py:664 forms_common.py:689 models.py:904 models.py:1505 -#: models.py:1678 models.py:1720 models.py:2529 templates/sheet_ope.html:128 +#: forms_common.py:673 forms_common.py:699 models.py:925 models.py:1534 +#: models.py:1707 models.py:1749 models.py:2564 templates/sheet_ope.html:128 msgid "Description" msgstr "Description" -#: forms_common.py:667 models.py:2531 +#: forms_common.py:676 models.py:2566 msgid "Additional information" msgstr "Informations supplémentaires" -#: forms_common.py:669 forms_common.py:693 models.py:2533 +#: forms_common.py:678 forms_common.py:703 models.py:2568 msgid "Has a duplicate" msgstr "Existe en doublon" -#: forms_common.py:682 forms_common.py:711 forms_common.py:744 models.py:2469 +#: forms_common.py:692 forms_common.py:721 forms_common.py:755 models.py:2504 #: templates/ishtar/wizard/wizard_person_deletion.html:124 msgid "Author" msgstr "Auteur" -#: forms_common.py:692 +#: forms_common.py:702 msgid "Additional informations" msgstr "Informations complémentaires" -#: forms_common.py:703 +#: forms_common.py:713 msgid "Would you like to delete this documentation?" msgstr "Voulez-vous supprimer ce document ?" -#: forms_common.py:719 models.py:1852 models.py:2459 models.py:2466 +#: forms_common.py:729 models.py:1882 models.py:2494 models.py:2501 msgid "Author type" msgstr "Type d'auteur" -#: forms_common.py:737 +#: forms_common.py:748 msgid "Author selection" msgstr "Sélection d'auteur" -#: forms_common.py:751 +#: forms_common.py:762 msgid "There are identical authors." msgstr "Il y a des auteurs identiques." -#: forms_common.py:755 models.py:2470 models.py:2512 +#: forms_common.py:766 models.py:2505 models.py:2547 #: templates/sheet_ope.html:106 #: templates/ishtar/blocks/window_tables/documents.html:9 msgid "Authors" @@ -506,7 +506,7 @@ msgstr "Ajouter/Modifier" msgid "Deletion" msgstr "Suppression" -#: ishtar_menu.py:39 models.py:1029 views.py:1232 +#: ishtar_menu.py:39 models.py:1050 views.py:1232 msgid "Global variables" msgstr "Variables globales" @@ -530,12 +530,12 @@ msgstr "Modification" msgid "Merge" msgstr "Fusion" -#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2041 widgets.py:110 +#: ishtar_menu.py:66 ishtar_menu.py:93 models.py:2071 widgets.py:110 #: templates/ishtar/form_delete.html:11 msgid "Delete" msgstr "Suppression" -#: ishtar_menu.py:101 models.py:2015 +#: ishtar_menu.py:101 models.py:2045 msgid "Imports" msgstr "Imports" @@ -563,7 +563,7 @@ msgstr "Un élément sélectionné n'est pas valide." msgid "This item already exists." msgstr "Cet élément existe déjà." -#: models.py:283 models.py:515 models.py:1268 models.py:1280 +#: models.py:283 models.py:536 models.py:1289 models.py:1301 msgid "Label" msgstr "Libellé" @@ -571,83 +571,83 @@ msgstr "Libellé" msgid "Textual ID" msgstr "Identifiant textuel" -#: models.py:288 models.py:518 models.py:1237 +#: models.py:288 models.py:539 models.py:1258 msgid "Available" msgstr "Disponible" -#: models.py:537 models.py:1792 +#: models.py:558 models.py:1821 msgid "Key" msgstr "Clé" -#: models.py:543 +#: models.py:564 msgid "Specific key to an import" msgstr "Clé spécifique à un import" -#: models.py:623 +#: models.py:644 msgid "Last editor" msgstr "Dernier éditeur" -#: models.py:626 +#: models.py:647 msgid "Creator" msgstr "Créateur" -#: models.py:766 models.py:2595 +#: models.py:787 models.py:2630 msgid "Order" msgstr "Ordre" -#: models.py:767 +#: models.py:788 msgid "Symmetrical" msgstr "Symétrique" -#: models.py:768 +#: models.py:789 msgid "Tiny label" msgstr "Petit libellé" -#: models.py:782 +#: models.py:803 msgid "Cannot have symmetrical and an inverse_relation" msgstr "Ne peut pas être symétrique et avoir une relation inverse" -#: models.py:896 +#: models.py:917 msgid "Euro" msgstr "Euro" -#: models.py:897 +#: models.py:918 msgid "US dollar" msgstr "Dollars US" -#: models.py:903 models.py:1503 +#: models.py:924 models.py:1532 msgid "Slug" msgstr "Identifiant texte" -#: models.py:905 +#: models.py:926 msgid "Files module" msgstr "Module Dossiers" -#: models.py:906 +#: models.py:927 msgid "Context records module" msgstr "Module Unités d'Enregistrement" -#: models.py:908 +#: models.py:929 msgid "Finds module" msgstr "Module Mobilier" -#: models.py:909 +#: models.py:930 msgid "Need context records module" msgstr "Nécessite le module Unités d'Enregistrement" -#: models.py:911 +#: models.py:932 msgid "Warehouses module" msgstr "Module Dépôts" -#: models.py:912 +#: models.py:933 msgid "Need finds module" msgstr "Nécessite le module mobilier" -#: models.py:914 +#: models.py:935 msgid "Home page" msgstr "Page d'accueil" -#: models.py:915 +#: models.py:936 msgid "" "Homepage of Ishtar - if not defined a default homepage will appear. Use the " "markdown syntax." @@ -655,22 +655,22 @@ msgstr "" "Page d'accueil d'Ishtar. Si elle n'est pas définie une page d'accueil par " "défaut va apparaître. Utiliser la syntaxe Markdown." -#: models.py:918 +#: models.py:939 msgid "File external id" msgstr "Identifiant externe de fichier" -#: models.py:920 +#: models.py:941 msgid "" "Formula to manage file external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " "be destructive." msgstr "Formule pour gérer les identifiants externes" -#: models.py:925 +#: models.py:946 msgid "Parcel external id" msgstr "Identifiant externe de parcelle" -#: models.py:928 +#: models.py:949 msgid "" "Formula to manage parcel external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -680,11 +680,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:933 +#: models.py:954 msgid "Context record external id" msgstr "Identifiant externe d'unité d'enregistrement" -#: models.py:935 +#: models.py:956 msgid "" "Formula to manage context record external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -694,11 +694,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:940 +#: models.py:961 msgid "Base find external id" msgstr "Identifiant externe de mobilier de base" -#: models.py:942 +#: models.py:963 msgid "" "Formula to manage base find external ID. Change this with care. With " "incorrect formula, the application might be unusable and import of external " @@ -708,11 +708,11 @@ msgstr "" "manipuler avec précaution. Une formule incorrecte peut rendre l'application " "inutilisable et l'import de données externes peut alors être destructif." -#: models.py:947 +#: models.py:968 msgid "Find external id" msgstr "Identifiant externe de mobilier" -#: models.py:949 +#: models.py:970 msgid "" "Formula to manage find external ID. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -722,11 +722,11 @@ msgstr "" "précaution. Une formule incorrecte peut rendre l'application inutilisable et " "l'import de données externes peut alors être destructif." -#: models.py:954 +#: models.py:975 msgid "Raw name for person" msgstr "Nom brut pour une personne" -#: models.py:956 +#: models.py:977 msgid "" "Formula to manage person raw_name. Change this with care. With incorrect " "formula, the application might be unusable and import of external data can " @@ -736,43 +736,43 @@ msgstr "" "Une formule incorrecte peut rendre l'application inutilisable et l'import de " "données externes peut alors être destructif." -#: models.py:960 +#: models.py:981 msgid "Current active" msgstr "Actuellement utilisé" -#: models.py:961 +#: models.py:982 msgid "Currency" msgstr "Devise" -#: models.py:965 +#: models.py:986 msgid "Ishtar site profile" msgstr "Profil d'instance Ishtar" -#: models.py:966 +#: models.py:987 msgid "Ishtar site profiles" msgstr "Profils d'instance Ishtar" -#: models.py:1022 +#: models.py:1043 msgid "Variable name" msgstr "Nom de la variable" -#: models.py:1023 +#: models.py:1044 msgid "Description of the variable" msgstr "Description de la variable" -#: models.py:1025 models.py:1793 +#: models.py:1046 models.py:1822 msgid "Value" msgstr "Valeur" -#: models.py:1028 +#: models.py:1049 msgid "Global variable" msgstr "Variable globale" -#: models.py:1138 models.py:1168 +#: models.py:1159 models.py:1189 msgid "Total" msgstr "Total" -#: models.py:1145 models.py:1269 models.py:1281 +#: models.py:1166 models.py:1290 models.py:1302 #: templates/ishtar/sheet_person.html:21 #: templates/ishtar/dashboards/dashboard_main_detail.html:141 #: templates/ishtar/dashboards/dashboard_main_detail_users.html:26 @@ -780,583 +780,591 @@ msgstr "Total" msgid "Number" msgstr "Nombre" -#: models.py:1232 +#: models.py:1253 msgid "Administrative Act" msgstr "Acte administratif" -#: models.py:1236 +#: models.py:1257 msgid "Associated object" msgstr "Objet associé" -#: models.py:1240 +#: models.py:1261 msgid "Document template" msgstr "Patron de document" -#: models.py:1241 +#: models.py:1262 msgid "Document templates" msgstr "Patrons de documents" -#: models.py:1272 models.py:1282 models.py:1999 +#: models.py:1293 models.py:1303 models.py:2029 msgid "State" msgstr "État" -#: models.py:1286 templates/blocks/JQueryAdvancedTown.html:12 +#: models.py:1307 templates/blocks/JQueryAdvancedTown.html:12 msgid "Department" msgstr "Département" -#: models.py:1287 +#: models.py:1308 msgid "Departments" msgstr "Départements" -#: models.py:1324 +#: models.py:1345 msgid "Raw phone" msgstr "Téléphone brut" -#: models.py:1330 +#: models.py:1351 msgid "Alternative address is prefered" msgstr "L'adresse alternative est préférée" -#: models.py:1369 +#: models.py:1390 msgid "Tel: " msgstr "Tél :" -#: models.py:1373 +#: models.py:1394 msgid "Mobile: " msgstr "Mobile :" -#: models.py:1377 +#: models.py:1398 msgid "Email: " msgstr "Courriel :" -#: models.py:1382 +#: models.py:1403 msgid "Merge key" msgstr "Clé de fusion" -#: models.py:1443 +#: models.py:1472 msgid "Organization types" msgstr "Types d'organisation" -#: models.py:1459 +#: models.py:1488 msgid "Archaeological site" msgstr "Entité Archéologique" -#: models.py:1460 +#: models.py:1489 msgid "Parcels" msgstr "Parcelles" -#: models.py:1462 +#: models.py:1491 msgid "Operation source" msgstr "Documentation de l'opération" -#: models.py:1465 views.py:1057 views.py:1108 +#: models.py:1494 views.py:1057 views.py:1108 msgid "Archaeological files" msgstr "Dossiers archéologiques" -#: models.py:1467 views.py:1060 views.py:1116 +#: models.py:1496 views.py:1060 views.py:1116 msgid "Context records" msgstr "Unités d'Enregistrement" -#: models.py:1469 +#: models.py:1498 msgid "Context record relations" msgstr "Relations entre Unités d'Enregistrement" -#: models.py:1471 views.py:1062 views.py:1119 +#: models.py:1500 views.py:1062 views.py:1119 msgid "Finds" msgstr "Mobilier" -#: models.py:1507 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1536 templates/ishtar/dashboards/dashboard_main.html:25 msgid "Users" msgstr "Utilisateurs" -#: models.py:1509 +#: models.py:1538 msgid "Associated model" msgstr "Modèle associé" -#: models.py:1512 +#: models.py:1541 msgid "Is template" msgstr "Est un patron" -#: models.py:1513 +#: models.py:1542 msgid "Unicity keys (separator \";\")" msgstr "Clés d'unicité (séparateur « ; »)" -#: models.py:1517 +#: models.py:1546 msgid "Importer - Type" msgstr "Importeur - Type" -#: models.py:1518 +#: models.py:1547 msgid "Importer - Types" msgstr "Importeur - Types" -#: models.py:1608 +#: models.py:1637 msgid "Importer - Default" msgstr "Importeur - Par défaut" -#: models.py:1609 +#: models.py:1638 msgid "Importer - Defaults" msgstr "Importeur - Par défaut" -#: models.py:1644 +#: models.py:1673 msgid "Importer - Default value" msgstr "Importeur - Valeur par défaut" -#: models.py:1645 +#: models.py:1674 msgid "Importer - Default values" msgstr "Importeur - Valeurs par défaut" -#: models.py:1677 +#: models.py:1706 msgid "Column number" msgstr "Numéro de colonne" -#: models.py:1680 +#: models.py:1709 msgid "Required" msgstr "Requis" -#: models.py:1683 +#: models.py:1712 msgid "Importer - Column" msgstr "Importeur - Colonne" -#: models.py:1684 +#: models.py:1713 msgid "Importer - Columns" msgstr "Importeur - Colonnes" -#: models.py:1704 +#: models.py:1733 msgid "Field name" msgstr "Nom du champ" -#: models.py:1706 models.py:1740 +#: models.py:1735 models.py:1769 msgid "Force creation of new items" msgstr "Forcer la création de nouveaux éléments" -#: models.py:1708 models.py:1742 +#: models.py:1737 models.py:1771 msgid "Concatenate with existing" msgstr "Concaténer avec l'existant" -#: models.py:1710 models.py:1744 +#: models.py:1739 models.py:1773 msgid "Concatenate character" msgstr "Caractère de concaténation" -#: models.py:1714 +#: models.py:1743 msgid "Importer - Duplicate field" msgstr "Importeur - Champ dupliqué" -#: models.py:1715 +#: models.py:1744 msgid "Importer - Duplicate fields" msgstr "Importeur - Champs dupliqués" -#: models.py:1722 +#: models.py:1751 msgid "Regular expression" msgstr "Expression régulière" -#: models.py:1725 +#: models.py:1754 msgid "Importer - Regular expression" msgstr "Importeur - Expression régulière" -#: models.py:1726 +#: models.py:1755 msgid "Importer - Regular expressions" msgstr "Importeur - Expressions régulières" -#: models.py:1749 +#: models.py:1778 msgid "Importer - Target" msgstr "Importeur - Cible" -#: models.py:1750 +#: models.py:1779 msgid "Importer - Targets" msgstr "Importeur - Cibles" -#: models.py:1774 views.py:343 +#: models.py:1803 views.py:343 msgid "True" msgstr "Oui" -#: models.py:1775 views.py:345 +#: models.py:1804 views.py:345 msgid "False" msgstr "Non" -#: models.py:1794 +#: models.py:1823 msgid "Is set" msgstr "Est défini" -#: models.py:1801 +#: models.py:1830 msgid "Importer - Target key" msgstr "Importeur - Rapprochement" -#: models.py:1802 +#: models.py:1831 msgid "Importer - Targets keys" msgstr "Importeur - Rapprochements" -#: models.py:1853 models.py:2497 models.py:2508 +#: models.py:1883 models.py:2532 models.py:2543 msgid "Format" msgstr "Format" -#: models.py:1854 models.py:2599 +#: models.py:1884 models.py:2634 msgid "Operation type" msgstr "Type d'opération" -#: models.py:1855 +#: models.py:1885 msgid "Period" msgstr "Périodes" -#: models.py:1856 +#: models.py:1886 msgid "Report state" msgstr "État de rapport" -#: models.py:1857 +#: models.py:1887 msgid "Unit" msgstr "Unité" -#: models.py:1858 +#: models.py:1888 msgid "Material" msgstr "Matériau" -#: models.py:1860 +#: models.py:1890 msgid "Conservatory state" msgstr "État de conservation" -#: models.py:1861 +#: models.py:1891 msgid "Preservation type" msgstr "Type de conservation" -#: models.py:1862 +#: models.py:1892 msgid "Object type" msgstr "Type d'objet" -#: models.py:1864 +#: models.py:1894 msgid "Identification type" msgstr "Type d'identification" -#: models.py:1866 +#: models.py:1896 msgid "Context record relation type" msgstr "Type de relations entre Unités d'Enregistrement" -#: models.py:1867 models.py:2491 +#: models.py:1897 models.py:2526 msgid "Support type" msgstr "Type de support" -#: models.py:1873 +#: models.py:1903 msgid "Integer" msgstr "Entier" -#: models.py:1874 +#: models.py:1904 msgid "Float" msgstr "Nombre à virgule" -#: models.py:1875 +#: models.py:1905 msgid "String" msgstr "Chaîne de caractères" -#: models.py:1876 templates/sheet_ope.html:86 +#: models.py:1906 templates/sheet_ope.html:86 msgid "Date" msgstr "Date" -#: models.py:1878 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:1908 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 #: templates/ishtar/dashboards/dashboard_main_detail.html:126 msgid "Year" msgstr "Année" -#: models.py:1879 +#: models.py:1909 msgid "String to boolean" msgstr "Chaîne de caractères vers booléen" -#: models.py:1880 +#: models.py:1910 msgctxt "filesystem" msgid "File" msgstr "Fichier" -#: models.py:1881 +#: models.py:1911 msgid "Unknow type" msgstr "Type inconnu" -#: models.py:1897 +#: models.py:1927 msgid "4 digit year. e.g.: \"2015\"" msgstr "Année sur 4 chiffres. Exemple : « 2015 »" -#: models.py:1898 +#: models.py:1928 msgid "4 digit year/month/day. e.g.: \"2015/02/04\"" msgstr "Année sur 4 chiffres/mois/jour. Exemple : « 2015/02/04 »" -#: models.py:1899 +#: models.py:1929 msgid "Day/month/4 digit year. e.g.: \"04/02/2015\"" msgstr "Jour/mois/année sur 4 chiffres. Exemple : « 04/02/2015 »" -#: models.py:1909 +#: models.py:1939 msgid "Options" msgstr "Options" -#: models.py:1911 +#: models.py:1941 msgid "Split character(s)" msgstr "Caractère(s) de séparation" -#: models.py:1915 +#: models.py:1945 msgid "Importer - Formater type" msgstr "Importeur - Type de mise en forme" -#: models.py:1916 +#: models.py:1946 msgid "Importer - Formater types" msgstr "Importeur - Types de mise en forme" -#: models.py:1963 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:1993 templates/ishtar/dashboards/dashboard_main_detail.html:63 msgid "Created" msgstr "Créé" -#: models.py:1964 +#: models.py:1994 msgid "Analyse in progress" msgstr "Analyse en cours" -#: models.py:1965 +#: models.py:1995 msgid "Analysed" msgstr "Analysé" -#: models.py:1966 +#: models.py:1996 msgid "Import pending" msgstr "Import en attente" -#: models.py:1967 +#: models.py:1997 msgid "Import in progress" msgstr "Import en cours" -#: models.py:1968 +#: models.py:1998 msgid "Finished with errors" msgstr "Terminé avec des erreurs" -#: models.py:1969 +#: models.py:1999 msgid "Finished" msgstr "Terminé" -#: models.py:1970 +#: models.py:2000 msgid "Archived" msgstr "Archivé" -#: models.py:1982 +#: models.py:2012 msgid "Imported file" msgstr "Fichier importé" -#: models.py:1985 +#: models.py:2015 msgid "Associated images (zip file)" msgstr "Images associées (fichier zip)" -#: models.py:1987 +#: models.py:2017 msgid "Encoding" msgstr "Codage" -#: models.py:1989 +#: models.py:2019 msgid "Skip lines" msgstr "Nombre de lignes d'entête" -#: models.py:1990 templates/ishtar/import_list.html:47 +#: models.py:2020 templates/ishtar/import_list.html:47 msgid "Error file" msgstr "Fichier erreur" -#: models.py:1993 +#: models.py:2023 msgid "Result file" msgstr "Fichier résultant" -#: models.py:1996 templates/ishtar/import_list.html:53 +#: models.py:2026 templates/ishtar/import_list.html:53 msgid "Match file" msgstr "Fichier de correspondance" -#: models.py:2002 +#: models.py:2032 msgid "Conservative import" msgstr "Import conservateur" -#: models.py:2007 +#: models.py:2037 msgid "End date" msgstr "Date de fin" -#: models.py:2009 +#: models.py:2039 msgid "Remaining seconds" msgstr "Secondes restantes" -#: models.py:2014 +#: models.py:2044 msgid "Import" msgstr "Import" -#: models.py:2031 +#: models.py:2061 msgid "Analyse" msgstr "Analyser" -#: models.py:2033 models.py:2036 +#: models.py:2063 models.py:2066 msgid "Re-analyse" msgstr "Analyser de nouveau " -#: models.py:2034 +#: models.py:2064 msgid "Launch import" msgstr "Lancer l'import" -#: models.py:2037 +#: models.py:2067 msgid "Re-import" msgstr "Ré-importer" -#: models.py:2038 +#: models.py:2068 msgid "Archive" msgstr "Archiver" -#: models.py:2040 +#: models.py:2070 msgid "Unarchive" msgstr "Désarchiver" -#: models.py:2173 +#: models.py:2203 msgid "Organizations" msgstr "Organisations" -#: models.py:2175 +#: models.py:2205 msgid "Can view all Organizations" msgstr "Peut voir toutes les Organisations" -#: models.py:2176 +#: models.py:2206 msgid "Can view own Organization" msgstr "Peut voir sa propre Organisation" -#: models.py:2177 +#: models.py:2207 msgid "Can add own Organization" msgstr "Peut ajouter sa propre Organisation" -#: models.py:2179 +#: models.py:2209 msgid "Can change own Organization" msgstr "Peut modifier sa propre Organisation" -#: models.py:2181 +#: models.py:2211 msgid "Can delete own Organization" msgstr "Peut supprimer sa propre Organisation" -#: models.py:2216 +#: models.py:2246 msgid "Groups" msgstr "Groupes" -#: models.py:2221 +#: models.py:2251 msgid "Person types" msgstr "Types de personne" -#: models.py:2228 +#: models.py:2257 +msgid "Title type" +msgstr "Type de titre" + +#: models.py:2258 +msgid "Title types" +msgstr "Types de titre" + +#: models.py:2265 msgid "Mr" msgstr "M." -#: models.py:2229 +#: models.py:2266 msgid "Miss" msgstr "Mlle" -#: models.py:2230 +#: models.py:2267 msgid "Mr and Mrs" msgstr "M. et Mme" -#: models.py:2231 +#: models.py:2268 msgid "Mrs" msgstr "Mme" -#: models.py:2232 +#: models.py:2269 msgid "Doctor" msgstr "Dr." -#: models.py:2246 +#: models.py:2285 msgid "Contact type" msgstr "Type de contact" -#: models.py:2249 models.py:2296 +#: models.py:2288 models.py:2331 msgid "Types" msgstr "Types" -#: models.py:2252 +#: models.py:2291 msgid "Is attached to" msgstr "Est rattaché à" -#: models.py:2256 +#: models.py:2296 msgid "Persons" msgstr "Personnes" -#: models.py:2258 +#: models.py:2298 msgid "Can view all Persons" msgstr "Peut voir toutes les Personnes" -#: models.py:2259 +#: models.py:2299 msgid "Can view own Person" msgstr "Peut voir sa propre Personne" -#: models.py:2260 +#: models.py:2300 msgid "Can add own Person" msgstr "Peut ajouter sa propre Personne" -#: models.py:2261 +#: models.py:2301 msgid "Can change own Person" msgstr "Peut modifier sa propre Personne" -#: models.py:2262 +#: models.py:2302 msgid "Can delete own Person" msgstr "Peut supprimer sa propre Personne" -#: models.py:2411 +#: models.py:2446 msgid "Ishtar user" msgstr "Utilisateur d'Ishtar" -#: models.py:2412 +#: models.py:2447 msgid "Ishtar users" msgstr "Utilisateurs d'Ishtar" -#: models.py:2454 +#: models.py:2489 msgid "To modify the password use the form in Auth > User" msgstr "" "Pour modifier le mot de passe, utilisez le formulaire dans Authentification " "> Utilisateurs" -#: models.py:2460 +#: models.py:2495 msgid "Author types" msgstr "Types d'auteur" -#: models.py:2486 +#: models.py:2521 msgid "Source types" msgstr "Types de document" -#: models.py:2492 +#: models.py:2527 msgid "Support types" msgstr "Types de support" -#: models.py:2498 +#: models.py:2533 msgid "Formats" msgstr "Formats" -#: models.py:2503 +#: models.py:2538 msgid "External ID" msgstr "Identifiant externe" -#: models.py:2506 +#: models.py:2541 msgid "Support" msgstr "Support" -#: models.py:2510 +#: models.py:2545 msgid "Scale" msgstr "Échelle" -#: models.py:2524 +#: models.py:2559 msgid "Item number" msgstr "Numéro d'élément" -#: models.py:2525 +#: models.py:2560 msgid "Ref." msgstr "Réf." -#: models.py:2528 +#: models.py:2563 msgid "Internal ref." msgstr "Réf. interne" -#: models.py:2570 +#: models.py:2605 msgid "Surface (m2)" msgstr "Surface (m2)" -#: models.py:2571 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2606 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 msgid "Localisation" msgstr "Localisation" -#: models.py:2596 +#: models.py:2631 msgid "Is preventive" msgstr "Est du préventif" -#: models.py:2600 +#: models.py:2635 msgid "Operation types" msgstr "Types d'opération" -#: models.py:2626 +#: models.py:2661 msgid "Preventive" msgstr "Préventif" -#: models.py:2627 +#: models.py:2662 msgid "Research" msgstr "Programmé" @@ -2030,6 +2038,14 @@ msgstr "Personnes au sein de l'organisation" msgid "No person in this organization" msgstr "Pas de personne au sein de cette organisation" +#: templates/ishtar/sheet_organization.html:38 +msgid "General contractor organization of archaelogical files" +msgstr "Aménageur (organisation) pour les dossiers archéologiques" + +#: templates/ishtar/sheet_organization.html:43 +msgid "Town planning service of archaelogical files" +msgstr "Service instructeur pour les dossiers archéologiques" + #: templates/ishtar/sheet_person.html:20 #: templates/ishtar/wizard/wizard_person.html:19 msgid "Phone type" @@ -2057,19 +2073,27 @@ msgstr "Opérations associées en tant que responsable scientifique" msgid "Associated operations as responsible" msgstr "Opérations associées en tant que responsable" -#: templates/ishtar/sheet_person.html:80 -msgid "Associated archaelogical files" -msgstr "Dossiers archéologiques associés" +#: templates/ishtar/sheet_person.html:79 +msgid "In charge of archaelogical files" +msgstr "Responsable des dossiers archéologiques" + +#: templates/ishtar/sheet_person.html:84 +msgid "General contractor of archaelogical files" +msgstr "Aménageur des dossiers archéologiques" + +#: templates/ishtar/sheet_person.html:89 +msgid "Responsible for town planning service of archaelogical files" +msgstr "Responsable au service instructeur des dossiers" -#: templates/ishtar/sheet_person.html:86 +#: templates/ishtar/sheet_person.html:95 msgid "Documents associated to operations" msgstr "Documents des opérations associées" -#: templates/ishtar/sheet_person.html:91 +#: templates/ishtar/sheet_person.html:100 msgid "Documents associated to context records" msgstr "Documents des Unités d'Enregistrement associées" -#: templates/ishtar/sheet_person.html:96 +#: templates/ishtar/sheet_person.html:105 msgid "Documents associated to finds" msgstr "Documents du mobilier associé" diff --git a/version.py b/version.py index 9f846e91f..0f4077755 100644 --- a/version.py +++ b/version.py @@ -1,4 +1,4 @@ -VERSION = (0, 97, 3) +VERSION = (0, 97, 4) def get_version(): |