Repository URL to install this package:
|
Version:
2.4.1rc1 ▾
|
# -*- coding: utf-8 -*-
from django.db import migrations
def initial_data(apps, schema_editor):
ContentType = apps.get_model('contenttypes.ContentType')
Group = apps.get_model('auth.Group')
Page = apps.get_model('wagtailcore.Page')
Site = apps.get_model('wagtailcore.Site')
GroupPagePermission = apps.get_model('wagtailcore.GroupPagePermission')
# Create page content type
page_content_type, created = ContentType.objects.get_or_create(
model='page',
app_label='wagtailcore'
)
# Create root page
root = Page.objects.create(
title="Root",
slug='root',
content_type=page_content_type,
path='0001',
depth=1,
numchild=1,
url_path='/',
)
# Create homepage
homepage = Page.objects.create(
title="Welcome to your new Wagtail site!",
slug='home',
content_type=page_content_type,
path='00010001',
depth=2,
numchild=0,
url_path='/home/',
)
# Create default site
Site.objects.create(
hostname='localhost',
root_page_id=homepage.id,
is_default_site=True
)
# Create auth groups
moderators_group = Group.objects.create(name='Moderators')
editors_group = Group.objects.create(name='Editors')
# Create group permissions
GroupPagePermission.objects.create(
group=moderators_group,
page=root,
permission_type='add',
)
GroupPagePermission.objects.create(
group=moderators_group,
page=root,
permission_type='edit',
)
GroupPagePermission.objects.create(
group=moderators_group,
page=root,
permission_type='publish',
)
GroupPagePermission.objects.create(
group=editors_group,
page=root,
permission_type='add',
)
GroupPagePermission.objects.create(
group=editors_group,
page=root,
permission_type='edit',
)
def remove_initial_data(apps, schema_editor):
"""This function does nothing. The below code is commented out together
with an explanation of why we don't need to bother reversing any of the
initial data"""
pass
# This does not need to be deleted, Django takes care of it.
# page_content_type = ContentType.objects.get(
# model='page',
# app_label='wagtailcore',
# )
# Page objects: Do nothing, the table will be deleted when reversing 0001
# Do not reverse Site creation since other models might depend on it
# Remove auth groups -- is this safe? External objects might depend
# on these groups... seems unsafe.
# Group.objects.filter(
# name__in=('Moderators', 'Editors')
# ).delete()
#
# Likewise, we're leaving all GroupPagePermission unchanged as users may
# have been assigned such permissions and its harmless to leave them.
class Migration(migrations.Migration):
dependencies = [
('wagtailcore', '0001_initial'),
]
operations = [
migrations.RunPython(initial_data, remove_initial_data),
]