Commit 625fb2f29d99ab21de2497a36512be69c80e39be
1 parent
0a0b0e1e
Exists in
master
and in
4 other branches
Add iids to milestones. Moved iids logic to separate concern
Showing
8 changed files
with
43 additions
and
14 deletions
Show diff stats
| ... | ... | @@ -0,0 +1,17 @@ |
| 1 | +module InternalId | |
| 2 | + extend ActiveSupport::Concern | |
| 3 | + | |
| 4 | + included do | |
| 5 | + validate :set_iid, on: :create | |
| 6 | + validates :iid, presence: true, numericality: true | |
| 7 | + end | |
| 8 | + | |
| 9 | + def set_iid | |
| 10 | + max_iid = project.send(self.class.name.tableize).maximum(:iid) | |
| 11 | + self.iid = max_iid.to_i + 1 | |
| 12 | + end | |
| 13 | + | |
| 14 | + def to_param | |
| 15 | + iid.to_s | |
| 16 | + end | |
| 17 | +end | ... | ... |
app/models/concerns/issuable.rb
| ... | ... | @@ -16,8 +16,6 @@ module Issuable |
| 16 | 16 | |
| 17 | 17 | validates :author, presence: true |
| 18 | 18 | validates :title, presence: true, length: { within: 0..255 } |
| 19 | - validate :set_iid, on: :create | |
| 20 | - validates :iid, presence: true, numericality: true | |
| 21 | 19 | |
| 22 | 20 | scope :authored, ->(user) { where(author_id: user) } |
| 23 | 21 | scope :assigned_to, ->(u) { where(assignee_id: u.id)} |
| ... | ... | @@ -47,15 +45,6 @@ module Issuable |
| 47 | 45 | end |
| 48 | 46 | end |
| 49 | 47 | |
| 50 | - def set_iid | |
| 51 | - max_iid = project.send(self.class.name.tableize).maximum(:iid) | |
| 52 | - self.iid = max_iid.to_i + 1 | |
| 53 | - end | |
| 54 | - | |
| 55 | - def to_param | |
| 56 | - iid.to_s | |
| 57 | - end | |
| 58 | - | |
| 59 | 48 | def today? |
| 60 | 49 | Date.today == created_at.to_date |
| 61 | 50 | end | ... | ... |
app/models/issue.rb
app/models/merge_request.rb
| ... | ... | @@ -23,8 +23,8 @@ require Rails.root.join("app/models/commit") |
| 23 | 23 | require Rails.root.join("lib/static_model") |
| 24 | 24 | |
| 25 | 25 | class MergeRequest < ActiveRecord::Base |
| 26 | - | |
| 27 | 26 | include Issuable |
| 27 | + include InternalId | |
| 28 | 28 | |
| 29 | 29 | belongs_to :target_project, foreign_key: :target_project_id, class_name: "Project" |
| 30 | 30 | belongs_to :source_project, foreign_key: :source_project_id, class_name: "Project" | ... | ... |
app/models/milestone.rb
db/migrate/20130821090531_add_internal_ids_to_milestones.rb
0 → 100644
db/schema.rb
| ... | ... | @@ -11,7 +11,7 @@ |
| 11 | 11 | # |
| 12 | 12 | # It's strongly recommended to check this file into your version control system. |
| 13 | 13 | |
| 14 | -ActiveRecord::Schema.define(:version => 20130821090530) do | |
| 14 | +ActiveRecord::Schema.define(:version => 20130821090531) do | |
| 15 | 15 | |
| 16 | 16 | create_table "deploy_keys_projects", :force => true do |t| |
| 17 | 17 | t.integer "deploy_key_id", :null => false |
| ... | ... | @@ -119,6 +119,7 @@ ActiveRecord::Schema.define(:version => 20130821090530) do |
| 119 | 119 | t.datetime "created_at", :null => false |
| 120 | 120 | t.datetime "updated_at", :null => false |
| 121 | 121 | t.string "state" |
| 122 | + t.integer "iid" | |
| 122 | 123 | end |
| 123 | 124 | |
| 124 | 125 | add_index "milestones", ["due_date"], :name => "index_milestones_on_due_date" | ... | ... |
lib/tasks/migrate/migrate_iids.rake
| ... | ... | @@ -30,4 +30,19 @@ task migrate_iids: :environment do |
| 30 | 30 | end |
| 31 | 31 | |
| 32 | 32 | puts 'done' |
| 33 | + puts 'Milestones'.yellow | |
| 34 | + Milestone.where(iid: nil).find_each(batch_size: 100) do |m| | |
| 35 | + begin | |
| 36 | + m.set_iid | |
| 37 | + if m.update_attribute(:iid, m.iid) | |
| 38 | + print '.' | |
| 39 | + else | |
| 40 | + print 'F' | |
| 41 | + end | |
| 42 | + rescue | |
| 43 | + print 'F' | |
| 44 | + end | |
| 45 | + end | |
| 46 | + | |
| 47 | + puts 'done' | |
| 33 | 48 | end | ... | ... |