Skip to content

Commit 3d844fa

Browse files
Add by default storage filter in requests section
1 parent b1601b5 commit 3d844fa

File tree

3 files changed

+8
-2
lines changed

3 files changed

+8
-2
lines changed

app/controllers/requests_controller.rb

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,16 @@ def index
1212
@paginated_requests = @requests.includes(:partner).page(params[:page])
1313
@calculate_product_totals = RequestsTotalItemsService.new(requests: @requests).calculate
1414
@items = current_organization.items.alphabetized.select(:id, :name)
15-
@partners = current_organization.partners.alphabetized.select(:id, :name)
15+
@partners = current_organization.partners.alphabetized.select(:id, :name, :default_storage_location_id)
1616
@statuses = Request.statuses.transform_keys(&:humanize)
1717
@partner_users = User.where(id: @paginated_requests.map(&:partner_user_id)).select(:id, :name, :email)
1818
@request_types = Request.request_types.transform_keys(&:humanize)
19+
@default_storage_locations = StorageLocation.where(id: @partners.map(&:default_storage_location_id))
1920
@selected_request_type = filter_params[:by_request_type]
2021
@selected_request_item = filter_params[:by_request_item_id]
2122
@selected_partner = filter_params[:by_partner]
2223
@selected_status = filter_params[:by_status]
24+
@selected_default_storage_location = filter_params[:by_default_storage_location]
2325

2426
respond_to do |format|
2527
format.html
@@ -73,6 +75,6 @@ def load_items
7375
def filter_params
7476
return {} unless params.key?(:filters)
7577

76-
params.require(:filters).permit(:by_request_item_id, :by_partner, :by_status, :by_request_type)
78+
params.require(:filters).permit(:by_request_item_id, :by_partner, :by_status, :by_request_type, :by_default_storage_location)
7779
end
7880
end

app/models/request.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ class Request < ApplicationRecord
4848
# status scope to allow filtering by status
4949
scope :by_status, ->(status) { where(status: status) }
5050
scope :by_request_type, ->(request_type) { where(request_type: request_type) }
51+
scope :by_default_storage_location, ->(default_storage_location) { includes(:partner).where(partners: {default_storage_location_id: default_storage_location}) }
5152
scope :during, ->(range) { where(created_at: range) }
5253
scope :for_csv_export, ->(organization, *) {
5354
where(organization: organization)

app/views/requests/index.html.erb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@
5050
<div class="form-group col-lg-3 col-md-3 col-sm-6 col-xs-12">
5151
<%= filter_select(scope: :by_request_type, collection: @request_types, key: :last, value: :first, selected: @selected_request_type) %>
5252
</div>
53+
<div class="form-group col-lg-3 col-md-3 col-sm-6 col-xs-12">
54+
<%= filter_select(scope: :by_default_storage_location, collection: @default_storage_locations, selected: @selected_default_storage_location) %>
55+
</div>
5356
<div class="form-group col-lg-3 col-md-3 col-sm-6 col-xs-12">
5457
<%= filter_select(scope: :by_status, collection: @statuses, key: :last, value: :first, selected: @selected_status) %>
5558
</div>

0 commit comments

Comments
 (0)