Refactor widget feed from activemodel to activecord

This commit is contained in:
rgarcia
2018-05-29 18:26:20 +02:00
parent 304143d051
commit 7c17eea6a3
7 changed files with 47 additions and 68 deletions

View File

@@ -1,2 +0,0 @@
class Widget
end

View File

@@ -1,15 +1,13 @@
class Widget
class Card < ActiveRecord::Base
include Imageable
class Widget::Card < ActiveRecord::Base
include Imageable
self.table_name = "widget_cards"
self.table_name = "widget_cards"
def self.header
where(header: true)
end
def self.header
where(header: true)
end
def self.body
where(header: false).order(:created_at)
end
def self.body
where(header: false).order(:created_at)
end
end

View File

@@ -1,46 +1,37 @@
class Widget
class Feed
include ActiveModel::Model
class Widget::Feed < ActiveRecord::Base
self.table_name = "widget_feeds"
KINDS = %w(proposals debates processes)
attr_accessor :kind
def initialize(attributes={})
super
@kind = attributes[:kind]
end
def active?(kind)
Setting["feature.homepage.widgets.feeds.#{kind}"].present?
end
def self.active
KINDS.collect do |kind|
feed = new(kind: kind)
feed if feed.active?(kind)
end.compact
end
def items
send(kind)
end
def proposals
Proposal.sort_by_hot_score.limit(limit)
end
def debates
Debate.sort_by_hot_score.limit(limit)
end
def processes
Legislation::Process.open.limit(limit)
end
def limit
3
end
KINDS = %w(proposals debates processes)
def active?(kind)
Setting["feature.homepage.widgets.feeds.#{kind}"].present?
end
def self.active
KINDS.collect do |kind|
feed = new(kind: kind)
feed if feed.active?(kind)
end.compact
end
def items
send(kind)
end
def proposals
Proposal.sort_by_hot_score.limit(limit)
end
def debates
Debate.sort_by_hot_score.limit(limit)
end
def processes
Legislation::Process.open.limit(limit)
end
def limit
3
end
end