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