diff --git a/app/models/spree/payment_method_decorator.rb b/app/models/spree/payment_method_decorator.rb index 9afb7272d2..4e93abffc6 100644 --- a/app/models/spree/payment_method_decorator.rb +++ b/app/models/spree/payment_method_decorator.rb @@ -3,18 +3,15 @@ Spree::PaymentMethod.class_eval do belongs_to :distributor, :class_name => 'Enterprise' - validates_presence_of :distributor_id - - attr_accessible :distributor_id + attr_accessible :distributor_ids # -- Scopes - scope :in_distributor, lambda { |distributor| where(:distributor_id => distributor) } - scope :managed_by, lambda { |user| if user.has_spree_role?('admin') scoped else - where('distributor_id IN (?)', user.enterprises) + joins(:distributors). + where('distributors_payment_methods.distributor_id IN (?)', user.enterprises) end } diff --git a/app/overrides/spree/admin/payment_methods/_form/add_distributor_to_admin_payment_method_edit.html.haml.deface b/app/overrides/spree/admin/payment_methods/_form/add_distributor_to_admin_payment_method_edit.html.haml.deface deleted file mode 100644 index d15ecec373..0000000000 --- a/app/overrides/spree/admin/payment_methods/_form/add_distributor_to_admin_payment_method_edit.html.haml.deface +++ /dev/null @@ -1,9 +0,0 @@ -/ - insert_before '[data-hook="environment"]' - -= f.field_container :distributor do - = f.label :distributor - %br - - = collection_select(:payment_method, :distributor_id, Enterprise.is_distributor.managed_by(spree_current_user), :id, :name, {:include_blank => false}, {:class => "select2 fullwidth"}) - = f.error_message_on :distributor diff --git a/app/overrides/spree/admin/payment_methods/_form/add_distributors.html.haml.deface b/app/overrides/spree/admin/payment_methods/_form/add_distributors.html.haml.deface new file mode 100644 index 0000000000..c299c7dacf --- /dev/null +++ b/app/overrides/spree/admin/payment_methods/_form/add_distributors.html.haml.deface @@ -0,0 +1,9 @@ +/ + insert_before '[data-hook="environment"]' + += f.field_container :distributors do + = f.label :distributors + %br + - distributors = Enterprise.is_distributor.managed_by(spree_current_user) | f.object.distributors + = collection_select(:payment_method, :distributor_ids, distributors, :id, :name, {include_blank: false}, {class: "select2 fullwidth", multiple: true}) + = f.error_message_on :distributors