No description
  • TypeScript 52.2%
  • Vue 42.4%
  • CSS 5.2%
  • HTML 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Gilles Fritz 637e88fecb
All checks were successful
ci / unit (push) Successful in 1m16s
ci / publish (push) Successful in 36s
feature: PDF export options dialog (root place, depth, layout, theme grouping) (#30)
Closes #29

## What
- New `PdfExportOptionsDialog` opened by every PDF export button (version, current state, spec extract) before the job is created: start place (indented place-tree picker; locked on the spec's place for an extract), max depth (empty = unlimited), tree / by-place layout, group by theme. Mentions the always-included table of contents, and warns when the project resolves to a custom PDF template.
- `api/exports.ts`: `PdfExportOptions` sent with `createPdfExportJob` / `createCurrentStatePdfExportJob` / `createSpecPdfExportJob` (the latter always sends `root_place: null`); `PdfExportJob` gains the four fields; `previewPdfTemplate` takes `layout`/`groupByTheme`.
- Template editor (Gestion > Export PDF): documents the new context variables (`export`, `places`, `themes`, `toc`, anchors/links) and can preview each layout/grouping.
- MSW mocks mirror the backend serializer's checks (root_place in the project and never with spec, max_depth >= 0, known layout).

## Depends on
thierryade/backend#42 for the options to have any effect. Merging this one first is harmless (DRF ignores the unknown fields), but backend first is the natural order.

## Tests
91/91 Vitest (5 new: options sent from the dialog, negative depth refused, cancel exports nothing, custom-template warning, locked place + depth on a spec extract; existing export tests now go through the dialog). `pnpm build` (vue-tsc) clean.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

https://claude.ai/code/session_01CrK5Cbdm97HrbhC9wPMLyu
Reviewed-on: #30
2026-11-02 12:02:49 +00:00
.forgejo/workflows Send publish reports to Argus from the release job (#12) 2026-10-30 08:13:52 +00:00
public Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
spa Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
src feature: PDF export options dialog (root place, depth, layout, theme grouping) (#30) 2026-11-02 12:02:49 +00:00
.gitignore Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
index.html Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
LICENSE Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
package.json Update pnpm to v12.16.1 (#10) 2026-10-29 07:59:47 +00:00
pnpm-lock.yaml chore(deps): lock file maintenance (#28) 2026-11-02 06:20:36 +00:00
pyproject.toml Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
README.md Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
renovate.json Configure Renovate (#1) 2026-10-19 06:52:58 +00:00
tsconfig.json Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
vite.config.ts Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00
vitest.config.ts Scaffold Vue 3 + Vite frontend: orgs/projects/places/specs CRUD UI 2026-10-14 23:47:26 +02:00

thierryade/frontend

SPA Vue 3 + Vite de Thierryade — outil de gestion de spécifications de projets (organisations, projets, découpage spatial en places, specs versionnées et raffinées). Voir le dépôt soeur thierryade/backend (API Django+DRF).

Esthétique "logiciel des années 90" (chrome biseauté, VT323/Alfa Slab One/IBM Plex Sans) — voir la charte graphique du projet pour le détail des tokens et composants repris dans src/style.css.

Développement local

pnpm install
pnpm run dev   # proxie /api, /admin, /oidc vers http://localhost:8000

Tests

pnpm run test:unit

État actuel

Scaffold initial : organisations → projets → arbre de places → specs (création, nouvelle version, validation, raffinage vers une place enfant, case "implémentée"). Toutes les pages tournent contre une API mockée (MSW, voir src/mocks/) — pas encore testé contre un vrai thierryade/backend en cours de construction en parallèle.