diff options
author | James Lopez <james@jameslopez.es> | 2016-07-22 12:10:45 +0200 |
---|---|---|
committer | James Lopez <james@jameslopez.es> | 2016-08-01 09:57:40 +0200 |
commit | aad0ae71620d8e988faf75587a612b933df00366 (patch) | |
tree | ea7c49eb635513c65c901fb42b0d45b4c5919846 /app | |
parent | 2f344eca42f1f0fa8ac122316687bc166c489bf1 (diff) | |
download | gitlab-ce-aad0ae71620d8e988faf75587a612b933df00366.tar.gz |
squashed - fixed label and milestone association problems, updated specs and refactored reader class a bitfix/labels-milestones-import
Diffstat (limited to 'app')
-rw-r--r-- | app/models/label_link.rb | 6 | ||||
-rw-r--r-- | app/models/project.rb | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/app/models/label_link.rb b/app/models/label_link.rb index 47bd6eaf35f..51b5c2b1f4c 100644 --- a/app/models/label_link.rb +++ b/app/models/label_link.rb @@ -1,7 +1,9 @@ class LabelLink < ActiveRecord::Base + include Importable + belongs_to :target, polymorphic: true belongs_to :label - validates :target, presence: true - validates :label, presence: true + validates :target, presence: true, unless: :importing? + validates :label, presence: true, unless: :importing? end diff --git a/app/models/project.rb b/app/models/project.rb index 7aecd7860c5..83b848ded8b 100644 --- a/app/models/project.rb +++ b/app/models/project.rb @@ -1253,6 +1253,16 @@ class Project < ActiveRecord::Base authorized_for_user_by_shared_projects?(user, min_access_level) end + def append_or_update_attribute(name, value) + old_values = public_send(name.to_s) + + if Project.reflect_on_association(name).try(:macro) == :has_many && old_values.any? + update_attribute(name, old_values + value) + else + update_attribute(name, value) + end + end + private def authorized_for_user_by_group?(user, min_access_level) |