Sha256: 198036806af7223e650764ab2bf322e4fd951a6026fd456bafcb7c99b7cac406

Contents?: true

Size: 1.78 KB

Versions: 16

Compression:

Stored size: 1.78 KB

Contents

module Gaku
  class Admin::GradingMethodSets::GradingMethodSetItemsController < Admin::BaseController

    respond_to :js,   only: %i( new create edit update destroy )

    before_action :set_grading_method_set_item, only: %i( edit update destroy )
    before_action :set_grading_methods,         only: %i( new edit )
    before_action :set_grading_method_set

    def new
      @grading_method_set_item = GradingMethodSetItem.new
      respond_with @grading_method_set_item
    end

    def sort
      params[:'grading-method-set-item'].each_with_index do |id, index|
        @grading_method_set.update_items_positions(id, index)
      end
      render nothing: true
    end

    def create
      @grading_method_set_item = @grading_method_set.items.build(grading_method_set_item_params)
      @grading_method_set_item.save
      set_count
      respond_with @grading_method_set_item
    end

    def edit
    end

    def update
      @grading_method_set_item.update(grading_method_set_item_params)
      respond_with @grading_method_set_item
    end

    def destroy
      @grading_method_set_item.destroy
      set_count
      respond_with @grading_method_set_item
    end

    private

    def set_grading_method_set_item
      @grading_method_set_item = GradingMethodSetItem.find(params[:id])
    end

    def set_grading_method_set
      @grading_method_set = GradingMethodSet.find(params[:grading_method_set_id])
    end

    def set_grading_methods
      @grading_methods = GradingMethod.all.map { |s| [s.name, s.id] }
    end

    def set_count
      @count = @grading_method_set.items.count
    end

    def grading_method_set_item_params
      params.require(:grading_method_set_item).permit(attributes)
    end

    def attributes
      %i( position grading_method_id grading_method_set_id )
    end

  end
end

Version data entries

16 entries across 16 versions & 2 rubygems

Version Path
gaku_admin-0.3.0 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.3.0.pre.4 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.3.0.pre.3 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.3.0.pre.2 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.3.0.pre.1 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.3.0.pre.0 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku-0.2.4 admin/app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.2.4 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku-0.2.3 admin/app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.2.3 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku-0.2.2 admin/app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.2.2 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku-0.2.1 admin/app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.2.1 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku-0.2.0 admin/app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb
gaku_admin-0.2.0 app/controllers/gaku/admin/grading_method_sets/grading_method_set_items_controller.rb