# encoding: utf-8 class EmailEr include Mongoid::Document include Mongoid::Timestamps include Mongoid::MultiParameterAttributes include OrbitCategory::Categorizable include OrbitCoreLib::Preview include OrbitModel::LanguageRestrict include OrbitModel::Status include OrbitModel::TimeFrame include Tire::Model::Search include Tire::Model::Callbacks field :mail_subject field :mail_sentdate , :type => DateTime field :mail_content field :email_user_ids field :other_mailaddress field :create_user_id field :update_user_id field :is_checked, :type => Boolean, :default => false field :is_pending, :type => Boolean, :default => true field :is_rejected, :type => Boolean, :default => false field :not_checked_reason scope :can_display,where(is_hidden: false) has_many :email_er_files, :autosave => true, :dependent => :destroy accepts_nested_attributes_for :email_er_files, :allow_destroy => true validates :mail_subject,presence:{message:'blank is not allowed'} validates :other_mailaddress, :length => {:maximum => 1000, :message => I18n.t("er_email.other_mailaddress_note_limit")} def proc_check(check,not_pass_info = "") self.is_checked = true if check =="true" self.is_rejected = false elsif check == "false" self.is_rejected = true self.not_checked_reason = not_pass_info end end def de_pending self.is_pending = false end def de_pending! de_pending self.save! end def is_checked? !self.is_pending && self.is_checked && (self.is_rejected == false) end def is_pending? self.is_pending end def is_rejected? !self.is_pending && self.is_rejected && (self.is_rejected == true) end def to_preview preview_object = Preview.new(:expired_at=>DateTime.now+30.minutes,:preview_at_link=>"panel_er_email_back_end_email_er_path",:object_class_type=>"EmailEr") self.email_er["email_er_files_attributes"].each_with_index do |atr,idx| preview_object.preview_files.build(:file=>self.email_er["email_er_files_attributes"][idx.to_s],:field_name_for_rebuild=>'email_er_files',:file_in_array=>true) end unless self.email_er["email_er_files_attributes"].nil? preview_object.object = self.email_er.except("email_er_files_attributes") preview_object end def get_email_users User.find(self.email_user_ids) rescue [] end end