summaryrefslogtreecommitdiff
path: root/app/services/boards/issues/list_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/boards/issues/list_service.rb')
-rw-r--r--app/services/boards/issues/list_service.rb21
1 files changed, 11 insertions, 10 deletions
diff --git a/app/services/boards/issues/list_service.rb b/app/services/boards/issues/list_service.rb
index fd4a462c7b2..533e6787855 100644
--- a/app/services/boards/issues/list_service.rb
+++ b/app/services/boards/issues/list_service.rb
@@ -3,9 +3,9 @@ module Boards
class ListService < BaseService
def execute
issues = IssuesFinder.new(current_user, filter_params).execute
- issues = without_board_labels(issues) unless list.movable?
- issues = with_list_label(issues) if list.movable?
- issues
+ issues = without_board_labels(issues) unless list
+ issues = with_list_label(issues) if movable_list?
+ issues.order_by_position_and_priority
end
private
@@ -15,12 +15,17 @@ module Boards
end
def list
- @list ||= board.lists.find(params[:id])
+ return @list if defined?(@list)
+
+ @list = board.lists.find(params[:id]) if params.key?(:id)
+ end
+
+ def movable_list?
+ @movable_list ||= list.present? && list.movable?
end
def filter_params
set_default_scope
- set_default_sort
set_project
set_state
@@ -31,16 +36,12 @@ module Boards
params[:scope] = 'all'
end
- def set_default_sort
- params[:sort] = 'priority'
- end
-
def set_project
params[:project_id] = project.id
end
def set_state
- params[:state] = list.done? ? 'closed' : 'opened'
+ params[:state] = list && list.closed? ? 'closed' : 'opened'
end
def board_label_ids