kanbanworkflowstimelinescrumrubyroadmapproject-planningproject-managementopenprojectangularissue-trackerifcgantt-chartganttbug-trackerboardsbcf
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
2.1 KiB
59 lines
2.1 KiB
15 years ago
|
class RefactorTerms < ActiveRecord::Migration
|
||
|
def self.up
|
||
|
rename_table :deliverable_costs, :material_budget_items
|
||
|
rename_column :material_budget_items, :deliverable_id, :cost_object_id
|
||
|
|
||
|
rename_table :deliverable_hours, :labor_budget_items
|
||
|
rename_column :labor_budget_items, :deliverable_id, :cost_object_id
|
||
|
|
||
|
rename_table :deliverables, :cost_objects
|
||
|
|
||
|
execute("UPDATE cost_objects SET type = 'CostObject' WHERE cost_objects.type = 'Deliverable'")
|
||
|
execute("UPDATE cost_objects SET type = 'VariableCostObject' WHERE cost_objects.type = 'CostBasedDeliverable'")
|
||
|
execute("UPDATE cost_objects SET type = 'FixedCostObject' WHERE cost_objects.type = 'FixedDeliverable'")
|
||
|
|
||
|
rename_column :issues, :deliverable_id, :cost_object_id
|
||
|
|
||
|
Role.find(:all).each do |role|
|
||
|
rename_permission(role, :view_deliverables, :view_cost_objects)
|
||
|
rename_permission(role, :edit_deliverables, :edit_cost_objects)
|
||
|
role.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.down
|
||
|
rename_table :material_budget_items, :deliverable_costs
|
||
|
rename_column :material_budget_items, :cost_object_id, :deliverable_id
|
||
|
|
||
|
rename_table :labor_budget_items, :deliverable_hours
|
||
|
rename_column :labor_budget_items, :cost_object_id, :deliverable_id
|
||
|
|
||
|
rename_table :cost_objects, :deliverables
|
||
|
execute("UPDATE deliverables SET type = 'Deliverable' WHERE deliverables.type = 'CostObject'")
|
||
|
execute("UPDATE deliverables SET type = 'CostBasedDeliverable' WHERE deliverables.type = 'VariableCostObject'")
|
||
|
execute("UPDATE deliverables SET type = 'FixedDeliverable' WHERE deliverables.type = 'FixedCostObject'")
|
||
|
|
||
|
rename_column :issues, :deliverable_id, :cost_object_id
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
Role.find(:all).each do |role|
|
||
|
rename_permission(role, :view_cost_objects, :view_deliverables)
|
||
|
rename_permission(role, :edit_cost_objects, :edit_deliverables)
|
||
|
role.save!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
def self.rename_permission(role, old_perm, new_perm)
|
||
|
if role.has_permission?(old_perm)
|
||
|
perms = role.permissions
|
||
|
|
||
|
perms.delete(old_perm.to_sym)
|
||
|
perms << new_perm.to_sym
|
||
|
|
||
|
role.permissions = perms
|
||
|
end
|
||
|
end
|
||
|
end
|