docbrown/app/controllers/sidebars_controller.rb
2021-04-19 10:01:03 +07:00

23 lines
848 B
Ruby

class SidebarsController < ApplicationController
layout false
before_action :set_cache_control_headers, only: %i[show]
def show
get_latest_campaign_articles
set_surrogate_key_header "home-sidebar"
end
private
def get_latest_campaign_articles
campaign_articles_scope = Article.tagged_with(Campaign.current.featured_tags, any: true)
.where("published_at > ? AND score > ?", Settings::Campaign.articles_expiry_time.weeks.ago, 0)
.order(hotness_score: :desc)
requires_approval = Campaign.current.articles_require_approval?
campaign_articles_scope = campaign_articles_scope.where(approved: true) if requires_approval
@campaign_articles_count = campaign_articles_scope.count
@latest_campaign_articles = campaign_articles_scope.limit(5).pluck(:path, :title, :comments_count, :created_at)
end
end