Reporting of aggregated data

Rational

There is a need for a flexible and generic engine to display aggregated data.
I think the easy solution is to build a generic pivot table tool but it does not really provide a good user experience. Such tool allow to make non-sense queries with false result and are not easy to use.
Indeed I think we need to have a way to browse an predefined hierarchy (facts) with associated value (measures).
And for temporal facts, I think it is not good to show an long set of columns with a lot of values (like pivot table would bring). Indeed I think we should use Sparklines like this example and allow to browse the temporal data as a list by clicking on the row.

Proposal

Implement a generator of sparkline in SVG on server side like https://github.com/tgvashworth/sparksvg

Such report will be implemented using an UnionMixin with a rec_name, all the values and a optional parent/children. This model represent a hierarchy of facts. The union models should be part of the same set ModelSQL using table_query which compute the values using the same context, this will be ensured by inheriting from the same class. They should just change the group_by clause of the query.

It may be useful to allow a client tab to have a selection of models to display. This will allow to switch from one report to another quickly.

Implementation

2 Likes

I know of seeing it in other projects pygal, it has sparklines and support py2 and py3. It seems more maintained than the other libray and comes packaged on linux distributions.

1 Like

I seems a good choice.

After some testing with pygal and SVG rendering, it does not work correctly in the client. I think it is because the generated SVG contains javascript. So I tested the Sparktext rendering. It works pretty well and it has the advantage to have smaller size as it is only a char.

Indeed switching is not so good experience but having a single menu entry with multiple actions do pretty well the job.

I am new here.

Just to share some thought, we may see the reporting from odoo.
It is quite flexible to do aggregate dan data analysis.

A post was split to a new topic: How to use multiple sequence