From 7c17eea6a3d56d41a9c2d0541b1b2d8d338d38d3 Mon Sep 17 00:00:00 2001 From: rgarcia Date: Tue, 29 May 2018 18:26:20 +0200 Subject: [PATCH] Refactor widget feed from activemodel to activecord --- app/controllers/admin/widget/feed.rb | 4 - app/models/widget.rb | 2 - app/models/widget/card.rb | 18 ++--- app/models/widget/feed.rb | 75 ++++++++----------- .../20180519132610_create_widget_feeds.rb | 2 + db/migrate/20180519132715_create_feeds.rb | 6 -- db/schema.rb | 8 +- 7 files changed, 47 insertions(+), 68 deletions(-) delete mode 100644 app/controllers/admin/widget/feed.rb delete mode 100644 app/models/widget.rb delete mode 100644 db/migrate/20180519132715_create_feeds.rb diff --git a/app/controllers/admin/widget/feed.rb b/app/controllers/admin/widget/feed.rb deleted file mode 100644 index aa3c63664..000000000 --- a/app/controllers/admin/widget/feed.rb +++ /dev/null @@ -1,4 +0,0 @@ -class Widget - class Feed < ActiveRecord::Base - end -end \ No newline at end of file diff --git a/app/models/widget.rb b/app/models/widget.rb deleted file mode 100644 index 2cf6af02d..000000000 --- a/app/models/widget.rb +++ /dev/null @@ -1,2 +0,0 @@ -class Widget -end \ No newline at end of file diff --git a/app/models/widget/card.rb b/app/models/widget/card.rb index fdc41d295..b408cc0a9 100644 --- a/app/models/widget/card.rb +++ b/app/models/widget/card.rb @@ -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 \ No newline at end of file diff --git a/app/models/widget/feed.rb b/app/models/widget/feed.rb index b26097686..00b2a54e0 100644 --- a/app/models/widget/feed.rb +++ b/app/models/widget/feed.rb @@ -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 \ No newline at end of file diff --git a/db/migrate/20180519132610_create_widget_feeds.rb b/db/migrate/20180519132610_create_widget_feeds.rb index d6bb42cb1..4b7682a59 100644 --- a/db/migrate/20180519132610_create_widget_feeds.rb +++ b/db/migrate/20180519132610_create_widget_feeds.rb @@ -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 diff --git a/db/migrate/20180519132715_create_feeds.rb b/db/migrate/20180519132715_create_feeds.rb deleted file mode 100644 index c096a5914..000000000 --- a/db/migrate/20180519132715_create_feeds.rb +++ /dev/null @@ -1,6 +0,0 @@ -class CreateFeeds < ActiveRecord::Migration - def change - create_table :feeds do |t| - end - end -end diff --git a/db/schema.rb b/db/schema.rb index be1baa18b..f32a174eb 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -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"