Repository URL to install this package:
|
Version:
2.4.1rc1 ▾
|
# -*- coding: utf-8 -*-
from django.conf import settings
from django.db import migrations, models
import wagtail.search.index
def set_page_path_collation(apps, schema_editor):
"""
Treebeard's path comparison logic can fail on certain locales such as sk_SK, which
sort numbers after letters. To avoid this, we explicitly set the collation for the
'path' column to the (non-locale-specific) 'C' collation.
See: https://groups.google.com/d/msg/wagtail/q0leyuCnYWI/I9uDvVlyBAAJ
"""
if schema_editor.connection.vendor == 'postgresql':
schema_editor.execute("""
ALTER TABLE wagtailcore_page ALTER COLUMN path TYPE VARCHAR(255) COLLATE "C"
""")
class Migration(migrations.Migration):
dependencies = [
('auth', '0001_initial'),
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('contenttypes', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='GroupPagePermission',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
(
'permission_type',
models.CharField(choices=[('add', 'Add'), ('edit', 'Edit'), ('publish', 'Publish')], max_length=20)
),
('group', models.ForeignKey(on_delete=models.CASCADE, to='auth.Group', related_name='page_permissions')),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Page',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('path', models.CharField(max_length=255, unique=True)),
('depth', models.PositiveIntegerField()),
('numchild', models.PositiveIntegerField(default=0)),
('title', models.CharField(
max_length=255,
help_text="The page title as you'd like it to be seen by the public"
)),
('slug', models.SlugField(
help_text='The name of the page as it will appear in URLs e.g http://domain.com/blog/[my-slug]/'
)),
('live', models.BooleanField(default=True, editable=False)),
('has_unpublished_changes', models.BooleanField(default=False, editable=False)),
('url_path', models.CharField(blank=True, max_length=255, editable=False)),
('seo_title', models.CharField(
blank=True,
max_length=255,
help_text=(
"Optional. 'Search Engine Friendly' title."
" This will appear at the top of the browser window."
),
verbose_name='Page title'
)),
('show_in_menus', models.BooleanField(
default=False,
help_text='Whether a link to this page will appear in automatically generated menus'
)),
('search_description', models.TextField(blank=True)),
('go_live_at', models.DateTimeField(
blank=True,
verbose_name='Go live date/time',
null=True, help_text='Please add a date-time in the form YYYY-MM-DD hh:mm:ss.'
)),
('expire_at', models.DateTimeField(
blank=True,
verbose_name='Expiry date/time',
null=True,
help_text='Please add a date-time in the form YYYY-MM-DD hh:mm:ss.'
)),
('expired', models.BooleanField(default=False, editable=False)),
('content_type', models.ForeignKey(on_delete=models.CASCADE, to='contenttypes.ContentType', related_name='pages')),
('owner', models.ForeignKey(
on_delete=models.CASCADE,
blank=True, null=True, to=settings.AUTH_USER_MODEL, editable=False, related_name='owned_pages'
)),
],
options={
'abstract': False,
},
bases=(wagtail.search.index.Indexed, models.Model),
),
migrations.RunPython(
set_page_path_collation, migrations.RunPython.noop
),
migrations.CreateModel(
name='PageRevision',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('submitted_for_moderation', models.BooleanField(default=False)),
('created_at', models.DateTimeField(auto_now_add=True)),
('content_json', models.TextField()),
('approved_go_live_at', models.DateTimeField(blank=True, null=True)),
('page', models.ForeignKey(on_delete=models.CASCADE, to='wagtailcore.Page', related_name='revisions')),
('user', models.ForeignKey(on_delete=models.CASCADE, blank=True, null=True, to=settings.AUTH_USER_MODEL)),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='PageViewRestriction',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('password', models.CharField(max_length=255)),
('page', models.ForeignKey(on_delete=models.CASCADE, to='wagtailcore.Page', related_name='view_restrictions')),
],
options={
},
bases=(models.Model,),
),
migrations.CreateModel(
name='Site',
fields=[
('id', models.AutoField(serialize=False, verbose_name='ID', primary_key=True, auto_created=True)),
('hostname', models.CharField(max_length=255, db_index=True)),
('port', models.IntegerField(
default=80,
help_text=(
'Set this to something other than 80 if you need a specific port number'
' to appear in URLs (e.g. development on port 8000).'
' Does not affect request handling (so port forwarding still works).'
)
)),
('is_default_site', models.BooleanField(
default=False,
help_text=(
'If true, this site will handle requests for all other hostnames'
' that do not have a site entry of their own'
)
)),
('root_page', models.ForeignKey(on_delete=models.CASCADE, to='wagtailcore.Page', related_name='sites_rooted_here')),
],
options={
},
bases=(models.Model,),
),
migrations.AlterUniqueTogether(
name='site',
unique_together=set([('hostname', 'port')]),
),
migrations.AddField(
model_name='grouppagepermission',
name='page',
field=models.ForeignKey(on_delete=models.CASCADE, to='wagtailcore.Page', related_name='group_permissions'),
preserve_default=True,
),
]