Browse Source

add functionality to csv download filters

pull/3063/head
Samuel 1 week ago
parent
commit
a1c636bba7
  1. 4
      app/controllers/sales_logs_filters_controller.rb
  2. 7
      app/helpers/filters_helper.rb
  3. 20
      app/views/filters/salestype.html.erb
  4. 4
      config/routes.rb

4
app/controllers/sales_logs_filters_controller.rb

@ -3,7 +3,7 @@ class SalesLogsFiltersController < ApplicationController
before_action -> { sales_filter_manager.serialize_filters_to_session }, if: :current_user
before_action :authenticate_user!
%w[years status assigned_to owned_by managed_by].each do |filter|
%w[years status salestype assigned_to owned_by managed_by].each do |filter|
define_method(filter) do
@filter_type = "sales_logs"
@filter = filter
@ -18,7 +18,7 @@ class SalesLogsFiltersController < ApplicationController
end
end
%w[status assigned_to owned_by managed_by].each do |filter|
%w[status salestype assigned_to owned_by managed_by].each do |filter|
define_method("update_#{filter}") do
@filter_type = "sales_logs"

7
app/helpers/filters_helper.rb

@ -261,6 +261,7 @@ module FiltersHelper
{ id: "years", label: "Collection year", value: formatted_years_filter(session_filters) },
{ id: "status", label: "Status", value: formatted_status_filter(session_filters) },
filter_type == "lettings_logs" ? { id: "needstype", label: "Needs type", value: formatted_needstype_filter(session_filters) } : nil,
filter_type == "sales_logs" ? { id: "salestype", label: "Sales type", value: formatted_salestype_filter(session_filters) } : nil,
{ id: "assigned_to", label: "Assigned to", value: formatted_assigned_to_filter(session_filters) },
{ id: "owned_by", label: "Owned by", value: formatted_owned_by_filter(session_filters, filter_type) },
{ id: "managed_by", label: "Managed by", value: formatted_managed_by_filter(session_filters, filter_type) },
@ -337,6 +338,12 @@ private
session_filters["needstypes"].map { |needstype| needstype_filters[needstype] }.to_sentence
end
def formatted_salestype_filter(session_filters)
return unanswered_filter_value if session_filters["salestypes"].blank?
session_filters["salestypes"].map { |salestype| salestype_filters[salestype] }.to_sentence
end
def formatted_assigned_to_filter(session_filters)
return unanswered_filter_value if session_filters["assigned_to"].blank?
return "All" if session_filters["assigned_to"].include?("all")

20
app/views/filters/salestype.html.erb

@ -0,0 +1,20 @@
<%= form_with html: { method: :get }, url: update_csv_filters_url(@filter_type, @filter, @organisation_id) do |f| %>
<%= render partial: "filters/checkbox_filter",
locals: {
f:,
options: salestype_filters,
label: "Sales type",
category: "salestypes",
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"] %>
<div class="govuk-button-group">
<%= f.govuk_submit "Save changes" %>
<%= govuk_button_link_to "Cancel", cancel_csv_filters_update_url(@filter_type, request.params["search"], request.params["codes_only"], @organisation_id), secondary: true %>
</div>
<% end %>

4
config/routes.rb

@ -197,7 +197,7 @@ Rails.application.routes.draw do
get "lettings-logs/filters/#{filter}", to: "lettings_logs_filters#organisation_#{filter.underscore}"
get "lettings-logs/filters/update-#{filter}", to: "lettings_logs_filters#update_organisation_#{filter.underscore}"
end
%w[years status assigned-to owned-by managed-by].each do |filter|
%w[years status salestype assigned-to owned-by managed-by].each do |filter|
get "sales-logs/filters/#{filter}", to: "sales_logs_filters#organisation_#{filter.underscore}"
get "sales-logs/filters/update-#{filter}", to: "sales_logs_filters#update_organisation_#{filter.underscore}"
end
@ -327,7 +327,7 @@ Rails.application.routes.draw do
post "delete-logs-confirmation", to: "delete_logs#delete_sales_logs_confirmation"
delete "delete-logs", to: "delete_logs#discard_sales_logs"
%w[years status assigned-to owned-by managed-by].each do |filter|
%w[years status salestype 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}"
end

Loading…
Cancel
Save