module Approval2::ModelAdditions
Public Instance Methods
approve()
click to toggle source
# File lib/approval2/model_additions.rb, line 33 def approve return "The record version is different from that of the approved version" if !self.approved_record.nil? and self.approved_version != self.approved_record.lock_version # make the U the A record, also assign the id of the A record, this looses history # self.approval_status = 'A' # self.approved_record.delete unless self.approved_record.nil? # self.update_column(:id, self.approved_id) unless self.approved_id.nil? # self.approved_id = nil if self.approved_record.nil? # create action, all we need to do is set the status to approved self.approval_status = 'A' return self end # edit action # copy all attributes of the U record to the A record, and delete the U record attributes = self.attributes.select do |attr, value| self.class.column_names.include?(attr.to_s) and ['id', 'approved_id', 'approval_status', 'lock_version', 'approved_version', 'created_at', 'updated_at', 'updated_by', 'created_by'].exclude?(attr) end self.class.unscoped do approved_record = self.approved_record approved_record.assign_attributes(attributes) approved_record.last_action = 'U' approved_record.updated_by = self.created_by self.destroy return approved_record end end
on_create_create_unapproved_record_entry()
click to toggle source
# File lib/approval2/model_additions.rb, line 70 def on_create_create_unapproved_record_entry if approval_status == 'U' UnapprovedRecord.create!(:approvable => self) end end
on_destory_remove_unapproved_record_entries()
click to toggle source
# File lib/approval2/model_additions.rb, line 76 def on_destory_remove_unapproved_record_entries if approval_status == 'U' unapproved_record_entry.delete end end
on_update_remove_unapproved_record_entries()
click to toggle source
# File lib/approval2/model_additions.rb, line 82 def on_update_remove_unapproved_record_entries if approval_status == 'A' and approval_status_was == 'U' unapproved_record_entry.delete end end
validate_unapproved_record()
click to toggle source
# File lib/approval2/model_additions.rb, line 29 def validate_unapproved_record errors.add(:base,"Unapproved Record Already Exists for this record") if !unapproved_record.nil? and (approval_status == 'A' and approval_status_was == 'A') end