Add spreadsheet-style home page, migrate full 2026 ledger

- New /lignes route (set as site front page): full line-by-line table of
  every ligne comptable, Vue app with filters (compte/client/type/année)
  and month/year grouping, columns matching the original spreadsheet
  (one per compte). Rows with répartition ≠ montant HT are visibly
  flagged (red row + écart column), not hidden or auto-corrected.
- /dashboard now only holds the aggregate solde-par-compte/par-client view
- Migrated all 199 real 2026 transaction lines + 9 opening balances (from
  REPORT CLOTURE 2025) via a drush import script, preserving raw source
  data (known répartition mismatches included) -- validated with a new
  state-flag bypass of the presave check, used only for historical import
- Added "Autre" as an allowed field_type_ligne value for edge-case rows
- Client taxonomy grew from 15 seeded terms to the full unified list

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-03 22:52:00 +02:00
co-authored by Claude Sonnet 5
parent ca800be21a
commit 10f6271fec
12 changed files with 496 additions and 61 deletions
@@ -1,8 +1,6 @@
{#
Dashboard shell: Drupal renders the page (nav, auth, permissions).
dashboard.js (a Vue 3 app) fetches JSON:API and renders everything below,
client-side. "Ajouter une ligne" opens the real Drupal node form in a
modal (core/drupal.dialog.ajax) -- no form logic duplicated in JS.
Aggregate view: solde par compte / solde par client. The spreadsheet-like
line-by-line view is the site's home page (figli-compta-home.html.twig).
{% verbatim %} below: this is Vue template syntax, not Twig -- both use
{{ }}, so verbatim tells Twig to leave it alone and let Vue compile it
@@ -10,9 +8,6 @@
#}
{% verbatim %}
<div id="figli-dashboard-app">
<p>
<a href="/node/add/ligne_comptable" class="button button--primary" @click.prevent="openAddForm">+ Ajouter une ligne</a>
</p>
<p v-if="loading">Chargement des données…</p>
<p v-else-if="error" class="figli-error">Erreur de chargement du tableau de bord : {{ error }}</p>
<template v-else>