summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2020-12-02 17:45:58 +0100
committerÉtienne Loks <etienne.loks@iggdrasil.net>2021-02-28 12:15:22 +0100
commit8109708639238e5eb7a8be6c547a9b0f0a7976f0 (patch)
treeee022cb560a4b0e51935fedc2edbd0769ee79012 /docs
parent5be65ddbe992cad7951616fe2848e30433889cd3 (diff)
downloadIshtar-8109708639238e5eb7a8be6c547a9b0f0a7976f0.tar.bz2
Ishtar-8109708639238e5eb7a8be6c547a9b0f0a7976f0.zip
Docs: autogen value documentation
Diffstat (limited to 'docs')
-rw-r--r--docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja113
-rw-r--r--docs/fr/source/annexe-tech-3-variables-gen.rst859
-rw-r--r--docs/fr/source/index.rst2
-rw-r--r--docs/fr/source/interface-administrateur.rst1
-rw-r--r--docs/generate_values_doc.py143
5 files changed, 901 insertions, 217 deletions
diff --git a/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja b/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja
index e9576352e..8d0332cf1 100644
--- a/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja
+++ b/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja
@@ -6,12 +6,14 @@
Annexe technique 3 - Variables
==============================
-:Auteur: Étienne Loks
-:Date: 2020-11-24
+:Auteurs: Étienne Loks, Ishtar team
+:Date: {{current_date}}
:Copyright: CC-BY 3.0
+:Ishtar Version: v{{version}}
----------------------------------
+
Ces variables sont utilisées pour les configurations des imports, les patrons de documents et la configuration des identifiants, des index personnalisés.
Ces variables correspondent aux noms des champs utilisés en base de données (exemple : ``code_patriarche`` pour accéder au code patriarche d'une opération) ainsi que des « facilitateurs » qui permettent de disposer de champs plus évolués (exemple : ``get_next_index`` pour accéder au prochain numéro d'index).
@@ -20,10 +22,22 @@ On peut passer d'un élément lié à un autre (par exemple, accéder à l'opér
Ci-dessous la liste des variables pour chaque type d'éléments.
+..warning:: Cette documentation liste tous les champs en base de données (moins quelques champs de gestion interne). Certains sont des champs historiques obsolètes voués à disparaître, d'autres sont des champs mis en place pour des futures fonctionnalités et peuvent encore faire l'objet de modifications. Tout champ listé ci-dessous qui ne correspond pas à un champ accessible depuis l'interface d'Ishtar ne doit normalement pas être utilisé.
+
.. _valeurs-champs-adresse:
+
+Modèles génériques
+------------------
+
+Champs personnalisés
+********************
+
+Les éléments principaux (`Operation`, `Unité d'Enregistrement`, `Mobilier`, etc.) permettent d'utiliser des :ref:`champs personnalisés <champ-personnalises>`.
+Ceux-ci sont accessibles via l'attribut `data__`. Ainsi on accède à une clé `ma_clef` via `data__ma_clef` ou à une autre clé sous une catégorie `ma_categorie__ma_sousclef` via `data__ma_categorie__ma_sousclef`.
+
Champs adresse
-==============
+**************
Les champs adresse sont une liste de variables partagées par plusieurs éléments :
{{ ishtar_common['address']['render'] }}
@@ -31,7 +45,7 @@ Les champs adresse sont une liste de variables partagées par plusieurs élémen
.. _valeurs-champs-geo:
Champs géographiques
-====================
+********************
Les champs géographiques sont une liste de variables partagées par plusieurs éléments :
{{ ishtar_common['geoitem']['render'] }}
@@ -40,40 +54,113 @@ Le détail du fonctionnement de ces champs est explicité dans :ref:`« Princip
Personne
-========
+********
Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants :
{{ ishtar_common['person']['render'] }}
Auteur
-======
+******
{{ ishtar_common['author']['render'] }}
Organisation
-============
+************
Chaque organisation dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants :
{{ ishtar_common['organization']['render'] }}
Documentation
-=============
+*************
{{ ishtar_common['document']['render'] }}
+Acte administratif
+******************
+
+{{ archaeological_operations['administrativeact']['render'] }}
+
+Parcelle
+********
+
+{{ archaeological_operations['parcel']['render'] }}
+
+Datation
+********
+
+{{ archaeological_context_records['dating']['render'] }}
+
+Modèles des éléments principaux
+-------------------------------
+
Opération
-=========
+*********
-Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants :
+Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+{{ archaeological_operations['operation']['render'] }}
Site/Entité archéologique
-=========================
+*************************
-Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants :
+Chaque site/entité archéologique dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+{{ archaeological_operations['archaeologicalsite']['render'] }}
Dossier archéologique
-=====================
+*********************
+
+Chaque dossier archéologique dispose du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_files['file']['render'] }}
+
+Unité d'enregistrement
+**********************
+
+Chaque unité d'enregistrement dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_context_records['contextrecord']['render'] }}
+
+Mobilier d'origine
+******************
+
+Chaque mobilier d'origine dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_finds['basefind']['render'] }}
+
+Mobilier
+********
+
+Chaque élément mobilier dispose du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_finds['find']['render'] }}
+
+Traitement
+**********
+
+Chaque traitement dispose du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_finds['treatment']['render'] }}
+
+Demande de traitement
+*********************
+
+Chaque demande de traitement dispose du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_finds['treatmentfile']['render'] }}
+
+Dépot
+*****
+
+Chaque dépot dispose des :ref:`champs adresse <valeurs-champs-adresse>`, des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_warehouse['warehouse']['render'] }}
+
+Contenant
+*********
+
+Chaque contenant dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+{{ archaeological_warehouse['container']['render'] }}
diff --git a/docs/fr/source/annexe-tech-3-variables-gen.rst b/docs/fr/source/annexe-tech-3-variables-gen.rst
index 747e33ad8..c669d5f3b 100644
--- a/docs/fr/source/annexe-tech-3-variables-gen.rst
+++ b/docs/fr/source/annexe-tech-3-variables-gen.rst
@@ -6,12 +6,14 @@
Annexe technique 3 - Variables
==============================
-:Auteur: Étienne Loks
-:Date: 2020-11-24
+:Auteurs: Étienne Loks, Ishtar team
+:Date: 2020-12-02
:Copyright: CC-BY 3.0
+:Ishtar Version: v3.1.0
----------------------------------
+
Ces variables sont utilisées pour les configurations des imports, les patrons de documents et la configuration des identifiants, des index personnalisés.
Ces variables correspondent aux noms des champs utilisés en base de données (exemple : ``code_patriarche`` pour accéder au code patriarche d'une opération) ainsi que des « facilitateurs » qui permettent de disposer de champs plus évolués (exemple : ``get_next_index`` pour accéder au prochain numéro d'index).
@@ -20,214 +22,723 @@ On peut passer d'un élément lié à un autre (par exemple, accéder à l'opér
Ci-dessous la liste des variables pour chaque type d'éléments.
+..warning:: Cette documentation liste tous les champs en base de données (moins quelques champs de gestion interne). Certains sont des champs historiques obsolètes voués à disparaître, d'autres sont des champs mis en place pour des futures fonctionnalités et peuvent encore faire l'objet de modifications. Tout champ listé ci-dessous qui ne correspond pas à un champ accessible depuis l'interface d'Ishtar ne doit normalement pas être utilisé.
+
.. _valeurs-champs-adresse:
+
+Modèles génériques
+------------------
+
+Champs personnalisés
+********************
+
+Les éléments principaux (`Operation`, `Unité d'Enregistrement`, `Mobilier`, etc.) permettent d'utiliser des :ref:`champs personnalisés <champ-personnalises>`.
+Ceux-ci sont accessibles via l'attribut `data__`. Ainsi on accède à une clé `ma_clef` via `data__ma_clef` ou à une autre clé sous une catégorie `ma_categorie__ma_sousclef` via `data__ma_categorie__ma_sousclef`.
+
Champs adresse
-==============
+**************
Les champs adresse sont une liste de variables partagées par plusieurs éléments :
-- `address` : Adresse
-- `address_complement` : Complément d'adresse
-- `alt_address` : Autre adresse : adresse
-- `alt_address_complement` : Autre adresse : complément d'adresse
-- `alt_address_is_prefered` : L'adresse alternative est préférée
-- `alt_country` : Autre adresse : pays
-- `alt_postal_code` : Autre adresse : code postal
-- `alt_town` : Autre adresse : ville
-- `country` : Pays
-- `email` : Courriel
-- `mobile_phone` : Téléphone mobile
-- `need_update` : Nécessite une mise à jour
-- `phone` : Téléphone
-- `phone2` : Type de téléphone 2
-- `phone3` : Téléphone 3
-- `phone_desc` : Type de téléphone
-- `phone_desc2` : Type de téléphone 2
-- `phone_desc3` : Type de téléphone 3
-- `postal_code` : Code postal
-- `precise_town` : -> Commune
-- `raw_phone` : Téléphone brut
-- `town` : Commune (saisie libre)
+- **address** : *Texte* - Adresse
+- **address_complement** : *Texte* - Complément d'adresse
+- **alt_address** : *Texte* - Autre adresse : adresse
+- **alt_address_complement** : *Texte* - Autre adresse : complément d'adresse
+- **alt_address_is_prefered** : *Booléen* - L'adresse alternative est préférée
+- **alt_country** : *Chaîne de caractères (30)* - Autre adresse : pays
+- **alt_postal_code** : *Chaîne de caractères (10)* - Autre adresse : code postal
+- **alt_town** : *Chaîne de caractères (70)* - Autre adresse : ville
+- **country** : *Chaîne de caractères (30)* - Pays
+- **email** : *Courriel (300)* - Courriel
+- **mobile_phone** : *Chaîne de caractères (18)* - Téléphone mobile
+- **phone** : *Chaîne de caractères (18)* - Téléphone
+- **phone2** : *Chaîne de caractères (18)* - Type de téléphone 2
+- **phone3** : *Chaîne de caractères (18)* - Téléphone 3
+- **phone_desc** : *Chaîne de caractères (300)* - Type de téléphone
+- **phone_desc2** : *Chaîne de caractères (300)* - Type de téléphone 2
+- **phone_desc3** : *Chaîne de caractères (300)* - Type de téléphone 3
+- **postal_code** : *Chaîne de caractères (10)* - Code postal
+- **precise_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune (précis)
+- **raw_phone** : *Texte* - Téléphone brut
+- **town** : *Chaîne de caractères (150)* - Commune (saisie libre)
.. _valeurs-champs-geo:
Champs géographiques
-====================
+********************
Les champs géographiques sont une liste de variables partagées par plusieurs éléments :
-- `estimated_error_x` : Erreur estimée pour X
-- `estimated_error_y` : Erreur estimée pour Y
-- `estimated_error_z` : Erreur estimée pour Z
-- `multi_polygon` : Polygones multi-parties
-- `multi_polygon_source` : Source du multi-polygone
-- `multi_polygon_source_item` : Élément source du multi-polygone
-- `point` : Point
-- `point_2d` : Point (2D)
-- `point_source` : Source du point
-- `point_source_item` : Élément source du point
-- `spatial_reference_system` : -> Système de référence spatiale
-- `x` : X/Long
-- `y` : Y/Lat
-- `z` : Z
+- **estimated_error_x** : *Nombre à virgule* - Erreur estimée pour X
+- **estimated_error_y** : *Nombre à virgule* - Erreur estimée pour Y
+- **estimated_error_z** : *Nombre à virgule* - Erreur estimée pour Z
+- **multi_polygon** : *Multi-polygone* - Polygones multi-parties
+- **multi_polygon_source** : *Chaîne de caractères (1)* - Source du multi-polygone
+- **multi_polygon_source_item** : *Chaîne de caractères (100)* - Élément source du multi-polygone
+- **point** : *Point* - Point
+- **point_2d** : *Point* - Point (2D)
+- **point_source** : *Chaîne de caractères (1)* - Source du point
+- **point_source_item** : *Chaîne de caractères (100)* - Élément source du point
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **x** : *Nombre à virgule* - X/Long
+- **y** : *Nombre à virgule* - Y/Lat
+- **z** : *Nombre à virgule* - Z
Le détail du fonctionnement de ces champs est explicité dans :ref:`« Principes > Notions avancées > Données géographiques » <donnees-geographiques>`.
Personne
-========
+********
Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants :
-- `adminact_operation_in_charge` : -> Acte administratif
-- `adminact_scientist` : -> Acte administratif
-- `archived` : archived
-- `attached_to` : -> Organisation
-- `author` : -> Auteur
-- `cached_label` : Nom en cache
-- `cira_rapporteur` : -> Opération
-- `comment` : Commentaire
-- `contact_type` : Type de contact
-- `file_responsability` : -> Dossier archéologique
-- `general_contractor_files` : -> Dossier archéologique
-- `ishtaruser` : -> Utilisateur d'Ishtar
-- `manage_treatments` : -> Traitement
-- `merge_candidate` : -> Personne
-- `merge_exclusion` : -> Personne
-- `merge_key` : Clé de fusion
-- `minutes_writer` : -> Opération
-- `name` : Nom
-- `old_title` : Titre
-- `operation_collaborator` : -> Opération
-- `operation_protagonist` : -> Opération
-- `operation_responsability` : -> Opération
-- `operation_scientist_responsability` : -> Opération
-- `parcel_owner` : -> Propriétaire de parcelle
-- `person_types` : -> Type de personne
-- `profiles` : -> Profil d'utilisateur
-- `properties` : -> Propriété
-- `raw_name` : Nom brut
-- `responsible_town_planning_service_files` : -> Dossier archéologique
-- `salutation` : Formule d'appel
-- `scientist` : -> Dossier archéologique
-- `signatory` : -> Acte administratif
-- `site_collaborator` : -> Entité archéologique
-- `surname` : Prénom
-- `title` : -> Type de titre
-- `treatmentfile_applicant` : -> Demande de traitement
-- `treatmentfile_responsability` : -> Demande de traitement
-- `treatments` : -> Traitement
-- `warehouse_in_charge` : -> Lieu de conservation
+- **adminact_operation_in_charge__** : *→ Actes administratifs (responsable d'opération)*
+- **adminact_scientist__** : *→ Actes administratifs (responsable scientifique)*
+- **attached_to__** : *→ Organisation* - Est rattaché à
+- **author__** : *→ Auteurs (personne)*
+- **cached_label** : *Texte* - Nom en cache
+- **cira_rapporteur__** : *→ Opérations (rapporteur cira)*
+- **comment** : *Texte* - Commentaire
+- **contact_type** : *Chaîne de caractères (300)* - Type de contact
+- **file_responsability__** : *→ Dossiers archéologiques (personne responsable)*
+- **general_contractor_files__** : *→ Dossiers archéologiques (aménageur)*
+- **manage_treatments__** : *→ Traitements (responsable de suivi scientifique)*
+- **minutes_writer__** : *→ Opérations (rédacteur du procès verbal)*
+- **name** : *Chaîne de caractères (200)* - Nom
+- **old_title** : *Chaîne de caractères (100)* - Titre
+- **operation_collaborator__** : *→ Opérations (collaborateurs)*
+- **operation_protagonist__** : *→ Opérations (nom du protagoniste)*
+- **operation_responsability__** : *→ Opérations (responsable)*
+- **operation_scientist_responsability__** : *→ Opérations (responsable du suivi scientifique)*
+- **person_types__** : *→ Type de personne* (**label** Dénomination, **txt_idx** Identifiant textuel) - Types
+- **precise_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune (précis)
+- **raw_name** : *Chaîne de caractères (300)* - Nom brut
+- **responsible_town_planning_service_files__** : *→ Dossiers archéologiques (responsable pour le service instructeur)*
+- **salutation** : *Chaîne de caractères (200)* - Formule d'appel
+- **scientist__** : *→ Dossiers archéologiques (responsable scientifique)*
+- **signatory__** : *→ Actes administratifs (signataire)*
+- **site_collaborator__** : *→ Entités archéologiques (collaborateurs)*
+- **surname** : *Chaîne de caractères (50)* - Prénom - Attention, historical and unfortunate residue in the code of an initial translation error.
+- **title__** : *→ Type de titre* (**label** Dénomination, **txt_idx** Identifiant textuel) - Titre
+- **treatmentfile_applicant__** : *→ Demandes de traitement (demandeur)*
+- **treatmentfile_responsability__** : *→ Demandes de traitement (personne responsable)*
+- **treatments__** : *→ Traitements (responsable)*
+- **warehouse_in_charge__** : *→ Lieux de conservation (personne responsable)*
Auteur
-======
+******
-- `author_type` : -> Type d'auteur
-- `cached_label` : Nom en cache
-- `documents` : -> Document
-- `person` : -> Personne
+- **author_type__** : *→ Type d'auteur* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type d'auteur
+- **cached_label** : *Texte* - Nom en cache
+- **documents__** : *→ Documents (auteurs)*
+- **person__** : *→ Personne* - Personne
Organisation
-============
+************
Chaque organisation dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants :
-- `adminact_operator` : -> Acte administratif
-- `archived` : archived
-- `cached_label` : Nom en cache
-- `files` : -> Dossier archéologique
-- `general_contractor_files` : -> Dossier archéologique
-- `members` : -> Personne
-- `merge_candidate` : -> Organisation
-- `merge_exclusion` : -> Organisation
-- `merge_key` : Clé de fusion
-- `name` : Nom
-- `operation_applicant_authority` : -> Opération
-- `operator` : -> Opération
-- `organization_type` : -> Type d'organisation
-- `planning_service_files` : -> Dossier archéologique
-- `publish` : -> Document
-- `treatmentfile_applicant` : -> Demande de traitement
-- `treatments` : -> Traitement
-- `url` : Adresse web
-- `warehouses` : -> Lieu de conservation
+- **adminact_operator__** : *→ Actes administratifs (opérateur d'archéologie préventive)*
+- **cached_label** : *Texte* - Nom en cache
+- **files__** : *→ Dossiers archéologiques (organisation)*
+- **general_contractor_files__** : *→ Dossiers archéologiques (organisation de l'aménageur)*
+- **members__** : *→ Personnes (est rattaché à)*
+- **name** : *Chaîne de caractères (500)* - Nom
+- **operation_applicant_authority__** : *→ Opérations (autorité requérante)*
+- **operator__** : *→ Opérations (opérateur)*
+- **organization_type__** : *→ Type d'organisation* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type
+- **planning_service_files__** : *→ Dossiers archéologiques (service instructeur)*
+- **precise_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune (précis)
+- **publish__** : *→ Documents (publisher)*
+- **treatmentfile_applicant__** : *→ Demandes de traitement (organisation demandeuse)*
+- **treatments__** : *→ Traitements (organisation)*
+- **url** : *Adresse web (200)* - Adresse web
+- **warehouses__** : *→ Lieux de conservation (organisation)*
Documentation
-=============
-
-
-- `additional_information` : Information supplémentaire
-- `associated_file` : associated file
-- `associated_links` : Liens symboliques
-- `associated_url` : Ressource numérique (adresse web)
-- `authors` : -> Auteur
-- `authors_raw` : Auteurs (brut)
-- `cache_related_label` : Lié
-- `children` : -> Document
-- `comment` : Commentaire
-- `complete_identifier` : Complete identifier
-- `container_id` : Container ID
-- `container_ref_id` : Container ID
-- `containers` : -> Contenant
-- `context_records` : -> Unité d'Enregistrement
-- `creation_date` : Date de création
-- `custom_index` : Custom index
-- `description` : Description
-- `duplicate` : Existe en doublon
-- `external_id` : Identifiant
-- `files` : -> Dossier archéologique
-- `finds` : -> Mobilier
-- `format_type` : -> Type de format
-- `image` : image
-- `index` : Index
-- `internal_reference` : Réf. interne
-- `isbn` : ISBN
-- `issn` : ISSN
-- `item_number` : Nombre d'éléments
-- `language` : -> Langue
-- `licenses` : -> Type de licence
-- `main_image_containers` : -> Contenant
-- `main_image_context_records` : -> Unité d'Enregistrement
-- `main_image_finds` : -> Mobilier
-- `main_image_operations` : -> Opération
-- `main_image_sites` : -> Entité archéologique
-- `main_image_treatment_files` : -> Demande de traitement
-- `main_image_treatments` : -> Traitement
-- `main_image_warehouses` : -> Lieu de conservation
-- `operations` : -> Opération
-- `publisher` : -> Organisation
-- `qrcode` : qrcode
-- `receipt_date` : Date de réception
-- `receipt_date_in_documentation` : Date de réception en documentation
-- `reference` : Réf.
-- `scale` : Échelle
-- `sites` : -> Entité archéologique
-- `source` : -> Document
-- `source_free_input` : Source - free input
-- `source_page_range` : Source - page range
-- `source_type` : -> Document type
-- `support_type` : -> Type de support
-- `tags` : -> Document tag
-- `thumbnail` : thumbnail
-- `title` : Titre
-- `treatment_files` : -> Demande de traitement
-- `treatments` : -> Traitement
-- `warehouses` : -> Lieu de conservation
+*************
+
+
+- **additional_information** : *Texte* - Information supplémentaire
+- **associated_file** : *Image (255)* - Dossier associé - La taille maximale supportée pour le fichier est de 100 Mo.
+- **associated_links** : *Texte* - Liens symboliques
+- **associated_url** : *Adresse web (1000)* - Ressource numérique (adresse web)
+- **authors__** : *→ Auteur* - Auteurs
+- **authors_raw** : *Chaîne de caractères (250)* - Auteurs (brut)
+- **cache_related_label** : *Texte* - Lié - Valeur en cache - ne pas éditer
+- **children__** : *→ Documents (source)*
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **container_id** : *Entier positif* - Container ID
+- **container_ref_id** : *Entier positif* - Container ID
+- **containers__** : *→ Contenants (documents)*
+- **context_records__** : *→ Unité d'Enregistrement (documents)*
+- **creation_date** : *Date* - Date de création
+- **custom_index** : *Entier* - Custom index
+- **description** : *Texte* - Description
+- **duplicate** : *Booléen* - Existe en doublon
+- **external_id** : *Texte* - Identifiant
+- **files__** : *→ Dossiers archéologiques (documents)*
+- **finds__** : *→ Mobilier (documents)*
+- **format_type__** : *→ Type de format* (**label** Dénomination, **txt_idx** Identifiant textuel) - Format
+- **image** : *Image (255)* - image - La taille maximale supportée pour le fichier est de 100 Mo.
+- **index** : *Entier* - Index
+- **internal_reference** : *Texte* - Réf. interne
+- **isbn** : *Chaîne de caractères (17)* - ISBN
+- **issn** : *Chaîne de caractères (10)* - ISSN
+- **item_number** : *Entier* - Nombre d'éléments
+- **language__** : *→ Langue* (**label** Dénomination, **txt_idx** Identifiant textuel) - Langue
+- **licenses__** : *→ Type de licence* (**label** Dénomination, **txt_idx** Identifiant textuel) - Licence
+- **main_image_containers__** : *→ Contenants (image principale)*
+- **main_image_context_records__** : *→ Unité d'Enregistrement (image principale)*
+- **main_image_finds__** : *→ Mobilier (image principale)*
+- **main_image_operations__** : *→ Opérations (image principale)*
+- **main_image_sites__** : *→ Entités archéologiques (image principale)*
+- **main_image_treatment_files__** : *→ Demandes de traitement (image principale)*
+- **main_image_treatments__** : *→ Traitements (image principale)*
+- **main_image_warehouses__** : *→ Lieux de conservation (image principale)*
+- **operations__** : *→ Opérations (documents)*
+- **publisher__** : *→ Organisation* - Publisher
+- **qrcode** : *Image (255)* - qrcode
+- **receipt_date** : *Date* - Date de réception
+- **receipt_date_in_documentation** : *Date* - Date de réception en documentation
+- **reference** : *Texte* - Réf.
+- **scale** : *Chaîne de caractères (30)* - Échelle
+- **sites__** : *→ Entités archéologiques (documents)*
+- **source__** : *→ Document* - Source
+- **source_free_input** : *Chaîne de caractères (500)* - Source - free input
+- **source_page_range** : *Chaîne de caractères (500)* - Source - page range
+- **source_type__** : *→ Document type* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type
+- **support_type__** : *→ Type de support* (**label** Dénomination, **txt_idx** Identifiant textuel) - Medium
+- **tags__** : *→ Document tag* (**label** Dénomination, **txt_idx** Identifiant textuel) - Tags
+- **thumbnail** : *Image (255)* - thumbnail - La taille maximale supportée pour le fichier est de 100 Mo.
+- **title** : *Texte* - Titre
+- **treatment_files__** : *→ Demandes de traitement (documents)*
+- **treatments__** : *→ Traitements (documents)*
+- **warehouses__** : *→ Lieux de conservation (documents)*
+
+Acte administratif
+******************
+
+
+- **act_object** : *Texte (300)* - Objet
+- **act_type__** : *→ Type d'acte* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type d'acte
+- **associated_file__** : *→ Dossier archéologique* - Dossier archéologique
+- **departments_label** : *Texte* - Départements - Valeur en cache des départements associés
+- **in_charge__** : *→ Personne* - Responsable d'opération
+- **index** : *Entier* - Index
+- **operation__** : *→ Opération* - Opération
+- **operator__** : *→ Organisation* - Opérateur d'archéologie préventive
+- **property__** : *→ Propriétés (acte administratif)*
+- **ref_sra** : *Chaîne de caractères (15)* - Référence SRA
+- **scientist__** : *→ Personne* - Responsable scientifique
+- **signatory__** : *→ Personne* - Signataire
+- **signature_date** : *Date* - Date de signature
+- **towns_label** : *Texte* - Communes - Valeur en cache des communes associées
+- **treatment__** : *→ Traitement* - Traitement
+- **treatment_file__** : *→ Demande de traitement* - Demande de traitement
+- **year** : *Entier* - Année
+
+Parcelle
+********
+
+
+- **associated_file__** : *→ Dossier archéologique* - Dossier
+- **cached_label** : *Texte* - Nom en cache
+- **context_record__** : *→ Unité d'Enregistrement (parcelle)*
+- **external_id** : *Chaîne de caractères (100)* - Identifiant
+- **operation__** : *→ Opération* - Opération
+- **owners__** : *→ Propriétaires de parcelle (parcelle)*
+- **parcel_number** : *Chaîne de caractères (6)* - Numéro de parcelle
+- **public_domain** : *Booléen* - Domaine public
+- **section** : *Chaîne de caractères (4)* - Section
+- **year** : *Entier* - Année
+
+Datation
+********
+
+
+- **context_records__** : *→ Unité d'Enregistrement (datings)*
+- **dating_type__** : *→ Type de datation* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de datation
+- **end_date** : *Entier* - Date de fin
+- **find__** : *→ Mobilier (datation)*
+- **period__** : *→ Type de période* (**label** Dénomination, **txt_idx** Identifiant textuel) - Période
+- **precise_dating** : *Texte* - Datation précise
+- **quality__** : *→ Type de qualité de datation* (**label** Dénomination, **txt_idx** Identifiant textuel) - Qualité
+- **start_date** : *Entier* - Date de début
+
+Modèles des éléments principaux
+-------------------------------
Opération
-=========
-
-Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants :
-
+*********
+
+Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **abstract** : *Texte* - Résumé
+- **administrative_act__** : *→ Actes administratifs (opération)*
+- **applicant_authority__** : *→ Organisation* - Autorité requérante
+- **archaeological_sites__** : *→ Entité archéologique* - Entités archéologiques
+- **associated_file__** : *→ Dossier archéologique* - Dossier
+- **cached_label** : *Chaîne de caractères (500)* - Nom en cache - Généré automatiquement - ne pas éditer
+- **cached_periods** : *Texte* - Nom en cache des périodes - Généré automatiquement - ne pas éditer
+- **cached_remains** : *Texte* - Nom en cache des vestiges - Généré automatiquement - ne pas éditer
+- **cached_towns_label** : *Texte* - Nom en cache des communes - Généré automatiquement - ne pas éditer
+- **cira_date** : *Date* - Date avis CIRA
+- **cira_rapporteur__** : *→ Personne* - Rapporteur CIRA
+- **code_patriarche** : *Texte* - Code PATRIARCHE
+- **collaborators__** : *→ Personne* - Collaborateurs
+- **comment** : *Texte* - Commentaire
+- **common_name** : *Texte* - Nom générique
+- **complete_identifier** : *Texte* - Complete identifier
+- **context_record__** : *→ Unité d'Enregistrement (opération)*
+- **cost** : *Entier* - Coût (euros)
+- **creation_date** : *Date* - Date de création
+- **custom_index** : *Entier* - Custom index
+- **documentation_deadline** : *Date* - Date limite de versement de la documentation
+- **documentation_received** : *Booléen* - Documentation reçue
+- **documents__** : *→ Document* - Documents
+- **drassm_code** : *Chaîne de caractères (100)* - Code DRASSM
+- **eas_number** : *Chaîne de caractères (20)* - Numéro de l'EA
+- **effective_man_days** : *Entier* - Jours-hommes effectifs
+- **end_date** : *Date* - Date de clôture
+- **excavation_end_date** : *Date* - Date de fin de chantier
+- **finds_deadline** : *Date* - Date limite de versement du mobilier
+- **finds_received** : *Booléen* - Mobilier reçu
+- **fnap_cost** : *Entier* - Financement FNAP (€)
+- **fnap_financing** : *Nombre à virgule* - Financement FNAP (%)
+- **geoarchaeological_context_prescription** : *Booléen* - Prescription sur un contexte géoarchéologique
+- **in_charge__** : *→ Personne* - Responsable
+- **large_area_prescription** : *Booléen* - Prescription sur une vaste surface
+- **left_relations__** : *→ Relations entre opérations (right record)*
+- **main_image__** : *→ Document* - Image principale
+- **minutes_writer__** : *→ Personne* - Rédacteur du procès verbal
+- **negative_result** : *Booléen* - Résultat considéré comme négatif
+- **official_report_number** : *Texte* - Numéro de procès-verbal ou de saisine
+- **old_code** : *Chaîne de caractères (200)* - Ancien code
+- **operation_code** : *Entier* - Identifiant numérique
+- **operation_type__** : *→ Type d'opération* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type d'opération
+- **operationbydepartment__** : *→ operation by departments (opération)*
+- **operator__** : *→ Organisation* - Opérateur
+- **operator_reference** : *Chaîne de caractères (20)* - Référence de l'opérateur
+- **optional_man_days** : *Entier* - Jours-hommes optionnels
+- **parcels__** : *→ Parcelles (opération)*
+- **periods__** : *→ Type de période* (**label** Dénomination, **txt_idx** Identifiant textuel) - Périodes
+- **protagonist__** : *→ Personne* - Nom du protagoniste
+- **qrcode** : *Image (255)* - qrcode
+- **record_quality_type__** : *→ Type de qualité d'enregistrement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Qualité d'enregistrement
+- **relation_bitmap_image** : *Image (100)* - Image des relations (PNG généré) - La taille maximale supportée pour le fichier est de 100 Mo.
+- **relation_image** : *Image (100)* - Image des relations (SVG généré) - La taille maximale supportée pour le fichier est de 100 Mo.
+- **remains__** : *→ Type de vestige* (**label** Dénomination, **txt_idx** Identifiant textuel) - Vestiges
+- **report_delivery_date** : *Date* - Date de livraison du rapport
+- **report_processing__** : *→ Type d'état de rapport* (**label** Dénomination, **txt_idx** Identifiant textuel) - Traitement du rapport
+- **right_relations__** : *→ Relations entre opérations (left record)*
+- **scheduled_man_days** : *Entier* - Jours-hommes prévus
+- **scientific_documentation_comment** : *Texte* - Commentaire relatif à la documentation scientifique
+- **scientist__** : *→ Personne* - Responsable du suivi scientifique
+- **seizure_name** : *Texte* - Nom de la saisie
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **start_date** : *Date* - Date de début
+- **surface** : *Entier* - Surface (m2)
+- **top_sites__** : *→ Entité archéologique* - Sites pour lesquels cette opération est une opération chapeau
+- **towns__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Communes
+- **virtual_operation** : *Booléen* - Opération virtuelle - Si coché, cela signifie que cette opération n'a pas été officiellement enregistrée.
+- **year** : *Entier* - Année
+- **zoning_prescription** : *Booléen* - Prescription sur zonage
Site/Entité archéologique
-=========================
-
-Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants :
-
+*************************
+
+Chaque site/entité archéologique dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **affmar_number** : *Chaîne de caractères (100)* - Numéro AffMar
+- **cached_label** : *Texte* - Nom en cache - Généré automatiquement - ne pas éditer
+- **cached_periods** : *Texte* - Nom en cache des périodes - Généré automatiquement - ne pas éditer
+- **cached_remains** : *Texte* - Nom en cache des vestiges - Généré automatiquement - ne pas éditer
+- **cached_towns_label** : *Texte* - Nom en cache des communes - Généré automatiquement - ne pas éditer
+- **collaborators__** : *→ Personne* - Collaborateurs
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **context_records__** : *→ Unité d'Enregistrement (entité archéologique)*
+- **cultural_attributions__** : *→ Type d'attribution culturelle* (**label** Dénomination, **txt_idx** Identifiant textuel) - Attribution culturelle
+- **custom_index** : *Entier* - Custom index
+- **discovery_area** : *Texte* - Zone de découverte
+- **documents__** : *→ Document* - Documents
+- **drassm_number** : *Chaîne de caractères (100)* - Numéro DRASSM
+- **locality_cadastral** : *Texte* - Lieu-dit cadastre
+- **locality_ngi** : *Texte* - Lieu-dit IGN
+- **main_image__** : *→ Document* - Image principale
+- **name** : *Chaîne de caractères (200)* - Nom
+- **oceanographic_service_localisation** : *Texte* - Localisation SHOM
+- **operations__** : *→ Opérations (entités archéologiques)*
+- **other_reference** : *Texte* - Autre référence
+- **periods__** : *→ Type de période* (**label** Dénomination, **txt_idx** Identifiant textuel) - Périodes
+- **qrcode** : *Image (255)* - qrcode
+- **reference** : *Chaîne de caractères (200)* - Référence
+- **remains__** : *→ Type de vestige* (**label** Dénomination, **txt_idx** Identifiant textuel) - Vestiges
+- **shipwreck_code** : *Texte* - Code épave
+- **shipwreck_name** : *Texte* - Nom de l'épave
+- **sinking_date** : *Date* - Date de naufrage
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **top_operations__** : *→ Opérations (sites pour lesquels cette opération est une opération chapeau)*
+- **towns__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Communes
Dossier archéologique
-=====================
+*********************
+
+Chaque dossier archéologique dispose du champ `data__` ainsi que des champs suivants :
+
+
+- **administrative_act__** : *→ Actes administratifs (dossier archéologique)*
+- **cached_label** : *Texte* - Nom en cache - Généré automatiquement - ne pas éditer
+- **cira_advised** : *Booléen* - Passage en CIRA
+- **classified_area** : *Booléen* - Au sein d'un site classé
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **corporation_general_contractor__** : *→ Organisation* - Organisation de l'aménageur
+- **creation_date** : *Date* - Date de création
+- **custom_index** : *Entier* - Custom index
+- **departments__** : *→ Département* - Départements
+- **documents__** : *→ Document* - Documents
+- **end_date** : *Date* - Date de clôture
+- **external_id** : *Chaîne de caractères (120)* - Identifiant
+- **file__** : *→ Dossiers archéologiques (dossier associé)*
+- **file_type__** : *→ Type de dossier archéologique* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de dossier
+- **filebydepartment__** : *→ file by departments (dossier)*
+- **general_contractor__** : *→ Personne* - Aménageur
+- **imported_line** : *Texte* - Ligne importée
+- **in_charge__** : *→ Personne* - Personne responsable
+- **instruction_deadline** : *Date* - Date limite d'instruction
+- **internal_reference** : *Chaîne de caractères (60)* - Référence interne
+- **locality** : *Chaîne de caractères (100)* - Lieu-dit
+- **main_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune principale
+- **mh_listing** : *Booléen* - Sur Monument Historique inscrit
+- **mh_register** : *Booléen* - Sur Monument Historique classé
+- **name** : *Texte* - Nom
+- **numeric_reference** : *Entier* - Identifiant numérique
+- **operations__** : *→ Opérations (dossier)*
+- **organization__** : *→ Organisation* - Organisation
+- **parcels__** : *→ Parcelles (dossier)*
+- **permit_reference** : *Texte* - Référence du permis
+- **permit_type__** : *→ Type de permis* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de permis
+- **planning_service__** : *→ Organisation* - Service instructeur
+- **protected_area** : *Booléen* - Au sein d'un secteur sauvegardé
+- **qrcode** : *Image (255)* - qrcode
+- **raw_general_contractor** : *Chaîne de caractères (200)* - Aménageur (brut)
+- **raw_town_planning_service** : *Chaîne de caractères (200)* - Service instructeur (brut)
+- **reception_date** : *Date* - Date de réception
+- **related_file__** : *→ Dossier archéologique* - Dossier associé
+- **requested_operation_type__** : *→ Type d'opération* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type d'opération demandée
+- **research_comment** : *Texte* - Commentaire relatif à l'archéologie programmée
+- **responsible_town_planning_service__** : *→ Personne* - Responsable pour le service instructeur
+- **saisine_type__** : *→ Type de saisine* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de saisine
+- **scientist__** : *→ Personne* - Responsable scientifique
+- **total_developed_surface** : *Nombre à virgule* - Surface totale aménagée (m2)
+- **total_surface** : *Nombre à virgule* - Surface totale (m2)
+- **towns__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Communes
+- **year** : *Entier* - Année
+
+Unité d'enregistrement
+**********************
+
+Chaque unité d'enregistrement dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **activity__** : *→ Type d'activité* (**label** Dénomination, **txt_idx** Identifiant textuel) - Activité
+- **archaeological_site__** : *→ Entité archéologique* - Entité archéologique
+- **base_finds__** : *→ Mobilier d'origine (unité d'enregistrement)*
+- **cached_label** : *Texte* - Nom en cache
+- **cached_periods** : *Texte* - Nom en cache des périodes - Généré automatiquement - ne pas éditer
+- **cached_related_context_records** : *Texte* - Nom en cache des unités d'enregistrements liées - Généré automatiquement - ne pas éditer
+- **closing_date** : *Date* - Date de clôture
+- **comment** : *Texte* - Commentaire général
+- **complete_identifier** : *Texte* - Complete identifier
+- **context_record_tree_child__** : *→ context record trees (context record parent)*
+- **context_record_tree_parent__** : *→ context record trees (unité d'enregistrement)*
+- **contextrecord__** : *→ Unité d'Enregistrement (related context records)*
+- **custom_index** : *Entier* - Custom index
+- **datings__** : *→ Datation* - datings
+- **datings_comment** : *Texte* - Commentaire relatif aux datations
+- **depth** : *Nombre à virgule* - Profondeur (m)
+- **depth_of_appearance** : *Nombre à virgule* - Profondeur d'apparition (m)
+- **description** : *Texte* - Description
+- **diameter** : *Nombre à virgule* - Diamètre (m)
+- **documentations__** : *→ Type de documentation* (**label** Dénomination, **txt_idx** Identifiant textuel) - documentations
+- **documents__** : *→ Document* - Documents
+- **excavation_technic__** : *→ Type de méthode de fouille* (**label** Dénomination, **txt_idx** Identifiant textuel) - Méthode de fouille
+- **external_id** : *Texte* - Identifiant
+- **filling** : *Texte* - Remplissage
+- **identification__** : *→ Type d'identification* (**label** Dénomination, **txt_idx** Identifiant textuel) - Identification
+- **interpretation** : *Texte* - Interprétation
+- **label** : *Chaîne de caractères (200)* - Identifiant
+- **left_relations__** : *→ Relations entre Unités d'Enregistrement (right record)*
+- **length** : *Nombre à virgule* - Taille (m)
+- **location** : *Texte* - Localisation - Une courte description de la localisation de l'Unité d'Enregistrement
+- **main_image__** : *→ Document* - Image principale
+- **opening_date** : *Date* - Date d'ouverture
+- **operation__** : *→ Opération* - Opération
+- **parcel__** : *→ Parcelle* - Parcelle
+- **qrcode** : *Image (255)* - qrcode
+- **related_context_records__** : *→ Unité d'Enregistrement* - related context records
+- **relation_bitmap_image** : *Image (100)* - Image des relations (PNG généré) - La taille maximale supportée pour le fichier est de 100 Mo.
+- **relation_image** : *Image (100)* - Image des relations (SVG généré) - La taille maximale supportée pour le fichier est de 100 Mo.
+- **right_relations__** : *→ Relations entre Unités d'Enregistrement (left record)*
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **surface** : *Entier* - Surface (m2)
+- **taq** : *Entier* - TAQ - « Terminus Ante Quem ». L'Unité d'Enregistrement ne peut avoir été créée après cette date
+- **taq_estimated** : *Entier* - TAQ estimé - Estimation d'un « Terminus Ante Quem »
+- **thickness** : *Nombre à virgule* - Épaisseur (m)
+- **tpq** : *Entier* - TPQ - « Terminus Post Quem ». L'Unité d'Enregistrement ne peut avoir été créée avant cette date
+- **tpq_estimated** : *Entier* - TPQ estimé - Estimation d'un « Terminus Post Quem »
+- **unit__** : *→ Type d'Unité d'Enregistrement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type d'Unité d'Enregistrement
+- **width** : *Nombre à virgule* - Largeur (m)
+
+Mobilier d'origine
+******************
+
+Chaque mobilier d'origine dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **batch__** : *→ Type de lot* (**label** Dénomination, **txt_idx** Identifiant textuel) - Lot/objet
+- **cache_complete_id** : *Texte* - Identifiant complet - Valeur en cache - ne pas éditer
+- **cache_short_id** : *Texte* - Identifiant court - Valeur en cache - ne pas éditer
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **context_record__** : *→ Unité d'Enregistrement* - Unité d'Enregistrement
+- **custom_index** : *Entier* - Custom index
+- **description** : *Texte* - Description
+- **discovery_date** : *Date* - Date de découverte (exacte ou TPQ)
+- **discovery_date_taq** : *Date* - Date de découverte (TAQ)
+- **excavation_id** : *Texte* - Identifiant fouille
+- **external_id** : *Texte* - Identifiant
+- **find__** : *→ Mobilier (mobilier d'origine)*
+- **index** : *Entier* - Index
+- **label** : *Texte* - Identifiant libre
+- **line** : *Ligne* - Ligne
+- **material_index** : *Entier* - Index matériel
+- **qrcode** : *Image (255)* - qrcode
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **special_interest** : *Chaîne de caractères (120)* - Intérêt spécifique
+- **topographic_localisation** : *Chaîne de caractères (120)* - Point topographique
+
+Mobilier
+********
+
+Chaque élément mobilier dispose du champ `data__` ainsi que des champs suivants :
+
+
+- **alteration_causes__** : *→ Type de cause d'altération* (**label** Dénomination, **txt_idx** Identifiant textuel) - Cause d'altération
+- **alterations__** : *→ Type d'altération* (**label** Dénomination, **txt_idx** Identifiant textuel) - Altération
+- **appraisal_date** : *Date* - Date d'évaluation
+- **base_finds__** : *→ Mobilier d'origine* - Mobilier d'origine
+- **basket__** : *→ Paniers (items)*
+- **cached_label** : *Texte* - Nom en cache
+- **cached_materials** : *Texte* - Nom en cache des types de matériaux - Généré automatiquement - ne pas éditer
+- **cached_object_types** : *Texte* - Nom en cache des types d'objet - Généré automatiquement - ne pas éditer
+- **cached_periods** : *Texte* - Nom en cache des périodes - Généré automatiquement - ne pas éditer
+- **check_date** : *Date* - Date de vérification
+- **checked_type__** : *→ Type de vérification* (**label** Dénomination, **txt_idx** Identifiant textuel) - Vérification
+- **circumference** : *Nombre à virgule* - Circonférence (cm)
+- **clutter_height** : *Nombre à virgule* - Encombrement - hauteur (cm)
+- **clutter_long_side** : *Nombre à virgule* - Encombrement - grand côté (cm)
+- **clutter_short_side** : *Nombre à virgule* - Encombrement - petit côté (cm)
+- **collection__** : *→ Lieu de conservation* - Collection
+- **comment** : *Texte* - Commentaire
+- **communicabilities__** : *→ Type de communicabilité* (**label** Dénomination, **txt_idx** Identifiant textuel) - Communicabilité
+- **complete_identifier** : *Texte* - Complete identifier
+- **conservatory_comment** : *Texte* - Commentaire relatif à la conservation
+- **conservatory_state__** : *→ Type d'état de conservation* (**label** Dénomination, **txt_idx** Identifiant textuel) - État de conservation
+- **container__** : *→ Contenant* - Contenant
+- **container_ref__** : *→ Contenant* - Contenant de référence
+- **cultural_attributions__** : *→ Type d'attribution culturelle* (**label** Dénomination, **txt_idx** Identifiant textuel) - Attribution culturelle
+- **custom_index** : *Entier* - Custom index
+- **dating_comment** : *Texte* - Commentaire relatif aux datations
+- **datings__** : *→ Datation* - Datation
+- **decoration** : *Texte* - Décor
+- **denomination** : *Texte* - Dénomination
+- **description** : *Texte* - Description
+- **diameter** : *Nombre à virgule* - Diamètre (cm)
+- **dimensions_comment** : *Texte* - Commentaire relatif aux dimensions
+- **documents__** : *→ Document* - Documents
+- **downstream_treatment__** : *→ Traitement* - Traitement aval
+- **estimated_value** : *Nombre à virgule* - Valeur estimée
+- **external_id** : *Texte* - Identifiant
+- **find_number** : *Entier* - Mobilier (en nombre)
+- **finddownstreamtreatments_related__** : *→ find downstream treatmentss (mobilier)*
+- **findnonmodiftreatments_related__** : *→ find non modif treatmentss (mobilier)*
+- **findtreatments_related__** : *→ find treatmentss (mobilier)*
+- **findupstreamtreatments_related__** : *→ find upstream treatmentss (mobilier)*
+- **height** : *Nombre à virgule* - Hauteur (cm)
+- **index** : *Entier* - Index
+- **inscription** : *Texte* - Inscription
+- **inside_container__** : *→ find inside container (mobilier)*
+- **insurance_value** : *Nombre à virgule* - Valeur d'assurance
+- **integrities__** : *→ Type d'intégrité / intérêt* (**label** Dénomination, **txt_idx** Identifiant textuel) - Intégrité / intérêt
+- **is_complete** : *Booléen* - Est complet ?
+- **label** : *Texte* - Identifiant libre
+- **laboratory_id** : *Texte* - Numéro de laboratoire
+- **length** : *Nombre à virgule* - Longueur (cm)
+- **main_image__** : *→ Document* - Image principale
+- **manufacturing_place** : *Texte* - Lieu de fabrication
+- **mark** : *Texte* - Marquage
+- **material_comment** : *Texte* - Commentaire relatif au matériau
+- **material_type_quality__** : *→ Type de qualité du type de matériaux* (**label** Dénomination, **txt_idx** Identifiant textuel) - Qualité du type de matériaux
+- **material_types__** : *→ Type de matériau* (**label** Dénomination, **txt_idx** Identifiant textuel) - Types de matériau
+- **min_number_of_individuals** : *Entier* - Nombre minimum d'individus (NMI)
+- **museum_id** : *Texte* - Identifiant musée
+- **object_type_quality__** : *→ Type de qualité du type d'objet* (**label** Dénomination, **txt_idx** Identifiant textuel) - Qualité du type d'objet
+- **object_types__** : *→ Type d'objet* (**label** Dénomination, **txt_idx** Identifiant textuel) - Types d'objet
+- **order** : *Entier* - Ordre
+- **preservation_to_considers__** : *→ Type de traitement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Traitements recommandés
+- **previous_id** : *Texte* - Identifiant précédent
+- **property__** : *→ Propriétés (mobilier)*
+- **public_description** : *Texte* - Description publique
+- **qrcode** : *Image (255)* - qrcode
+- **remarkabilities__** : *→ Type de remarquabilité* (**label** Dénomination, **txt_idx** Identifiant textuel) - Remarquabilité
+- **seal_number** : *Texte* - Numéro de scellé
+- **thickness** : *Nombre à virgule* - Épaisseur (cm)
+- **treatment_emergency__** : *→ Type d'urgence de traitement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Urgence du traitement
+- **treatments__** : *→ Traitement* - Traitements - Traitements associés quand il n'y a pas de création de nouveau mobilier
+- **upstream_treatment__** : *→ Traitement* - Traitement amont
+- **volume** : *Nombre à virgule* - Volume (l)
+- **weight** : *Nombre à virgule* - Poids
+- **weight_unit** : *Chaîne de caractères (4)* - Unité de poids
+- **width** : *Nombre à virgule* - Largeur (cm)
+
+Traitement
+**********
+
+Chaque traitement dispose du champ `data__` ainsi que des champs suivants :
+
+
+- **administrative_act__** : *→ Actes administratifs (traitement)*
+- **cached_label** : *Texte* - Nom en cache
+- **comment** : *Texte* - Commentaire
+- **container__** : *→ Contenant* - Contenant
+- **creation_date** : *Date/heure* - creation date
+- **description** : *Texte* - Description
+- **documents__** : *→ Document* - Documents
+- **downstream__** : *→ Mobilier (traitement amont)*
+- **end_date** : *Date* - Date de clôture
+- **estimated_cost** : *Nombre à virgule* - Coût estimé
+- **executed** : *Booléen* - Le traitement a été réalisé
+- **external_id** : *Chaîne de caractères (200)* - Identifiant
+- **file__** : *→ Demande de traitement* - Demande associée
+- **finddownstreamtreatments__** : *→ find downstream treatments (traitement)*
+- **findnonmodiftreatments__** : *→ find non modif treatments (traitement)*
+- **finds__** : *→ Mobilier (traitements)*
+- **findtreatments__** : *→ find treatments (traitement)*
+- **findupstreamtreatments__** : *→ find upstream treatments (traitement)*
+- **goal** : *Texte* - But
+- **image** : *Image (255)* - image - La taille maximale supportée pour le fichier est de 100 Mo.
+- **index** : *Entier* - Index
+- **insurance_cost** : *Nombre à virgule* - Coût d'assurance
+- **label** : *Chaîne de caractères (200)* - Dénomination
+- **location__** : *→ Lieu de conservation* - Localisation - Endroit où le traitement est réalisé. Renseignez le lieu de conservation de destination pour un déplacement.
+- **main_image__** : *→ Document* - Image principale
+- **organization__** : *→ Organisation* - Organisation
+- **other_reference** : *Chaîne de caractères (200)* - Autre réf.
+- **person__** : *→ Personne* - Responsable
+- **quoted_cost** : *Nombre à virgule* - Coût devisé
+- **realized_cost** : *Nombre à virgule* - Coût réalisé
+- **scientific_monitoring_manager__** : *→ Personne* - Responsable de suivi scientifique
+- **start_date** : *Date* - Date de début
+- **thumbnail** : *Image (255)* - thumbnail - La taille maximale supportée pour le fichier est de 100 Mo.
+- **treatment_state__** : *→ Type d'état de traitement* (**label** Dénomination, **txt_idx** Identifiant textuel) - État
+- **treatment_types__** : *→ Type de traitement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de traitement
+- **upstream__** : *→ Mobilier (traitement aval)*
+- **year** : *Entier* - Année
+
+Demande de traitement
+*********************
+
+Chaque demande de traitement dispose du champ `data__` ainsi que des champs suivants :
+
+
+- **administrative_act__** : *→ Actes administratifs (demande de traitement)*
+- **applicant__** : *→ Personne* - Demandeur
+- **applicant_organisation__** : *→ Organisation* - Organisation demandeuse
+- **associated_basket__** : *→ Panier* - associated basket
+- **cached_label** : *Texte* - Nom en cache
+- **comment** : *Texte* - Commentaire
+- **creation_date** : *Date* - Date de création
+- **documents__** : *→ Document* - Documents
+- **end_date** : *Date* - Date de clôture
+- **exhibition_end_date** : *Date* - Date de fin de l'exposition
+- **exhibition_name** : *Texte* - Nom d'exposition
+- **exhibition_start_date** : *Date* - Date de commencement de l'exposition
+- **external_id** : *Chaîne de caractères (200)* - Identifiant
+- **in_charge__** : *→ Personne* - Personne responsable
+- **index** : *Entier* - Index
+- **internal_reference** : *Chaîne de caractères (200)* - Référence interne
+- **main_image__** : *→ Document* - Image principale
+- **name** : *Texte* - Nom
+- **reception_date** : *Date* - Date de réception
+- **treatments__** : *→ Traitements (demande associée)*
+- **type__** : *→ Type de demande de traitement* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de demande de traitement
+- **year** : *Entier* - Année
+
+Dépot
+*****
+
+Chaque dépot dispose des :ref:`champs adresse <valeurs-champs-adresse>`, des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **associated_divisions__** : *→ Type de division de lieu de conservation* (**label** Dénomination, **txt_idx** Identifiant textuel) - Divisions
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **containers__** : *→ Contenants (localisation (lieu de conservation))*
+- **custom_index** : *Entier* - Custom index
+- **divisions__** : *→ warehouse division links (warehouse)*
+- **documents__** : *→ Document* - Documents
+- **external_id** : *Texte* - Identifiant
+- **finds__** : *→ Mobilier (collection)*
+- **main_image__** : *→ Document* - Image principale
+- **max_division_number** : *Entier* - Number maximum of division - Automatically generated
+- **name** : *Chaîne de caractères (200)* - Nom
+- **organization__** : *→ Organisation* - Organisation
+- **owned_containers__** : *→ Contenants (lieu de conservation responsable)*
+- **person_in_charge__** : *→ Personne* - Personne responsable
+- **precise_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune (précis)
+- **qrcode** : *Image (255)* - qrcode
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **treatment__** : *→ Traitements (localisation)*
+- **warehouse_type__** : *→ Type de lieu de conservation* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de lieu de conservation
+
+Contenant
+*********
+
+Chaque contenant dispose des :ref:`champs géographiques <valeurs-champs-geo>`, du champ `data__` ainsi que des champs suivants :
+
+
+- **cached_division** : *Texte* - Division mise en cache
+- **cached_label** : *Texte* - Localisation
+- **cached_location** : *Texte* - Localisation - en cache
+- **children__** : *→ Contenants (parent container)*
+- **comment** : *Texte* - Commentaire
+- **complete_identifier** : *Texte* - Complete identifier
+- **container_content__** : *→ find inside containers (contenant)*
+- **container_tree_child__** : *→ container tree (contenant)*
+- **container_tree_parent__** : *→ container trees (container parent)*
+- **container_type__** : *→ Type de contenant* (**label** Dénomination, **txt_idx** Identifiant textuel) - Type de contenant
+- **custom_index** : *Entier* - Custom index
+- **division__** : *→ Localisations de contenant (contenant)*
+- **documents__** : *→ Document* - Documents
+- **external_id** : *Texte* - Identifiant
+- **finds__** : *→ Mobilier (contenant)*
+- **finds_ref__** : *→ Mobilier (contenant de référence)*
+- **index** : *Entier* - Container ID
+- **location__** : *→ Lieu de conservation* - Localisation (lieu de conservation)
+- **main_image__** : *→ Document* - Image principale
+- **old_reference** : *Texte* - Ancienne référence
+- **parent__** : *→ Contenant* - Parent container
+- **qrcode** : *Image (255)* - qrcode
+- **reference** : *Texte* - Réf. du contenant
+- **responsible__** : *→ Lieu de conservation* - Lieu de conservation responsable - Deprecated - do not use
+- **spatial_reference_system__** : *→ Système de référence spatiale* (**label** Dénomination, **txt_idx** Identifiant textuel, **srid** SRID, **auth_name** Registre) - Système de référence spatiale
+- **treatment__** : *→ Traitements (contenant)*
diff --git a/docs/fr/source/index.rst b/docs/fr/source/index.rst
index 96139b462..85d4cea66 100644
--- a/docs/fr/source/index.rst
+++ b/docs/fr/source/index.rst
@@ -21,4 +21,4 @@ Contents:
annexe-4-doc-normes
annexe-tech-1-insee-communes
annexe-tech-2-ign-communes
- annexe-tech-3-variables
+ annexe-tech-3-variables-gen
diff --git a/docs/fr/source/interface-administrateur.rst b/docs/fr/source/interface-administrateur.rst
index b9d8859ca..824add940 100644
--- a/docs/fr/source/interface-administrateur.rst
+++ b/docs/fr/source/interface-administrateur.rst
@@ -48,6 +48,7 @@ Certains types disposent aussi d'autres champs spécifiques ; ceux-ci sont expli
.. note:: Pour travailler sur ces listes de types ou les transmettre à des tiers, la possibilité est offerte d'exporter ces listes de types via l'interface d'administration. On sélectionne les éléments à exporter (ou tous les éléments) puis on utilise l'action « Exporter les éléments sélectionnés en fichier CSV ». Le fichier peut alors être édité dans un tableur. Pour une mise à jour, il est important de ne pas modifier les identifiants textuels qui sont la clé de rapprochement pour le ré-import. L'action d'import est disponible en haut à droite : « Import depuis un CSV ».
+.. _champ-personnalises:
Champs personnalisés
--------------------
diff --git a/docs/generate_values_doc.py b/docs/generate_values_doc.py
index ce1406663..024aa6097 100644
--- a/docs/generate_values_doc.py
+++ b/docs/generate_values_doc.py
@@ -2,12 +2,35 @@ from django.apps import apps
from django.conf import settings
from django.utils.translation import activate
+import datetime
from jinja2 import Template
import os
+from ishtar_common.version import get_version
from ishtar_common.models_common import Address, GeoItem
+
+# TODO: à traduire
+TYPES = {
+ 'IntegerField': "Entier",
+ 'PositiveIntegerField': "Entier positif",
+ 'FloatField': "Nombre à virgule",
+ 'TextField': "Texte",
+ 'CharField': "Chaîne de caractères",
+ 'DateField': "Date",
+ 'DateTimeField': "Date/heure",
+ 'EmailField': "Courriel",
+ 'NullBooleanField': "Booléen",
+ 'BooleanField': "Booléen",
+ 'ImageField': "Image",
+ 'FileField': "Fichier",
+ 'URLField': "Adresse web",
+ 'PointField': "Point",
+ 'LineStringField': "Ligne",
+ 'MultiPolygonField': "Multi-polygone",
+}
+
TEMPLATES = (
("fr/source/_templates/annexe-tech-3-variables-gen.jinja",
"fr/source/annexe-tech-3-variables-gen.rst",
@@ -16,65 +39,127 @@ TEMPLATES = (
TPL_MODEL = {
"fr-fr": """{% for field_name, desc in fields %}
-- `{{field_name}}` : {{desc}}{% endfor %}"""
+- **{{field_name}}** : {{desc}}{% endfor %}"""
}
-EXCLUDED = ["id", "data", "history_creator", "history_m2m", "history_modifier",
- "imports", "last_modified", "lock_user", "locked", "search_vector",
- "uuid"]
-EXCLUDED_MODELS = {}
-ONLY_MODELS = {
- "ishtar_common": ["person", "organization", "author", "document"]
-}
+EXCLUDED = [
+ "id", "data", "history_creator", "history_m2m", "history_modifier",
+ "imports", "last_modified", "lock_user", "locked", "search_vector",
+ "uuid", "need_update", "merge_key", "merge_candidate", "merge_exclusion",
+ "archived", "ishtaruser", "profiles", "properties",
+ "relation_bitmap_image_above", "relation_bitmap_image_below",
+ "relation_dot", "relation_dot_above", "relation_dot_below",
+ "relation_image_above", "relation_image_below", "auto_external_id",
+ "history_date"
+]
+EXCLUDED += ["parcel_owner"] # temporary
-APP_LIST = ["ishtar_common"]
+MODELS = {
+ "ishtar_common": ["person", "organization", "author", "document"],
+ "archaeological_operations": ["operation", "archaeologicalsite",
+ "parcel", "administrativeact"],
+ "archaeological_files": ["file"],
+ "archaeological_context_records": ["dating", "contextrecord"],
+ "archaeological_finds": ["basefind", "find", "treatment", "treatmentfile"],
+ "archaeological_warehouse": ["warehouse", "container"],
+}
-def get_values(tpl_model, model, excluded):
+def get_values(tpl_model, model, excluded, model_types):
fields = {}
related_fields = {}
for field in model._meta.get_fields():
if field.name in excluded:
continue
+
+ help_text = ""
+ if getattr(field, "help_text", None):
+ help_text = str(field.help_text)
+
if getattr(field, "related_model", None):
- related_fields[field.name] = \
- "-> " + str(field.related_model._meta.verbose_name)
+ key = field.name + "__"
+ rel = field.related_model
+ related_fields[key] = "*"
+ if getattr(field, "multiple", False):
+ related_fields[key] += "→ " + str(
+ rel._meta.verbose_name_plural)
+ else:
+ related_fields[key] += "→ " + str(
+ rel._meta.verbose_name)
+
+ extra = ""
+ if not getattr(field, "verbose_name", None) and \
+ hasattr(field.remote_field, "verbose_name"):
+ extra = str(field.remote_field.verbose_name).lower()
+ if hasattr(rel, "get_documentation_string"):
+ if extra:
+ extra += " - "
+ related_fields[key] += "* ({}{})".format(
+ extra,
+ rel.get_documentation_string())
+ elif extra:
+ related_fields[key] += " ({})*".format(extra)
+ else:
+ related_fields[key] += "*"
+ if getattr(field, "verbose_name", None):
+ related_fields[key] += " - " + str(field.verbose_name) + " "
+ if help_text:
+ if related_fields[key]:
+ related_fields[key] += " - "
+ related_fields[key] += help_text + " "
elif hasattr(field, "verbose_name"):
+ type_desc = ""
+ field_classes = [field.__class__.__name__] + [
+ sub.__name__ for sub in field.__class__.__subclasses__()]
+ for model_class in model_types:
+ if model_class in field_classes:
+ type_desc = model_types[model_class]
+ break
+ if getattr(field, "max_length", None):
+ type_desc += " ({})".format(field.max_length)
+ if not type_desc:
+ print("Missing type", field.name, field_classes)
fields[field.name] = str(field.verbose_name)
+ if type_desc:
+ fields[field.name] = "*{}* - {}".format(
+ type_desc, fields[field.name])
+ if help_text:
+ fields[field.name] += " - " + help_text
+ else:
+ print("No doc for the field: " + field.name)
+
fields = sorted(list(fields.items()) + list(related_fields.items()))
- dct = {
+ return {
"fields": [k for k, __ in fields],
"render": tpl_model.render({"fields": fields})
}
- return dct
for template_name, template_name_dest, language in TEMPLATES:
tpl_model = Template(TPL_MODEL[language])
activate(language)
- render_dct = {'ishtar_common': {}}
+ render_dct = dict((app, {}) for app in MODELS)
+ render_dct['current_date'] = datetime.date.today().strftime("%Y-%m-%d")
+ render_dct['version'] = get_version()
excluded = EXCLUDED[:]
- address_values = get_values(tpl_model, Address, excluded=excluded)
+ address_values = get_values(tpl_model, Address, excluded=excluded,
+ model_types=TYPES)
render_dct["ishtar_common"]["address"] = address_values
excluded += address_values["fields"]
- geo_values = get_values(tpl_model, GeoItem, excluded=excluded)
+ geo_values = get_values(tpl_model, GeoItem, excluded=excluded,
+ model_types=TYPES)
render_dct["ishtar_common"]["geoitem"] = geo_values
excluded += geo_values["fields"]
- for app_name in APP_LIST:
- app_models = apps.get_app_config(app_name).get_models()
- for model in list(app_models):
- model_name = model._meta.model_name
- if app_name in EXCLUDED_MODELS and \
- model_name in EXCLUDED_MODELS[app_name]:
- continue
- if app_name in ONLY_MODELS and \
- model_name not in ONLY_MODELS[app_name]:
- continue
- render_dct[app_name][model._meta.model_name] = get_values(
- tpl_model, model, excluded)
+ for app_name in MODELS:
+ # print([m._meta.model_name
+ # for m in apps.get_app_config(app_name).get_models()])
+ for model_name in MODELS[app_name]:
+ model = apps.get_app_config(app_name).get_model(model_name)
+ render_dct[app_name][model_name] = get_values(
+ tpl_model, model, excluded, TYPES)
template_name = os.path.abspath(
settings.ROOT_PATH + "../docs/" + template_name)