Projet

Général

Profil

Development #36627

rendu odt de {{form_details}}

Ajouté par Frédéric Péters il y a plus de 4 ans. Mis à jour il y a environ 4 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
02 octobre 2019
Echéance:
16 mars 2020
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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

Lié à w.c.s. - Development #31712: Les champs titres et sous-titre devraient être dans form_detailsFermé25 mars 2019

Actions
Lié à w.c.s. - Bug #36099: form_details dans un document ODT, n'affiche pas tout le formulaireFermé13 septembre 2019

Actions

Révisions associées

Révision 9bd888c7 (diff)
Ajouté par Frédéric Péters il y a environ 4 ans

factor out function to clean text for open document (#36627)

Révision 0441839f (diff)
Ajouté par Frédéric Péters il y a environ 4 ans

misc: add open document representation of fields (#36627)

Révision c5a08111 (diff)
Ajouté par Frédéric Péters il y a environ 4 ans

workflows: add support for form details odt section in documents (#36627)

Historique

#1

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é
#2

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é
#3

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)

#4

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.).

#5

Mis à jour par Frédéric Péters il y a environ 4 ans

  • Echéance changé de 01 juin 2020 à 16 mars 2020
#7

Mis à jour par Frédéric Péters il y a environ 4 ans

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.
#8

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).

#9

Mis à jour par Frédéric Péters il y a environ 4 ans

Branche à jour avec ces changements poussée.

#10

Mis à jour par Thomas Noël il y a environ 4 ans

  • Statut changé de Solution proposée à Solution validée
#11

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)
#12

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
#13

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

#14

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.

#15

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.

Formats disponibles : Atom PDF