diff options
| author | Toon Claes <toon@gitlab.com> | 2017-06-20 21:32:49 +0200 |
|---|---|---|
| committer | Toon Claes <toon@gitlab.com> | 2017-06-20 21:32:49 +0200 |
| commit | 451e25532ff43de8151b71ced8246f709c08bf92 (patch) | |
| tree | d317d555f78b4314d6a3f3989ac56c40017a131d /app | |
| parent | fcd46c1af4ceeec7813a91111dfce5e492695119 (diff) | |
| download | gitlab-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.rb | 6 | ||||
| -rw-r--r-- | app/models/merge_request.rb | 10 | ||||
| -rw-r--r-- | app/services/quick_actions/interpret_service.rb | 29 |
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 |
