Files
old-saburly-wagtail-web/env/lib/python3.10/site-packages/wagtail/migrations/0002_initial_data.py

110 lines
3.0 KiB
Python
Raw Normal View History

2024-08-27 20:33:44 +02:00
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),
]