48 lines
1.1 KiB
Ruby
48 lines
1.1 KiB
Ruby
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
|
|
field :note, localize: true
|
|
|
|
field :year
|
|
field :language
|
|
field :keywords
|
|
field :abstract
|
|
field :period_start_date, :type => Date
|
|
field :period_end_date, :type => Date
|
|
field :url
|
|
|
|
field :rss2_id
|
|
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 |