Sha256: 9504775d501526250fcb9b22ab1620049ae662d8cf1326d1132b7c84f1e3c74a
Contents?: true
Size: 1.72 KB
Versions: 1
Compression:
Stored size: 1.72 KB
Contents
module Org module Model::Resign extend ActiveSupport::Concern included do attribute :leave_on, :date attribute :reason_note, :string attribute :handover_note, :string attribute :comment, :string validates :leave_on, :reason_note, presence: true validate :validate_resign_reasons belongs_to :member has_many :resign_references has_many :resign_reasons, through: :resign_references enum state: { init: 'init', approved: 'approved', rejected: 'rejected' }, _default: 'init' after_create_commit :send_notification acts_as_notify only: [:reason_note, :leave_on] end def do_trigger(params = {}) self.trigger_to(params.slice(:state)) self.class.transaction do self.save! to_notification( sender: self.member.office.leader, member: self.member, title: "Your resignation request has been #{self.state_i18n}.", body: "Your resignation request has been #{self.state_i18n}.", link: url_helpers.my_resign_url, cc_emails: [ self.member.office.leader.email ], ) end end def send_notification to_notification( sender: self.member, member: self.member.office.leader, body: "#{self.member.name} has requested resignation", title: "#{self.member.name} has requested resignation", cc_emails: [ self.member.email ], link: url_helpers.admin_resign_url(id: self.id), verbose: true ) end def validate_resign_reasons self.errors.add :base, 'Please select one reason at least' if self.resign_reasons.empty? end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
rails_org-0.0.1 | app/models/org/model/resign.rb |