From d022b7432efd720f0cf5f8d2a2cdaac7619bab57 Mon Sep 17 00:00:00 2001 From: GitLab Bot Date: Wed, 9 Sep 2020 12:08:22 +0000 Subject: Add latest changes from gitlab-org/gitlab@master --- app/services/issuable_base_service.rb | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) (limited to 'app/services/issuable_base_service.rb') diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index dea77f11baa..56bcef0c562 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -184,10 +184,7 @@ class IssuableBaseService < BaseService handle_quick_actions(issuable) filter_params(issuable) - change_state(issuable) - change_subscription(issuable) - change_todo(issuable) - toggle_award(issuable) + change_additional_attributes(issuable) old_associations = associations_before_update(issuable) label_ids = process_label_ids(params, existing_label_ids: issuable.label_ids) @@ -305,6 +302,14 @@ class IssuableBaseService < BaseService issuable.title_changed? || issuable.description_changed? end + def change_additional_attributes(issuable) + change_state(issuable) + change_severity(issuable) + change_subscription(issuable) + change_todo(issuable) + toggle_award(issuable) + end + def change_state(issuable) case params.delete(:state_event) when 'reopen' @@ -314,6 +319,12 @@ class IssuableBaseService < BaseService end end + def change_severity(issuable) + if severity = params.delete(:severity) + issuable.update_severity(severity) + end + end + def change_subscription(issuable) case params.delete(:subscription_event) when 'subscribe' @@ -358,8 +369,8 @@ class IssuableBaseService < BaseService associations end - def has_changes?(issuable, old_labels: [], old_assignees: []) - valid_attrs = [:title, :description, :assignee_ids, :milestone_id, :target_branch] + def has_changes?(issuable, old_labels: [], old_assignees: [], old_reviewers: []) + valid_attrs = [:title, :description, :assignee_ids, :reviewer_ids, :milestone_id, :target_branch] attrs_changed = valid_attrs.any? do |attr| issuable.previous_changes.include?(attr.to_s) @@ -369,7 +380,9 @@ class IssuableBaseService < BaseService assignees_changed = issuable.assignees != old_assignees - attrs_changed || labels_changed || assignees_changed + reviewers_changed = issuable.reviewers != old_reviewers if issuable.allows_reviewers? + + attrs_changed || labels_changed || assignees_changed || reviewers_changed end def invalidate_cache_counts(issuable, users: []) -- cgit v1.2.3