Sha256: 507416c7df3236760a2fda8383af1bdfc60dfbd7890a5093464c8e814711ea53

Contents?: true

Size: 1.15 KB

Versions: 4

Compression:

Stored size: 1.15 KB

Contents

# frozen_string_literal: true

class Spree::Admin::PartsController < Spree::Admin::BaseController
  before_action :find_product

  def index
    @parts = @product.parts
  end

  def remove
    @part = Spree::Variant.find(params[:id])
    @product.remove_part(@part)
    render 'spree/admin/parts/update_parts_table'
  end

  def set_count
    @part = Spree::Variant.find(params[:id])
    @product.set_part_count(@part, params[:count].to_i)
    render 'spree/admin/parts/update_parts_table'
  end

  def available
    if params[:q].blank?
      @available_products = []
    else
      query = "%#{params[:q]}%"
      @available_products = Spree::Product.search_can_be_part(query).distinct
    end
    respond_to do |format|
      format.html { render layout: false }
      format.js { render layout: false }
    end
  end

  def create
    @part = Spree::Variant.find(params[:part_id])
    qty = params[:part_count].to_i
    @product.add_part(@part, qty) if qty > 0
    render 'spree/admin/parts/update_parts_table'
  end

  private

  def find_product
    @product = Spree::Product.find_by(slug: params[:product_id])
  end

  def model_class
    Spree::AssembliesPart
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
solidus_product_assembly-1.4.0 app/controllers/spree/admin/parts_controller.rb
solidus_product_assembly-1.3.0 app/controllers/spree/admin/parts_controller.rb
solidus_product_assembly-1.2.0 app/controllers/spree/admin/parts_controller.rb
solidus_product_assembly-1.1.0 app/controllers/spree/admin/parts_controller.rb