Cette page s'adresse aux développeurs qui interviennent sur le constructeur de la version next. Pour concevoir un format dans l'interface, consultez le guide utilisateur.
Les chemins suivants appartiennent au dépôt Dodock. Les composants internes décrivent l'implémentation actuelle, pas une interface d'extension stable.
| Rôle | Chemin |
|---|---|
| Page du constructeur | frappe/printing/page/print_format_builder/ |
| Interface Vue | frappe/public/js/print_format_builder/PrintFormatBuilder.vue |
| État et opérations d'édition | frappe/public/js/print_format_builder/stores/ |
| Disposition et sections | frappe/public/js/print_format_builder/components/editor/ |
| Inspection des propriétés | frappe/public/js/print_format_builder/components/inspector/ |
| Redimensionnement | frappe/public/js/print_format_builder/composables/useColumnResize.js |
| Contrôleur du format | frappe/printing/doctype/print_format/print_format.py |
| Génération du rendu | frappe/utils/print_format_generator.py |
| Conversion des anciens formats | frappe/printing/doctype/print_format/classic_converter.py |
Le format publié utilise notamment format_data. Le brouillon conserve les propriétés modifiables par le constructeur dans draft_data. L'en-tête de lettre reste un document distinct.
Les méthodes exposées se trouvent dans frappe.printing.doctype.print_format.print_format. Les écritures de brouillon vérifient les permissions et la valeur modified du format afin de refuser une modification concurrente.
| Méthode | Paramètres | Effet |
|---|---|---|
save_draft | name, data, modified | Enregistrer les propriétés autorisées dans le brouillon. |
apply_draft | name, modified, data facultatif | Appliquer le brouillon au format et enregistrer une version. |
discard_draft | name, modified | Supprimer le brouillon sans changer le format publié. |
save_version | name, label, data, modified | Conserver une version nommée. |
get_versions | name | Lire les versions disponibles. |
get_version_fields | name, version | Lire les propriétés d'une version. |
restore_version | name, version, modified | Charger une version dans le brouillon, sans la publier. |
delete_version | name, version | Supprimer la version désignée. |
useDraftSave.js coordonne l'enregistrement automatique et l'application manuelle. useVersions.js gère la consultation et la restauration. Utilisez la signature de la version installée avant d'appeler ces méthodes depuis une intégration.
Il n'existe pas, dans cette implémentation, de paramètres draft_expiry_days ou autosave_interval lus depuis hooks.py. Les méthodes autosave_draft et save_and_apply ne correspondent pas aux points d'entrée ci-dessus.
Les expressions visible_if sont évaluées côté serveur avec frappe.safe_eval. Elles utilisent la syntaxe Python, les données de doc et les paramètres de print_settings.
| Expression | Résultat |
|---|---|
doc.status == "Paid" | Afficher l'élément si le statut technique du document vaut Paid. |
doc.total > 1500 | Afficher l'élément si total dépasse 1 500 dans la devise du document. |
len(doc.get("items") or []) > 5 | Afficher l'élément si le document contient plus de cinq lignes dans items. |
Ces exemples supposent que les données citées existent sur le type de document concerné. Les noms techniques et les valeurs de statut ne sont pas leurs traductions affichées dans l'interface. Les opérateurs JavaScript === et .length ne conviennent pas ici.
Une condition vraie affiche l'élément. Par exemple, doc.total < 100 l'affiche pour un montant inférieur à 100, au lieu de le masquer.
Les tableaux et répétiteurs peuvent aussi définir row_condition. Le générateur évalue cette expression pour chaque ligne avec la variable row. Une expression invalide peut empêcher le rendu. Vérifiez les cas vrai, faux et invalide avant de publier un format.
download_builder_preview_pdf reçoit les données du format en cours et l'identifiant du document à imprimer. L'aperçu ne dispense pas des permissions de lecture et d'impression sur ce document.
Le panneau du format modifie ses propriétés, comme les marges, les couleurs ou le moteur PDF. La fenêtre ouverte par open_print_settings modifie le document singleton Print Settings avec frappe.client.set_value. Ces paramètres concernent le site.
classic_converter.py convertit les anciennes dispositions et conserve leur source dans classic_format_data. La conversion peut signaler des éléments non repris. Comparez les documents rendus avant et après conversion.
Les tests du contrôleur et du convertisseur se trouvent dans frappe/printing/doctype/print_format/test_print_format.py. Une modification des composants doit aussi être vérifiée dans l'interface et sur un PDF.