23 lines
848 B
Ruby
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
|