From 3c5a478feacc9bb9a8e69abd93579c70af29a207 Mon Sep 17 00:00:00 2001 From: aaronskiba Date: Tue, 29 Oct 2024 16:29:37 -0600 Subject: [PATCH] Create `paginable/research_outputs_controller.rb` This commit, along with e289fba9b0cbe4af4699455cf08adca8f597dac1 are being made to resolve https://github.com/portagenetwork/roadmap/issues/935. --- .../paginable/research_outputs_controller.rb | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 app/controllers/paginable/research_outputs_controller.rb diff --git a/app/controllers/paginable/research_outputs_controller.rb b/app/controllers/paginable/research_outputs_controller.rb new file mode 100644 index 0000000000..2155c1321f --- /dev/null +++ b/app/controllers/paginable/research_outputs_controller.rb @@ -0,0 +1,26 @@ +# frozen_string_literal: true + +module Paginable + # Controller for paginating/sorting/searching the research_outputs table + class ResearchOutputsController < ApplicationController + include Paginable + + after_action :verify_authorized + + # GET /paginable/plans/:plan_id/research_outputs + def index + @plan = Plan.find_by(id: params[:plan_id]) + + # Same @research_outputs assignment as app/controllers/research_outputs_controller.rb + @research_outputs = ResearchOutput.includes(:repositories).where(plan_id: @plan.id) + # Same authorize handling as app/controllers/research_outputs_controller.rb + authorize @research_outputs.first || ResearchOutput.new(plan_id: @plan.id) + paginable_renderise( + partial: 'index', + scope: @research_outputs, + query_params: { sort_field: 'research_outputs.title' }, + format: :json + ) + end + end +end