summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorRémy Coutable <remy@rymai.me>2016-04-19 13:10:25 +0200
committerRobert Speicher <rspeicher@gmail.com>2016-04-20 15:43:32 -0400
commit159f959b6106a750d0ab89dce95a954ee33ffa84 (patch)
tree02594451a542a06e0fe6a3e594a74644fe784fc1 /app
parent6cdf4acd4eef55c616d633757772c6e05f6b93c5 (diff)
downloadgitlab-ce-159f959b6106a750d0ab89dce95a954ee33ffa84.tar.gz
Move due_date sort scopes to Issue and fix CHANGELOG
Signed-off-by: Rémy Coutable <remy@rymai.me>
Diffstat (limited to 'app')
-rw-r--r--app/finders/issuable_finder.rb4
-rw-r--r--app/models/concerns/sortable.rb4
-rw-r--r--app/models/issue.rb12
3 files changed, 13 insertions, 7 deletions
diff --git a/app/finders/issuable_finder.rb b/app/finders/issuable_finder.rb
index e21cfbd0d47..88ddeefa079 100644
--- a/app/finders/issuable_finder.rb
+++ b/app/finders/issuable_finder.rb
@@ -114,7 +114,7 @@ class IssuableFinder
end
def due_date?
- params[:due_date].present?
+ params[:due_date].present? && klass.column_names.include?('due_date')
end
def filter_by_no_due_date?
@@ -305,8 +305,6 @@ class IssuableFinder
end
def by_due_date(items)
- return items unless klass.column_names.include?('due_date')
-
if due_date?
if filter_by_no_due_date?
items = items.without_due_date
diff --git a/app/models/concerns/sortable.rb b/app/models/concerns/sortable.rb
index 42617ecbb96..8b47b9e0abd 100644
--- a/app/models/concerns/sortable.rb
+++ b/app/models/concerns/sortable.rb
@@ -18,8 +18,6 @@ module Sortable
scope :order_updated_asc, -> { reorder(updated_at: :asc) }
scope :order_name_asc, -> { reorder(name: :asc) }
scope :order_name_desc, -> { reorder(name: :desc) }
- scope :order_due_date_asc, -> { reorder("issues.due_date IS NULL, issues.due_date ASC") }
- scope :order_due_date_desc, -> { reorder("issues.due_date IS NULL, issues.due_date DESC") }
end
module ClassMethods
@@ -33,8 +31,6 @@ module Sortable
when 'created_desc' then order_created_desc
when 'id_desc' then order_id_desc
when 'id_asc' then order_id_asc
- when 'due_date_asc', 'due_date_desc'
- column_names.include?('due_date') ? send("order_#{method}") : all
else
all
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index d72233006ee..9a382fcda8d 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -46,6 +46,9 @@ class Issue < ActiveRecord::Base
scope :open_for, ->(user) { opened.assigned_to(user) }
scope :in_projects, ->(project_ids) { where(project_id: project_ids) }
+ scope :order_due_date_asc, -> { reorder('issues.due_date IS NULL, issues.due_date ASC') }
+ scope :order_due_date_desc, -> { reorder('issues.due_date IS NULL, issues.due_date DESC') }
+
state_machine :state, initial: :opened do
event :close do
transition [:reopened, :opened] => :closed
@@ -89,6 +92,15 @@ class Issue < ActiveRecord::Base
@link_reference_pattern ||= super("issues", /(?<issue>\d+)/)
end
+ def self.sort(method)
+ case method.to_s
+ when 'due_date_asc' then order_due_date_asc
+ when 'due_date_desc' then order_due_date_desc
+ else
+ super
+ end
+ end
+
def to_reference(from_project = nil)
reference = "#{self.class.reference_prefix}#{iid}"