From b6270c8d0cb051fb43f4b35e80d385fee3ee3edb Mon Sep 17 00:00:00 2001 From: Daniel O'Connor Date: Sun, 20 Sep 2026 15:04:14 +0930 Subject: [PATCH] Add pagination to crops#data_improvement (#4807) In `CropsController#data_improvement`, paginate `@crops` with `per_page: 50` so tabs like photos/descriptions do not render all crops at once. In `data_improvement.html.haml`, render `= will_paginate @crops`. Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> --- app/controllers/crops_controller.rb | 2 +- app/views/crops/data_improvement.html.haml | 2 ++ spec/controllers/crops_controller_spec.rb | 13 +++++++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/controllers/crops_controller.rb b/app/controllers/crops_controller.rb index 7fbd6a876..77b7b1e81 100644 --- a/app/controllers/crops_controller.rb +++ b/app/controllers/crops_controller.rb @@ -174,7 +174,7 @@ class CropsController < ApplicationController Crop.approved.where(public_food_key: [nil, '']).order(plantings_count: :desc) else Crop.none - end + end.paginate(page: params[:page], per_page: 50) end private diff --git a/app/views/crops/data_improvement.html.haml b/app/views/crops/data_improvement.html.haml index 42ea972c7..0580f1cca 100644 --- a/app/views/crops/data_improvement.html.haml +++ b/app/views/crops/data_improvement.html.haml @@ -11,3 +11,5 @@ .tab-pane.active %h2= "Crops without #{tabs[@active_tab.to_sym]}" = render 'crop_list', crops: @crops + + = will_paginate @crops diff --git a/spec/controllers/crops_controller_spec.rb b/spec/controllers/crops_controller_spec.rb index 7bac0558b..63d8ade62 100644 --- a/spec/controllers/crops_controller_spec.rb +++ b/spec/controllers/crops_controller_spec.rb @@ -28,6 +28,19 @@ describe CropsController do end end + describe "GET data_improvement" do + context 'wrangler' do + include_context 'login as wrangler' + + it 'fetches the data improvement page and paginates crops with per_page 50' do + get :data_improvement + expect(response).to be_successful + expect(response).to render_template("crops/data_improvement") + expect(assigns(:crops).per_page).to eq(50) + end + end + end + describe "GET show" do let!(:crop) { create(:crop) } let!(:member) { create(:member) }