Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-09-20 23:07:56 +0300
committerDouglas Barbosa Alexandre <dbalexandre@gmail.com>2016-10-19 19:58:24 +0300
commitcfedd42badc6b84457d1de35cb31988777462d5a (patch)
treeca0588b33e11d2f28104b320dcec6884ac148ec8 /app/models
parente2dd75c0a2d863c8e530e54f3a0a015bdec1e84f (diff)
Add ProjectLabel model
Diffstat (limited to 'app/models')
-rw-r--r--app/models/label.rb7
-rw-r--r--app/models/project.rb6
-rw-r--r--app/models/project_label.rb5
3 files changed, 9 insertions, 9 deletions
diff --git a/app/models/label.rb b/app/models/label.rb
index be0c20479d5..0a68be7a30f 100644
--- a/app/models/label.rb
+++ b/app/models/label.rb
@@ -15,15 +15,12 @@ class Label < ActiveRecord::Base
default_value_for :color, DEFAULT_COLOR
- belongs_to :project
-
has_many :lists, dependent: :destroy
has_many :label_links, dependent: :destroy
has_many :issues, through: :label_links, source: :target, source_type: 'Issue'
has_many :merge_requests, through: :label_links, source: :target, source_type: 'MergeRequest'
validates :color, color: true, allow_blank: false
- validates :project, presence: true, if: :project_label?
# Don't allow ',' for label titles
validates :title, presence: true, format: { with: /\A[^,]+\z/ }
@@ -137,10 +134,6 @@ class Label < ActiveRecord::Base
.count
end
- def project_label?
- type.blank? && !template?
- end
-
def label_format_reference(format = :id)
raise StandardError, 'Unknown format' unless [:id, :name].include?(format)
diff --git a/app/models/project.rb b/app/models/project.rb
index db7301219e5..41125223044 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -107,7 +107,7 @@ class Project < ActiveRecord::Base
# Merge requests from source project should be kept when source project was removed
has_many :fork_merge_requests, foreign_key: 'source_project_id', class_name: MergeRequest
has_many :issues, dependent: :destroy
- has_many :labels, dependent: :destroy
+ has_many :labels, dependent: :destroy, class_name: 'ProjectLabel'
has_many :services, dependent: :destroy
has_many :events, dependent: :destroy
has_many :milestones, dependent: :destroy
@@ -730,8 +730,10 @@ class Project < ActiveRecord::Base
def create_labels
Label.templates.each do |label|
label = label.dup
- label.template = nil
+ label.template = false
label.project_id = self.id
+ label.type = 'ProjectLabel'
+
label.save
end
end
diff --git a/app/models/project_label.rb b/app/models/project_label.rb
new file mode 100644
index 00000000000..3e41113e340
--- /dev/null
+++ b/app/models/project_label.rb
@@ -0,0 +1,5 @@
+class ProjectLabel < Label
+ belongs_to :project
+
+ validates :project, presence: true
+end