From 314fed063d38896f54ae09637948bafa6d41459d Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Thu, 9 Apr 2020 19:09:22 +0100 Subject: [PATCH] Merge property with property_decorator both in our codebase --- app/models/spree/property.rb | 23 ++++++++++++++++++++++ app/models/spree/property_decorator.rb | 27 -------------------------- 2 files changed, 23 insertions(+), 27 deletions(-) delete mode 100644 app/models/spree/property_decorator.rb diff --git a/app/models/spree/property.rb b/app/models/spree/property.rb index 514de54313..792b39e5b5 100644 --- a/app/models/spree/property.rb +++ b/app/models/spree/property.rb @@ -2,11 +2,34 @@ module Spree class Property < ActiveRecord::Base has_many :product_properties, dependent: :destroy has_many :products, through: :product_properties + has_many :producer_properties attr_accessible :name, :presentation validates :name, :presentation, presence: true scope :sorted, -> { order(:name) } + + scope :applied_by, ->(enterprise) { + select('DISTINCT spree_properties.*'). + joins(:product_properties). + where('spree_product_properties.product_id IN (?)', enterprise.supplied_product_ids) + } + + scope :ever_sold_by, ->(shop) { + joins(products: { variants: { exchanges: :order_cycle } }). + merge(Exchange.outgoing). + merge(Exchange.to_enterprise(shop)). + select('DISTINCT spree_properties.*') + } + + scope :currently_sold_by, ->(shop) { + ever_sold_by(shop). + merge(OrderCycle.active) + } + + def property + self + end end end diff --git a/app/models/spree/property_decorator.rb b/app/models/spree/property_decorator.rb deleted file mode 100644 index aeeb607af9..0000000000 --- a/app/models/spree/property_decorator.rb +++ /dev/null @@ -1,27 +0,0 @@ -module Spree - Property.class_eval do - has_many :producer_properties - - scope :applied_by, ->(enterprise) { - select('DISTINCT spree_properties.*'). - joins(:product_properties). - where('spree_product_properties.product_id IN (?)', enterprise.supplied_product_ids) - } - - scope :ever_sold_by, ->(shop) { - joins(products: { variants: { exchanges: :order_cycle } }). - merge(Exchange.outgoing). - merge(Exchange.to_enterprise(shop)). - select('DISTINCT spree_properties.*') - } - - scope :currently_sold_by, ->(shop) { - ever_sold_by(shop). - merge(OrderCycle.active) - } - - def property - self - end - end -end