orbit4-5/app/models/email.rb

63 lines
1.4 KiB
Ruby
Raw Normal View History

2014-05-20 11:29:51 +00:00
class Email
include Mongoid::Document
include Mongoid::Timestamps
field :module_app_key
field :mail_from
field :mail_to #not optional
2014-05-20 11:29:51 +00:00
field :mail_reply_to
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
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
accepts_nested_attributes_for :email_files, :allow_destroy => true
2014-05-20 11:29:51 +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
def self.deliver_all
Email.can_deliver.each do |email|
email.is_sent = true
email.save
OrbitMailer.set_mail(email).deliver
end
end
2014-05-20 11:29:51 +00:00
def module_app=(app)
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)
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)
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