7dd3f492b8
Fix broken migration
124 lines
5.9 KiB
Python
124 lines
5.9 KiB
Python
#-*- coding: utf-8 -*-
|
|
from __future__ import unicode_literals
|
|
|
|
import aldryn_apphooks_config.fields
|
|
import app_data.fields
|
|
import djangocms_text_ckeditor.fields
|
|
from cms.models import Page
|
|
from cms.utils.i18n import get_language_list
|
|
from django.db import models, migrations
|
|
|
|
|
|
def forwards(apps, schema_editor):
|
|
BlogConfig = apps.get_model('djangocms_blog', 'BlogConfig')
|
|
BlogConfigTranslation = apps.get_model('djangocms_blog', 'BlogConfigTranslation')
|
|
Post = apps.get_model('djangocms_blog', 'Post')
|
|
BlogCategory = apps.get_model('djangocms_blog', 'BlogCategory')
|
|
GenericBlogPlugin = apps.get_model('djangocms_blog', 'GenericBlogPlugin')
|
|
LatestPostsPlugin = apps.get_model('djangocms_blog', 'LatestPostsPlugin')
|
|
AuthorEntriesPlugin = apps.get_model('djangocms_blog', 'AuthorEntriesPlugin')
|
|
config = None
|
|
for page in Page.objects.drafts().filter(application_urls='BlogApp'):
|
|
config = BlogConfig.objects.create(namespace=page.application_namespace)
|
|
for lang in get_language_list():
|
|
title = page.get_title(lang)
|
|
translation = BlogConfigTranslation.objects.create(language_code=lang, master_id=config.pk, app_title=title)
|
|
if config:
|
|
for model in (Post, BlogCategory, GenericBlogPlugin, LatestPostsPlugin, AuthorEntriesPlugin):
|
|
for item in model.objects.all():
|
|
item.app_config = config
|
|
item.save()
|
|
|
|
|
|
def backwards(apps, schema_editor):
|
|
# No need for backward data migration
|
|
pass
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
('cms', '__latest__'),
|
|
('djangocms_blog', '0009_latestpostsplugin_tags_new'),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='BlogConfig',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)),
|
|
('type', models.CharField(verbose_name='type', max_length=100)),
|
|
('namespace', models.CharField(default=None, verbose_name='instance namespace', unique=True, max_length=100)),
|
|
('app_data', app_data.fields.AppDataField(editable=False, default='{}')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='BlogConfigTranslation',
|
|
fields=[
|
|
('id', models.AutoField(auto_created=True, verbose_name='ID', serialize=False, primary_key=True)),
|
|
('language_code', models.CharField(db_index=True, verbose_name='Language', max_length=15)),
|
|
('app_title', models.CharField(verbose_name='application title', max_length=234)),
|
|
('master', models.ForeignKey(editable=False, to='djangocms_blog.BlogConfig', related_name='translations', null=True)),
|
|
],
|
|
options={
|
|
'verbose_name': 'blog config Translation',
|
|
'db_table': 'djangocms_blog_blogconfig_translation',
|
|
'default_permissions': (),
|
|
'db_tablespace': '',
|
|
'managed': True,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='GenericBlogPlugin',
|
|
fields=[
|
|
('cmsplugin_ptr', models.OneToOneField(parent_link=True, serialize=False, primary_key=True, auto_created=True, to='cms.CMSPlugin')),
|
|
('app_config', aldryn_apphooks_config.fields.AppHookConfigField(verbose_name='app. config', blank=True, to='djangocms_blog.BlogConfig', help_text='When selecting a value, the form is reloaded to get the updated default')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
bases=('cms.cmsplugin',),
|
|
),
|
|
migrations.AlterField(
|
|
model_name='posttranslation',
|
|
name='abstract',
|
|
field=djangocms_text_ckeditor.fields.HTMLField(default='', verbose_name='abstract', blank=True),
|
|
),
|
|
migrations.AddField(
|
|
model_name='authorentriesplugin',
|
|
name='app_config',
|
|
field=aldryn_apphooks_config.fields.AppHookConfigField(default=None, blank=True, verbose_name='app. config', to='djangocms_blog.BlogConfig', help_text='When selecting a value, the form is reloaded to get the updated default', null=True),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AddField(
|
|
model_name='blogcategory',
|
|
name='app_config',
|
|
field=aldryn_apphooks_config.fields.AppHookConfigField(default=None, verbose_name='app. config', to='djangocms_blog.BlogConfig', help_text='When selecting a value, the form is reloaded to get the updated default', null=True),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AddField(
|
|
model_name='latestpostsplugin',
|
|
name='app_config',
|
|
field=aldryn_apphooks_config.fields.AppHookConfigField(default=None, blank=True, verbose_name='app. config', to='djangocms_blog.BlogConfig', help_text='When selecting a value, the form is reloaded to get the updated default', null=True),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AddField(
|
|
model_name='post',
|
|
name='app_config',
|
|
field=aldryn_apphooks_config.fields.AppHookConfigField(default=None, verbose_name='app. config', to='djangocms_blog.BlogConfig', help_text='When selecting a value, the form is reloaded to get the updated default', null=True),
|
|
preserve_default=False,
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='blogconfigtranslation',
|
|
unique_together=set([('language_code', 'master')]),
|
|
),
|
|
migrations.AlterField(
|
|
model_name='post',
|
|
name='sites',
|
|
field=models.ManyToManyField(to='sites.Site', help_text='Select sites in which to show the post. If none is set it will be visible in all the configured sites.', blank=True, verbose_name='Site(s)'),
|
|
),
|
|
migrations.RunPython(forwards, backwards)
|
|
]
|