add spreadsheet_dashboard_pos_cooperative & pos_dashboard_cooperative

This commit is contained in:
Luis 2026-06-05 19:55:00 +02:00
parent 86101218e9
commit 5247938b86
34 changed files with 7974 additions and 0 deletions

View file

@ -0,0 +1,38 @@
* Period-over-period comparisons on the scorecards (the BI brief shows
"X% desde el último periodo" arrows on every KPI). In o-spreadsheet
this is wired through ``baseline`` references plus a comparison
range on the date global filter. Postponed until the four dashboards
are validated by the customer in production.
* Quarter-level selection (*Q1..Q4*) on the ``Period`` filter. The
o-spreadsheet date filter in Odoo 16 only accepts a single
``rangeType`` per filter; we picked ``month`` because it is the
finest granularity. A second date filter with ``rangeType:
"quarter"`` would coexist visually but duplicate the year picker,
which the customer rejected. Revisit in Odoo 17 where the filter
UI allows choosing the granularity dynamically.
* Rolling-window date filter (*Last 30 / 90 / 180 days*) as an
alternative to the month picker. Same limitation as above (one
``rangeType`` per filter).
* "Sales concentration" KPI on the Categories dashboard: share of
sales captured by the top 20% of buying members. The Top buyers
pivot already exists in the Members dashboard; only an aggregation
formula plus a scorecard would be needed.
* Stricter definition of **Members penetration** as ``distinct member
buyers / total members in the cooperative`` (instead of the current
``/ total buyers in the period``). Requires sourcing the total from
``share.line`` rather than from ``report.pos.order``.
* Translate ``spreadsheet.dashboard.name`` / ``spreadsheet.dashboard.group.name``
so the entries in the *Dashboards* menu render in the user's
language (currently always English: *POS Overview*, *POS Members*,
etc.). Blocked upstream: the core ``name`` fields are not declared
``translate=True``. Either patch the core fields downstream or rename
the records to the customer's primary language in the XML.
* Add Galician, Catalan, French, Dutch and Croatian translations.
Spanish (``es.po``) ships out of the box. The other locales can be
produced from the same ``.pot`` by translating each ``msgstr``.