summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorToon Claes <toon@gitlab.com>2017-06-20 21:32:49 +0200
committerToon Claes <toon@gitlab.com>2017-06-20 21:32:49 +0200
commit451e25532ff43de8151b71ced8246f709c08bf92 (patch)
treed317d555f78b4314d6a3f3989ac56c40017a131d /app
parentfcd46c1af4ceeec7813a91111dfce5e492695119 (diff)
downloadgitlab-ce-451e25532ff43de8151b71ced8246f709c08bf92.tar.gz
Make MergeRequest respond to assignee_ids & assignee_ids=
To make it simpler to assign users to an Issuable, make MergeRequest support the attribute `assignee_ids`.
Diffstat (limited to 'app')
-rw-r--r--app/models/concerns/issuable.rb6
-rw-r--r--app/models/merge_request.rb10
-rw-r--r--app/services/quick_actions/interpret_service.rb29
3 files changed, 22 insertions, 23 deletions
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index 0a476efdaa9..1bebd55a089 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -108,11 +108,7 @@ module Issuable
end
def has_multiple_assignees?
- supports_multiple_assignees? && assignees.count > 1
- end
-
- def supports_multiple_assignees?
- respond_to?(:assignee_ids)
+ assignees.count > 1
end
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index ea22ab53587..77da8413904 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -197,11 +197,19 @@ class MergeRequest < ActiveRecord::Base
}
end
- # This method is needed for compatibility with issues to not mess view and other code
+ # These method are needed for compatibility with issues to not mess view and other code
def assignees
Array(assignee)
end
+ def assignee_ids
+ Array(assignee_id)
+ end
+
+ def assignee_ids=(ids)
+ write_attribute(:assignee_id, ids.last)
+ end
+
def assignee_or_author?(user)
author_id == user.id || assignee_id == user.id
end
diff --git a/app/services/quick_actions/interpret_service.rb b/app/services/quick_actions/interpret_service.rb
index 4ceabaf021e..df13976fb3b 100644
--- a/app/services/quick_actions/interpret_service.rb
+++ b/app/services/quick_actions/interpret_service.rb
@@ -107,13 +107,12 @@ module QuickActions
command :assign do |users|
next if users.empty?
- if issuable.allows_multiple_assignees?
- @updates[:assignee_ids] = issuable.assignees.pluck(:id) + users.map(&:id)
- elsif issuable.supports_multiple_assignees?
- @updates[:assignee_ids] = [users.last.id]
- else
- @updates[:assignee_id] = users.last.id
- end
+ @updates[:assignee_ids] =
+ if issuable.allows_multiple_assignees?
+ issuable.assignees.pluck(:id) + users.map(&:id)
+ else
+ [users.last.id]
+ end
end
desc do
@@ -138,16 +137,12 @@ module QuickActions
# When multiple users are assigned, all will be unassigned if multiple assignees are no longer allowed
users = extract_users(unassign_param) if issuable.allows_multiple_assignees?
- if issuable.supports_multiple_assignees?
- @updates[:assignee_ids] =
- if users&.any?
- issuable.assignees.pluck(:id) - users.map(&:id)
- else
- []
- end
- else
- @updates[:assignee_id] = nil
- end
+ @updates[:assignee_ids] =
+ if users&.any?
+ issuable.assignees.pluck(:id) - users.map(&:id)
+ else
+ []
+ end
end
desc do