OSDN Git Service

Iid improvemets
authorDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 19 Aug 2013 19:53:11 +0000 (22:53 +0300)
committerDmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Mon, 19 Aug 2013 19:53:11 +0000 (22:53 +0300)
* call set_iid before validation
* make rake task pass event if objects are invalid
* show iid in comment event at dashboard

app/helpers/events_helper.rb
app/models/concerns/issuable.rb
app/models/event.rb
app/views/search/_result.html.haml
lib/tasks/migrate/migrate_iids.rake

index b93b150..a35fd1e 100644 (file)
@@ -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
index 158c226..fb08a5a 100644 (file)
@@ -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,
index 5839a83..702891f 100644 (file)
@@ -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
index fac5fdf..5f7540d 100644 (file)
@@ -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})
index 4d2d49d..aef2b31 100644 (file)
@@ -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