personal-project/app/models/project.rb

48 lines
1.1 KiB
Ruby
Raw Normal View History

2014-07-04 06:14:37 +00:00
class Project
include Mongoid::Document
include Mongoid::Timestamps
include OrbitModel::Status
include Slug
belongs_to :project_type
belongs_to :member_profile
field :project_title, as: :slug_title, localize: true
field :job_title, localize: true
field :participator, localize: true
field :unit, localize: true
2014-07-14 13:31:55 +00:00
field :note, localize: true
2014-07-04 06:14:37 +00:00
field :year
field :language
field :keywords
field :abstract
field :period_start_date, :type => Date
field :period_end_date, :type => Date
field :url
2014-07-14 13:31:55 +00:00
field :rss2_id
2014-07-04 06:14:37 +00:00
field :create_user_id, :type => BSON::ObjectId
field :update_user_id, :type => BSON::ObjectId
paginates_per 10
has_many :project_files, :autosave => true, :dependent => :destroy
accepts_nested_attributes_for :project_files, :allow_destroy => true
before_validation :add_http
def duration
"#{self.period_start_date.strftime("%Y.%m")} ~ #{self.period_end_date.strftime("%Y.%m")}"
end
protected
def add_http
unless self.url.blank? || self.url[/^http:\/\//] || self.url[/^https:\/\//]
self.url = 'http://' + self.url
end
end
end