diff options
author | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-09-09 11:57:54 +0300 |
---|---|---|
committer | Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com> | 2015-09-09 11:57:54 +0300 |
commit | b05cc8bc9aa5200a0fe3d2ce0afe18485a0aded5 (patch) | |
tree | 7d0cea775b4cafded2409d448aade0f369eca221 /app/models | |
parent | fbcde1aa779e56c7573cb86729e963b1bae186ff (diff) | |
parent | 6bd3d72bbdf288ecf2eee718f2943821c1401a22 (diff) |
Merge branch 'global_labels' into 'master'
Global labels
https://dev.gitlab.org/gitlab/gitlabhq/issues/2353
See merge request !1240
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/label.rb | 8 | ||||
-rw-r--r-- | app/models/project.rb | 9 |
2 files changed, 16 insertions, 1 deletions
diff --git a/app/models/label.rb b/app/models/label.rb index 230631b5180..4a22bd53400 100644 --- a/app/models/label.rb +++ b/app/models/label.rb @@ -24,7 +24,7 @@ class Label < ActiveRecord::Base validates :color, format: { with: /\A#[0-9A-Fa-f]{6}\Z/ }, allow_blank: false - validates :project, presence: true + validates :project, presence: true, unless: Proc.new { |service| service.template? } # Don't allow '?', '&', and ',' for label titles validates :title, @@ -34,6 +34,8 @@ class Label < ActiveRecord::Base default_scope { order(title: :asc) } + scope :templates, -> { where(template: true) } + alias_attribute :name, :title def self.reference_prefix @@ -78,4 +80,8 @@ class Label < ActiveRecord::Base def open_issues_count issues.opened.count end + + def template? + template + end end diff --git a/app/models/project.rb b/app/models/project.rb index c2d7fa5fcb8..072d7d73f41 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -403,6 +403,15 @@ class Project < ActiveRecord::Base end end + def create_labels + Label.templates.each do |label| + label = label.dup + label.template = nil + label.project_id = self.id + label.save + end + end + def find_service(list, name) list.find { |service| service.to_param == name } end |