diff options
Diffstat (limited to 'app/finders/issuable_finder.rb')
-rw-r--r-- | app/finders/issuable_finder.rb | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb index 5eb1d3f5aac..5e08193b5cf 100644 --- a/app/finders/issuable_finder.rb +++ b/app/finders/issuable_finder.rb @@ -39,6 +39,7 @@ class IssuableFinder items = by_assignee(items) items = by_author(items) items = by_label(items) + items = by_due_date(items) sort(items) end @@ -112,6 +113,14 @@ class IssuableFinder end end + def due_date? + params[:due_date].present? + end + + def filter_by_no_due_date? + due_date? && params[:due_date] == Issue::NO_DUE_DATE[1] + end + def labels? params[:label_name].present? end @@ -283,6 +292,19 @@ class IssuableFinder items.distinct end + def by_due_date(items) + if due_date? + if filter_by_no_due_date? + items = items.no_due_date + else + items = items.has_due_date + # Must use issues prefix to avoid ambiguous match with Milestone#due_date + items = items.where("issues.due_date > ? AND issues.due_date <= ?", Date.today, params[:due_date]) + end + end + items + end + def label_names params[:label_name].split(',') end |