From 4659e3aa7fa2591bdec86c8eb4c12597e25c9864 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Thu, 16 Nov 2023 12:27:13 +0100 Subject: 📝 GDPR documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/fr/source/administrateur-applicatif.rst | 334 +++++++++++++++++++++++++++ docs/fr/source/administrateur-serveur.rst | 206 +++++++++++++++++ docs/fr/source/index.rst | 6 +- docs/fr/source/installation.rst | 206 ----------------- docs/fr/source/interface-administrateur.rst | 299 ------------------------ docs/fr/source/interface-utilisateur.rst | 296 ------------------------ docs/fr/source/utilisateur.rst | 296 ++++++++++++++++++++++++ 7 files changed, 839 insertions(+), 804 deletions(-) create mode 100644 docs/fr/source/administrateur-applicatif.rst create mode 100644 docs/fr/source/administrateur-serveur.rst delete mode 100644 docs/fr/source/installation.rst delete mode 100644 docs/fr/source/interface-administrateur.rst delete mode 100644 docs/fr/source/interface-utilisateur.rst create mode 100644 docs/fr/source/utilisateur.rst (limited to 'docs/fr/source') diff --git a/docs/fr/source/administrateur-applicatif.rst b/docs/fr/source/administrateur-applicatif.rst new file mode 100644 index 000000000..302d82770 --- /dev/null +++ b/docs/fr/source/administrateur-applicatif.rst @@ -0,0 +1,334 @@ +.. -*- coding: utf-8 -*- + +========================== +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/` à 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:: 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:: Pour travailler sur ces listes de types ou les transmettre à des tiers, la possibilité est offerte d'exporter ces listes de types via l'interface d'administration. On sélectionne les éléments à exporter (ou tous les éléments) puis on utilise l'action « Exporter les éléments sélectionnés en fichier CSV ». Le fichier peut alors être édité dans un tableur. Pour une mise à jour, il est important de ne pas modifier les identifiants textuels qui sont la clé de rapprochement pour le ré-import. L'action d'import est disponible en haut à droite : « Import depuis un CSV ». + +.. _champ-personnalises: + +Champs personnalisés +-------------------- + +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 :ref:`formulaire personnalisé `. + +.. _formulaire-personnalise: + +Formulaires personnalisés +------------------------- + +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:: 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:: 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-comptes: + +Gestion des 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. :ref:`permissions dans Ishtar`). + +Cette interface de création de compte permet aussi de modifier le mot de passe de comptes existants. + +.. _permissions-ishtar: + +Permissions dans 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':ref:`annexe 1 - détail des permissions `. 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':ref:`annexe 1 - détail des permissions `. + +.. 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`_ que l'on peut attacher à l'élément pour lequel on souhaite éditer un nouveau document. + +.. _document de référence: https://gitlab.com/iggdrasil/ishtar/raw/main/archaeological_operations/tests/document_reference.odt + +.. 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 :ref:`syntaxe Jinja ` (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-instance-ishtar: + +Configuration du profil d'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 :ref:`syntaxe simple ` et une :ref:`syntaxe Jinja ` (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':ref:`annexe technique 3 - variables `. + + + +Formules +-------- + +.. _formules-syntaxe-simple: + +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` ou `OA-44789`. + + +.. _formules-syntaxe-jinja: + +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 ` se fait par la notation double accolade ``{{ }}``. +Ainsi par exemple, pour accéder aux variables `nom_de_ma_clef_1` et `nom_de_ma_clef_2` : :: + + 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 `_, 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, +- le type de traitement, +- des liens vers les personnes concernées par le traitement. + + +Les types de traitements identifiés sont : + +- consultation de l'annuaire (listing de personnes), +- consultation de fiche personne, +- création de personne (formulaire ou import), +- modification de personne (formulaire, import ou fusion), +- suppression de fiche personne. + + +.. 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 activée par défaut. Elle peut être désactivée par l'administrateur serveur (paramètre `GDPR_LOGGING` dans le fichier `local_settings.py`). + +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` dans le fichier `local_settings.py`) 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 via l'interface d'administrateur aux utilisateurs : statut « super utilisateur » ou dans le groupe « Administrateur RGPD » (et disposant du statut équipe : cf. :ref:`gestion des comptes ` ). + +.. 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 ». + + + +.. + TODO (ou pas) + Images + ++++++ + Il est possible d'utiliser des images dans les patrons. Pour cela il faut placer une image dans le document du patron et modifier son attribut nom sous LibreOffice (clic droit sur l'image, « Propriétés... » et l'onglet « Options ») par une chaîne sous la forme ``{{ mon_image|image }}``. ``mon_image`` correspond au champ image + + + +.. + TODO: Profil d'instance Ishtar diff --git a/docs/fr/source/administrateur-serveur.rst b/docs/fr/source/administrateur-serveur.rst new file mode 100644 index 000000000..de2991d40 --- /dev/null +++ b/docs/fr/source/administrateur-serveur.rst @@ -0,0 +1,206 @@ +.. -*- coding: utf-8 -*- + +====================== +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:: 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`_ 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 + +.. _iggdrasil.list: http://deb.iggdrasil.net/apt/debian/dists/bullseye/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:: 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:: + 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`_). + +.. _`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` et `ishtar-tasks` ainsi que tous les paquets `libreoffice` :: + + 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`) et lancez la mise à jour :: + + apt update + apt upgrade + apt dist-upgrade + +Le paquet `python3-weasyprint` 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` et `ishtar-tasks` :: + + 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`). Pour chaque instance, dans le répertoire `/srv/ishtar/` 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`, sur cette nouvelle version la gestion du service `rabbitmq` n'est plus assurée via `systemd` mais via `supervisor.` La migration de `systemd` vers `supervisor` n'est pas gérée automatiquement via le paquet, seules les nouvelles instances ont un fichier `supervisor` créé à l'installation. Pour gérer cette migration supprimez les fichiers de configuration `systemd` 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` 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` et `supervisorctl status`. + +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/` 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 + +.. + TODO: + .. warning:: L'installateur présume que vous avez un nom de domaine dédié pour votre installation. Si cela n'est pas le cas, reportez-vous à la section de la documentation concernée. + paramètres de settings utiles :DEFAULT_FROM_EMAIL = "robot@iggdrasil.net", SERVER_EMAIL EMAIL_HOST EMAIL_PORT EMAIL_HOST_USER EMAIL_HOST_PASSWORD EMAIL_USE_TLS + installation depuis les sources + diff --git a/docs/fr/source/index.rst b/docs/fr/source/index.rst index 638c0edf6..b92bbd3e2 100644 --- a/docs/fr/source/index.rst +++ b/docs/fr/source/index.rst @@ -11,10 +11,10 @@ Contents: .. toctree:: :maxdepth: 3 - installation principes - interface-utilisateur - interface-administrateur + utilisateur + administrateur-applicatif + administrateur-serveur annexe-1-permission-action annexe-2-ex-flux-ope annexe-3-doc-normes diff --git a/docs/fr/source/installation.rst b/docs/fr/source/installation.rst deleted file mode 100644 index 5a7a72375..000000000 --- a/docs/fr/source/installation.rst +++ /dev/null @@ -1,206 +0,0 @@ -.. -*- coding: utf-8 -*- - -============ -Installation -============ - -:Auteur: Étienne Loks -:Date: 2023-06-12 -:Copyright: CC-BY 3.0 - - -Ce document présente les instructions d'installation 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:: 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`_ 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 - -.. _iggdrasil.list: http://deb.iggdrasil.net/apt/debian/dists/bullseye/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:: 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:: - 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`_). - -.. _`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` et `ishtar-tasks` ainsi que tous les paquets `libreoffice` :: - - 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`) et lancez la mise à jour :: - - apt update - apt upgrade - apt dist-upgrade - -Le paquet `python3-weasyprint` 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` et `ishtar-tasks` :: - - 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`). Pour chaque instance, dans le répertoire `/srv/ishtar/` 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`, sur cette nouvelle version la gestion du service `rabbitmq` n'est plus assurée via `systemd` mais via `supervisor.` La migration de `systemd` vers `supervisor` n'est pas gérée automatiquement via le paquet, seules les nouvelles instances ont un fichier `supervisor` créé à l'installation. Pour gérer cette migration supprimez les fichiers de configuration `systemd` 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` 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` et `supervisorctl status`. - -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/` 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 - -.. - TODO: - .. warning:: L'installateur présume que vous avez un nom de domaine dédié pour votre installation. Si cela n'est pas le cas, reportez-vous à la section de la documentation concernée. - paramètres de settings utiles :DEFAULT_FROM_EMAIL = "robot@iggdrasil.net", SERVER_EMAIL EMAIL_HOST EMAIL_PORT EMAIL_HOST_USER EMAIL_HOST_PASSWORD EMAIL_USE_TLS - installation depuis les sources - diff --git a/docs/fr/source/interface-administrateur.rst b/docs/fr/source/interface-administrateur.rst deleted file mode 100644 index ca74acca5..000000000 --- a/docs/fr/source/interface-administrateur.rst +++ /dev/null @@ -1,299 +0,0 @@ -.. -*- coding: utf-8 -*- - -================================== -Configuration de l'instance Ishtar -================================== - -:Auteur: Étienne Loks -:Date: 2018-12-04 -: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/` à 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:: 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:: Pour travailler sur ces listes de types ou les transmettre à des tiers, la possibilité est offerte d'exporter ces listes de types via l'interface d'administration. On sélectionne les éléments à exporter (ou tous les éléments) puis on utilise l'action « Exporter les éléments sélectionnés en fichier CSV ». Le fichier peut alors être édité dans un tableur. Pour une mise à jour, il est important de ne pas modifier les identifiants textuels qui sont la clé de rapprochement pour le ré-import. L'action d'import est disponible en haut à droite : « Import depuis un CSV ». - -.. _champ-personnalises: - -Champs personnalisés --------------------- - -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 :ref:`formulaire personnalisé `. - -.. _formulaire-personnalise: - -Formulaires personnalisés -------------------------- - -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:: 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:: 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 -******************* - -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. :ref:`permissions dans Ishtar`). - -Cette interface de création de compte permet aussi de modifier le mot de passe de comptes existants. - -.. _permissions-ishtar: - -Permissions dans 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':ref:`annexe 1 - détail des permissions `. 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':ref:`annexe 1 - détail des permissions `. - -.. 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`_ que l'on peut attacher à l'élément pour lequel on souhaite éditer un nouveau document. - -.. _document de référence: https://gitlab.com/iggdrasil/ishtar/raw/main/archaeological_operations/tests/document_reference.odt - -.. 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 :ref:`syntaxe Jinja ` (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-instance-ishtar: - -Configuration du profil d'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 :ref:`syntaxe simple ` et une :ref:`syntaxe Jinja ` (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':ref:`annexe technique 3 - variables `. - - - -Formules --------- - -.. _formules-syntaxe-simple: - -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` ou `OA-44789`. - - -.. _formules-syntaxe-jinja: - -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 ` se fait par la notation double accolade ``{{ }}``. -Ainsi par exemple, pour accéder aux variables `nom_de_ma_clef_1` et `nom_de_ma_clef_2` : :: - - 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. - -.. - Filtres - +++++++ - {{|filtre}} - -.. - Images - ++++++ - Il est possible d'utiliser des images dans les patrons. Pour cela il faut placer une image dans le document du patron et modifier son attribut nom sous LibreOffice (clic droit sur l'image, « Propriétés... » et l'onglet « Options ») par une chaîne sous la forme ``{{ mon_image|image }}``. ``mon_image`` correspond au champ image - - - -.. - TODO: Profil d'instance Ishtar diff --git a/docs/fr/source/interface-utilisateur.rst b/docs/fr/source/interface-utilisateur.rst deleted file mode 100644 index 5ee07a9ac..000000000 --- a/docs/fr/source/interface-utilisateur.rst +++ /dev/null @@ -1,296 +0,0 @@ -.. -*- coding: utf-8 -*- - -===================== -Interface 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 « :ref:`page de recherche ` » et les actions d'ajout, modification et suppression suivent ensuite une logique de « :ref:`page d'assistant logiciel ` » (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. :ref:`Page de recherche > Marques-pages et alertes `), mise en place par l'utilisateur ainsi que (si l'affichage de ceux-ci est activé) les éléments actuellement épinglés (cf. :ref:`Utilisation avancée > Éléments épinglés `). - -.. _page-de-recherche: - -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:: 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. - -.. - TODO: Une recherche avec l'opérateur OU... pour l'instant cette recherche pose trop de problèmes - - -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:: 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:: 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. - -.. _bookmarks: - -Marques-pages et alertes ------------------------- - -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 :ref:`paniers `) 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 :ref:`fiche ` 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. - -.. _sheet: - -Fiches ------- - -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. :ref:`épinglage `). -- 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. - -.. _wizard: - -Page d'assistant logiciel (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 -=================== - -.. _basket: - -Paniers -------- - -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. - -.. _pinned: - -Éléments épinglés ------------------ - -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. - - -.. - TODO: expliciter les droits ? les notions de propriétés ? diff --git a/docs/fr/source/utilisateur.rst b/docs/fr/source/utilisateur.rst new file mode 100644 index 000000000..c3659117b --- /dev/null +++ b/docs/fr/source/utilisateur.rst @@ -0,0 +1,296 @@ +.. -*- coding: utf-8 -*- + +=========== +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 « :ref:`page de recherche ` » et les actions d'ajout, modification et suppression suivent ensuite une logique de « :ref:`page d'assistant logiciel ` » (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. :ref:`Page de recherche > Marques-pages et alertes `), mise en place par l'utilisateur ainsi que (si l'affichage de ceux-ci est activé) les éléments actuellement épinglés (cf. :ref:`Utilisation avancée > Éléments épinglés `). + +.. _page-de-recherche: + +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:: 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. + +.. + TODO: Une recherche avec l'opérateur OU... pour l'instant cette recherche pose trop de problèmes + + +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:: 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:: 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. + +.. _bookmarks: + +Marques-pages et alertes +------------------------ + +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 :ref:`paniers `) 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 :ref:`fiche ` 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. + +.. _sheet: + +Fiches +------ + +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. :ref:`épinglage `). +- 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. + +.. _wizard: + +Page d'assistant logiciel (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 +=================== + +.. _basket: + +Paniers +------- + +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. + +.. _pinned: + +Éléments épinglés +----------------- + +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. + + +.. + TODO: expliciter les droits ? les notions de propriétés ? -- cgit v1.2.3