diff --git a/app/controllers/admin/widget/cards_controller.rb b/app/controllers/admin/widget/cards_controller.rb index d2d028e9a..d106c9e60 100644 --- a/app/controllers/admin/widget/cards_controller.rb +++ b/app/controllers/admin/widget/cards_controller.rb @@ -4,10 +4,8 @@ class Admin::Widget::CardsController < Admin::BaseController def new if header_card? @card = ::Widget::Card.new(header: header_card?) - elsif params[:page_id] != 0 - @card = ::Widget::Card.new(site_customization_page_id: params[:page_id]) else - @card = ::Widget::Card.new + @card = ::Widget::Card.new(site_customization_page_id: params[:page_id]) end end @@ -59,7 +57,7 @@ class Admin::Widget::CardsController < Admin::BaseController def redirect_to_customization_page_cards_or_homepage notice = t("admin.site_customization.pages.cards.#{params[:action]}.notice") - if params[:page_id] != 0 + if @card.site_customization_page_id redirect_to admin_site_customization_page_cards_path(page), notice: notice else redirect_to admin_homepage_url, notice: notice diff --git a/app/models/widget/card.rb b/app/models/widget/card.rb index 0ef8f591f..bc7da86d2 100644 --- a/app/models/widget/card.rb +++ b/app/models/widget/card.rb @@ -16,7 +16,7 @@ class Widget::Card < ActiveRecord::Base end def self.body - where(header: false, site_customization_page_id: 0).order(:created_at) + where(header: false, site_customization_page_id: nil).order(:created_at) end #add widget cards to custom pages diff --git a/db/migrate/20181218164126_add_site_customization_page_to_widget_cards.rb b/db/migrate/20181218164126_add_site_customization_page_to_widget_cards.rb index 7f65ed60d..f4dad35fc 100644 --- a/db/migrate/20181218164126_add_site_customization_page_to_widget_cards.rb +++ b/db/migrate/20181218164126_add_site_customization_page_to_widget_cards.rb @@ -1,5 +1,5 @@ class AddSiteCustomizationPageToWidgetCards < ActiveRecord::Migration def change - add_reference :widget_cards, :site_customization_page, index: true, default: 0 + add_reference :widget_cards, :site_customization_page, index: true end end \ No newline at end of file diff --git a/db/schema.rb b/db/schema.rb index df8c3b37f..5fe814447 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1503,7 +1503,7 @@ ActiveRecord::Schema.define(version: 20181218164126) do t.boolean "header", default: false t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.integer "site_customization_page_id", default: 0 + t.integer "site_customization_page_id" end add_index "widget_cards", ["site_customization_page_id"], name: "index_widget_cards_on_site_customization_page_id", using: :btree diff --git a/spec/models/widget/card_spec.rb b/spec/models/widget/card_spec.rb index 428135b30..b9816f213 100644 --- a/spec/models/widget/card_spec.rb +++ b/spec/models/widget/card_spec.rb @@ -26,11 +26,14 @@ describe Widget::Card do it "returns cards for the homepage body" do header = create(:widget_card, header: true) - card1 = create(:widget_card, header: false, title: "Card 1", site_customization_page_id: 0) - card2 = create(:widget_card, header: false, title: "Card 2", site_customization_page_id: 0) - card3 = create(:widget_card, header: false, title: "Card 3", site_customization_page_id: 0) + card1 = create(:widget_card, header: false) + card2 = create(:widget_card, header: false) + page_card = create(:widget_card, header: false, page: create(:site_customization_page)) - expect(Widget::Card.body).to eq([card1, card2, card3]) + expect(Widget::Card.body).to include(card1) + expect(Widget::Card.body).to include(card2) + expect(Widget::Card.body).not_to include(header) + expect(Widget::Card.body).not_to include(page_card) end end