Development #36627
rendu odt de {{form_details}}
0%
Description
{{form_details}} dans un modèlé de document, tout se trouve posé dans un unique paragraphe, avec des retours à la ligne forcés là où des lignes blanches sont vues. (mécanisme qui avait été prévu pour les commentaires laissés par un usager dans un champ texte).
Il faudrait plutôt détecter le cas particulier de {{form_details}} (on gérerait uniquement le cas où celui-ci est dans un champ avec rien d'autre), et gérer une structure odt correspondante.
Fichiers
Demandes liées
Révisions associées
misc: add open document representation of fields (#36627)
workflows: add support for form details odt section in documents (#36627)
Historique
Mis à jour par Frédéric Péters il y a plus de 4 ans
- Lié à Development #31712: Les champs titres et sous-titre devraient être dans form_details ajouté
Mis à jour par Mikaël Ates (de retour le 29 avril) il y a plus de 4 ans
- Lié à Bug #36099: form_details dans un document ODT, n'affiche pas tout le formulaire ajouté
Mis à jour par Frédéric Péters il y a environ 4 ans
- Echéance mis à 01 juin 2020
- Assigné à mis à Frédéric Péters
(sauf si ça motive quelqu'un avant)
Mis à jour par Frédéric Péters il y a environ 4 ans
J'ai posé une branche https://git.entrouvert.org/wcs.git/log/?h=wip/36627-odt-form-details qui expose le plan, partager le code déterminant les champs à afficher (fait, et sans doute à intégrer ~rapidement dans master parce que sinon ça va être pénible à rebaser), ajout d'une représentation odt aux champs (get_opendocument_node_value, qu'il faudra créer pour les différents types de champs qu'on veut pouvoir représenter), puis exploitation de ça pour taper un "form_details" sous forme de section dans l'odt (libreoffice, insérer, section, donner le nom form_details), partie qu'il faudra compléter d'un peu de style (espacement entre les champs etc.).
Mis à jour par Frédéric Péters il y a environ 4 ans
- Echéance changé de 01 juin 2020 à 16 mars 2020
Mis à jour par Frédéric Péters il y a environ 4 ans
- Fichier 0003-misc-add-open-document-representation-of-fields-3662.patch 0003-misc-add-open-document-representation-of-fields-3662.patch ajouté
- Fichier 0002-factor-out-function-to-clean-text-for-open-document-.patch 0002-factor-out-function-to-clean-text-for-open-document-.patch ajouté
- Statut changé de Nouveau à Solution proposée
- Patch proposed changé de Non à Oui
- Fichier 0004-workflows-add-support-for-form-details-odt-section-i.patch 0004-workflows-add-support-for-form-details-odt-section-i.patch ajouté
Ça vient après #39739 que j'avais isolé pour lui permettre une relecture plus rapide.
Mis à jour par Frédéric Péters il y a environ 4 ans
- Fichier template-form-details.odt template-form-details.odt ajouté
- Fichier Capture d’écran de 2020-03-03 14-36-46.png Capture d’écran de 2020-03-03 14-36-46.png ajouté
Pour la documentation :
- passer par insertion / section, lui donner form_details comme nom (cf capture)
- si du contenu est ajouté à la section, il sera retiré.
- pour les styles, ils sont Page_Title (titre de page), Form_Title (champ titre), Form_Subtitle (champ sous-titre), Field_Label (libellé de champ) et Field_Value (valeur de champ)
- si aucun style n'est défini, des styles basiques par défaut sont utilisés
- dans l'exemple en pièce jointe, les différents styles sont définis, via un exemplaire dans la section, il peut être nécessaire de procéder ainsi (avoir du texte utilisant les styles dans la section) pour éviter un nettoyage automatique des styles inutilisés.
Mis à jour par Thomas Noël il y a environ 4 ans
Sans trop de difficulté je pense que tu pourrais ajouter dans le test de rendu une page vide, et vérifier qu'elle n'est pas là. Quelque chose comme :
TableField(id='12', label='Table', type='table', columns=['a', 'b'], rows=['c', 'd']), + PageField(id='13', label='Invisible Page', type='page'), + TitleField(id='14', label='Invisible Title', type='title'), + StringField(id='15', label='Invisible String', type='string', varname='invisiblestr'), ... assert new_content.count('/table:table-cell') == 8 + assert 'Invisible' not in new_content
J'ai presque envie de proposer qu'au lieu de « node.attrib.get(SECTION_NAME) 'form_details' » on teste carrément « node.attrib.get(SECTION_NAME).replace(' ','') '{{form_details}}' » ... sans se donner la peine d'expliquer que ça ne marche que pour cette seule variable, juste parce que j'imagine déjà que beaucoup de monde va taper {{form_details}} dans le nom de la section et demander de l'aide parce que ça marchera pas.
Sinon rien d'autre à ajouter, tout me semble bon. Juste dommage que LibreOffice ne propose pas un mode où le nom de la section s'affiche dans un coin (mais ça n'a pas de rapport avec ce patch).
Mis à jour par Thomas Noël il y a environ 4 ans
- Statut changé de Solution proposée à Solution validée
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Solution validée à Résolu (à déployer)
commit c5a081113153b4b1b399b3efe85a81f62ea81700 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Feb 8 11:01:17 2020 +0100 workflows: add support for form details odt section in documents (#36627) commit 0441839f27ed769d382e486c5bf757d5b1daccf9 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Feb 8 10:31:14 2020 +0100 misc: add open document representation of fields (#36627) commit 9bd888c708c8258bf2bf92d07f52b53e768dd5b3 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sat Feb 8 10:30:39 2020 +0100 factor out function to clean text for open document (#36627)
Mis à jour par Frédéric Péters il y a environ 4 ans
- Statut changé de Résolu (à déployer) à Solution déployée
Mis à jour par Pierre Cros il y a environ 4 ans
Je teste, j'arrive à jouer avec les champs titre et sous-titre, en revanche j'ai rien dans Page_Title. D'où vient cette valeur ?.
Autre question, peut-être déjà posée, je pense qu'il n'est pas possible d'avoir un truc pour les champs du genre :
Libellé : valeur du champ
Mis à jour par Frédéric Péters il y a environ 4 ans
(...) en revanche j'ai rien dans Page_Title. D'où vient cette valeur ?.
Tu veux dire que les noms de page ne sont pas repris ?
Autre question, peut-être déjà posée, je pense qu'il n'est pas possible d'avoir un truc pour les champs du genre :
Libellé : valeur du champ
Non; c'est déjà bien compliqué d'obtenir un peu de contrôle sur le style des paragraphes, gérer du style à l'intérieur de ceux-ci pas moyen.
Mis à jour par Pierre Cros il y a environ 4 ans
J'avais juste pas compris que Page_Title = Libellé d'un champ de type page (je testais avec un formulaire sans champ de type Page). Merci.
Compris pour le reste.
factor out function to clean text for open document (#36627)