2014-05-20 11:29:51 +00:00
|
|
|
class Email
|
|
|
|
include Mongoid::Document
|
|
|
|
include Mongoid::Timestamps
|
|
|
|
|
|
|
|
field :module_app_key
|
|
|
|
field :mail_from
|
2014-05-27 05:51:18 +00:00
|
|
|
field :mail_to #not optional
|
2014-05-20 11:29:51 +00:00
|
|
|
field :mail_reply_to
|
2014-05-27 05:51:18 +00:00
|
|
|
field :mail_subject #not optional
|
|
|
|
field :mail_content #not optional
|
2014-05-20 11:29:51 +00:00
|
|
|
field :mail_sentdate , :type => DateTime, :default => Time.now
|
|
|
|
field :mail_lang, :default => I18n.locale
|
|
|
|
|
2014-05-22 08:08:32 +00:00
|
|
|
field :is_sent, :type => Boolean, :default => false
|
|
|
|
|
2014-05-20 11:29:51 +00:00
|
|
|
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
|
|
|
|
|
2014-05-22 08:08:32 +00:00
|
|
|
scope :can_deliver, ->{ where(:mail_sentdate.lte => Time.now, :is_sent=>false) }
|
2014-05-20 11:29:51 +00:00
|
|
|
|
|
|
|
def deliver
|
|
|
|
OrbitMailer.set_mail(self).deliver
|
|
|
|
end
|
|
|
|
|
2014-05-22 08:08:32 +00:00
|
|
|
def self.deliver_all
|
|
|
|
Email.can_deliver.each do |email|
|
2014-05-28 07:57:58 +00:00
|
|
|
email.is_sent = true
|
|
|
|
email.save
|
2014-05-22 08:08:32 +00:00
|
|
|
OrbitMailer.set_mail(email).deliver
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2014-05-20 11:29:51 +00:00
|
|
|
def module_app=(app)
|
2014-05-22 08:08:32 +00:00
|
|
|
self.module_app_key = app.key rescue nil
|
2014-05-20 11:29:51 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def module_app
|
|
|
|
ModuleApp.find_by(:key=>self.module_app_key) rescue nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def create_user=(user)
|
2014-05-22 08:08:32 +00:00
|
|
|
self.create_user_id = user.id rescue nil
|
2014-05-20 11:29:51 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def create_user
|
|
|
|
User.find(self.create_user_id) rescue nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def update_user=(user)
|
2014-05-22 08:08:32 +00:00
|
|
|
self.update_user_id = user.id rescue nil
|
2014-05-20 11:29:51 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
def update_user
|
|
|
|
User.find(self.update_user_id) rescue nil
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|