Maikel Linke
b19456535d
Isolate report rendering in separate child process
...
Sidekiq doesn't have any features to limit memory usage or execution
time. We need a separate process for this. Forking avoids the boot time
of a fresh process and copy-on-write ensures minimal memory overheads.
2023-01-18 23:12:26 +00:00
Maikel Linke
a177f4c066
Add feature to render reports in the background
...
This is supposed to lower the memory footprint of all Puma workers. The
reports code will occupy needed memory in one Sidekiq worker instead of
in several Puma processes.
The current code doesn't limit the execution time yet. We either need a
way to terminate the report rendering after a while or send an email
with a link to access a rendered report.
2023-01-18 23:12:26 +00:00
Maikel Linke
19c4596b9e
Untie report from request object
...
We want simple report arguments to store it as background job.
2023-01-18 23:12:26 +00:00
Maikel Linke
0c769706aa
Split method for easier reading
2023-01-18 23:12:26 +00:00
Maikel Linke
65843fbd68
Render on-screen report as HTML in renderer
...
So it can be treated like any other format.
2023-01-18 23:12:26 +00:00
Maikel Linke
22a086ebc1
Remove report dependency on report controller
...
The ReportsController was referencing the report and the report was
referencing the controller. It's unlikely that this circular dependency
created a memory leak but it's generally a bad design. And we need to
make the reporting independent of the controller to isolate it in a
background job.
2023-01-05 15:06:41 +11:00
Mohamed ABDELLANI
e25f4b1daa
integrate ReportRenderingOptions in the View/Controller
2022-11-25 09:10:53 +01:00
Jean-Baptiste Bellet
e2441cdcf6
Use the report type or subtype as the title
2022-10-24 11:12:22 +02:00
Jean-Baptiste Bellet
edc667a336
By default, some columns are hidden.
2022-10-24 11:12:22 +02:00
Jean-Baptiste Bellet
02787e668f
Remove report_inverse_columns_logic feature toggle
...
Co-Authored-By: Maikel <maikel@email.org.au >
2022-10-24 11:12:22 +02:00
Jean-Baptiste Bellet
16babf8250
Don't modify params object, but use an intermediate variable
...
`@params_fields_to_show`
2022-06-13 14:39:12 +02:00
Jean-Baptiste Bellet
78c2f76a3f
Introduce FeatureToggle for columns logic
...
relative to a46416a98
2022-05-31 15:57:39 +02:00
Jean-Baptiste Bellet
a46416a98e
Change UX to transform from fields_to_hide to fields_to_show
...
Fill `params[:fields_to_show]` with its default value
2022-05-30 15:34:08 +02:00
Sebastian Castro
0218f75f34
Packing Report: hide by default phone and price column to avoid breaking changes
2022-05-12 16:54:14 +02:00
Sebastian Castro
767afe1fba
Reports Renderer: whitelist report formats
2022-05-12 16:54:14 +02:00
Sebastian Castro
287e8f5845
Reports Refactor 3
...
Easily group and create header and summary row
Auto format cells when appropriate type (boolean, dates) and render_format (neither csv nor json)
2022-05-12 16:54:13 +02:00
Sebastian Castro
452a3fa933
Reports Refactor 2: Merge Spree::reports into Admin::Reports
2022-05-12 16:54:13 +02:00
Sebastian Castro
288a35f062
Reports Refactor 2: New templates abstract classes
2022-05-12 16:54:13 +02:00
Sebastian Castro
213c0dd060
Packing Report: add price and reorder columns
...
Adds price column
last_name column first because it's used for ordering
2022-05-12 16:54:12 +02:00
Sebastian Castro
d53d38906a
Packing Report: Refactor view to be reusable by other reports
...
For now this view is used only in the context of packing, but later we would move all existing rpeort to use same view
2022-05-12 16:54:12 +02:00
Matt-Yorkley
924f6568d6
Replace data loading with new Reports::QueryInterface
2021-11-04 14:55:23 +00:00
Matt-Yorkley
817f0942dd
Pull in reports POC work replacing Packing reports
2021-11-04 14:55:23 +00:00