diff options
-rw-r--r-- | docs/fr/source/annexe-tech-3-variables-gen.rst | 15 | ||||
-rw-r--r-- | docs/fr/source/annexe-tech-3-variables.rst | 251 | ||||
-rw-r--r-- | docs/fr/source/annexe-tech-4-jinja-filters.rst | 68 | ||||
-rw-r--r-- | docs/fr/source/index.rst | 1 | ||||
-rw-r--r-- | ishtar_common/tests.py | 2 | ||||
-rw-r--r-- | ishtar_common/utils_secretary.py | 2 |
6 files changed, 79 insertions, 260 deletions
diff --git a/docs/fr/source/annexe-tech-3-variables-gen.rst b/docs/fr/source/annexe-tech-3-variables-gen.rst index 5909b2990..88924c50b 100644 --- a/docs/fr/source/annexe-tech-3-variables-gen.rst +++ b/docs/fr/source/annexe-tech-3-variables-gen.rst @@ -7,7 +7,7 @@ Annexe technique 3 - Variables ============================== :Auteurs: Étienne Loks, Ishtar team -:Date: 2020-12-07 +:Date: 2021-01-08 :Copyright: CC-BY 3.0 :Ishtar Version: v3.1.0 @@ -98,7 +98,7 @@ Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ains - **attached_to__** : *→ Organisation* - Est rattaché à - **author__** : *→ Auteurs (personne)* - **cached_label** : *Texte* - Nom en cache -- **cira_rapporteur__** : *→ Opérations (rapporteur cira)* +- **cira_rapporteur__** : *→ Opérations (rapporteur ctra/cira)* - **comment** : *Texte* - Commentaire - **contact_type** : *Chaîne de caractères (300)* - Type de contact - **file_responsability__** : *→ Dossiers archéologiques (personne responsable)* @@ -111,7 +111,7 @@ Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ains - **operation_protagonist__** : *→ Opérations (nom du protagoniste)* - **operation_responsability__** : *→ Opérations (responsable)* - **operation_scientist_responsability__** : *→ Opérations (responsable du suivi scientifique)* -- **person_types__** : *→ Type de personne* (**label** Dénomination, **txt_idx** Identifiant textuel, **grammatical_gender** Grammatical gender - "M": Male ; "F": Female ; "N": Neutral) - Types +- **person_types__** : *→ Type de personne* (**label** Dénomination, **txt_idx** Identifiant textuel) - Types - **precise_town__** : *→ Commune* (**name** Nom, **numero_insee** Code commune (numéro INSEE), **cached_label** Nom en cache) - Commune (précis) - **raw_name** : *Chaîne de caractères (300)* - Nom brut - **responsible_town_planning_service_files__** : *→ Dossiers archéologiques (responsable pour le service instructeur)* @@ -120,7 +120,7 @@ Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ains - **signatory__** : *→ Actes administratifs (signataire)* - **site_collaborator__** : *→ Entités archéologiques (collaborateurs)* - **surname** : *Chaîne de caractères (50)* - Prénom - Attention, historical and unfortunate residue in the code of an initial translation error. -- **title__** : *→ Type de titre* (**label** Dénomination, **txt_idx** Identifiant textuel, **long_title** Long title) - Titre +- **title__** : *→ Type de titre* (**label** Dénomination, **txt_idx** Identifiant textuel, **grammatical_gender** Grammatical gender - "M": Male ; "F": Female ; "N": Neutral, **long_title** Long title) - Titre - **treatmentfile_applicant__** : *→ Demandes de traitement (demandeur)* - **treatmentfile_responsability__** : *→ Demandes de traitement (personne responsable)* - **treatments__** : *→ Traitements (responsable)* @@ -204,6 +204,7 @@ Documentation - **main_image_warehouses__** : *→ Lieux de conservation (image principale)* - **operations__** : *→ Opérations (documents)* - **publisher__** : *→ Organisation* - Publisher +- **publishing_year** : *Entier positif* - Year of publication - **qrcode** : *Image (255)* - qrcode - **receipt_date** : *Date* - Date de réception - **receipt_date_in_documentation** : *Date* - Date de réception en documentation @@ -292,8 +293,8 @@ Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, - **cached_periods** : *Texte* - Nom en cache des périodes - Généré automatiquement - ne pas éditer - **cached_remains** : *Texte* - Nom en cache des vestiges - Généré automatiquement - ne pas éditer - **cached_towns_label** : *Texte* - Nom en cache des communes - Généré automatiquement - ne pas éditer -- **cira_date** : *Date* - Date avis CIRA -- **cira_rapporteur__** : *→ Personne* - Rapporteur CIRA +- **cira_date** : *Date* - Date avis CTRA/CIRA +- **cira_rapporteur__** : *→ Personne* - Rapporteur CTRA/CIRA - **code_patriarche** : *Texte* - Code PATRIARCHE - **collaborators__** : *→ Personne* - Collaborateurs - **comment** : *Texte* - Commentaire @@ -704,7 +705,7 @@ Chaque dépot dispose des :ref:`champs adresse <valeurs-champs-adresse>`, des :r - **external_id** : *Texte* - Identifiant - **finds__** : *→ Mobilier (collection)* - **main_image__** : *→ Document* - Image principale -- **max_division_number** : *Entier* - Number maximum of division - Automatically generated +- **max_division_number** : *Entier* - Maximum number of divisions - Automatically generated - **name** : *Chaîne de caractères (200)* - Nom - **organization__** : *→ Organisation* - Organisation - **owned_containers__** : *→ Contenants (lieu de conservation responsable)* diff --git a/docs/fr/source/annexe-tech-3-variables.rst b/docs/fr/source/annexe-tech-3-variables.rst deleted file mode 100644 index 7e113e5e3..000000000 --- a/docs/fr/source/annexe-tech-3-variables.rst +++ /dev/null @@ -1,251 +0,0 @@ -.. -*- coding: utf-8 -*- - -.. _annexe-technique-3-variables: - -============================== -Annexe technique 3 - Variables -============================== - -:Auteur: Étienne Loks -:Date: 2020-11-24 -:Copyright: CC-BY 3.0 - ----------------------------------- - -Ces variables sont utilisées pour les configurations des imports, les patrons de documents et la configuration des identifiants, des index personnalisés. - -Ces variables correspondent aux noms des champs utilisés en base de données (exemple : ``code_patriarche`` pour accéder au code patriarche d'une opération) ainsi que des « facilitateurs » qui permettent de disposer de champs plus évolués (exemple : ``get_next_index`` pour accéder au prochain numéro d'index). - -On peut passer d'un élément lié à un autre (par exemple, accéder à l'opération d'une unité d'enregistrement) avec la notation double tiret `__` et ensuite accéder aux variables de l'élément lié (exemple : ``operation__code_patriarche`` permet d'accéder au code patriarche de l'opération ). - -Ci-dessous la liste des variables pour chaque type d'éléments. - -.. _valeurs-champs-adresse: - -Champs adresse -============== - -Les champs adresse sont une liste de variables partagées par plusieurs éléments : - -- `address` : adresse -- `address_complement` : complément d'adresse -- `postal_code` : code postal -- `precise_town__` : commune (`name` nom de la commune, `numero_insee` code INSEE, `cached_label` nom commune avec numéro du département entre parenthèses) -- `town` : nom de la commune (saisie libre) -- `country` : nom de pays -- `alt_address` : adresse alternative -- `alt_address_complement` : complément d'adresse de l'adresse alternative -- `alt_postal_code` : code postal de l'adresse alternative -- `alt_town` : nom de la commune (saisie libre) de l'adresse alternative -- `alt_country` : nom de pays de l'adresse alternative -- `phone` : numéro de téléphone -- `phone_desc` : numéro de téléphone - description -- `phone2` : numéro de téléphone (2) -- `phone_desc2` : numéro de téléphone (2) - description -- `phone3` : numéro de téléphone (3) -- `phone_desc3` : numéro de téléphone (3) - description -- `mobile_phone` : numéro de mobile -- `email` : courriel -- `alt_address_is_prefered` : (booléen) l'adresse alternative est préférée - -.. _valeurs-champs-geo: - -Champs géographiques -==================== - -Les champs géographiques sont une liste de variables partagées par plusieurs éléments : - -- `spatial_reference_system` : système de référence spatial des coordonnées -- `x` : coordonnée x -- `y` : coordonnée y -- `z` : coordonnée z -- `estimated_error_x` : erreur estimée sur la coordonnée x -- `estimated_error_y` : erreur estimée sur la coordonnée y -- `estimated_error_z` : erreur estimée sur la coordonnée z -- `point` : champ base de données du point (3D) - déduit automatiquement depuis les coordonnées -- `point_2d` : champ base de données du point (2D) - déduit automatiquement depuis les coordonnées -- `point_source` : origine des coordonnées (**P** précis, **T** commune, **M** polygone) -- `point_source_item` : source des coordonnées - géré automatiquement -- `multi_polygon` : -- `multi_polygon_source` : origine du polygone (**P** précis, **T** commune, **M** polygone) -- `multi_polygon_source_item` : source du polygone - géré automatiquement - -Le détail du fonctionnement de ces champs est explicité dans :ref:`« Principes > Notions avancées > Données géographiques » <donnees-geographiques>`. - - -Personne -======== - -Chaque personne dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants : - -- `title` : titre -- `salutation` : formule d'appel -- `surname` : prénom -- `name` : nom -- `raw_name` : nom + prénom -- `contact_type__` : type de contact (`label` libellé, `txt_idx` identifiant textuel) -- `comment` : commentaire -- `person_types__` : types de personnes -- `attached_to__` : organisation actuelle (-> Organisation) -- `cached_label` : nom généré depuis la formule `person_raw_name` du profil - -Auteur -====== - -- `person` : personne (-> Personne) -- `author_type` : type d'auteur (`label` libellé, `txt_idx` identifiant textuel) -- `cached_label` : cache textuel « nom, prénom de la personne - type d'auteur » - à utiliser pour l'affichage - -Organisation -============ - -Chaque organisation dispose des :ref:`champs adresse <valeurs-champs-adresse>`, ainsi que des champs suivants : - -- `name` : nom -- `organization_type__` : type de contact (`label` libellé, `txt_idx` identifiant textuel) -- `cached_label` : nom généré - nom ou si non disponible « type d'organisation - adresse - commune » - - -Documentation -============= - -- `title` : titre -- `associated_file` : fichier associé -- `image` : image associée -- `thumbnail` : vignette associée (généré automatiquement depuis une image) -- `associated_url` : adresse web associée (avec ``http://``) -- `index` : index -- `external_id` : identifiant interne -- `reference` : référence -- `internal_reference` : référence interne -- `source_type` : type de document (`label` libellé, `txt_idx` identifiant textuel, `code` code) -- `publisher__` : éditeur (-> Organisation) -- `licenses__` : liste de licence d'utilisation (`label` libellé, `txt_idx` identifiant textuel) -- `tags` : liste d'étiquettes (`label` libellé, `txt_idx` identifiant textuel) -- `language` : langue -- `issn` : code ISSN -- `isbn` : code ISBN -- `source` : source / document parent (-> Document) -- `source_free_input` : source / document parent - saisie libre -- `support_type` : type de support (`label` libellé, `txt_idx` identifiant textuel) -- `format_type` : format (`label` libellé, `txt_idx` identifiant textuel) -- `scale` : échelle -- `authors__` : liste d'auteurs (-> Auteur) -- `authors_raw` : saisie libre des auteurs -- `creation_date` : date de création de l'élément en base de données -- `receipt_date` : date de réception -- `receipt_date_in_documentation` : date de réception en documentation -- `item_number` : nombre d'élément -- `description` : description -- `container_id` : ID du contenant contenant le document -- `container_ref_id` : ID du contenant de référence du document -- `comment` : commentaire -- `additional_information` : information additionnelles -- `duplicate` : a des doublons -- `complete_identifier` : identifiant complet personnalisé -- `custom_index` : index personnalisé -- `qrcode` : QR code - -Opération -========= - -Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants : - -- `code_patriarche` : code patriarche (ou équivalent) -- `year` : année de l'opération -- `common_name` : nom générique -- `operation_code` : code de l'opération -- `old_code` : ancien code -- `start_date` : date de début du chantier -- `excavation_end_date` : date de fin du chantier -- `end_date` : date de clôture de l'opération -- `report_delivery_date` : date de livraison du rapport -- `scientist__` : responsable d'opération (-> Personne) -- `operator__` : opérateur (-> Organisation) -- `in_charge__` : responsable -- `collaborators__` : collaborateurs -- `creation_date` : date de création de l'élément en base de données -- `associated_file__` : dossier archéologique associé (-> Dossier archéologique) -- `operation_type__` : type d'opération (`label` libellé, `txt_idx` identifiant textuel) -- `surface` : surface totale (m²) -- `remains` : liste des vestiges (`label` libellé, `txt_idx` identifiant textuel) -- `cached_remains` : cache textuel de la liste des vestiges - à utiliser pour l'affichage -- `towns` : liste des communes liées (-> Commune, `name` nom de la commune, `numero_insee` code INSEE, `cached_label` nom commune avec numéro du département entre parenthèses) -- `cached_towns_label` : cache textuel de la liste des communes - à utiliser pour l'affichage -- `periods` : liste des périodes (`label` libellé, `txt_idx` identifiant textuel) -- `cached_periods` : cache textuel des périodes - à utiliser pour l'affichage -- `scheduled_man_days` : hommes-jours prévus -- `optional_man_days` : hommes-jours optionnels -- `effective_man_days` : hommes-jours effectifs -- `cost` : coût de l'opération -- `report_processing` : état de traitement du rapport (`label` libellé, `txt_idx` identifiant textuel) -- `fnap_financing` : financement FNAP (%) -- `fnap_cost` : financement FNAP (€) -- `zoning_prescription` : booléen - prescription sur zonage -- `large_area_prescription` : booléen - prescription sur une vaste surface -- `geoarchaeological_context_prescription` : booléen - prescription sur un contexte géoarchéologique -- `negative_result` : booléen - résultat considéré comme négatif -- `cira_rapporteur` : rapporteur CIRA (-> Personne) -- `cira_date` : date d'avis CIRA -- `operator_reference` : référence d'opérateur -- `address` : adresse -- `comment` : commentaire -- `scientific_documentation_comment` : commentaire sur la documentation scientifique -- `documents__` : documents associés (-> Document) -- `main_image__` : image principale (-> Document) -- `cached_label` : libellé en cache ("commune - code opération - nom") -- `archaeological_sites__` : sites associés à cette opération (-> Site/Entité archéologique) -- `top_sites__` : sites pour lesquels cette opération est une opération « chapeau » (-> Site/Entité archéologique) -- `virtual_operation` : booléen - est une opération virtuelle ? -- `record_quality_type__` : qualité d'enregistrement (`label` libellé, `txt_idx` identifiant textuel) -- `abstract` : résumé -- `documentation_deadline` : date limite d'envoi de documentation -- `documentation_received` : booléen - documentation reçue -- `finds_deadline` : date limite de réception du mobilier -- `finds_received` : booléen - mobilier reçu -- `drassm_code` : code DRASSM -- `seizure_name` : nom de la saisie -- `official_report_number` : numéro de procès-verbal ou de saisine -- `protagonist__` : protagonistes (-> Personne) -- `applicant_authority__` : autorité requérante (-> Organisation) -- `minutes_writer__` : rédacteur du procès verbal (-> Personne) -- `complete_identifier` : identifiant complet personnalisé -- `custom_index` : index personnalisé -- `qrcode` : QR code - -Site/Entité archéologique -========================= - -Chaque opération dispose des :ref:`champs géographiques <valeurs-champs-geo>`, ainsi que des champs suivants : - -- `reference` : référence -- `other_reference` : autre référence -- `name` : nom -- `comment` : commentaire -- `collaborators__` : collaborateurs (-> Personne) -- `towns` : liste des communes liées (-> Commune, `name` nom de la commune, `numero_insee` code INSEE, `cached_label` nom commune avec numéro du département entre parenthèses) -- `cached_towns_label` : cache textuel de la liste des communes - à utiliser pour l'affichage -- `remains` : liste des vestiges (`label` libellé, `txt_idx` identifiant textuel) -- `cached_remains` : cache textuel de la liste des vestiges - à utiliser pour l'affichage -- `periods` : liste des périodes (`label` libellé, `txt_idx` identifiant textuel) -- `cached_periods` : cache textuel des périodes - à utiliser pour l'affichage -- `cultural_attributions__` : liste des attributions culturelles (`label` libellé, `txt_idx` identifiant textuel) -- `documents__` : documents associés (-> Document) -- `main_image__` : image principale (-> Document) -- `cached_label` : libellé en cache ("référence - nom - communes - vestiges [périodes]") -- `complete_identifier` : identifiant complet personnalisé -- `custom_index` : index personnalisé -- `qrcode` : QR code -- `shipwreck_name` : nom de l'épave -- `shipwreck_code` : code de l'épave -- `oceanographic_service_localisation` : localisation SHOM -- `sinking_date` : date de naufrage -- `discovery_area` : aire de découverte -- `affmar_number` : numéro Affaires Maritimes -- `drassm_number` : numéro DRASSM -- `locality_ngi` : -- `locality_cadastral` : - -Dossier archéologique -===================== - diff --git a/docs/fr/source/annexe-tech-4-jinja-filters.rst b/docs/fr/source/annexe-tech-4-jinja-filters.rst new file mode 100644 index 000000000..346feeab8 --- /dev/null +++ b/docs/fr/source/annexe-tech-4-jinja-filters.rst @@ -0,0 +1,68 @@ +.. -*- coding: utf-8 -*- + +.. _annexe-technique-4-jinja-filters: + +========================================================== +Annexe technique 4 - Filtres pour les patrons de documents +========================================================== + +:Auteurs: Étienne Loks, Ishtar team +:Date: 2021-01-08 +:Copyright: CC-BY 3.0 +:Ishtar Version: v3.1.0 + +---------------------------------- + + +Les patrons de documents permettent d'utiliser des filtres sur les données de la base de données. Cela permet essentiellement de mettre en forme les champs . Certains de ces filtres sont directement disponibles via la bibliothèque utilisée dans Ishtar, d'autres ont été développés au sein d'Ishtar. + +Pour utiliser un filtre, à la suite de la variable, il faut utiliser le +caractère `|`, par exemple : `{{variable|capfirst}}`. + +.. note:: Les filtres peuvent se chaîner. On peut donc écrire : `{{variable|human_date|capitalize}}.` + +Pour les différents exemples nous utilisons directement une chaîne de caractères pour illuster, en utilisation réelle on utilise un nom de variable. +Les différents filtres disponibles sont : + +- **capfirt** + +Ce filtre met la première lettre en majuscule et ne touche pas au reste de la +chaîne. + + - `{{"saint georges d'oléron"|capfisrt}}` -> `Saint georges d'oléron` + + +- **lowerfirst** + +Ce filtre met la première lettre en minuscule et ne touche pas au reste de la +chaîne + + - `{{"SAINT-GEORGES D'OLÉRON"|lowerfirst}}` -> `sAINT GEORGES D'OLÉRON` + + +- **capitalize** + +Ce filtre met la première lettre de chaque mot en majuscule et le reste de la +chaîne en minuscule. + + - `{{"SAINT-GEORGES D'OLÉRON"|capitalize}}` -> `Saint-Georges d'Oléron` + + +- **human_date** + +Ce filtre permet d'afficher une date en toutes lettres. + + - `{{"2020-01-01"|human_date}}` -> `1 janvier 2020` + + +- **splitpart** + +Ce filtre permet d'extraire un élément depuis une chaîne de +caractères en prenant en compte un séparateur. Par exemple depuis la chaîne +`2,3,10`, accéder au troisième élément : `10`. Ce filtre nécessite au minimum +un argument : le numéro de l'élément souhaité (en commençant le compte à 0). +Par défaut le séparateur `,` est utilisé si l'on souhaite un autre +séparateur, on spécifie celui-ci en second argument. + + - `{{"9,2,10"|splitpart(1)}}` -> `2` + - `{{"chaise;bureau;papier;paragraphe"|splitpart(0, ";")}}` -> `chaise` diff --git a/docs/fr/source/index.rst b/docs/fr/source/index.rst index 85d4cea66..c99428835 100644 --- a/docs/fr/source/index.rst +++ b/docs/fr/source/index.rst @@ -22,3 +22,4 @@ Contents: annexe-tech-1-insee-communes annexe-tech-2-ign-communes annexe-tech-3-variables-gen + annexe-tech-4-jinja-filters
\ No newline at end of file diff --git a/ishtar_common/tests.py b/ishtar_common/tests.py index 6ae996057..1b6889232 100644 --- a/ishtar_common/tests.py +++ b/ishtar_common/tests.py @@ -2775,7 +2775,7 @@ class JinjaFilterTest(TestCase): def test_capfirst(self): self.assertEqual( - utils_secretary.capfirst_filter("SAINT GEORGES D'OLÉRON"), + utils_secretary.capfirst_filter("saint georges d'oléron"), "Saint georges d'oléron") self.assertEqual(utils_secretary.capfirst_filter("s"), "S") self.assertEqual(utils_secretary.capfirst_filter(""), "") diff --git a/ishtar_common/utils_secretary.py b/ishtar_common/utils_secretary.py index b8231c543..8446d20ec 100644 --- a/ishtar_common/utils_secretary.py +++ b/ishtar_common/utils_secretary.py @@ -29,7 +29,7 @@ def replace_line_breaks(value): def capfirst_filter(value): - return value.capitalize() if value else value + return value[0].upper() + value[1:] if value else value def lowerfirst_filter(value): |