feat: registre de types de section par mould + mapping ODT typé #186

Merged
nicolas merged 1 commit from testing into main 2026-05-25 12:11:32 +02:00
Owner

DB:

  • import_styles.section_type_defs: registre JSON des types de section
    [{ name, label, para_stream, para_reset }] par import style
  • insertSection: accepte section_type, para_stream, para_reset

Admin API:

  • PUT /admin/styles/:id/section-type-defs — sauvegarde le registre
  • deserialize() inclut section_type_defs dans les réponses

Import ODT:

  • odtToSections accepte typeDefs (3e argument)
  • Rôles "section_heading_" (ex. section_heading_article)
    au lieu du générique "section_heading"
  • Sections créées avec section_type, para_stream, para_reset
    pré-configurés depuis le type def correspondant

Documents API:

  • GET /documents/:id inclut sectionTypeDefs depuis l'import style lié

Admin UI (MappingView):

  • Éditeur de types de section (nom, label, counter, reset)
    au-dessus de la grille de mapping OTT
  • Dropdown de rôle: options dynamiques "Section heading → "
    selon les types définis (optgroup); retombe sur section_heading
    générique si aucun type n'est défini

Éditeur (LeftPanel):

  • Dropdown section type alimenté par doc.sectionTypeDefs
    (types définis pour le mould) au lieu de 4 valeurs hardcodées
  • Sélectionner un type pré-remplit counter et reset automatiquement
DB: - import_styles.section_type_defs: registre JSON des types de section [{ name, label, para_stream, para_reset }] par import style - insertSection: accepte section_type, para_stream, para_reset Admin API: - PUT /admin/styles/:id/section-type-defs — sauvegarde le registre - deserialize() inclut section_type_defs dans les réponses Import ODT: - odtToSections accepte typeDefs (3e argument) - Rôles "section_heading_<typename>" (ex. section_heading_article) au lieu du générique "section_heading" - Sections créées avec section_type, para_stream, para_reset pré-configurés depuis le type def correspondant Documents API: - GET /documents/:id inclut sectionTypeDefs depuis l'import style lié Admin UI (MappingView): - Éditeur de types de section (nom, label, counter, reset) au-dessus de la grille de mapping OTT - Dropdown de rôle: options dynamiques "Section heading → <type>" selon les types définis (optgroup); retombe sur section_heading générique si aucun type n'est défini Éditeur (LeftPanel): - Dropdown section type alimenté par doc.sectionTypeDefs (types définis pour le mould) au lieu de 4 valeurs hardcodées - Sélectionner un type pré-remplit counter et reset automatiquement
DB:
- import_styles.section_type_defs: registre JSON des types de section
  [{ name, label, para_stream, para_reset }] par import style
- insertSection: accepte section_type, para_stream, para_reset

Admin API:
- PUT /admin/styles/:id/section-type-defs — sauvegarde le registre
- deserialize() inclut section_type_defs dans les réponses

Import ODT:
- odtToSections accepte typeDefs (3e argument)
- Rôles "section_heading_<typename>" (ex. section_heading_article)
  au lieu du générique "section_heading"
- Sections créées avec section_type, para_stream, para_reset
  pré-configurés depuis le type def correspondant

Documents API:
- GET /documents/:id inclut sectionTypeDefs depuis l'import style lié

Admin UI (MappingView):
- Éditeur de types de section (nom, label, counter, reset)
  au-dessus de la grille de mapping OTT
- Dropdown de rôle: options dynamiques "Section heading → <type>"
  selon les types définis (optgroup); retombe sur section_heading
  générique si aucun type n'est défini

Éditeur (LeftPanel):
- Dropdown section type alimenté par doc.sectionTypeDefs
  (types définis pour le mould) au lieu de 4 valeurs hardcodées
- Sélectionner un type pré-remplit counter et reset automatiquement
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
code/docfoundry_ynh!186
No description provided.