Skip to content

Commit 1a308b7

Browse files
committed
moves date filter into query class, allows for null dates #35
1 parent 1954acf commit 1a308b7

File tree

4 files changed

+9
-4
lines changed

4 files changed

+9
-4
lines changed

app/controllers/issue_resource_items_controller.rb

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ def new
1313

1414
query = RedmineResourceManager::ResourceItemsQuery.new(
1515
project: @project, category_id: nil, issue_id: params[:issue_id],
16-
resource_class: @type.constantize
16+
resource_class: @type.constantize,
17+
filter_by_date: true
1718
)
1819

1920
@resource_items = query.scope

app/models/resource_item.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ class ResourceItem < ActiveRecord::Base
1515
scope :sorted, ->{ order name: :asc}
1616
scope :humans, ->{ where type: 'Human' }
1717
scope :assets, ->{ where type: 'Asset' }
18-
scope :filter_by_date, -> { where("start_date < ? AND ? < end_date", Date.today, Date.today) }
18+
scope :filter_by_date, ->(date = Date.today){
19+
where("(start_date is NULL or start_date <= :date) AND (end_date is NULL or :date <= end_date)", date: date)
20+
}
1921

2022
scope :like, ->(q){
2123
if q.present?

app/views/issue_resource_items/_new.html.erb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
<%= javascript_tag "observeResourceItemSearchfield('#{ j autocomplete_project_resource_items_path(@project, issue_id: issue.try(:id), type: @type) }');" %>
2424

2525
<div id="resource_items_for_issue">
26-
<%= render partial: 'resource_items/resource_items_for_issue', locals: { resource_items: resource_items.filter_by_date, total: @total } %>
26+
<%= render partial: 'resource_items/resource_items_for_issue', locals: { resource_items: resource_items, total: @total } %>
2727
</div>
2828

2929
</div>

lib/redmine_resource_manager/resource_items_query.rb

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
module RedmineResourceManager
22
class ResourceItemsQuery
33

4-
def initialize(project:, query: nil, category_id: nil, issue_id: nil, resource_class:)
4+
def initialize(project:, query: nil, category_id: nil, issue_id: nil, resource_class:, filter_by_date: false)
55
@resource_class = resource_class
66
@project = project
77
@query = query.presence
88
@category_id = category_id.presence
99
@issue_id = issue_id.presence
10+
@filter_by_date = filter_by_date
1011
end
1112

1213
def scope
@@ -23,6 +24,7 @@ def total
2324
def all
2425
all = @resource_class.where(project_id: @project.id)
2526
all = all.where(category_id: @category_id) if @category_id
27+
all = all.filter_by_date if @filter_by_date
2628
all = all.like @query if @query
2729
if @issue_id
2830
issue = @project.issues.visible.find @issue_id

0 commit comments

Comments
 (0)