summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-03 11:35:11 +0200
committerÉtienne Loks <etienne.loks@iggdrasil.net>2024-04-03 12:59:04 +0200
commitf3746283d19ae6a6e54f9543faa0831060b057d9 (patch)
treeefb2dba26644e32d2f4408f4c8d855b08069fec1
parent20a963495efeb3df19f19e3c1f15902adf823a6d (diff)
downloadIshtar-f3746283d19ae6a6e54f9543faa0831060b057d9.tar.bz2
Ishtar-f3746283d19ae6a6e54f9543faa0831060b057d9.zip
🏗️ documentation: reST to markdown (mkdocs)develop-md
-rw-r--r--.readthedocs.yaml24
-rw-r--r--docs/fr/Makefile141
-rw-r--r--docs/fr/administrateur-applicatif.md592
-rw-r--r--docs/fr/administrateur-serveur.md285
-rw-r--r--docs/fr/annexe-1-permission-action.md90
-rw-r--r--docs/fr/annexe-2-ex-flux-ope.md180
-rw-r--r--docs/fr/annexe-3-doc-normes.md38
-rw-r--r--docs/fr/annexe-tech-1-insee-communes.md47
-rw-r--r--docs/fr/annexe-tech-2-ign-communes.md88
-rw-r--r--docs/fr/annexe-tech-3-variables-gen.md1205
-rw-r--r--docs/fr/annexe-tech-4-jinja-filters.md126
-rw-r--r--docs/fr/annexe-tech-5-manage-commands.md54
-rw-r--r--docs/fr/annexe-tech-6-configuration-syndication.md220
-rw-r--r--docs/fr/index.md134
-rw-r--r--docs/fr/media-src/containers.dia (renamed from docs/fr/source/media-src/containers.dia)bin2498 -> 2498 bytes
-rw-r--r--docs/fr/media-src/geo-parents.dia (renamed from docs/fr/source/media-src/geo-parents.dia)bin2228 -> 2228 bytes
-rw-r--r--docs/fr/media-src/geo-source-point.dia (renamed from docs/fr/source/media-src/geo-source-point.dia)bin3209 -> 3209 bytes
-rw-r--r--docs/fr/media-src/geo-source-polygon.dia (renamed from docs/fr/source/media-src/geo-source-polygon.dia)bin2800 -> 2800 bytes
-rw-r--r--docs/fr/media-src/graphique-structure-ishtar.png (renamed from docs/fr/source/media-src/graphique-structure-ishtar.png)bin230645 -> 230645 bytes
-rw-r--r--docs/fr/media-src/graphique-structure-ishtar.svg (renamed from docs/fr/source/media-src/graphique-structure-ishtar.svg)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar-presenter.sozi.html (renamed from docs/fr/source/media-src/graphique_structure_ishtar-presenter.sozi.html)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar.dot (renamed from docs/fr/source/media-src/graphique_structure_ishtar.dot)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar.sozi.html (renamed from docs/fr/source/media-src/graphique_structure_ishtar.sozi.html)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar.sozi.json (renamed from docs/fr/source/media-src/graphique_structure_ishtar.sozi.json)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar.svg (renamed from docs/fr/source/media-src/graphique_structure_ishtar.svg)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar_layers-presenter.sozi.html (renamed from docs/fr/source/media-src/graphique_structure_ishtar_layers-presenter.sozi.html)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar_layers.sozi.html (renamed from docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.html)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar_layers.sozi.json (renamed from docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.json)0
-rw-r--r--docs/fr/media-src/graphique_structure_ishtar_layers.svg (renamed from docs/fr/source/media-src/graphique_structure_ishtar_layers.svg)0
-rw-r--r--docs/fr/media-src/interface-generale.xcf (renamed from docs/fr/source/media-src/interface-generale.xcf)bin276491 -> 276491 bytes
-rw-r--r--docs/fr/media-src/ishtar-coins.dot (renamed from docs/fr/source/media-src/ishtar-coins.dot)0
-rw-r--r--docs/fr/media-src/ishtar-coins.svg (renamed from docs/fr/source/media-src/ishtar-coins.svg)0
-rw-r--r--docs/fr/media-src/ishtar-dublincore.dot (renamed from docs/fr/source/media-src/ishtar-dublincore.dot)0
-rw-r--r--docs/fr/media-src/ishtar-dublincore.svg (renamed from docs/fr/source/media-src/ishtar-dublincore.svg)0
-rw-r--r--docs/fr/media-src/ishtar-syndication.drawio (renamed from docs/fr/source/media-src/ishtar-syndication.drawio)0
-rw-r--r--docs/fr/media-src/ishtar-syndication.drawio.png (renamed from docs/fr/source/media-src/ishtar-syndication.drawio.png)bin37844 -> 37844 bytes
-rw-r--r--docs/fr/media-src/traitement.xcf (renamed from docs/fr/source/media-src/traitement.xcf)bin938873 -> 938873 bytes
-rw-r--r--docs/fr/principes.md576
-rw-r--r--docs/fr/static/annexe-technique-06-01.png (renamed from docs/fr/source/_static/annexe-technique-06-01.png)bin67750 -> 67750 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-02.png (renamed from docs/fr/source/_static/annexe-technique-06-02.png)bin35582 -> 35582 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-03.png (renamed from docs/fr/source/_static/annexe-technique-06-03.png)bin38777 -> 38777 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-04.png (renamed from docs/fr/source/_static/annexe-technique-06-04.png)bin52412 -> 52412 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-05.png (renamed from docs/fr/source/_static/annexe-technique-06-05.png)bin45259 -> 45259 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-06.png (renamed from docs/fr/source/_static/annexe-technique-06-06.png)bin157204 -> 157204 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-07.png (renamed from docs/fr/source/_static/annexe-technique-06-07.png)bin76811 -> 76811 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-08.png (renamed from docs/fr/source/_static/annexe-technique-06-08.png)bin55055 -> 55055 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-09.png (renamed from docs/fr/source/_static/annexe-technique-06-09.png)bin55308 -> 55308 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-10.png (renamed from docs/fr/source/_static/annexe-technique-06-10.png)bin109448 -> 109448 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-11.png (renamed from docs/fr/source/_static/annexe-technique-06-11.png)bin75886 -> 75886 bytes
-rw-r--r--docs/fr/static/annexe-technique-06-12.png (renamed from docs/fr/source/_static/annexe-technique-06-12.png)bin57338 -> 57338 bytes
-rw-r--r--docs/fr/static/annexe-technique-1-export-qgis.png (renamed from docs/fr/source/_static/annexe-technique-1-export-qgis.png)bin92468 -> 92468 bytes
-rw-r--r--docs/fr/static/geo-parents.png (renamed from docs/fr/source/_static/geo-parents.png)bin22275 -> 22275 bytes
-rw-r--r--docs/fr/static/geo-source-point.png (renamed from docs/fr/source/_static/geo-source-point.png)bin49549 -> 49549 bytes
-rw-r--r--docs/fr/static/geo-source-polygon.png (renamed from docs/fr/source/_static/geo-source-polygon.png)bin40508 -> 40508 bytes
-rw-r--r--docs/fr/static/graphique_structure_ishtar.png (renamed from docs/fr/source/_static/graphique_structure_ishtar.png)bin240291 -> 240291 bytes
-rw-r--r--docs/fr/static/interface-generale.png (renamed from docs/fr/source/_static/interface-generale.png)bin89012 -> 89012 bytes
-rw-r--r--docs/fr/static/ishtar-coins.png (renamed from docs/fr/source/_static/ishtar-coins.png)bin63034 -> 63034 bytes
-rw-r--r--docs/fr/static/ishtar-dublincore.png (renamed from docs/fr/source/_static/ishtar-dublincore.png)bin82073 -> 82073 bytes
-rw-r--r--docs/fr/static/traitement.png (renamed from docs/fr/source/_static/traitement.png)bin392392 -> 392392 bytes
-rw-r--r--docs/fr/templates/annexe-tech-3-variables-gen.jinja (renamed from docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja)0
-rw-r--r--docs/fr/utilisateur.md479
-rw-r--r--docs/mkdocs.fr.yml13
-rw-r--r--docs/old/Makefile130
-rw-r--r--docs/old/source/_static/db-archaeological_context_records.pngbin409355 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-archaeological_files.pngbin426468 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-archaeological_finds.pngbin698882 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-archaeological_operations.pngbin868075 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-archaeological_warehouse.pngbin152727 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-imports.pngbin84248 -> 0 bytes
-rw-r--r--docs/old/source/_static/db-ishtar_common.pngbin524445 -> 0 bytes
-rw-r--r--docs/old/source/conf.py216
-rw-r--r--docs/old/source/index.rst22
-rw-r--r--docs/old/source/installation.rst223
-rw-r--r--requirements_rtd.txt72
74 files changed, 4142 insertions, 813 deletions
diff --git a/.readthedocs.yaml b/.readthedocs.yaml
index 52faf18dd..cd5c2e680 100644
--- a/.readthedocs.yaml
+++ b/.readthedocs.yaml
@@ -1,23 +1,23 @@
-# .readthedocs.yaml
-# Read the Docs configuration file
-# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
-
# Required
version: 2
-formats:
- - pdf
-
# Set the version of Python and other tools you might need
+
build:
os: ubuntu-22.04
tools:
- python: "3.9"
+ python: "3.12"
+ jobs:
+ post_build:
+ - mkdir -p $READTHEDOCS_OUTPUT/pdf/
+ - mv ./_readthedocs/html/build.pdf $READTHEDOCS_OUTPUT/pdf/$READTHEDOCS_PROJECT.pdf
+
+formats:
+ - pdf
-# Build documentation in the docs/ directory with Sphinx
-sphinx:
- configuration: docs/fr/source/conf.py
+mkdocs:
+ configuration: docs/mkdocs.fr.yml
python:
install:
- - requirements: requirements_rtd.txt \ No newline at end of file
+ - requirements: requirements_rtd.txt
diff --git a/docs/fr/Makefile b/docs/fr/Makefile
deleted file mode 100644
index f2f86a692..000000000
--- a/docs/fr/Makefile
+++ /dev/null
@@ -1,141 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = build
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
-
-clean:
- -rm -rf $(BUILDDIR)/*
-
-dot:
- for FILE in `ls source/media-src/*.dot`; do \
- filename=$$(basename -- "$$FILE") ; \
- extension="$${filename##*.}" ; \
- filename="$${filename%.*}" ; \
- dot -Tsvg source/media-src/$$filename.dot > \
- source/media-src/$$filename.svg ; \
- dot -Tpng source/media-src/$$filename.dot > \
- source/_static/$$filename.png ; \
- done
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Ishtar.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Ishtar.qhc"
-
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/Ishtar"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Ishtar"
- @echo "# devhelp"
-
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- make -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/docs/fr/administrateur-applicatif.md b/docs/fr/administrateur-applicatif.md
new file mode 100644
index 000000000..a5cdeb24b
--- /dev/null
+++ b/docs/fr/administrateur-applicatif.md
@@ -0,0 +1,592 @@
+Administration applicative
+==========================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2023-11-16
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+::: {#interface-administrateur}
+La configuration d\'Ishtar se fait essentiellement par le biais de «
+l\'interface d\'administration ». Cette interface propose une vue brute
+des tables en base de données. Même si cette interface propose une
+ergonomie simple et pratique, utiliser cette interface peut nécessiter
+d\'avoir connaissance de notions de base d\'une base de données pour
+pouvoir opérer des choix pertinents.
+:::
+
+L\'interface d\'administration nécessite d\'avoir un compte
+administrateur pour y accéder. Les utilisateurs disposant de ce droit
+ont une icône « roue dentée » sur la barre de menu à l\'extrémité
+droite. Sauf configuration spécifique, cette interface est aussi
+disponible via l\'adresse « <https://monsite-ishtar.net/admin/> »
+(ajouter [/admin/]{.title-ref} à l\'adresse de base).
+
+L\'interface d\'administration présente la liste des différentes tables
+par ordre alphabétique regroupées par application.
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Pour des questions de performance, Ishtar utilise intensément un système
+de cache. Il arrive parfois que celui-ci tarde à se mettre à jour. Il
+peut arriver que des modifications en administration prennent plusieurs
+minutes à être prises en compte.
+:::
+
+Listes de types
+---------------
+
+Ishtar fournit par défaut des données pour chaque liste de choix.
+Chacune de ces listes est paramétrable en administration.
+
+Dans les pages d\'administration, les listes de types se retrouvent sous
+les dénominations « Types de \... », rangées par application :
+
+- **Ishtar - Commun** : contient les listes de types transversales
+ utilisées par plusieurs types d\'éléments ;
+- **Ishtar - Opération** : contient les listes de types concernant les
+ opérations et les entités archéologiques/sites ;
+- **Ishtar - Unités d\'enregistrement** : contient les listes de types
+ relatives aux Unités d\'enregistrement et aux datations ;
+- **Ishtar - Mobilier** : contient les listes de types relatives au
+ mobilier et aux traitements ;
+- **Ishtar - Lieu de conservation** : contient les listes de types
+ relatives aux lieux de conservation et aux contenants ;
+- **Ishtar - Dossier** : contient les listes de types relatives aux
+ dossiers administratifs.
+
+Dans Ishtar, chaque type est défini au minimum par les champs suivants :
+
+- **Dénomination**
+- **Identifiant textuel** : L\'identifiant textuel est une version
+ standardisée du nom. Il ne contient que des lettres en minuscules
+ non accentuées, des nombres et des tirets (-). Chaque identifiant
+ textuel doit être unique dans la liste de types. Ces identifiants
+ sont des clés permettant les échanges entre bases de données et pour
+ des traductions. Ces identifiants peuvent être utilisés dans le code
+ source de l\'application. Une fois créés il ne faut a priori pas
+ changer ces identifiants textuels.
+- **Commentaire** : Le contenu du commentaire est affiché dans l\'aide
+ en ligne sur les formulaires.
+- **Disponibilité** : Décocher ce champ rend indisponible ce type dans
+ les formulaires, sans détruire l\'information pour ce qui est déjà
+ présent en base ; l\'information est toujours visible dans les
+ fiches.
+- **Ordre** : Dans les listes les champs sont ordonnés par ce numéro
+ d\'ordre et en cas d\'égalité par ordre alphabétique.
+
+Certains types permettent de mettre en place une hiérarchie. Pour cela
+le champ **parent** est disponible. Pour chaque type enfant, ce champ
+est renseigné avec le type parent adéquat.
+
+Certains types disposent aussi d\'autres champs spécifiques ; ceux-ci
+sont explicites ou disposent d\'une aide en ligne.
+
+::: {.note}
+::: {.title}
+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 ».
+:::
+
+Champs personnalisés {#champ-personnalises}
+--------------------
+
+Ishtar propose un certain nombre de champs standards et génériques
+permettant de disposer dès le départ d\'une base solide et aussi pour
+assurer un certain degré d\'inter-opérabilité entre les différentes
+installations d\'Ishtar. Néanmoins nul ne peut prétendre à
+l\'exhaustivité et, notamment dans le cadre d\'une utilisation d\'Ishtar
+axée recherche, le besoin se fera probablement sentir d\'ajouter des
+champs.
+
+Dans Ishtar ces champs sont appelés : **Champs personnalisés**. Le
+format JSON étant utilisé pour stocker ces données, le nom **Données
+JSON** est aussi utilisé.
+
+Ajouter un champ personnalisé se fait via l\'interface d\'administration
+au niveau de la rubrique : *Ishtar - Commun › Données JSON - Champs*.
+
+Les différentes données à rentrer sont :
+
+- **Nom** : Ce nom sera repris dans les formulaires et la fiche.
+- **Type de contenu** : Le type d\'objet auquel sera rattaché le
+ champ - Opération, Site, Unité d\'Enregistrement, Mobilier, \...
+- **Clé** : Valeur de la clé dans le format JSON. Cette clé ne doit
+ impérativement comporter que des lettres minuscules, sans accent et
+ des tirets bas « \_ » (ne pas commencer la clé par le tiret bas et
+ ne pas mettre plusieurs tirets bas d\'affilée dans la clé de base).
+ On peut structurer les données personnalisée de manière
+ hiérarchique. Pour les clés hiérarchiques on utilise « \_\_ » entre
+ les sections. Par exemple pour la clé « ma\_sousclef » dans la
+ catégorie « ma\_categorie », la clé sera notée :
+ *ma\_categorie\_\_ma\_sousclef*.
+- **Type** : Les types de données disponibles sont les suivants :
+ - Texte,
+ - Texte long : le composant de saisie sera une zone de texte,
+ - Entier : nombre entier positif ou négatif,
+ - Nombre à virgule,
+ - Booléen : case à cocher - Vrai ou Faux,
+ - Date : un composant permettant le choix de date depuis un
+ calendrier est proposé,
+ - Choix : un composant en autocomplétion sur les valeurs
+ existantes est proposé. L\'utilisateur a la possibilité de
+ rentrer librement de nouvelles valeurs.
+- **Ordre** : Le numéro saisi permet d\'ordonner par défaut ce champ
+ par rapport aux autres champs.
+- **Section** : La section correspond à un titre de section pour
+ présenter ce champ sur la fiche et permettre des regroupements.
+- **Utiliser dans les index de recherche** : Si cette case est cochée,
+ la recherche libre indexera le contenu de ce champ.
+- **Afficher** : Si cette case n\'est pas cochée, ce champ ne sera pas
+ affiché sur la fiche.
+
+Sauf si un champ personnalisé est uniquement destiné à des données
+importées et à un affichage sur la fiche, un champ personnalisé sera
+dans la plupart des cas intégré à un
+`formulaire personnalisé <formulaire-personnalise>`{.interpreted-text
+role="ref"}.
+
+Formulaires personnalisés {#formulaire-personnalise}
+-------------------------
+
+La plupart des formulaires peuvent être personnalisés dans Ishtar,
+notamment tous les formulaires de création/modification ainsi que les
+formulaires de recherche. À ce jour, il n\'est pas encore possible
+d\'ajouter de nouveaux formulaires.
+
+Les formulaires personnalisés permettent deux choses : soustraire de
+l\'affichage du formulaire les champs disponibles par défaut et ajouter
+des champs JSON dans le formulaire. Chaque formulaire personnalisé peut
+être mis à disposition pour tous ou seulement certains utilisateurs.
+
+La configuration de ces champs se fait en administration via : *Ishtar -
+Commun › Formulaires personnalisés*.
+
+La création se fait en deux temps, d\'abord un paramétrage des champs de
+base puis une définition des champs à exclure et des champs JSON à
+ajouter.
+
+Le paramétrage de base demande les champs suivants :
+
+- **Nom** : le nom correspondant au formulaire personnalisé. Ce nom ne
+ sera visible qu\'en administration mais pour s\'y retrouver, il doit
+ à la fois reprendre le nom du formulaire ainsi que le contexte pour
+ lequel il a été défini. Par exemple : « Mobilier - 020 - Général -
+ Tout utilisateur » ou « Mobilier - 030 - Conservation - Saisie
+ terrain ».
+- **Formulaire** : le formulaire à personnaliser. Le nom utilisé
+ permet d\'identifier assez simplement le formulaire correspondant,
+ car il correspond dans l\'ordre (séparé par des tirets) au :
+ - type d\'objet concerné (par exemple : « Mobilier »),
+ - éventuellement, le numéro d\'ordre dans les formulaires
+ successifs,
+ - nom du formulaire.
+- **À qui s\'applique ce formulaire**, cela peut être au choix :
+ - à tous les utilisateurs,
+ - à certains utilisateurs en particulier,
+ - à certains types d\'utilisateurs.
+
+Une fois ce paramétrage de base enregistré, la configuration précise du
+formulaire peut se faire :
+
+- **champs à exclure** : chaque champ de base présent dans le
+ formulaire actuel peut être sélectionné dans la liste pour être
+ écarté de la saisie.
+- **champs JSON** : tous les champs JSON préalablement paramétrés
+ concernant l\'élément courant (mobilier, OA\...) peuvent être
+ sélectionnés. La dénomination permet éventuellement de surcharger le
+ nom par défaut du champ JSON. L\'ordre permet de placer le champ
+ dans le formulaire. L\'aide permet éventuellement d\'ajouter un
+ texte pour aider à la saisie.
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Sur les formulaires de création, il est impératif de ne pas exclure des
+champs obligatoires sans quoi la création devient impossible.
+:::
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+En tant qu\'administrateur, en modifiant son profil depuis les pages
+d\'administration (*Ishtar - Commun › Profils d\'utilisateurs*) et en
+cochant « Afficher les numéros des champs », les numéros des champs
+actuels des formulaires s\'affichent sur l\'interface, cela permet ainsi
+de placer plus aisément les champs personnalisés.
+:::
+
+Gestion des permissions
+-----------------------
+
+### Gestion des comptes {#gestion-comptes}
+
+Dans Ishtar, un compte doit être associé à une personne. Si la personne
+n\'existe pas dans la base, il faut l\'ajouter via l\'interface
+principale d\'Ishtar : *Annuaire › Personne › Ajout*.
+
+Ensuite on crée un compte associé à cette personne, toujours via
+l\'interface d\'Ishtar : *Administration › Compte › Ajout/modification*.
+Dans les différents panneaux, il est demandé : l\'identifiant du compte,
+le courriel rattaché, le mot de passe puis le type de profil.
+
+Les types de profil définiront les types de permissions auxquelles aura
+accès l\'utilisateur. Sur ces types de profil, des zones peuvent être
+définies afin de permettre des règles de rattachement spécifique (cf.
+`permissions dans Ishtar<permissions-ishtar>`{.interpreted-text
+role="ref"}).
+
+Cette interface de création de compte permet aussi de modifier le mot de
+passe de comptes existants.
+
+### Permissions dans Ishtar {#permissions-ishtar}
+
+Les permissions dans Ishtar sont essentiellement gérées par « Type de
+profil ». Chaque compte a un ou plusieurs « types de profil » associés à
+son compte. Chaque type de profil donne accès à des actions et des accès
+sur des types d\'objets.
+
+La création/configuration d\'un type de profil se fait via : *Ishtar -
+Commun › Types de profil* :
+
+- **dénomination** : ce champ doit être explicite, car il va être
+ retrouvé au niveau de l\'interface utilisateur.
+- **identifiant textuel** : rempli selon les règles habituelles des
+ identifiants textuels.
+- **groupes** : listes des groupes auxquels le profil est rattaché.
+
+Chaque groupe correspond à un type de permission pour un élément précis
+de la base de données :
+
+- droit de lecture ;
+- droit d\'ajout ;
+- droit de modification/suppression.
+
+Chacun de ces droits est décliné en deux modalités :
+
+- droits sur tous les éléments ;
+- droit sur les éléments rattachés.
+
+Un élément est dit « rattaché » à une personne en fonction de règles
+précises spécifiées dans
+l\'`annexe 1 - détail des permissions <annexe-1-permission-action>`{.interpreted-text
+role="ref"}. La notion de rattachement permet de spécifier finement les
+permissions pour des personnes qui sont directement associées à
+l\'élément. Par exemple cela permet donner les droits de modification du
+mobilier d\'une opération au responsable scientifique de cette
+opération.
+
+En pratique, globalement, les groupes de droits permettent d\'accéder à
+certaines actions :
+
+- le droit de lecture permet une ouverture de la fiche correspondant à
+ l\'élément ;
+- le droit d\'ajout permet d\'accéder aux actions d\'ajout d\'un
+ nouvel élément ;
+- le droit de modification/suppression permet d\'accéder aux actions
+ concernant la modification/suppression des éléments.
+
+Dans le détail, il y a certaines données, actions qui sont accessibles
+en fonction d\'appartenance à des groupes en particulier. Tout cela est
+détaillé dans
+l\'`annexe 1 - détail des permissions <annexe-1-permission-action>`{.interpreted-text
+role="ref"}.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+La page *Ishtar - Commun › Résumés des types de profil* permet
+d\'accéder à un tableau qui reprend et rend explicites toutes les
+permissions associées aux types de profil.
+:::
+
+### Permissions dans les pages d\'administration
+
+Les permissions des pages d\'administration sont gérées différemment.
+Elles utilisent le système de permission du framework Django, framework
+(cadre de développement logiciel) utilisé par Ishtar. Une fois le compte
+créé, les droits se spécifient dans les pages d\'administration :
+*Authentification et autorisation › Utilisateurs*.
+
+L\'ouverture de l\'accès aux pages d\'administration se fait en cochant
+le « Statut équipe ». Si l\'on souhaite n\'ouvrir l\'accès qu\'à
+certaines pages spécifiques, on ajoute les « Permissions de
+l\'utilisateur » correspondant aux tables que l\'on souhaite ouvrir, si
+l\'on souhaite ouvrir l\'accès à toutes les tables, il suffit de cocher
+le « Statut super-utilisateur ».
+
+Patrons de documents
+--------------------
+
+### Principes de base
+
+Ishtar propose une génération automatisée de document. Depuis un patron
+au format LibreOffice (ODT), les données relatives à un élément (acte
+administratif, mobilier\...) remplacent les variables du patron pour
+obtenir le document désiré.
+
+On crée le patron au format ODT avec un contenu adapté, puis depuis
+l\'interface d\'administration, sous l\'entrée *Ishtar - Commun ›
+Patrons de document › Document de référence*, on créé un patron de
+document avec ce fichier ODT associé au type d\'élément pour lequel il
+est destiné.
+
+Le document peut alors être généré depuis n\'importe quelle fiche de
+l\'élément concerné (en haut à droite sous « Documents »).
+
+### Un premier patron
+
+Pour créer un patron, la première étape est de récupérer toutes les
+variables disponibles pour l\'élément à partir duquel on veut générer un
+document. Il existe pour cela un [document de
+référence](https://gitlab.com/iggdrasil/ishtar/raw/main/archaeological_operations/tests/document_reference.odt)
+que l\'on peut attacher à l\'élément pour lequel on souhaite éditer un
+nouveau document.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+En cas d\'indisponibilité du lien pour ce document, ce document est très
+simple et peut être recréé facilement, il suffit d\'insérer :
+`{{VALUES}}` dans un document ODT vide et de sauvegarder le document.
+:::
+
+Depuis *Ishtar - Commun › Patrons de document › Document de référence*,
+on ajoute un nouveau patron de document : « Document de référence »
+auquel on associe le document de référence téléchargé et le type
+d\'élément pour lequel on souhaite créer un patron de document.
+
+Ensuite, il faut récupérer un document de référence généré depuis la
+fiche d\'un élément contenant tous les champs que l\'on souhaite
+exploiter.
+
+On ouvre ce document sous LibreOffice. Le document produit contient une
+liste de clé avec la valeur associée concernant l\'élément que l\'on a
+choisi.
+
+Les différentes clés vont permettre de constituer un patron répondant à
+ce qui est attendu. Pour cela reprendre un exemple du document que l\'on
+souhaite générer (toujours au format ODT) et remplacer chaque occurence
+d\'une valeur par la clé en reprenant la
+`syntaxe Jinja <formules-syntaxe-jinja>`{.interpreted-text role="ref"}
+(Jinja est le nom de la bibliothèque utilisée). Une fois quelques
+substitutions faites, on peut l\'enregistrer et créer le patron dans
+l\'interface d\'administration Ishtar. Ce premier patron est alors
+disponible depuis la fiche des éléments.
+
+Configuration du profil d\'instance Ishtar {#configuration-instance-ishtar}
+------------------------------------------
+
+*En cours de rédaction\...*
+
+### Identifiants et index personnalisés
+
+Pour chaque type d\'élément principal, il est possible de configurer le
+profil Ishtar pour personnaliser :
+
+- l\'identifiant externe : c\'est un identifiant textuel unique dans
+ la base qui permet de faire des rapprochements de manière non
+ ambiguë. Il est souvent utilisé pour les imports. Par exemple, un
+ identifiant externe pour les unités d\'enregistrement peut être
+ \"code patriarche de l\'opération-identifiant de l\'unité
+ d\'enregistrement\" ou alors \"code patriarche de
+ l\'opération-section parcelle-numéro parcelle-identifiant de
+ l\'unité d\'enregistrement\". Des identifiants externes sont
+ paramétrés par défaut pour chaque type d\'élément principale. Note :
+ l\'identifiant externe de l\'opération est toujours le code
+ patriarche et n\'est pas paramétrable.
+- l\'identifiant complet (optionnel) : cet identifiant est un
+ identifiant de gestion paramétrable. Cet identifiant peut par
+ exemple se distinguer de l\'identifiant externe pour incorporer des
+ codes matières.
+- clés pour index personnalisé : un index personnalisé peut être
+ défini en fonction d\'une ou plusieurs clés reprenant les champs.
+ Par exemple une clé opération peut être utilisée pour générer un
+ index numérotant de 1 à n le mobilier sur une opération.
+
+Pour définir identifiant externes et identifiant complet, on utilise des
+formules. Deux types de syntaxes sont utilisées : une
+`syntaxe simple <formules-syntaxe-simple>`{.interpreted-text role="ref"}
+et une `syntaxe Jinja <formules-syntaxe-jinja>`{.interpreted-text
+role="ref"} (nom de la bibliothèque utilisée). Ces deux syntaxes
+utilisent des variables relatives à l\'élément. L\'utilisation de ces
+variables est explicitée dans
+l\'`annexe technique 3 - variables <annexe-technique-3-variables>`{.interpreted-text
+role="ref"}.
+
+Formules
+--------
+
+### Syntaxe simple {#formules-syntaxe-simple}
+
+Cette syntaxe permet d\'utiliser directement les variables en utilisant
+la notation accolade simple `{}`. Par exemple : :
+
+ OA-{code_patriarche}
+
+Cette notation se traduira ainsi par des rendus comme :
+[OA-061234]{.title-ref} ou [OA-44789]{.title-ref}.
+
+### Syntaxe Jinja {#formules-syntaxe-jinja}
+
+Cette syntaxe permet de faire de faire des substitutions de manière plus
+fine qu\'avec la syntaxe simple. Cette syntaxe est utilisée
+systématiquement pour les patrons de document, un sous-ensemble de cette
+syntaxe (variables et structures conditionnelles) peut-être utilisée
+optionnellement pour les identifiants personnalisés.
+
+#### Variables
+
+L\'accès aux [variables \<annexe-technique-3-variables\>]{.title-ref} se
+fait par la notation double accolade `{{ }}`. Ainsi par exemple, pour
+accéder aux variables [nom\_de\_ma\_clef\_1]{.title-ref} et
+[nom\_de\_ma\_clef\_2]{.title-ref} : :
+
+ Je, soussigné, {{nom_de_ma_clef_1}}, vous accorde un prêt de {{nom_ma_clef_2}}.
+
+#### Conditions
+
+Des structures conditionnelles peuvent être mises en place. Cela permet
+notamment de tester si une valeur a été renseignée et de permettre de
+contextualiser l\'affichage en fonction de cela. Exemple : :
+
+ Ce traitement sous
+ {% if responsable %}la responsabilité de {{responsable}}
+ {% else %}une responsabilité à définir
+ {% endif %} se tiendra...
+
+Les structures conditionnelles se structurent autour des mots clés `if`,
+`else` et `endif`. On utilise `{%` et `%}` autour de ces mots clés. La
+section `else` est facultative.
+
+#### Parcours de liste
+
+Certaines clés peuvent parfois renvoyer à des listes d\'éléments, chacun
+ayant des attributs. On peut alors parcourir cette liste d\'élément de
+cette manière : :
+
+ {% for element in liste_elements %}
+ {{element.nom}} - {{element.prenom}}
+ {% endfor %}
+
+Cela se structure autour des mots clés `for`, `in` et `endfor`. Au lieu
+de doubles accolades, `{%` et `%}` encadrent ces mots clés.
+
+Journalisation RGPD
+-------------------
+
+Conformément aux [recommandations de la
+CNIL](https://www.cnil.fr/fr/la-cnil-publie-une-recommandation-relative-aux-mesures-de-journalisation),
+une journalisation des actions relatives aux traitements, au sens RGPD,
+de données personnelles est possible dans Ishtar.
+
+La journalisation consiste à assurer la traçabilité des actions opérées
+sur des données personnelles. La traçabilité est assurée en enregistrant
+:
+
+- l\'identifiant utilisateur qui réalise le traitement,
+- la date et l'heure de l'accès,
+- l\'adresse IP de connexion,
+- l\'information si cette IP est « routable » (i.e l\'IP est routable
+ si la connexion vient d\'Internet sinon la connexion vient du réseau
+ interne au serveur),
+- le type de traitement,
+- des liens vers les personnes concernées par le traitement.
+
+Si une personne est supprimée de la base de données, nom et prénom de
+cette personne sont sauvegardées dans une table intermédiaire le temps
+que des données de journalisation concernant cette personne existent.
+
+Les types de traitements identifiés sont :
+
+- consultation de l\'annuaire (listing de personnes),
+- export de l\'annuaire,
+- consultation de la notice personne,
+- export de la notice personne,
+- création de personne (formulaire ou import),
+- modification de personne (formulaire, import ou fusion),
+- suppression de fiche personne.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Cette journalisation n\'est destinée qu\'à des seules fins
+d'investigation en cas d'incident, d'intrusion dans les systèmes
+informatiques ou de détournement d'usage des traitements de données par
+les personnes habilitées. Tout autre usage n\'est a priori pas légitime
+et relève d\'une infraction au règlement RGPD.
+:::
+
+Cette journalisation est désactivée par défaut. Elle peut être activée
+par l\'administrateur serveur (paramètre [GDPR\_LOGGING]{.title-ref} à
+[True]{.title-ref} dans le fichier [local\_settings.py]{.title-ref}).
+
+La durée de conservation des données de journalisation est fixée à 6
+mois (durée minimale préconisée par la CNIL). Cette durée peut être
+changée par l\'administrateur serveur (paramètre
+[GDPR\_RETENTION\_PERIOD]{.title-ref} dans le fichier
+[local\_settings.py]{.title-ref}) mais il convient de rester dans le
+cadre légal (sauf exception la durée de conservation ne peut excéder un
+an). Au-delà de la durée paramétrée les données sont supprimées
+automatiquement (un script vérifie quotidiennement la péremption des
+données).
+
+Ces données sont accessibles en consultation uniquement (la suppression
+et la modification ne sont pas possible) via l\'interface
+d\'administrateur aux utilisateurs : statut « super utilisateur » ou
+dans le groupe « Administrateur RGPD » (et disposant du statut équipe :
+cf. `gestion des comptes <gestion-comptes>`{.interpreted-text
+role="ref"} ). Un export de ces données en CSV est possible pour
+analyse. Le cas échéant, l\'administrateur RGPD doit prendre des mesures
+organisationnelles afin de garantir une détruction de cet export une
+fois que celui-ci a été exploité.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Si des utilisateurs disposent d\'un statut « super utilisateur » mais ne
+sont pas administrateur RGPD, il est nécessaire de leur retirer ce
+statut pour leur donner le groupe « administrateur technique ».
+:::
+
+Lors du contrôle de ces données, une attention particulière sera portée
+sur les lignes ne disposant pas de l\'information de l\'utilisateur
+et/ou de l\'adresse IP associée et/ou si l\'adresse IP est non routable.
+Il peut s\'agir d\'entrées relatives à, dans le cas le plus courant, un
+script de maintenance, à un dysfonctionnement ou alors, dans le pire des
+cas, d\'une compromission de la base de données. Remontez l\'information
+au plus vite au référent administration système.
diff --git a/docs/fr/administrateur-serveur.md b/docs/fr/administrateur-serveur.md
new file mode 100644
index 000000000..b988bbe34
--- /dev/null
+++ b/docs/fr/administrateur-serveur.md
@@ -0,0 +1,285 @@
+Administration serveur
+======================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2023-06-12
+
+Copyright
+
+: CC-BY 3.0
+
+Ce document présente les instructions d\'installation et de mise à jour
+d\'Ishtar.
+
+Seule l\'installation sous Debian GNU/linux via le paquet Debian est
+décrite. Cet environnement est le seul sous lequel un suivi de sécurité
+et des dysfonctionnements est assuré, installer Ishtar hors de cet
+environnement est déconseillé.
+
+Un nom de domaine dédié est nécessaire pour chaque instance (une
+instance Ishtar n\'est pas installable dans un sous-répertoire). Par
+contre un sous-domaine est tout à fait utilisable (par exemple :
+*ishtar.mon-domaine.net*).
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Sauf mention explicite, chaque commande est exécutée en tant
+qu\'utilisateur root. Les utilisateurs de sudo l\'ajouteront à chaque
+commande.
+:::
+
+Installation sur serveur Debian Bullseye
+----------------------------------------
+
+Un dépôt a été mis en place pour installer sous Debian Bullseye. Ce
+dépôt est signé, pour ajouter la clé du dépôt à votre gestionnaire de
+paquet, lancez la commande :
+
+ wget -O - http://deb.iggdrasil.net/iggdrasil.gpg.key | apt-key add -
+
+Puis, au choix, ajoutez le dépôt à votre /etc/apt/sources.list :
+
+ deb http://deb.iggdrasil.net/apt/debian/ bullseye main
+ deb-src http://deb.iggdrasil.net/apt/debian/ bullseye main
+
+Ou sauvegardez le fichier
+[iggdrasil.list](http://deb.iggdrasil.net/apt/debian/dists/bullseye/iggdrasil.list)
+dans votre répertoire **/etc/apt/sources.list.d/** :
+
+ wget -O - http://deb.iggdrasil.net/apt/debian/dists/bullseye/iggdrasil.list > /etc/apt/sources.list.d/iggdrasil.list
+
+Ensuite mettez à jour la base de données de votre gestionnaire de paquet
+et installez le paquet :
+
+ apt update
+ apt install python3-django-ishtar
+
+Deux paquets optionnels peuvent être installés :
+
+- **ishtar-tasks** : installe un service de tâche pour gérer en tâche
+ de fond les opérations longues (par exemple les imports).
+ L\'installation de ce paquet est vivement conseillée sauf si votre
+ serveur a une mémoire vive limitée (par exemple nano-ordinateur).
+- **ishtar-libreoffice** : installe libreoffice en mode serveur pour
+ faciliter des imports / exports aux formats bureautique. Ce paquet
+ est nécessaire pour générer les tableaux depuis les types d\'import.
+ Il dépend de la version libreoffice-nogui : la couche graphique
+ n\'est pas installée sur le serveur.
+
+Enfin pour créer une nouvelle instance d\'Ishtar :
+
+ ishtar-prepare-instance
+
+Un ensemble de questions vous sera posé afin de déterminer les
+paramètres qui concernent cette instance.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Le nom de domaine doit bien entendu pointer vers l\'adresse IP du
+serveur. Si à l\'issue de l\'installation, le service n\'est pas
+joignable, verifiez bien votre configuration DNS ou le cas échéant
+verifez bien auprès du gestionnaire de nom de domaine que c\'est le cas.
+:::
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+En termes de serveur Web, l\'installateur fonctionne avec la
+configuration que nous considérons comme la plus optimisée qui est le
+couple nginx / uwsgi. Si vous avez des services tournant sous Apache ou
+sous un autre serveur web, plusieurs options se présentent à vous :
+
+- faire fonctionner nginx sur un autre port ;
+- faire fonctionner vos autres services avec nginx (je vous laisse
+ découvrir l\'abondante documentation en ligne en cherchant « nginx +
+ le nom de mon service ») ;
+- configurer Ishtar pour fonctionner avec votre serveur web
+ (référez-vous à la [documentation de
+ Django](https://docs.djangoproject.com/fr/2.2/howto/deployment/wsgi/)).
+:::
+
+L\'installateur vous demandera un identifiant / mot de passe pour le
+compte administrateur. Une fois l\'instance préparée, une base de
+données a été créée avec un nom du type
+ishtar-le\_nom\_de\_mon\_instance (le nom que vous avez donné), Ishtar
+est joignable à l\'adresse donnée par la variable URL et les données de
+cette instance sont stockées dans le répertoire
+/srv/ishtar/le\_nom\_de\_mon\_instance.
+
+Initialisation de la base de données
+------------------------------------
+
+Ishtar dispose de nombreuses tables de paramétrage permettant d\'avoir
+un logiciel au plus proche de vos besoins. Remplir toutes ces tables est
+fastidieux, c\'est pour cela que des jeux de données de base sont
+disponibles. Lors de l\'installation du paquet, à l\'exception des
+communes (trop lourdes pour être incluses par défaut), cette
+initialisation est faite.
+
+### Initialisation des communes
+
+Une liste des communes française peut être téléchargée et chargée :
+
+ cd /tmp
+ wget "http://ishtar-archeo.net/fixtures/initial_towns-fr.tar.bz2"
+ tar xvjf initial_towns-fr.tar.bz2
+
+ ISHTAR_PATH=/srv/ishtar # répertoire par défaut de l'installation pour le paquet Debian
+ PROJECT_PATH=$ISHTAR_PATH/le_nom_de_mon_instance
+ cd $PROJECT_PATH
+ ./manage.py loaddata /tmp/towns_norel-fr.json
+ ./manage.py loaddata /tmp/towns-fr.json
+ rm /tmp/initial_towns-fr.tar.bz2
+ rm /tmp/towns-*
+
+Mises à jour
+------------
+
+### Mise à jour version 3 (sur Debian Buster) vers la version 4 (sur Debian Bullseye)
+
+Comme lors de toute migration non triviale, il est préférable de faire
+une sauvegarde de la base de données et des médias associés juste avant
+de lancer la mise à jour.
+
+Le changement de version nécessite préalablement la mise à jour vers la
+version de Debian 11 Bullseye.
+
+Pour faciliter cette mise à jour, si ceux-ci ont été installés, il est
+conseillé de purger en amont les paquets optionnels
+[ishtar-libreoffice]{.title-ref} et [ishtar-tasks]{.title-ref} ainsi que
+tous les paquets [libreoffice]{.title-ref} :
+
+ apt purge ishtar-libreoffice ishtar-tasks libreoffice-*
+ apt autoremove
+
+Ceux-ci pourront être réinstallés une fois la mise à jour vers Bullseye
+finie.
+
+Éteignez les services web et ensuite procédez à la mise à jour de Debian
+selon la documentation Debian officielle (ou votre protocole/vos
+habitudes). Ne changez pas tout de suite le fichier source list (ou les
+lignes) correspondant au dépôt Ishtar.
+
+Ensuite vous pouvez opérer la migration de la base de données PostgreSQL
+vers la version 13 :
+
+ systemctl stop postgresql
+ pg_dropcluster 13 main
+ pg_upgradecluster -m dump 11 main # utiliser "dump" pour éviter les complications avec postgis
+ systemctl start postgresql
+
+Mettez à jour vers Bullseye le dépôt correspondant à Ishtar (a priori
+dans le fichier [/etc/apt/sources.list.d/iggdrasil.list]{.title-ref}) et
+lancez la mise à jour :
+
+ apt update
+ apt upgrade
+ apt dist-upgrade
+
+Le paquet [python3-weasyprint]{.title-ref} empêche parfois la mise à
+jour (à cause d\'un conflit de version). Dans ce cas, le supprimer
+explicitement et relancer le paramétrage :
+
+ apt remove python3-weasyprint
+ apt --fix-broken install
+
+Pour finaliser la mise à jour des paquets, supprimer les paquets
+obsolètes :
+
+ apt autoremove
+
+Vous pouvez ensuite, le cas échéant, ré-installer les paquets
+[ishtar-libreoffice]{.title-ref} et [ishtar-tasks]{.title-ref} :
+
+ apt install ishtar-tasks ishtar-libreoffice
+
+On peut ensuite passer à la migration des données. Attention cette
+migration peut être longue (plusieurs heures), assurez-vous que le
+processus de migration ne soit pas interrompu (a minima lancez-le via un
+outil comme [screen]{.title-ref}). Pour chaque instance, dans le
+répertoire [/srv/ishtar/]{.title-ref} lancez les commandes :
+
+ cd /srv/ishtar/{le_nom_de_mon_instance}
+ # mise à jour des données par défaut
+ ./manage.py loaddata /usr/share/python3-django-ishtar/fixtures/initial_data-auth-fr.json
+ ./manage.py loaddata /usr/lib/python3/dist-packages/archaeological_files/fixtures/initial_data-fr.json
+ # migration des données pour la nouvelle gestion géographique
+ editor local_settings.py
+ (...) # à la fin du fichier ajouter les lignes
+ ISHTAR_MIGRATE_V4 = True
+ USE_BACKGROUND_TASK = False
+
+ ## nombre-de-processus dépend du processeur et du nombre de fils d'exécution disponible
+ ## plus il y en a, plus rapide est la conversion mais laissez quand même un minimum de marge
+ ## pour ne pas rendre la machine inutilisable
+ ./manage.py migrate_to_geo_v4 --process {nombre-de-processus}
+ # une fois la migration finie
+ editor local_settings.py
+ (...) # supprimer les deux lignes ajoutées
+
+Si vous utilisez [ishtar-tasks]{.title-ref}, sur cette nouvelle version
+la gestion du service [rabbitmq]{.title-ref} n\'est plus assurée via
+[systemd]{.title-ref} mais via [supervisor.]{.title-ref} La migration de
+[systemd]{.title-ref} vers [supervisor]{.title-ref} n\'est pas gérée
+automatiquement via le paquet, seules les nouvelles instances ont un
+fichier [supervisor]{.title-ref} créé à l\'installation. Pour gérer
+cette migration supprimez les fichiers de configuration
+[systemd]{.title-ref} résiduels :
+
+ rm -f /etc/systemd/system/rabbitmq-notify-email\@.service
+ rm -f /etc/systemd/system/rabbitmq-server.service
+ rm -f /etc/systemd/system/multi-user.target.wants/rabbitmq-server.service
+
+Puis créez les fichiers de configuration [supervisor]{.title-ref} pour
+chaque instance :
+
+ rm -f /etc/monit/conf-enabled/celery-*
+ rm -f /etc/systemd/system/celery-*
+ rm -f /etc/systemd/system/multi-user.target.wants/celery-*
+
+ # pour chaque instance listée dans /etc/ishtar/instances
+ editor /etc/supervisor/conf.d/celery_le_nom_de_mon_instance.conf
+
+ [program:celery_le_nom_de_mon_instance]
+ command=/usr/bin/celery -A le_nom_de_mon_instance worker --loglevel=INFO -c 6
+ directory=/srv/ishtar/
+ user=www-data
+ autostart=true
+ autorestart=true
+ stdout_logfile=/var/log/celery/le_nom_de_mon_instance.log
+ redirect_stderr=true
+ stopasgroup=true
+
+ supervisorctl reread # prise en compte des nouveaux fichiers de configuration
+ supervisorctl update # mise à jour
+
+La migration est terminée. Redémarrez la machine et assurez-vous que
+tous les services fonctionnent convenablement en particulier via les
+commandes [systemctl \--failed]{.title-ref} et [supervisorctl
+status]{.title-ref}.
+
+En ce qui concerne le paramétrage, il est impératif de modifier les
+types de droits utilisateurs pour l\'accès aux données géographiques.
+Ouvrez votre instance sur un navigateur web en admin et rendez-vous à la
+page :
+[http(s)://{my-ihstar}/admin/ishtar\_common/profiletypesummary/]{.title-ref}
+pour ajouter les permissions nécessaires.
+
+Une fois que vous vous serez assuré que tout est fonctionnel, vous
+pourrez effacer l\'ancien cluster PostgreSQL correspondant à la version
+11 :
+
+ pg_dropcluster 11 main
diff --git a/docs/fr/annexe-1-permission-action.md b/docs/fr/annexe-1-permission-action.md
new file mode 100644
index 000000000..40c4fbd64
--- /dev/null
+++ b/docs/fr/annexe-1-permission-action.md
@@ -0,0 +1,90 @@
+Annexe 1 - Détails des permissions {#annexe-1-permission-action}
+==================================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2023-10-26
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+Imports
+-------
+
+### Définition des droits
+
+Par défaut, les utilisateurs avec un profil « Administrateur » ont accès
+à tous les droits relatifs aux imports.
+
+Les droits relatifs aux imports utilisent les groupes suivant :
+
+- Imports : lecture
+- Imports : ajout
+- Imports : modification
+- Imports : suppression
+- Imports rattachés : lecture
+- Imports rattachés : ajout
+- Imports rattachés : modification
+- Imports rattachés : suppression
+
+Pour que les droits relatifs à ces groupes soient effectifs, ils doivent
+être rattachés aux types de profils des utilisateurs (cf.
+`permissions dans Ishtar<permissions-ishtar>`{.interpreted-text
+role="ref"}).
+
+### Import rattaché
+
+Un droit non rattaché ouvre les droits pour tous les éléments. Un import
+est rattaché à un utilisateur si cet utilisateur fait partie des
+utilisateurs associés au type d\'import («
+<https://monsite-ishtar.net/admin/ishtar_common/importertype/> ») de
+l\'import en question.
+
+L\'utilisateur bénificiera du droit rattaché à un import si :
+
+- son profil utilisateur a le droit « Import rattaché » correspondant.
+- il est listé comme utilisateur du type d\'import de cet import.
+
+### Permission lecture
+
+Cette permission d\'accéder aux fiches imports depuis les fiches
+d\'éléments créés ou mis à jour. Depuis cette fiche ce droit permet de
+visualiser les CSV rattachés aux imports.
+
+### Permission ajout
+
+Cette permission permet de créer de nouveaux imports.
+
+Le droit « Imports rattachés : ajout » ne permet de créer des imports
+que pour les types d\'imports pour lesquels l\'utilisateur est listé.
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Cette permission est inefficiente sans la permission « Import :
+modification » car sans cette permission l\'accès à la liste des imports
+n\'est alors pas possible.
+:::
+
+### Permission modification
+
+Cette permission permet :
+
+- d\'accéder à la liste des imports,
+- de modifier un import existant,
+- d\'analyser, de faire les correspondances, de lancer l\'importation
+ d\'un import.
+
+### Permission suppression
+
+Cette permission permet de supprimer les imports **et** par conséquent
+les éléments auxquels sont associés ces imports.
diff --git a/docs/fr/annexe-2-ex-flux-ope.md b/docs/fr/annexe-2-ex-flux-ope.md
new file mode 100644
index 000000000..4c6ebb33b
--- /dev/null
+++ b/docs/fr/annexe-2-ex-flux-ope.md
@@ -0,0 +1,180 @@
+Annexe 2 - Exemple de flux opérationnel : prêt pour exposition
+==============================================================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2018-12-04
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+Description
+-----------
+
+Le flux opérationnel « Prêt pour exposition » pourrait par exemple se
+décomposer suivant ces différentes étapes :
+
+> - pré-sélection du mobilier pour l\'exposition par les gestionnaires
+> de mobilier ;
+> - sélection du mobilier depuis cette pré-selection par la structure
+> emprunteuse ;
+> - édition des documents administratifs : convention de prêt,
+> assurance ;
+> - départ effectif du mobilier concerné ;
+> - gestion du retour du mobilier.
+
+Pré-requis :
+
+> - les patrons des actes administratifs associés à la demande de prêt
+> ont été créés,
+>
+> - la personne en charge du prêt a un compte Ishtar qui dispose au
+> minimum :
+>
+> > - de droits de lecture et modification sur le mobilier
+> > éventuellement concerné par la sélection,
+> > - d\'un droit de création de demande de traitement,
+> > - d\'un droit de création d\'acte administratif.
+>
+> - les gestionnaires de mobilier concernés ont un compte sur Ishtar
+> qui disposent au minimum de droits de lecture sur le mobilier
+> éventuellement concerné par la sélection.
+>
+> - la structure emprunteuse dispose d\'un compte Ishtar avec droit de
+> lecture sur le mobilier rattaché.
+
+### Pré-sélection du mobilier pour l\'exposition par les gestionnaires de mobilier
+
+1. Un des responsables de mobilier créé un panier depuis l\'action
+ rapide « Panier » sur les listes de mobilier (par exemple sur
+ *Mobilier › Recherche*) ou depuis *Mobilier › Panier › Ajout*.
+2. Il ajoute quelques éléments à ce panier via l\'action rapide «
+ Panier » ou *Mobilier › Panier › Gestion des éléments*.
+3. Ce responsable partage ce panier en lecture/édition avec les autres
+ gestionnaires de mobilier via *Mobilier › Panier › Modification*.
+4. Les autres gestionnaires peuvent de la même manière ajouter, enlever
+ des éléments à ce panier via l\'action rapide « Panier » ou
+ *Mobilier › Panier › Gestion des éléments*.
+5. Fin d\'étape : tous les gestionnaires ont signifié (oralement, par
+ courriel, etc.) que la pré-sélection actuelle convenait.
+
+### Sélection du mobilier depuis cette pré-selection par la structure emprunteuse
+
+1. Si l\'on souhaite conserver cette pré-sélection avant partage et
+ modification, elle peut être dupliquée depuis la fiche associée au
+ panier (ouverte par exemple depuis : *Mobilier › Panier › Recherche*
+ ou depuis l\'icône « Paniers » sur une des fiches mobilier concernée
+ par ce panier) avec l\'icône « Dupliquer ».
+2. Le responsable du prêt partage le panier en lecture/édition avec la
+ structure emprunteuse via *Mobilier › Panier › Modification* et
+ l\'informe que la pré-selection est disponible (via courriel,
+ téléphone).
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Un lien direct peut être donné à la structure emprunteuse pour quelle
+gère son panier, il suffit d\'aller sur le panneau de gestion des
+éléments du panier concerné (*Mobilier › Panier › Gestion des éléments*)
+et de recopier l\'adresse dans la barre d\'adresse. La structure
+emprunteuse devra préalablement s\'identifier avant d\'accéder à ce
+lien.
+:::
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Si le droit de lecture de mobilier de la structure emprunteuse est basé
+sur le mobilier rattaché via ce panier, enlever un élément du panier lui
+retire le droit de consulter cet élément. Une astuce peut être de
+partager le panier dupliqué : une fois en lecture seule, une fois en
+lecture/édition, ainsi même si un élément est retiré du panier en
+lecture/édition, il reste « rattaché » à la structure emprunteuse par le
+panier en lecture seule. Le panier en lecture simple peut aussi recevoir
+des éléments disponibles pour prêt mais pas forcément retenu dans la
+sélection proposée.
+:::
+
+3. La structure emprunteuse retire du panier les éléments qui ne
+ l\'intéresse pas.
+4. Fin d\'étape : la structure emprunteuse a fini sa sélection et
+ confirme son intérêt pour un prêt (par courriel, \...).
+
+### Édition des documents administratifs
+
+1. Le responsable du prêt enleve le partage en modification du panier
+ (*Mobilier › Panier › Modification*).
+2. Le responsable du prêt crée une demande de traitement « Demande de
+ prêt pour exposition » depuis *Demande de traitement › Ajout*. Il
+ est important de bien renseigner les différents champs pour que la
+ génération des documents se passe bien. Le panier concerné doit être
+ associé à cette demande de traitement.
+3. Le responsable du prêt crée les actes administratifs correspondant
+ aux documents administratifs attendus, via l\'icône « + acte admin.
+ » de la fiche de demande de traitement ou via *Demande de traitement
+ › Acte administratif › Ajout*.
+4. Un document est généré pour chaque acte administratif depuis
+ *Demande de traitement › Acte administratif › Documents*. Ceux-ci
+ peuvent alors être transmis à la structure demandeuse.
+5. Fin d\'étape : les documents ont été retournés signés. Ils sont
+ éventuellement numérisés et ajoutés en tant que documents à la
+ demande de traitement.
+
+### Départ effectif du mobilier concerné
+
+1. Le responsable du prêt crée un traitement « Prêt » depuis la fiche
+ de demande de traitement correspondante avec le bouton « Ajouter le
+ traitement associé ». Un contenant correspondant au lieu d\'emprunt
+ doit être spécifié.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Le traitement peut être ajouté depuis la fiche panier ou via *Traitement
+› Traitement simple - Création* mais cela demande de re-sélectionner des
+éléments du panier ou de la demande de traitement associée. Passer par
+la fiche de demande de traitement correspondante est moins source
+d\'erreur.
+:::
+
+2. Une alerte spécique est créée depuis le listing mobilier pour
+ surveiller le retour du mobilier avec une chaîne de ce type : :
+
+ panier="Exposition Sein 2018" pret="Oui" fin-de-traitement-avant="aujourdhui+30"
+
+3. Avec cette requête, 30 jours avant la date de retour attendue,
+ l\'alerte sera affichée.
+
+4. Fin d\'étape : le mobilier a été retourné.
+
+### Gestion du retour du mobilier
+
+1. Sur la fiche panier correspondante, sur les fiches contenants
+ correspondants ou sur chaque fiche mobilier par mobilier, un
+ traitement « Retour de prêt » est fait.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Il sera possible d\'accéder rapidement aux fiches mobilier ou contenant
+via le QR-code.
+:::
+
+2. Depuis ces fiches, une demande de traitement « Constat d\'état »
+ pourra être ajoutée depuis le bouton « Ajouter une demande de
+ traitement ».
diff --git a/docs/fr/annexe-3-doc-normes.md b/docs/fr/annexe-3-doc-normes.md
new file mode 100644
index 000000000..45bf5117a
--- /dev/null
+++ b/docs/fr/annexe-3-doc-normes.md
@@ -0,0 +1,38 @@
+Annexe 3 - Correspondance des champs Ishtar - Normes documentaires
+==================================================================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2020-05-27
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+Ishtar - Dublin Core
+--------------------
+
+Issu d\'un consensus international et multidisciplinaire, le [Dublin
+Core](https://fr.wikipedia.org/wiki/Dublin_Core) a été développé pour
+décrire des documents de manière simple et standardisée.
+
+![](static/ishtar-dublincore.png){.align-center}
+
+Ishtar - COinS
+--------------
+
+Le [ContextObjects in Spans
+(COinS)](https://fr.wikipedia.org/wiki/ContextObjects_in_Spans) est une
+méthode pour inclure des métadonnées bibliographiques dans le code HTML
+de pages web.
+
+L'utilisation de COinS permet à un logiciel de gestion bibliographique
+de récupérer les méta-données de l'ouvrage de référence.
+
+![](static/ishtar-coins.png){.align-center}
diff --git a/docs/fr/annexe-tech-1-insee-communes.md b/docs/fr/annexe-tech-1-insee-communes.md
new file mode 100644
index 000000000..104f4e38a
--- /dev/null
+++ b/docs/fr/annexe-tech-1-insee-communes.md
@@ -0,0 +1,47 @@
+Annexe technique 1 - Import des regroupements de commune INSEE {#import-regroupements-communes-insee}
+==============================================================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2020-09-23
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+[L\'INSEE](https://www.insee.fr) met à disposition un fichier permettant
+de suivre l\'évolution des « communes nouvelles » (procédure de
+regroupement de communes). Au sein de sa base de données, Ishtar gère
+ces évolutions permettant à la fois d\'insérer de nouvelles données pour
+ces communes nouvelles mais aussi de conserver voire ajouter des données
+relatives à des communes anciennes maintenant regroupées. Une page sur
+le site de l\'INSEE permet de télécharger ces données au format CSV :
+[communes nouvelles](https://www.insee.fr/fr/information/2549968).
+
+Ce fichier est importable au sein d\'Ishtar.
+
+Pour cela, se connecter sur le serveur hébergeant Ishtar, déposer le
+fichier CSV que l\'on a téléchargé, puis se rendre dans le répertoire
+d\'installation de l\'instance concernée. Enfin, lancer la commande
+suivante (en remplaçant \<année\> et \<chemin vers le fichier CSV\> par
+les valeurs adéquates) :
+
+``` {.bash}
+root@ishtar-server:# cd <chemin vers l instance> # exemple : /srv/ishtar/prod_deb
+root@ishtar-server:# python3 ./manage.py import_insee_comm_csv --year <année> <chemin vers le fichier CSV>
+```
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+L\'année attendue est celle de l\'année de création des communes
+nouvelles.
+:::
diff --git a/docs/fr/annexe-tech-2-ign-communes.md b/docs/fr/annexe-tech-2-ign-communes.md
new file mode 100644
index 000000000..f7c6269f5
--- /dev/null
+++ b/docs/fr/annexe-tech-2-ign-communes.md
@@ -0,0 +1,88 @@
+Annexe technique 2 - Import des communes IGN {#import-communes-ign}
+============================================
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2020-09-23
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+[L\'IGN](http://www.ign.fr/) met à disposition sous licence libre
+([Licence
+ouverte](https://www.etalab.gouv.fr/wp-content/uploads/2014/05/Licence_Ouverte.pdf))
+les géométries du découpage administratif du territoire métropolitain
+français avec une réactualisation annuelle. Au sein d\'Ishtar, il est
+opportun de récupérer le découpage des communes avec leur géométrie
+associée. On réalise cela en deux temps : récupération des données et
+export au format CSV, puis import au sein d\'Ishtar. Il est nécessaire
+pour faire cet import d\'un accès en ligne de commande au serveur sur
+lequel est hébergé Ishtar.
+
+Récupération des données
+------------------------
+
+Le jeu de données qui nous intéresse est distribué sous le nom ADMIN
+EXPRESS. Ce jeu de données est disponible en ligne directement sur le
+site de l\'IGN : [ADMIN
+EXPRESS](https://geoservices.ign.fr/documentation/diffusion/telechargement-donnees-libres.html#admin-express).
+
+Une fois le fichier récupéré, il doit être décompressé (il faut disposer
+d\'un utilitaire à même de décompresser les archives 7z). Les fichiers
+qui nous intéressent concernent le shapefile COMMUNE ou COMMUNE\_CARTO
+(géométrie généralisée - moins précise et de fait moins volumineuse).
+Celui se trouve dans le répertoire
+[ADMIN-EXPRESS-COG/1\_DONNEES\_LIVRAISON\_\<date de livraison\>/\<zone
+concernée\>/]{.title-ref}.
+
+Ce shapefile doit ensuite être ouvert dans QGIS puis exporté au format
+CSV en n\'oubliant pas d\'inclure la géométrie au format WKT.
+
+![image](static/annexe-technique-1-export-qgis.png)
+
+Import dans Ishtar
+------------------
+
+Il ne reste plus qu\'à importer dans Ishtar. Pour cela, se connecter sur
+le serveur hébergeant Ishtar, déposer le fichier CSV que l\'on a généré,
+puis se rendre dans le répertoire d\'installation de l\'instance
+concernée. Enfin, lancer la commande suivante (en remplaçant \<année\>
+et \<chemin vers le fichier CSV\> par les valeurs adéquates) :
+
+``` {.bash}
+root@ishtar-server:# cd <chemin vers l instance> # exemple : /srv/ishtar/prod_deb
+root@ishtar-server:# python3 ./manage.py import_geofla_csv --year <année> \
+ --srid <code epsg de la projection> <chemin vers le fichier CSV>
+root@ishtar-server:# # exemple
+root@ishtar-server:# python3 ./manage.py import_geofla_csv --year 2019 --srid 4326 /tmp/2019.csv
+```
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+L\'année attendue est celle correspondant à l\'année de création pour
+des communes nouvelles. Le jeu de données d\'une année concerne les
+communes créées l\'année précédente ainsi pour le jeu de données 2020,
+il faut indiquer 2019.
+:::
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Si l\'on souhaite garder un suivi des regroupements de communes, il est
+important de procéder à l\'import des nouvelles communes (cf.
+`import-regroupements-communes-insee`{.interpreted-text role="ref"}) de
+l\'année concernée depuis les sources INSEE avant de faire l\'import des
+géométries depuis les sources IGN.
+:::
diff --git a/docs/fr/annexe-tech-3-variables-gen.md b/docs/fr/annexe-tech-3-variables-gen.md
new file mode 100644
index 000000000..6eefab55f
--- /dev/null
+++ b/docs/fr/annexe-tech-3-variables-gen.md
@@ -0,0 +1,1205 @@
+Annexe technique 3 - Variables {#annexe-technique-3-variables}
+==============================
+
+Auteurs
+
+: Étienne Loks, Ishtar team
+
+Date
+
+: 2023-08-28
+
+Copyright
+
+: CC-BY 3.0
+
+Ishtar Version
+
+: v4.0.55
+
+------------------------------------------------------------------------
+
+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).
+
+On peut passer d\'un élément lié à un autre (par exemple, accéder à
+l\'opération d\'une unité d\'enregistrement) avec la notation double
+tiret [\_\_]{.title-ref} et ensuite accéder aux variables de l\'élément
+lié (exemple : `operation__code_patriarche` permet d\'accéder au code
+patriarche de l\'opération ).
+
+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é.
+
+Modèles génériques {#valeurs-champs-adresse}
+------------------
+
+### Champs personnalisés
+
+Les éléments principaux ([Operation]{.title-ref}, [Unité
+d\'Enregistrement]{.title-ref}, [Mobilier]{.title-ref}, etc.) permettent
+d\'utiliser des
+`champs personnalisés <champ-personnalises>`{.interpreted-text
+role="ref"}. Ceux-ci sont accessibles via l\'attribut
+[data\_\_]{.title-ref}. Ainsi on accède à une clé [ma\_clef]{.title-ref}
+via [data\_\_ma\_clef]{.title-ref} ou à une autre clé sous une catégorie
+[ma\_categorie\_\_ma\_sousclef]{.title-ref} via
+[data\_\_ma\_categorie\_\_ma\_sousclef]{.title-ref}.
+
+### Champs adresse
+
+Les champs adresse sont une liste de variables partagées par plusieurs
+éléments :
+
+- **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 (32)* - Téléphone mobile
+- **phone** : *Chaîne de caractères (32)* - Téléphone
+- **phone2** : *Chaîne de caractères (32)* - Type de téléphone 2
+- **phone3** : *Chaîne de caractères (32)* - 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\_id** : *Entier positif* - Commune (précis)
+- **raw\_phone** : *Texte* - Téléphone brut
+- **town** : *Chaîne de caractères (150)* - Commune (saisie libre)
+
+### Personne
+
+Chaque personne dispose des
+`champs adresse <valeurs-champs-adresse>`{.interpreted-text role="ref"},
+ainsi que des champs suivants :
+
+- **adminact\_operation\_in\_charge\_\_** : *→ Actes administratifs
+ (responsable de suivi scientifique)*
+- **adminact\_scientist\_\_** : *→ Actes administratifs (responsable
+ d\'opération)*
+- **attached\_to\_\_** : *→ Organisation* - Est rattaché à
+- **author\_\_** : *→ Auteurs (personne)*
+- **cached\_label** : *Texte* - Nom en cache
+- **cira\_rapporteur\_\_** : *→ Opérations (rapporteur ctra/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\_monitoring\_\_** : *→ Opérations (responsable de suivi
+ scientifique)*
+- **operation\_protagonist\_\_** : *→ Opérations (nom du
+ protagoniste)*
+- **operation\_scientist\_responsability\_\_** : *→ Opérations
+ (responsable de suivi scientifique)*
+- **person\_types\_\_** : *→ Type de personne* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Types
+- **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
+ d\'opération)*
+- **signatory\_\_** : *→ Actes administratifs (signataire)*
+- **site\_collaborator\_\_** : *→ Entités archéologiques
+ (collaborateurs)*
+- **surname** : *Chaîne de caractères (50)* - Prénom - Attention,
+ résidu historique et malheureux dans le code d\'une erreur de
+ traduction initiale (surname correspond en anglais au nom de
+ famille, pas au prénom).
+- **title\_\_** : *→ Type de titre* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel, **grammatical\_gender** Genre
+ grammatical - \"M\": Masculin ; \"F\": Féminin ; \"N\": Neutre,
+ **long\_title** Titre long) - 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* (**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
+`champs adresse <valeurs-champs-adresse>`{.interpreted-text role="ref"},
+ainsi que des champs suivants :
+
+- **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)*
+- **grammatical\_gender** : *Chaîne de caractères (1)* - Genre
+ grammatical - \"M\": Masculin ; \"F\": Féminin ; \"N\": Neutre
+- **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,
+ **grammatical\_gender** Genre grammatical - \"M\": Masculin ; \"F\":
+ Féminin ; \"N\": Neutre) - Type
+- **planning\_service\_files\_\_** : *→ Dossiers archéologiques
+ (service instructeur)*
+- **publish\_\_** : *→ Documents (éditions)*
+- **treatmentfile\_applicant\_\_** : *→ Demandes de traitement
+ (organisation demandeuse)*
+- **treatments\_\_** : *→ Traitements (organisation)*
+- **url** : *Adresse web (200)* - Adresse web
+- **warehouses\_\_** : *→ Lieux de conservation (organisation)*
+
+### Documentation
+
+- **additional\_information** : *Texte* - Information supplémentaire
+- **administrativeacts\_\_** : *→ Actes administratifs (documents)*
+- **areas\_\_** : *→ Zones* (documents - **label** Dénomination,
+ **txt\_idx** Identifiant textuel)
+- **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
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **children\_\_** : *→ Documents (source)*
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **container\_id** : *Entier positif* - ID contenant
+- **container\_ref\_id** : *Entier positif* - ID contenant de
+ référence
+- **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\_administrativeacts\_\_** : *→ Actes administratifs
+ (image principale)*
+- **main\_image\_areas\_\_** : *→ Zones* (image principale - **label**
+ Dénomination, **txt\_idx** Identifiant textuel)
+- **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\_towns\_\_** : *→ Communes* (image principale -
+ **name** Nom, **numero\_insee** Code commune (numéro INSEE),
+ **cached\_label** Nom en cache)
+- **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* - Éditions
+- **publishing\_year** : *Entier positif* - Année de publication
+- **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 -
+ saisie libre
+- **source\_page\_range** : *Chaîne de caractères (500)* - Source -
+ intervalle de pages
+- **source\_type\_\_** : *→ Type de document* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel) - Type
+- **support\_type\_\_** : *→ Type de support* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel) - Support
+- **tags\_\_** : *→ Mot-clé du document* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel) - Mots-clés
+- **thumbnail** : *Image (255)* - thumbnail - La taille maximale
+ supportée pour le fichier est de 100 Mo.
+- **title** : *Texte* - Titre
+- **towns\_\_** : *→ Communes* (documents - **name** Nom,
+ **numero\_insee** Code commune (numéro INSEE), **cached\_label** Nom
+ en cache)
+- **treatment\_files\_\_** : *→ Demandes de traitement (documents)*
+- **treatments\_\_** : *→ Traitements (documents)*
+- **warehouses\_\_** : *→ Lieux de conservation (documents)*
+
+### Élément géographique
+
+- **buffer** : *Nombre à virgule* - Tampon
+- **buffer\_type\_\_** : *→ Géographie - Type de tampon* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - buffer type
+- **comment** : *Texte* - Commentaire
+- **data\_type\_\_** : *→ Géographie - Type de données* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Type de donnée -
+ Par exemple : contour, Z-supérieur, \...
+- **main\_related\_items\_archaeological\_context\_records\_contextrecord\_\_**
+ : *→ Unité d\'Enregistrement (élément géographique principal)*
+- **main\_related\_items\_archaeological\_finds\_basefind\_\_** : *→
+ Mobilier d\'origine (élément géographique principal)*
+- **main\_related\_items\_archaeological\_operations\_archaeologicalsite\_\_**
+ : *→ Entités archéologiques (élément géographique principal)*
+- **main\_related\_items\_archaeological\_operations\_operation\_\_**
+ : *→ Opérations (élément géographique principal)*
+- **main\_related\_items\_archaeological\_warehouse\_container\_\_** :
+ *→ Contenants (élément géographique principal)*
+- **main\_related\_items\_archaeological\_warehouse\_warehouse\_\_** :
+ *→ Lieux de conservation (élément géographique principal)*
+- **main\_related\_items\_ishtar\_common\_town\_\_** : *→ Communes*
+ (élément géographique principal - **name** Nom, **numero\_insee**
+ Code commune (numéro INSEE), **cached\_label** Nom en cache)
+- **multi\_line** : *Multi-lignes* - Lignes multiples
+- **multi\_points** : *Multi-points* - Points multiples
+- **name** : *Texte* - Nom
+- **origin\_\_** : *→ Géographie - Type d\'origine* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Origine - Par
+ exemple : levé topographiques, géoréférencement, \...
+- **point\_3d** : *Point* - Point (3D)
+- **provider\_\_** : *→ Géographie - Type de fournisseur* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Fournisseur -
+ Fournisseur de données
+- **related\_items\_archaeological\_context\_records\_contextrecord\_\_**
+ : *→ Unité d\'Enregistrement (élément géographique)*
+- **related\_items\_archaeological\_finds\_basefind\_\_** : *→
+ Mobilier d\'origine (élément géographique)*
+- **related\_items\_archaeological\_operations\_archaeologicalsite\_\_**
+ : *→ Entités archéologiques (élément géographique)*
+- **related\_items\_archaeological\_operations\_operation\_\_** : *→
+ Opérations (élément géographique)*
+- **related\_items\_archaeological\_warehouse\_container\_\_** : *→
+ Contenants (élément géographique)*
+- **related\_items\_archaeological\_warehouse\_warehouse\_\_** : *→
+ Lieux de conservation (élément géographique)*
+- **related\_items\_ishtar\_common\_town\_\_** : *→ Communes* (élément
+ géographique - **name** Nom, **numero\_insee** Code commune (numéro
+ INSEE), **cached\_label** Nom en cache)
+- **source\_content\_type\_\_** : *→ type de contenu* - source content
+ type
+- **source\_id** : *Entier positif* - source id
+- **spatial\_reference\_system\_\_** : *→ Géographie - 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
+
+### Acte administratif
+
+- **act\_object** : *Texte* - Objet
+- **act\_type\_\_** : *→ Type d\'acte* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel) - Type d\'acte
+- **associated\_file\_\_** : *→ Dossier archéologique* - Dossier
+ archéologique
+- **comment** : *Texte* - Commentaire
+- **departments\_label** : *Texte* - Départements - Valeur en cache
+ des départements associés
+- **documents\_\_** : *→ Document* - Documents
+- **in\_charge\_\_** : *→ Personne* - Responsable de suivi
+ scientifique
+- **index** : *Entier* - Index
+- **main\_image\_\_** : *→ Document* - Image principale
+- **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 (200)* - Autre référence
+- **scientist\_\_** : *→ Personne* - Responsable d\'opération
+- **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
+
+### Commune
+
+- **areas\_\_** : *→ Zones* (communes - **label** Dénomination,
+ **txt\_idx** Identifiant textuel)
+- **cached\_label** : *Chaîne de caractères (500)* - Nom en cache
+- **center** : *Point* - Localisation
+- **children\_\_** : *→ Commune* (**name** Nom, **numero\_insee** Code
+ commune (numéro INSEE), **cached\_label** Nom en cache) - Communes
+ enfants
+- **context\_record\_\_** : *→ Unité d\'Enregistrement (commune)*
+- **documents\_\_** : *→ Document* - Documents
+- **file\_\_** : *→ Dossiers archéologiques (communes)*
+- **file\_main\_\_** : *→ Dossiers archéologiques (commune
+ principale)*
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **limit** : *Multi-polygones* - Limite
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **main\_image\_\_** : *→ Document* - Image principale
+- **name** : *Chaîne de caractères (100)* - Nom
+- **numero\_insee** : *Chaîne de caractères (120)* - Code commune
+ (numéro INSEE)
+- **operations\_\_** : *→ Opérations (communes)*
+- **parcels\_\_** : *→ Parcelles (commune)*
+- **parents\_\_** : *→ Communes* (communes enfants - **name** Nom,
+ **numero\_insee** Code commune (numéro INSEE), **cached\_label** Nom
+ en cache)
+- **sites\_\_** : *→ Entités archéologiques (communes)*
+- **surface** : *Entier* - Surface (m2)
+- **year** : *Entier* - Année de création - Remplir ce champ est
+ nécessaire pour distinguer les anciennes communes des nouvelles
+ communes.
+
+### Zone géographique
+
+- **available** : *Booléen* - Disponible
+- **children\_\_** : *→ Zones* (parent - **label** Dénomination,
+ **txt\_idx** Identifiant textuel)
+- **comment** : *Texte* - Commentaire
+- **documents\_\_** : *→ Document* - Documents
+- **label** : *Texte* - Dénomination
+- **main\_image\_\_** : *→ Document* - Image principale
+- **parent\_\_** : *→ Zone* (**label** Dénomination, **txt\_idx**
+ Identifiant textuel) - Parent - Seulement quatre niveaux de parents
+ sont gérés.
+- **reference** : *Texte* - Référence
+- **towns\_\_** : *→ Commune* (**name** Nom, **numero\_insee** Code
+ commune (numéro INSEE), **cached\_label** Nom en cache) - Communes
+- **txt\_idx** : *Texte* - Identifiant textuel - Le \"slug\" est une
+ version standardisée du nom. Il ne contient que des lettres en
+ minuscule, des nombres et des tirets (-). Chaque \"slug\" doit être
+ unique dans la typologie.
+
+### 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 chronologique
+- **precise\_dating** : *Texte* - Précision sur la datation
+- **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 du champ [data\_\_]{.title-ref} 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** : *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
+- **cira\_date** : *Date* - Date avis CTRA/CIRA
+- **cira\_rapporteur\_\_** : *→ Personne* - Rapporteur CTRA/CIRA
+- **code\_patriarche** : *Texte* - Code PATRIARCHE
+- **collaborators\_\_** : *→ Personne* - Collaborateurs
+- **comment** : *Texte* - Commentaire
+- **common\_name** : *Texte* - Nom générique
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **containers** : Liste des contenants associés - **Champ non
+ disponible pour les imports**
+- **context\_record\_\_** : *→ Unité d\'Enregistrement (opération)*
+- **context\_records** : Liste des unités d\'enregistrement
+ associées - **Champ non disponible pour les imports**
+- **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 versée
+- **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 versé
+- **fnap\_cost** : *Entier* - Financement FNAP (€)
+- **fnap\_financing** : *Nombre à virgule* - Financement FNAP (%)
+- **geoarchaeological\_context\_prescription** : *Booléen* -
+ Prescription sur un contexte géoarchéologique
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **in\_charge\_\_** : *→ Personne* - Responsable de suivi
+ scientifique
+- **large\_area\_prescription** : *Booléen* - Prescription sur une
+ vaste surface
+- **left\_relations\_\_** : *→ Relations entre opérations (right
+ record)*
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **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 de suivi scientifique
+- **seizure\_name** : *Texte* - Nom de la saisie
+- **spatial\_reference\_system\_\_** : *→ Géographie - 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** : *Nombre à virgule* - 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 site/entité archéologique dispose du champ [data\_\_]{.title-ref}
+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* - Identifiant complet
+- **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
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **locality\_cadastral** : *Texte* - Lieu-dit cadastre
+- **locality\_ngi** : *Texte* - Lieu-dit IGN
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **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\_\_** : *→ Géographie - 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\_\_]{.title-ref}
+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* - Identifiant complet
+- **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 fin
+- **equipment\_costs\_\_** : *→ preventive file equipment service
+ costs (file)*
+- **execution\_report\_date** : *Date* - Date du rapport d\'exécution
+- **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
+- **ground\_end\_date** : *Date* - Date de fin de la fouille
+- **ground\_jobs\_\_** : *→ preventive file ground jobs (file)*
+- **ground\_start\_date** : *Date* - Date de début de la fouille
+- **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
+- **intervention\_period** : *Chaîne de caractères (200)* - Période
+ d\'intervention
+- **jobs\_\_** : *→ preventive file jobs (file)*
+- **linear\_meter** : *Entier* - Mètre linéaire
+- **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
+- **operation\_type\_for\_royalties\_\_** : *→ Type d\'opération pour
+ les redevances - France* (**label** Dénomination, **txt\_idx**
+ Identifiant textuel) - Type d\'opération pour la redevance
+- **operations\_\_** : *→ Opérations (dossier)*
+- **organization\_\_** : *→ Organisation* - Organisation
+- **parcels\_\_** : *→ Parcelles (dossier)*
+- **permit\_reference** : *Texte* - Référence du permis / de l\'arrêté
+- **permit\_type\_\_** : *→ Type de permis* (**label** Dénomination,
+ **txt\_idx** Identifiant textuel) - Type de permis
+- **planning\_service\_\_** : *→ Organisation* - Service instructeur
+- **planning\_service\_date** : *Date* - Date du dossier du service
+ instructeur
+- **price\_agreement\_\_** : *→ Contrat tarifaire* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Contrat tarifaire
+- **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é
+- **report\_due\_period** : *Chaîne de caractères (200)* - Période de
+ remise du rapport
+- **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 d\'opération
+- **start\_date** : *Date* - Date de début
+- **study\_period** : *Chaîne de caractères (200)* - Période d\'étude
+- **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
+- **type\_of\_agreement\_\_** : *→ Type de convention - France*
+ (**label** Dénomination, **txt\_idx** Identifiant textuel) - Type de
+ convention
+- **year** : *Entier* - Année
+
+### Unité d\'enregistrement
+
+Chaque unité d\'enregistrement dispose du champ [data\_\_]{.title-ref}
+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** : Liste du mobilier de base associé - **Champ non
+ disponible pour les imports**
+- **base\_finds\_\_** : *→ Mobilier d\'origine (unité
+ d\'enregistrement)*
+- **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\_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* - Identifiant complet
+- **context\_record\_tree\_child\_\_** : *→ context record trees
+ (unité d\'enregistrement parente)*
+- **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\_technics\_\_** : *→ Type de méthode de fouille*
+ (**label** Dénomination, **txt\_idx** Identifiant textuel) -
+ Méthodes de fouille
+- **external\_id** : *Texte* - Identifiant
+- **filling** : *Texte* - Remplissage
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **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\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **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\_\_** : *→ Géographie - 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** : *Nombre à virgule* - 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 du champ [data\_\_]{.title-ref} 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
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **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 début)
+- **discovery\_date\_taq** : *Date* - Date de découverte (fin)
+- **excavation\_id** : *Texte* - Identifiant fouille
+- **external\_id** : *Texte* - Identifiant
+- **find\_\_** : *→ Mobilier (mobilier d\'origine)*
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **index** : *Entier* - Index
+- **label** : *Texte* - Identifiant libre
+- **line** : *Ligne* - Ligne
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **material\_index** : *Entier* - Index matériel
+- **material\_type\_label** : Concaténation des types de matériaux
+ associés - **Champ non disponible pour les imports**
+- **qrcode** : *Image (255)* - qrcode
+- **spatial\_reference\_system\_\_** : *→ Géographie - 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\_\_]{.title-ref} 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** : Liste du mobilier de base associé - **Champ non
+ disponible pour les imports**
+- **base\_finds\_\_** : *→ Mobilier d\'origine* - Mobilier d\'origine
+- **basket\_\_** : *→ Paniers (items)*
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **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 - Ne pas
+ utiliser - Nécessite des évolutions
+- **comment** : *Texte* - Commentaire
+- **communicabilities\_\_** : *→ Type de communicabilité* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Communicabilité
+- **complete\_id** : Identifiant complet du mobilier d\'origine
+ associé - **Champ non disponible pour les imports**
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **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
+- **context\_record\_label** : Dénomination des unités
+ d\'enregistrement associées - **Champ non disponible pour les
+ imports**
+- **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* - Nombre de restes (NR)
+- **finddownstreamtreatments\_related\_\_** : *→ find downstream
+ treatmentss (mobilier)*
+- **findnonmodiftreatments\_related\_\_** : *→ find non modif
+ treatmentss (mobilier)*
+- **findtreatments\_related\_\_** : *→ find treatmentss (mobilier)*
+- **findupstreamtreatments\_related\_\_** : *→ find upstream
+ treatmentss (mobilier)*
+- **functional\_areas\_\_** : *→ Domaine fonctionnel* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Domaine
+ fonctionnel
+- **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
+- **material\_types\_code** : Code des types de matériau - **Champ non
+ disponible pour les imports**
+- **material\_types\_label** : Chaîne de caractère des types de
+ matériau - **Champ non disponible pour les imports**
+- **material\_types\_recommendations** : Chaîne de caractères -
+ recommandations pour le matériau - **Champ non disponible pour les
+ imports**
+- **min\_number\_of\_individuals** : *Entier* - Nombre minimum
+ d\'individus (NMI)
+- **museum\_id** : *Texte* - Numéro d\'inventaire 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\_\_]{.title-ref} ainsi que des
+champs suivants :
+
+- **administrative\_act\_\_** : *→ Actes administratifs (traitement)*
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **container\_\_** : *→ Contenant* - Contenant
+- **creation\_date** : *Date/heure* - creation date
+- **custom\_index** : *Entier* - Custom index
+- **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
+- **qrcode** : *Image (255)* - qrcode
+- **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\_\_]{.title-ref}
+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 - Généré
+ automatiquement - ne pas éditer
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **creation\_date** : *Date* - Date de création
+- **custom\_index** : *Entier* - Custom index
+- **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
+- **qrcode** : *Image (255)* - qrcode
+- **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
+`champs adresse <valeurs-champs-adresse>`{.interpreted-text role="ref"},
+du champ [data\_\_]{.title-ref} ainsi que des champs suivants :
+
+- **associated\_divisions\_\_** : *→ Type de division de lieu de
+ conservation* (**label** Dénomination, **txt\_idx** Identifiant
+ textuel) - Divisions
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **cached\_town\_label** : *Texte* - Nom en cache des communes -
+ Généré automatiquement - ne pas éditer
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **containers\_\_** : *→ Contenants (lieu de conservation)*
+- **custom\_index** : *Entier* - Custom index
+- **divisions\_\_** : *→ warehouse division links (warehouse)*
+- **documents\_\_** : *→ Document* - Documents
+- **external\_id** : *Texte* - Identifiant
+- **finds\_\_** : *→ Mobilier (collection)*
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **main\_image\_\_** : *→ Document* - Image principale
+- **max\_division\_number** : *Entier* - Nombre maximum de divisions -
+ Généré automatiquement
+- **name** : *Chaîne de caractères (200)* - Nom
+- **organization\_\_** : *→ Organisation* - Organisation
+- **owned\_containers\_\_** : *→ Contenants (lieu de conservation
+ responsable)*
+- **person\_in\_charge\_\_** : *→ Personne* - Personne responsable
+- **qrcode** : *Image (255)* - qrcode
+- **responsibilities\_\_** : *→ Contenants (responsabilité)*
+- **slug** : \* (200)\* - Identifiant textuel
+- **spatial\_reference\_system\_\_** : *→ Géographie - 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 du champ [data\_\_]{.title-ref} ainsi que des
+champs suivants :
+
+- **cached\_division** : *Texte* - Division mise en cache
+- **cached\_label** : *Texte* - Nom en cache - Généré
+ automatiquement - ne pas éditer
+- **cached\_location** : *Texte* - Localisation - en cache
+- **cached\_weight** : *Nombre à virgule* - Poids mis en cache (g) -
+ Poids saisi si disponible sinon poids calculé.
+- **calculated\_weight** : *Nombre à virgule* - Poids calculé (g)
+- **children\_\_** : *→ Contenants (contenant parent)*
+- **comment** : *Texte* - Commentaire
+- **complete\_identifier** : *Texte* - Identifiant complet
+- **container\_content\_\_** : *→ find inside containers (contenant)*
+- **container\_tree\_child\_\_** : *→ container tree (contenant)*
+- **container\_tree\_parent\_\_** : *→ container trees (contenant
+ parent)*
+- **container\_type\_\_** : *→ Type de contenant* (**label**
+ Dénomination, **txt\_idx** Identifiant textuel) - Type de contenant
+- **context\_record\_** : Unité d\'Enregistrement associée - à
+ utiliser avec précaution seule la première unité d\'enregistrement
+ trouvée est retournée - **Champ non disponible pour les imports**
+- **custom\_index** : *Entier* - Custom index
+- **division\_\_** : *→ Localisations de contenant (contenant)*
+- **documents\_\_** : *→ Document* - Documents
+- **external\_id** : *Texte* - Identifiant
+- **finds** : Liste du mobilier associé - **Champ non disponible pour
+ les imports**
+- **finds\_\_** : *→ Mobilier (contenant)*
+- **finds\_ref\_\_** : *→ Mobilier (contenant de référence)*
+- **geodata\_\_** : *→ Géographie - Donnée vectorielle* - Élément
+ géographique
+- **history\_date\_deprecated** : *Date/heure* - history date
+ deprecated
+- **index** : *Entier* - ID contenant
+- **location\_\_** : *→ Lieu de conservation* - Lieu de conservation
+- **main\_geodata\_\_** : *→ Géographie - Donnée vectorielle* -
+ Élément géographique principal
+- **main\_image\_\_** : *→ Document* - Image principale
+- **material\_types** : Types de matériaux dans le contenant - chaîne
+ de caractères - **Champ non disponible pour les imports**
+- **material\_types\_code** : Code des types de matériau - chaîne de
+ caractères - **Champ non disponible pour les imports**
+- **old\_reference** : *Texte* - Ancienne référence
+- **operation\_** : Opération associée - à utiliser avec précaution
+ seule la première opération trouvée est retournée - **Champ non
+ disponible pour les imports**
+- **parent\_\_** : *→ Contenant* - Contenant parent
+- **qrcode** : *Image (255)* - qrcode
+- **reference** : *Texte* - Réf. du contenant
+- **responsibility\_\_** : *→ Lieu de conservation* - Responsabilité -
+ Lieu de conservation auquel le contenant appartient
+- **responsible\_\_** : *→ Lieu de conservation* - Lieu de
+ conservation responsable - Obsolète - ne pas utiliser
+- **spatial\_reference\_system\_\_** : *→ Géographie - 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)*
+- **weight** : *Nombre à virgule* - Poids mesuré (g)
diff --git a/docs/fr/annexe-tech-4-jinja-filters.md b/docs/fr/annexe-tech-4-jinja-filters.md
new file mode 100644
index 000000000..ff1fee616
--- /dev/null
+++ b/docs/fr/annexe-tech-4-jinja-filters.md
@@ -0,0 +1,126 @@
+Annexe technique 4 - Filtres pour les patrons de documents {#annexe-technique-4-jinja-filters}
+==========================================================
+
+Auteurs
+
+: Étienne Loks, Valérie-Emma Leroux
+
+Date
+
+: 2022-03-08
+
+Copyright
+
+: CC-BY 3.0
+
+Ishtar Version
+
+: v3.1.0
+
+------------------------------------------------------------------------
+
+Les patrons de documents permettent d\'utiliser des filtres sur les
+données de la base de données. Cela permet essentiellement de mettre en
+forme les champs. Certains de ces filtres sont directement disponibles
+via la bibliothèque Jinja utilisée dans Ishtar, d\'autres ont été
+développés au sein d\'Ishtar.
+
+Pour utiliser un filtre, à la suite de la variable, il faut utiliser le
+caractère [\|]{.title-ref}, par exemple :
+[{{variable\|capfirst}}]{.title-ref}.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Les filtres peuvent se chaîner. On peut donc écrire :
+[{{variable\|human\_date\|capitalize}}.]{.title-ref}
+:::
+
+Pour les différents exemples nous utilisons directement une chaîne de
+caractères pour illustrer, en utilisation réelle on utilise un nom de
+variable.
+
+La bibliothèque logicielle Jinja utilisée pour la génération des patrons
+met à disposition nativement un certain nombre de filtres :
+[documentation des filtres de base
+(anglais)](https://jinja.palletsprojects.com/en/2.11.x/templates/#list-of-builtin-filters).
+
+Ishtar met a disposition des filtres supplémentaires :
+
+Formatage des chaînes de caractères
+-----------------------------------
+
+- **capfirt**
+
+Ce filtre met la première lettre en majuscule et ne touche pas au reste
+de la chaîne.
+
+> - [{{\"saint georges d\'oléron\"\|capfisrt}}]{.title-ref} -\> [Saint
+> georges d\'oléron]{.title-ref}
+
+- **lowerfirst**
+
+Ce filtre met la première lettre en minuscule et ne touche pas au reste
+de la chaîne
+
+> - [{{\"SAINT-GEORGES-D\'OLÉRON\"\|lowerfirst}}]{.title-ref} -\>
+> [sAINT-GEORGES-D\'OLÉRON]{.title-ref}
+
+- **capitalize**
+
+Ce filtre met la première lettre de chaque mot en majuscule et le reste
+de la chaîne en minuscule.
+
+> - [{{\"SAINT-GEORGES-D\'OLÉRON\"\|capitalize}}]{.title-ref} -\>
+> [Saint-Georges-d\'Oléron]{.title-ref}
+
+- **human\_date**
+
+Ce filtre permet d\'afficher une date en toutes lettres.
+
+> - [{{\"2020-03-03\"\|human\_date}}]{.title-ref} -\> [3 mars
+> 2020]{.title-ref}
+
+- **int**
+
+Pour afficher un nombre sans décimales.
+
+> - [{{\"600.0\"\|int}}]{.title-ref} -\> [600]{.title-ref}
+
+Manipulation des chaînes de caractères
+--------------------------------------
+
+- **splitpart**
+
+Ce filtre permet d\'extraire un élément depuis une chaîne de caractères
+en prenant en compte un séparateur. Par exemple depuis la chaîne
+[\"2,3,10\"]{.title-ref}, accéder au troisième élément :
+[\"10\"]{.title-ref}.
+
+Ce filtre nécessite au minimum un argument, le numéro de l\'élément
+souhaité (en commençant le compte à 0) : pour avoir le second élément,
+il faut indiquer en argument [\"1\"]{.title-ref}.
+
+Le second argument correspond à la borne de fin non incluse (en
+commençant le compte à 0) : ainsi pour avoir jusqu\'au deuxième élément
+il faut indiquer en argument [\"2\"]{.title-ref}. Si l\'on ne souhaite
+avoir qu\'un seul élément, on indique [\"0\"]{.title-ref}.
+
+Par défaut le séparateur [\",\"]{.title-ref} est utilisé si l\'on
+souhaite un autre séparateur, on spécifie celui-ci en troisème argument.
+
+On peut associer un dernier argument qui permet de spécifier le(s)
+caractère(s) de concaténation que l\'on souhaite utiliser pour la chaîne
+en retour.
+
+> - [{{\"9,2,10\"\|splitpart(1)}}]{.title-ref} -\> [2]{.title-ref}
+> - [{{\"chaise;bureau;papier;paragraphe\"\|splitpart(0,0,\";\")}}]{.title-ref}
+> -\> [chaise]{.title-ref}
+> - [{{\"182025\_C001\"\|splitpart(1,0,\"\_\")}}]{.title-ref} -\>
+> [C001]{.title-ref}
+> - [{{\"chaise;bureau;papier;paragraphe\"\|splitpart(1,3,\";\")}}]{.title-ref}
+> -\> [bureau;papier]{.title-ref}
+> - [{{\"chaise;bureau;papier;paragraphe\"\|splitpart(1,4,\";\",\"\|\")}}]{.title-ref}
+> -\> [bureau\|papier\|paragraphe]{.title-ref}
diff --git a/docs/fr/annexe-tech-5-manage-commands.md b/docs/fr/annexe-tech-5-manage-commands.md
new file mode 100644
index 000000000..3632e8cb7
--- /dev/null
+++ b/docs/fr/annexe-tech-5-manage-commands.md
@@ -0,0 +1,54 @@
+Annexe technique 5 - Commandes de gestion en CLI {#annexe-tech-5-manage-commands}
+================================================
+
+Auteurs
+
+: Étienne Loks
+
+Date
+
+: 2021-06-21
+
+Copyright
+
+: CC-BY 3.0
+
+Ishtar Version
+
+: v3.1.0
+
+------------------------------------------------------------------------
+
+Les commandes de gestion en CLI nécessite un accès en ligne de commande
+au serveur. Une fois connecté en SSH à celui-ci, on se rend dans le
+répertoire de l\'instance sur laquelle on souhaite intervenir (par
+défaut : [/srv/ishtar/\<nom-de-l\'instance\>]{.title-ref}) et l\'on
+lance la commande souhaité via un appel au de ce répertoire
+[manage.py]{.title-ref} suivi du nom de la commande. Exemple :
+
+``` {.bash}
+root@ishtar-server:# cd /srv/ishtar/prod_deb
+root@ishtar-server:# python3 ./manage.py relations_update_cache_tables
+```
+
+import\_geofla\_csv
+-------------------
+
+Import des communes depuis les données IGN (cf.
+`Annexe technique 2<import-communes-ign>`{.interpreted-text
+role="ref"}).
+
+import\_insee\_comm\_csv
+------------------------
+
+Import des communes depuis les données INSEE (cf.
+`Annexe technique 1<import-regroupements-communes-insee>`{.interpreted-text
+role="ref"}).
+
+relations\_update\_cache\_tables
+--------------------------------
+
+Cette commande met à jour les tables de cache des relations. Cette
+commande doit être impérativement lancée lorsque l\'on change le type de
+gestion des relations depuis le profil afin de mettre à jour les tables
+correpondantes.
diff --git a/docs/fr/annexe-tech-6-configuration-syndication.md b/docs/fr/annexe-tech-6-configuration-syndication.md
new file mode 100644
index 000000000..7b6b22981
--- /dev/null
+++ b/docs/fr/annexe-tech-6-configuration-syndication.md
@@ -0,0 +1,220 @@
+Annexe technique 6 - Configuration de la fédération {#annexe-tech-6-configuration-syndication}
+===================================================
+
+Auteurs
+
+: Étienne Loks
+
+Date
+
+: 2023-02-16
+
+Copyright
+
+: CC-BY 3.0
+
+Ishtar Version
+
+: v4.0
+
+La fédération de données entre instances Ishtar est une fonctionnalité
+puissante mais assez complexe à mettre en place. La documentation
+ci-dessous détaille pas à pas les différentes étapes pour mettre en
+place cela.
+
+Selon que l'on soit l'instance qui partage des données ou celle qui
+consulte des données les enjeux sont différents :
+
+L'instance qui partage des données (dite « source ») doit paramétrer :
+
+- les types de données à partager ;
+- les sous-ensembles de ces données à partager ;
+- les attributs que l'on souhaite exposer / cacher ;
+- à qui l'on va partager les données (nécessitant la création d'un
+ compte système avec un jeton d'accès et le paramétrage de l'adresse
+ IP du serveur vers lequel les données vont être envoyées).
+
+L'instance source est configurée en administration via les entrées « API
+-Accès distant ».
+
+L'instance qui consulte les données (dite « destination ») doit
+paramétrer :
+
+- le serveur « source » qui fournit les données, son adresse web
+ d'Ishtar et un jeton d'accès ;
+- la correspondance entre les listes de vocabulaire contrôlé de son
+ instance et les listes de vocabulaire contrôlé de l'instance source.
+ Cette correspondance est nécessaire pour traduire les recherches par
+ critères de manière pertinente.
+
+L'instance destination est configurée en administration via les entrées
+« API - Recherche ».
+
+Pour illustrer une fédération de données, nous allons prendre l'exemple
+suivant :
+
+L'instance Charente-Maritime veut partager un ensemble de données avec
+l'instance Nouvelle-Aquitaine.
+
+Le serveur dit « source » est celui de Charente-Maritime.
+
+Le serveur dit « destination » est celui de Nouvelle-Aquitaine.
+
+Configuration du serveur source
+-------------------------------
+
+Cette configuration est à faire si vous souhaitez donner un accès en
+lecture à vos données depuis une autre instance Ishtar. Dans notre
+exemple, il s'agit du serveur Charente-Maritime.
+
+Préalablement à cette configuration vous avez besoin de l'adresse IP du
+serveur de l'autre instance Ishtar.
+
+### Création d'un utilisateur système
+
+Contrairement à la création d'utilisateur classique, on crée un
+utilisateur système. Celui-ci n'aura pas accès à l'instance Ishtar
+directement. Créer cet utilisateur en interface « Administration de base
+de données » : « Authentification et autorisation \> Utilisateurs \>
+Ajout ». Utiliser un identifiant qui n'existe pas encore en base de
+données, exemple « federation-nouvelle-aquitaine ». Le mot de passe ne
+sera pas utilisé : en choisir un particulièrement complexe.
+
+![image0](static/annexe-technique-06-01.png)
+
+### Associer un jeton d'authentification à un utilisateur système
+
+Associer ensuite à ce compte un jeton d'authentification. Depuis
+l'interface « Administration de base de données » : « Accueil \> Jeton
+d'authentification \> Jetons \> Ajout ». Le compte est retrouvé via
+l'icône loupe.
+
+Une fois le jeton créé, aller à la liste des jetons puis mettre de côté
+la clé du jeton.
+
+![image1](static/annexe-technique-06-02.png)
+
+Par exemple sur la capture d'écran, la clé est
+`a14b32f31029216da11621ba5ddb0431997ca61d`. Une fois la configuration
+terminée, cette clé sera à transmettre à l'administrateur de l\'instance
+Ishtar destination.
+
+### Associer l'adresse IP du serveur destination à l'utilisateur système
+
+Depuis « Ishtar - Commun \> API - Accès distant - Utilisateurs \> Ajout
+», on associe l'utilisateur système à l'adresse IP du serveur.
+
+![image2](static/annexe-technique-06-03.png)
+
+Pour notre exemple, le serveur de Nouvelle-Aquitaine a l'adresse
+`8.8.8.8`.
+
+### Ouvrir l'accès à un ou plusieurs types de contenu
+
+Pour chaque type de contenu que l'on souhaite ouvrir (Opération, Unité
+d'Enregistrement, Mobilier, ...), ajouter une entrée via : « Ishtar
+-Commun \> API - Accès distant - Modèles de recherche \> Ajout ».
+
+![image3](static/annexe-technique-06-04.png)
+
+On sélectionne notre utilisateur système, le type de contenu, ainsi
+qu'éventuellement une requête filtrante. Cette requête correspond à une
+chaîne de caractères correspondant à recherche. Seuls les éléments
+correspondants à cette requête seront partagés. Si l'on ne renseigne pas
+cette requête filtrante tous les éléments seront renvoyés.
+
+### Filtrer la fiche de contenu
+
+Il est possible de cacher certains champs sur la fiche que l'on partage.
+Pour chaque champ que l'on souhaite cacher, ajouter une entrée via «
+Ishtar - Commun \> API - Accès distant - Filtres de fiche \> Ajout ». Le
+formulaire doit rempli en deux fois. On se contente d'abord de choisir
+le type de contenu que l'on veut filtrer.
+
+![image4](static/annexe-technique-06-05.png)
+
+Valider avec le bouton « Enregistrer et continuer les modifications ».
+
+Une fois ce premier enregistrement, l'aide disponible sous le champ «
+Clé » liste les différentes clés correspondant au contenu que l'on
+souhaite filtrer.
+
+![image5](static/annexe-technique-06-06.png)
+
+Sur cet exemple, on souhaite filtrer l'affichage de l'image principale.
+Note : si l'on souhaite qu'aucune image ne soit affichée, il faut
+ajouter chaque champ « image ».
+
+Configuration du serveur destination
+------------------------------------
+
+Cette configuration est à faire si vous souhaitez accéder à des données
+d'une autre instance Ishtar depuis votre propre instance. Dans notre
+exemple, il s'agit du serveur Nouvelle-Aquitaine.
+
+Préalablement à cette configuration vous avez besoin du jeton
+d'authentification donné par le serveur source ainsi que l'adresse web
+pour accéder à celui-ci.
+
+### Créer la source externe
+
+Cette source externe se crée en interface « Administration de base de
+données » : « Ishtar - Commun \> API - Recherche - Sources externes \>
+Ajout ».
+
+![image6](static/annexe-technique-06-07.png)
+
+Sur le formulaire reprendre l'adresse web du serveur source ainsi que le
+jeton d'authentification qui vous a été fourni. Le nom renseigné doit
+être explicite, il apparaîtra sur les écrans de recherche de
+l'interface. On renseigne explicitement chaque utilisateur qui aura
+accès à cette source externe.
+
+### Synchroniser les listes de vocabulaire contrôlées depuis la source
+
+Une fois la source externe créée il est nécessaire de récupérer les
+listes de vocabulaire contrôlées de cette source (le serveur source).
+Pour cela, on se rend sur la page listant les sources externes : «
+Ishtar -Commun \> API - Recherche - Sources externes ». Sélectionner la
+source externe concernée, l'action « Mettre à jour les types depuis la
+source » et valider (le bouton « Aller »).
+
+![image7](static/annexe-technique-06-08.png)
+
+Cette action peut prendre un certain temps. Si des changements sont
+faits sur les listes de vocabulaire contrôlé sur la source cette étape
+ainsi que les suivantes sont à effectuer de nouveau.
+
+### Mettre à jour les correspondances
+
+Pour chaque liste de vocabulaire contrôlée, des correspondances sont
+faites automatiquement entre les termes identiques. Lorsque deux
+instances partagent la même langue et ont des cas d'utilisation
+semblable, une bonne partie des listes de vocabulaire sont mises en
+correspondance automatiquement. Afin de visualiser les correspondances
+et de compléter les correspondances manquantes, on génère un document de
+correspondance. Celui-ci se présente sous la forme d'un document tableur
+LibreOffice. Pour cela, on reste sur la page listant les sources
+externes : « Ishtar - Commun \> API - Recherche - Sources externes ».
+Sélectionner la source externe concernée et l'action « Générer le
+document de correspondance », valider (bouton « Aller »).
+
+![image8](static/annexe-technique-06-09.png)
+
+Ouvrir le document généré avec LibreOffice et parcourir les différents
+onglets pour effectuer les éventuelles correspondances manquantes. Là où
+des cellules sur la troisième colonne « Local » sont vides, choisir
+l'élément manquant dans la liste.
+
+![image9](static/annexe-technique-06-10.png)
+
+Une fois ces modifications faites, enregistrer le document et le déposer
+sur le serveur sur la source externe concernée.
+
+![image10](static/annexe-technique-06-11.png)
+
+Enregistrer la source externe puis sélectionner la source externe
+concernée et l'action « Mettre à jour les associations depuis un
+document de correspondance », valider.
+
+![image11](static/annexe-technique-06-12.png)
diff --git a/docs/fr/index.md b/docs/fr/index.md
new file mode 100644
index 000000000..213e45d3b
--- /dev/null
+++ b/docs/fr/index.md
@@ -0,0 +1,134 @@
+
+# Contenu
+
+
+
+<!--
+## [Administration applicative](administrateur-applicatif.md#administration-applicative)
+### [Listes de types](administrateur-applicatif.md#listes-de-types)
+### [Champs personnalisés {#champ-personnalises}](administrateur-applicatif.md#champs-personnalises-champ-personnalises)
+### [Formulaires personnalisés {#formulaire-personnalise}](administrateur-applicatif.md#formulaires-personnalises-formulaire-personnalise)
+### [Gestion des permissions](administrateur-applicatif.md#gestion-des-permissions)
+* [Gestion des comptes {#gestion-comptes}](administrateur-applicatif.md#gestion-des-comptes-gestion-comptes)
+* [Permissions dans Ishtar {#permissions-ishtar}](administrateur-applicatif.md#permissions-dans-ishtar-permissions-ishtar)
+* [Permissions dans les pages d\'administration](administrateur-applicatif.md#permissions-dans-les-pages-dadministration)
+### [Patrons de documents](administrateur-applicatif.md#patrons-de-documents)
+* [Principes de base](administrateur-applicatif.md#principes-de-base)
+* [Un premier patron](administrateur-applicatif.md#un-premier-patron)
+### [Configuration du profil d\'instance Ishtar {#configuration-instance-ishtar}](administrateur-applicatif.md#configuration-du-profil-dinstance-ishtar-configuration-instance-ishtar)
+* [Identifiants et index personnalisés](administrateur-applicatif.md#identifiants-et-index-personnalises)
+### [Formules](administrateur-applicatif.md#formules)
+* [Syntaxe simple {#formules-syntaxe-simple}](administrateur-applicatif.md#syntaxe-simple-formules-syntaxe-simple)
+* [Syntaxe Jinja {#formules-syntaxe-jinja}](administrateur-applicatif.md#syntaxe-jinja-formules-syntaxe-jinja)
+### [Journalisation RGPD](administrateur-applicatif.md#journalisation-rgpd)
+## [Administration serveur](administrateur-serveur.md#administration-serveur)
+### [Installation sur serveur Debian Bullseye](administrateur-serveur.md#installation-sur-serveur-debian-bullseye)
+### [Initialisation de la base de données](administrateur-serveur.md#initialisation-de-la-base-de-donnees)
+* [Initialisation des communes](administrateur-serveur.md#initialisation-des-communes)
+### [Mises à jour](administrateur-serveur.md#mises-a-jour)
+* [Mise à jour version 3 (sur Debian Buster) vers la version 4 (sur Debian Bullseye)](administrateur-serveur.md#mise-a-jour-version-3-sur-debian-buster-vers-la-version-4-sur-debian-bullseye)
+## [Annexe 1 - Détails des permissions {#annexe-1-permission-action}](annexe-1-permission-action.md#annexe-1-details-des-permissions-annexe-1-permission-action)
+### [Imports](annexe-1-permission-action.md#imports)
+* [Définition des droits](annexe-1-permission-action.md#definition-des-droits)
+* [Import rattaché](annexe-1-permission-action.md#import-rattache)
+* [Permission lecture](annexe-1-permission-action.md#permission-lecture)
+* [Permission ajout](annexe-1-permission-action.md#permission-ajout)
+* [Permission modification](annexe-1-permission-action.md#permission-modification)
+* [Permission suppression](annexe-1-permission-action.md#permission-suppression)
+## [Annexe 2 - Exemple de flux opérationnel : prêt pour exposition](annexe-2-ex-flux-ope.md#annexe-2-exemple-de-flux-operationnel-pret-pour-exposition)
+### [Description](annexe-2-ex-flux-ope.md#description)
+* [Pré-sélection du mobilier pour l\'exposition par les gestionnaires de mobilier](annexe-2-ex-flux-ope.md#pre-selection-du-mobilier-pour-lexposition-par-les-gestionnaires-de-mobilier)
+* [Sélection du mobilier depuis cette pré-selection par la structure emprunteuse](annexe-2-ex-flux-ope.md#selection-du-mobilier-depuis-cette-pre-selection-par-la-structure-emprunteuse)
+* [Édition des documents administratifs](annexe-2-ex-flux-ope.md#edition-des-documents-administratifs)
+* [Départ effectif du mobilier concerné](annexe-2-ex-flux-ope.md#depart-effectif-du-mobilier-concerne)
+* [Gestion du retour du mobilier](annexe-2-ex-flux-ope.md#gestion-du-retour-du-mobilier)
+## [Annexe 3 - Correspondance des champs Ishtar - Normes documentaires](annexe-3-doc-normes.md#annexe-3-correspondance-des-champs-ishtar-normes-documentaires)
+### [Ishtar - Dublin Core](annexe-3-doc-normes.md#ishtar-dublin-core)
+### [Ishtar - COinS](annexe-3-doc-normes.md#ishtar-coins)
+## [Annexe technique 1 - Import des regroupements de commune INSEE {#import-regroupements-communes-insee}](annexe-tech-1-insee-communes.md#annexe-technique-1-import-des-regroupements-de-commune-insee-import-regroupements-communes-insee)
+## [Annexe technique 2 - Import des communes IGN {#import-communes-ign}](annexe-tech-2-ign-communes.md#annexe-technique-2-import-des-communes-ign-import-communes-ign)
+### [Récupération des données](annexe-tech-2-ign-communes.md#recuperation-des-donnees)
+### [Import dans Ishtar](annexe-tech-2-ign-communes.md#import-dans-ishtar)
+## [Annexe technique 3 - Variables {#annexe-technique-3-variables}](annexe-tech-3-variables-gen.md#annexe-technique-3-variables-annexe-technique-3-variables)
+### [Modèles génériques {#valeurs-champs-adresse}](annexe-tech-3-variables-gen.md#modeles-generiques-valeurs-champs-adresse)
+* [Champs personnalisés](annexe-tech-3-variables-gen.md#champs-personnalises)
+* [Champs adresse](annexe-tech-3-variables-gen.md#champs-adresse)
+* [Personne](annexe-tech-3-variables-gen.md#personne)
+* [Auteur](annexe-tech-3-variables-gen.md#auteur)
+* [Organisation](annexe-tech-3-variables-gen.md#organisation)
+* [Documentation](annexe-tech-3-variables-gen.md#documentation)
+* [Élément géographique](annexe-tech-3-variables-gen.md#element-geographique)
+* [Acte administratif](annexe-tech-3-variables-gen.md#acte-administratif)
+* [Commune](annexe-tech-3-variables-gen.md#commune)
+* [Zone géographique](annexe-tech-3-variables-gen.md#zone-geographique)
+* [Parcelle](annexe-tech-3-variables-gen.md#parcelle)
+* [Datation](annexe-tech-3-variables-gen.md#datation)
+### [Modèles des éléments principaux](annexe-tech-3-variables-gen.md#modeles-des-elements-principaux)
+* [Opération](annexe-tech-3-variables-gen.md#operation)
+* [Site/Entité archéologique](annexe-tech-3-variables-gen.md#siteentite-archeologique)
+* [Dossier archéologique](annexe-tech-3-variables-gen.md#dossier-archeologique)
+* [Unité d\'enregistrement](annexe-tech-3-variables-gen.md#unite-denregistrement)
+* [Mobilier d\'origine](annexe-tech-3-variables-gen.md#mobilier-dorigine)
+* [Mobilier](annexe-tech-3-variables-gen.md#mobilier)
+* [Traitement](annexe-tech-3-variables-gen.md#traitement)
+* [Demande de traitement](annexe-tech-3-variables-gen.md#demande-de-traitement)
+* [Dépot](annexe-tech-3-variables-gen.md#depot)
+* [Contenant](annexe-tech-3-variables-gen.md#contenant)
+## [Annexe technique 4 - Filtres pour les patrons de documents {#annexe-technique-4-jinja-filters}](annexe-tech-4-jinja-filters.md#annexe-technique-4-filtres-pour-les-patrons-de-documents-annexe-technique-4-jinja-filters)
+### [Formatage des chaînes de caractères](annexe-tech-4-jinja-filters.md#formatage-des-chaines-de-caracteres)
+### [Manipulation des chaînes de caractères](annexe-tech-4-jinja-filters.md#manipulation-des-chaines-de-caracteres)
+## [Annexe technique 5 - Commandes de gestion en CLI {#annexe-tech-5-manage-commands}](annexe-tech-5-manage-commands.md#annexe-technique-5-commandes-de-gestion-en-cli-annexe-tech-5-manage-commands)
+### [import_geofla_csv](annexe-tech-5-manage-commands.md#import_geofla_csv)
+### [import_insee_comm_csv](annexe-tech-5-manage-commands.md#import_insee_comm_csv)
+### [relations_update_cache_tables](annexe-tech-5-manage-commands.md#relations_update_cache_tables)
+## [Annexe technique 6 - Configuration de la fédération {#annexe-tech-6-configuration-syndication}](annexe-tech-6-configuration-syndication.md#annexe-technique-6-configuration-de-la-federation-annexe-tech-6-configuration-syndication)
+### [Configuration du serveur source](annexe-tech-6-configuration-syndication.md#configuration-du-serveur-source)
+* [Création d'un utilisateur système](annexe-tech-6-configuration-syndication.md#creation-dun-utilisateur-systeme)
+* [Associer un jeton d'authentification à un utilisateur système](annexe-tech-6-configuration-syndication.md#associer-un-jeton-dauthentification-a-un-utilisateur-systeme)
+* [Associer l'adresse IP du serveur destination à l'utilisateur système](annexe-tech-6-configuration-syndication.md#associer-ladresse-ip-du-serveur-destination-a-lutilisateur-systeme)
+* [Ouvrir l'accès à un ou plusieurs types de contenu](annexe-tech-6-configuration-syndication.md#ouvrir-lacces-a-un-ou-plusieurs-types-de-contenu)
+* [Filtrer la fiche de contenu](annexe-tech-6-configuration-syndication.md#filtrer-la-fiche-de-contenu)
+### [Configuration du serveur destination](annexe-tech-6-configuration-syndication.md#configuration-du-serveur-destination)
+* [Créer la source externe](annexe-tech-6-configuration-syndication.md#creer-la-source-externe)
+* [Synchroniser les listes de vocabulaire contrôlées depuis la source](annexe-tech-6-configuration-syndication.md#synchroniser-les-listes-de-vocabulaire-controlees-depuis-la-source)
+* [Mettre à jour les correspondances](annexe-tech-6-configuration-syndication.md#mettre-a-jour-les-correspondances)
+## [Principes](principes.md#principes)
+### [Présentation](principes.md#presentation)
+* [Présentation générale](principes.md#presentation-generale)
+* [Fonctionnalités](principes.md#fonctionnalites)
+### [Modules / configuration](principes.md#modules-configuration)
+### [Structure de la base de données](principes.md#structure-de-la-base-de-donnees)
+* [Opération archéologique](principes.md#operation-archeologique)
+* [Site/entité archéologique](principes.md#siteentite-archeologique)
+* [Parcelle](principes.md#parcelle)
+* [Unité d\'enregistrement](principes.md#unite-denregistrement)
+* [Mobilier - Traitement](principes.md#mobilier-traitement)
+* [Mobilier - Demande de traitement](principes.md#mobilier-demande-de-traitement)
+* [Contenant](principes.md#contenant)
+* [Document](principes.md#document)
+### [Les flux de données](principes.md#les-flux-de-donnees)
+* [Import](principes.md#import)
+* [Ajout/modification par formulaire](principes.md#ajoutmodification-par-formulaire)
+* [Modification par lot](principes.md#modification-par-lot)
+### [Notions avancées](principes.md#notions-avancees)
+* [Données géographiques {#donnees-geographiques}](principes.md#donnees-geographiques-donnees-geographiques)
+## [Utilisateur](utilisateur.md#utilisateur)
+### [Interface générale](utilisateur.md#interface-generale)
+* [Zone de profil](utilisateur.md#zone-de-profil)
+* [Menu d\'actions](utilisateur.md#menu-dactions)
+* [Zone centrale](utilisateur.md#zone-centrale)
+* [Zone d\'alerte et de sélection épinglée](utilisateur.md#zone-dalerte-et-de-selection-epinglee)
+### [Page de recherche](utilisateur.md#page-de-recherche)
+* [Recherche textuelle et par critères](utilisateur.md#recherche-textuelle-et-par-criteres)
+* [Marques-pages et alertes {#bookmarks}](utilisateur.md#marques-pages-et-alertes-bookmarks)
+* [Tableaux](utilisateur.md#tableaux)
+* [Fiches {#sheet}](utilisateur.md#fiches-sheet)
+### [Page d\'assistant logiciel (wizard) {#wizard}](utilisateur.md#page-dassistant-logiciel-wizard-wizard)
+* [Fil d\'Ariane](utilisateur.md#fil-dariane)
+* [Tableau / Zone de formulaire](utilisateur.md#tableau-zone-de-formulaire)
+* [Zone de validation](utilisateur.md#zone-de-validation)
+### [Utilisation avancée](utilisateur.md#utilisation-avancee)
+* [Paniers {#basket}](utilisateur.md#paniers-basket)
+* [Éléments épinglés {#pinned}](utilisateur.md#elements-epingles-pinned)
+* [Action rapide](utilisateur.md#action-rapide)
+--> \ No newline at end of file
diff --git a/docs/fr/source/media-src/containers.dia b/docs/fr/media-src/containers.dia
index 550a7d08b..550a7d08b 100644
--- a/docs/fr/source/media-src/containers.dia
+++ b/docs/fr/media-src/containers.dia
Binary files differ
diff --git a/docs/fr/source/media-src/geo-parents.dia b/docs/fr/media-src/geo-parents.dia
index faae8e124..faae8e124 100644
--- a/docs/fr/source/media-src/geo-parents.dia
+++ b/docs/fr/media-src/geo-parents.dia
Binary files differ
diff --git a/docs/fr/source/media-src/geo-source-point.dia b/docs/fr/media-src/geo-source-point.dia
index 4de8527fd..4de8527fd 100644
--- a/docs/fr/source/media-src/geo-source-point.dia
+++ b/docs/fr/media-src/geo-source-point.dia
Binary files differ
diff --git a/docs/fr/source/media-src/geo-source-polygon.dia b/docs/fr/media-src/geo-source-polygon.dia
index de6735aa3..de6735aa3 100644
--- a/docs/fr/source/media-src/geo-source-polygon.dia
+++ b/docs/fr/media-src/geo-source-polygon.dia
Binary files differ
diff --git a/docs/fr/source/media-src/graphique-structure-ishtar.png b/docs/fr/media-src/graphique-structure-ishtar.png
index d844297ab..d844297ab 100644
--- a/docs/fr/source/media-src/graphique-structure-ishtar.png
+++ b/docs/fr/media-src/graphique-structure-ishtar.png
Binary files differ
diff --git a/docs/fr/source/media-src/graphique-structure-ishtar.svg b/docs/fr/media-src/graphique-structure-ishtar.svg
index 8412b7bcb..8412b7bcb 100644
--- a/docs/fr/source/media-src/graphique-structure-ishtar.svg
+++ b/docs/fr/media-src/graphique-structure-ishtar.svg
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar-presenter.sozi.html b/docs/fr/media-src/graphique_structure_ishtar-presenter.sozi.html
index e3e26ab82..e3e26ab82 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar-presenter.sozi.html
+++ b/docs/fr/media-src/graphique_structure_ishtar-presenter.sozi.html
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar.dot b/docs/fr/media-src/graphique_structure_ishtar.dot
index e69ab6d6d..e69ab6d6d 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar.dot
+++ b/docs/fr/media-src/graphique_structure_ishtar.dot
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar.sozi.html b/docs/fr/media-src/graphique_structure_ishtar.sozi.html
index e268ad527..e268ad527 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar.sozi.html
+++ b/docs/fr/media-src/graphique_structure_ishtar.sozi.html
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar.sozi.json b/docs/fr/media-src/graphique_structure_ishtar.sozi.json
index 72a255763..72a255763 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar.sozi.json
+++ b/docs/fr/media-src/graphique_structure_ishtar.sozi.json
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar.svg b/docs/fr/media-src/graphique_structure_ishtar.svg
index 48d1778e6..48d1778e6 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar.svg
+++ b/docs/fr/media-src/graphique_structure_ishtar.svg
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar_layers-presenter.sozi.html b/docs/fr/media-src/graphique_structure_ishtar_layers-presenter.sozi.html
index d80d0a3e1..d80d0a3e1 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar_layers-presenter.sozi.html
+++ b/docs/fr/media-src/graphique_structure_ishtar_layers-presenter.sozi.html
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.html b/docs/fr/media-src/graphique_structure_ishtar_layers.sozi.html
index 663748047..663748047 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.html
+++ b/docs/fr/media-src/graphique_structure_ishtar_layers.sozi.html
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.json b/docs/fr/media-src/graphique_structure_ishtar_layers.sozi.json
index 36643e979..36643e979 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar_layers.sozi.json
+++ b/docs/fr/media-src/graphique_structure_ishtar_layers.sozi.json
diff --git a/docs/fr/source/media-src/graphique_structure_ishtar_layers.svg b/docs/fr/media-src/graphique_structure_ishtar_layers.svg
index d973d383a..d973d383a 100644
--- a/docs/fr/source/media-src/graphique_structure_ishtar_layers.svg
+++ b/docs/fr/media-src/graphique_structure_ishtar_layers.svg
diff --git a/docs/fr/source/media-src/interface-generale.xcf b/docs/fr/media-src/interface-generale.xcf
index f3158a233..f3158a233 100644
--- a/docs/fr/source/media-src/interface-generale.xcf
+++ b/docs/fr/media-src/interface-generale.xcf
Binary files differ
diff --git a/docs/fr/source/media-src/ishtar-coins.dot b/docs/fr/media-src/ishtar-coins.dot
index 8d41cc766..8d41cc766 100644
--- a/docs/fr/source/media-src/ishtar-coins.dot
+++ b/docs/fr/media-src/ishtar-coins.dot
diff --git a/docs/fr/source/media-src/ishtar-coins.svg b/docs/fr/media-src/ishtar-coins.svg
index 97db72ca7..97db72ca7 100644
--- a/docs/fr/source/media-src/ishtar-coins.svg
+++ b/docs/fr/media-src/ishtar-coins.svg
diff --git a/docs/fr/source/media-src/ishtar-dublincore.dot b/docs/fr/media-src/ishtar-dublincore.dot
index 72735c64f..72735c64f 100644
--- a/docs/fr/source/media-src/ishtar-dublincore.dot
+++ b/docs/fr/media-src/ishtar-dublincore.dot
diff --git a/docs/fr/source/media-src/ishtar-dublincore.svg b/docs/fr/media-src/ishtar-dublincore.svg
index 22c7c98d1..22c7c98d1 100644
--- a/docs/fr/source/media-src/ishtar-dublincore.svg
+++ b/docs/fr/media-src/ishtar-dublincore.svg
diff --git a/docs/fr/source/media-src/ishtar-syndication.drawio b/docs/fr/media-src/ishtar-syndication.drawio
index d1addf4c1..d1addf4c1 100644
--- a/docs/fr/source/media-src/ishtar-syndication.drawio
+++ b/docs/fr/media-src/ishtar-syndication.drawio
diff --git a/docs/fr/source/media-src/ishtar-syndication.drawio.png b/docs/fr/media-src/ishtar-syndication.drawio.png
index fc5c7fc81..fc5c7fc81 100644
--- a/docs/fr/source/media-src/ishtar-syndication.drawio.png
+++ b/docs/fr/media-src/ishtar-syndication.drawio.png
Binary files differ
diff --git a/docs/fr/source/media-src/traitement.xcf b/docs/fr/media-src/traitement.xcf
index 144182859..144182859 100644
--- a/docs/fr/source/media-src/traitement.xcf
+++ b/docs/fr/media-src/traitement.xcf
Binary files differ
diff --git a/docs/fr/principes.md b/docs/fr/principes.md
new file mode 100644
index 000000000..4784c5044
--- /dev/null
+++ b/docs/fr/principes.md
@@ -0,0 +1,576 @@
+Principes
+=========
+
+Auteur
+
+: Étienne Loks - Valérie-Emma Leroux - Yann Le Jeune
+
+Date
+
+: 2020-11-23
+
+Copyright
+
+: CC-BY 3.0
+
+Ce document présente les grands principes qui structurent Ishtar.
+
+Présentation
+------------
+
+### Présentation générale
+
+Ishtar est un projet de gestion de base de données visant à gérer les
+données et la documentation (mobilier inclus) provenant d\'opérations
+archéologique, publié sous la forme d\'un logiciel libre sous licence
+AGPL 3.0 (ou supérieure).
+
+L\'objectif est d\'assurer une traçabilité maximale des informations
+afin de faire vivre cette documentation et la rendre même éventuellement
+accessible au public ou encore à un (ou des) groupe(s) d\'utilisateurs.
+
+Ce logiciel a vocation à être installé sur un serveur web mais peut
+également fonctionner en local, à l\'échelle d\'un chantier, d\'une
+commune ou d\'une région entière.
+
+Conçu afin de permettre une communication inter-bases, le projet Ishtar
+vise plutôt un modèle d\'information distribué que centralisé : la
+communication entre les bases est favorisée.
+
+Il est organisé autour d\'un tronc commun associé à des modules liés à
+des besoins « métiers » spécifiques : administration des opérations et
+inventaires, lieux de conservation, traitements liés aux laboratoires de
+restauration, analyse stratigraphique avancée, étiquetage QR-code, etc.
+
+De multiples niveaux d\'utilisateurs sont possibles, d\'un accès pour le
+public (ou non) à des accès pour chercheurs, responsables d\'opérations,
+gestionnaires de CCE, connexion avec un SIG, etc.
+
+Voici quelques exemples des usages possibles (liste non exhaustive) pour
+la gestion des données :
+
+- d\'une opération programmée ou préventive (une instance pour une
+ opération ou une série d\'opérations) gérée à l\'échelle de
+ l\'équipe de recherche associée : gestion des données, mise en
+ commun, production automatique d\'inventaires conformes, export et
+ import d\'inventaires avec des spécialistes, gestion des relations
+ stratigraphiques, etc. ;
+- d\'une association de bénévoles : enregistrement des résultats de
+ chacun dans une base commune ;
+- à l\'échelle d\'un service régional de l\'archéologie : gestion des
+ inventaires mobilier, opérations, dossiers d\'urbanisme, rapports,
+ dépôts, production d\'arrêtés et de courriers, base de connaissances
+ régionale, etc. ;
+- pour un service de collectivité territoriale : suivi des opérations,
+ gestion de l\'ensemble des données et mise à disposition du public
+ et chercheurs ;
+- pour un laboratoire de restauration : gestion fine des traitements
+ et traçabilité maximale du mobilier (tout l\'historique des
+ traitements est conservé) ;
+- pour un PCR : plate-forme de synthèse des données collectées et
+ valorisation du travail effectué par l\'ouverture au public de la
+ base une fois le PCR achevé ;
+- pour des étudiants : base de données gratuite, utilisant des normes
+ standardisées, possibilité de mettre en commun son travail avec
+ d\'autres, de le faire suivre par des tuteurs ou encadrants ;
+- etc.
+
+### Fonctionnalités
+
+La version actuelle permet d\'accomplir les tâches suivantes :
+
+- saisie des opérations,
+- saisie des unités d\'enregistrement (UE),
+- saisie du mobilier archéologique,
+- association à de la documentation,
+- production automatique d\'inventaires conformes (UE, mobilier,
+ documents),
+- gestionnaire de médias (stockage et gestion des photos, pdf des
+ rapports, etc.),
+- personnalisation des formulaires (ajouts de champs personnalisés,
+ choix de l\'affichage des champs Ishtar),
+- imports paramétrables et archivables, incluant éventuellement les
+ liens vers des images, depuis des fichiers tabulaires (format csv,
+ fichier zip pour les images),
+- recherche avancée (recherche plein texte et par critère,
+ enregistrement de recherche, gestion d\'alertes),
+- exports (csv) suite à une recherche ou par élément sélectionné
+ (opération, UE, mobilier),
+- production de documents formatés (patrons au format odt),
+- production de fiches types pour les opérations, UE ou mobilier
+ (format odt et pdf),
+- tableau de bord produisant automatiquement des statistiques et des
+ graphiques,
+- connexion (jointure) avec un SIG (testé avec QGIS),
+
+#### Module administratif
+
+- saisie des dossiers,
+- ajout d\'actes administratifs (courriers, arrêtés, etc.),
+- production automatique de courriers administratifs (accusés de
+ réception, etc.),
+
+#### Module lieux de conservation
+
+- gestion des mouvements de mobilier,
+- production automatique de documents tels conventions de prêts,
+ fiches d\'état, etc.
+- conditionnement,
+- sélection par « panier »,
+- gestion des contenants et étiquetage : il n\'est pas prévu
+ qu\'Ishtar génère directement des étiquettes (pdf) mais plutôt des
+ fichiers csv pouvant être utilisés selon tout format d\'étiquette
+ via « publi-postage » dans un logiciel tiers (libre-office, excel,
+ etc.).
+
+Modules / configuration
+-----------------------
+
+Selon le périmètre fonctionnel dans lequel Ishtar est utilisé, il
+convient d\'activer ou désactiver certains modules. Ces modules
+permettent d\'accéder à plus ou moins de fonctionnalités d\'Ishtar, de
+faire apparaître des champs sur les formulaires, de présenter
+différemment les données, etc.
+
+!!! note
+ L'activation / désactivation d\un module ne change jamais la structure
+ des données. Il est tout à fait possible d\'activer ponctuellement un
+ module sans que cela n\'altère les données en base.
+
+Des dépendances entre modules existent. Ces dépendances sont logiques et
+se comprennent aisément si l\'on a intégré la structure de la base de
+données d\'Ishtar (cf.
+`structure-de-la-base-de-données`{.interpreted-text role="ref"}). En cas
+de doute, si une dépendance est manquante lors de l\'activation du
+module un message explicite est donné.
+
+L\'activation des modules est faite en administration sur la page de
+configuration d\'instance Ishtar (cf.
+`documentation administrateur <configuration-instance-ishtar>`{.interpreted-text
+role="ref"}).
+
+Par ailleurs au niveau de la configuration d\'instance Ishtar un certain
+de nombre de paramètres de fonctionnement Ishtar peuvent être ajustés.
+Ceux-ci sont détaillés dans la
+`documentation administrateur <configuration-instance-ishtar>`{.interpreted-text
+role="ref"}.
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Contrairement à l\'activation des modules, certains paramètres ont une
+incidence importante sur les données stockées dans Ishtar, notamment en
+ce qui concerne la gestion des identifiants mobiliers, des identifiants
+documents, etc. En tant qu\'administrateur, si vous souhaitez une
+configuration différente de la configuration par défaut d\'Ishtar, il
+est nécessaire de modifier ces paramètres en amont.
+:::
+
+Structure de la base de données
+-------------------------------
+
+La base de données n\'est pas détaillée table par table dans cette
+documentation mais nous allons vous présenter les grandes notions
+utilisées. La structure présentée peut apparaître rigide mais c\'est un
+mal nécessaire pour une certaine standardisation de données
+archéologiques. Par ailleurs les concepts sont très larges et
+d\'expérience s\'adapte très bien à la plupart des contextes.
+
+![image](static/graphique_structure_ishtar.png)
+
+### Opération archéologique
+
+L\'opération archéologique est le cœur du modèle de données d\'Ishtar.
+Au sein d\'Ishtar, l\'opération archéologique est définie comme une
+action (ou un projet d\'action) permettant d\'acquérir des données
+archéologiques, sous la responsabilité d\'une personne (exemples :
+découverte fortuite, diagnostic, fouille programmée, prospection, etc.)
+et dans un lieu si possible défini.
+
+Si l\'opération est au centre du modèle de données d\'Ishtar plutôt que
+le site ou l\'entité archéologique, c\'est parce que ce dernier est une
+interprétation (comme toute interprétation, sujette à évolution dans le
+temps) des données, alors que l\'opération est l\'information qui permet
+au mieux de regrouper un corpus documentaire cohérent mettant en lien
+des documents (plans, rapports, photos, etc.) et du mobilier.
+
+Il est possible de créer des liens entre des opérations, soit en les
+associant à un même dossier source (avec le module « administratif »,
+ex. : un permis de construire qui est associé à un diagnostic et une
+fouille préventive), soit en définissant une relation entre des
+opérations globales (ex. : PCR, suivi d\'autoroutes, etc.) et d\'autres
+plus ponctuelles (phases, tranches, secteurs, etc.). Le regroupement
+d\'opérations est également pratique en contexte de fouilles
+programmées, où il peut être utile d\'avoir des inventaires pour chaque
+opération par année, mais également une vision globale de la succession
+des fouilles (opération globale). En contexte de grande opération
+préventive, ce système peut servir à individualiser des secteurs de
+fouilles disposant de modes d'enregistrements spécifiques.
+L\'utilisateur a toute latitude pour organiser les opérations entres
+elles selon ses besoins, du moment que ces éléments clefs représentent
+bien des lots documentaires et mobilier a priori cohérents.
+
+### Site/entité archéologique
+
+Malgré le choix de l\'opération comme rôle central de son modèle de
+données, Ishtar gère pleinement les sites (ou entité - notion
+paramétrable en administration) archéologiques et la migration depuis
+une base orientée site est tout à fait envisageable.
+
+### Parcelle
+
+Les parcelles sont gérées précisément au sein d\'Ishtar en étant
+directement rattachées aux UE. Cela permet de faciliter la gestion des
+questions légales concernant le mobilier (réalisation du « partage » ou
+responsabilité en cas de restauration). Si la parcelle de l\'UE n\'est
+pas connue ou si elle n\'est pas sujette a contrainte légale, il est
+possible d\'associer une parcelle virtuelle ou de ne pas renseigner ce
+champ.
+
+### Unité d\'enregistrement
+
+La notion d\'Unité d\'enregistrement (UE) est à prendre comme un concept
+large. Elle se définit comme étant un volume (ou une surface) référencé
+dans l\'espace (précisément ou non), associé à des informations
+archéologiques et contenant (ou pas) du mobilier. La proue du navire, la
+tranchée 3, la structure ST25, l\'US137 ou le quart NE du carré A3 sont
+tous des UE valides pour Ishtar.
+
+Ishtar gère les relations entre UE. Cela permet notamment de définir des
+UE emboîtées (par exemple : tranchée \> structure \> US) mais aussi de
+gérer les relations stratigraphiques entre US.
+
+### Mobilier - Traitement
+
+Un traitement est défini comme une action portée par un responsable sur
+du mobilier archéologique dans un lieu donné. Dans ce cadre, un lavage,
+une restauration, un prélèvement pour analyse, une radiographie, une
+étude, un conditionnement, un prêt pour exposition ou une mise en dépôt
+sont tous des traitements (que le gestionnaire de mobilier est libre
+d\'enregistrer ou non).
+
+Un traitement peut mener à ce que plusieurs objets ou lots deviennent un
+seul lot ou objet (un remontage par exemple : N à 1), ou à l\'inverse
+qu\'un objet suite à un traitement en devienne plusieurs (1 à N).
+
+Le mobilier tel qu\'habituellement compris se découpe en deux
+sous-éléments au sein d\'Ishtar :
+
+- le mobilier d\'origine ;
+- le mobilier (actuel).
+
+Le mobilier d\'origine comprend les informations invariantes tout au
+long de la vie de l\'objet, telle que son contexte de découverte, son
+inventeur, etc. Le mobilier actuel (généralement juste appelé
+« mobilier » au sein d\'Ishtar) permet de caractériser l\'objet tout au
+long de sa vie.
+
+Le distinguo entre de ces deux notions permet notamment une gestion fine
+des traitements simples (destructif ou non) et complexes (tri,
+remontage, etc.) avec une connaissance précise de l\'historique de
+l\'objet (lieux, responsables et documentations peuvent être associées à
+chaque traitement).
+
+Sur la figure ci-dessous chaque « Fiche mobilier » correspond à un
+élément « mobilier actuel » en base de données. Chaque élément et chaque
+traitement a une fiche associée.
+
+![image](static/traitement.png)
+
+### Mobilier - Demande de traitement
+
+La gestion des demandes de traitement au sein d\'Ishtar est prévue pour
+permettre d\'archiver les documents liés à toute demande ou préparation
+de traitement. Elle permet de générer automatiquement des documents liés
+à chaque contexte.
+
+Par exemple, lors de la réception d\'une demande de prêt de mobilier
+pour une expo, créer une demande de traitement dans Ishtar permet
+d\'enregistrer la demande, puis de générer automatiquement (selon les
+modèles définis sur l\'instance) une réponse de refus ou au contraire
+une convention de prêt (à la suite de quoi, une fois la convention
+dûment signée, l\'on créera le traitement Prêt associé).
+
+Lors d\'un besoin de restauration, créer une demande de traitement dans
+Ishtar permet de générer une demande de devis, puis éventuellement
+d\'archiver les devis reçus, avant de créer le traitement Restauration
+avec le prestataire choisi.
+
+### Contenant
+
+La notion de Contenant est très générique. En effet, un étage, une
+salle, une étagère sont des contenants au même titre qu\'une boîte.
+Chaque contenant peut contenir du mobilier ou de la documentation mais
+aussi d\'autres contenants. Chaque type de contenant peut être qualifié
+de mobile (ex : caisse, boîte, carton, palette) ou immobile (ex : étage,
+salle, travée, étagère, vitrine).
+
+### Document
+
+Les documents sont gérés de manière transversale et peuvent être
+librement associés à un ou plusieurs éléments (opération, site, UE,
+traitement, mobilier, etc.) de la base de données. Des méta-données
+peuvent être renseignées pour chacun de ces documents et une image et/ou
+un fichier peuvent être le cas échéant adjoints.
+
+Les flux de données
+-------------------
+
+Pour alimenter Ishtar en données, on distingue 3 modes opératoires :
+
+- l\'import,
+- l\'ajout/modification par formulaire,
+- la modification par lot.
+
+Chacun de ces modes offrent avantages et inconvénients qu\'il faut avoir
+en tête pour utiliser Ishtar de manière optimale.
+
+### Import
+
+#### Mode opératoire
+
+Cela consiste en l\'import de données dans Ishtar depuis un fichier «
+tableur » (format CSV).
+
+Un « importeur » est utilisé afin d\'extraire les données de ce fichier.
+
+Cet « importeur » définit plusieurs choses, en particulier :
+
+- quel est le type de données à importer (des opérations, du mobilier,
+ de la documentation, etc.) ;
+- un ordre de colonne précis ;
+- quelles sont les colonnes obligatoires ;
+- des formats de données attendus pour chaque colonne ;
+- une correspondance entre colonnes et champs de base de données
+ (sachant que certains champs peuvent être constitués d\'une
+ concaténation de plusieurs colonnes) ;
+- des données par défaut ;
+- etc.
+
+Une fois un fichier d\'import rempli, depuis l\'interface Ishtar, on
+procède à l\'import effectif. Celui-ci se déroule en plusieurs phases :
+
+- création d\'un import (où l\'on spécifie le nom, le type
+ d\'importeur, le fichier à importer, etc.) ;
+- analyse du fichier à importer : Ishtar vérifie la cohérence de base
+ du fichier et désigne d\'éventuelles entrées à rapprocher ;
+- rapprochement entre des entrées du fichier du tableur et des listes
+ de types fixes d\'Ishtar : une table de correspondance est créée ;
+- import effectif des données.
+
+#### Atouts
+
+- Ce mode opératoire permet d\'utiliser en amont des outils externes
+ pour le raffinage des données (exemple : OpenRefine).
+- Les rapprochements permettent aussi une mise en correspondance
+ facilitée des données.
+- La personne qui fournit les données n\'a pas besoin de compte sur
+ Ishtar : l\'import peut être fait par un gestionnaire de données qui
+ en amont fournit un exemple de fichier ou alors remodèle les données
+ sources pour correspondre à l\'importeur.
+- Dans le cadre d\'intégration de données externes, le fichier
+ d\'import demeure afin de pouvoir ainsi remonter à la source des
+ données et conserver l\'historique.
+
+#### Inconvénients
+
+- Ce mode opératoire nécessite la création d\'un importeur qui
+ nécessite une forme d\'expertise sur la base (connaître les champs
+ obligatoires en création, générer correctement les identifiants
+ depuis les colonnes, savoir faire correspondre les champs aux noms
+ en base de données). Des importeurs sont disponibles de base dans
+ Ishtar ;
+- L\'importeur n\'apporte pas de surcouche de contrôle, des données
+ incohérentes dans le fichier source peuvent déclencher des erreurs
+ en base de données et donner lieu à des messages d\'erreur parfois
+ assez peu explicites ;
+- Les données importées sont écrites dans la base de données
+ directement, des données mal saisies dans le tableau importé ou un
+ mauvais paramétrage d\'importeur peuvent donner lieu à une
+ destruction de données.
+
+#### Cas d\'utilisation
+
+C\'est le mode opératoire à privilégier pour les sources de données
+externes à Ishtar que cela soit une reprise d\'une base de données
+pré-existante ou une intégration de données d\'autres intervenants.
+
+En terme de mise à jour, ce mode opératoire peut être pertinent lors de
+la mise à jour de masse, notamment lorsque cette mise à jour est
+déléguée. En effet, avec un importeur ciblé sur les seules données à
+mettre à jour, ce mode peut être très efficace. Le contrôle du fichier
+avant import est aisé.
+
+### Ajout/modification par formulaire
+
+#### Mode opératoire
+
+L\'ajout se fait via un enchaînement de formulaire web dans l\'interface
+Ishtar. Ces formulaires sont découpés de manière thématique (exemple :
+formulaire « Conservation » de « Mobilier ») ou logique (le type
+d\'opération est dans le premier formulaire Opération car il conditionne
+les formulaires suivants).
+
+Chaque formulaire peut être personnalisé en ajoutant certains champs
+spécifiques (les champs personnalisés) ou en supprimant des champs de
+l\'affichage. Ces personnalisations peuvent être faites pour tous ou
+simplement pour certains profils d\'utilisateurs.
+
+#### Atouts
+
+- Notamment via les formulaires personnalisés, ce mode opératoire peut
+ être un moyen efficace de saisie, en offrant des formulaires
+ contextuels.
+- De base, ces formulaires présentent tous les champs disponibles,
+ c\'est la méthode la plus exhaustive.
+- Il existe différents facilitateurs de saisie, notamment :
+ - auto-complétion de la saisie lorsque l\'on chercher à lier à une
+ commune ou à un autre élément principal d'Ishtar (opérations,
+ sites archéologiques, unités d'enregistrement, mobilier, dépôts
+ et contenants) ou dans les listes de vocabulaire contrôlé des
+ champs avec typologie ;
+ - filtres vers les éléments pertinents ; par exemple le champ
+ *Contenant parent* d\'un contenant ne liste que les contenants
+ du lieu de conservation actuel ;
+ - aide intelligente à la saisie ; par exemple création automatique
+ d\'une liste de parcelles depuis un champ texte simple de type
+ \"2013: XD:1 à 13,24,33 à 39, YD:24\" ou bien conversion à la
+ volée des dimensions (m vers km, g vers kg, m2 vers ha) pour
+ vérifier sa saisie de dimensions importantes.
+
+#### Inconvénients
+
+- Cette saisie peut être longue et fastidieuse sur des gros volumes.
+
+#### Cas d\'utilisation
+
+Ce mode opératoire est particulièrement adapté à de la saisie/correction
+unitaire. Elle peut s\'avérer pertinente pour une saisie terrain pour
+peu que l\'on dispose de matériel adapté (tablette avec connexion
+Internet) et avec éventuellement des formulaires personnalisés afin de
+réduire la saisie aux seuls champs pertinents.
+
+### Modification par lot
+
+#### Mode opératoire
+
+Depuis les interfaces tableaux Ishtar, on fait une sélection multiple
+des lignes correspondant aux élément à modifier puis un clic sur le
+crayon vert permet d\'accéder au formulaire de modification par lot.
+
+#### Atouts
+
+- Édition très rapide de champs sur plusieurs éléments.
+
+#### Inconvénients
+
+- La facilité et rapidité d\'édition est propice aux erreurs si l\'on
+ n\'est pas vigilant (un élément supplémentaire est vite
+ sélectionné).
+- Le nombre de champs disponible est limité (il évolue régulièrement
+ en fonction des demandes des utilisateurs mais cette liste n\'est
+ pas modifiable directement par les administrateurs fonctionnels, il
+ faut faire appel aux développeurs).
+- Sur les champs multivalués (types de matériau par exemple), on ne
+ peut actuellement qu\'ajouter une nouvelle valeur, pas remplacer une
+ valeur existante.
+
+#### Cas d\'utilisation
+
+Ce mode opératoire est particulièrement pertinent pour la correction en
+masse de données. Cela peut être aussi utile pour des travaux de
+pointage.
+
+Notions avancées
+----------------
+
+### Données géographiques {#donnees-geographiques}
+
+Les éléments principaux d'Ishtar (opérations, sites archéologiques,
+unités d'enregistrement, mobilier, dépôts et contenants) peuvent être
+localisés. Actuellement cette localisation est réalisée par le stockage
+de données géographiques (point ou polygone) parmi les champs de
+l\'élément concerné. Dans une future version d\'Ishtar, il est envisagé
+de créer des éléments distincts de type « Localisation » (qui
+correspondrait par exemple à un relevé topographique de terrain)
+auxquels les éléments principaux d\'Ishtar pourraient être associés (de
+la même manière qu\'un document est un élément distinct, auquel un ou
+des éléments parmi opération, site, UE, mobilier, dépôt et contenant
+peuvent être associés).
+
+Un élément localisé dispose des champs suivants (entre parenthèses le
+nom du champ en base de données - à utiliser pour les configurations
+d\'import) :
+
+- système de coordonnées géographiques utilisé
+ ([spatial\_reference\_system]{.title-ref}). Les systèmes de
+ coordonnées standards sont présents par défaut dans Ishtar mais
+ d\'autres peuvent être ajoutés en administration.
+- coordonnées en x, y et z ([x]{.title-ref}, [y]{.title-ref},
+ [z]{.title-ref}).
+- erreur estimée en x, y et z ([estimated\_error\_x]{.title-ref},
+ [estimated\_error\_y]{.title-ref},
+ [estimated\_error\_z]{.title-ref}).
+- un champ point 2D ([point\_2d]{.title-ref}) et point 3D
+ ([point]{.title-ref}). Ce champ est déduit automatiquement des
+ coordonnées (non visible en interface de saisie).
+- un champ polygone ou plus précisément un champ multi-polygone
+ ([multi\_polygon]{.title-ref}) - par abus de langage polygone est
+ repris dans la suite de la documentation. Pour l\'instant ce champ
+ n\'est éditable qu\'en import (mais visible sur les fiches) .
+- l\'origine des coordonnées ([point\_source]{.title-ref}) et
+ l\'origine du polygone ([multi\_polygon\_source]{.title-ref}). Trois
+ origines sont possibles :
+ - « précis » (valeur **P** pour *precise*). Les coordonnées ou le
+ polygone ont été relevés précisément.
+ - le polygone (valeur **M** pour *multi-polygon*). Ne concerne que
+ le point : reprend le centroïde du polygone. **Géré
+ automatiquement par Ishtar** quand le polygone a été défini
+ précisément et qu\'il n\'y a pas de coordonnées précises
+ associées.
+ - la commune (valeur **T** pour *town*). Le point a été déduit du
+ centroïde de la commune, le polygone reprend celui de la
+ commune. **Géré automatiquement par Ishtar** quand aucune autre
+ source n\'est disponible.
+- la source des coordonnées ([point\_source\_item]{.title-ref}), du
+ polygone ([multi\_polygon\_source\_item]{.title-ref}). Quand
+ l\'élément n\'a pas de coordonnées/de polygone associé, on essaye
+ d\'associer les coordonnées d\'un élément parent, exemple : sans
+ coordonnées précises, le mobilier a les coordonnées de son unité
+ d\'enregistrement qui elle-même hérite des coordonnées de
+ l\'opération ou du site archéologique associé si elle n\'a pas de
+ coordonnées propres. Cette mécanique est **gérée automatiquement par
+ Ishtar**.
+
+La gestion des données géographiques dans Ishtar est résumée par le
+graphe logique suivant pour les coordonnées :
+
+![Gestion des coordonnées](static/geo-source-point.png){.align-center
+width="561px"}
+
+Pour les polygones, la gestion est assez similaire aux coordonnées mais
+sans la déduction possible depuis le polygone :
+
+![Gestion des polygones](static/geo-source-polygon.png){.align-center
+width="560px"}
+
+L\'arbre de prise en compte des éléments parents pour les données
+géographiques est le suivant :
+
+![](static/geo-parents.png){.align-center width="367px"}
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Dans le profil d\'instance, il est possible d\'activer un degré
+d\'imprécision. Cela permet de mettre un positionnement approximatif des
+éléments sur la fiche au cas où ces fiches seraient consultables par des
+tiers non dignes de confiance. Pour ce faire, les coordonnées sont
+tronquées (X nombres après la virgule) pour l\'affichage (les données en
+base de données restent inchangées). La troncature est opérée sur les
+coordonnées en WGS 84 (latitude/longitude).
+:::
diff --git a/docs/fr/source/_static/annexe-technique-06-01.png b/docs/fr/static/annexe-technique-06-01.png
index bc5e0658d..bc5e0658d 100644
--- a/docs/fr/source/_static/annexe-technique-06-01.png
+++ b/docs/fr/static/annexe-technique-06-01.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-02.png b/docs/fr/static/annexe-technique-06-02.png
index 911ef87be..911ef87be 100644
--- a/docs/fr/source/_static/annexe-technique-06-02.png
+++ b/docs/fr/static/annexe-technique-06-02.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-03.png b/docs/fr/static/annexe-technique-06-03.png
index f04ae54c3..f04ae54c3 100644
--- a/docs/fr/source/_static/annexe-technique-06-03.png
+++ b/docs/fr/static/annexe-technique-06-03.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-04.png b/docs/fr/static/annexe-technique-06-04.png
index 1a58ae82f..1a58ae82f 100644
--- a/docs/fr/source/_static/annexe-technique-06-04.png
+++ b/docs/fr/static/annexe-technique-06-04.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-05.png b/docs/fr/static/annexe-technique-06-05.png
index 77d9f5ee3..77d9f5ee3 100644
--- a/docs/fr/source/_static/annexe-technique-06-05.png
+++ b/docs/fr/static/annexe-technique-06-05.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-06.png b/docs/fr/static/annexe-technique-06-06.png
index b3b01780c..b3b01780c 100644
--- a/docs/fr/source/_static/annexe-technique-06-06.png
+++ b/docs/fr/static/annexe-technique-06-06.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-07.png b/docs/fr/static/annexe-technique-06-07.png
index d0a93a87e..d0a93a87e 100644
--- a/docs/fr/source/_static/annexe-technique-06-07.png
+++ b/docs/fr/static/annexe-technique-06-07.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-08.png b/docs/fr/static/annexe-technique-06-08.png
index ac21a20c2..ac21a20c2 100644
--- a/docs/fr/source/_static/annexe-technique-06-08.png
+++ b/docs/fr/static/annexe-technique-06-08.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-09.png b/docs/fr/static/annexe-technique-06-09.png
index a785c3478..a785c3478 100644
--- a/docs/fr/source/_static/annexe-technique-06-09.png
+++ b/docs/fr/static/annexe-technique-06-09.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-10.png b/docs/fr/static/annexe-technique-06-10.png
index 8d4c35a2c..8d4c35a2c 100644
--- a/docs/fr/source/_static/annexe-technique-06-10.png
+++ b/docs/fr/static/annexe-technique-06-10.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-11.png b/docs/fr/static/annexe-technique-06-11.png
index 922506998..922506998 100644
--- a/docs/fr/source/_static/annexe-technique-06-11.png
+++ b/docs/fr/static/annexe-technique-06-11.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-06-12.png b/docs/fr/static/annexe-technique-06-12.png
index 500090ed0..500090ed0 100644
--- a/docs/fr/source/_static/annexe-technique-06-12.png
+++ b/docs/fr/static/annexe-technique-06-12.png
Binary files differ
diff --git a/docs/fr/source/_static/annexe-technique-1-export-qgis.png b/docs/fr/static/annexe-technique-1-export-qgis.png
index 2bea47376..2bea47376 100644
--- a/docs/fr/source/_static/annexe-technique-1-export-qgis.png
+++ b/docs/fr/static/annexe-technique-1-export-qgis.png
Binary files differ
diff --git a/docs/fr/source/_static/geo-parents.png b/docs/fr/static/geo-parents.png
index 6ab39592a..6ab39592a 100644
--- a/docs/fr/source/_static/geo-parents.png
+++ b/docs/fr/static/geo-parents.png
Binary files differ
diff --git a/docs/fr/source/_static/geo-source-point.png b/docs/fr/static/geo-source-point.png
index eadfe3a48..eadfe3a48 100644
--- a/docs/fr/source/_static/geo-source-point.png
+++ b/docs/fr/static/geo-source-point.png
Binary files differ
diff --git a/docs/fr/source/_static/geo-source-polygon.png b/docs/fr/static/geo-source-polygon.png
index da8762bda..da8762bda 100644
--- a/docs/fr/source/_static/geo-source-polygon.png
+++ b/docs/fr/static/geo-source-polygon.png
Binary files differ
diff --git a/docs/fr/source/_static/graphique_structure_ishtar.png b/docs/fr/static/graphique_structure_ishtar.png
index 9d87ff769..9d87ff769 100644
--- a/docs/fr/source/_static/graphique_structure_ishtar.png
+++ b/docs/fr/static/graphique_structure_ishtar.png
Binary files differ
diff --git a/docs/fr/source/_static/interface-generale.png b/docs/fr/static/interface-generale.png
index fb054a075..fb054a075 100644
--- a/docs/fr/source/_static/interface-generale.png
+++ b/docs/fr/static/interface-generale.png
Binary files differ
diff --git a/docs/fr/source/_static/ishtar-coins.png b/docs/fr/static/ishtar-coins.png
index fcf903f0b..fcf903f0b 100644
--- a/docs/fr/source/_static/ishtar-coins.png
+++ b/docs/fr/static/ishtar-coins.png
Binary files differ
diff --git a/docs/fr/source/_static/ishtar-dublincore.png b/docs/fr/static/ishtar-dublincore.png
index 299a41757..299a41757 100644
--- a/docs/fr/source/_static/ishtar-dublincore.png
+++ b/docs/fr/static/ishtar-dublincore.png
Binary files differ
diff --git a/docs/fr/source/_static/traitement.png b/docs/fr/static/traitement.png
index bd4d1e225..bd4d1e225 100644
--- a/docs/fr/source/_static/traitement.png
+++ b/docs/fr/static/traitement.png
Binary files differ
diff --git a/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja b/docs/fr/templates/annexe-tech-3-variables-gen.jinja
index 667b4bd2c..667b4bd2c 100644
--- a/docs/fr/source/_templates/annexe-tech-3-variables-gen.jinja
+++ b/docs/fr/templates/annexe-tech-3-variables-gen.jinja
diff --git a/docs/fr/utilisateur.md b/docs/fr/utilisateur.md
new file mode 100644
index 000000000..f03207f01
--- /dev/null
+++ b/docs/fr/utilisateur.md
@@ -0,0 +1,479 @@
+Utilisateur
+===========
+
+Auteur
+
+: Étienne Loks
+
+Date
+
+: 2018-10-02
+
+Copyright
+
+: CC-BY 3.0
+
+------------------------------------------------------------------------
+
+Interface générale
+------------------
+
+L\'interface générale se découpe en 4 zones :
+
+1. zone de profil
+2. menu d\'actions
+3. zone centrale
+4. zone d\'alerte et de sélection épinglée
+
+![image](static/interface-generale.png)
+
+La capture d\'écran ci-dessous reprend l\'interface « bureau ».
+L\'interface mobile reprend les mêmes éléments dans une version compacte
+: la zone de profil est accessible via l\'icône « hamburger » à droite,
+le menu d\'action est repris en haut en position centrale.
+
+### Zone de profil
+
+La zone de profil reprend, dans l\'ordre :
+
+- le nom de l\'instance Ishtar (ici « Démo »),
+- le nom de l\'utilisateur et le nom du profil en cours
+ d\'utilisation - en cliquant sur ces noms, on accède à un sous-menu
+ permettant de modifier son profil, changer son mot de passe et se
+ déconnecter,
+- si plusieurs langues sont disponibles, une icône « drapeau » qui
+ permet de changer la langue,
+- si on a les droits administrateur, une icône « engrenage » qui
+ permet à accéder aux pages spécifiques d\'administration (cf.
+ documentation administrateur).
+
+### Menu d\'actions
+
+Ce menu reprend les différentes pages disponibles en fonction des droits
+dont dispose l\'utilisateur et des modules activés dans Ishtar. Visible
+à tout moment il permet visuellement d\'identifier immédiatement le
+contexte. Ce menu est organisé de manière hiérarchique :
+
+- le premier niveau reprend les éléments généraux : « Opération »,
+ « Unité d\'Enregistrement », « Mobilier », etc. ainsi que des
+ sections génériques telles que « Imports » ou « Annuaire ».
+- le second niveau fournit le détail des actions disponibles en
+ fonction du premier niveau sélectionné. Classiquement pour les
+ éléments généraux (si l\'on dispose des droits adéquats), il y des
+ actions de « Recherche », « Ajout », « Modification » et
+ « Suppression ». Si des sous-élements sont disponibles (par exemple,
+ les « Contenants » dans le menu « Lieu de conservation »), ils sont
+ accessibles après ces actions de base.
+- le troisième niveau rend disponible les actions des sous-éléments.
+
+La sélection d\'un élément du premier niveau charge automatiquement la
+page de la première action du second niveau. De même la sélection d\'un
+sous-menu dans le second niveau charge automatiquement la première
+action du troisième niveau correspondant.
+
+### Zone centrale
+
+La zone centrale est totalement contextuelle. Néanmoins si certaines
+pages d\'action ont une logique particulière, la plupart des pages
+d\'action sur les éléments généraux s\'ouvrent sur une
+« `page de recherche <page-de-recherche>`{.interpreted-text
+role="ref"} » et les actions d\'ajout, modification et suppression
+suivent ensuite une logique de
+« `page d'assistant logiciel <wizard>`{.interpreted-text role="ref"} »
+(ou wizard). Le détail de ces pages est décrit dans les sections
+suivantes de cette documentation.
+
+### Zone d\'alerte et de sélection épinglée
+
+Cette zone reprend les éventuelles alertes (cf.
+`Page de recherche > Marques-pages et alertes <bookmarks>`{.interpreted-text
+role="ref"}), mise en place par l\'utilisateur ainsi que (si
+l\'affichage de ceux-ci est activé) les éléments actuellement épinglés
+(cf.
+`Utilisation avancée > Éléments épinglés <pinned>`{.interpreted-text
+role="ref"}).
+
+Page de recherche
+-----------------
+
+La page de recherche comporte une barre de recherche et d\'un tableau de
+résultat.
+
+### Recherche textuelle et par critères
+
+La barre de recherche est composée d\'une zone de saisie et d\'une série
+d\'icônes d\'outils de recherche. Dans l\'ordre ces icônes permettent de
+:
+
+- icône « loupe » : lancer la recherche,
+- icône « engrenage » : accéder à la recherche par critère,
+- icône « croix » : vider la zone de recherche,
+- icône « épingle » : épingler la recherche actuelle pour qu\'elle
+ devienne la recherche par défaut pour cette session,
+- icône « étoile » : enregistrer une alerte, un marque-page,
+- icône « marque-page » : accéder aux marques-pages (les supprimer).
+
+Lorsque aucune recherche n\'est active par défaut et que la zone de
+saisie est vide tous les éléments de la base de données sont listés.
+
+La zone de recherche permet deux types de recherches distinctes : une
+recherche libre (sur l\'ensemble des champs indexés) et une recherche
+par critère (champ par champ, pour l\'ensemble des champs de la base).
+
+#### Recherche libre
+
+Chaque élément de la base de données est indexé afin de pouvoir
+permettre ce type de recherche de manière performante. Les propriétés et
+descriptions rattachées aux éléments sont indexées. De même chaque
+élément parent est compris dans l\'index de l\'élément enfant.
+
+Plus précisément :
+
+- l\'index de recherche d\'une opération comprend les propriétés des
+ sites(entités) archéologiques lié(e)s ;
+- l\'index de recherche d\'un(e) site(entité) archéologique comprend
+ les propriétés des opérations liées ;
+- l\'index de recherche d\'une Unité d\'Enregistrement comprend les
+ propriétés des opérations et des sites(entités) archéologiques
+ lié(e)s ;
+- l\'index de recherche du mobilier comprend les propriétés des
+ opérations, des sites(entités) archéologiques et des Unités
+ d\'Enregistrement lié(e)s.
+
+En revanche tous les champs de la base ne sont pas indexés, ceci afin
+que les résultats restent cohérents.
+
+Les index de recherche permettent de faire des recherches en
+s\'affranchissant des pluriels et de la casse.
+
+**Exemple** : des recherches sur les termes « AMPHORE », « AMPHORES » et
+« amphores » renverront bien tous les éléments concernant des amphores.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Par choix de ne pas intégrer des résultats trop éloignés de la recherche
+initiale, les fautes de frappe et d\'orthographe ne sont pas prises en
+charge. Les recherches par orthographe approximative sont plus adaptées
+à des interfaces grand public qu\'à des bases de données métier.
+Concrètement lorsque l\'on cherche avec le terme « amphore », les
+résultats deviennent peu pertinents si par exemple nous sont renvoyés
+des éléments évoquant un « phare » dans sa description. En revanche la
+recherche libre comprend tout terme de recherche avec le sens « Commence
+par ». Ainsi une recherche sur `amp` renverra autant les amphore que les
+ampoules.
+:::
+
+Adjoindre plusieurs termes correspond à faire une recherche avec
+l\'opérateur logique *ET*.
+
+**Exemple** : une recherche avec le terme « `amphore dressel 1B` »
+retournera tous les éléments concernant des amphores Dressel de type 1B.
+
+Préfixer un terme par un « moins » : « `-` » permet d\'exclure des
+termes de notre recherche.
+
+**Exemple** : une recherche avec « `ancre -amphore` » permet d\'obtenir
+la liste des ancres en excluant les lots de mobilier comprenant des
+amphores.
+
+#### Recherche par critère
+
+En cliquant sur l\'icône engrenage, on accède à un formulaire permettant
+de construire simplement sa recherche par critère. Le formulaire de
+construction de requête dépend bien entendu du type d\'élément
+recherché. Par ailleurs comme les autres formulaires ce formulaire peut
+avoir été personnalisé sur votre installation Ishtar, permettant de
+cacher certains champs inutiles ou ajouter d\'autres champs
+personnalisés.
+
+Après sélection d\'une ou plusieurs contraintes dans le formulaire, en
+cliquant sur Ajouter, on les ajoute de manière textuelle sous la forme :
+« `attribut="valeur"` ». Cette forme permet de facilement retoucher une
+requête de manière textuelle sans passer par le formulaire.
+
+**Exemple** : « `annee="2018"` » recherchera les éléments de l\'année
+2018.
+
+::: {.note}
+::: {.title}
+Note
+:::
+
+Dans la recherche par critère, le moteur recherche exactement la valeur
+entrée. Si l\'on souhaite faire une recherche ouverte du type « contient
+la valeur », il faut ajouter un astérisque `*` à la valeur.
+:::
+
+**Exemple** : « `denomination="éclat"` » retournera uniquement les
+éléments dont la dénomination est exactement Éclat, tandis que
+« `denomination="éclat*"` » renverra tous les éléments dont la
+dénomination contient le mot éclat, donc par exemple Lots d\'éclats,
+éclat retouché, etc. De la même manière pour les nombres,
+« `patriarche="1012"` » donnera uniquement l\'OA1012, alors que
+`patriarche="1012*"` renverra toutes les OA contenant les chiffres 1012,
+donc par exemple 101201 ou 1010125.
+
+::: {.warning}
+::: {.title}
+Warning
+:::
+
+Contrairement à la recherche libre, la juxtaposition des termes
+concernant un même attribut est comprise comme un opérateur *OU*. Ainsi
+« `annee="2018" annee="2017"` » listera les éléments de l\'année 2017 ou
+2018. Néanmoins pour les attributs différents, cela reste à comprendre
+comme un opérateur *ET*. Ainsi
+« `annee="2018" annee="2017" type-objet="Ancre et corps-mort"` » listera
+le mobilier avec un type d\'objet « Ancre et corps-mort » et rattaché à
+une des années 2017 ou 2018.
+:::
+
+### Marques-pages et alertes {#bookmarks}
+
+Les marques-pages permettent de stocker une recherche pour la retrouver
+plus aisément plus tard. Ceux-ci sont alors directement disponibles
+depuis le menu qui s\'ouvre lorsque l\'on clique sur l\'icône
+marque-page de la barre de recherche.
+
+Techniquement le contenu d\'un marque-page correspond à la chaîne de
+texte utilisé dans la zone de recherche. Ainsi (contrairement aux
+`paniers <basket>`{.interpreted-text role="ref"}) c\'est la requête qui
+est stockée et donc la liste d\'éléments est à même de varier au cours
+du temps.
+
+On peut stocker indifféremment des requêtes en recherche libre ou en
+recherche par critère.
+
+Une alerte est un marque-page mis en évidence : il est toujours
+disponible en haut à gauche de l\'interface (à gauche de la zone 4 sur
+l\'image de l\'interface générale) avec un badge contenant le nombre
+d\'éléments contenu. En cliquant sur cette alerte, on accède directement
+au tableau de cette recherche.
+
+### Tableaux
+
+Les tableaux se présentent de la même manière que les tableaux web
+« classiques » avec possibilité d\'afficher plus ou moins de lignes de
+tableaux (entre 10 et 100), possibilité de tri par colonne et une
+pagination.
+
+Dans Ishtar, la première colonne est systématiquement une icône
+permettant d\'accéder à la `fiche <sheet>`{.interpreted-text role="ref"}
+associé à l\'élément de cette ligne du tableau.
+
+En tant qu\'administrateur, sur certains tableaux, des actions rapides
+en haut à droite permettant des actions sur les éléments actuellement
+sélectionnés.
+
+En bas du tableau, sur la gauche un bouton permet d\'afficher le tableau
+en pleine page pour une meilleure lisibilité.
+
+À la suite de ce bouton différents boutons d\'export en CSV du tableau
+courant sont disponibles. Ces exports peuvent être configurés en
+administration.
+
+### Fiches {#sheet}
+
+En s\'ouvrant, les fiches se placent au-dessus de la page courante
+(généralement au dessus d\'un tableau).
+
+#### Entête
+
+Une fiche se compose tout d\'abord d\'une entête. Cette entête est
+composée de :
+
+- un titre : ce titre reprend la dénomination précise de l\'élément.
+ En cliquant sur ce titre, la fiche se replie.
+- de flèches de navigations (si pertinent) : dans le cadre d\'une
+ fiche ouverte depuis un tableau, ces flèches permettent de naviguer
+ entre éléments du tableau. Il n\'est possible pour l\'instant que de
+ naviguer parmi les éléments actuellement affichés dans le tableau.
+- d\'une flèche de fermeture de la fiche.
+
+#### Barre d\'outil
+
+Juste en dessous de l\'entête une barre d\'outil est présente.
+
+Tout à gauche, lorsque plusieurs versions d\'une même fiche sont
+disponibles, il est possible de naviguer parmi les différentes versions
+de cette fiche.
+
+Ensuite sur la droite, différentes actions sont disponibles. Ces actions
+dépendent du type d\'élément sélectionné. Généralement on y trouve :
+
+- une icône « épingle » : elle permet d\'épingler l\'élément de la
+ fiche (cf. `épinglage <pinned>`{.interpreted-text role="ref"}).
+- une icône « crayon » : si l\'on dispose des droits adéquats, elle
+ permet d\'éditer cette fiche. On accède au premier volet des pages
+ d\'assistants dédié à l\'édition de ce type d\'élément.
+- des icônes « + » : ces icônes permettent d\'associer facilement un
+ type particulier d\'élément à l\'élément de la fiche courante. Par
+ exemple « + doc./image » permet d\'associer un document/une image à
+ l\'élément de la fiche.
+- un menu « exporter » : les éléments de ce menu permettent un export
+ dans différement format de la fiche actuelle.
+
+#### Contenu de la fiche
+
+Les fiches présentent globalement les informations relatives à un
+élément.
+
+Lorsque ces informations sont en relations avec d\'autres éléments qui
+disposent eux aussi des fiches une icône « i » d\'information est
+affiché à côté permettant ainsi de sauter de fiche en fiche.
+
+#### Navigation entre fiches
+
+Un rappel des fiches ouvertes est disponible sur la droite. En cliquant
+sur un élément de cette liste, la page scrolle jusque la fiche
+correspondante.
+
+Page d\'assistant logiciel (wizard) {#wizard}
+-----------------------------------
+
+Dans Ishtar, pour la plupart des éléments complexes, les pages
+d\'édition se présentent sous la forme d\'« assistant logiciel ». Un
+assistant logiciel, découpe la saisie en plusieurs pages. Ces pages
+permettent une structuration logique de l\'information. Ainsi en
+fonction des modules activés et des informations renseignées le contenu
+et l\'affichage des panneaux est dynamique.
+
+**Exemple** : les panneaux disponibles lors de la saisie d\'une
+opération préventive, d\'une opération programmée, d\'une saisie
+judiciaire, les panneaux affichés sont différents.
+
+Les panneaux enchaînent les formulaires jusqu\'au dernier panneau de
+récapitulatif qui demandera confirmation des changements opérés. Tant
+que la validation finale n\'est pas faite aucune donnée n\'est
+enregistrée en base de données.
+
+Jusqu\'à la validation finale, les données de formulaire sont
+enregistrées dans la session de l\'utilisateur. L\'utilisateur peut tout
+à fait avoir plusieurs saisies d\'éléments de nature différente en
+parallèle. Attention à la déconnexion ou à expiration de la session ces
+données de formulaires sont effacées.
+
+### Fil d\'Ariane
+
+Tout en haut des pages d\'assistant logiciel, un fil d\'Ariane est
+affiché. Celui-ci permet de naviguer rapidement entre les différents
+panneaux. En modification la navigation est libre. En saisie, certains
+panneaux requérant des informations obligatoires ne peuvent pas être
+passés : le fil d\'Ariane s\'adapte automatiquement et affiche les
+étapes jusqu\'au prochain panneau obligatoire.
+
+### Tableau / Zone de formulaire
+
+En saisie, en général, deux types de panneau sont disponibles : un type
+« tableau » et un type « zone de formulaire ».
+
+Les types de page « tableau » permettent de sélectionner un élément tout
+en profitant des possibilités de recherche, filtre, tri évoqués
+précédemment. Ces types de pages permettent de sélectionner l\'élément
+que l\'on souhaite modifier ou l\'élément parent de l\'élément que l\'on
+souhaite créer.
+
+Les types de page « zone de formulaire » sont des formulaires web
+classiques. Ils offrent quelques facilitées tel que la saisie de dates
+en cliquant dans un calendrier, des conversions d\'unités dynamiques,
+etc. Certains contrôles de formulaire sont réalisés de manière dynamique
+(par exemple une saisie textuelle dans un champ qui attend un chiffre),
+d\'autres sont réalisés après envoi au serveur (par exemple, utilisation
+d\'un index déjà utilisé par ailleurs).
+
+### Zone de validation
+
+La zone de validation se situe tout en bas de la page. Les boutons
+« Valider » et « Annuler » sont toujours disponibles.
+
+« Valider » permet de valider le panneau en cours et de passer au
+panneau suivant. Si c\'est le dernier panneau, le panneau de
+récapitulatif, la création/modification/suppression est validée. En
+création/modification, l\'utilisateur est redirigé vers la fiche de
+l\'élément qui vient d\'être créé/modifié.
+
+« Annuler » permet d\'annuler toute la saisie en cours : les données de
+session seront effacées.
+
+« Valider et confirmer » (qui s\'insère entre « Valider » et
+« Annuler ») permet de valider le panneau actuel et d\'aller directement
+au panneau récapitulatif.
+
+Utilisation avancée
+-------------------
+
+### Paniers {#basket}
+
+Les paniers sont un autre type de sélection d\'éléments. Contrairement
+aux marques-pages, ils concernent une liste d\'éléments fixe.
+
+Pour effectuer certaines actions, il est nécessaire de préalablement
+constituer un panier (notamment pour ce qui concerne les traitements).
+
+Ce regroupement virtuel peut être aussi un outil de travail, par exemple
+en constituant une liste d\'éléments « à traiter ». Un marque-page
+(voire une alerte) pouvant être faite sur le contenu d\'un panier, cela
+permet de conserver sous la main cette sélection d\'éléments.
+
+Pour l\'heure les paniers ne concernent que le mobilier.
+
+### Éléments épinglés {#pinned}
+
+Les éléments épinglés constituent les éléments « par défaut » en terme
+de recherche. L\'épinglage d\'élément est un outil de travail permettant
+de travailler dans un contexte de travail donné.
+
+**Exemple** : je souhaite travailler sur le mobilier d\'une opération
+précise. En épinglant cette opération, par défaut, toutes les recherches
+de mobilier se feront sur cette opération.
+
+L\'épinglage est disponible directement dans la barre d\'outil des
+fiches. L\'épinglage est aussi disponible au niveau de la barre de
+recherche (cette recherche épinglée ne concerne que le tableau
+d\'éléments en cours sans gestion hiérarchique). Si celui-ci est activé
+dans son profil, l\'épinglage est aussi disponible dans le menu de
+gestion des sélections épinglées (à droite de la zone 4 sur l\'image de
+l\'interface générale). Si on a activé cette option dans son profil, un
+élément créé ou modifié est automatiquement épinglé.
+
+Une gestion hiérarchique des épingles est faite : le fait d\'épingler un
+élément épingle automatiquement ses parents directs.
+
+**Exemple** : le fait d\'épingler un mobilier épingle automatiquement
+l\'Unité d\'Enregistrement et l\'opération archéologique associée à ce
+mobilier.
+
+#### Menu de gestion des sélections épinglées
+
+Ce menu n\'est visible que s\'il est activé dans son profil. Il propose
+de sélectionner les éléments que l\'on souhaite épingler. Différentes
+versions de ce menu sont disponibles :
+
+- « simple » : des menus déroulants permettent d\'épingler les
+ éléments qui sont directement rattachés à notre compte utilisateur
+ (en particulier les éléments que l\'on a créé) ;
+- « avancé - mes éléments » : on épingle ici seulement les éléments
+ rattachés à notre compte utilisateur mais avec des champs
+ fonctionnant en autocomplétion ;
+- « avancé - tous les éléments » : on peut épingler tous les éléments
+ avec des champs en autocomplétion.
+
+Sur chaque menu, il est possible d\'accéder aux fiches des différents
+éléments épinglés (icône « i ») et de détacher l\'épingle sur ces
+éléments (croix rouge).
+
+### Action rapide
+
+Pour les administrateurs, des actions rapides sont directement
+accessibles depuis les tableaux. Ces actions se situent en haut à droite
+du tableau. Elles concernent les éléments actuellement sélectionnés dans
+le tableau. Les icônes d\'action rapide ne sont actives que lorsque cela
+est pertinent : si une action n\'est applicable qu\'à un seul élément,
+en sélectionner aucun ou plusieurs désactive l\'icône de l\'action en
+question.
+
+Ces actions rapides permettent notamment de faire de l\'édition de
+groupe, de l\'empaquetage, etc.
diff --git a/docs/mkdocs.fr.yml b/docs/mkdocs.fr.yml
new file mode 100644
index 000000000..d15e79ad8
--- /dev/null
+++ b/docs/mkdocs.fr.yml
@@ -0,0 +1,13 @@
+site_name: Ishtar
+site_url: https://ishtar.readthedocs.io/fr/develop-md/
+docs_dir: "fr"
+theme:
+ name: readthedocs
+ locale: fr
+plugins:
+ - search
+ - autorefs
+ - with-pdf:
+ output_path: build.pdf
+markdown_extensions:
+ - admonition \ No newline at end of file
diff --git a/docs/old/Makefile b/docs/old/Makefile
deleted file mode 100644
index ddcbacfe8..000000000
--- a/docs/old/Makefile
+++ /dev/null
@@ -1,130 +0,0 @@
-# Makefile for Sphinx documentation
-#
-
-# You can set these variables from the command line.
-SPHINXOPTS =
-SPHINXBUILD = sphinx-build
-PAPER =
-BUILDDIR = build
-
-# Internal variables.
-PAPEROPT_a4 = -D latex_paper_size=a4
-PAPEROPT_letter = -D latex_paper_size=letter
-ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source
-
-.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest
-
-help:
- @echo "Please use \`make <target>' where <target> is one of"
- @echo " html to make standalone HTML files"
- @echo " dirhtml to make HTML files named index.html in directories"
- @echo " singlehtml to make a single large HTML file"
- @echo " pickle to make pickle files"
- @echo " json to make JSON files"
- @echo " htmlhelp to make HTML files and a HTML help project"
- @echo " qthelp to make HTML files and a qthelp project"
- @echo " devhelp to make HTML files and a Devhelp project"
- @echo " epub to make an epub"
- @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
- @echo " latexpdf to make LaTeX files and run them through pdflatex"
- @echo " text to make text files"
- @echo " man to make manual pages"
- @echo " changes to make an overview of all changed/added/deprecated items"
- @echo " linkcheck to check all external links for integrity"
- @echo " doctest to run all doctests embedded in the documentation (if enabled)"
-
-clean:
- -rm -rf $(BUILDDIR)/*
-
-html:
- $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
-
-dirhtml:
- $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
- @echo
- @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
-
-singlehtml:
- $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
- @echo
- @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
-
-pickle:
- $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
- @echo
- @echo "Build finished; now you can process the pickle files."
-
-json:
- $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
- @echo
- @echo "Build finished; now you can process the JSON files."
-
-htmlhelp:
- $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
- @echo
- @echo "Build finished; now you can run HTML Help Workshop with the" \
- ".hhp project file in $(BUILDDIR)/htmlhelp."
-
-qthelp:
- $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
- @echo
- @echo "Build finished; now you can run "qcollectiongenerator" with the" \
- ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
- @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/Ishtar.qhcp"
- @echo "To view the help file:"
- @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/Ishtar.qhc"
-
-devhelp:
- $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
- @echo
- @echo "Build finished."
- @echo "To view the help file:"
- @echo "# mkdir -p $$HOME/.local/share/devhelp/Ishtar"
- @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/Ishtar"
- @echo "# devhelp"
-
-epub:
- $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
- @echo
- @echo "Build finished. The epub file is in $(BUILDDIR)/epub."
-
-latex:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo
- @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
- @echo "Run \`make' in that directory to run these through (pdf)latex" \
- "(use \`make latexpdf' here to do that automatically)."
-
-latexpdf:
- $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
- @echo "Running LaTeX files through pdflatex..."
- make -C $(BUILDDIR)/latex all-pdf
- @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
-
-text:
- $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
- @echo
- @echo "Build finished. The text files are in $(BUILDDIR)/text."
-
-man:
- $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
- @echo
- @echo "Build finished. The manual pages are in $(BUILDDIR)/man."
-
-changes:
- $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
- @echo
- @echo "The overview file is in $(BUILDDIR)/changes."
-
-linkcheck:
- $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
- @echo
- @echo "Link check complete; look for any errors in the above output " \
- "or in $(BUILDDIR)/linkcheck/output.txt."
-
-doctest:
- $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
- @echo "Testing of doctests in the sources finished, look at the " \
- "results in $(BUILDDIR)/doctest/output.txt."
diff --git a/docs/old/source/_static/db-archaeological_context_records.png b/docs/old/source/_static/db-archaeological_context_records.png
deleted file mode 100644
index 24ebb76c4..000000000
--- a/docs/old/source/_static/db-archaeological_context_records.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-archaeological_files.png b/docs/old/source/_static/db-archaeological_files.png
deleted file mode 100644
index ad88880d1..000000000
--- a/docs/old/source/_static/db-archaeological_files.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-archaeological_finds.png b/docs/old/source/_static/db-archaeological_finds.png
deleted file mode 100644
index 67ff28719..000000000
--- a/docs/old/source/_static/db-archaeological_finds.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-archaeological_operations.png b/docs/old/source/_static/db-archaeological_operations.png
deleted file mode 100644
index 8dd70b217..000000000
--- a/docs/old/source/_static/db-archaeological_operations.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-archaeological_warehouse.png b/docs/old/source/_static/db-archaeological_warehouse.png
deleted file mode 100644
index 38b6a887a..000000000
--- a/docs/old/source/_static/db-archaeological_warehouse.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-imports.png b/docs/old/source/_static/db-imports.png
deleted file mode 100644
index adaba3a4e..000000000
--- a/docs/old/source/_static/db-imports.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/_static/db-ishtar_common.png b/docs/old/source/_static/db-ishtar_common.png
deleted file mode 100644
index 395b5a174..000000000
--- a/docs/old/source/_static/db-ishtar_common.png
+++ /dev/null
Binary files differ
diff --git a/docs/old/source/conf.py b/docs/old/source/conf.py
deleted file mode 100644
index 37346a590..000000000
--- a/docs/old/source/conf.py
+++ /dev/null
@@ -1,216 +0,0 @@
-# -*- coding: utf-8 -*-
-#
-# Ishtar documentation build configuration file, created by
-# sphinx-quickstart on Wed Oct 12 01:01:02 2011.
-#
-# This file is execfile()d with the current directory set to its containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
-
-import sys, os
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#sys.path.insert(0, os.path.abspath('.'))
-
-# -- General configuration -----------------------------------------------------
-
-# If your documentation needs a minimal Sphinx version, state it here.
-#needs_sphinx = '1.0'
-
-# Add any Sphinx extension module names here, as strings. They can be extensions
-# coming with Sphinx (named 'sphinx.ext.*') or your custom ones.
-extensions = []
-
-# Add any paths that contain templates here, relative to this directory.
-templates_path = ['_templates']
-
-# The suffix of source filenames.
-source_suffix = '.rst'
-
-# The encoding of source files.
-#source_encoding = 'utf-8-sig'
-
-# The master toctree document.
-master_doc = 'index'
-
-# General information about the project.
-project = 'Ishtar'
-copyright = u'2011, Étienne Loks'
-
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The short X.Y version.
-version = '1.0'
-# The full version, including alpha/beta/rc tags.
-release = '1.0'
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#language = None
-
-# There are two options for replacing |today|: either, you set today to some
-# non-false value, then it is used:
-#today = ''
-# Else, today_fmt is used as the format for a strftime call.
-#today_fmt = '%B %d, %Y'
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-exclude_patterns = []
-
-# The reST default role (used for this markup: `text`) to use for all documents.
-#default_role = None
-
-# If true, '()' will be appended to :func: etc. cross-reference text.
-#add_function_parentheses = True
-
-# If true, the current module name will be prepended to all description
-# unit titles (such as .. function::).
-#add_module_names = True
-
-# If true, sectionauthor and moduleauthor directives will be shown in the
-# output. They are ignored by default.
-#show_authors = False
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'sphinx'
-
-# A list of ignored prefixes for module index sorting.
-#modindex_common_prefix = []
-
-
-# -- Options for HTML output ---------------------------------------------------
-
-# The theme to use for HTML and HTML Help pages. See the documentation for
-# a list of builtin themes.
-html_theme = 'default'
-
-# Theme options are theme-specific and customize the look and feel of a theme
-# further. For a list of options available for each theme, see the
-# documentation.
-#html_theme_options = {}
-
-# Add any paths that contain custom themes here, relative to this directory.
-#html_theme_path = []
-
-# The name for this set of Sphinx documents. If None, it defaults to
-# "<project> v<release> documentation".
-#html_title = None
-
-# A shorter title for the navigation bar. Default is the same as html_title.
-#html_short_title = None
-
-# The name of an image file (relative to this directory) to place at the top
-# of the sidebar.
-#html_logo = None
-
-# The name of an image file (within the static path) to use as favicon of the
-# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32
-# pixels large.
-#html_favicon = None
-
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
-html_static_path = ['_static']
-
-# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
-# using the given strftime format.
-#html_last_updated_fmt = '%b %d, %Y'
-
-# If true, SmartyPants will be used to convert quotes and dashes to
-# typographically correct entities.
-#html_use_smartypants = True
-
-# Custom sidebar templates, maps document names to template names.
-#html_sidebars = {}
-
-# Additional templates that should be rendered to pages, maps page names to
-# template names.
-#html_additional_pages = {}
-
-# If false, no module index is generated.
-#html_domain_indices = True
-
-# If false, no index is generated.
-#html_use_index = True
-
-# If true, the index is split into individual pages for each letter.
-#html_split_index = False
-
-# If true, links to the reST sources are added to the pages.
-#html_show_sourcelink = True
-
-# If true, "Created using Sphinx" is shown in the HTML footer. Default is True.
-#html_show_sphinx = True
-
-# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True.
-#html_show_copyright = True
-
-# If true, an OpenSearch description file will be output, and all pages will
-# contain a <link> tag referring to it. The value of this option must be the
-# base URL from which the finished HTML is served.
-#html_use_opensearch = ''
-
-# This is the file name suffix for HTML files (e.g. ".xhtml").
-#html_file_suffix = None
-
-# Output file base name for HTML help builder.
-htmlhelp_basename = 'Ishtardoc'
-
-
-# -- Options for LaTeX output --------------------------------------------------
-
-# The paper size ('letter' or 'a4').
-#latex_paper_size = 'letter'
-
-# The font size ('10pt', '11pt' or '12pt').
-#latex_font_size = '10pt'
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title, author, documentclass [howto/manual]).
-latex_documents = [
- ('index', 'Ishtar.tex', u'Ishtar Documentation',
- u'Étienne Loks', 'manual'),
-]
-
-# The name of an image file (relative to this directory) to place at the top of
-# the title page.
-#latex_logo = None
-
-# For "manual" documents, if this is true, then toplevel headings are parts,
-# not chapters.
-#latex_use_parts = False
-
-# If true, show page references after internal links.
-#latex_show_pagerefs = False
-
-# If true, show URL addresses after external links.
-#latex_show_urls = False
-
-# Additional stuff for the LaTeX preamble.
-#latex_preamble = ''
-
-# Documents to append as an appendix to all manuals.
-#latex_appendices = []
-
-# If false, no module index is generated.
-#latex_domain_indices = True
-
-
-# -- Options for manual page output --------------------------------------------
-
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
-man_pages = [
- ('index', 'ishtar', u'Ishtar Documentation',
- [u'Étienne Loks'], 1)
-]
diff --git a/docs/old/source/index.rst b/docs/old/source/index.rst
deleted file mode 100644
index e4f85340e..000000000
--- a/docs/old/source/index.rst
+++ /dev/null
@@ -1,22 +0,0 @@
-.. Ishtar documentation master file, created by
- sphinx-quickstart on Wed Oct 12 01:01:02 2011.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
-Welcome to Ishtar's documentation!
-==================================
-
-Contents:
-
-.. toctree::
- :maxdepth: 3
-
- installation
-
-Indices and tables
-==================
-
-* :ref:`genindex`
-* :ref:`modindex`
-* :ref:`search`
-
diff --git a/docs/old/source/installation.rst b/docs/old/source/installation.rst
deleted file mode 100644
index 4cfc7a061..000000000
--- a/docs/old/source/installation.rst
+++ /dev/null
@@ -1,223 +0,0 @@
-.. -*- coding: utf-8 -*-
-
-===================
-Ishtar installation
-===================
-
-:Author: Étienne Loks
-:Date: 2011-10-12
-:Copyright: CC-BY 3.0
-
-This document presents the installation of Ishtar on a machine with GNU/Linux.
-Instruction are given for Debian but they are easy to adapt to other distribution.
-
-.. contents::
-
-Requirements
-------------
-
- - `apache <http://www.apache.org/>`_ version 2.x
- - `python <http://www.python.org/>`_ versions 2.6 or superior
- - `django <http://www.djangoproject.com/>`_ version 1.4
- - `postgresql <http://www.postgresql.org/>`_ 9.1
- - `posgis <http://postgis.refractions.net/>`_
- - `gettext <http://www.gnu.org/software/gettext/>`_
- - `psycopg2 <http://freshmeat.net/projects/psycopg/>`_
- - `python-pisa <http://pypi.python.org/pypi/pisa/>`_
- - `django-registration <https://bitbucket.org/ubernostrum/django-registration/>`_
- - `django-simple-history <https://bitbucket.org/q/django-simple-history/src>`_ version 1.0
- - `jquery <http://jquery.com/>`_
- - `jquery-ui <http://jqueryui.com/>`_
- - `xhtml2odt <http://xhtml2odt.org/>`_
- - `python-tidylib <http://countergram.com/open-source/pytidylib/docs/>`_
- - `python-lxml <http://lxml.de/>`_
- - `python-imaging <http://www.pythonware.com/products/pil/>`_
-
-Optionaly:
-
- - curl (to fetch towns from OSM)
-
-
-The easier way to obtain most these packages is to get them from your favorite Linux distribution repositories.
-For instance the packages for Debian wheezy are get with::
-
- apt-get install apache2 python python-django python-psycopg2 gettext \
- postgresql-9.1 postgresql-9.1-postgis libjs-jquery libjs-jquery-ui \
- python-pisa python-django-registration python-tidylib python-lxml \
- python-imaging git python-django-south python-psycopg2
-
-If these packages do not exist in your distribution's repository, please refer to applications websites.
-
-django-simple-history is not usually not packaged.::
-
- LOCAL_SRC_PATH=/usr/local/src
-
-To install django-simple-history (git package is needed)::
-
- cd $LOCAL_SRC_PATH
- git clone https://github.com/treyhunner/django-simple-history.git@0fd9b8e9c6f36b0141367b502420efe92d4e21ce
- cd django-simple-history
- python setup.py install
-
-
-If you want to take the bleeding edge version git is necessary. Install the appropriate package.
-
-
-Database configuration
-----------------------
-
-Now that postgres is installed, you need to create a new user for your ishtar instance::
-
- $ su postgres
- $ createuser --echo --adduser --createdb --encrypted --pwprompt ishtar-user
-
-Then, you have to create the database::
-
-
- $ createdb --echo --owner ishtar-user --encoding UNICODE ishtar "My Ishtar database" -T 'template_postgis'
-
-Getting the sources
--------------------
-
-Currently only the git version is available (in the directory you have decided to place sources - for instance /var/local is a good idea)::
-
- $ cd /var/local/
- $ git clone git://lysithea.proxience.com/git/ishtar.git
- $ cd ishtar
- $ git checkout prod
-
-"prod" is here the chosen version (do "git branch" to view available branches).
-
-Installing the sources
-----------------------
-
-In your Ishtar application directory create settings.py to fit to your configuration.
-A base template is provided (settings.py.example)::
-
- $ cd /var/local/ishtar/ishtar/
- $ ISHTAR_DIR=`pwd`
- $ cp settings.py.example settings.py
- $ nano settings.py
- ####
- ROOT_PATH = '/var/local/ishtar/ishtar/'
-
- URL_PATH = ""
- JQUERY_URL = "/javascript/jquery/jquery.js"
- JQUERY_UI_URL = "/javascript/jquery-ui/"
- XHTML2ODT_PATH = ROOT_PATH + "../xhtml2odt"
- ODT_TEMPLATE = ROOT_PATH + "../static/template.odt"
-
- LOGIN_REDIRECT_URL = "/" + URL_PATH
-
- (...)
- DATABASES = {
- 'default': {
- 'ENGINE': 'django.contrib.gis.db.backends.postgis', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
- 'NAME': 'ishtar', # Or path to database file if using sqlite3.
- 'USER': 'user', # Not used with sqlite3.
- 'PASSWORD': 'pass', # Not used with sqlite3.
- 'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
- 'PORT': '', # Set to empty string for default. Not used with sqlite3.
- }
- }
- (...)
-
-Compiling languages
--------------------
-
-If your language is available in the locale directory of Ishtar, you will just need to get it compiled. Still being in the Ishtar directory, this can be done with (here, "de" stands for german. Replace it with the appropriate language code)::
-
- $ cd $ISHTAR_DIR
- $ django-admin compilemessages -l de
-
-If your language is not available, feel free to create the default po files and to submit it, contributions are well appreciated. Procedure is as follows.
-
-You first need to create the default po file (of course, replace "de" according to the language you chose to create)::
-
-
- $ django-admin makemessages -l de
-
-There should now be a django.po file in locale/de/LC_MESSAGES. Complete it with your translation.
-
-Now that the translation file is completed, just compile it the same way you would have if the language file was already available.
-
-Database initialisation
------------------------
-
-Check if you have specific initialisation files for your country (this exemple
-for France: "fr")::
-
- $ cd $ISHTAR_DIR
- $ ls ../database/fr
-
-If a file "initial_data.json" exists copy it to a "fixtures" directory in the ishtar application directory.::
-
- $ mkdir fixtures
- $ cp ../database/fr/initial_data.json fixtures
-
-
-Create the appropriate tables (still being in ishtar application directory)::
-
- ./manage.py syncdb --migrate --noinput
-
-
-Then you'll need to create an administrator account (administration can be found
-at: http://where_is_ishtar/admin)::
-
- ./manage.py createsuperuser
-
-Then create database views (not automatically created by the admin)::
-
- $ cd $ISHTAR_DIR
- $ su postgres
- $ psql -U ishtar-user ishtar -f ../database/views.sql
-
-Then generate rights for installed form wizards.::
-
- ./manage.py generate_rights
-
-If you have specific files for towns and departments (in the "database/$COUNTRY_CODE" directory),
-you can now insert them in the database::
-
- $ cd $ISHTAR_DIR
- $ ./scripts/import_from_csv.py ../database/fr/departements-insee-2010.csv department
- $ ./scripts/import_from_csv.py ../database/fr/communes-insee-2010.csv town
-
-Of course import departments before towns.
-
-Now the database is set, congratulations!
-
-Webserver configuration
------------------------
-
-Apache configuration with mod_wsgi
-**********************************
-
-Install mod_wsgi for apache::
-
- $ sudo apt-get install libapache2-mod-wsgi
-
-Create and edit a configuration for Ishtar::
-
- $ sudo mkdir /var/local/ishtar/apache
- $ sudo cp /var/local/ishtar/conf/django.wsgi /var/local/ishtar/apache/django.wsgi
- $ sudo cp /var/local/ishtar/conf/apache-wsgi.conf /etc/apache2/sites-available/ishtar
-
-Adapt the files django.wsgi (with the correct sys path) and ishtar.
-
-To activate the website reload apache.::
-
- $ sudo a2ensite ishtar
- $ sudo /etc/init.d/apache2 reload
-
-Now that you have gone through ALL this configuration procedure (which was not that hard after all) you can configure the site.
-
-
-
-..
- NOTES À NE PAS PRENDRE EN COMPTE
- """
- INSTALL_PATH = "/home/etienne/work/ishtar/xhtml2odt"
- __init__.py
- Import towns:
- curl --location --globoff "http://openstreetmap.us/xapi/api/0.6/node[place=village|town|city][bbox=-5.53711,41.90228,8.96484,51.50874]" -o data.osm
diff --git a/requirements_rtd.txt b/requirements_rtd.txt
index f6d70f5a8..2ccc04863 100644
--- a/requirements_rtd.txt
+++ b/requirements_rtd.txt
@@ -1,69 +1,3 @@
-# six>=1.9 -> dépendance supprimée
-
-# gdal==2.4.0
-# 3.2
-
-fiona==1.8.18
-pyproj==3.0.0
-
-# psycopg2-binary==2.8.6 -> no db for readthedocs
-# old 2.7.7
-
-django-registration==3.2
-django==2.2.24
-
-Pillow==8.1.2
-# old 5.4.1
-
-WeasyPrint==0.42.3
-html5lib==1.1
-# old 1.0.1
-pyqrcode==1.2.1
-
-pypng==0.0.20
-# old 0.0.19
-
-xmltodict==0.12
-# old 0.11
-
-requests==2.25
-# old 2.21
-
-# python-memcached==1.59 ## production
-# celery==4.2.1 ## not mandatory
-# 5.0.0
-
-djangorestframework==3.12
-# old 3.9
-
-pytidylib==0.3.2
-lxml==4.6.3
-# old 4.3.2
-MarkupSafe==1.1.1 # force this version for Jinja 2.11
-Jinja2==2.11
-# old 2.10
-django-extra-views==0.13.0
-# old 0.12
-beautifulsoup4==4.9.3
-# old 4.7.1
-markdown==3.3.4
-# old 3.0.1
-django-compressor==2.4
-# old 2.2
-
-django-formtools==2.2
-
-secretary==0.2.19
-unidecode
-# 1.2
-
--e git+https://github.com/jazzband/django-simple-history.git@2.7.0#egg=django-simple-history
-
-django-extensions==3.0.3
-
-sphinx_rtd_theme
-# old 2.1.4
-
-# django-debug-toolbar==3.2.4
-
-django-axes==5.4.3
+mkdocs[i18n]>=1.2.2
+mkdocs-autorefs
+mkdocs-with-pdf \ No newline at end of file