summaryrefslogtreecommitdiff
path: root/app/models/milestone.rb
diff options
context:
space:
mode:
authorSean McGivern <sean@gitlab.com>2017-08-03 12:50:06 +0100
committerSean McGivern <sean@gitlab.com>2017-08-07 11:55:00 +0100
commit149528f472f3d2f3865ae01c764b81c6a97f9380 (patch)
tree8c9e38e7071b0a0002d3741259a7318e7a0427e5 /app/models/milestone.rb
parent03b816f3e845c9b25d3588336fc1616238465deb (diff)
downloadgitlab-ce-149528f472f3d2f3865ae01c764b81c6a97f9380.tar.gz
Support references to group milestones
Group milestones can only be referred to by name, not IID. They also do not support cross-project references.
Diffstat (limited to 'app/models/milestone.rb')
-rw-r--r--app/models/milestone.rb12
1 files changed, 9 insertions, 3 deletions
diff --git a/app/models/milestone.rb b/app/models/milestone.rb
index 48d00764965..01e0d0155a3 100644
--- a/app/models/milestone.rb
+++ b/app/models/milestone.rb
@@ -149,7 +149,9 @@ class Milestone < ActiveRecord::Base
end
##
- # Returns the String necessary to reference this Milestone in Markdown
+ # Returns the String necessary to reference this Milestone in Markdown. Group
+ # milestones only support name references, and do not support cross-project
+ # references.
#
# format - Symbol format to use (default: :iid, optional: :name)
#
@@ -161,12 +163,16 @@ class Milestone < ActiveRecord::Base
# Milestone.first.to_reference(same_namespace_project) # => "gitlab-ce%1"
#
def to_reference(from_project = nil, format: :iid, full: false)
- return if is_group_milestone?
+ return if is_group_milestone? && format != :name
format_reference = milestone_format_reference(format)
reference = "#{self.class.reference_prefix}#{format_reference}"
- "#{project.to_reference(from_project, full: full)}#{reference}"
+ if project
+ "#{project.to_reference(from_project, full: full)}#{reference}"
+ else
+ reference
+ end
end
def reference_link_text(from_project = nil)