Fix bug with assigned_to field twice and fallback values, if objects do not exist anymore

This commit is contained in:
Alexander Meindl
2020-01-07 13:22:53 +01:00
parent b2e7cca639
commit 164bc700e1
2 changed files with 27 additions and 28 deletions

View File

@@ -184,41 +184,39 @@ class Messenger
when 'title', 'subject', 'description'
short = false
when 'tracker'
tracker = Tracker.find(detail.value)
value = tracker.to_s if tracker.present?
value = object_field_value(Tracker, detail.value)
when 'project'
project = Project.find(detail.value)
value = project.to_s if project.present?
value = object_field_value(Project, detail.value)
when 'status'
status = IssueStatus.find(detail.value)
value = status.to_s if status.present?
value = object_field_value(IssueStatus, detail.value)
when 'priority'
priority = IssuePriority.find(detail.value)
value = priority.to_s if priority.present?
value = object_field_value(IssuePriority, detail.value)
when 'category'
category = IssueCategory.find(detail.value)
value = category.to_s if category.present?
value = object_field_value(IssueCategory, detail.value)
when 'assigned_to'
user = User.find(detail.value)
value = user.to_s if user.present?
value = object_field_value(User, detail.value)
when 'fixed_version'
fixed_version = Version.find(detail.value)
value = fixed_version.to_s if fixed_version.present?
value = object_field_value(Version, detail.value)
when 'attachment'
attachment = Attachment.find(detail.prop_key)
value = "<#{Messenger.object_url attachment}|#{markup_format(attachment.filename)}>" if attachment.present?
escape = false
value = if attachment.present?
escape = false
"<#{Messenger.object_url attachment}|#{markup_format(attachment.filename)}>"
else
detail.prop_key.to_s
end
when 'parent'
issue = Issue.find(detail.value)
value = "<#{Messenger.object_url issue}|#{markup_format(issue)}>" if issue.present?
escape = false
end
if detail.property == 'cf' && field_format == 'version'
version = Version.find(detail.value)
value = version.to_s if version.present?
value = if issue.present?
escape = false
"<#{Messenger.object_url issue}|#{markup_format(issue)}>"
else
detail.value.to_s
end
end
value = object_field_value(Version, detail.value) if detail.property == 'cf' && field_format == 'version'
value = if value.present?
if escape
markup_format(value)
@@ -244,6 +242,11 @@ class Messenger
private
def object_field_value(klass, id)
obj = klass.find_by(id: id)
obj.nil? ? id.to_s : obj.to_s
end
def extract_usernames(text)
text = '' if text.nil?
# messenger usernames may only contain lowercase letters, numbers,

View File

@@ -88,11 +88,7 @@ module RedmineMessenger
value: Messenger.markup_format(priority.to_s),
short: true }
end
if assigned_to.present?
fields << { title: I18n.t(:field_assigned_to),
value: Messenger.markup_format(assigned_to.to_s),
short: true }
end
attachment[:fields] = fields if fields.any?
Messenger.speak(l(:label_messenger_issue_updated,