summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-08-19 22:53:11 +0300
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>2013-08-19 22:53:11 +0300
commit434c034159f584348b56a322dbcda8dc65b812f2 (patch)
treef02615aa7f4e26f8468b4a990639f6da76e2a066
parent20397091f10f4c00db7cfab7b8598b9a6b7fdec1 (diff)
downloadgitlab-ce-434c034159f584348b56a322dbcda8dc65b812f2.tar.gz
Iid improvemets
* call set_iid before validation * make rake task pass event if objects are invalid * show iid in comment event at dashboard
-rw-r--r--app/helpers/events_helper.rb2
-rw-r--r--app/models/concerns/issuable.rb2
-rw-r--r--app/models/event.rb8
-rw-r--r--app/views/search/_result.html.haml4
-rw-r--r--lib/tasks/migrate/migrate_iids.rake6
5 files changed, 16 insertions, 6 deletions
diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb
index b93b1502b34..a35fd1ea808 100644
--- a/app/helpers/events_helper.rb
+++ b/app/helpers/events_helper.rb
@@ -109,7 +109,7 @@ module EventsHelper
else
link_to event_note_target_path(event) do
content_tag :strong do
- "#{event.note_target_type} ##{truncate event.note_target_id}"
+ "#{event.note_target_type} ##{truncate event.note_target_iid}"
end
end
end
diff --git a/app/models/concerns/issuable.rb b/app/models/concerns/issuable.rb
index 158c226480f..fb08a5aa750 100644
--- a/app/models/concerns/issuable.rb
+++ b/app/models/concerns/issuable.rb
@@ -16,6 +16,7 @@ module Issuable
validates :author, presence: true
validates :title, presence: true, length: { within: 0..255 }
+ validate :set_iid, on: :create
validates :iid, presence: true, numericality: true
scope :authored, ->(user) { where(author_id: user) }
@@ -25,7 +26,6 @@ module Issuable
scope :unassigned, -> { where("assignee_id IS NULL") }
scope :of_projects, ->(ids) { where(project_id: ids) }
- validate :set_iid, on: :create
delegate :name,
:email,
diff --git a/app/models/event.rb b/app/models/event.rb
index 5839a834e78..702891f13dc 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -284,6 +284,14 @@ class Event < ActiveRecord::Base
end
end
+ def note_target_iid
+ if note_target.respond_to?(:iid)
+ note_target.iid
+ else
+ note_target_id
+ end.to_s
+ end
+
def wall_note?
target.noteable_type.blank?
end
diff --git a/app/views/search/_result.html.haml b/app/views/search/_result.html.haml
index fac5fdfd0b1..5f7540d1b16 100644
--- a/app/views/search/_result.html.haml
+++ b/app/views/search/_result.html.haml
@@ -23,7 +23,7 @@
%li
merge request:
= link_to [merge_request.target_project, merge_request] do
- %span ##{merge_request.id}
+ %span ##{merge_request.iid}
%strong.term
= truncate merge_request.title, length: 50
- if merge_request.for_fork?
@@ -37,7 +37,7 @@
%li
issue:
= link_to [issue.project, issue] do
- %span ##{issue.id}
+ %span ##{issue.iid}
%strong.term
= truncate issue.title, length: 50
%span.light (#{issue.project.name_with_namespace})
diff --git a/lib/tasks/migrate/migrate_iids.rake b/lib/tasks/migrate/migrate_iids.rake
index 4d2d49dd6d8..aef2b319df9 100644
--- a/lib/tasks/migrate/migrate_iids.rake
+++ b/lib/tasks/migrate/migrate_iids.rake
@@ -4,7 +4,7 @@ task migrate_iids: :environment do
Issue.where(iid: nil).find_each(batch_size: 100) do |issue|
begin
issue.set_iid
- if issue.save
+ if issue.update_attribute(:iid, mr.iid)
print '.'
else
print 'F'
@@ -19,7 +19,7 @@ task migrate_iids: :environment do
MergeRequest.where(iid: nil).find_each(batch_size: 100) do |mr|
begin
mr.set_iid
- if mr.save
+ if mr.update_attribute(:iid, mr.iid)
print '.'
else
print 'F'
@@ -28,4 +28,6 @@ task migrate_iids: :environment do
print 'F'
end
end
+
+ puts 'done'
end