symposion_app/cms_pages/migrations/0008_auto_20160916_0417.py

53 lines
1.4 KiB
Python
Raw Normal View History

September website changes - Pre-registration (#66) * Factors rendering of external links into its own template. Automagical! * Adds wagtail templates for keynotes on the front page * Migrates to Wagtail 1.6 * Migrates content pages to be a streamfield. Flexibility++. * Fixes editing of ContentPage bodies * Adds floating images to content pages * Fixes the layout of floating images * Adds anchor links to content pages. * Adds presentation link to the keynote speaker block model * LCA-ifies the schedule list * Refactors cms_pages/content_page into a new base template * cms_pages/content_page now derives from abstract_content_page * news_index_page now derives from abstract_content_page * news_page now derives from abstract_content_page.html * utility_page now uses the content_page base template * Factors out _right_floating_image.html * Themes the presentation detail page * Themes the speaker profile page. * Themes the schedule list page. * Minor work on schedule_conference.html * Themes schedule_detail.html * Replaces cradle.svg * Adds a background image to the schedule pages * Adds libravatar fallback for speaker profile images * Adds new background images (must update colophon) * Adds some magic so that we can have slightly different presentation backgrounds for different pages. * Adds the sponsor block to the bottom of the page. * Adds sponsor logos to footer. * All migrations are now in this tree * Fixes wagtail migrations * Adjusts presentation_detail to allow for miniconfs (i.e. no target audience) * Adds unpublishing to presentation detail * Adds ScheduleHeaderParagraph, which allows us to add some text to the header of schedule pages. * Adds NamedHeaderParagraph. It allows us to store header paragraphs in the CMS. * Date formatting in the schedule * First step for fixing images * Allows us to automagically load the colophon * Adds “publish changes” button. * Can login with email address
2016-09-18 10:40:55 +00:00
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
from wagtail.wagtailcore.rich_text import RichText
models = ["ContentPage", "NewsIndexPage", "NewsPage", ]
def convert_to_streamfield(apps, schema_editor):
for model_name in models:
_convert_to_streamfield(apps, model_name)
def _convert_to_streamfield(apps, model_name):
Model = apps.get_model("cms_pages", model_name)
for page in Model.objects.all():
if page.body.raw_text and not page.body:
page.body = [('rich_text', RichText(page.body.raw_text))]
page.save()
def convert_to_richtext(apps, schema_editor):
for model_name in models:
_convert_to_richtext(apps, model_name)
def _convert_to_richtext(apps, model_name):
Model = apps.get_model("cms_pages", model_name)
for page in Model.objects.all():
if page.body.raw_text is None:
raw_text = ''.join([
child.value.source for child in page.body
if child.block_type == 'rich_text'
])
page.body = raw_text
page.save()
class Migration(migrations.Migration):
dependencies = [
('cms_pages', '0007_auto_20160916_0417'),
]
operations = [
migrations.RunPython(
convert_to_streamfield,
convert_to_richtext,
),
]