Commit Graph

14416 Commits

Author SHA1 Message Date
Konrad
4a66b62fa7 Merge pull request #10825 from jibees/10824-remove-feature-toggle-on-white-label-feature
Activate white label feature
2023-05-16 13:50:58 +02:00
Maikel
10c918be75 Merge pull request #10732 from mkllnk/report-email
[Hidden] Notify about completed report with download link via email
2023-05-16 10:25:23 +10:00
Maikel
a979f7c8df Merge pull request #10587 from rioug/10432-vouchers-bare-minimum-checkout
10432 vouchers bare minimum checkout
2023-05-16 09:19:06 +10:00
Maikel Linke
08aff56e20 Expire report files after 1 week, maximum for S3
We didn't see this in tests which use disk storage. But AWS S3 has a
maximum of one week for URL expiry.
2023-05-15 19:41:45 +02:00
Maikel Linke
299bc253a4 Expire report download links in a month, not 5mins 2023-05-15 19:41:45 +02:00
Maikel Linke
860fe85af9 Add report download link to email notification
I added a system spec to verify that the download link can be generated
within the mailer in a background job. ActiveStorage is a bit particular
when it comes to genererating URLs and depending on the situation it may
generate a redirect URL, a proxy URL or link directly to the storage.
But we want a redirect URL here.
2023-05-15 19:41:45 +02:00
Maikel Linke
cf5a8a26ce Notify only about slow reports
It would be annoying to get an email for reports which display on the
screen immediately.
2023-05-15 19:41:45 +02:00
Maikel Linke
1f4af7f990 Send (dummy) email when background report is done
I'll fill it out in future commits.
2023-05-15 19:41:45 +02:00
Jean-Baptiste Bellet
aaa9bac4dd Remove white_label feature toggle
White label is now activated for everyone.

+ add mock for `spec/controllers/spree/orders_controller_spec.rb`
2023-05-15 17:10:50 +02:00
jibees
1e05bc5b5c Merge pull request #10789 from jibees/10770-bom-cancelling-an-order-always-restocks-the-line-item
BOM: when deleting the last item of order that leads to order cancellation, take into account the restock items checkbox
2023-05-15 09:50:13 +02:00
Gaetan Craig-Riou
5eb6097101 Fix error handling when creating a voucher adjustment
I wrongly assumed that `voucher.create_adjustment` would return nil
if failing to create an adjustment. I will in fact return an
adjustment object with errors.
2023-05-15 13:42:40 +10:00
Gaetan Craig-Riou
d29119f5c5 Remove non need belongs_to associations from Adjustments
It turns out the "tax_rate" association isn't used and wasn't working.
Same for the "voucher" one, which I added to be consistent with existing
code.
Both of these weren't caught by the specs because you can't test associations
with a custome relation with 'shouda-matchers' see: https://github.com/thoughtbot/shoulda-matchers/issues/981
2023-05-15 13:42:40 +10:00
Matt-Yorkley
9b1725d39f Fix model name in adjustment association 2023-05-15 13:42:40 +10:00
Gaetan Craig-Riou
b80274f49d Per review comment, Use named value on voucher submit button to distinguish between submission types
The voucher apply button is inside form that has another a submit button,
it leads to a weird situation where either one will submit the whole
payments page form. Adding a named parameter on the voucher apply button
means we can distinguish between the two by checking for the presence
of params[:apply_voucher].
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
92bcd937dc Per review comment, remove form object from the partial
This partial is rendered inside another <form> element, nested form
don't work.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
0a249d7722 Fix ButtonEnableToggleController to remove hacky button disable
As per review comment, use data-disable-with="false" do prevent Rails
from automatically enabling the "Apply" button. We can then remove
the timeout hack.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
236f6926d9 Cleaning up left over TODOs 2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
aa526a639c Checkout payment page, enable voucher "apply" button when code entered
The "apply" button is disabled by default. If left enabled, a customer
could try to apply an empty voucher, which results in system trying
to move to the order summary step, an unexpected behaviour!
We only enable the button when something is entered in the input.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
e5f14177d3 Fix rubocop warning
I guess the new cops are effective :)
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
815dcbcefe Fix translations 2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
a2e1e6ca33 Review comment, use dig to access voucher_code param 2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
17e32a89f8 Add VoucherAdjustmentsService to handle calculation
Refactor Voucher to move voucher adjustments calculation
to VoucherAdjustmentsService
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
56e981d300 Refactor Voucher to get rid of CalculatedAdjustments
Voucher adjustment have complicated calculation that prevent us from
using Spree::Calculator, and we need to override CalculatedAdjustments
method, so no point using it.
We still keep the same methods to stay as consitent as possible in
regards to adjustments
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
3f37554ff9 Add VoucherAdjustmentsController and specs
Refactor split checkout to use the new controller. But unfortunately
we can't have nested form, so adding a voucher is still handled by
SplitCheckoutController.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
43ab881181 Rename order association to voucher_adjustments
The name vouchers is a bit confusing as the order is linked to a
voucher adjutment and not the actual voucher
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
fe9b94a80e Fix cart disappearing bug after adding a voucher
The split checkout page uses `mrujs` and `CableCar` to set the form as
a remote one and perform `CableCar` operation if any : https://mrujs.com/how-tos/integrate-cablecar
The previous solution broke the cart handled by angularJS, it looks like
`morpdom` (https://mrujs.com/references/remote-forms-and-links Navigation Adapter section )
was doing something that angularJS didn't like when redirecting to
the current page.
With the power of `CableCar`, we now replace the #voucher-section on the
split checkout page instead of doing a redirect.
2023-05-15 13:42:39 +10:00
Gaetan Craig-Riou
94294fa161 Voucher adjustment, add ordering by created_at
It gives us a consistent result when calling #vouchers
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
bb9d835bd8 Fix rubocop warning 2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
87cc525d27 Refactor #vouchers
Use "has_many" instead of a method
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
4b5d6d7eac Fix voucher adjustments association
Add missing, "inverse_of" and "dependent" options. Use :nullify as
for "dependent" because we would want to keep the adjustments on order
even if the voucher is deleted.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
5064bf5383 Allow voucher adjustment to be created with an amount of 0
Although unlikely, we should still be able to create a voucher amount
with. This can happen if the order.total is for instance.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
9789911523 Rework how voucher are applied to an order and handle tax calculation
At the time when we can apply a voucher to an order (payment step) we
don't have any data on possible taxes and payment fees. These are
calculated when we move to the summary step. So voucher are applied in
two step:
- create an "open" voucher adjustment on the order when a customer enters
a voucher code.
- when we move to the summary step, recalulate the amount and
possible tax for the voucher adjustment, once taxes and payment fees
have been included in the order. And then close the original and update
order to reflect the changes
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
d157d91054 When voucher cover more than order total, use only amount needed
The checkout payment step will also show a warning.
The amount used is stored in the adjustment created, so we will be able
to track how much has been used down the line.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
3f609d3842 Add error message if adding a voucher fails
It's not really useful to the user but better than failing silently
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
74e0b0f6b5 Add voucher adjustment loading to CheckoutCallbacks
This is needed so the voucher is loaded properly when the "checkout"
partials are render via cable_car.
2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
74a8730f04 Highlight voucher on order summary step 2023-05-15 13:42:38 +10:00
Gaetan Craig-Riou
856386fcb0 SplitCheckoutController refactor add_voucher
Now all redirection/render_error happen in #update, it makes it
easier to understand.
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
e487ed0532 Add link to remove voucher when a voucher has been applied
Improve styling to match the design
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
b6213b25e9 add acts_as_paranoid to voucher
This is so the relation
`belongs_to :originator, -> { with_deleted }, polymorphic: true`
setup in Spree::Adjustement works as expected.
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
a9d9b33f7d First take at adding a voucher to an order
Use voucher.create_adjustment to add an adjustment to the order
Currently doesn't take into account tax part
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
3ec58d8791 Add #vouchers, return an array of voucher adjustments 2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
9b680e1a92 Add CalculatedAdjustments to Voucher
Vouchers are only flat rate of 10 for now, so we add a FlatRate
calculator in a before_validation callback
2023-05-15 13:42:37 +10:00
Gaetan Craig-Riou
f7ee01b9f8 Add voucher input on checkout payment's step
Voucher input is displayed  only if the distributor has any voucher
2023-05-15 13:42:37 +10:00
Jean-Baptiste Bellet
60edb4363e Fix bad indentation (and hierarchy)
`%section` must be siblings each others

introduced by https://github.com/openfoodfoundation/openfoodnetwork/pull/10772
2023-05-12 09:30:37 +02:00
Jean-Baptiste Bellet
51d6fb81dd Fwd to request the restock_items input value when adjusting items qty 2023-05-11 22:58:44 +02:00
Jean-Baptiste Bellet
f679d8733e Pass the restock_items params to each methods and request call
+ update spec to test whether the restock item checkbox is checked or not.
2023-05-11 22:58:44 +02:00
Filipe
1bdb668cd3 Merge pull request #10769 from Matt-Yorkley/visible-line-items-query
Improve `Permissions::Order#visible_line_items` querying
2023-05-11 15:36:32 +01:00
Konrad
2836751698 Merge pull request #10805 from jibees/10717-bo-orders-changing-customer-does-not-update-customer_id
Admin, Edit customer details for an order: when changing to another customer, update `customer_id` as well
2023-05-10 19:08:57 +02:00
Matt-Yorkley
1bd9182cea Update menu cache blocks 2023-05-09 16:46:09 +01:00
Matt-Yorkley
4b707b9310 Extract locale file digest logic to a separate class and add tests 2023-05-08 14:09:00 +01:00