class Course < ActiveRecord::Base
  include Redmine::SafeAttributes
  
  attr_accessible :code, :extra, :name, :state, :tea_id, :time , :location, :state, :term, :password
  belongs_to :project, :class_name => 'Project', :foreign_key => :extra # 定义一个project方法， 该方法通过extra来调用project表
  belongs_to :teacher, :class_name => 'User', :foreign_key => :tea_id  # 定义一个方法teacher，该方法通过tea_id来调用User表
  belongs_to :school, :class_name => 'School', :foreign_key => :school_id #定义一个方法school，该方法通过school_id来调用School表
  has_many :bid
  validates_presence_of :password, :term
  validates_format_of  :class_period, :message => "class period can only digital!", :with =>/^[1-9]\d*$/
  safe_attributes 'extra',
  'time',
  'name',
  'extra',
  'code',
  'location',
  'tea_id',
  'password',
  'term',
  'password'

   #自定义验证
  def validate
    if  !class_period.match([0-9])
      errors.add_to_base("class period can only digital")
    end
  end

  def get_endup_time
    begin
      end_time = Time.parse(self.endup_time)
    rescue Exception => e
      end_time = Time.parse("3000-01-01")
      Rails.logger.error "[Error] course endup_time error. ===> #{e}"
    ensure 
      return end_time
    end
  end

  def get_time
    begin
      time = Date.new(self.time).to_time
    rescue Exception => e
      time = Time.parse("3000-01-01")
      Rails.logger.error "[Error] course time error. ===> #{e}"
    ensure
      return time
    end
  end

end
