summaryrefslogtreecommitdiff
path: root/app/models
diff options
context:
space:
mode:
authorZeger-Jan van de Weg <zegerjan@gitlab.com>2016-02-26 09:55:43 +0100
committerZeger-Jan van de Weg <zegerjan@gitlab.com>2016-03-19 21:23:03 +0100
commit212e83bab3f1f9055f1321c3e934b4f4659250bf (patch)
treef3b67cf54ba43ca7d008c470beadfd12df3cfbb2 /app/models
parent3f22a92f4a561543c2249786b695d0c65120455b (diff)
downloadgitlab-ce-212e83bab3f1f9055f1321c3e934b4f4659250bf.tar.gz
Soft delete issuables
Diffstat (limited to 'app/models')
-rw-r--r--app/models/concerns/internal_id.rb7
-rw-r--r--app/models/issue.rb2
-rw-r--r--app/models/merge_request.rb2
3 files changed, 10 insertions, 1 deletions
diff --git a/app/models/concerns/internal_id.rb b/app/models/concerns/internal_id.rb
index 821ed54fb98..6fc12202dde 100644
--- a/app/models/concerns/internal_id.rb
+++ b/app/models/concerns/internal_id.rb
@@ -7,7 +7,12 @@ module InternalId
end
def set_iid
- max_iid = project.send(self.class.name.tableize).maximum(:iid)
+ max_iid = case self.class
+ when Issue, MergeRequest
+ project.send(self.class.name.tableize).with_deleted.maximum(:iid)
+ else
+ project.send(self.class.name.tableize).maximum(:iid)
+ end
self.iid = max_iid.to_i + 1
end
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 5347d4fa1be..4bd91d57ffc 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -54,6 +54,8 @@ class Issue < ActiveRecord::Base
state :closed
end
+ acts_as_paranoid
+
def hook_attrs
attributes
end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index a015a9ef394..5488aa685f1 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -142,6 +142,8 @@ class MergeRequest < ActiveRecord::Base
scope :join_project, -> { joins(:target_project) }
scope :references_project, -> { references(:target_project) }
+ acts_as_paranoid
+
def self.reference_prefix
'!'
end