From e0b9d249e908b20c616f0671456c4759f4ba7106 Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 9 May 2024 09:12:40 +0100 Subject: [PATCH] Deduplicate filter views --- .../lettings_logs_filters_controller.rb | 3 +- app/controllers/organisations_controller.rb | 2 +- .../sales_logs_filters_controller.rb | 3 +- .../assigned_to.html.erb | 4 +-- .../lettings_log_filters/owned_by.html.erb | 30 ---------------- .../lettings_log_filters/status.html.erb | 20 ----------- .../managed_by.html.erb | 4 +-- .../needstype.html.erb | 4 +-- .../{sales_log_filters => }/owned_by.html.erb | 4 +-- .../sales_log_filters/assigned_to.html.erb | 32 ----------------- .../sales_log_filters/managed_by.html.erb | 30 ---------------- .../filters/sales_log_filters/years.html.erb | 36 ------------------- .../{sales_log_filters => }/status.html.erb | 4 +-- .../{lettings_log_filters => }/years.html.erb | 4 +-- config/routes.rb | 4 +-- .../requests/lettings_logs_controller_spec.rb | 2 +- 16 files changed, 20 insertions(+), 166 deletions(-) rename app/views/filters/{lettings_log_filters => }/assigned_to.html.erb (77%) delete mode 100644 app/views/filters/lettings_log_filters/owned_by.html.erb delete mode 100644 app/views/filters/lettings_log_filters/status.html.erb rename app/views/filters/{lettings_log_filters => }/managed_by.html.erb (74%) rename app/views/filters/{lettings_log_filters => }/needstype.html.erb (68%) rename app/views/filters/{sales_log_filters => }/owned_by.html.erb (74%) delete mode 100644 app/views/filters/sales_log_filters/assigned_to.html.erb delete mode 100644 app/views/filters/sales_log_filters/managed_by.html.erb delete mode 100644 app/views/filters/sales_log_filters/years.html.erb rename app/views/filters/{sales_log_filters => }/status.html.erb (65%) rename app/views/filters/{lettings_log_filters => }/years.html.erb (83%) diff --git a/app/controllers/lettings_logs_filters_controller.rb b/app/controllers/lettings_logs_filters_controller.rb index 12496b733..c7919f15e 100644 --- a/app/controllers/lettings_logs_filters_controller.rb +++ b/app/controllers/lettings_logs_filters_controller.rb @@ -5,7 +5,8 @@ class LettingsLogsFiltersController < ApplicationController %w[years status needstype assigned_to owned_by managed_by].each do |filter| define_method(filter) do @filter_type = "lettings_logs" - render "filters/lettings_log_filters/#{filter}" + @filter = filter + render "filters/#{filter}" end end diff --git a/app/controllers/organisations_controller.rb b/app/controllers/organisations_controller.rb index 9e7f5ce6a..7dc4300f9 100644 --- a/app/controllers/organisations_controller.rb +++ b/app/controllers/organisations_controller.rb @@ -188,7 +188,7 @@ class OrganisationsController < ApplicationController unpaginated_filtered_logs = filter_manager.filtered_logs(organisation_logs, search_term, session_filters) codes_only = params.require(:codes_only) == "true" - render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: sales_logs_email_csv_organisation_path, codes_only:, session_filters:, filter_type: "lettings_logs" } + render "logs/download_csv", locals: { search_term:, count: unpaginated_filtered_logs.size, post_path: sales_logs_email_csv_organisation_path, codes_only:, session_filters:, filter_type: "sales_logs" } end def email_sales_csv diff --git a/app/controllers/sales_logs_filters_controller.rb b/app/controllers/sales_logs_filters_controller.rb index b2b65bb1a..959325231 100644 --- a/app/controllers/sales_logs_filters_controller.rb +++ b/app/controllers/sales_logs_filters_controller.rb @@ -5,7 +5,8 @@ class SalesLogsFiltersController < ApplicationController %w[years status assigned_to owned_by managed_by].each do |filter| define_method(filter) do @filter_type = "sales_logs" - render "filters/sales_log_filters/#{filter}" + @filter = filter + render "filters/#{filter}" end end diff --git a/app/views/filters/lettings_log_filters/assigned_to.html.erb b/app/views/filters/assigned_to.html.erb similarity index 77% rename from app/views/filters/lettings_log_filters/assigned_to.html.erb rename to app/views/filters/assigned_to.html.erb index bbd2ce15d..35b91cc6b 100644 --- a/app/views/filters/lettings_log_filters/assigned_to.html.erb +++ b/app/views/filters/assigned_to.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_assigned_to_lettings_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <%= render partial: "filters/radio_filter", locals: { f:, @@ -26,6 +26,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_lettings_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> + <%= govuk_button_link_to "Cancel", send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %>
<% end %> diff --git a/app/views/filters/lettings_log_filters/owned_by.html.erb b/app/views/filters/lettings_log_filters/owned_by.html.erb deleted file mode 100644 index d4dea76d3..000000000 --- a/app/views/filters/lettings_log_filters/owned_by.html.erb +++ /dev/null @@ -1,30 +0,0 @@ -<%= form_with html: { method: :get }, url: filters_update_owned_by_lettings_logs_path do |f| %> - <%= render partial: "filters/radio_filter", locals: { - f:, - options: { - "all": { label: "Any owning organisation" }, - "specific_org": { - label: "Specific owning organisation", - conditional_filter: { - type: "select", - label: "Owning Organisation", - category: "owning_organisation", - options: owning_organisation_filter_options(current_user), - }, - }, - }, - label: "Owned by", - category: "owning_organisation_select", - size: "l", - } %> - - <% if request.params["search"].present? %> - <%= f.hidden_field :search, value: request.params["search"] %> - <% end %> - <%= f.hidden_field :codes_only, value: request.params["codes_only"] %> - -
- <%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_lettings_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> -
-<% end %> diff --git a/app/views/filters/lettings_log_filters/status.html.erb b/app/views/filters/lettings_log_filters/status.html.erb deleted file mode 100644 index a09342369..000000000 --- a/app/views/filters/lettings_log_filters/status.html.erb +++ /dev/null @@ -1,20 +0,0 @@ -<%= form_with html: { method: :get }, url: filters_update_status_lettings_logs_path do |f| %> - <%= render partial: "filters/checkbox_filter", - locals: { - f:, - options: status_filters, - label: "Status", - category: "status", - size: "l", - } %> - - <% if request.params["search"].present? %> - <%= f.hidden_field :search, value: request.params["search"] %> - <% end %> - <%= f.hidden_field :codes_only, value: request.params["codes_only"] %> - -
- <%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_lettings_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> -
-<% end %> diff --git a/app/views/filters/lettings_log_filters/managed_by.html.erb b/app/views/filters/managed_by.html.erb similarity index 74% rename from app/views/filters/lettings_log_filters/managed_by.html.erb rename to app/views/filters/managed_by.html.erb index 43f87f655..b5fbe8272 100644 --- a/app/views/filters/lettings_log_filters/managed_by.html.erb +++ b/app/views/filters/managed_by.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_managed_by_lettings_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <%= render partial: "filters/radio_filter", locals: { f:, options: { @@ -25,6 +25,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_lettings_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> + <%= govuk_button_link_to "Cancel", send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %>
<% end %> diff --git a/app/views/filters/lettings_log_filters/needstype.html.erb b/app/views/filters/needstype.html.erb similarity index 68% rename from app/views/filters/lettings_log_filters/needstype.html.erb rename to app/views/filters/needstype.html.erb index fcbb7e8e6..fe098f75b 100644 --- a/app/views/filters/lettings_log_filters/needstype.html.erb +++ b/app/views/filters/needstype.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_needstype_lettings_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <%= render partial: "filters/checkbox_filter", locals: { f:, @@ -15,6 +15,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_lettings_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> + <%= govuk_button_link_to "Cancel", send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %>
<% end %> diff --git a/app/views/filters/sales_log_filters/owned_by.html.erb b/app/views/filters/owned_by.html.erb similarity index 74% rename from app/views/filters/sales_log_filters/owned_by.html.erb rename to app/views/filters/owned_by.html.erb index 0481fcc7c..c18bd9e60 100644 --- a/app/views/filters/sales_log_filters/owned_by.html.erb +++ b/app/views/filters/owned_by.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_owned_by_sales_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <%= render partial: "filters/radio_filter", locals: { f:, options: { @@ -25,6 +25,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_sales_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> + <%= govuk_button_link_to "Cancel", send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %>
<% end %> diff --git a/app/views/filters/sales_log_filters/assigned_to.html.erb b/app/views/filters/sales_log_filters/assigned_to.html.erb deleted file mode 100644 index 569f6fa59..000000000 --- a/app/views/filters/sales_log_filters/assigned_to.html.erb +++ /dev/null @@ -1,32 +0,0 @@ -<%= form_with html: { method: :get }, url: filters_update_assigned_to_sales_logs_path do |f| %> - <%= render partial: "filters/radio_filter", - locals: { - f:, - options: { - "all": { label: "Any user" }, - "you": { label: "You" }, - "specific_user": { - label: "Specific user", - conditional_filter: { - type: "select", - label: "User", - category: "user", - options: assigned_to_filter_options(current_user), - }, - }, - }, - label: "Assigned to", - category: "assigned_to", - size: "l", - } %> - - <% if request.params["search"].present? %> - <%= f.hidden_field :search, value: request.params["search"] %> - <% end %> - <%= f.hidden_field :codes_only, value: request.params["codes_only"] %> - -
- <%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_sales_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> -
-<% end %> diff --git a/app/views/filters/sales_log_filters/managed_by.html.erb b/app/views/filters/sales_log_filters/managed_by.html.erb deleted file mode 100644 index d4c29a429..000000000 --- a/app/views/filters/sales_log_filters/managed_by.html.erb +++ /dev/null @@ -1,30 +0,0 @@ -<%= form_with html: { method: :get }, url: filters_update_manaed_by_sales_logs_path do |f| %> - <%= render partial: "filters/radio_filter", locals: { - f:, - options: { - "all": { label: "Any managing organisation" }, - "specific_org": { - label: "Specific managing organisation", - conditional_filter: { - type: "select", - label: "Reported by", - category: "managing_organisation", - options: managing_organisation_filter_options(current_user), - }, - }, - }, - label: "Reported by", - category: "managing_organisation_select", - size: "l", - } %> - - <% if request.params["search"].present? %> - <%= f.hidden_field :search, value: request.params["search"] %> - <% end %> - <%= f.hidden_field :codes_only, value: request.params["codes_only"] %> - -
- <%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_sales_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> -
-<% end %> diff --git a/app/views/filters/sales_log_filters/years.html.erb b/app/views/filters/sales_log_filters/years.html.erb deleted file mode 100644 index 2f1e339b8..000000000 --- a/app/views/filters/sales_log_filters/years.html.erb +++ /dev/null @@ -1,36 +0,0 @@ -<%= form_with html: { method: :get }, url: filters_update_years_sales_logs_path do |f| %> <% if params["error"].present? %> -
-
-

- There is a problem -

- -
-
- <% end %> - - <%= render partial: "filters/radio_filter", - locals: { - f:, - options: collection_year_radio_options, - label: "Which financial year do you want to download data for?", - category: "years", - size: "l", - } %> - - <% if request.params["search"].present? %> - <%= f.hidden_field :search, value: request.params["search"] %> - <% end %> - <%= f.hidden_field :codes_only, value: request.params["codes_only"] %> - -
- <%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", sales_logs_path, secondary: true %> -
-<% end %> diff --git a/app/views/filters/sales_log_filters/status.html.erb b/app/views/filters/status.html.erb similarity index 65% rename from app/views/filters/sales_log_filters/status.html.erb rename to app/views/filters/status.html.erb index 476df83b1..bb26363ed 100644 --- a/app/views/filters/sales_log_filters/status.html.erb +++ b/app/views/filters/status.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_status_sales_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <%= render partial: "filters/checkbox_filter", locals: { f:, @@ -15,6 +15,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", csv_download_sales_logs_path(search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %> + <%= govuk_button_link_to "Cancel", send("csv_download_#{@filter_type}_path", search: request.params["search"], codes_only: request.params["codes_only"]), secondary: true %>
<% end %> diff --git a/app/views/filters/lettings_log_filters/years.html.erb b/app/views/filters/years.html.erb similarity index 83% rename from app/views/filters/lettings_log_filters/years.html.erb rename to app/views/filters/years.html.erb index d82f0f237..dc13c16bf 100644 --- a/app/views/filters/lettings_log_filters/years.html.erb +++ b/app/views/filters/years.html.erb @@ -1,4 +1,4 @@ -<%= form_with html: { method: :get }, url: filters_update_years_lettings_logs_path do |f| %> +<%= form_with html: { method: :get }, url: send("filters_update_#{@filter}_#{@filter_type}_path") do |f| %> <% if params["error"].present? %>
@@ -32,6 +32,6 @@
<%= f.govuk_submit "Save changes" %> - <%= govuk_button_link_to "Cancel", lettings_logs_path, secondary: true %> + <%= govuk_button_link_to "Cancel", send("#{@filter_type}_path"), secondary: true %>
<% end %> diff --git a/config/routes.rb b/config/routes.rb index 99d41e809..fb2769b8d 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -216,7 +216,7 @@ Rails.application.routes.draw do %w[years status needstype assigned-to owned-by managed-by].each do |filter| get "filters/#{filter}", to: "lettings_logs_filters##{filter.underscore}" - get "filters/update_#{filter}", to: "lettings_logs_filters#update_#{filter.underscore}" + get "filters/update-#{filter}", to: "lettings_logs_filters#update_#{filter.underscore}" end resources :bulk_upload_lettings_logs, path: "bulk-upload-logs", only: %i[show update] do @@ -286,7 +286,7 @@ Rails.application.routes.draw do %w[years status assigned-to owned-by managed-by].each do |filter| get "filters/#{filter}", to: "sales_logs_filters##{filter.underscore}" - get "filters/update_#{filter}", to: "sales_logs_filters#update_#{filter.underscore}" + get "filters/update-#{filter}", to: "sales_logs_filters#update_#{filter.underscore}" end resources :bulk_upload_sales_logs, path: "bulk-upload-logs" do diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index e6746fe1f..96d39ab22 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -983,7 +983,7 @@ RSpec.describe LettingsLogsController, type: :request do end end - xcontext "when on the second page" do + context "when on the second page" do before do get "/lettings-logs?page=2", headers:, params: {} end