diff --git a/pages/app/presenters/refinery/pages/page_part_section_presenter.rb b/pages/app/presenters/refinery/pages/page_part_section_presenter.rb index 459cb5442c..66560922f0 100644 --- a/pages/app/presenters/refinery/pages/page_part_section_presenter.rb +++ b/pages/app/presenters/refinery/pages/page_part_section_presenter.rb @@ -6,13 +6,7 @@ class PagePartSectionPresenter < SectionPresenter def initialize(page_part) super() self.fallback_html = page_part.body.html_safe if page_part.body - self.id = convert_title_to_id(page_part.title) if page_part.title - end - - private - - def convert_title_to_id(title) - title.to_s.gsub(/\ /, '').underscore.to_sym + self.id = page_part.slug.to_sym if page_part.slug end end end diff --git a/pages/db/migrate/20150720155305_update_slug_and_title_in_refinery_page_parts.rb b/pages/db/migrate/20150720155305_update_slug_and_title_in_refinery_page_parts.rb new file mode 100644 index 0000000000..1709a3947f --- /dev/null +++ b/pages/db/migrate/20150720155305_update_slug_and_title_in_refinery_page_parts.rb @@ -0,0 +1,13 @@ +class UpdateSlugAndTitleInRefineryPageParts < ActiveRecord::Migration + def change + begin + ::Refinery::PagePart.all.each do |pp| + pp.title ||= pp.slug + pp.slug = pp.slug.downcase.gsub(" ", "_") + pp.save! + end + rescue NameError + warn "Refinery::PagePart was not defined!" + end + end +end diff --git a/pages/spec/presenters/refinery/pages/content_page_presenter_spec.rb b/pages/spec/presenters/refinery/pages/content_page_presenter_spec.rb index 5b7dc27c27..0fcceb7618 100644 --- a/pages/spec/presenters/refinery/pages/content_page_presenter_spec.rb +++ b/pages/spec/presenters/refinery/pages/content_page_presenter_spec.rb @@ -3,8 +3,8 @@ module Refinery module Pages describe ContentPagePresenter do - let(:part) { double(PagePart, :body => 'part_body', :title => 'A Wonderful Page Part') } - let(:part2) { double(PagePart, :body => 'part_body2', :title => 'Another Wonderful Page Part') } + let(:part) { double(PagePart, :body => 'part_body', :slug => 'a_wonderful_page_part', :title => 'A Wonderful Page Part') } + let(:part2) { double(PagePart, :body => 'part_body2', :slug => 'a_wonderful_page_part', :title => 'Another Wonderful Page Part') } let(:title) { 'This Great Page' } describe "when building for page" do diff --git a/pages/spec/presenters/refinery/pages/page_part_section_presenter_spec.rb b/pages/spec/presenters/refinery/pages/page_part_section_presenter_spec.rb index 9701d1bc7e..da1f48838b 100644 --- a/pages/spec/presenters/refinery/pages/page_part_section_presenter_spec.rb +++ b/pages/spec/presenters/refinery/pages/page_part_section_presenter_spec.rb @@ -4,21 +4,21 @@ module Refinery module Pages describe PagePartSectionPresenter do it "can be built from a page part" do - part = double(PagePart, :body => 'part_body', :title => 'A Wonderful Page Part') + part = double(PagePart, :body => 'part_body', :slug => 'a_wonderful_page_part', :title => 'A Wonderful Page Part') section = PagePartSectionPresenter.new(part) expect(section.fallback_html).to eq('part_body') expect(section.id).to eq(:a_wonderful_page_part) end it "marks the body as html safe" do - part = double(PagePart, :body => '

part_body

', :title => nil) + part = double(PagePart, :body => '

part_body

', :slug => nil, :title => nil) section = PagePartSectionPresenter.new(part) expect(section.fallback_html).to be_html_safe expect(section.wrapped_html).to xml_eq(%q{

part_body

}) end it "handles a nil page body" do - part = double(PagePart, :body => nil, :title => nil) + part = double(PagePart, :body => nil, :slug => nil, :title => nil) section = PagePartSectionPresenter.new(part) expect(section.fallback_html).to be_nil expect(section.wrapped_html).to be_nil @@ -26,7 +26,7 @@ module Pages end it "has no id if title is nil" do - part = double(PagePart, :body => 'foobar', :title => nil) + part = double(PagePart, :body => 'foobar', :slug => nil, :title => nil) section = PagePartSectionPresenter.new(part) expect(section.id).to be_nil end