summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-07-22 12:10:45 +0200
committerJames Lopez <james@jameslopez.es>2016-08-01 09:57:40 +0200
commitaad0ae71620d8e988faf75587a612b933df00366 (patch)
treeea7c49eb635513c65c901fb42b0d45b4c5919846 /app
parent2f344eca42f1f0fa8ac122316687bc166c489bf1 (diff)
downloadgitlab-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.rb6
-rw-r--r--app/models/project.rb10
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)