diff options
Diffstat (limited to 'ishtar_common')
| -rw-r--r-- | ishtar_common/data_importer.py | 8 | ||||
| -rw-r--r-- | ishtar_common/fixtures/initial_importtypes-fr.json | 3033 | ||||
| -rw-r--r-- | ishtar_common/forms_common.py | 2 | ||||
| -rw-r--r-- | ishtar_common/locale/django.pot | 478 | ||||
| -rw-r--r-- | ishtar_common/migrations/0073_auto__add_field_importercolumn_export_field_name.py | 493 | ||||
| -rw-r--r-- | ishtar_common/models.py | 21 | ||||
| -rw-r--r-- | ishtar_common/templates/blocks/JQueryJqGrid.html | 5 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/sheet_organization.html | 2 | ||||
| -rw-r--r-- | ishtar_common/templates/ishtar/sheet_person.html | 44 | ||||
| -rw-r--r-- | ishtar_common/tests.py | 7 | ||||
| -rw-r--r-- | ishtar_common/views.py | 100 | ||||
| -rw-r--r-- | ishtar_common/widgets.py | 1 | 
12 files changed, 2593 insertions, 1601 deletions
| diff --git a/ishtar_common/data_importer.py b/ishtar_common/data_importer.py index 34394341c..d4000b4c1 100644 --- a/ishtar_common/data_importer.py +++ b/ishtar_common/data_importer.py @@ -47,8 +47,13 @@ class ImportFormater(object):                   through_unicity_keys=None, duplicate_fields=[], regexp=None,                   regexp_formater_args=[], force_value=None,                   post_processing=False, concat=False, concat_str=False, -                 comment="", force_new=None): +                 comment="", force_new=None, export_field_name=None, +                 label=""):          self.field_name = field_name +        if export_field_name: +            self.export_field_name = export_field_name +        else: +            self.export_field_name = field_name          self.formater = formater          self.required = required          self.through = through @@ -67,6 +72,7 @@ class ImportFormater(object):          self.concat_str = concat_str          self.comment = comment          self.force_new = force_new +        self.label = label      def reinit_db_target(self, db_target, nb=0):          if not self.formater: diff --git a/ishtar_common/fixtures/initial_importtypes-fr.json b/ishtar_common/fixtures/initial_importtypes-fr.json index 9ee6710c4..bd3330f7d 100644 --- a/ishtar_common/fixtures/initial_importtypes-fr.json +++ b/ishtar_common/fixtures/initial_importtypes-fr.json @@ -1,65 +1,65 @@  [      { -        "pk": 2,  +        "pk": 11,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Archaeological files",  -            "klass": "archaeological_files.models.File" +            "name": "Datation",  +            "klass": "archaeological_context_records.models.Dating"          }      },       { -        "pk": 4,  +        "pk": 8,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Archaeological site",  -            "klass": "archaeological_operations.models.ArchaeologicalSite" +            "name": "Documentation d'op\u00e9ration",  +            "klass": "archaeological_operations.models.OperationSource"          }      },       { -        "pk": 3,  +        "pk": 2,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Base finds",  -            "klass": "archaeological_finds.models.BaseFind" +            "name": "Dossier arch\u00e9ologique",  +            "klass": "archaeological_files.models.File"          }      },       { -        "pk": 10,  +        "pk": 4,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Context record relations",  -            "klass": "archaeological_context_records.models.RecordRelations" +            "name": "Entit\u00e9 arch\u00e9ologique",  +            "klass": "archaeological_operations.models.ArchaeologicalSite"          }      },       { -        "pk": 7,  +        "pk": 12,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Context records",  -            "klass": "archaeological_context_records.models.ContextRecord" +            "name": "Find",  +            "klass": "archaeological_finds.models_finds.Find"          }      },       { -        "pk": 6,  +        "pk": 3,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Operation",  -            "klass": "archaeological_operations.models.Operation" +            "name": "Mobilier de base",  +            "klass": "archaeological_finds.models.BaseFind"          }      },       { -        "pk": 8,  +        "pk": 6,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Operation source",  -            "klass": "archaeological_operations.models.OperationSource" +            "name": "Op\u00e9ration",  +            "klass": "archaeological_operations.models.Operation"          }      },       {          "pk": 1,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Organization",  +            "name": "Organisation",               "klass": "ishtar_common.models.Organization"          }      },  @@ -67,7 +67,7 @@          "pk": 9,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Parcels",  +            "name": "Parcelle",               "klass": "archaeological_operations.models.Parcel"          }      },  @@ -75,134 +75,166 @@          "pk": 5,           "model": "ishtar_common.importermodel",           "fields": { -            "name": "Person",  +            "name": "Personne",               "klass": "ishtar_common.models.Person"          }      },       { -        "pk": 2,  +        "pk": 10,  +        "model": "ishtar_common.importermodel",  +        "fields": { +            "name": "Relation entre Unit\u00e9s d'Enregistrement",  +            "klass": "archaeological_context_records.models.RecordRelations" +        } +    },  +    { +        "pk": 7,  +        "model": "ishtar_common.importermodel",  +        "fields": { +            "name": "Unit\u00e9 d'Enregistrement",  +            "klass": "archaeological_context_records.models.ContextRecord" +        } +    },  +    { +        "pk": 20,           "model": "ishtar_common.importertype",           "fields": { -            "description": "",  +            "description": "Mobilier",               "created_models": [],               "is_template": true,               "unicity_keys": "external_id",               "users": [],  -            "slug": "mcc-parcelles",  -            "associated_models": 9,  -            "name": "MCC - Parcelles" +            "slug": "ishtar-finds",  +            "associated_models": 12,  +            "name": "Ishtar - Mobilier"          }      },       { -        "pk": 1,  +        "pk": 17,           "model": "ishtar_common.importertype",           "fields": { -            "description": "",  +            "description": "Import complet standard operations",               "created_models": [],               "is_template": true,               "unicity_keys": "code_patriarche",               "users": [],  -            "slug": "mcc-operations",  +            "slug": "ishtar-operations",               "associated_models": 6,  -            "name": "MCC - Op\u00e9rations" +            "name": "Ishtar - Op\u00e9rations"          }      },       { -        "pk": 3,  +        "pk": 19,           "model": "ishtar_common.importertype",           "fields": { -            "description": "",  +            "description": "Parcelles de terrain",               "created_models": [],               "is_template": true,  -            "unicity_keys": "",  +            "unicity_keys": "external_id",               "users": [],  -            "slug": "mcc-documentation",  -            "associated_models": 8,  -            "name": "MCC - Documentation" +            "slug": "ishtar-parcels",  +            "associated_models": 9,  +            "name": "Ishtar - Parcelles"          }      },       { -        "pk": 4,  +        "pk": 21,           "model": "ishtar_common.importertype",           "fields": {              "description": "",  +            "created_models": [ +                10 +            ],  +            "is_template": true,  +            "unicity_keys": "",  +            "users": [],  +            "slug": "ishtar-ue-relations",  +            "associated_models": 10,  +            "name": "Ishtar - Relations entre UE" +        } +    },  +    { +        "pk": 18,  +        "model": "ishtar_common.importertype",  +        "fields": { +            "description": "Unit\u00e9s d'enregisttrement",               "created_models": [],               "is_template": true,               "unicity_keys": "external_id",               "users": [],  -            "slug": "mcc-ue",  +            "slug": "ishtar-context-record",               "associated_models": 7,  -            "name": "MCC - UE" +            "name": "Ishtar - UE"          }      },       { -        "pk": 5,  +        "pk": 3,           "model": "ishtar_common.importertype",           "fields": {              "description": "",               "created_models": [],               "is_template": true,  -            "unicity_keys": "external_id",  +            "unicity_keys": "",               "users": [],  -            "slug": "mcc-mobilier",  -            "associated_models": 3,  -            "name": "MCC - Mobilier" +            "slug": "mcc-documentation",  +            "associated_models": 8,  +            "name": "MCC - Documentation"          }      },       { -        "pk": 18,  +        "pk": 5,           "model": "ishtar_common.importertype",           "fields": { -            "description": "Unit\u00e9s d'enregisttrement",  +            "description": "",               "created_models": [],               "is_template": true,               "unicity_keys": "external_id",               "users": [],  -            "slug": "ishtar_context_record",  -            "associated_models": 7,  -            "name": "ISHTAR-UE" +            "slug": "mcc-mobilier",  +            "associated_models": 12,  +            "name": "MCC - Mobilier"          }      },       { -        "pk": 19,  +        "pk": 1,           "model": "ishtar_common.importertype",           "fields": { -            "description": "Parcelles de terrain",  +            "description": "",               "created_models": [],               "is_template": true,  -            "unicity_keys": "external_id",  +            "unicity_keys": "code_patriarche",               "users": [],  -            "slug": "ishtar_parcels",  -            "associated_models": 9,  -            "name": "ISHTAR-PARCELLES" +            "slug": "mcc-operations",  +            "associated_models": 6,  +            "name": "MCC - Op\u00e9rations"          }      },       { -        "pk": 17,  +        "pk": 2,           "model": "ishtar_common.importertype",           "fields": { -            "description": "Import complet standard operations",  +            "description": "",               "created_models": [],               "is_template": true,  -            "unicity_keys": "code_patriarche",  +            "unicity_keys": "external_id",               "users": [],  -            "slug": "ishtar_operations",  -            "associated_models": 6,  -            "name": "ISHTAR-OP\u00c9RATIONS" +            "slug": "mcc-parcelles",  +            "associated_models": 9,  +            "name": "MCC - Parcelles"          }      },       { -        "pk": 20,  +        "pk": 4,           "model": "ishtar_common.importertype",           "fields": { -            "description": "Mobilier",  +            "description": "",               "created_models": [],               "is_template": true,               "unicity_keys": "external_id",               "users": [],  -            "slug": "ishtar_finds",  -            "associated_models": 3,  -            "name": "ISHTAR-MOBILIER" +            "slug": "mcc-ue",  +            "associated_models": 7,  +            "name": "MCC - UE"          }      },       { @@ -300,687 +332,484 @@          }      },       { -        "pk": 1,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 1,  -            "description": "Code Patriarche",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Code Patriarche",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 2,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 3,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Type d'op\u00e9ration",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 3,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 4,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Nom de l'op\u00e9ration",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 4,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 5,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Nom de l'op\u00e9rateur",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 5,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 6,  -            "description": "Nom du responsable de l'op\u00e9ration. Nom et Pr\u00e9nom sont group\u00e9s et donc mis dans le NOM seul dans l'annuaire.",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Nom du responsable de l'op\u00e9ration",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 6,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 7,  -            "description": "Date de d\u00e9but de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Date d\u00e9but",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 7,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 8,  -            "description": "Date de fin de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Date fin",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 8,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 9,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": false,  -            "label": "P\u00e9riodes",  -            "importer_type": 1 -        } -    },  -    { -        "pk": 9,  +        "pk": 336,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 1,  -            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",  +            "description": "Code PATRIARCHE ou code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration.",               "regexp_pre_filter": null,               "required": true,  -            "label": "Code Patriarche",  -            "importer_type": 2 +            "label": "Code op\u00e9ration",  +            "importer_type": 20,  +            "export_field_name": "base_finds__context_record__operation__code_patriarche"          }      },       { -        "pk": 12,  +        "pk": 337,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 2,  -            "description": "Commune (via num\u00e9ro INSEE)",  -            "regexp_pre_filter": 2,  +            "description": "Commune (via num\u00e9ro INSEE).",  +            "regexp_pre_filter": null,               "required": true,  -            "label": "Commune",  -            "importer_type": 2 +            "label": "INSEE",  +            "importer_type": 20,  +            "export_field_name": "base_finds__context_record__parcel__town__numero_insee"          }      },       { -        "pk": 53,  +        "pk": 338,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 3,  -            "description": "Identifiant externe",  +            "description": "Parcelle (identifiant externe), soit la section plus la parcelle sans espaces. Exemple : \"ZA253\".",               "regexp_pre_filter": null,               "required": true,  -            "label": "Identifiant externe",  -            "importer_type": 2 +            "label": "Parcelle",  +            "importer_type": 20,  +            "export_field_name": "base_finds__context_record__parcel__section|base_finds__context_record__parcel__parcel_number"          }      },       { -        "pk": 51,  +        "pk": 339,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 4,  -            "description": "Num\u00e9ro",  +            "description": "Label / Identifiant (externe) de l'UE. Exemple : \"US 145\", \"Tranch\u00e9e 145\", \"145\", \"St 17\", etc. Doit \u00eatre unique pour une parcelle donn\u00e9e.",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Parcelle",  -            "importer_type": 2 +            "required": true,  +            "label": "Label UE",  +            "importer_type": 20,  +            "export_field_name": "base_finds__context_record__label"          }      },       { -        "pk": 52,  +        "pk": 340,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 5,  -            "description": "Section",  +            "description": "Identifiant libre pour le mobilier. Exemple : \"12\", \"Lot 24\", \"Sac vert\", etc.\r\nDoit \u00eatre unique \u00e0 l'\u00e9chelle de l'UE associ\u00e9e.",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Section cadastrale",  -            "importer_type": 2 +            "required": true,  +            "label": "Label mobilier",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 11,  +        "pk": 341,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 6,  -            "description": "Ann\u00e9e",  +            "description": "Identifiant pr\u00e9c\u00e9dent, li\u00e9 \u00e0 une base de donn\u00e9e ou un autre mode d'enregistrement. Exemple : \"400.01.05\", \"Beau biface\", \"inv. 4523\", \"Iso.4220\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Ann\u00e9e cadastrale",  -            "importer_type": 2 +            "label": "Identifiant pr\u00e9c\u00e9dent",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 13,  +        "pk": 343,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 9,  -            "description": "Lieu dit / adresse",  +            "col_number": 7,  +            "description": "R\u00e9f\u00e9rence du point topo, d'ordinaire un entier mais peut \u00eatre autre chose. Champ texte, max. 120 caract\u00e8res. Exemple : \"7220\", \"pt. 72\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Adresse",  -            "importer_type": 2 -        } -    },  -    { -        "pk": 14,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 1,  -            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Code Patriarche",  -            "importer_type": 3 -        } -    },  -    { -        "pk": 15,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 2,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Identifiant externe",  -            "importer_type": 3 -        } -    },  -    { -        "pk": 16,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 3,  -            "description": "",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Type de document",  -            "importer_type": 3 +            "label": "Ref. point topo",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 17,  +        "pk": 342,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 4,  -            "description": "",  +            "col_number": 8,  +            "description": "Description du mobilier, objet ou lot. Exemple : \"Fibule aviforme\".",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type de support",  -            "importer_type": 3 +            "label": "Description",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 18,  +        "pk": 344,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 5,  -            "description": "",  +            "col_number": 9,  +            "description": "D\u00e9finit si on enregistre ici un objet seul (parfois appel\u00e9 Isolation) ou un lot d'objets. Exemple : \"lot\", \"objet\", \"Iso\", \"vrac\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Num\u00e9ro",  -            "importer_type": 3 +            "label": "Lot ou objet",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 19,  +        "pk": 345,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 6,  -            "description": "",  +            "col_number": 10,  +            "description": "D\u00e9finit si un objet est complet ou non. Exemple : \"complet\", \"est complet\", \"incomplet\".\r\nEst ici traduit en binaire : \"complet\" (vrai) ou \"incomplet\" (faux). ",               "regexp_pre_filter": null,               "required": false,  -            "label": "Nom de l'auteur",  -            "importer_type": 3 +            "label": "Compl\u00e9tude",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 20,  +        "pk": 346,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 7,  -            "description": "",  +            "col_number": 11,  +            "description": "Type(s) de mat\u00e9riau(x) s\u00e9par\u00e9s par des \"&\". Exemple : \"m\u00e9tal & os\", \"LT\", \"Min\u00e9ral\", \"Granito\u00efde & Basalte & Ardoise\".",               "regexp_pre_filter": null,               "required": false,  -            "label": "Date de cr\u00e9ation",  -            "importer_type": 3 +            "label": "Mat\u00e9riau(x)",  +            "importer_type": 20,  +            "export_field_name": "material_types__label"          }      },       { -        "pk": 21,  +        "pk": 347,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 8,  -            "description": "",  +            "col_number": 12,  +            "description": "\u00c9tat de conservation. Exemple : \"Instable\", \"Stable\", \"Inconnu\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type de format",  -            "importer_type": 3 +            "label": "\u00c9tat de conservation",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 22,  +        "pk": 348,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 9,  -            "description": "",  +            "col_number": 13,  +            "description": "Commentaire relatif \u00e0 la conservation. Exemple : \"Devrait \u00eatre conserv\u00e9 dans une chambre climatis\u00e9e\", \"Ne sera plus qu'une poudre, si on ne s'en occupe pas sous peu\", \" \u00e0 jeter\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Description",  -            "importer_type": 3 +            "label": "Commentaire conservation",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 23,  +        "pk": 349,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 12,  -            "description": "",  +            "col_number": 14,  +            "description": "Type(s) d'objet(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"tesson & charbon\", \"os & m\u00e9tal\", \"faune\", \"fibule & bague\", \"lame & lamelle\", \"\u00e9clat & nucl\u00e9us\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire",  -            "importer_type": 3 +            "label": "Type(s) d'objet(s)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 24,  +        "pk": 350,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 13,  -            "description": "",  +            "col_number": 15,  +            "description": "Type(s) d'actions de conservation \u00e0 mener, s\u00e9par\u00e9s par des \"&\". Exemple : \"\u00c0 restaurer\", \"reconditionnement\", \"\u00c0 reconditionner & \u00e0 stabiliser\"",               "regexp_pre_filter": null,               "required": false,  -            "label": "\u00c9chelle",  -            "importer_type": 3 +            "label": "Type(s) d'actions de conservation \u00e0 mener",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 25,  +        "pk": 351,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 16,  -            "description": "",  +            "description": "Type(s) d'int\u00e9r\u00eat scientifique ou d'int\u00e9grit\u00e9, s\u00e9par\u00e9s par des \"&\". Exemple : \"Arch\u00e9ologiquement complet\", \"absent\", \"perdu\", etc.\r\nPeut \u00e9galement qualifier (selon votre usage) des qualit\u00e9s de fragmentation : \"proximal\", \"distal\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Information suppl\u00e9mentaire",  -            "importer_type": 3 -        } -    },  -    { -        "pk": 26,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 1,  -            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Code Patriarche",  -            "importer_type": 4 -        } -    },  -    { -        "pk": 225,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 2,  -            "description": "Commune (via num\u00e9ro INSEE)",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Commune",  -            "importer_type": 4 -        } -    },  -    { -        "pk": 33,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 3,  -            "description": "Parcelle (identifiant externe)",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Parcelle",  -            "importer_type": 4 -        } -    },  -    { -        "pk": 27,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 4,  -            "description": "Identifiant externe ",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Identifiant externe",  -            "importer_type": 4 +            "label": "Type(s) d'int\u00e9grit\u00e9(s) et/ou int\u00e9r\u00eat(s)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 28,  +        "pk": 352,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 5,  -            "description": "Type",  +            "col_number": 17,  +            "description": "Type(s) de remarquabilit\u00e9(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"Mus\u00e9e\", \"Publication\", \"Tessonier & Publication\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type",  -            "importer_type": 4 +            "label": "Type(s) de remarqualibit\u00e9(s)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 29,  +        "pk": 353,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 6,  -            "description": "Description",  +            "col_number": 18,  +            "description": "Longueur en cm (nombre d\u00e9cimal).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Description",  -            "importer_type": 4 +            "label": "Longueur (cm)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 30,  +        "pk": 354,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 7,  -            "description": "Identification",  +            "col_number": 19,  +            "description": "Largeur en cm (nombre d\u00e9cimal).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Identification",  -            "importer_type": 4 +            "label": "Largeur (cm)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 31,  +        "pk": 355,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 8,  -            "description": "Date d'ouverture",  +            "col_number": 20,  +            "description": "Hauteur en cm (nombre d\u00e9cimal).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Date d\u00e9but",  -            "importer_type": 4 +            "label": "Hauteur (cm)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 32,  +        "pk": 356,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 9,  -            "description": "Date de fermeture",  +            "col_number": 21,  +            "description": "Diam\u00e8tre en cm (nombre d\u00e9cimal).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Date fin",  -            "importer_type": 4 +            "label": "Diam\u00e8tre (cm)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 34,  +        "pk": 357,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 11,  -            "description": "Commentaire",  +            "col_number": 22,  +            "description": "Commentaire permettant de donner des pr\u00e9cisions (ou d'importer des donn\u00e9es mixtes). Exemple : \"18 x 12 x 5\", \"col de 43 mm\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire",  -            "importer_type": 4 +            "label": "Commentaire / Pr\u00e9cisions sur les dimensions ",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 54,  +        "pk": 372,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 12,  -            "description": "Nature",  +            "col_number": 23,  +            "description": "Poids en grammes.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Nature",  -            "importer_type": 4 +            "label": "Poids (g)",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 35,  +        "pk": 358,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 13,  -            "description": "Chronologie (plusieurs possibles s\u00e9par\u00e9es par &)",  +            "col_number": 24,  +            "description": "Nombre d'objet(s) li\u00e9(s) \u00e0 cet enregistrement (entier). Exemple : \"12\".\r\nAttention, ce champ n'est pas contraint par l'information de type OBJET/LOT (colonne n\u00b09).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Chronologie",  -            "importer_type": 4 -        } -    },  -    { -        "pk": 36,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 1,  -            "description": "Code patriarche de l'op\u00e9ration associ\u00e9e",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Code Patriarche",  -            "importer_type": 5 -        } -    },  -    { -        "pk": 227,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 2,  -            "description": "Commune (via num\u00e9ro INSEE)",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Commune",  -            "importer_type": 5 -        } -    },  -    { -        "pk": 226,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 3,  -            "description": "Identifiant parcelle",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Parcelle",  -            "importer_type": 5 -        } -    },  -    { -        "pk": 43,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 4,  -            "description": "Identifiant UE",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "UE",  -            "importer_type": 5 -        } -    },  -    { -        "pk": 37,  -        "model": "ishtar_common.importercolumn",  -        "fields": { -            "col_number": 5,  -            "description": "Identifiant externe",  -            "regexp_pre_filter": null,  -            "required": true,  -            "label": "Identifiant externe",  -            "importer_type": 5 +            "label": "Nombre",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 39,  +        "pk": 359,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 9,  -            "description": "Sous classe de mat\u00e9riaux",  +            "col_number": 25,  +            "description": "Marquage visible sur le mobilier. Exemple : \"id1234 la Roche aux F\u00e9es\", \"MTX-45\", etc.\r\nCeci reproduit d'ordinaire un marquage r\u00e9alis\u00e9 par un arch\u00e9ologue. Il ne s'agit pas ici de reproduire une \u00e9pigraphie ou tout autre inscription arch\u00e9ologique (graffito, d\u00e9dicaces, defixio, etc.) , mais vous pouvez l'utiliser pour cela si vous n'avez pas \u00e0 utiliser de marquage arch\u00e9ologique.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Mat\u00e9riau",  -            "importer_type": 5 +            "label": "Marque",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 229,  +        "pk": 360,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 12,  -            "description": "Ref. du contenant / label temporaire utilis\u00e9 pour le mobilier = label libre = Label pour l'instant",  +            "col_number": 26,  +            "description": "Commentaire g\u00e9n\u00e9ral libre. Exemple : \"habillage en nid d'abeille, poli g\u00e9n\u00e9ralis\u00e9, encoche emmanchement lat\u00e9ral ouvert sur la face sup\u00e9rieure\", \"1 bord + bec tubulaire\", \"fibule de Langton Down\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Libell\u00e9 contenant",  -            "importer_type": 5 +            "label": "Commentaire g\u00e9n\u00e9ral",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 40,  +        "pk": 361,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 13,  -            "description": "Nombre d'\u00e9l\u00e9ments",  +            "col_number": 27,  +            "description": "Commentaire g\u00e9n\u00e9ral sur les datations, si besoin. Exemple : \"plut\u00f4t fin IIe s. ou d\u00e9but IIIe s.\", \"Datation \u00e0 pr\u00e9ciser avant publication\", \" Datation rapide faite par M. Dupont\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Nombre d'\u00e9l\u00e9ments",  -            "importer_type": 5 +            "label": "Commentaire g\u00e9n\u00e9ral sur les datations",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 41,  +        "pk": 362,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 14,  -            "description": "Poids",  +            "col_number": 28,  +            "description": "Valeur estim\u00e9e (\u20ac), sous la forme d'un nombre d\u00e9cimal. Exemple : \"4500\", \"0.2\", etc.\r\nUtile essentiellement pour les probl\u00e8mes de partage, vente, assurance etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Poids",  -            "importer_type": 5 +            "label": "Valeur estim\u00e9e",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 42,  +        "pk": 363,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 15,  -            "description": "Unit\u00e9 de poids",  +            "col_number": 29,  +            "description": "Nom exact du fichier image, sous la forme XXXXX.jpg.\r\nAttention au respect strict des caract\u00e8res et majuscules lors d'un import de ce type, \".JPG\" ou \"*.jpg\", etc.\r\nExemple : \"P1030831.JPG\", \"IMG_6485.JPG\", \"fibule.jpg\", etc.\r\nLors de l'import il faut ajouter ces images sous la forme d'un fichier zip (joint au csv import\u00e9) pour que les images soient automatiquement int\u00e9gr\u00e9es.\r\n",               "regexp_pre_filter": null,               "required": false,  -            "label": "Unit\u00e9 de poids",  -            "importer_type": 5 +            "label": "Image",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 44,  +        "pk": 364,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 16,  -            "description": "Date de d\u00e9couverte",  +            "col_number": 30,  +            "description": "Chronologies associ\u00e9es (plusieurs possibles s\u00e9par\u00e9es par &). Exemple : \"Gallo-romain & M\u00e9di\u00e9val\", \"GR&MED\", \"M\u00e9solithique final & M\u00e9so moyen & Epipal\", etc.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Date de d\u00e9couverte",  -            "importer_type": 5 +            "label": "P\u00e9riodes",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 45,  +        "pk": 365,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 17,  -            "description": "\u00c9tat de conservation",  +            "col_number": 31,  +            "description": "Coordonn\u00e9e X pour cet objet.",               "regexp_pre_filter": null,               "required": false,  -            "label": "\u00c9tat de conservation",  -            "importer_type": 5 +            "label": "Coordonn\u00e9e X",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 46,  +        "pk": 366,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 18,  -            "description": "Mesure de conservation",  +            "col_number": 32,  +            "description": "Coordonn\u00e9e Y pour cet objet.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Mesure de conservation",  -            "importer_type": 5 +            "label": "Coordonn\u00e9e Y",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 47,  +        "pk": 367,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 19,  -            "description": "Commentaire",  +            "col_number": 33,  +            "description": "Coordonn\u00e9e Z pour cet objet (altitude NGF ou arbitraire).",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire",  -            "importer_type": 5 +            "label": "Coordonn\u00e9e Z",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 228,  +        "pk": 368,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 20,  -            "description": "Datations s\u00e9par\u00e9es par des \"&\"",  +            "col_number": 34,  +            "description": "Code permettant de qualifier le mode de projection des donn\u00e9es (SRS /EPSG). Exemple : \"2154\" pour le Lambert 93.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Datation",  -            "importer_type": 5 +            "label": "Syst\u00e8me de r\u00e9f\u00e9rence spatiale",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 48,  +        "pk": 373,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 21,  -            "description": "Localisation topographique",  +            "col_number": 35,  +            "description": "Identifiant textuel du d\u00e9p\u00f4t. Cet identifiant doit correspondre \u00e0 un d\u00e9p\u00f4t existant en base de donn\u00e9es.",               "regexp_pre_filter": null,               "required": false,  -            "label": "Localisation topographique",  -            "importer_type": 5 +            "label": "Identifiant d\u00e9p\u00f4t",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 49,  +        "pk": 374,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 22,  -            "description": "Int\u00e9r\u00eat sp\u00e9cifique",  +            "col_number": 36,  +            "description": "",               "regexp_pre_filter": null,               "required": false,  -            "label": "Int\u00e9r\u00eat sp\u00e9cifique",  -            "importer_type": 5 +            "label": "R\u00e9f\u00e9rence de caisse",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { -        "pk": 50,  +        "pk": 375,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 23,  -            "description": "Description",  +            "col_number": 37,  +            "description": "Champ n\u00e9cessaire si vous indiquez une caisse",               "regexp_pre_filter": null,               "required": false,  -            "label": "Description",  -            "importer_type": 5 +            "label": "Type de caisse",  +            "importer_type": 20,  +            "export_field_name": null          }      },       { @@ -992,7 +821,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Code op\u00e9ration",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1004,7 +834,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Nom",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1016,7 +847,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Ann\u00e9e",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1028,7 +860,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Index (num\u00e9ro par ann\u00e9e)",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1040,7 +873,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Type d'op\u00e9ration",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1052,7 +886,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Ancien code",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1064,7 +899,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "R\u00e9f\u00e9rence du dossier administratif",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1076,7 +912,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Identifiants des sites (EAs)",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1088,7 +925,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Types de vestiges",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1100,7 +938,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "P\u00e9riodes",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1112,7 +951,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Titre du responsable scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1124,7 +964,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Pr\u00e9nom du responsable scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1136,7 +977,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Nom du responsable scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1148,7 +990,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Rattachement du responsable scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1160,7 +1003,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Nom de l'op\u00e9rateur",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1172,7 +1016,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "R\u00e9f\u00e9rence de l'op\u00e9rateur",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1184,7 +1029,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Titre du responsable du suivi scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1196,7 +1042,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Pr\u00e9nom du responsable du suivi scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1208,7 +1055,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Nom du responsable du suivi scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1220,7 +1068,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Rattachement du responsable du suivi scientifique",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1232,7 +1081,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Surface couverte par l'op\u00e9ration",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1244,7 +1094,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date de d\u00e9but de l'op\u00e9ration",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1256,7 +1107,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date de fin de l'op\u00e9ration",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1268,7 +1120,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date de cl\u00f4ture",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1280,7 +1133,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date d'avis",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1292,7 +1146,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "R\u00e9sultats consid\u00e9r\u00e9s comme n\u00e9gatif",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1304,7 +1159,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Pr\u00e9nom du rapporteur",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1316,7 +1172,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Nom du rapporteur",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1328,7 +1185,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Rattachement du rapporteur",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1340,7 +1198,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date limite pour le rendu de la documentation",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1352,7 +1211,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Documentation re\u00e7ue",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1364,7 +1224,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date limite rendu du mobilier",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1376,7 +1237,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Mobilier re\u00e7u",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1388,7 +1250,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Commentaire g\u00e9n\u00e9ral",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1400,7 +1263,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Date de livraison du rapport",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1412,7 +1276,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "\u00c9tat de traitement du rapport",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1424,7 +1289,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Commentaire sur la documentation",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null          }      },       { @@ -1436,7 +1302,151 @@              "regexp_pre_filter": null,               "required": false,               "label": "Image",  -            "importer_type": 17 +            "importer_type": 17,  +            "export_field_name": null +        } +    },  +    { +        "pk": 303,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 1,  +            "description": "Code PATRIARCHE ou code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration.",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Code op\u00e9ration",  +            "importer_type": 19,  +            "export_field_name": "" +        } +    },  +    { +        "pk": 304,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 2,  +            "description": "Commune (via num\u00e9ro INSEE).",  +            "regexp_pre_filter": 2,  +            "required": true,  +            "label": "Commune",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 305,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 3,  +            "description": "Identifiant externe.",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "ID externe",  +            "importer_type": 19,  +            "export_field_name": "" +        } +    },  +    { +        "pk": 306,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 4,  +            "description": "Section. Exemple : \"ZA\". Maximum 4 caract\u00e8res.",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Section",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 307,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 5,  +            "description": "Num\u00e9ro de la parcelle. Exemple : \"253\". Peut accueillir une r\u00e9f\u00e9rence sous la forme de caract\u00e8res (maximum 6).",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Parcelle",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 308,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 6,  +            "description": "Ann\u00e9e de la r\u00e9f\u00e9rence cadastrale. Exemple : \"1980\".",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Ann\u00e9e cadastrale",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 309,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 7,  +            "description": "Lieu-dit ou adresse associ\u00e9s \u00e0 la parcelle.",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Adresse",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 310,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 8,  +            "description": "Parcelle dans le domaine public ou non (oui/non).",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Domaine public",  +            "importer_type": 19,  +            "export_field_name": null +        } +    },  +    { +        "pk": 369,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 1,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "UE (identifiant externe) - membre de gauche",  +            "importer_type": 21,  +            "export_field_name": null +        } +    },  +    { +        "pk": 370,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 2,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Type de relation entre UE",  +            "importer_type": 21,  +            "export_field_name": null +        } +    },  +    { +        "pk": 371,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 3,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "UE (identifiant externe) - membre de droite",  +            "importer_type": 21,  +            "export_field_name": null          }      },       { @@ -1448,7 +1458,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Code op\u00e9ration",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1460,7 +1471,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "INSEE",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": "parcel__town__numero_insee"          }      },       { @@ -1472,7 +1484,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Parcelle",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": "parcel__section|parcel__parcel_number"          }      },       { @@ -1484,7 +1497,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Ann\u00e9e cadastre",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1496,7 +1510,8 @@              "regexp_pre_filter": null,               "required": true,               "label": "Identifiant UE",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1508,7 +1523,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Type",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1520,7 +1536,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Description",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1532,7 +1549,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Commentaire g\u00e9n\u00e9ral",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1544,7 +1562,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Taille ou longueur",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1556,7 +1575,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Largeur",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1568,7 +1588,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "\u00c9paisseur",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1580,7 +1601,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Profondeur",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1592,7 +1614,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Lieu, localisation",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1604,7 +1627,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Contient du mobilier",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1616,7 +1640,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Image",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1628,7 +1653,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "P\u00e9riodes",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": "datings__period__label"          }      },       { @@ -1640,7 +1666,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Commentaire sur les datations",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1652,7 +1679,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Description du remplissage",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1664,7 +1692,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Interpr\u00e9tation",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1676,7 +1705,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Type d'activit\u00e9",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1688,7 +1718,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "Identification (type)",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1700,7 +1731,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "TAQ",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1712,7 +1744,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "TPQ",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1724,7 +1757,8 @@              "regexp_pre_filter": null,               "required": false,               "label": "TAQ estim\u00e9",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { @@ -1736,555 +1770,749 @@              "regexp_pre_filter": null,               "required": false,               "label": "TPQ estim\u00e9",  -            "importer_type": 18 +            "importer_type": 18,  +            "export_field_name": null          }      },       { -        "pk": 303,  +        "pk": 14,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 1,  -            "description": "Code PATRIARCHE ou code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration.",  +            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",               "regexp_pre_filter": null,               "required": true,  -            "label": "Code op\u00e9ration",  -            "importer_type": 19 +            "label": "Code Patriarche",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 304,  +        "pk": 15,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 2,  -            "description": "Commune (via num\u00e9ro INSEE).",  -            "regexp_pre_filter": 2,  +            "description": "",  +            "regexp_pre_filter": null,               "required": true,  -            "label": "Commune",  -            "importer_type": 19 +            "label": "Identifiant externe",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 305,  +        "pk": 16,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 3,  -            "description": "Identifiant externe.",  +            "description": "",               "regexp_pre_filter": null,               "required": true,  -            "label": "ID externe",  -            "importer_type": 19 +            "label": "Type de document",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 306,  +        "pk": 17,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 4,  -            "description": "Section. Exemple : \"ZA\". Maximum 4 caract\u00e8res.",  +            "description": "",               "regexp_pre_filter": null,  -            "required": true,  -            "label": "Section",  -            "importer_type": 19 +            "required": false,  +            "label": "Type de support",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 307,  +        "pk": 18,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 5,  -            "description": "Num\u00e9ro de la parcelle. Exemple : \"253\". Peut accueillir une r\u00e9f\u00e9rence sous la forme de caract\u00e8res (maximum 6).",  +            "description": "",               "regexp_pre_filter": null,  -            "required": true,  -            "label": "Parcelle",  -            "importer_type": 19 +            "required": false,  +            "label": "Num\u00e9ro",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 308,  +        "pk": 19,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 6,  -            "description": "Ann\u00e9e de la r\u00e9f\u00e9rence cadastrale. Exemple : \"1980\".",  +            "description": "",               "regexp_pre_filter": null,               "required": false,  -            "label": "Ann\u00e9e cadastrale",  -            "importer_type": 19 +            "label": "Nom de l'auteur",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 309,  +        "pk": 20,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 7,  -            "description": "Lieu-dit ou adresse associ\u00e9s \u00e0 la parcelle.",  +            "description": "",               "regexp_pre_filter": null,               "required": false,  -            "label": "Adresse",  -            "importer_type": 19 +            "label": "Date de cr\u00e9ation",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 310,  +        "pk": 21,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 8,  -            "description": "Parcelle dans le domaine public ou non (oui/non).",  +            "description": "",               "regexp_pre_filter": null,               "required": false,  -            "label": "Domaine public",  -            "importer_type": 19 +            "label": "Type de format",  +            "importer_type": 3,  +            "export_field_name": null          }      },       { -        "pk": 336,  +        "pk": 22,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 9,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Description",  +            "importer_type": 3,  +            "export_field_name": null +        } +    },  +    { +        "pk": 23,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 12,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Commentaire",  +            "importer_type": 3,  +            "export_field_name": null +        } +    },  +    { +        "pk": 24,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 13,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "\u00c9chelle",  +            "importer_type": 3,  +            "export_field_name": null +        } +    },  +    { +        "pk": 25,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 16,  +            "description": "",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Information suppl\u00e9mentaire",  +            "importer_type": 3,  +            "export_field_name": null +        } +    },  +    { +        "pk": 36,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 1,  -            "description": "Code PATRIARCHE ou code num\u00e9rique (entier) UNIQUE pour une op\u00e9ration.",  +            "description": "Code patriarche de l'op\u00e9ration associ\u00e9e",               "regexp_pre_filter": null,               "required": true,  -            "label": "Code op\u00e9ration",  -            "importer_type": 20 +            "label": "Code Patriarche",  +            "importer_type": 5,  +            "export_field_name": "base_finds__context_record__operation__code_patriarche"          }      },       { -        "pk": 337,  +        "pk": 227,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 2,  -            "description": "Commune (via num\u00e9ro INSEE).",  +            "description": "Commune (via num\u00e9ro INSEE)",               "regexp_pre_filter": null,               "required": true,  -            "label": "INSEE",  -            "importer_type": 20 +            "label": "Commune",  +            "importer_type": 5,  +            "export_field_name": "base_finds__context_record__parcel__town__numero_insee"          }      },       { -        "pk": 338,  +        "pk": 226,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 3,  -            "description": "Parcelle (identifiant externe), soit la section plus la parcelle sans espaces. Exemple : \"ZA253\".",  +            "description": "Identifiant parcelle",               "regexp_pre_filter": null,               "required": true,               "label": "Parcelle",  -            "importer_type": 20 +            "importer_type": 5,  +            "export_field_name": "base_finds__context_record__parcel__section|base_finds__context_record__parcel__parcel_number"          }      },       { -        "pk": 339,  +        "pk": 43,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 4,  -            "description": "Label / Identifiant (externe) de l'UE. Exemple : \"US 145\", \"Tranch\u00e9e 145\", \"145\", \"St 17\", etc. Doit \u00eatre unique pour une parcelle donn\u00e9e.",  +            "description": "Identifiant UE",               "regexp_pre_filter": null,               "required": true,  -            "label": "Label UE",  -            "importer_type": 20 +            "label": "UE",  +            "importer_type": 5,  +            "export_field_name": "base_finds__context_record__label"          }      },       { -        "pk": 340,  +        "pk": 37,           "model": "ishtar_common.importercolumn",           "fields": {              "col_number": 5,  -            "description": "Identifiant libre pour le mobilier. Exemple : \"12\", \"Lot 24\", \"Sac vert\", etc.\r\nDoit \u00eatre unique \u00e0 l'\u00e9chelle de l'UE associ\u00e9e.",  +            "description": "Identifiant externe",               "regexp_pre_filter": null,               "required": true,  -            "label": "Label mobilier",  -            "importer_type": 20 +            "label": "Identifiant externe",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 341,  +        "pk": 39,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 6,  -            "description": "Identifiant pr\u00e9c\u00e9dent, li\u00e9 \u00e0 une base de donn\u00e9e ou un autre mode d'enregistrement. Exemple : \"400.01.05\", \"Beau biface\", \"inv. 4523\", \"Iso.4220\", etc.",  +            "col_number": 9,  +            "description": "Sous classe de mat\u00e9riaux",               "regexp_pre_filter": null,               "required": false,  -            "label": "Identifiant pr\u00e9c\u00e9dent",  -            "importer_type": 20 +            "label": "Mat\u00e9riau",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 343,  +        "pk": 229,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 7,  -            "description": "R\u00e9f\u00e9rence du point topo, d'ordinaire un entier mais peut \u00eatre autre chose. Champ texte, max. 120 caract\u00e8res. Exemple : \"7220\", \"pt. 72\", etc.",  +            "col_number": 12,  +            "description": "Ref. du contenant / label temporaire utilis\u00e9 pour le mobilier = label libre = Label pour l'instant",               "regexp_pre_filter": null,               "required": false,  -            "label": "Ref. point topo",  -            "importer_type": 20 +            "label": "Libell\u00e9 contenant",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 342,  +        "pk": 40,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 8,  -            "description": "Description du mobilier, objet ou lot. Exemple : \"Fibule aviforme\".",  +            "col_number": 13,  +            "description": "Nombre d'\u00e9l\u00e9ments",               "regexp_pre_filter": null,               "required": false,  -            "label": "Description",  -            "importer_type": 20 +            "label": "Nombre d'\u00e9l\u00e9ments",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 344,  +        "pk": 41,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 9,  -            "description": "D\u00e9finit si on enregistre ici un objet seul (parfois appel\u00e9 Isolation) ou un lot d'objets. Exemple : \"lot\", \"objet\", \"Iso\", \"vrac\", etc.",  +            "col_number": 14,  +            "description": "Poids",               "regexp_pre_filter": null,               "required": false,  -            "label": "Lot ou objet",  -            "importer_type": 20 +            "label": "Poids",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 345,  +        "pk": 42,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 10,  -            "description": "D\u00e9finit si un objet est complet ou non. Exemple : \"complet\", \"est complet\", \"incomplet\".\r\nEst ici traduit en binaire : \"complet\" (vrai) ou \"incomplet\" (faux). ",  +            "col_number": 15,  +            "description": "Unit\u00e9 de poids",               "regexp_pre_filter": null,               "required": false,  -            "label": "Compl\u00e9tude",  -            "importer_type": 20 +            "label": "Unit\u00e9 de poids",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 346,  +        "pk": 44,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 11,  -            "description": "Type(s) de mat\u00e9riau(x) s\u00e9par\u00e9s par des \"&\". Exemple : \"m\u00e9tal & os\", \"LT\", \"Min\u00e9ral\", \"Granito\u00efde & Basalte & Ardoise\".",  +            "col_number": 16,  +            "description": "Date de d\u00e9couverte",               "regexp_pre_filter": null,               "required": false,  -            "label": "Mat\u00e9riau(x)",  -            "importer_type": 20 +            "label": "Date de d\u00e9couverte",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 347,  +        "pk": 45,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 12,  -            "description": "\u00c9tat de conservation. Exemple : \"Instable\", \"Stable\", \"Inconnu\", etc.",  +            "col_number": 17,  +            "description": "\u00c9tat de conservation",               "regexp_pre_filter": null,               "required": false,               "label": "\u00c9tat de conservation",  -            "importer_type": 20 +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 348,  +        "pk": 46,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 13,  -            "description": "Commentaire relatif \u00e0 la conservation. Exemple : \"Devrait \u00eatre conserv\u00e9 dans une chambre climatis\u00e9e\", \"Ne sera plus qu'une poudre, si on ne s'en occupe pas sous peu\", \" \u00e0 jeter\", etc.",  +            "col_number": 18,  +            "description": "Mesure de conservation",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire conservation",  -            "importer_type": 20 +            "label": "Mesure de conservation",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 349,  +        "pk": 47,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 14,  -            "description": "Type(s) d'objet(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"tesson & charbon\", \"os & m\u00e9tal\", \"faune\", \"fibule & bague\", \"lame & lamelle\", \"\u00e9clat & nucl\u00e9us\", etc.",  +            "col_number": 19,  +            "description": "Commentaire",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type(s) d'objet(s)",  -            "importer_type": 20 +            "label": "Commentaire",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 350,  +        "pk": 228,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 15,  -            "description": "Type(s) d'actions de conservation \u00e0 mener, s\u00e9par\u00e9s par des \"&\". Exemple : \"\u00c0 restaurer\", \"reconditionnement\", \"\u00c0 reconditionner & \u00e0 stabiliser\"",  +            "col_number": 20,  +            "description": "Datations s\u00e9par\u00e9es par des \"&\"",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type(s) d'actions de conservation \u00e0 mener",  -            "importer_type": 20 +            "label": "Datation",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 351,  +        "pk": 48,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 16,  -            "description": "Type(s) d'int\u00e9r\u00eat scientifique ou d'int\u00e9grit\u00e9, s\u00e9par\u00e9s par des \"&\". Exemple : \"Arch\u00e9ologiquement complet\", \"absent\", \"perdu\", etc.\r\nPeut \u00e9galement qualifier (selon votre usage) des qualit\u00e9s de fragmentation : \"proximal\", \"distal\", etc.",  +            "col_number": 21,  +            "description": "Localisation topographique",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type(s) d'int\u00e9grit\u00e9(s) et/ou int\u00e9r\u00eat(s)",  -            "importer_type": 20 +            "label": "Localisation topographique",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 352,  +        "pk": 49,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 17,  -            "description": "Type(s) de remarquabilit\u00e9(s), s\u00e9par\u00e9s par des \"&\". Exemple : \"Mus\u00e9e\", \"Publication\", \"Tessonier & Publication\", etc.",  +            "col_number": 22,  +            "description": "Int\u00e9r\u00eat sp\u00e9cifique",               "regexp_pre_filter": null,               "required": false,  -            "label": "Type(s) de remarqualibit\u00e9(s)",  -            "importer_type": 20 +            "label": "Int\u00e9r\u00eat sp\u00e9cifique",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 353,  +        "pk": 50,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 18,  -            "description": "Longueur en cm (nombre d\u00e9cimal).",  +            "col_number": 23,  +            "description": "Description",               "regexp_pre_filter": null,               "required": false,  -            "label": "Longueur (cm)",  -            "importer_type": 20 +            "label": "Description",  +            "importer_type": 5,  +            "export_field_name": null          }      },       { -        "pk": 354,  +        "pk": 1,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 19,  -            "description": "Largeur en cm (nombre d\u00e9cimal).",  +            "col_number": 1,  +            "description": "Code Patriarche",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Largeur (cm)",  -            "importer_type": 20 +            "required": true,  +            "label": "Code Patriarche",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 355,  +        "pk": 2,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 20,  -            "description": "Hauteur en cm (nombre d\u00e9cimal).",  +            "col_number": 3,  +            "description": "",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Hauteur (cm)",  -            "importer_type": 20 +            "required": true,  +            "label": "Type d'op\u00e9ration",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 356,  +        "pk": 3,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 21,  -            "description": "Diam\u00e8tre en cm (nombre d\u00e9cimal).",  +            "col_number": 4,  +            "description": "",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Diam\u00e8tre (cm)",  -            "importer_type": 20 +            "required": true,  +            "label": "Nom de l'op\u00e9ration",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 357,  +        "pk": 4,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 22,  -            "description": "Commentaire permettant de donner des pr\u00e9cisions (ou d'importer des donn\u00e9es mixtes). Exemple : \"18 x 12 x 5\", \"col de 43 mm\", etc.",  +            "col_number": 5,  +            "description": "",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Commentaire / Pr\u00e9cisions sur les dimensions ",  -            "importer_type": 20 +            "required": true,  +            "label": "Nom de l'op\u00e9rateur",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 358,  +        "pk": 5,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 23,  -            "description": "Nombre d'objet(s) li\u00e9(s) \u00e0 cet enregistrement (entier). Exemple : \"12\".\r\nAttention, ce champ n'est pas contraint par l'information de type OBJET/LOT (colonne n\u00b09).",  +            "col_number": 6,  +            "description": "Nom du responsable de l'op\u00e9ration. Nom et Pr\u00e9nom sont group\u00e9s et donc mis dans le NOM seul dans l'annuaire.",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Nombre",  -            "importer_type": 20 +            "required": true,  +            "label": "Nom du responsable de l'op\u00e9ration",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 359,  +        "pk": 6,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 24,  -            "description": "Marquage visible sur le mobilier. Exemple : \"id1234 la Roche aux F\u00e9es\", \"MTX-45\", etc.\r\nCeci reproduit d'ordinaire un marquage r\u00e9alis\u00e9 par un arch\u00e9ologue. Il ne s'agit pas ici de reproduire une \u00e9pigraphie ou tout autre inscription arch\u00e9ologique (graffito, d\u00e9dicaces, defixio, etc.) , mais vous pouvez l'utiliser pour cela si vous n'avez pas \u00e0 utiliser de marquage arch\u00e9ologique.",  +            "col_number": 7,  +            "description": "Date de d\u00e9but de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR",               "regexp_pre_filter": null,  -            "required": false,  -            "label": "Marque",  -            "importer_type": 20 +            "required": true,  +            "label": "Date d\u00e9but",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 360,  +        "pk": 7,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 25,  -            "description": "Commentaire g\u00e9n\u00e9ral libre. Exemple : \"habillage en nid d'abeille, poli g\u00e9n\u00e9ralis\u00e9, encoche emmanchement lat\u00e9ral ouvert sur la face sup\u00e9rieure\", \"1 bord + bec tubulaire\", \"fibule de Langton Down\", etc.",  +            "col_number": 8,  +            "description": "Date de fin de l'op\u00e9ration avec le format ANN\u00c9E/MOIS/JOUR",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Date fin",  +            "importer_type": 1,  +            "export_field_name": null +        } +    },  +    { +        "pk": 8,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 9,  +            "description": "",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire g\u00e9n\u00e9ral",  -            "importer_type": 20 +            "label": "P\u00e9riodes",  +            "importer_type": 1,  +            "export_field_name": null          }      },       { -        "pk": 361,  +        "pk": 9,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 26,  -            "description": "Commentaire g\u00e9n\u00e9ral sur les datations, si besoin. Exemple : \"plut\u00f4t fin IIe s. ou d\u00e9but IIIe s.\", \"Datation \u00e0 pr\u00e9ciser avant publication\", \" Datation rapide faite par M. Dupont\", etc.",  +            "col_number": 1,  +            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Code Patriarche",  +            "importer_type": 2,  +            "export_field_name": null +        } +    },  +    { +        "pk": 12,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 2,  +            "description": "Commune (via num\u00e9ro INSEE)",  +            "regexp_pre_filter": 2,  +            "required": true,  +            "label": "Commune",  +            "importer_type": 2,  +            "export_field_name": null +        } +    },  +    { +        "pk": 53,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 3,  +            "description": "Identifiant externe",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Identifiant externe",  +            "importer_type": 2,  +            "export_field_name": null +        } +    },  +    { +        "pk": 51,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 4,  +            "description": "Num\u00e9ro",               "regexp_pre_filter": null,               "required": false,  -            "label": "Commentaire g\u00e9n\u00e9ral sur les datations",  -            "importer_type": 20 +            "label": "Parcelle",  +            "importer_type": 2,  +            "export_field_name": null          }      },       { -        "pk": 362,  +        "pk": 52,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 27,  -            "description": "Valeur estim\u00e9e (\u20ac), sous la forme d'un nombre d\u00e9cimal. Exemple : \"4500\", \"0.2\", etc.\r\nUtile essentiellement pour les probl\u00e8mes de partage, vente, assurance etc.",  +            "col_number": 5,  +            "description": "Section",               "regexp_pre_filter": null,               "required": false,  -            "label": "Valeur estim\u00e9e",  -            "importer_type": 20 +            "label": "Section cadastrale",  +            "importer_type": 2,  +            "export_field_name": null          }      },       { -        "pk": 363,  +        "pk": 11,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 28,  -            "description": "Nom exact du fichier image, sous la forme XXXXX.jpg.\r\nAttention au respect strict des caract\u00e8res et majuscules lors d'un import de ce type, \".JPG\" ou \"*.jpg\", etc.\r\nExemple : \"P1030831.JPG\", \"IMG_6485.JPG\", \"fibule.jpg\", etc.\r\nLors de l'import il faut ajouter ces images sous la forme d'un fichier zip (joint au csv import\u00e9) pour que les images soient automatiquement int\u00e9gr\u00e9es.\r\n",  +            "col_number": 6,  +            "description": "Ann\u00e9e",               "regexp_pre_filter": null,               "required": false,  -            "label": "Image",  -            "importer_type": 20 +            "label": "Ann\u00e9e cadastrale",  +            "importer_type": 2,  +            "export_field_name": null          }      },       { -        "pk": 364,  +        "pk": 13,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 29,  -            "description": "Chronologies associ\u00e9es (plusieurs possibles s\u00e9par\u00e9es par &). Exemple : \"Gallo-romain & M\u00e9di\u00e9val\", \"GR&MED\", \"M\u00e9solithique final & M\u00e9so moyen & Epipal\", etc.",  +            "col_number": 9,  +            "description": "Lieu dit / adresse",               "regexp_pre_filter": null,               "required": false,  -            "label": "P\u00e9riodes",  -            "importer_type": 20 +            "label": "Adresse",  +            "importer_type": 2,  +            "export_field_name": null          }      },       { -        "pk": 365,  +        "pk": 26,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 30,  -            "description": "Coordonn\u00e9e X pour cet objet.",  +            "col_number": 1,  +            "description": "Code Patriarche de l'op\u00e9ration associ\u00e9e",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Code Patriarche",  +            "importer_type": 4,  +            "export_field_name": null +        } +    },  +    { +        "pk": 225,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 2,  +            "description": "Commune (via num\u00e9ro INSEE)",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Commune",  +            "importer_type": 4,  +            "export_field_name": "parcel__town__numero_insee" +        } +    },  +    { +        "pk": 33,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 3,  +            "description": "Parcelle (identifiant externe)",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Parcelle",  +            "importer_type": 4,  +            "export_field_name": "parcel__section|parcel__parcel_number" +        } +    },  +    { +        "pk": 27,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 4,  +            "description": "Identifiant externe ",  +            "regexp_pre_filter": null,  +            "required": true,  +            "label": "Identifiant externe",  +            "importer_type": 4,  +            "export_field_name": null +        } +    },  +    { +        "pk": 28,  +        "model": "ishtar_common.importercolumn",  +        "fields": { +            "col_number": 5,  +            "description": "Type",               "regexp_pre_filter": null,               "required": false,  -            "label": "Coordonn\u00e9e X",  -            "importer_type": 20 +            "label": "Type",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 366,  +        "pk": 29,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 31,  -            "description": "Coordonn\u00e9e Y pour cet objet.",  +            "col_number": 6,  +            "description": "Description",               "regexp_pre_filter": null,               "required": false,  -            "label": "Coordonn\u00e9e Y",  -            "importer_type": 20 +            "label": "Description",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 367,  +        "pk": 30,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 32,  -            "description": "Coordonn\u00e9e Z pour cet objet (altitude NGF ou arbitraire).",  +            "col_number": 7,  +            "description": "Identification",               "regexp_pre_filter": null,               "required": false,  -            "label": "Coordonn\u00e9e Z",  -            "importer_type": 20 +            "label": "Identification",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 368,  +        "pk": 31,           "model": "ishtar_common.importercolumn",           "fields": { -            "col_number": 33,  -            "description": "Code permettant de qualifier le mode de projection des donn\u00e9es (SRS /EPSG). Exemple : \"2154\" pour le Lambert 93.",  +            "col_number": 8,  +            "description": "Date d'ouverture",               "regexp_pre_filter": null,               "required": false,  -            "label": "Syst\u00e8me de r\u00e9f\u00e9rence spatiale",  -            "importer_type": 20 +            "label": "Date d\u00e9but",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 46,  -        "model": "ishtar_common.importtarget",  +        "pk": 32,  +        "model": "ishtar_common.importercolumn",           "fields": { -            "comment": null,  -            "target": "find__conservatory_state",  -            "column": 45,  -            "formater_type": 22,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false +            "col_number": 9,  +            "description": "Date de fermeture",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Date fin",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 49,  -        "model": "ishtar_common.importtarget",  +        "pk": 34,  +        "model": "ishtar_common.importercolumn",           "fields": { -            "comment": null,  -            "target": "topographic_localisation",  -            "column": 48,  -            "formater_type": 3,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false +            "col_number": 11,  +            "description": "Commentaire",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Commentaire",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 50,  -        "model": "ishtar_common.importtarget",  +        "pk": 54,  +        "model": "ishtar_common.importercolumn",           "fields": { -            "comment": null,  -            "target": "special_interest",  -            "column": 49,  -            "formater_type": 3,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false +            "col_number": 12,  +            "description": "Nature",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Nature",  +            "importer_type": 4,  +            "export_field_name": null          }      },       { -        "pk": 51,  -        "model": "ishtar_common.importtarget",  +        "pk": 35,  +        "model": "ishtar_common.importercolumn",           "fields": { -            "comment": null,  -            "target": "description",  -            "column": 50,  -            "formater_type": 16,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false +            "col_number": 13,  +            "description": "Chronologie (plusieurs possibles s\u00e9par\u00e9es par &)",  +            "regexp_pre_filter": null,  +            "required": false,  +            "label": "Chronologie",  +            "importer_type": 4,  +            "export_field_name": "datings__period__label"          }      },       { @@ -2316,20 +2544,6 @@          }      },       { -        "pk": 48,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "comment",  -            "column": 47,  -            "formater_type": 35,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 13,           "model": "ishtar_common.importtarget",           "fields": { @@ -2470,20 +2684,6 @@          }      },       { -        "pk": 40,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": null,  -            "target": "find__material_types",  -            "column": 39,  -            "formater_type": 20,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 19,           "model": "ishtar_common.importtarget",           "fields": { @@ -2764,62 +2964,6 @@          }      },       { -        "pk": 41,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": null,  -            "target": "find__find_number",  -            "column": 40,  -            "formater_type": 1,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 42,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": null,  -            "target": "find__weight",  -            "column": 41,  -            "formater_type": 21,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 43,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": null,  -            "target": "find__weight_unit",  -            "column": 42,  -            "formater_type": 7,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 45,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": null,  -            "target": "discovery_date",  -            "column": 44,  -            "formater_type": 5,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 36,           "model": "ishtar_common.importtarget",           "fields": { @@ -2834,20 +2978,6 @@          }      },       { -        "pk": 253,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "find__datings__period",  -            "column": 228,  -            "formater_type": 6,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": true -        } -    },  -    {          "pk": 55,           "model": "ishtar_common.importtarget",           "fields": { @@ -2904,48 +3034,6 @@          }      },       { -        "pk": 37,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "context_record__external_id",  -            "column": 36,  -            "formater_type": 11,  -            "concat_str": "-",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 252,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "context_record__external_id",  -            "column": 227,  -            "formater_type": 28,  -            "concat_str": "-",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 44,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "context_record__external_id",  -            "column": 43,  -            "formater_type": 3,  -            "concat_str": "-",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 9,           "model": "ishtar_common.importtarget",           "fields": { @@ -2960,20 +3048,6 @@          }      },       { -        "pk": 251,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "context_record__external_id",  -            "column": 226,  -            "formater_type": 35,  -            "concat_str": "-",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 290,           "model": "ishtar_common.importtarget",           "fields": { @@ -3030,6 +3104,20 @@          }      },       { +        "pk": 365,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__label",  +            "column": 340,  +            "formater_type": 3,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 308,           "model": "ishtar_common.importtarget",           "fields": { @@ -3058,6 +3146,20 @@          }      },       { +        "pk": 368,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__batch",  +            "column": 344,  +            "formater_type": 48,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 317,           "model": "ishtar_common.importtarget",           "fields": { @@ -3100,20 +3202,6 @@          }      },       { -        "pk": 47,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "find__preservation_to_considers",  -            "column": 46,  -            "formater_type": 23,  -            "concat_str": "",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 325,           "model": "ishtar_common.importtarget",           "fields": { @@ -3184,6 +3272,20 @@          }      },       { +        "pk": 371,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "conservatory_state",  +            "column": 347,  +            "formater_type": 22,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 344,           "model": "ishtar_common.importtarget",           "fields": { @@ -3198,13 +3300,13 @@          }      },       { -        "pk": 349,  +        "pk": 374,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "image",  -            "column": 324,  -            "formater_type": 27,  +            "target": "preservation_to_considers",  +            "column": 350,  +            "formater_type": 23,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3212,13 +3314,13 @@          }      },       { -        "pk": 356,  +        "pk": 349,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "taq",  -            "column": 331,  -            "formater_type": 1,  +            "target": "image",  +            "column": 324,  +            "formater_type": 27,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3226,13 +3328,13 @@          }      },       { -        "pk": 359,  +        "pk": 377,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "tpq_estimated",  -            "column": 334,  -            "formater_type": 1,  +            "target": "length",  +            "column": 353,  +            "formater_type": 21,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3240,13 +3342,13 @@          }      },       { -        "pk": 365,  +        "pk": 356,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "label",  -            "column": 340,  -            "formater_type": 3,  +            "target": "taq",  +            "column": 331,  +            "formater_type": 1,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3254,13 +3356,13 @@          }      },       { -        "pk": 371,  +        "pk": 359,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__conservatory_state",  -            "column": 347,  -            "formater_type": 22,  +            "target": "tpq_estimated",  +            "column": 334,  +            "formater_type": 1,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3268,13 +3370,13 @@          }      },       { -        "pk": 374,  +        "pk": 379,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__preservation_to_considers",  -            "column": 350,  -            "formater_type": 23,  +            "target": "height",  +            "column": 355,  +            "formater_type": 21,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3282,13 +3384,13 @@          }      },       { -        "pk": 377,  +        "pk": 382,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__length",  -            "column": 353,  -            "formater_type": 21,  +            "target": "find_number",  +            "column": 358,  +            "formater_type": 1,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3296,13 +3398,13 @@          }      },       { -        "pk": 379,  +        "pk": 384,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__height",  -            "column": 355,  -            "formater_type": 21,  +            "target": "comment",  +            "column": 360,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3310,13 +3412,13 @@          }      },       { -        "pk": 382,  +        "pk": 385,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__find_number",  -            "column": 358,  -            "formater_type": 1,  +            "target": "dating_comment",  +            "column": 361,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3352,20 +3454,6 @@          }      },       { -        "pk": 38,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "label",  -            "column": 37,  -            "formater_type": 3,  -            "concat_str": null,  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 3,           "model": "ishtar_common.importtarget",           "fields": { @@ -3436,6 +3524,20 @@          }      },       { +        "pk": 388,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "datings__period",  +            "column": 364,  +            "formater_type": 6,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": true +        } +    },  +    {          "pk": 309,           "model": "ishtar_common.importtarget",           "fields": { @@ -3464,6 +3566,20 @@          }      },       { +        "pk": 37,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 36,  +            "formater_type": 11,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 318,           "model": "ishtar_common.importtarget",           "fields": { @@ -3520,13 +3636,13 @@          }      },       { -        "pk": 329,  +        "pk": 332,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "external_id",  -            "column": 305,  -            "formater_type": 11,  +            "target": "year",  +            "column": 308,  +            "formater_type": 14,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3534,14 +3650,28 @@          }      },       { -        "pk": 332,  +        "pk": 252,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "year",  -            "column": 308,  -            "formater_type": 14,  -            "concat_str": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 227,  +            "formater_type": 28,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 251,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 226,  +            "formater_type": 35,  +            "concat_str": "-",               "regexp_filter": null,               "concat": false,               "force_new": false @@ -3632,48 +3762,20 @@          }      },       { -        "pk": 384,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "find__comment",  -            "column": 360,  -            "formater_type": 35,  -            "concat_str": "",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": false -        } -    },  -    { -        "pk": 385,  +        "pk": 38,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__dating_comment",  -            "column": 361,  -            "formater_type": 35,  -            "concat_str": "",  +            "target": "base_finds__label",  +            "column": 37,  +            "formater_type": 3,  +            "concat_str": null,               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 388,  -        "model": "ishtar_common.importtarget",  -        "fields": { -            "comment": "",  -            "target": "find__datings__period",  -            "column": 364,  -            "formater_type": 6,  -            "concat_str": "",  -            "regexp_filter": null,  -            "concat": false,  -            "force_new": true -        } -    },  -    {          "pk": 342,           "model": "ishtar_common.importtarget",           "fields": { @@ -3814,13 +3916,209 @@          }      },       { -        "pk": 368,  +        "pk": 40,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "material_types",  +            "column": 39,  +            "formater_type": 20,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 41,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "find_number",  +            "column": 40,  +            "formater_type": 1,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 42,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "weight",  +            "column": 41,  +            "formater_type": 21,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 43,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "weight_unit",  +            "column": 42,  +            "formater_type": 7,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 45,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "base_finds__discovery_date",  +            "column": 44,  +            "formater_type": 5,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 46,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "conservatory_state",  +            "column": 45,  +            "formater_type": 22,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 47,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "batch",  -            "column": 344,  -            "formater_type": 48,  +            "target": "preservation_to_considers",  +            "column": 46,  +            "formater_type": 23,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 48,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__comment",  +            "column": 47,  +            "formater_type": 35,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 253,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "datings__period",  +            "column": 228,  +            "formater_type": 6,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": true +        } +    },  +    { +        "pk": 49,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "base_finds__topographic_localisation",  +            "column": 48,  +            "formater_type": 3,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 50,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "base_finds__special_interest",  +            "column": 49,  +            "formater_type": 3,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 51,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": null,  +            "target": "base_finds__description",  +            "column": 50,  +            "formater_type": 16,  +            "concat_str": null,  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 329,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "external_id",  +            "column": 305,  +            "formater_type": 11,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 395,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "relation_type",  +            "column": 370,  +            "formater_type": 49,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 394,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "left_record__external_id",  +            "column": 369,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3828,11 +4126,39 @@          }      },       { +        "pk": 297,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "archaeological_sites__reference",  +            "column": 271,  +            "formater_type": 45,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 336,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "parcel__external_id",  +            "column": 312,  +            "formater_type": 11,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 366,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__previous_id",  +            "target": "previous_id",               "column": 341,               "formater_type": 3,               "concat_str": "",  @@ -3846,7 +4172,7 @@          "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__is_complete",  +            "target": "is_complete",               "column": 345,               "formater_type": 19,               "concat_str": "",  @@ -3856,13 +4182,13 @@          }      },       { -        "pk": 378,  +        "pk": 372,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__width",  -            "column": 354,  -            "formater_type": 21,  +            "target": "conservatory_comment",  +            "column": 348,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3874,7 +4200,7 @@          "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__integrities",  +            "target": "integrities",               "column": 351,               "formater_type": 43,               "concat_str": "",  @@ -3884,11 +4210,25 @@          }      },       { +        "pk": 378,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "width",  +            "column": 354,  +            "formater_type": 21,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 380,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__diameter",  +            "target": "diameter",               "column": 356,               "formater_type": 21,               "concat_str": "",  @@ -3898,11 +4238,25 @@          }      },       { +        "pk": 383,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "mark",  +            "column": 359,  +            "formater_type": 35,  +            "concat_str": "",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    {          "pk": 386,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__estimated_value",  +            "target": "estimated_value",               "column": 362,               "formater_type": 21,               "concat_str": "",  @@ -3912,13 +4266,13 @@          }      },       { -        "pk": 297,  +        "pk": 398,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "archaeological_sites__reference",  -            "column": 271,  -            "formater_type": 45,  +            "target": "container__responsible__external_id",  +            "column": 373,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -3926,14 +4280,14 @@          }      },       { -        "pk": 336,  +        "pk": 400,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "parcel__external_id",  -            "column": 312,  -            "formater_type": 11,  -            "concat_str": "-",  +            "target": "container__container_type",  +            "column": 375,  +            "formater_type": 50,  +            "concat_str": "",               "regexp_filter": null,               "concat": false,               "force_new": false @@ -3944,7 +4298,7 @@          "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__label",  +            "target": "label",               "column": 229,               "formater_type": 3,               "concat_str": "",  @@ -3954,12 +4308,12 @@          }      },       { -        "pk": 372,  +        "pk": 396,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__conservatory_comment",  -            "column": 348,  +            "target": "right_record__external_id",  +            "column": 371,               "formater_type": 35,               "concat_str": "",               "regexp_filter": null,  @@ -3968,55 +4322,69 @@          }      },       { -        "pk": 383,  +        "pk": 361,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__mark",  -            "column": 359,  -            "formater_type": 35,  -            "concat_str": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 336,  +            "formater_type": 11,  +            "concat_str": "-",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 295,  +        "pk": 362,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "associated_file__external_id",  -            "column": 270,  +            "target": "base_finds__context_record__external_id",  +            "column": 337,  +            "formater_type": 28,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 363,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 338,               "formater_type": 35,  -            "concat_str": "",  +            "concat_str": "-",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 310,  +        "pk": 364,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "excavation_end_date",  -            "column": 286,  -            "formater_type": 25,  -            "concat_str": "",  +            "target": "base_finds__context_record__external_id",  +            "column": 339,  +            "formater_type": 3,  +            "concat_str": "-",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 313,  +        "pk": 389,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "negative_result",  -            "column": 289,  -            "formater_type": 19,  +            "target": "base_finds__topographic_localisation",  +            "column": 343,  +            "formater_type": 3,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4024,13 +4392,13 @@          }      },       { -        "pk": 319,  +        "pk": 367,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "finds_deadline",  -            "column": 295,  -            "formater_type": 25,  +            "target": "description",  +            "column": 342,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4038,13 +4406,13 @@          }      },       { -        "pk": 322,  +        "pk": 370,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "report_delivery_date",  -            "column": 298,  -            "formater_type": 25,  +            "target": "material_types",  +            "column": 346,  +            "formater_type": 20,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4052,13 +4420,13 @@          }      },       { -        "pk": 327,  +        "pk": 373,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "code_patriarche",  -            "column": 303,  -            "formater_type": 1,  +            "target": "object_types",  +            "column": 349,  +            "formater_type": 26,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4066,13 +4434,13 @@          }      },       { -        "pk": 330,  +        "pk": 376,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "section",  -            "column": 306,  -            "formater_type": 7,  +            "target": "remarkabilities",  +            "column": 352,  +            "formater_type": 44,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4080,13 +4448,13 @@          }      },       { -        "pk": 333,  +        "pk": 381,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "address",  -            "column": 309,  -            "formater_type": 10,  +            "target": "dimensions_comment",  +            "column": 357,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4094,13 +4462,13 @@          }      },       { -        "pk": 292,  +        "pk": 397,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "year",  -            "column": 267,  -            "formater_type": 14,  +            "target": "weight",  +            "column": 372,  +            "formater_type": 21,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4108,13 +4476,13 @@          }      },       { -        "pk": 337,  +        "pk": 387,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "parcel__year",  -            "column": 313,  -            "formater_type": 14,  +            "target": "image",  +            "column": 363,  +            "formater_type": 27,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4122,13 +4490,13 @@          }      },       { -        "pk": 340,  +        "pk": 390,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "unit",  -            "column": 315,  -            "formater_type": 18,  +            "target": "base_finds__x",  +            "column": 365,  +            "formater_type": 21,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4136,12 +4504,12 @@          }      },       { -        "pk": 343,  +        "pk": 391,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "length",  -            "column": 318,  +            "target": "base_finds__y",  +            "column": 366,               "formater_type": 21,               "concat_str": "",               "regexp_filter": null,  @@ -4150,12 +4518,12 @@          }      },       { -        "pk": 346,  +        "pk": 392,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "depth",  -            "column": 321,  +            "target": "base_finds__z",  +            "column": 367,               "formater_type": 21,               "concat_str": "",               "regexp_filter": null,  @@ -4164,13 +4532,13 @@          }      },       { -        "pk": 301,  +        "pk": 393,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "scientist__attached_to__name",  -            "column": 277,  -            "formater_type": 30,  +            "target": "base_finds__spatial_reference_system",  +            "column": 368,  +            "formater_type": 46,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4178,13 +4546,13 @@          }      },       { -        "pk": 355,  +        "pk": 399,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "identification",  -            "column": 330,  -            "formater_type": 24,  +            "target": "container__reference",  +            "column": 374,  +            "formater_type": 17,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4192,12 +4560,26 @@          }      },       { -        "pk": 358,  +        "pk": 44,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "taq_estimated",  -            "column": 333,  +            "target": "base_finds__context_record__external_id",  +            "column": 43,  +            "formater_type": 3,  +            "concat_str": "-",  +            "regexp_filter": null,  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 327,  +        "model": "ishtar_common.importtarget",  +        "fields": { +            "comment": "",  +            "target": "operation__code_patriarche",  +            "column": 303,               "formater_type": 1,               "concat_str": "",               "regexp_filter": null,  @@ -4206,13 +4588,13 @@          }      },       { -        "pk": 370,  +        "pk": 295,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__material_types",  -            "column": 346,  -            "formater_type": 20,  +            "target": "associated_file__external_id",  +            "column": 270,  +            "formater_type": 35,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4220,13 +4602,13 @@          }      },       { -        "pk": 373,  +        "pk": 310,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__object_types",  -            "column": 349,  -            "formater_type": 26,  +            "target": "excavation_end_date",  +            "column": 286,  +            "formater_type": 25,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4234,13 +4616,13 @@          }      },       { -        "pk": 376,  +        "pk": 313,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__remarkabilities",  -            "column": 352,  -            "formater_type": 44,  +            "target": "negative_result",  +            "column": 289,  +            "formater_type": 19,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4248,13 +4630,13 @@          }      },       { -        "pk": 387,  +        "pk": 319,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__image",  -            "column": 363,  -            "formater_type": 27,  +            "target": "finds_deadline",  +            "column": 295,  +            "formater_type": 25,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4262,69 +4644,69 @@          }      },       { -        "pk": 361,  +        "pk": 322,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "context_record__external_id",  -            "column": 336,  -            "formater_type": 11,  -            "concat_str": "-",  +            "target": "report_delivery_date",  +            "column": 298,  +            "formater_type": 25,  +            "concat_str": "",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 362,  +        "pk": 330,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "context_record__external_id",  -            "column": 337,  -            "formater_type": 28,  -            "concat_str": "-",  +            "target": "section",  +            "column": 306,  +            "formater_type": 7,  +            "concat_str": "",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 363,  +        "pk": 333,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "context_record__external_id",  -            "column": 338,  -            "formater_type": 35,  -            "concat_str": "-",  +            "target": "address",  +            "column": 309,  +            "formater_type": 10,  +            "concat_str": "",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 364,  +        "pk": 292,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "context_record__external_id",  -            "column": 339,  -            "formater_type": 3,  -            "concat_str": "-",  +            "target": "year",  +            "column": 267,  +            "formater_type": 14,  +            "concat_str": "",               "regexp_filter": null,               "concat": false,               "force_new": false          }      },       { -        "pk": 389,  +        "pk": 337,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "topographic_localisation",  -            "column": 343,  -            "formater_type": 3,  +            "target": "parcel__year",  +            "column": 313,  +            "formater_type": 14,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4332,13 +4714,13 @@          }      },       { -        "pk": 367,  +        "pk": 340,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__description",  -            "column": 342,  -            "formater_type": 35,  +            "target": "unit",  +            "column": 315,  +            "formater_type": 18,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4346,13 +4728,13 @@          }      },       { -        "pk": 381,  +        "pk": 343,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "find__dimensions_comment",  -            "column": 357,  -            "formater_type": 35,  +            "target": "length",  +            "column": 318,  +            "formater_type": 21,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4360,12 +4742,12 @@          }      },       { -        "pk": 390,  +        "pk": 346,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "x",  -            "column": 365,  +            "target": "depth",  +            "column": 321,               "formater_type": 21,               "concat_str": "",               "regexp_filter": null,  @@ -4374,13 +4756,13 @@          }      },       { -        "pk": 391,  +        "pk": 301,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "y",  -            "column": 366,  -            "formater_type": 21,  +            "target": "scientist__attached_to__name",  +            "column": 277,  +            "formater_type": 30,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4388,13 +4770,13 @@          }      },       { -        "pk": 392,  +        "pk": 355,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "z",  -            "column": 367,  -            "formater_type": 21,  +            "target": "identification",  +            "column": 330,  +            "formater_type": 24,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4402,13 +4784,13 @@          }      },       { -        "pk": 393,  +        "pk": 358,           "model": "ishtar_common.importtarget",           "fields": {              "comment": "",  -            "target": "spatial_reference_system",  -            "column": 368,  -            "formater_type": 46,  +            "target": "taq_estimated",  +            "column": 333,  +            "formater_type": 1,               "concat_str": "",               "regexp_filter": null,               "concat": false,  @@ -4490,8 +4872,8 @@          "model": "ishtar_common.formatertype",           "fields": {              "formater_type": "DateFormater",  -            "many_split": "",  -            "options": "%d/%m/%Y" +            "many_split": " | ",  +            "options": "%d/%m/%Y | %Y-%m-%d"          }      },       { @@ -4558,6 +4940,15 @@          }      },       { +        "pk": 49,  +        "model": "ishtar_common.formatertype",  +        "fields": { +            "formater_type": "TypeFormater",  +            "many_split": "",  +            "options": "archaeological_context_records.models.RelationType" +        } +    },  +    {          "pk": 18,           "model": "ishtar_common.formatertype",           "fields": { @@ -4684,6 +5075,15 @@          }      },       { +        "pk": 50,  +        "model": "ishtar_common.formatertype",  +        "fields": { +            "formater_type": "TypeFormater",  +            "many_split": "",  +            "options": "archaeological_warehouse.models.ContainerType" +        } +    },  +    {          "pk": 15,           "model": "ishtar_common.formatertype",           "fields": { @@ -4911,17 +5311,6 @@          }      },       { -        "pk": 1,  -        "model": "ishtar_common.importerduplicatefield",  -        "fields": { -            "column": 37,  -            "concat_str": null,  -            "field_name": "find__label",  -            "concat": false,  -            "force_new": false -        } -    },  -    {          "pk": 15,           "model": "ishtar_common.importerduplicatefield",           "fields": { @@ -4999,21 +5388,21 @@          }      },       { -        "pk": 21,  +        "pk": 34,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 36,  -            "concat_str": "-",  +            "column": 303,  +            "concat_str": "",               "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 22,  +        "pk": 33,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 227,  +            "column": 304,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5021,21 +5410,21 @@          }      },       { -        "pk": 23,  +        "pk": 31,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 226,  +            "column": 302,               "concat_str": "-",  -            "field_name": "external_id",  +            "field_name": "parcel__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 24,  +        "pk": 32,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 43,  +            "column": 302,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5043,10 +5432,10 @@          }      },       { -        "pk": 3,  +        "pk": 35,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 37,  +            "column": 311,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5054,109 +5443,109 @@          }      },       { -        "pk": 29,  +        "pk": 36,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 36,  +            "column": 312,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 28,  +        "pk": 37,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 227,  +            "column": 314,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 27,  +        "pk": 38,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 226,  +            "column": 336,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 26,  +        "pk": 39,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 43,  +            "column": 336,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 25,  +        "pk": 40,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 37,  +            "column": 337,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 34,  +        "pk": 41,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 303,  -            "concat_str": "",  +            "column": 337,  +            "concat_str": "-",               "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 33,  +        "pk": 42,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 304,  +            "column": 338,               "concat_str": "-",  -            "field_name": "external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 31,  +        "pk": 43,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 302,  +            "column": 338,               "concat_str": "-",  -            "field_name": "parcel__external_id",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 32,  +        "pk": 44,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 302,  +            "column": 339,               "concat_str": "-",  -            "field_name": "external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 35,  +        "pk": 45,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 311,  +            "column": 339,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5164,32 +5553,32 @@          }      },       { -        "pk": 36,  +        "pk": 46,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 312,  -            "concat_str": "-",  -            "field_name": "external_id",  +            "column": 340,  +            "concat_str": "",  +            "field_name": "label",               "concat": false,               "force_new": false          }      },       { -        "pk": 37,  +        "pk": 47,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 314,  +            "column": 340,               "concat_str": "-",  -            "field_name": "external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 38,  +        "pk": 48,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 336,  +            "column": 340,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5197,21 +5586,54 @@          }      },       { -        "pk": 39,  +        "pk": 49,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 336,  +            "column": 373,  +            "concat_str": "",  +            "field_name": "container__location__external_id",  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 50,  +        "model": "ishtar_common.importerduplicatefield",  +        "fields": { +            "column": 373,  +            "concat_str": "",  +            "field_name": "container__external_id",  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 51,  +        "model": "ishtar_common.importerduplicatefield",  +        "fields": { +            "column": 374,  +            "concat_str": "",  +            "field_name": "container__external_id",  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 21,  +        "model": "ishtar_common.importerduplicatefield",  +        "fields": { +            "column": 36,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 40,  +        "pk": 29,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 337,  +            "column": 36,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5219,21 +5641,21 @@          }      },       { -        "pk": 41,  +        "pk": 22,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 337,  +            "column": 227,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 42,  +        "pk": 28,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 338,  +            "column": 227,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5241,21 +5663,21 @@          }      },       { -        "pk": 43,  +        "pk": 23,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 338,  +            "column": 226,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 44,  +        "pk": 27,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 339,  +            "column": 226,               "concat_str": "-",               "field_name": "external_id",               "concat": false,  @@ -5263,47 +5685,58 @@          }      },       { -        "pk": 45,  +        "pk": 24,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 339,  +            "column": 43,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 46,  +        "pk": 26,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 340,  -            "concat_str": "",  -            "field_name": "find__label",  +            "column": 43,  +            "concat_str": "-",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 47,  +        "pk": 1,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 340,  +            "column": 37,  +            "concat_str": null,  +            "field_name": "label",  +            "concat": false,  +            "force_new": false +        } +    },  +    { +        "pk": 3,  +        "model": "ishtar_common.importerduplicatefield",  +        "fields": { +            "column": 37,               "concat_str": "-",  -            "field_name": "external_id",  +            "field_name": "base_finds__external_id",               "concat": false,               "force_new": false          }      },       { -        "pk": 48,  +        "pk": 25,           "model": "ishtar_common.importerduplicatefield",           "fields": { -            "column": 340,  +            "column": 37,               "concat_str": "-",  -            "field_name": "find__external_id",  +            "field_name": "external_id",               "concat": false,               "force_new": false          }      } -] +]
\ No newline at end of file diff --git a/ishtar_common/forms_common.py b/ishtar_common/forms_common.py index e2c0e5db5..0ce87025c 100644 --- a/ishtar_common/forms_common.py +++ b/ishtar_common/forms_common.py @@ -370,7 +370,7 @@ class SimplePersonForm(ManageOldType, NewItemForm):      form_label = _("Identity")      associated_models = {'attached_to': models.Organization,                           'title': models.TitleType} -    title = forms.ChoiceField(label=_("Title"), choices=[]) +    title = forms.ChoiceField(label=_("Title"), choices=[], required=False)      salutation = forms.CharField(label=_("Salutation"), max_length=200,                                   required=False)      surname = forms.CharField(label=_(u"Surname"), max_length=50, diff --git a/ishtar_common/locale/django.pot b/ishtar_common/locale/django.pot index 207642972..c345672b7 100644 --- a/ishtar_common/locale/django.pot +++ b/ishtar_common/locale/django.pot @@ -25,125 +25,125 @@ msgstr ""  msgid "Export selected as CSV file"  msgstr "" -#: data_importer.py:186 +#: data_importer.py:192  #, python-format  msgid "\"%(value)s\" is too long. The max length is %(length)d characters."  msgstr "" -#: data_importer.py:203 +#: data_importer.py:209  #, python-format  msgid "\"%(value)s\" not equal to yes or no"  msgstr "" -#: data_importer.py:215 +#: data_importer.py:221  #, python-format  msgid "\"%(value)s\" is not a float"  msgstr "" -#: data_importer.py:228 data_importer.py:242 data_importer.py:495 +#: data_importer.py:234 data_importer.py:248 data_importer.py:502  #, python-format  msgid "\"%(value)s\" is not a valid date"  msgstr "" -#: data_importer.py:255 +#: data_importer.py:261  #, python-format  msgid "\"%(value)s\" is not an integer"  msgstr "" -#: data_importer.py:312 data_importer.py:560 +#: data_importer.py:318 data_importer.py:567  #, python-format  msgid "Choice for \"%s\" is not available. Which one is relevant?\n"  msgstr "" -#: data_importer.py:319 +#: data_importer.py:325  #, python-format  msgid "%d. None of the above - create new"  msgstr "" -#: data_importer.py:322 +#: data_importer.py:328  #, python-format  msgid "%d. None of the above - skip"  msgstr "" -#: data_importer.py:521 +#: data_importer.py:528  #, python-format  msgid "\"%(value)s\" is not a valid path for the given archive"  msgstr "" -#: data_importer.py:637 +#: data_importer.py:644  msgid ""  "The given file is not correct. Check the file format. If you use a CSV file: "  "check that column separator and encoding are similar to the ones used by the "  "reference file."  msgstr "" -#: data_importer.py:641 +#: data_importer.py:648  #, python-format  msgid "Too many cols (%(user_col)d) when maximum is %(ref_col)d"  msgstr "" -#: data_importer.py:643 +#: data_importer.py:650  msgid "No data provided"  msgstr "" -#: data_importer.py:644 +#: data_importer.py:651  msgid "Value is required"  msgstr "" -#: data_importer.py:645 +#: data_importer.py:652  #, python-format  msgid "At least %d columns must be filled"  msgstr "" -#: data_importer.py:646 +#: data_importer.py:653  msgid "The regexp doesn't match."  msgstr "" -#: data_importer.py:648 +#: data_importer.py:655  msgid ""  "Forced creation is set for model {} but this model is not in the list of "  "models allowed to be created."  msgstr "" -#: data_importer.py:650 +#: data_importer.py:657  msgid ""  "{} with values {} doesn't exist in the database. Create it first or fix your "  "source file."  msgstr "" -#: data_importer.py:1103 +#: data_importer.py:1110  msgid "Not imported"  msgstr "" -#: data_importer.py:1240 +#: data_importer.py:1247  msgid "Importer configuration error: field \"{}\" does not exist for {}."  msgstr "" -#: data_importer.py:1548 +#: data_importer.py:1555  msgid "line"  msgstr "" -#: data_importer.py:1548 +#: data_importer.py:1555  msgid "col"  msgstr "" -#: data_importer.py:1548 +#: data_importer.py:1555  msgid "error"  msgstr "" -#: data_importer.py:1554 +#: data_importer.py:1561  msgid "field"  msgstr "" -#: data_importer.py:1554 +#: data_importer.py:1561  msgid "source"  msgstr "" -#: data_importer.py:1554 +#: data_importer.py:1561  msgid "result"  msgstr "" -#: data_importer.py:1570 +#: data_importer.py:1577  #, python-format  msgid "\"%(value)s\" not in %(values)s"  msgstr "" @@ -181,7 +181,7 @@ msgid "Template"  msgstr ""  #: forms_common.py:41 forms_common.py:59 forms_common.py:184 -#: forms_common.py:408 models.py:1548 models.py:2977 +#: forms_common.py:408 models.py:1548 models.py:2986  #: templates/blocks/JQueryAdvancedTown.html:19  #: templates/ishtar/sheet_organization.html:13  msgid "Town" @@ -197,8 +197,8 @@ msgid ""  "french town Saint-Denis in the Seine-Saint-Denis department.</p>"  msgstr "" -#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2599 -#: models.py:2781 models.py:2845 templates/ishtar/sheet_person.html:4 +#: forms_common.py:68 forms_common.py:863 ishtar_menu.py:47 models.py:2609 +#: models.py:2790 models.py:2854 templates/ishtar/sheet_person.html:4  msgid "Person"  msgstr "" @@ -209,20 +209,20 @@ msgid ""  msgstr ""  #: forms_common.py:172 forms_common.py:329 forms_common.py:453 -#: ishtar_menu.py:75 models.py:2482 models.py:2573 +#: ishtar_menu.py:75 models.py:2492 models.py:2583  #: templates/ishtar/sheet_organization.html:4  msgid "Organization"  msgstr ""  #: forms_common.py:175 forms_common.py:212 forms_common.py:324  #: forms_common.py:378 forms_common.py:448 models.py:1103 models.py:1481 -#: models.py:1749 models.py:1765 models.py:1993 models.py:2476 models.py:2585 -#: models.py:2963 templates/ishtar/sheet_organization.html:8 +#: models.py:1750 models.py:1766 models.py:2003 models.py:2486 models.py:2595 +#: models.py:2972 templates/ishtar/sheet_organization.html:8  #: templates/ishtar/sheet_organization.html:21  msgid "Name"  msgstr "" -#: forms_common.py:176 models.py:1703 models.py:2124 +#: forms_common.py:176 models.py:1703 models.py:2134  msgid "Organization type"  msgstr "" @@ -264,8 +264,8 @@ msgstr ""  msgid "Mobile phone"  msgstr "" -#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2160 -#: models.py:2478 models.py:2898 templates/sheet_ope.html:85 +#: forms_common.py:213 forms_common.py:327 forms_common.py:451 models.py:2170 +#: models.py:2488 models.py:2907 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 @@ -289,7 +289,7 @@ msgstr ""  msgid "Organization to merge"  msgstr "" -#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2583 +#: forms_common.py:325 forms_common.py:376 forms_common.py:449 models.py:2593  #: templates/ishtar/sheet_organization.html:22  msgid "Surname"  msgstr "" @@ -307,17 +307,17 @@ msgstr ""  msgid "Identity"  msgstr "" -#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2125 -#: models.py:2577 models.py:2579 models.py:2895 templates/sheet_ope.html:104 +#: forms_common.py:373 forms_common.py:781 forms_common.py:830 models.py:2135 +#: models.py:2587 models.py:2589 models.py:2904 templates/sheet_ope.html:104  #: templates/ishtar/blocks/window_tables/documents.html:7  msgid "Title"  msgstr "" -#: forms_common.py:374 models.py:2581 +#: forms_common.py:374 models.py:2591  msgid "Salutation"  msgstr "" -#: forms_common.py:380 models.py:2587 +#: forms_common.py:380 models.py:2597  msgid "Raw name"  msgstr "" @@ -377,7 +377,7 @@ msgstr ""  msgid "Account search"  msgstr "" -#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2530 +#: forms_common.py:512 forms_common.py:552 forms_common.py:556 models.py:2540  msgid "Person type"  msgstr "" @@ -385,7 +385,7 @@ msgstr ""  msgid "Account"  msgstr "" -#: forms_common.py:577 wizards.py:1305 +#: forms_common.py:577 wizards.py:1333  msgid "New password"  msgstr "" @@ -409,7 +409,7 @@ msgstr ""  msgid "Send the new password by email?"  msgstr "" -#: forms_common.py:636 forms_common.py:649 models.py:2978 +#: forms_common.py:636 forms_common.py:649 models.py:2987  msgid "Towns"  msgstr "" @@ -425,7 +425,7 @@ msgstr ""  msgid "Documentation informations"  msgstr "" -#: forms_common.py:783 forms_common.py:831 models.py:2126 models.py:2870 +#: forms_common.py:783 forms_common.py:831 models.py:2136 models.py:2879  msgid "Source type"  msgstr "" @@ -437,37 +437,37 @@ msgstr ""  msgid "Internal reference"  msgstr "" -#: forms_common.py:791 models.py:2909 +#: forms_common.py:791 models.py:2918  msgid "Numerical ressource (web address)"  msgstr "" -#: forms_common.py:792 models.py:2911 +#: forms_common.py:792 models.py:2920  msgid "Receipt date"  msgstr "" -#: forms_common.py:794 models.py:2292 models.py:2913 +#: forms_common.py:794 models.py:2302 models.py:2922  msgid "Creation date"  msgstr "" -#: forms_common.py:797 models.py:2916 +#: forms_common.py:797 models.py:2925  msgid "Receipt date in documentation"  msgstr ""  #: forms_common.py:799 forms_common.py:835 models.py:379 models.py:696 -#: models.py:2020 models.py:2591 models.py:2923 +#: models.py:2030 models.py:2601 models.py:2932  msgid "Comment"  msgstr "" -#: forms_common.py:801 forms_common.py:834 models.py:1105 models.py:1769 -#: models.py:1952 models.py:1994 models.py:2922 templates/sheet_ope.html:128 +#: forms_common.py:801 forms_common.py:834 models.py:1105 models.py:1770 +#: models.py:1957 models.py:2004 models.py:2931 templates/sheet_ope.html:128  msgid "Description"  msgstr "" -#: forms_common.py:804 models.py:2924 +#: forms_common.py:804 models.py:2933  msgid "Additional information"  msgstr "" -#: forms_common.py:806 forms_common.py:838 models.py:2926 +#: forms_common.py:806 forms_common.py:838 models.py:2935  msgid "Has a duplicate"  msgstr "" @@ -482,7 +482,7 @@ msgid ""  "p>"  msgstr "" -#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2850 +#: forms_common.py:827 forms_common.py:856 forms_common.py:890 models.py:2859  #: templates/ishtar/wizard/wizard_person_deletion.html:124  msgid "Author"  msgstr "" @@ -495,7 +495,7 @@ msgstr ""  msgid "Would you like to delete this documentation?"  msgstr "" -#: forms_common.py:864 models.py:2127 models.py:2837 models.py:2847 +#: forms_common.py:864 models.py:2137 models.py:2846 models.py:2856  msgid "Author type"  msgstr "" @@ -507,7 +507,7 @@ msgstr ""  msgid "There are identical authors."  msgstr "" -#: forms_common.py:901 models.py:2851 models.py:2905 +#: forms_common.py:901 models.py:2860 models.py:2914  #: templates/sheet_ope.html:106  #: templates/ishtar/blocks/window_tables/documents.html:9  msgid "Authors" @@ -525,7 +525,7 @@ msgstr ""  msgid "Deletion"  msgstr "" -#: ishtar_menu.py:39 models.py:1277 views.py:1574 +#: ishtar_menu.py:39 models.py:1277 views.py:1606  msgid "Global variables"  msgstr "" @@ -553,19 +553,19 @@ msgstr ""  msgid "Manual merge"  msgstr "" -#: ishtar_menu.py:109 models.py:2303 +#: ishtar_menu.py:109 models.py:2313  msgid "Imports"  msgstr "" -#: ishtar_menu.py:112 views.py:1582 +#: ishtar_menu.py:112 views.py:1614  msgid "New import"  msgstr "" -#: ishtar_menu.py:116 views.py:1596 +#: ishtar_menu.py:116 views.py:1628  msgid "Current imports"  msgstr "" -#: ishtar_menu.py:120 views.py:1632 +#: ishtar_menu.py:120 views.py:1664  msgid "Old imports"  msgstr "" @@ -581,7 +581,7 @@ msgstr ""  msgid "This item already exists."  msgstr "" -#: models.py:375 models.py:695 models.py:1516 models.py:1528 models.py:1949 +#: models.py:375 models.py:695 models.py:1516 models.py:1528 models.py:1954  msgid "Label"  msgstr "" @@ -593,7 +593,7 @@ msgstr ""  msgid "Available"  msgstr "" -#: models.py:722 models.py:2066 +#: models.py:722 models.py:2076  msgid "Key"  msgstr "" @@ -609,7 +609,7 @@ msgstr ""  msgid "Creator"  msgstr "" -#: models.py:965 models.py:2989 models.py:3045 +#: models.py:965 models.py:2998 models.py:3054  msgid "Order"  msgstr "" @@ -633,7 +633,7 @@ msgstr ""  msgid "US dollar"  msgstr "" -#: models.py:1104 models.py:1767 +#: models.py:1104 models.py:1768  msgid "Slug"  msgstr "" @@ -812,7 +812,7 @@ msgstr ""  msgid "Description of the variable"  msgstr "" -#: models.py:1273 models.py:2067 +#: models.py:1273 models.py:2077  msgid "Value"  msgstr "" @@ -848,7 +848,7 @@ msgstr ""  msgid "Document templates"  msgstr "" -#: models.py:1520 models.py:1530 models.py:2287 +#: models.py:1520 models.py:1530 models.py:2297  msgid "State"  msgstr "" @@ -888,577 +888,587 @@ msgstr ""  msgid "Organization types"  msgstr "" -#: models.py:1750 +#: models.py:1751  msgid "Class name"  msgstr "" -#: models.py:1753 +#: models.py:1754  msgid "Importer - Model"  msgstr "" -#: models.py:1754 +#: models.py:1755  msgid "Importer - Models"  msgstr "" -#: models.py:1771 templates/ishtar/dashboards/dashboard_main.html:25 +#: models.py:1772 templates/ishtar/dashboards/dashboard_main.html:25  msgid "Users"  msgstr "" -#: models.py:1774 +#: models.py:1775  msgid "Associated model"  msgstr "" -#: models.py:1777 +#: models.py:1778  msgid "Models that can accept new items"  msgstr "" -#: models.py:1778 +#: models.py:1779  msgid "Leave blank for no restrictions"  msgstr "" -#: models.py:1780 +#: models.py:1781  msgid "Is template"  msgstr "" -#: models.py:1781 +#: models.py:1782  msgid "Unicity keys (separator \";\")"  msgstr "" -#: models.py:1785 +#: models.py:1786  msgid "Importer - Type"  msgstr "" -#: models.py:1786 +#: models.py:1787  msgid "Importer - Types"  msgstr "" -#: models.py:1881 +#: models.py:1886  msgid "Importer - Default"  msgstr "" -#: models.py:1882 +#: models.py:1887  msgid "Importer - Defaults"  msgstr "" -#: models.py:1917 +#: models.py:1922  msgid "Importer - Default value"  msgstr "" -#: models.py:1918 +#: models.py:1923  msgid "Importer - Default values"  msgstr "" -#: models.py:1951 +#: models.py:1956  msgid "Column number"  msgstr "" -#: models.py:1954 +#: models.py:1959  msgid "Required"  msgstr "" -#: models.py:1957 +#: models.py:1961 +msgid "Export field name" +msgstr "" + +#: models.py:1962 +msgid "" +"Fill this field if the field name is ambiguous for export. For instance: " +"concatenated fields." +msgstr "" + +#: models.py:1967  msgid "Importer - Column"  msgstr "" -#: models.py:1958 +#: models.py:1968  msgid "Importer - Columns"  msgstr "" -#: models.py:1978 +#: models.py:1988  msgid "Field name"  msgstr "" -#: models.py:1980 models.py:2014 +#: models.py:1990 models.py:2024  msgid "Force creation of new items"  msgstr "" -#: models.py:1982 models.py:2016 +#: models.py:1992 models.py:2026  msgid "Concatenate with existing"  msgstr "" -#: models.py:1984 models.py:2018 +#: models.py:1994 models.py:2028  msgid "Concatenate character"  msgstr "" -#: models.py:1988 +#: models.py:1998  msgid "Importer - Duplicate field"  msgstr "" -#: models.py:1989 +#: models.py:1999  msgid "Importer - Duplicate fields"  msgstr "" -#: models.py:1996 +#: models.py:2006  msgid "Regular expression"  msgstr "" -#: models.py:1999 +#: models.py:2009  msgid "Importer - Regular expression"  msgstr "" -#: models.py:2000 +#: models.py:2010  msgid "Importer - Regular expressions"  msgstr "" -#: models.py:2023 +#: models.py:2033  msgid "Importer - Target"  msgstr "" -#: models.py:2024 +#: models.py:2034  msgid "Importer - Targets"  msgstr "" -#: models.py:2048 views.py:549 +#: models.py:2058 views.py:549  msgid "True"  msgstr "" -#: models.py:2049 views.py:551 +#: models.py:2059 views.py:551  msgid "False"  msgstr "" -#: models.py:2068 +#: models.py:2078  msgid "Is set"  msgstr "" -#: models.py:2075 +#: models.py:2085  msgid "Importer - Target key"  msgstr "" -#: models.py:2076 +#: models.py:2086  msgid "Importer - Targets keys"  msgstr "" -#: models.py:2128 models.py:2901 +#: models.py:2138 models.py:2910  msgid "Format"  msgstr "" -#: models.py:2129 models.py:2993 +#: models.py:2139 models.py:3002  msgid "Operation type"  msgstr "" -#: models.py:2130 +#: models.py:2140  msgid "Period"  msgstr "" -#: models.py:2131 +#: models.py:2141  msgid "Report state"  msgstr "" -#: models.py:2132 +#: models.py:2142  msgid "Remain type"  msgstr "" -#: models.py:2133 +#: models.py:2143  msgid "Unit"  msgstr "" -#: models.py:2134 +#: models.py:2144  msgid "Activity type"  msgstr "" -#: models.py:2135 +#: models.py:2145  msgid "Material"  msgstr "" -#: models.py:2137 +#: models.py:2147  msgid "Conservatory state"  msgstr "" -#: models.py:2138 +#: models.py:2148  msgid "Container type"  msgstr "" -#: models.py:2139 +#: models.py:2149  msgid "Preservation type"  msgstr "" -#: models.py:2140 +#: models.py:2150  msgid "Object type"  msgstr "" -#: models.py:2141 +#: models.py:2151  msgid "Integrity type"  msgstr "" -#: models.py:2142 +#: models.py:2152  msgid "Remarkability type"  msgstr "" -#: models.py:2143 +#: models.py:2153  msgid "Batch type"  msgstr "" -#: models.py:2145 +#: models.py:2155  msgid "Identification type"  msgstr "" -#: models.py:2147 +#: models.py:2157  msgid "Context record relation type"  msgstr "" -#: models.py:2148 models.py:3051 +#: models.py:2158 models.py:3060  msgid "Spatial reference system"  msgstr "" -#: models.py:2149 models.py:2879 +#: models.py:2159 models.py:2888  msgid "Support type"  msgstr "" -#: models.py:2150 models.py:2542 +#: models.py:2160 models.py:2552  msgid "Title type"  msgstr "" -#: models.py:2156 +#: models.py:2166  msgid "Integer"  msgstr "" -#: models.py:2157 +#: models.py:2167  msgid "Float"  msgstr "" -#: models.py:2158 +#: models.py:2168  msgid "String"  msgstr "" -#: models.py:2159 templates/sheet_ope.html:86 +#: models.py:2169 templates/sheet_ope.html:86  msgid "Date"  msgstr "" -#: models.py:2161 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83 +#: models.py:2171 templates/sheet_ope.html:61 templates/sheet_ope.html.py:83  #: templates/ishtar/dashboards/dashboard_main_detail.html:126  msgid "Year"  msgstr "" -#: models.py:2162 +#: models.py:2172  msgid "String to boolean"  msgstr "" -#: models.py:2163 +#: models.py:2173  msgctxt "filesystem"  msgid "File"  msgstr "" -#: models.py:2164 +#: models.py:2174  msgid "Unknow type"  msgstr "" -#: models.py:2180 +#: models.py:2190  msgid "4 digit year. e.g.: \"2015\""  msgstr "" -#: models.py:2181 +#: models.py:2191  msgid "4 digit year/month/day. e.g.: \"2015/02/04\""  msgstr "" -#: models.py:2182 +#: models.py:2192  msgid "Day/month/4 digit year. e.g.: \"04/02/2015\""  msgstr "" -#: models.py:2192 +#: models.py:2202  msgid "Options"  msgstr "" -#: models.py:2194 +#: models.py:2204  msgid "Split character(s)"  msgstr "" -#: models.py:2198 +#: models.py:2208  msgid "Importer - Formater type"  msgstr "" -#: models.py:2199 +#: models.py:2209  msgid "Importer - Formater types"  msgstr "" -#: models.py:2251 templates/ishtar/dashboards/dashboard_main_detail.html:63 +#: models.py:2261 templates/ishtar/dashboards/dashboard_main_detail.html:63  msgid "Created"  msgstr "" -#: models.py:2252 +#: models.py:2262  msgid "Analyse in progress"  msgstr "" -#: models.py:2253 +#: models.py:2263  msgid "Analysed"  msgstr "" -#: models.py:2254 +#: models.py:2264  msgid "Import pending"  msgstr "" -#: models.py:2255 +#: models.py:2265  msgid "Import in progress"  msgstr "" -#: models.py:2256 +#: models.py:2266  msgid "Finished with errors"  msgstr "" -#: models.py:2257 +#: models.py:2267  msgid "Finished"  msgstr "" -#: models.py:2258 +#: models.py:2268  msgid "Archived"  msgstr "" -#: models.py:2271 +#: models.py:2281  msgid "Imported file"  msgstr "" -#: models.py:2273 +#: models.py:2283  msgid "Associated images (zip file)"  msgstr "" -#: models.py:2275 +#: models.py:2285  msgid "Encoding"  msgstr "" -#: models.py:2277 +#: models.py:2287  msgid "Skip lines"  msgstr "" -#: models.py:2278 templates/ishtar/import_list.html:47 +#: models.py:2288 templates/ishtar/import_list.html:47  msgid "Error file"  msgstr "" -#: models.py:2281 +#: models.py:2291  msgid "Result file"  msgstr "" -#: models.py:2284 templates/ishtar/import_list.html:53 +#: models.py:2294 templates/ishtar/import_list.html:53  msgid "Match file"  msgstr "" -#: models.py:2290 +#: models.py:2300  msgid "Conservative import"  msgstr "" -#: models.py:2295 +#: models.py:2305  msgid "End date"  msgstr "" -#: models.py:2297 +#: models.py:2307  msgid "Remaining seconds"  msgstr "" -#: models.py:2302 +#: models.py:2312  msgid "Import"  msgstr "" -#: models.py:2332 +#: models.py:2342  msgid "Analyse"  msgstr "" -#: models.py:2334 models.py:2337 +#: models.py:2344 models.py:2347  msgid "Re-analyse"  msgstr "" -#: models.py:2335 +#: models.py:2345  msgid "Launch import"  msgstr "" -#: models.py:2338 +#: models.py:2348  msgid "Re-import"  msgstr "" -#: models.py:2339 +#: models.py:2349  msgid "Archive"  msgstr "" -#: models.py:2341 +#: models.py:2351  msgid "Unarchive"  msgstr "" -#: models.py:2342 widgets.py:130 templates/ishtar/form_delete.html:11 +#: models.py:2352 widgets.py:130 templates/ishtar/form_delete.html:11  msgid "Delete"  msgstr "" -#: models.py:2483 +#: models.py:2493  msgid "Organizations"  msgstr "" -#: models.py:2485 +#: models.py:2495  msgid "Can view all Organizations"  msgstr "" -#: models.py:2486 +#: models.py:2496  msgid "Can view own Organization"  msgstr "" -#: models.py:2487 +#: models.py:2497  msgid "Can add own Organization"  msgstr "" -#: models.py:2489 +#: models.py:2499  msgid "Can change own Organization"  msgstr "" -#: models.py:2491 +#: models.py:2501  msgid "Can delete own Organization"  msgstr "" -#: models.py:2526 +#: models.py:2536  msgid "Groups"  msgstr "" -#: models.py:2531 +#: models.py:2541  msgid "Person types"  msgstr "" -#: models.py:2543 +#: models.py:2553  msgid "Title types"  msgstr "" -#: models.py:2552 +#: models.py:2562  msgid "Mr"  msgstr "" -#: models.py:2553 +#: models.py:2563  msgid "Miss"  msgstr "" -#: models.py:2554 +#: models.py:2564  msgid "Mr and Mrs"  msgstr "" -#: models.py:2555 +#: models.py:2565  msgid "Mrs"  msgstr "" -#: models.py:2556 +#: models.py:2566  msgid "Doctor"  msgstr "" -#: models.py:2589 +#: models.py:2599  msgid "Contact type"  msgstr "" -#: models.py:2592 models.py:2656 +#: models.py:2602 models.py:2666  msgid "Types"  msgstr "" -#: models.py:2595 +#: models.py:2605  msgid "Is attached to"  msgstr "" -#: models.py:2600 +#: models.py:2610  msgid "Persons"  msgstr "" -#: models.py:2602 +#: models.py:2612  msgid "Can view all Persons"  msgstr "" -#: models.py:2603 +#: models.py:2613  msgid "Can view own Person"  msgstr "" -#: models.py:2604 +#: models.py:2614  msgid "Can add own Person"  msgstr "" -#: models.py:2605 +#: models.py:2615  msgid "Can change own Person"  msgstr "" -#: models.py:2606 +#: models.py:2616  msgid "Can delete own Person"  msgstr "" -#: models.py:2784 +#: models.py:2793  msgid "Advanced shortcut menu"  msgstr "" -#: models.py:2787 +#: models.py:2796  msgid "Ishtar user"  msgstr "" -#: models.py:2788 +#: models.py:2797  msgid "Ishtar users"  msgstr "" -#: models.py:2832 +#: models.py:2841  msgid "To modify the password use the form in Auth > User"  msgstr "" -#: models.py:2838 +#: models.py:2847  msgid "Author types"  msgstr "" -#: models.py:2871 +#: models.py:2880  msgid "Source types"  msgstr "" -#: models.py:2880 +#: models.py:2889  msgid "Support types"  msgstr "" -#: models.py:2887 +#: models.py:2896  msgid "Format type"  msgstr "" -#: models.py:2888 +#: models.py:2897  msgid "Format types"  msgstr "" -#: models.py:2896 +#: models.py:2905  msgid "External ID"  msgstr "" -#: models.py:2899 +#: models.py:2908  msgid "Support"  msgstr "" -#: models.py:2903 +#: models.py:2912  msgid "Scale"  msgstr "" -#: models.py:2917 +#: models.py:2926  msgid "Item number"  msgstr "" -#: models.py:2918 +#: models.py:2927  msgid "Ref."  msgstr "" -#: models.py:2921 +#: models.py:2930  msgid "Internal ref."  msgstr "" -#: models.py:2964 +#: models.py:2973  msgid "Surface (m2)"  msgstr "" -#: models.py:2965 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107 +#: models.py:2974 templates/sheet_ope.html:46 templates/sheet_ope.html.py:107  msgid "Localisation"  msgstr "" -#: models.py:2990 +#: models.py:2999  msgid "Is preventive"  msgstr "" -#: models.py:2994 +#: models.py:3003  msgid "Operation types"  msgstr "" -#: models.py:3023 +#: models.py:3032  msgid "Preventive"  msgstr "" -#: models.py:3024 +#: models.py:3033  msgid "Research"  msgstr "" -#: models.py:3047 +#: models.py:3056  msgid "Authority name"  msgstr "" -#: models.py:3048 +#: models.py:3057  msgid "Authority SRID"  msgstr "" -#: models.py:3052 +#: models.py:3061  msgid "Spatial reference systems"  msgstr "" @@ -1466,7 +1476,7 @@ msgstr ""  msgid " (...)"  msgstr "" -#: utils.py:146 +#: utils.py:148  msgid "Load another random image?"  msgstr "" @@ -1526,56 +1536,56 @@ msgstr ""  msgid "Treatment"  msgstr "" -#: views.py:1329 views.py:1372 +#: views.py:1361 views.py:1404  msgid "Operation not permitted."  msgstr "" -#: views.py:1331 +#: views.py:1363  #, python-format  msgid "New %s"  msgstr "" -#: views.py:1390 views.py:1440 +#: views.py:1422 views.py:1472  msgid "Archaeological files"  msgstr "" -#: views.py:1391 views.py:1444 +#: views.py:1423 views.py:1476  msgid "Operations"  msgstr "" -#: views.py:1393 views.py:1448 +#: views.py:1425 views.py:1480  msgid "Context records"  msgstr "" -#: views.py:1395 views.py:1451 +#: views.py:1427 views.py:1483  msgid "Finds"  msgstr "" -#: views.py:1644 templates/ishtar/import_list.html:43 +#: views.py:1676 templates/ishtar/import_list.html:43  msgid "Link unmatched items"  msgstr "" -#: views.py:1659 +#: views.py:1691  msgid "Delete import"  msgstr "" -#: views.py:1698 +#: views.py:1730  msgid "Merge persons"  msgstr "" -#: views.py:1722 +#: views.py:1754  msgid "Select the main person"  msgstr "" -#: views.py:1731 +#: views.py:1763  msgid "Merge organization"  msgstr "" -#: views.py:1741 +#: views.py:1773  msgid "Select the main organization"  msgstr "" -#: views.py:1781 views.py:1797 +#: views.py:1813 views.py:1829  msgid "Corporation manager"  msgstr "" @@ -1583,27 +1593,27 @@ msgstr ""  msgid "Search..."  msgstr "" -#: widgets.py:671 templatetags/window_tables.py:91 +#: widgets.py:670 templatetags/window_tables.py:91  msgid "No results"  msgstr "" -#: widgets.py:672 templatetags/window_tables.py:92 +#: widgets.py:671 templatetags/window_tables.py:92  msgid "Loading..."  msgstr "" -#: widgets.py:673 +#: widgets.py:672  msgid "Remove"  msgstr "" -#: wizards.py:344 templates/ishtar/import_delete.html:20 +#: wizards.py:372 templates/ishtar/import_delete.html:20  msgid "Yes"  msgstr "" -#: wizards.py:346 +#: wizards.py:374  msgid "No"  msgstr "" -#: wizards.py:1362 +#: wizards.py:1390  #, python-format  msgid "[%(app_name)s] Account creation/modification"  msgstr "" @@ -2017,7 +2027,7 @@ msgstr ""  msgid "Export as CSV - "  msgstr "" -#: templates/blocks/JQueryJqGrid.html:105 +#: templates/blocks/JQueryJqGrid.html:108  #: templates/ishtar/blocks/window_tables/dynamic_documents.html:41  msgid "An error as occured during search. Check your query fields."  msgstr "" @@ -2160,7 +2170,7 @@ msgstr ""  #: templates/ishtar/organization_form.html:40  #: templates/ishtar/organization_person_form.html:35  #: templates/ishtar/person_form.html:46 -#: templates/ishtar/wizard/validation_bar.html:6 +#: templates/ishtar/wizard/validation_bar.html:8  msgid "Cancel"  msgstr "" @@ -2269,7 +2279,7 @@ msgstr ""  #: templates/ishtar/blocks/advanced_shortcut_menu.html:16  #: templates/ishtar/blocks/shortcut_menu.html:16 -msgid "Advanced menu." +msgid "Advanced menu"  msgstr ""  #: templates/ishtar/blocks/advanced_shortcut_menu.html:16 @@ -2483,7 +2493,7 @@ msgstr ""  msgid "No town set in the associated file."  msgstr "" -#: templates/ishtar/wizard/validation_bar.html:5 +#: templates/ishtar/wizard/validation_bar.html:6  msgid "Validate and end"  msgstr "" diff --git a/ishtar_common/migrations/0073_auto__add_field_importercolumn_export_field_name.py b/ishtar_common/migrations/0073_auto__add_field_importercolumn_export_field_name.py new file mode 100644 index 000000000..a2b5ed719 --- /dev/null +++ b/ishtar_common/migrations/0073_auto__add_field_importercolumn_export_field_name.py @@ -0,0 +1,493 @@ +# -*- coding: utf-8 -*- +import datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + +    def forwards(self, orm): +        # Adding field 'ImporterColumn.export_field_name' +        db.add_column('ishtar_common_importercolumn', 'export_field_name', +                      self.gf('django.db.models.fields.CharField')(max_length=200, null=True, blank=True), +                      keep_default=False) + + +    def backwards(self, orm): +        # Deleting field 'ImporterColumn.export_field_name' +        db.delete_column('ishtar_common_importercolumn', 'export_field_name') + + +    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': {'ordering': "['label']", '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': {'ordering': "['label']", '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'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', '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': '255', 'null': 'True', 'blank': 'True'}), +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'imported_file': ('django.db.models.fields.files.FileField', [], {'max_length': '220'}), +            'imported_images': ('django.db.models.fields.files.FileField', [], {'max_length': '220', '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': '255', 'null': 'True', 'blank': 'True'}), +            'result_file': ('django.db.models.fields.files.FileField', [], {'max_length': '255', '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'}), +            'export_field_name': ('django.db.models.fields.CharField', [], {'max_length': '200', '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']"}), +            'label': ('django.db.models.fields.CharField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}), +            '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.importermodel': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterModel'}, +            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), +            'klass': ('django.db.models.fields.CharField', [], {'max_length': '200'}), +            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'}) +        }, +        'ishtar_common.importertype': { +            'Meta': {'ordering': "('name',)", 'object_name': 'ImporterType'}, +            'associated_models': ('django.db.models.fields.related.ForeignKey', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'to': "orm['ishtar_common.ImporterModel']"}), +            'created_models': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'+'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['ishtar_common.ImporterModel']"}), +            '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_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 0, 0, 0)'", 'max_length': '200'}), +            'base_find_external_id': ('django.db.models.fields.TextField', [], {'default': "'{context_record__external_id}-{label}'"}), +            'container_external_id': ('django.db.models.fields.TextField', [], {'default': "'{responsible__external_id}-{index}'"}), +            'context_record': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'context_record_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,200,0,0.2)'", 'max_length': '200'}), +            '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': "'{year}-{numeric_reference}'"}), +            'files': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'files_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(0, 32, 210, 0.1)'", 'max_length': '200'}), +            'find': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'find_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(210,0,0,0.15)'", 'max_length': '200'}), +            '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', [], {}), +            'mapping': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            'mapping_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(72, 236, 0, 0.15)'", 'max_length': '200'}), +            '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'}), +            'warehouse_color': ('django.db.models.fields.CharField', [], {'default': "'rgba(10,20,200,0.15)'", 'max_length': '200'}), +            'warehouse_external_id': ('django.db.models.fields.TextField', [], {'default': "'{name|slug}'"}) +        }, +        'ishtar_common.ishtaruser': { +            'Meta': {'object_name': 'IshtarUser', '_ormbases': ['auth.User']}, +            'advanced_shortcut_menu': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), +            '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'}), +            'salutation': ('django.db.models.fields.CharField', [], {'max_length': '200', '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': {'ordering': "['label']", '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.spatialreferencesystem': { +            'Meta': {'ordering': "('label',)", 'object_name': 'SpatialReferenceSystem'}, +            'auth_name': ('django.db.models.fields.CharField', [], {'default': "'EPSG'", 'max_length': '256'}), +            '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': '10'}), +            'srid': ('django.db.models.fields.IntegerField', [], {}), +            '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 24704dd21..a2341abdc 100644 --- a/ishtar_common/models.py +++ b/ishtar_common/models.py @@ -1738,7 +1738,8 @@ def import_class(full_path_classname):      mods = full_path_classname.split('.')      if len(mods) == 1:          mods = ['ishtar_common', 'models', mods[0]] -    elif 'models' not in mods: +    elif 'models' not in mods and 'models_finds' not in mods \ +            and 'models_treatments' not in mods:          raise SuspiciousOperation(              u"Try to import a non model from a string")      module = import_module('.'.join(mods[:-1])) @@ -1829,8 +1830,12 @@ class ImporterType(models.Model):                  (field.field_name, field.force_new, field.concat,                   field.concat_str)                  for field in column.duplicate_fields.all()] +            formater_kwargs['label'] = column.label              formater_kwargs['required'] = column.required              formater_kwargs['force_new'] = force_news +            if column.export_field_name: +                formater_kwargs['export_field_name'] = [ +                    column.export_field_name]              formater = ImportFormater(targets, formater_types,                                        **formater_kwargs)              LINE_FORMAT.append(formater) @@ -1952,6 +1957,11 @@ class ImporterColumn(models.Model):      description = models.TextField(_("Description"), blank=True, null=True)      regexp_pre_filter = models.ForeignKey("Regexp", blank=True, null=True)      required = models.BooleanField(_(u"Required"), default=False) +    export_field_name = models.CharField( +        _(u"Export field name"), blank=True, null=True, max_length=200, +        help_text=_(u"Fill this field if the field name is ambiguous for " +                    u"export. For instance: concatenated fields.") +    )      class Meta:          verbose_name = _(u"Importer - Column") @@ -2748,11 +2758,10 @@ class Person(Address, Merge, OwnPerms, ValueGetter):      def save(self, *args, **kwargs):          super(Person, self).save(*args, **kwargs) -        if not self.raw_name: -            self.raw_name = get_external_id( -                'person_raw_name', self) -            if self.raw_name: -                self.save() +        raw_name = get_external_id('person_raw_name', self) +        if raw_name and self.raw_name != raw_name: +            self.raw_name = raw_name +            self.save()          if hasattr(self, 'responsible_town_planning_service'):              for fle in self.responsible_town_planning_service.all():                  fle.save()  # force update of raw_town_planning_service diff --git a/ishtar_common/templates/blocks/JQueryJqGrid.html b/ishtar_common/templates/blocks/JQueryJqGrid.html index 258082877..1768ab427 100644 --- a/ishtar_common/templates/blocks/JQueryJqGrid.html +++ b/ishtar_common/templates/blocks/JQueryJqGrid.html @@ -31,7 +31,7 @@  </div>  {% if multiple %} -<input type="button" id="add_button_{{name}}" value="{% trans "Add" %}"/> +<input type="button" id="add_button_{{name}}" value="{% trans 'Add' %}"/>  <ul id="selectmulti_{{name}}" class="selectmulti"></ul>  {% endif %} @@ -70,6 +70,9 @@ jQuery(document).ready(function(){      $(".{{sname}}-csv").attr("href", csv_url);      var csv_full_url = "{{source_full}}csv?submited=1&" + data;      $(".{{sname}}-csv-full").attr("href", csv_full_url); +    {% for slug, name, extra_source in extra_sources %} +    $(".{{slug}}-csv-full").attr("href", '{{extra_source}}csv?submited=1&' + data); +    {% endfor %}      mygrid.setGridParam({url:url, page:1});      mygrid.trigger("reloadGrid"); diff --git a/ishtar_common/templates/ishtar/sheet_organization.html b/ishtar_common/templates/ishtar/sheet_organization.html index 1f4bd77b7..66048095b 100644 --- a/ishtar_common/templates/ishtar/sheet_organization.html +++ b/ishtar_common/templates/ishtar/sheet_organization.html @@ -6,7 +6,7 @@  {% block content %}  {% window_nav item window_id 'show-organization' 'organization_modify' %}  <p><label>{% trans "Name" %}</label> <span class='value'>{{item.name}}</span></p> -<p><label>{%trans "Created by:"%}</label> <span class='value'>{{ item.history_creator.ishtaruser.full_label }}</span></p> +<p><label>{%trans "Created by:"%}</label> <span class='value'>{{ item.history_creator.ishtaruser.person }}</span></p>  {% if item.address %}<p><label>{% trans "Address" %}</label> <span class='value'>{{item.address}}</span></p> {% endif %}  {% if item.address_complement %}<p><label>{% trans "Address complement" %}</label> <span class='value'>{{item.address_complement}}</span></p> {% endif %}  {% if item.postal_code %}<p><label>{% trans "Postal code" %}</label> <span class='value'>{{item.postal_code}}</span></p> {% endif %} diff --git a/ishtar_common/templates/ishtar/sheet_person.html b/ishtar_common/templates/ishtar/sheet_person.html index bcf39c363..5339e4f07 100644 --- a/ishtar_common/templates/ishtar/sheet_person.html +++ b/ishtar_common/templates/ishtar/sheet_person.html @@ -6,13 +6,13 @@  {% window_nav item window_id 'show-person' 'person_modify' %}  <h3>{% trans "Identity" %}</h3> -{% field "Title" item.full_title %} -{% field "Name" item.name %} -{% field "Surname" item.surname %} -{% field "Raw name" item.raw_name %} -{% field "Created by" item.history_creator.ishtaruser.full_label %} -{% field "Email" item.email %} -{% field "Type(s)" item.person_types_list %} +{% field_li "Title" item.full_title %} +{% field_li "Name" item.name %} +{% field_li "Surname" item.surname %} +{% field_li "Raw name" item.raw_name %} +{% field_li_detail "Created by" item.history_creator.ishtaruser.person %} +{% field_li "Email" item.email %} +{% field_li "Type(s)" item.person_types_list %}  {% if item.phone or item.phone2 or item.phone3 or item.mobile_phone %}  <table class='formset table-form'> @@ -42,29 +42,29 @@  {% if item.address or item.postal_code or item.town %}  <h3>{% trans "Business address" %}</h3> -{% field "Address" item.address %} -{% field "Address complement" item.address_complement %} -{% field "Postal code" item.postal_code %} -{% field "Town" item.town %} +{% field_li "Address" item.address %} +{% field_li "Address complement" item.address_complement %} +{% field_li "Postal code" item.postal_code %} +{% field_li "Town" item.town %}  {% endif %}  {% if item.alt_address or item.alt_postal_code or item.alt_town %}  <h3>{% trans "Other address" %}</h3> -{% field "Address" item.alt_address %} -{% field "Address complement" item.alt_address_complement %} -{% field "Postal code" item.alt_postal_code %} -{% field "Town" item.alt_town %} +{% field_li "Address" item.alt_address %} +{% field_li "Address complement" item.alt_address_complement %} +{% field_li "Postal code" item.alt_postal_code %} +{% field_li "Town" item.alt_town %}  {% endif %}  {% if item.attached_to %}<h3>{% trans "Associated organization"%}</h3> -{% field "Name" item.attached_to %} -{% field "Address" item.attached_to.address %} -{% field "Address complement" item.attached_to.address_complement %} -{% field "Postal code" item.attached_to.postal_code %} -{% field "Town" item.attached_to.town %} -{% field "Phone" item.attached_to.phone %} -{% field "Mobile phone" item.attached_to.mobile_phone %} +{% field_li "Name" item.attached_to %} +{% field_li "Address" item.attached_to.address %} +{% field_li "Address complement" item.attached_to.address_complement %} +{% field_li "Postal code" item.attached_to.postal_code %} +{% field_li "Town" item.attached_to.town %} +{% field_li "Phone" item.attached_to.phone %} +{% field_li "Mobile phone" item.attached_to.mobile_phone %}  {% endif %} diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index a9e92e1f2..095056c2e 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -954,6 +954,13 @@ class IshtarBasicTest(TestCase):          response = self.client.get(reverse('status'))          self.assertEqual(response.status_code, 200) +    def test_person_rawname(self): +        person = models.Person.objects.create(name="Weasley", surname="Bill") +        self.assertEqual(person.raw_name, "WEASLEY Bill") +        person.surname = "George" +        person.save() +        self.assertEqual(person.raw_name, "WEASLEY George") +  class GeomaticTest(TestCase):      def test_post_save_point(self): diff --git a/ishtar_common/views.py b/ishtar_common/views.py index a4ad130be..18bdc6e36 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -563,7 +563,8 @@ def get_item(model, func_name, default_name, extra_request_keys=[],      """      Generic treatment of tables      """ -    def func(request, data_type='json', full=False, force_own=False, **dct): +    def func(request, data_type='json', full=False, force_own=False, +             col_names=None, **dct):          # check rights          own = True  # more restrictive by default          allowed = False @@ -880,15 +881,23 @@ def get_item(model, func_name, default_name, extra_request_keys=[],              else:                  table_cols = model.TABLE_COLS +        query_table_cols = [] +        for cols in table_cols: +            if type(cols) not in (list, tuple): +                cols = [cols] +            for col in cols: +                query_table_cols += col.split('|') +          # contextual (full, simple, etc.) col          contxt = full and 'full' or 'simple'          if hasattr(model, 'CONTEXTUAL_TABLE_COLS') and \                  contxt in model.CONTEXTUAL_TABLE_COLS:              for idx, col in enumerate(table_cols):                  if col in model.CONTEXTUAL_TABLE_COLS[contxt]: -                    table_cols[idx] = model.CONTEXTUAL_TABLE_COLS[contxt][col] +                    query_table_cols[idx] = \ +                        model.CONTEXTUAL_TABLE_COLS[contxt][col]          if full == 'shortcut': -            table_cols = ['cached_label'] +            query_table_cols = ['cached_label']          # manage sort tables          manual_sort_key = None @@ -912,7 +921,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                  orders.append(sign + k)              items = items.order_by(*orders)          elif q: -            for ke in table_cols: +            for ke in query_table_cols:                  if type(ke) in (list, tuple):                      ke = ke[0]                  if ke.endswith(q): @@ -957,7 +966,7 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                  continue              c_ids.append(item.pk)              data = [item.pk] -            for keys in table_cols: +            for keys in query_table_cols:                  if type(keys) not in (list, tuple):                      keys = [keys]                  my_vals = [] @@ -987,12 +996,20 @@ def get_item(model, func_name, default_name, extra_request_keys=[],                                      v = getattr(v, ky)                                      if callable(v):                                          v = v() +                                    if hasattr(v, 'url'): +                                        v = request.is_secure() and \ +                                            'https' or 'http' + '://' + \ +                                            request.get_host() + v.url                                      new_vals.append(v)                              elif val:                                  try:                                      val = getattr(val, ky)                                      if callable(val):                                          val = val() +                                    if hasattr(val, 'url'): +                                        val = request.is_secure() and \ +                                            'https' or 'http' + '://' + \ +                                            request.get_host() + val.url                                      new_vals.append(val)                                  except AttributeError:                                      # must be a query key such as "contains" @@ -1022,10 +1039,10 @@ def get_item(model, func_name, default_name, extra_request_keys=[],          if manual_sort_key:              # +1 because the id is added as a first col              idx_col = None -            if manual_sort_key in table_cols: -                idx_col = table_cols.index(manual_sort_key) + 1 +            if manual_sort_key in query_table_cols: +                idx_col = query_table_cols.index(manual_sort_key) + 1              else: -                for idx, col in enumerate(table_cols): +                for idx, col in enumerate(query_table_cols):                      if type(col) in (list, tuple) and \                              manual_sort_key in col:                          idx_col = idx + 1 @@ -1090,32 +1107,46 @@ def get_item(model, func_name, default_name, extra_request_keys=[],              response['Content-Disposition'] = 'attachment; filename=%s'\                                                % filename              writer = csv.writer(response, **CSV_OPTIONS) -            col_names = [] -            for field_name in table_cols: -                if type(field_name) in (list, tuple): -                    field_name = u" & ".join(field_name) -                if hasattr(model, 'EXTRA_FULL_FIELDS_LABELS') and\ -                        field_name in model.EXTRA_FULL_FIELDS_LABELS: -                    field = model.EXTRA_FULL_FIELDS_LABELS[field_name] -                    col_names.append(unicode(field).encode(ENCODING)) -                    continue -                else: -                    try: -                        field = model._meta.get_field(field_name) -                    except: -                        col_names.append(u"".encode(ENCODING)) -                        logger.warning( -                            "**WARN get_item - csv export**: no col name for " -                            "{}\nadd explicit label to " -                            "EXTRA_FULL_FIELDS_LABELS attribute of " -                            "{}".format(field_name, model)) +            if col_names: +                col_names = [name.encode(ENCODING, errors='replace') +                             for name in col_names] +            else: +                col_names = [] +                for field_name in table_cols: +                    if type(field_name) in (list, tuple): +                        field_name = u" & ".join(field_name) +                    if hasattr(model, 'EXTRA_FULL_FIELDS_LABELS') and\ +                            field_name in model.EXTRA_FULL_FIELDS_LABELS: +                        field = model.EXTRA_FULL_FIELDS_LABELS[field_name] +                        col_names.append(unicode(field).encode(ENCODING))                          continue -                    col_names.append( -                        unicode(field.verbose_name).encode(ENCODING)) +                    else: +                        try: +                            field = model._meta.get_field(field_name) +                        except: +                            col_names.append(u"".encode(ENCODING)) +                            logger.warning( +                                "**WARN get_item - csv export**: no col name " +                                "for {}\nadd explicit label to " +                                "EXTRA_FULL_FIELDS_LABELS attribute of " +                                "{}".format(field_name, model)) +                            continue +                        col_names.append( +                            unicode(field.verbose_name).encode(ENCODING))              writer.writerow(col_names)              for data in datas: -                writer.writerow([val.encode(ENCODING, errors='replace') -                                 for val in data[1:]]) +                row, delta = [], 0 +                # regroup cols with join "|" +                for idx, col_name in enumerate(table_cols): +                    val = data[1:][idx + delta].encode( +                        ENCODING, errors='replace') +                    if "|" in col_name[0]: +                        for delta_idx in range(len(col_name[0].split('|')) - 1): +                            delta += 1 +                            val += data[1:][idx + delta].encode( +                                ENCODING, errors='replace') +                    row.append(val) +                writer.writerow(row)              return response          return HttpResponse('{}', mimetype='text/plain') @@ -1131,15 +1162,16 @@ def get_by_importer(request, slug, data_type='json', full=False,              res = '{}'          return HttpResponse(res, mimetype='text/plain')      imp = q.all()[0].get_importer_class() -    cols = [] +    cols, col_names = [], []      for formater in imp.LINE_FORMAT:          if not formater:              continue -        cols.append(formater.field_name) +        cols.append(formater.export_field_name) +        col_names.append(formater.label)      obj_name = imp.OBJECT_CLS.__name__.lower()      return get_item(          imp.OBJECT_CLS, 'get_' + obj_name, obj_name, own_table_cols=cols -    )(request, data_type, full, force_own, **dct) +    )(request, data_type, full, force_own, col_names=col_names, **dct)  def display_item(model, name, extra_dct=None): diff --git a/ishtar_common/widgets.py b/ishtar_common/widgets.py index 597fb2764..3fbf24f29 100644 --- a/ishtar_common/widgets.py +++ b/ishtar_common/widgets.py @@ -662,7 +662,6 @@ class JQueryJqGrid(forms.RadioSelect):                  dct['extra_sources'].append((                      imp.slug, imp.name,                      reverse('get-by-importer', args=[imp.slug]))) -          dct.update({'name': name,                      'col_names': col_names,                      'extra_cols': extra_cols, | 
