Commit Graph

14886 Commits

Author SHA1 Message Date
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
Jean-Baptiste Bellet
7320a1714c Instead of selecting the controller, send an event handled by stripe-cards
Using a query selector to find controller in order to call method could be dangerous as the DOM can change. Using an event should be more robust.
2023-01-18 17:40:17 +01:00
Jean-Baptiste Bellet
9b4f9314bc Make a proper alignement for filtering options
I used inline style, because:
 - I didn't find any pre-existing CSS for this page
 - I think that flex is self-explaining and I think adding class (for what?) won't add any value
2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
455c11c289 Put columns selector component on left, and per_page component on right 2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
35791034cc Remove orders/_per_page_controls and use the shared one 2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
1a874d6fcf Introduce pagination for BOM page 2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
85a748af99 When selecting an OC, do not pre-fill date range with OC date range
+ update specs as well
2023-01-18 17:39:42 +01:00
Jean-Baptiste Bellet
121a4a08af On filters reseting , set dates to undefined: range is not mandatory
+ send flatpickr event to reset the component

+ update specs as well
2023-01-18 17:39:09 +01:00
Jean-Baptiste Bellet
b75b123cba Don't check date range before refreshing data: they aren't mandatory
- Creates a simple formatDates method that handle date formatting before sending it as params instead of creating scoped variable (useless)
 - Put key to `undefined` (ie. don't then the params) if no date: already handled by the backend
2023-01-18 17:39:09 +01:00
Jean-Baptiste Bellet
719025f98e Only set calculator if it's a new record (having an id)
Unless we have a ActiveRecord::NotNullViolation
```
     ActiveRecord::NotNullViolation:
       PG::NotNullViolation: ERROR:  null value in column "calculable_id" of relation "spree_calculators" violates not-null constraint
       DETAIL:  Failing row contains (9370, Calculator::None, null, Spree::ShippingMethod, 2023-01-12 15:09:44.381142, 2023-01-12 15:09:44.381142).
     # ------------------
     # --- Caused by: ---
     # PG::NotNullViolation:
     #   ERROR:  null value in column "calculable_id" of relation "spree_calculators" violates not-null constraint
     #   DETAIL:  Failing row contains (9370, Calculator::None, null, Spree::ShippingMethod, 2023-01-12 15:09:44.381142, 2023-01-12 15:09:44.381142).

```
2023-01-16 09:31:15 +01:00
Jean-Baptiste Bellet
a9097df112 Already defined via CalculatedAdjustments 2023-01-16 09:31:15 +01:00
Jean-Baptiste Bellet
7015cb30c3 Calculator 'None' is the default one for both shipping and payment method
+ update specs as well

Update shipping_method.rb
2023-01-16 09:31:15 +01:00
Maikel Linke
1e77b96c2c Simplify negated feature toggle constraint 2023-01-11 10:10:30 +00:00
Gaetan Craig-Riou
6e76bcac4a Refactor option_value_value_unit_scaled to use to_d instead of calling BigDecimal
As we are now using truncate(2) we don't need to specify the number of significant digits
2023-01-11 15:35:30 +11:00
Gaetan Craig-Riou
91af282ccc Truncate scaled value unit to maximum of two decimals
ie truncate 12.50001234 to 12.5

When using imperial, the scalling calculation rounding results in value unit
having extra decimal when converted back to imperial

+ related spec
2023-01-11 11:04:32 +11:00
Konrad
c4b89e466b Merge pull request #9804 from jibees/9420-resend-confirmation-email-in-bulk
Admin, Orders list: Resend confirmation email in bulk
2023-01-11 00:16:57 +01:00
Filipe
57aeee94f9 Merge pull request #10229 from mkllnk/report-paths
Link relative report path instead of absolute URL
2023-01-10 15:35:32 +00:00
Filipe
bd20a8c16f Merge pull request #10237 from mkllnk/report-rendering
Remove report dependency on report controller
2023-01-09 18:49:19 +00:00
Jean-Baptiste Bellet
2258af9cec Don't display "group by size" if value is actually null or empty
+ add spec
2023-01-06 14:39:39 +01:00
Jean-Baptiste Bellet
e403a2c174 Secondary button can actually be disabled 2023-01-06 14:03:40 +01:00
Jean-Baptiste Bellet
5aca76e520 OC, incoming|outgoing products, have the actions inside the table 2023-01-06 14:03:40 +01:00
Jean-Baptiste Bellet
73a2b90e1b On hovering, all the tr should be colored
This needs to be respecified with an `!important` keyword

Even if already defined in `app/webpacker/css/admin/openfoodnetwork.scss`
2023-01-06 14:03:40 +01:00
Jean-Baptiste Bellet
c7d4c4c195 Put action in the flex container for incoming|outgoing products in OC 2023-01-06 14:03:40 +01:00
Jean-Baptiste Bellet
bba1d6c725 Do not specify sizes, let the browser fix the best layout for table 2023-01-06 10:46:01 +01:00
Jean-Baptiste Bellet
52cb6d4eec Put all actions in the same flex container, aligned to right 2023-01-06 10:45:30 +01:00
Jean-Baptiste Bellet
fc6bd53720 Put some specials rules for listing_orders as generics for all tables
- `.actions` is now integrated to the table itself, with the same design
- We have to use `!important` keyword as already defined like this...
2023-01-06 10:33:27 +01: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
Jean-Baptiste Bellet
972e0b5d0b Specify color for h4. Same as others titles. 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
927c1c81e5 Border and background for a panel 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
fd87013a63 Colorize and customize tagging componenent 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
274e0d0335 Same color but with variable 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
c5f3d3fa71 Use a darker grey for disabled button 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
26684f7db5 New colors for wizard progress 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
2ccb7de004 Specify cursor: default when button is disabled 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
7c321922ad Actually, this needs to be white since the body is no more white 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
d7e3e81c8c Adjust border color when active 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
d7454ecb9f Adjust border radius when drop is above 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
4c172b5ace Adjust color and height between input type text and select 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
6529a8d98f #clear_all_filters button as a secondary one 2023-01-04 10:41:30 +01:00
Jean-Baptiste Bellet
ccfc632149 Whatever the condition, display the td
And put the `ng-if` inside the `td`, attached to a new `div`
2023-01-04 10:41:30 +01:00
Maikel Linke
da4069679c Link relative report path instead of absolute URL
You can reach a development server under localhost, 127.0.0.1, 0.0.0.0
or other names you define in your environment. The reports were using
absolute links to localhost though and therefore breaking your session
(login) while navigating.

I'm not sure why this was done though. Sebastian didn't explain this in
the commit message and it may have been accidental.
2023-01-04 15:43:12 +11:00
Jean-Baptiste Bellet
53fa2ef8d5 Change order of the Actions menu: resend, print, cancel
It's more close to the Actions menu for a specific order (ie. on page `/admin/orders/[ORDER_ID]/edit`)
2023-01-03 10:32:11 +01:00
Jean-Baptiste Bellet
ab39341192 Add permission management with cancancan 2023-01-03 10:32:11 +01:00
Jean-Baptiste Bellet
7e844ee289 Implement resend email confirmation bulk action
- Create a controller that send a reflex action with the order_ids array
2023-01-03 10:32:11 +01:00
Jean-Baptiste Bellet
bcc9d447e1 Create a reflex that handle re-send email confirmation to user 2023-01-03 10:32:11 +01:00
Jean-Baptiste Bellet
9997fe26fc Small adjustments to make it usable in admin section 2023-01-03 10:32:11 +01:00