class BlogArchivesBlock < Block include ActionView::Helpers::TagHelper include ActionView::Helpers::UrlHelper include ActionView::Helpers include Rails.application.routes.url_helpers include ActionView::Helpers::AssetTagHelper include DatesHelper def self.description _('Blog posts') end def default_title _('Blog posts') end settings_items :blog_id, Integer def blog blog_id && owner.blogs.exists?(blog_id) ? owner.blogs.find(blog_id) : owner.blog end def visible_posts(person) #FIXME Performance issues with display_to. Must convert it to a scope. # Checkout this page for further information: http://noosfero.org/Development/ActionItem2705 blog.posts.published.native_translations #.select {|post| post.display_to?(person)} end def content(args={}) owner_blog = self.blog return nil unless owner_blog results = '' posts = visible_posts(args[:person]) posts.except(:order).count(:all, :group => 'EXTRACT(YEAR FROM published_at)').sort_by {|year, count| -year.to_i}.each do |year, count| results << content_tag('li', content_tag('strong', "#{year} (#{count})")) results << "