# encoding: utf-8 class Survey include Mongoid::Document include Mongoid::Timestamps scope :available_for_lang, ->(locale){ where("available_for_#{locale}".to_sym => true) } scope :can_display, where(is_hidden: false) field :title, :localize => true field :description, :localize => true field :create_user_id field :update_user_id field :postdate, :type => DateTime field :deadline, :type => DateTime field :is_hidden, :type => Boolean, :default => false validates :title, :at_least_one => true has_many :survey_questions, :autosave => true, :dependent => :destroy has_many :survey_answers, :dependent => :destroy accepts_nested_attributes_for :survey_questions, :allow_destroy => true before_save :check_deadline, :update_avliable_language def time_range r = "#{self.postdate.to_date}" r += "- #{self.deadline.to_date}" if self.deadline r end protected def check_deadline if(!self.deadline.nil? and (self.deadline < self.postdate )) self.deadline = nil end end def update_avliable_language VALID_LOCALES.each do |locale| if (title_translations[locale].blank? rescue true) self["available_for_#{locale}".to_sym] = false else self["available_for_#{locale}".to_sym] = true end end end end