class Email include Mongoid::Document include Mongoid::Timestamps field :module_app_key field :mail_from field :mail_to field :mail_reply_to field :mail_subject field :mail_content field :mail_sentdate , :type => DateTime, :default => Time.now field :mail_lang, :default => I18n.locale field :is_sent, :type => Boolean, :default => false field :template # Path to template file field :template_data # Data to render template field :create_user_id field :update_user_id has_many :email_files, :autosave => true, :dependent => :destroy scope :can_deliver, ->{ where(:mail_sentdate.lte => Time.now, :is_sent=>false) } def deliver OrbitMailer.set_mail(self).deliver end def self.deliver_all Email.can_deliver.each do |email| OrbitMailer.set_mail(email).deliver end end def module_app=(app) self.module_app_key = app.key rescue nil end def module_app ModuleApp.find_by(:key=>self.module_app_key) rescue nil end def create_user=(user) self.create_user_id = user.id rescue nil end def create_user User.find(self.create_user_id) rescue nil end def update_user=(user) self.update_user_id = user.id rescue nil end def update_user User.find(self.update_user_id) rescue nil end end