BathHacked/energy-sparks

View on GitHub
app/controllers/admin/programme_types/activity_types_controller.rb

Summary

Maintainability
A
1 hr
Test Coverage
B
85%
module Admin
  module ProgrammeTypes
    class ActivityTypesController < AdminController
      def show
        @programme_type = ProgrammeType.find(params[:programme_type_id])

        @activity_categories_and_types = ActivityCategory.listed_with_activity_types

        @positions = @programme_type.programme_type_activity_types.inject({}) do |positions, programme_type_activity_types|
          positions[programme_type_activity_types.activity_type_id] = programme_type_activity_types.position
          positions
        end
      end

      def update
        @programme_type = ProgrammeType.find(params[:programme_type_id])

        position_attributes = params.permit(activity_types: [:position, :activity_type_id]).fetch(:activity_types) { {} }
        @programme_type.update_activity_type_positions!(position_attributes)
        redirect_to admin_programme_types_path, notice: 'Activity types updated for Programme Type'
      end
    end
  end
end