Sha256: 7cb3f3f7ec66b0f612f8890518d1e23e58e9c61a33978e5e57b264d7c383c2b8

Contents?: true

Size: 1022 Bytes

Versions: 5

Compression:

Stored size: 1022 Bytes

Contents

# frozen_string_literal: true

module Spree
  module Admin
    class ProductPropertiesController < ResourceController
      belongs_to 'spree/product', find_by: :slug, includes: { product_properties: :property }
      before_action :find_properties
      before_action :setup_property, only: :index, if: -> { can?(:create, model_class) }
      before_action :setup_variant_property_rules, only: :index

      private

      def find_properties
        @properties = Spree::Property.pluck(:name)
      end

      def setup_property
        @product.product_properties.build
      end

      def setup_variant_property_rules
        @option_types = @product.variant_option_values_by_option_type
        @option_value_ids = (params[:ovi] || []).reject(&:blank?).map(&:to_i)
        @variant_property_rule = @product.find_variant_property_rule(@option_value_ids) || @product.variant_property_rules.build
        @variant_property_rule.values.build if can?(:create, Spree::VariantPropertyRuleValue)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
solidus_backend-2.10.5 app/controllers/spree/admin/product_properties_controller.rb
solidus_backend-2.10.3 app/controllers/spree/admin/product_properties_controller.rb
solidus_backend-2.10.2 app/controllers/spree/admin/product_properties_controller.rb
solidus_backend-2.10.1 app/controllers/spree/admin/product_properties_controller.rb
solidus_backend-2.10.0 app/controllers/spree/admin/product_properties_controller.rb