def revert (author)
@dw_object = DwObject.find_by_path(self.object_path)
if @dw_object
case @dw_object.objectType
when 'Database'
@database = Database.find(@dw_object.dw_object_id)
@database.database_desc = self.new_value if self.data_changed == 'database_desc'
@database.save
@new_change = Change.new({:object_path => @database.database_nm, :data_changed => "database_desc",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now})
@new_change.save
when 'Schema'
@schema = Schema.find(@dw_object.dw_object_id)
@schema.schema_desc = self.new_value if self.data_changed == 'schema_desc'
@schema.schema_title = self.new_value if self.data_changed == 'schema_title'
@schema.save
@new_change = Change.new({:object_path => @schema.Database.database_nm + '/' + @schema.schema_nm, :data_changed => "schema_desc",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now}) if self.data_changed == 'schema_desc'
@new_change = Change.new({:object_path => @schema.Database.database_nm + '/' + @schema.schema_nm, :data_changed => "schema_title",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now}) if self.data_changed == 'schema_title'
@new_change.save
when 'Table'
@table = Table.find(@dw_object.dw_object_id)
@table.table_desc = self.new_value if self.data_changed == 'table_desc'
@table.save
@new_change = Change.new({:object_path => @table.Schema.Database.database_nm + '/' + @table.Schema.schema_nm + '/' + @table.table_nm, :data_changed => "table_desc",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now})
@new_change.save
when 'Column'
@column = Column.find(@dw_object.dw_object_id)
@column.column_desc = self.new_value if self.data_changed == 'column_desc'
@column.sample_data_txt = self.new_value if self.data_changed == 'sample_data_txt'
@column.save
@new_change = Change.new({:object_path => @column.Table.Schema.Database.database_nm + '/' + @column.Table.Schema.schema_nm + '/' + @column.Table.schema_nm + '/' + @column.column_nm, :data_changed => "sample_data_txt",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now}) if self.data_changed == 'sample_data_txt'
@new_change = Change.new({:object_path => @column.Table.Schema.Database.database_nm + '/' + @column.Table.Schema.schema_nm + '/' + @column.Table.table_nm + '/' + @column.column_nm, :data_changed => "column_desc",
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now}) if self.data_changed == 'column_desc'
@new_change.save
end
else
@reports = Report.find_all()
for report in @reports
if report.path == self.object_path
@the_report = report
end
end
@the_report[self.data_changed] = self.new_value
@the_report.save
@new_change = Change.new({:object_path => @the_report.path, :data_changed => self.data_changed,
:user_id => author, :comment => 'REVERT',
:new_value => self.new_value, :date => Time.now})
@new_change.save
end
end