Commit Graph

188 Commits

Author SHA1 Message Date
Gaetan Craig-Riou
b7f969eed9 Move the inventory feature check to ScopeVariantToHub
Per review, the check is done on the same enterprise as the one use to
initialize ScopeVariantToHub. So it makes sense to move the actual
feature check to ScopeVariantToHub#scope
2025-07-09 13:43:12 +10:00
Gaetan Craig-Riou
6937a133ae Move inventory enabled check to OpenFoodNetwork::ScopeVariantToHub 2025-07-09 11:35:26 +10:00
Gaetan Craig-Riou
29a24b7305 Scope variant to hub only when inventory enabled 2025-07-09 11:35:26 +10:00
Carlos Chitty
00aa60c8a3 Correct Style/ReturnNilInPredicateMethodDefinition rubocop offenses
Explicitly return false instead of nil
2025-06-04 10:25:50 -04:00
cyrillefr
1d24674386 Fixes some Rails InverseOf offenses 2025-03-25 18:46:00 +01:00
Filipe
3c1dd10219 Merge pull request #13047 from mkllnk/spree-roles
Clarify that our only user role is "admin" and simplify code
2025-01-16 18:06:49 -06:00
Maikel Linke
49ec9a3136 Style Rails/WhereRange 2025-01-10 08:43:58 +11:00
Maikel Linke
54f83b45c8 Replace has_spree_role? with simpler admin?
We have only one role, so let's get rid of the unneeded method.

Now we are in a better place to get rid of Spree::Role and replace it
with a simple boolean.
2024-12-19 09:19:01 +11:00
Maikel
7f09044ae1 Merge pull request #12755 from johansenja/optimise-shops-page6
Optimise shops page: Enable injected enterprise data to be scoped to specific enterprise ids
2024-08-23 09:26:22 +10:00
wandji20
b6bfb4e866 Refactor order cycle same_dates method 2024-08-22 22:21:17 +01:00
wandji20
de063fecb1 Move same_datetime_value method to OrderCycle model [OFN-12775] 2024-08-22 22:17:12 +01:00
Joseph Johansen
b73e529bfc Scope injected enterprise properties to specific enterprises 2024-08-22 17:41:00 +02:00
Konrad
1e05811917 Merge pull request #12745 from johansenja/optimise-shops-page5
Improve effiency of OrderCycle.earliest_closing_times
2024-08-18 14:40:49 +02:00
wandji20
ea238829a8 Revert front end validation and implement backend validation for changes in datetime order cycle values [OFN-11613] 2024-08-12 09:05:48 +01:00
Joseph Johansen
a2f4df191a Improve effiency of OrderCycle.earliest_closing_times 2024-08-06 16:12:13 +01:00
Maikel Linke
135128cf41 Remove obsolete Enterprise#next_collection_at
This was actually shown in one place and represents a user-facing
change. But you weren't able to edit the field which means that only
very old enterprises would have had this field set and were not able to
change it anymore.

I searched au-prod and found the following values in the database:

- "Friday 31st January"
- "From 4pm, Monday 30 September"
- "From 5pm-7pm Monday"
- "Saturday 27 April 12noon"
- "January 31st/February 1st"
- "Saturday 1st February"

They seem specific to a certain order cycle and have no value as
fallback any more. Seems safe to remove.
2024-05-16 07:57:02 +10:00
cyrillefr
9ae064a24f Fix RedundantPresenceValidationOnBelongs on some files
- presence: true is redundant since Rails 5.0 BUT applies
   with new default config of
   belongs_to_required_by_default to true
   Lots of files with belongs_to_required_by_default = false
   (backward compatibility)
   So: deleting this setting implies to adding optional: true
 - added 'NOT NULL' constraints so model constraints match
   with contraints on DB tables.
 - updated the todo
2024-04-22 17:36:47 +02:00
cyrillefr
404fcf1f72 Fix FixRailsWhereEquals
- fixes offenses caused by RuboCop::Cop::Rails::WhereEquals cop
2024-04-09 10:44:02 +02:00
Feruz Oripov
9d919938f3 Group Order && OrderCycle related services and specs 2024-03-16 19:07:08 +05:00
Neal Chambers
b76fb10d46 Fix Rails/HasManyOrHasOneDependent with Destroy 2023-10-06 10:58:49 +09:00
Maikel Linke
8ef6966891 Declare old belongs_to default on remaining models
It would take ages to go through all files now and assess all belongs_to
associations. So I just declare the old default and then we can move on
and apply the new default for the application while these classes still
use the old one. All new models will then use the new default which is
the goal of this excercise and we can refactor old classes when we touch
them anyway.
2023-08-11 10:14:43 +10:00
David Cook
3d81a6e280 Prevent creating duplicate webhook notifications [migration]
Using the clever concurrency testing borrowed from SubscriptionPlacementJob, but I thought a shorter pause time (just 100ms) would be sufficient.

I considered doing this with a new 'state' field (upcoming/open/close), but decided to keep it simple.
2023-03-07 15:38:50 +11:00
Cillian O'Ruanaidh
2c14aecf4f Extract a OrderCycleClone service
Before it was giving a Rubocop error, probably not a bad idea anyway.
2022-10-21 17:21:31 +01:00
Cillian O'Ruanaidh
4e6d64c0a1 Let people choose which payment methods are available to customers on order cycles 2022-10-21 17:21:31 +01:00
Cillian O'Ruanaidh
db92e9d91c Fix error from OrderCycle#distributor_shipping methods return ActiveRecord::Relation sometimes and Array other times
Now it will return ActiveRecord::Relation consistently.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
5207dbf8c6 OrderCycle#distributor_shipping_methods should return all attachable ones by default per distributor, not per all distributors 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
a53a3259a8 Connect DistributorShippingMethods to OrderCycles instead of Spree::ShippingMethods
Before if a shipping method was shared between multiple distributors it could only be disabled/enabled on that order cycle for all the distributors which have that shipping method e.g. you couldn't select that shipping method for one distributor but disable it for another.
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
80b7a5d39a Remove OrderCycleShippingMethod model and use a :has_and_belongs_to_many association instead
Before the OrderCycleShippingMethod had a validation which checked the shipping method belonged to the order cycle distributor. Instead of this validation this just ignores shipping methods which don't belong to one of the order cycle's distributors when they are being attached in the OrderCycleForm service. This pattern is already being used in the OrderCycleForm service for ignoring Schedules that the person doesn't own.

Co-authored-by: Maikel <maikel@email.org.au>
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
541a340dcf If an OrderCycle or Spree::ShippingMethod is destroyed then remove it's associated OrderCycleShippingMethod records too 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
593da4996f A shop won't be shown as open if it doesn't have useable shipping method so these shipping method validations are really necessary 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
ed13ee6cbc Fix association alignment in OrderCycle 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
f4a4f7c9ff Remove validations checking order cycle has shipping methods
Instead we will make sure the order cycle is not available on the shopfront if it is doesn't have valid shipping methods. This will preven the issue where if one distributor deletes their shipping method, we don't want to invalidate the order cycle for all other distributors.

Co-authored-by: Maikel <maikel@email.org.au>
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
67d4c38550 Rename :preferred_shipping_methods to :selected_shipping_methods on OrderCycle
It's a clearer name because 'preferred' implies there could be other unpreferred shipping methods available as well.

Co-authored-by: Maikel <maikel@email.org.au>
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
fc4f951a1a Only require OrderCycleShippingMethod records if people want to override the default shipping methods
It makes things much simpler if we return all shipping methods by default without needing OrderCycleShippingMethod records to be added to the database.

Co-authored-by: Maikel <maikel@email.org.au>
2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
855ec1a708 Add new 'Checkout options' step to the edit order cycle form so people can attach shipping methods 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
ca97a7f52d Add :shipping_methods association to OrderCyle and validations 2022-09-30 13:13:39 +01:00
Cillian O'Ruanaidh
9b5f743fa5 Extract out a OrderCycle#simple? method so it can be used in models 2022-09-30 13:13:39 +01:00
Jean-Baptiste Bellet
771f7b0393 Delete coordinators_fees linked to an order_cycle when it is destroyed 2022-03-02 11:00:04 +01:00
Matt-Yorkley
00fa84e3b5 Sync when switching from nil dates to open 2022-02-16 21:45:43 +00:00
Matt-Yorkley
5913720c85 Sync for both open and upcoming OCs when switching from closed 2022-02-16 18:33:09 +00:00
Matt-Yorkley
4592827261 Sync OC subscriptions if transitioning from closed to open 2022-02-16 13:03:27 +00:00
Matt-Yorkley
4260422ea7 Remove a couple of unnecessary memory assignments 2022-02-16 12:55:19 +00:00
Matt-Yorkley
d4488fdb3f Return early if OC is closed 2022-02-16 12:53:22 +00:00
Matt-Yorkley
8c8b9d1b23 Sync subscriptions on newly-cloned order cycles 2022-02-16 10:44:22 +00:00
Nihal M. Kelanthodika
6293e927bc Keep linked schedule when cloning OC 2022-02-02 19:13:48 +05:30
Matt-Yorkley
9be37b0aaa Reset flags when cloning an OC 2022-01-12 11:44:21 +00:00
Matt-Yorkley
54e1a8807a Use mails_sent flag for tracking mails 2022-01-12 11:44:21 +00:00
Sebastian Castro
708d40ac67 reset_processed_at adds guard clause 2021-12-23 20:41:49 +01:00
Sebastian Castro
ed64b6176f OC will renotify automatically if closing date change 2021-12-23 20:41:49 +01:00
Matt-Yorkley
e78cea457c Add :unprocessed scope to OrderCycle 2021-12-23 20:41:42 +01:00