forked from saurabh/orbit4-5
63 lines
1.4 KiB
Ruby
63 lines
1.4 KiB
Ruby
class Email
|
|
include Mongoid::Document
|
|
include Mongoid::Timestamps
|
|
|
|
field :module_app_key
|
|
field :mail_from
|
|
field :mail_to #not optional
|
|
field :mail_reply_to
|
|
field :mail_subject #not optional
|
|
field :mail_content #not optional
|
|
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
|
|
accepts_nested_attributes_for :email_files, :allow_destroy => true
|
|
|
|
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|
|
|
email.is_sent = true
|
|
email.save
|
|
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 |