Improve comments to explain glitch on set_order_cycle and OrderCyclesList

This commit is contained in:
Luis Ramos
2020-02-21 12:10:01 +00:00
parent e2940eb9ff
commit 0e62dc04bd
2 changed files with 10 additions and 2 deletions

View File

@@ -37,8 +37,8 @@ class BaseController < ApplicationController
# Default to the only order cycle if there's only one
#
# Here we need to use @order_cycles.size not @order_cycles.count
# because TagRuleApplicator changes ActiveRecord::Relation @order_cycles
# and these changes are not seen if the relation is reloaded with count
# because OrderCyclesList returns a modified ActiveRecord::Relation
# and these modifications are not seen if it is reloaded with count
def set_order_cycle
return if @order_cycles.size != 1

View File

@@ -12,6 +12,14 @@ module Shop
order_cycles = OrderCycle.with_distributor(@distributor).active
.order(@distributor.preferred_shopfront_order_cycle_order)
apply_tag_rules!(order_cycles)
end
private
# order_cycles is a ActiveRecord::Relation that is modified with reject in the TagRuleApplicator
# If this relation is reloaded (for example by calling count on it), the modifications are lost
def apply_tag_rules!(order_cycles)
applicator = OpenFoodNetwork::TagRuleApplicator.new(@distributor,
"FilterOrderCycles",
@customer.andand.tag_list)