remove data migration from 0010, create 0014 with optional data migration (does nothing if already migrated)
This commit is contained in:
parent
18ea7bbd88
commit
678bd1ab9b
2 changed files with 43 additions and 29 deletions
|
|
@ -4,37 +4,9 @@ from __future__ import unicode_literals
|
||||||
import aldryn_apphooks_config.fields
|
import aldryn_apphooks_config.fields
|
||||||
import app_data.fields
|
import app_data.fields
|
||||||
import djangocms_text_ckeditor.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
|
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):
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|
@ -120,5 +92,4 @@ class Migration(migrations.Migration):
|
||||||
name='sites',
|
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)'),
|
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)
|
|
||||||
]
|
]
|
||||||
|
|
|
||||||
43
djangocms_blog/migrations/0014_auto_20160215_1331.py
Normal file
43
djangocms_blog/migrations/0014_auto_20160215_1331.py
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from cms.models import Page
|
||||||
|
from cms.utils.i18n import get_language_list
|
||||||
|
from django.db import migrations, models
|
||||||
|
|
||||||
|
|
||||||
|
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, created = BlogConfig.objects.get_or_create(namespace=page.application_namespace)
|
||||||
|
if not BlogConfigTranslation.objects.exists():
|
||||||
|
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.filter(app_config__isnull=True):
|
||||||
|
item.app_config = config
|
||||||
|
item.save()
|
||||||
|
|
||||||
|
|
||||||
|
def backwards(apps, schema_editor):
|
||||||
|
# No need for backward data migration
|
||||||
|
pass
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('djangocms_blog', '0013_auto_20160201_2235'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.RunPython(forwards, backwards),
|
||||||
|
]
|
||||||
Loading…
Add table
Add a link
Reference in a new issue