Skip to content

Commit d6e5bfd

Browse files
committed
View object in place.
1 parent 9b77051 commit d6e5bfd

4 files changed

Lines changed: 53 additions & 29 deletions

File tree

Gemfile.lock

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -858,4 +858,4 @@ DEPENDENCIES
858858
webmock (~> 3.26)
859859

860860
BUNDLED WITH
861-
4.0.10
861+
4.0.11

app/controllers/distributions_by_county_controller.rb

Lines changed: 2 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,10 @@ class DistributionsByCountyController < ApplicationController
22
include DateRangeHelper
33
include DistributionHelper
44

5-
helper_method :filter_params
6-
75
def report
86
setup_date_range_picker
9-
start_date = helpers.selected_range.first.utc.iso8601
10-
end_date = helpers.selected_range.last.utc.iso8601
11-
12-
@reporting_categories = Item.reporting_categories_for_select
13-
@items = current_organization.items.loose.alphabetized.select(:id, :name)
14-
@selected_reporting_category = filter_params[:by_reporting_category].presence
15-
@selected_item = filter_params[:by_item_id].presence
16-
17-
@breakdown = DistributionSummaryByCountyQuery.call(
18-
organization_id: current_organization.id,
19-
start_date: start_date,
20-
end_date: end_date,
21-
reporting_category: @selected_reporting_category,
22-
item_id: @selected_item
23-
)
24-
end
25-
26-
def filter_params
27-
return {} unless params.key?(:filters)
287

29-
params
30-
.require(:filters)
31-
.permit(:by_item_id, :by_reporting_category, :date_range)
8+
@dbc_info = View::DistributionsByCounty.from_params(params: params,
9+
organization: current_organization, helpers: helpers)
3210
end
3311
end
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
module View
2+
DistributionsByCounty = Data.define(
3+
:breakdown,
4+
:filters,
5+
:items,
6+
:reporting_categories
7+
) do
8+
include DateRangeHelper
9+
10+
class << self
11+
def filter_params(params)
12+
return {} unless params.key?(:filters)
13+
params
14+
.require(:filters)
15+
.permit(:by_item_id, :by_reporting_category, :date_range)
16+
end
17+
18+
def from_params(params:, organization:, helpers:)
19+
filters = filter_params(params)
20+
start_date = helpers.selected_range.first.utc.iso8601
21+
end_date = helpers.selected_range.last.utc.iso8601
22+
breakdown = DistributionSummaryByCountyQuery.call(
23+
organization_id: organization.id,
24+
start_date: start_date,
25+
end_date: end_date,
26+
reporting_category: filters[:by_reporting_category].presence,
27+
item_id: filters[:by_item_id].presence
28+
)
29+
30+
new(
31+
breakdown: breakdown,
32+
filters: filters,
33+
reporting_categories: Item.reporting_categories_for_select,
34+
items: organization.items.loose.alphabetized.select(:id, :name)
35+
)
36+
end
37+
end
38+
def selected_reporting_category
39+
filters[:by_reporting_category].presence
40+
end
41+
42+
def selected_item
43+
filters[:by_item_id].presence
44+
end
45+
end
46+
end

app/views/distributions_by_county/report.html.erb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,13 @@
3333
<div class="description-block border-right">
3434
<%= form_tag(distributions_by_county_report_path(current_organization), method: :get) do |f| %>
3535
<div class="row">
36-
<% if @items.present? %>
36+
<% if @dbc_info.items.present? %>
3737
<div class="form-group col-lg-2 col-md-2 col-sm-6 col-xs-12">
38-
<%= filter_select(label: "Item", scope: :by_item_id, collection: @items, selected: @selected_item) %>
38+
<%= filter_select(label: "Item", scope: :by_item_id, collection: @dbc_info.items, selected: @dbc_info.selected_item) %>
3939
</div>
4040
<% end %>
4141
<div class="form-group col-lg-2 col-md-2 col-sm-6 col-xs-12">
42-
<%= filter_select(label: "Reporting Category", scope: :by_reporting_category, collection: @reporting_categories, selected: @selected_reporting_category) %>
42+
<%= filter_select(label: "Reporting Category", scope: :by_reporting_category, collection: @dbc_info.reporting_categories, selected: @dbc_info.selected_reporting_category) %>
4343
</div>
4444

4545
<div class="form-group col-lg-3 col-md-3 col-sm-6 col-xs-12">
@@ -66,7 +66,7 @@
6666
</tr>
6767
</thead>
6868
<tbody>
69-
<% @breakdown.each do |bd| %>
69+
<% @dbc_info.breakdown.each do |bd| %>
7070
<tr>
7171
<td><%= bd.name %></td>
7272
<td class="numeric"><%= number_with_delimiter(bd.quantity) %></td>

0 commit comments

Comments
 (0)