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,4 +0,0 @@
class Widget
class Feed < ActiveRecord::Base
end
end

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

View File

@@ -1,6 +1,8 @@
class CreateWidgetFeeds < ActiveRecord::Migration
def change
create_table :widget_feeds do |t|
t.string :kind
t.timestamps null: false
end
end
end

View File

@@ -1,6 +0,0 @@
class CreateFeeds < ActiveRecord::Migration
def change
create_table :feeds do |t|
end
end
end

View File

@@ -11,7 +11,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 20180519132715) do
ActiveRecord::Schema.define(version: 20180519132610) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -378,9 +378,6 @@ ActiveRecord::Schema.define(version: 20180519132715) do
add_index "failed_census_calls", ["user_id"], name: "index_failed_census_calls_on_user_id", using: :btree
create_table "feeds", force: :cascade do |t|
end
create_table "flags", force: :cascade do |t|
t.integer "user_id"
t.string "flaggable_type"
@@ -1238,6 +1235,9 @@ ActiveRecord::Schema.define(version: 20180519132715) do
end
create_table "widget_feeds", force: :cascade do |t|
t.string "kind"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
add_foreign_key "administrators", "users"