44 lines
1.7 KiB
Ruby
44 lines
1.7 KiB
Ruby
class UpdatePrincipalActivityTime < ActiveRecord::Migration
|
|
def up
|
|
count = PrincipalActivity.all.count / 30 + 2
|
|
transaction do
|
|
for i in 1 ... count do i
|
|
PrincipalActivity.page(i).per(30).each do |activity|
|
|
if activity.principal_act
|
|
if activity.principal_act.respond_to?("created_on")
|
|
activity.created_at = activity.principal_act.created_on
|
|
activity.updated_at = activity.principal_act.created_on
|
|
elsif activity.principal_act.respond_to?("created_at")
|
|
activity.created_at = activity.principal_act.created_at
|
|
activity.updated_at = activity.principal_act.created_at
|
|
end
|
|
activity.save
|
|
|
|
user_activity = UserActivity.where("act_type = '#{activity.principal_act_type.to_s}' and act_id = '#{activity.principal_act_id}'").first
|
|
user_activity.created_at = activity.created_at
|
|
user_activity.updated_at = activity.created_at
|
|
if user_activity.act_type == 'JournalsForMessage'
|
|
if user_activity.act
|
|
unless user_activity.act.m_parent_id.nil?
|
|
parent_act = UserActivity.where("act_id = #{user_activity.act.m_parent_id} and act_type='JournalsForMessage' and container_type='Principal'").first
|
|
if parent_act
|
|
parent_act.created_at = user_activity.act.parent.children.maximum("created_on")
|
|
parent_act.save
|
|
user_activity.destroy
|
|
end
|
|
end
|
|
else
|
|
user_activity.destroy
|
|
end
|
|
end
|
|
user_activity.save
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
def down
|
|
end
|
|
end
|