2011-06-24 13:28:19 +02:00
|
|
|
class Post
|
|
|
|
include DataMapper::Resource
|
|
|
|
include DataMapper::Validate
|
|
|
|
|
|
|
|
property :id, Serial
|
|
|
|
property :title, Text, :required => true
|
2011-06-28 21:37:37 +02:00
|
|
|
property :written, Time, :default => lambda {|r, p| Time.now }
|
2011-06-24 13:28:19 +02:00
|
|
|
property :released, Boolean, :default => false
|
|
|
|
property :markup, Text, :default => 'textile'
|
|
|
|
property :content, Text
|
|
|
|
|
|
|
|
belongs_to :account
|
2011-07-05 18:32:53 +02:00
|
|
|
has n, :comments
|
2011-07-27 18:03:53 +02:00
|
|
|
has n, :tags, :through => Resource
|
2011-07-05 19:02:26 +02:00
|
|
|
|
|
|
|
def self.get_released id
|
|
|
|
first(:id => id, :released => true)
|
|
|
|
end
|
2011-07-05 19:18:11 +02:00
|
|
|
|
2011-07-15 21:21:52 +02:00
|
|
|
def self.get_all_released
|
|
|
|
all(:released => true)
|
|
|
|
end
|
|
|
|
|
2011-07-11 20:01:23 +02:00
|
|
|
def self.get_page page=0
|
2011-08-10 19:49:28 +02:00
|
|
|
get_all_released.all(:limit => 10, :offset => (page * 10),
|
2011-07-11 20:01:23 +02:00
|
|
|
:order => [:written.desc])
|
|
|
|
end
|
|
|
|
|
2011-07-15 21:21:52 +02:00
|
|
|
def self.page_count
|
|
|
|
(get_all_released.count / 10).ceil
|
|
|
|
end
|
|
|
|
|
2011-07-05 21:37:18 +02:00
|
|
|
def self.find_of_day time
|
2011-07-11 20:01:23 +02:00
|
|
|
all(:written => time..(time+86400), :releaed => true)
|
2011-07-05 21:37:18 +02:00
|
|
|
end
|
|
|
|
|
2011-07-05 19:18:11 +02:00
|
|
|
def acknowledged_comments
|
|
|
|
comments(:acknowledged => true)
|
|
|
|
end
|
2011-08-09 18:05:59 +02:00
|
|
|
|
2011-08-10 09:45:39 +02:00
|
|
|
# checks if a post has this tag
|
2011-08-09 18:05:59 +02:00
|
|
|
def has_tag tag
|
|
|
|
tags.each do |t|
|
|
|
|
if t.id == tag.id
|
|
|
|
return true
|
|
|
|
end
|
|
|
|
end
|
|
|
|
false
|
|
|
|
end
|
2011-08-10 09:45:39 +02:00
|
|
|
|
|
|
|
# sets all tags for this post
|
2011-08-11 13:02:59 +02:00
|
|
|
def set_tags new_tags
|
|
|
|
tags = []
|
|
|
|
new_tags.each do |tag_id|
|
|
|
|
tags << Tag.first(:id => tag_id)
|
2011-08-10 09:45:39 +02:00
|
|
|
end
|
|
|
|
end
|
2011-06-24 13:28:19 +02:00
|
|
|
end
|