epaper/app/models/paper_criteria.rb

47 lines
1.5 KiB
Ruby
Executable File

class PaperCriteria
include Mongoid::Document
include Mongoid::Timestamps
include Slug
field :title,as: :slug_title, localize: true
field :description, localize: true
field :content, localize: true
field :start_date, type: DateTime
field :end_date, type: DateTime
field :sending_time, type: DateTime
field :sending_title, localize: true
field :sending_notes
field :language_to_send, type: Array, :default => ["en","zh_tw"]
field :receivers, type: Array, :default => ["subscriber"]
field :other_emails
field :invalid_emails, type: Array, :default => []
field :send_failed_emails, type: Array, :default => []
field :email_sentdate, :type => DateTime
field :banner_image, type: BSON::ObjectId
mount_uploader :image, ImageUploader
def epaper_topics
tmp = EPaperTopic.where(:period.gte => self.start_date.in_time_zone(Time.zone.utc_offset / 3600), :period.lte => self.end_date.in_time_zone(Time.zone.utc_offset / 3600)).can_display
tmp = EPaperTopic.where(:period.gte => self.start_date.in_time_zone(Time.zone.utc_offset / 3600), :period.lte => self.end_date.in_time_zone(Time.zone.utc_offset / 3600)).limit(1) if tmp.first.nil?
tmp
end
def other_emails_ids
if !self.other_emails.nil?
return self.other_emails.split(",")
else
return []
end
end
def get_email_sentdate
_email_sentdate = self.email_sentdate
if _email_sentdate && _email_sentdate < DateTime.now
_email_sentdate = nil
end
_email_sentdate
end
end