Esempio n. 1
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='File',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
                ('file_path',
                 models.FileField(upload_to=content.models.content_file_name)),
                ('data_created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('price', models.BigIntegerField()),
                ('description', models.TextField(blank=True, null=True)),
                ('order', models.IntegerField(default=0)),
            ],
            options={
                'ordering': ['order'],
            },
        ),
        migrations.CreateModel(
            name='Product',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=255, unique=True)),
                ('price', models.BigIntegerField()),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('description', models.TextField(blank=True, null=True)),
                ('categories', models.ManyToManyField(to='content.Category')),
            ],
            options={
                'ordering': ['-created_at'],
            },
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('content', '0004_auto_20180527_1349'),
    ]

    operations = [
        migrations.AlterField(
            model_name='article',
            name='content',
            field=models.TextField(blank=True, default='', null=True),
        ),
        migrations.AlterField(
            model_name='article',
            name='created_at',
            field=models.ForeignKey(blank=True, default=None, null=True, on_delete=models.SET(content.models.get_sentinel_user), related_name='+', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='article',
            name='description',
            field=models.TextField(blank=True, default='', null=True),
        ),
        migrations.AlterField(
            model_name='article',
            name='edited_at',
            field=models.ForeignKey(blank=True, default=None, null=True, on_delete=models.SET(content.models.get_sentinel_user), related_name='+', to=settings.AUTH_USER_MODEL),
        ),
        migrations.AlterField(
            model_name='article',
            name='img_path',
            field=models.ImageField(blank=True, default='', null=True, upload_to='article/imgs'),
        ),
        migrations.AlterField(
            model_name='article',
            name='img_url',
            field=models.URLField(blank=True, default='', null=True),
        ),
        migrations.AlterField(
            model_name='article',
            name='intro',
            field=models.TextField(blank=True, default='', null=True),
        ),
        migrations.AlterField(
            model_name='article',
            name='published_at',
            field=models.ForeignKey(blank=True, default=None, null=True, on_delete=models.SET(content.models.get_sentinel_user), related_name='+', to=settings.AUTH_USER_MODEL),
        ),
    ]
Esempio n. 3
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id',
                 models.BigAutoField(editable=False,
                                     primary_key=True,
                                     serialize=False)),
                ('title', models.TextField(db_index=True)),
                ('alias', models.TextField(unique=True)),
                ('intro', models.TextField(default='', null=True)),
                ('content', models.TextField(default='', null=True)),
                ('img_url', models.URLField(default='', null=True)),
                ('img_path',
                 models.ImageField(default='', null=True, upload_to='')),
                ('state', models.BooleanField(db_index=True, default=False)),
                ('created',
                 models.DateTimeField(auto_now_add=True, db_index=True)),
                ('edited',
                 models.DateTimeField(auto_now_add=True, db_index=True)),
                ('published', models.DateTimeField(db_index=True, null=True)),
                ('created_at',
                 models.ForeignKey(on_delete=models.SET(
                     content.models.get_sentinel_user),
                                   related_name='+',
                                   to=settings.AUTH_USER_MODEL)),
                ('edited_at',
                 models.ForeignKey(on_delete=models.SET(
                     content.models.get_sentinel_user),
                                   related_name='+',
                                   to=settings.AUTH_USER_MODEL)),
                ('published_at',
                 models.ForeignKey(on_delete=models.SET(
                     content.models.get_sentinel_user),
                                   related_name='+',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('slug', models.SlugField(unique=True)),
                ('active', models.BooleanField(default=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.CreateModel(
            name='Post',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('title_pic', models.CharField(max_length=120)),
                ('content', models.TextField()),
                ('image_height', models.IntegerField(blank=True, null=True)),
                ('image_width', models.IntegerField(blank=True, null=True)),
                ('image',
                 models.ImageField(height_field='image_height',
                                   upload_to=content.models.post_image_upload,
                                   width_field='image_width')),
                ('share_num', models.IntegerField()),
                ('article_id', models.IntegerField()),
                ('location', models.CharField(max_length=50)),
                ('post_type', models.IntegerField()),
                ('public', models.BooleanField(default=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('category',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='category_posts',
                                   to='content.Category')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Esempio n. 5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='CMSAuthorContent',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('content_title', models.CharField(blank=True, max_length=30)),
                ('content_body', models.TextField(blank=True, max_length=300)),
                ('content_summary', models.TextField(blank=True,
                                                     max_length=60)),
                ('content_file_pdf',
                 models.FileField(blank=True,
                                  upload_to=content.models.upload_location)),
                ('content_category', models.CharField(blank=True,
                                                      max_length=50)),
                ('date_published',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='date published')),
                ('date_updated',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='date updated')),
                ('slug', models.SlugField(blank=True, unique=True)),
                ('author',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('content', '0001_initial'),
    ]

    operations = [
        migrations.AlterField(
            model_name='todolist',
            name='description',
            field=models.TextField(
                validators=[content.models.min_length_1_validator]),
        ),
        migrations.AlterField(
            model_name='todolist',
            name='title',
            field=models.CharField(
                max_length=100,
                validators=[content.models.min_length_1_validator]),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Articles',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('article_title',
                 models.CharField(blank=True,
                                  max_length=200,
                                  unique=True,
                                  verbose_name='Заголовок статьи')),
                ('article_link',
                 models.SlugField(default='',
                                  max_length=150,
                                  verbose_name='Ссылка в браузере')),
                ('metakey',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Ключевые слова')),
                ('metadesc',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Мета описание')),
                ('image',
                 models.ImageField(blank=True,
                                   upload_to=content.models.make_upload_path,
                                   verbose_name='Изображение')),
                ('article_anons',
                 ckeditor.fields.RichTextField(blank=True,
                                               verbose_name='Анонс статьи')),
                ('article_text',
                 ckeditor_uploader.fields.RichTextUploadingField(
                     blank=True, verbose_name='Полный текст статьи')),
                ('article_date',
                 models.DateTimeField(blank=True,
                                      default=django.utils.timezone.now,
                                      verbose_name='Дата публикации')),
                ('recipe',
                 models.BooleanField(default=False, verbose_name='Рецепт')),
                ('article_publish',
                 models.BooleanField(default=True,
                                     verbose_name='Опубликован')),
            ],
            options={
                'verbose_name': 'Статья, рецепт',
                'verbose_name_plural': 'Статьи и рецепты',
                'db_table': 'articles',
            },
        ),
        migrations.CreateModel(
            name='Categories',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('category_name',
                 models.CharField(db_index=True,
                                  default='',
                                  max_length=200,
                                  unique=True,
                                  verbose_name='Категория')),
                ('category_link', models.SlugField(default='',
                                                   max_length=150)),
                ('metakey',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Ключевые слова')),
                ('metadesc',
                 models.CharField(blank=True,
                                  max_length=255,
                                  verbose_name='Мета описание')),
                ('in_header',
                 models.SmallIntegerField(
                     blank=True,
                     default=0,
                     null=True,
                     verbose_name='Категория в шапке сайта')),
                ('class_in_header',
                 models.CharField(blank=True,
                                  default=False,
                                  max_length=20,
                                  null=True)),
            ],
            options={
                'verbose_name': 'категория',
                'verbose_name_plural': 'категории',
                'db_table': 'categories',
                'ordering': ['id'],
            },
        ),
        migrations.CreateModel(
            name='Comments',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('user_name',
                 models.CharField(max_length=50,
                                  verbose_name='Имя пользователя')),
                ('comment_date',
                 models.DateField(default=django.utils.timezone.now,
                                  verbose_name='Дата')),
                ('comments_text',
                 models.TextField(blank=True, verbose_name='Кометарий')),
                ('comments_article',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='content.Articles',
                                   verbose_name='Коментарий для статьи')),
            ],
            options={
                'verbose_name': 'коментарий',
                'verbose_name_plural': 'коментарии',
                'db_table': 'comments',
                'ordering': ['-comment_date'],
            },
        ),
        migrations.AddField(
            model_name='articles',
            name='category_article',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='content.Categories',
                verbose_name='Категория статьи'),
        ),
    ]
Esempio n. 8
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('core', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Blog',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, unique=True)),
                ('slug', models.SlugField(editable=False, max_length=100, unique=True)),
                ('creation_date', models.DateTimeField(auto_now_add=True)),
                ('changed_date', models.DateTimeField(auto_now=True)),
                ('is_visible', models.BooleanField(default=False)),
                ('body', models.TextField()),
                ('author', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='core.Profile')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, unique=True)),
                ('slug', models.SlugField(editable=False, max_length=100, unique=True)),
                ('creation_date', models.DateTimeField(auto_now_add=True)),
                ('changed_date', models.DateTimeField(auto_now=True)),
                ('is_visible', models.BooleanField(default=False)),
            ],
            options={
                'verbose_name_plural': 'categories',
            },
        ),
        migrations.CreateModel(
            name='ContentImage',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, unique=True)),
                ('slug', models.SlugField(editable=False, max_length=100, unique=True)),
                ('creation_date', models.DateTimeField(auto_now_add=True)),
                ('changed_date', models.DateTimeField(auto_now=True)),
                ('is_visible', models.BooleanField(default=False)),
                ('image', models.ImageField(blank=True, null=True, upload_to='content-img')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Page',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, unique=True)),
                ('slug', models.SlugField(editable=False, max_length=100, unique=True)),
                ('creation_date', models.DateTimeField(auto_now_add=True)),
                ('changed_date', models.DateTimeField(auto_now=True)),
                ('is_visible', models.BooleanField(default=False)),
                ('body', models.TextField()),
                ('order', models.PositiveSmallIntegerField(blank=True, null=True)),
                ('footer_link', models.BooleanField(default=False)),
                ('is_home', models.BooleanField(db_index=True, default=False, editable=False)),
                ('images', models.ManyToManyField(related_name='page', to='content.ContentImage')),
            ],
            options={
                'ordering': ['section', 'order'],
            },
        ),
        migrations.CreateModel(
            name='Section',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=100, unique=True)),
                ('slug', models.SlugField(editable=False, max_length=100, unique=True)),
                ('creation_date', models.DateTimeField(auto_now_add=True)),
                ('changed_date', models.DateTimeField(auto_now=True)),
                ('is_visible', models.BooleanField(default=False)),
                ('order', models.PositiveSmallIntegerField(default=content.models.section_default, unique=True)),
            ],
            options={
                'ordering': ['order'],
            },
        ),
        migrations.AddField(
            model_name='page',
            name='section',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='pages', to='content.Section'),
        ),
        migrations.AddField(
            model_name='blog',
            name='categories',
            field=models.ManyToManyField(related_name='blogs', to='content.Category'),
        ),
        migrations.AddField(
            model_name='blog',
            name='images',
            field=models.ManyToManyField(related_name='blog', to='content.ContentImage'),
        ),
        migrations.AlterUniqueTogether(
            name='page',
            unique_together=set([('section', 'order')]),
        ),
    ]
Esempio n. 9
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='category name')),
                ('slug', models.SlugField(max_length=30, unique=True, verbose_name='category slug')),
            ],
        ),
        migrations.CreateModel(
            name='Comment',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('text', models.TextField(verbose_name='comment text')),
                ('pub_date', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='date published')),
            ],
            options={
                'ordering': ('pub_date',),
            },
        ),
        migrations.CreateModel(
            name='Genre',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='genre name')),
                ('slug', models.SlugField(max_length=30, unique=True, verbose_name='genre slug')),
            ],
        ),
        migrations.CreateModel(
            name='Review',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('text', models.TextField(verbose_name='review text')),
                ('score', models.IntegerField(validators=[django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(10)], verbose_name='title score')),
                ('pub_date', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='date published')),
            ],
            options={
                'ordering': ('pub_date',),
            },
        ),
        migrations.CreateModel(
            name='Title',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255, verbose_name='title name')),
                ('year', models.IntegerField(db_index=True, default=0, validators=[content.models.validate_year], verbose_name='year of creation')),
                ('description', models.TextField(blank=True, verbose_name='title description')),
                ('category', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='category_titles', to='content.Category', verbose_name='category')),
                ('genre', models.ManyToManyField(blank=True, related_name='genre_titles', to='content.Genre', verbose_name='genre')),
            ],
            options={
                'ordering': ('year',),
            },
        ),
    ]
Esempio n. 10
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('wagtailimages', '0019_delete_filter'),
        ('taggit', '0002_auto_20150616_2121'),
        ('wagtailcore', '0040_page_draft_title'),
    ]

    operations = [
        migrations.CreateModel(
            name='ArticleIndex',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
                ('description', models.TextField(blank=True, max_length=160, verbose_name='Описание')),
                ('color', colorfield.fields.ColorField(blank=True, default='#FF0000', max_length=18, verbose_name='Цвет рубрики')),
                ('body', wagtail.wagtailcore.fields.StreamField((('group_1', wagtail.wagtailcore.blocks.StructBlock((('slider', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 1 (большой)')), ('standart', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 2 (стандартный)'))), icon='cog', label='Большой материал со стандартным', template='content/groups/group_1.html')), ('group_2', wagtail.wagtailcore.blocks.StructBlock((('little_1', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 1 (маленький)')), ('little_2', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 2 (маленький)')), ('cube', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 3 (куб)')), ('standart', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 4 (стандартный)'))), icon='cog', label='Два маленьких, куб и стандартный', template='content/groups/group_2.html')), ('group_3', wagtail.wagtailcore.blocks.StructBlock((('standart', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 1 (стандартный)')), ('big', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 2 (большой)'))), icon='cog', label='Стандартный и большой', template='content/groups/group_3.html')), ('group_4', wagtail.wagtailcore.blocks.StructBlock((('standart', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 1 (стандартный)')), ('little_1', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 2 (маленький)')), ('little_2', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 3 (маленький)')), ('cube', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница', required=False)), ('tag', content.blocks.TagBlock(label='Тег', required=False)), ('is_random', wagtail.wagtailcore.blocks.BooleanBlock(label='Золотой фонд', required=False))), label='Материал 4 (куб)'))), icon='cog', label='Стандартный, два маленьких и куб', template='content/groups/group_4.html'))), blank=True, null=True)),
                ('preview_picture', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Основная иллюстрация')),
            ],
            options={
                'verbose_name': 'Рубрика',
                'verbose_name_plural': 'Рубрики',
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='ArticleIndexTag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='content.ArticleIndex')),
                ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='content_articleindextag_items', to='taggit.Tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='ArticlePage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
                ('full_title', models.CharField(blank=True, help_text='До 150 символов', max_length=150, null=True, verbose_name='Полный заголовок')),
                ('short_lead', models.TextField(help_text='До 160 символов', max_length=160, verbose_name='Короткий лид')),
                ('full_lead', models.TextField(blank=True, help_text='До 250 символов', max_length=250, null=True, verbose_name='Полный лид')),
                ('count_view', models.PositiveIntegerField(default=0)),
                ('allowed_comments', models.BooleanField(default=True, verbose_name='Включить комментарии')),
                ('body', wagtail.wagtailcore.fields.StreamField((('h2', wagtail.wagtailcore.blocks.CharBlock(classname='title', icon='title', label='H2', template='content/stream_fields/h2.html')), ('embed', wagtail.wagtailembeds.blocks.EmbedBlock(icon='link', label='Эмбед')), ('image', wagtail.wagtailcore.blocks.StructBlock((('image', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография')), ('caption', wagtail.wagtailcore.blocks.RichTextBlock(label='Подпись'))), icon='image', label='Фотография', template='content/stream_fields/image.html')), ('quote_no_image', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')),))), ('quote', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')), ('author', wagtail.wagtailcore.blocks.CharBlock(label='Автор')), ('attribution', wagtail.wagtailcore.blocks.TextBlock(label='Подпись автора')), ('photo', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография'))))), ('read_also', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница')),))), ('paragraph', wagtail.wagtailcore.blocks.RichTextBlock(label='Параграф', template='content/stream_fields/paragraph.html')), ('gallery', wagtail.wagtailcore.blocks.ListBlock(content.blocks.ImageBlock, icon='image', label='Галерея', template='content/stream_fields/gallery.html')), ('notes', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.TextBlock(label='Подпись'), template='content/stream_fields/notes.html'))))),
                ('show_in_news', models.BooleanField(default=False, verbose_name='Отображать в новостях')),
                ('old_id', models.IntegerField(blank=True, null=True)),
            ],
            options={
                'verbose_name': 'Статья',
                'verbose_name_plural': 'Статьи',
            },
            bases=(wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin, 'wagtailcore.page'),
        ),
        migrations.CreateModel(
            name='ArticlePageTag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='content.ArticlePage')),
                ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='content_articlepagetag_items', to='taggit.Tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='Author',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('first_name', models.CharField(max_length=150, verbose_name='Имя')),
                ('last_name', models.CharField(max_length=150, verbose_name='Фамилия')),
                ('photo', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Фото')),
            ],
            options={
                'verbose_name': 'Автор',
                'verbose_name_plural': 'Авторы',
            },
        ),
        migrations.CreateModel(
            name='BlogCategory',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('live', models.BooleanField(default=True, verbose_name='Опубликовано')),
                ('title', models.CharField(max_length=255, verbose_name='Заголовок')),
                ('slug', models.CharField(max_length=255, verbose_name='Символьный код')),
                ('description', models.TextField(blank=True, null=True, verbose_name='Описание')),
                ('preview_picture', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Основная иллюстрация')),
            ],
            options={
                'verbose_name': 'Блог',
                'verbose_name_plural': 'Блоги',
            },
        ),
        migrations.CreateModel(
            name='BlogIndex',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
                ('intro', wagtail.wagtailcore.fields.RichTextField(blank=True)),
            ],
            options={
                'verbose_name': 'Блог',
                'verbose_name_plural': 'Блоги',
            },
            bases=('wagtailcore.page',),
        ),
        migrations.CreateModel(
            name='BlogPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
                ('full_title', models.CharField(blank=True, help_text='До 150 символов', max_length=150, null=True, verbose_name='Полный заголовок')),
                ('short_lead', models.TextField(help_text='До 160 символов', max_length=160, verbose_name='Короткий лид')),
                ('full_lead', models.TextField(blank=True, help_text='До 250 символов', max_length=250, null=True, verbose_name='Полный лид')),
                ('count_view', models.PositiveIntegerField(default=0)),
                ('allowed_comments', models.BooleanField(default=True, verbose_name='Включить комментарии')),
                ('body', wagtail.wagtailcore.fields.StreamField((('h2', wagtail.wagtailcore.blocks.CharBlock(classname='title', icon='title', label='H2', template='content/stream_fields/h2.html')), ('embed', wagtail.wagtailembeds.blocks.EmbedBlock(icon='link', label='Эмбед')), ('image', wagtail.wagtailcore.blocks.StructBlock((('image', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография')), ('caption', wagtail.wagtailcore.blocks.RichTextBlock(label='Подпись'))), icon='image', label='Фотография', template='content/stream_fields/image.html')), ('quote_no_image', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')),))), ('quote', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')), ('author', wagtail.wagtailcore.blocks.CharBlock(label='Автор')), ('attribution', wagtail.wagtailcore.blocks.TextBlock(label='Подпись автора')), ('photo', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография'))))), ('read_also', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница')),))), ('paragraph', wagtail.wagtailcore.blocks.RichTextBlock(label='Параграф', template='content/stream_fields/paragraph.html')), ('gallery', wagtail.wagtailcore.blocks.ListBlock(content.blocks.ImageBlock, icon='image', label='Галерея', template='content/stream_fields/gallery.html')), ('notes', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.TextBlock(label='Подпись'), template='content/stream_fields/notes.html'))))),
                ('show_in_news', models.BooleanField(default=False, verbose_name='Отображать в новостях')),
                ('old_id', models.IntegerField(blank=True, null=True)),
                ('authors', modelcluster.fields.ParentalManyToManyField(blank=True, related_name='blogs', to='content.Author', verbose_name='Автор')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='posts', to='content.BlogCategory', verbose_name='Блог')),
                ('preview_picture', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Основная иллюстрация')),
            ],
            options={
                'verbose_name': 'Пост',
                'verbose_name_plural': 'Посты',
            },
            bases=(wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin, 'wagtailcore.page'),
        ),
        migrations.CreateModel(
            name='BlogPageTag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='content.BlogPage')),
                ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='content_blogpagetag_items', to='taggit.Tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='NewsPage',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
                ('full_title', models.CharField(blank=True, help_text='До 150 символов', max_length=150, null=True, verbose_name='Полный заголовок')),
                ('short_lead', models.TextField(help_text='До 160 символов', max_length=160, verbose_name='Короткий лид')),
                ('full_lead', models.TextField(blank=True, help_text='До 250 символов', max_length=250, null=True, verbose_name='Полный лид')),
                ('count_view', models.PositiveIntegerField(default=0)),
                ('allowed_comments', models.BooleanField(default=True, verbose_name='Включить комментарии')),
                ('body', wagtail.wagtailcore.fields.StreamField((('h2', wagtail.wagtailcore.blocks.CharBlock(classname='title', icon='title', label='H2', template='content/stream_fields/h2.html')), ('embed', wagtail.wagtailembeds.blocks.EmbedBlock(icon='link', label='Эмбед')), ('image', wagtail.wagtailcore.blocks.StructBlock((('image', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография')), ('caption', wagtail.wagtailcore.blocks.RichTextBlock(label='Подпись'))), icon='image', label='Фотография', template='content/stream_fields/image.html')), ('quote_no_image', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')),))), ('quote', wagtail.wagtailcore.blocks.StructBlock((('quote', wagtail.wagtailcore.blocks.TextBlock(label='Цитата')), ('author', wagtail.wagtailcore.blocks.CharBlock(label='Автор')), ('attribution', wagtail.wagtailcore.blocks.TextBlock(label='Подпись автора')), ('photo', wagtail.wagtailimages.blocks.ImageChooserBlock(label='Фотография'))))), ('read_also', wagtail.wagtailcore.blocks.StructBlock((('page', wagtail.wagtailcore.blocks.PageChooserBlock(label='Страница')),))), ('paragraph', wagtail.wagtailcore.blocks.RichTextBlock(label='Параграф', template='content/stream_fields/paragraph.html')), ('gallery', wagtail.wagtailcore.blocks.ListBlock(content.blocks.ImageBlock, icon='image', label='Галерея', template='content/stream_fields/gallery.html')), ('notes', wagtail.wagtailcore.blocks.ListBlock(wagtail.wagtailcore.blocks.TextBlock(label='Подпись'), template='content/stream_fields/notes.html'))))),
                ('show_in_news', models.BooleanField(default=False, verbose_name='Отображать в новостях')),
                ('old_id', models.IntegerField(blank=True, null=True)),
                ('authors', modelcluster.fields.ParentalManyToManyField(blank=True, related_name='news', to='content.Author', verbose_name='Авторы')),
                ('preview_picture', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Основная иллюстрация')),
                ('rubric', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='news', to='content.ArticleIndex', verbose_name='Рубрика')),
            ],
            options={
                'verbose_name': 'Новость',
                'verbose_name_plural': 'Новости',
            },
            bases=(wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin, 'wagtailcore.page'),
        ),
        migrations.CreateModel(
            name='NewsPageTag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('content_object', modelcluster.fields.ParentalKey(on_delete=django.db.models.deletion.CASCADE, related_name='tagged_items', to='content.NewsPage')),
                ('tag', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='content_newspagetag_items', to='taggit.Tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.CreateModel(
            name='TagIndex',
            fields=[
                ('page_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')),
            ],
            options={
                'verbose_name': 'Тег',
                'verbose_name_plural': 'Теги',
            },
            bases=('wagtailcore.page',),
        ),
        migrations.AddField(
            model_name='newspage',
            name='tags',
            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='content.NewsPageTag', to='taggit.Tag', verbose_name='Тэги'),
        ),
        migrations.AddField(
            model_name='blogpage',
            name='tags',
            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='content.BlogPageTag', to='taggit.Tag', verbose_name='Тэги'),
        ),
        migrations.AddField(
            model_name='articlepage',
            name='authors',
            field=modelcluster.fields.ParentalManyToManyField(blank=True, related_name='articles', to='content.Author', verbose_name='Авторы'),
        ),
        migrations.AddField(
            model_name='articlepage',
            name='preview_picture',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='+', to='wagtailimages.Image', verbose_name='Основная иллюстрация'),
        ),
        migrations.AddField(
            model_name='articlepage',
            name='rubric',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='articles', to='content.ArticleIndex', verbose_name='Рубрика'),
        ),
        migrations.AddField(
            model_name='articlepage',
            name='tags',
            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='content.ArticlePageTag', to='taggit.Tag', verbose_name='Тэги'),
        ),
        migrations.AddField(
            model_name='articleindex',
            name='tags',
            field=modelcluster.contrib.taggit.ClusterTaggableManager(blank=True, help_text='A comma-separated list of tags.', through='content.ArticleIndexTag', to='taggit.Tag', verbose_name='Тэги'),
        ),
    ]
Esempio n. 11
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Document',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('time_created', models.DateTimeField(auto_now_add=True)),
                ('title', models.CharField(blank=True, max_length=300)),
                ('author', models.CharField(blank=True, max_length=200)),
                ('date_published',
                 models.DateField(
                     blank=True,
                     help_text='Date on which the document was published',
                     null=True)),
                ('file', models.FileField(blank=True, upload_to='documents/')),
                ('link',
                 models.URLField(
                     blank=True,
                     help_text='Link to document if external file')),
                ('description',
                 models.TextField(
                     blank=True,
                     help_text='Text to describe contents of the document')),
                ('tags',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.CharField(
                         max_length=100,
                         validators=[content.models.validate_tag]),
                     blank=True,
                     db_index=True,
                     null=True,
                     size=None)),
            ],
        ),
        migrations.CreateModel(
            name='Image',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('time_created',
                 models.DateTimeField(auto_now_add=True, db_index=True)),
                ('image',
                 versatileimagefield.fields.VersatileImageField(
                     height_field='height',
                     upload_to='images/',
                     verbose_name='Image',
                     width_field='width')),
                ('caption', models.TextField(blank=True)),
                ('height',
                 models.PositiveIntegerField(blank=True,
                                             null=True,
                                             verbose_name='Image Height')),
                ('width',
                 models.PositiveIntegerField(blank=True,
                                             null=True,
                                             verbose_name='Image Width')),
                ('tags',
                 django.contrib.postgres.fields.ArrayField(
                     base_field=models.CharField(
                         max_length=100,
                         validators=[content.models.validate_tag]),
                     blank=True,
                     db_index=True,
                     null=True,
                     size=None)),
            ],
        ),
    ]
Esempio n. 12
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='名称')),
                ('content', models.TextField(help_text='用 markdown 书写', verbose_name='分类描述正文')),
                ('content_html', models.TextField(blank=True, editable=False, verbose_name='正文html代码')),
                ('desc', models.CharField(max_length=1024, verbose_name='摘要')),
            ],
            options={
                'verbose_name': '分类',
                'verbose_name_plural': '分类',
                'ordering': ['-id'],
            },
            bases=(content.models.TranMarkdown, models.Model),
        ),
        migrations.CreateModel(
            name='IndexContent',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order_number', models.PositiveSmallIntegerField(help_text='只能使用正整数且唯一', unique=True, verbose_name='序号')),
                ('title', models.CharField(help_text='不填则不显示标题', max_length=50, verbose_name='标题')),
                ('does_show_title', models.BooleanField(default=True, verbose_name='是否显示标题')),
                ('content_type', models.PositiveIntegerField(choices=[(1, 'HTML'), (2, '最热文章'), (3, '最新文章')], default=1, verbose_name='展示类型')),
                ('content', models.CharField(blank=True, help_text='只有选择 HTML 时才需要填写内容', max_length=1024, verbose_name='内容')),
            ],
            options={
                'verbose_name': '首页内容区',
                'verbose_name_plural': '首页内容区',
                'ordering': ['order_number'],
            },
        ),
        migrations.CreateModel(
            name='Link',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order_number', models.PositiveSmallIntegerField(help_text='只能使用正整数且唯一', unique=True, verbose_name='序号')),
                ('url', models.CharField(help_text='建议使用绝对路径', max_length=200, verbose_name='URL')),
                ('anchor_word', models.CharField(max_length=50, verbose_name='锚文字')),
                ('create_time', models.DateTimeField(verbose_name='创建时间')),
                ('does_follow', models.BooleanField(default=False, verbose_name='是否跟踪')),
            ],
            options={
                'verbose_name': '底部文字链接',
                'verbose_name_plural': '底部文字链接',
                'ordering': ['order_number'],
            },
        ),
        migrations.CreateModel(
            name='Page',
            fields=[
                ('link_word', models.CharField(help_text='只能使用字母', max_length=50, primary_key=True, serialize=False, unique=True, verbose_name='URL字符串')),
                ('title', models.CharField(max_length=50, verbose_name='标题')),
                ('author', models.CharField(max_length=10, verbose_name='作者')),
                ('content', models.TextField(help_text='用 markdown 书写', verbose_name='正文')),
                ('content_html', models.TextField(blank=True, editable=False, verbose_name='正文html代码')),
                ('create_time', models.DateTimeField(verbose_name='创建时间')),
                ('update_time', models.DateTimeField(verbose_name='更新时间')),
                ('does_nav', models.BooleanField(default=False, verbose_name='是否添至导航栏')),
                ('does_follow', models.BooleanField(default=False, verbose_name='是否跟踪')),
                ('desc', models.CharField(max_length=1024, verbose_name='摘要')),
            ],
            options={
                'verbose_name': '独立页面',
                'verbose_name_plural': '独立页面',
                'ordering': ['link_word'],
            },
            bases=(content.models.TranMarkdown, models.Model),
        ),
        migrations.CreateModel(
            name='SideBar',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('order_number', models.PositiveSmallIntegerField(help_text='只能使用正整数且唯一', unique=True, verbose_name='序号')),
                ('title', models.CharField(max_length=50, verbose_name='标题')),
                ('does_show_title', models.BooleanField(default=True, verbose_name='是否显示标题')),
                ('sidebar_type', models.PositiveIntegerField(choices=[(1, 'HTML'), (2, '最热文章'), (3, '最新文章')], default=1, verbose_name='展示类型')),
                ('content', models.CharField(blank=True, help_text='只有选择 HTML 时才需要填写内容', max_length=1024, verbose_name='内容')),
            ],
            options={
                'verbose_name': '侧边栏',
                'verbose_name_plural': '侧边栏',
                'ordering': ['order_number'],
            },
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=50, verbose_name='名称')),
                ('content', models.TextField(help_text='用 markdown 书写', verbose_name='标签描述正文')),
                ('content_html', models.TextField(blank=True, editable=False, verbose_name='正文html代码')),
                ('desc', models.CharField(max_length=1024, verbose_name='摘要')),
            ],
            options={
                'verbose_name': '标签',
                'verbose_name_plural': '标签',
                'ordering': ['-id'],
            },
            bases=(content.models.TranMarkdown, models.Model),
        ),
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=50, verbose_name='标题')),
                ('author', models.CharField(max_length=10, verbose_name='作者')),
                ('create_time', models.DateTimeField(verbose_name='创建时间')),
                ('update_time', models.DateTimeField(verbose_name='更新时间')),
                ('desc', models.CharField(max_length=1024, verbose_name='摘要')),
                ('content', models.TextField(help_text='用 markdown 书写', verbose_name='正文')),
                ('content_html', models.TextField(blank=True, editable=False, verbose_name='正文html代码')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='content.Category', verbose_name='分类')),
                ('tag', models.ManyToManyField(to='content.Tag', verbose_name='标签')),
            ],
            options={
                'verbose_name': '文章',
                'verbose_name_plural': '文章',
                'ordering': ['-create_time'],
            },
            bases=(content.models.TranMarkdown, models.Model),
        ),
    ]
Esempio n. 13
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0012_alter_user_first_name_max_length'),
    ]

    operations = [
        migrations.CreateModel(
            name='User',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('password', models.CharField(max_length=128, verbose_name='password')),
                ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')),
                ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')),
                ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, help_text='Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[django.contrib.auth.validators.UnicodeUsernameValidator()], verbose_name='username')),
                ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')),
                ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')),
                ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')),
                ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')),
                ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')),
                ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')),
                ('groups', models.ManyToManyField(blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of their groups.', related_name='user_set', related_query_name='user', to='auth.Group', verbose_name='groups')),
                ('user_permissions', models.ManyToManyField(blank=True, help_text='Specific permissions for this user.', related_name='user_set', related_query_name='user', to='auth.Permission', verbose_name='user permissions')),
            ],
            options={
                'verbose_name': 'user',
                'verbose_name_plural': 'users',
                'abstract': False,
            },
            managers=[
                ('objects', django.contrib.auth.models.UserManager()),
            ],
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=25)),
                ('slug', models.SlugField(blank=True)),
                ('owner', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='owner', to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Category',
                'verbose_name_plural': 'Categories',
            },
        ),
        migrations.CreateModel(
            name='UnauthorizedUserLink',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=25, verbose_name='Name')),
                ('slug', models.SlugField(blank=True)),
                ('link', models.CharField(max_length=100)),
                ('image', models.ImageField(blank=True, upload_to=content.models.image_folder, verbose_name='Image url')),
            ],
            options={
                'verbose_name': 'UnauthorizedUserLink',
                'verbose_name_plural': 'UnauthorizedUserLinks',
            },
        ),
        migrations.CreateModel(
            name='Version',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('version', models.CharField(max_length=5, verbose_name='Версия')),
                ('description', models.TextField(verbose_name='Что нового в версии')),
                ('year', models.PositiveSmallIntegerField(verbose_name='Текущий год')),
            ],
        ),
        migrations.CreateModel(
            name='Link',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=25, verbose_name='Name')),
                ('slug', models.SlugField(blank=True)),
                ('link', models.CharField(max_length=100)),
                ('image', models.ImageField(blank=True, upload_to=content.models.image_folder, verbose_name='Image url')),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='category', to='content.category')),
            ],
            options={
                'verbose_name': 'Link',
                'verbose_name_plural': 'Links',
            },
        ),
    ]
Esempio n. 14
0
class Migration(migrations.Migration):

    dependencies = [
        ('content', '0002_auto_20191213_1123'),
    ]

    operations = [
        migrations.CreateModel(
            name='Article',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('body', models.TextField()),
                ('active', models.BooleanField(default=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
            ],
        ),
        migrations.RenameField(
            model_name='post',
            old_name='content',
            new_name='desc',
        ),
        migrations.RemoveField(
            model_name='post',
            name='article_id',
        ),
        migrations.AddField(
            model_name='post',
            name='active',
            field=models.BooleanField(default=True),
        ),
        migrations.AlterField(
            model_name='post',
            name='category',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='content.Category'),
        ),
        migrations.AlterField(
            model_name='post',
            name='post_type',
            field=models.CharField(choices=[('image ', '图文'), ('video', '视频')], max_length=10),
        ),
        migrations.CreateModel(
            name='Topic',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=120)),
                ('title_pic', models.CharField(max_length=120)),
                ('desc', models.CharField(max_length=120)),
                ('active', models.BooleanField(default=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='content.Category')),
            ],
        ),
        migrations.CreateModel(
            name='PostVideo',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('video', models.FileField(upload_to=content.models.post_video_upload)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('post', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='content.Post')),
            ],
        ),
        migrations.AddField(
            model_name='post',
            name='article',
            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='content.Article'),
        ),
    ]
Esempio n. 15
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('contenttypes', '0002_remove_content_type_name'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Content',
            fields=[
                ('id',
                 models.BigAutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name='ID')),
                ('status',
                 models.CharField(default='UNPROCESSED',
                                  editable=False,
                                  max_length=40)),
                ('privacy',
                 models.CharField(choices=[('PRIVATE', 'Private'),
                                           ('RESTRICTED', 'Group'),
                                           ('PUBLIC', 'Public')],
                                  default='PRIVATE',
                                  max_length=40,
                                  verbose_name='Privacy')),
                ('uid',
                 models.CharField(db_index=True,
                                  default=content.models.get_uid,
                                  editable=False,
                                  max_length=40,
                                  unique=True)),
                ('originalfilename',
                 models.CharField(editable=False,
                                  max_length=256,
                                  null=True,
                                  verbose_name='Original file name')),
                ('filesize', models.IntegerField(editable=False, null=True)),
                ('filetime',
                 models.DateTimeField(blank=True, editable=False, null=True)),
                ('mimetype',
                 models.CharField(editable=False, max_length=200, null=True)),
                ('file',
                 models.FileField(
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/data/content'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
                ('preview',
                 models.ImageField(
                     blank=True,
                     editable=False,
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/preview'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
                ('md5',
                 models.CharField(editable=False, max_length=32, null=True)),
                ('sha1',
                 models.CharField(editable=False, max_length=40, null=True)),
                ('linktype', models.CharField(blank=True, max_length=500)),
                ('point',
                 django.contrib.gis.db.models.fields.PointField(blank=True,
                                                                geography=True,
                                                                null=True,
                                                                srid=4326)),
                ('point_geom',
                 django.contrib.gis.db.models.fields.PointField(blank=True,
                                                                null=True,
                                                                srid=4326)),
                ('title',
                 models.CharField(blank=True,
                                  max_length=200,
                                  verbose_name='Title')),
                ('caption', models.TextField(blank=True,
                                             verbose_name='Caption')),
                ('author',
                 models.CharField(blank=True,
                                  max_length=200,
                                  verbose_name='Author')),
                ('keywords',
                 models.CharField(blank=True,
                                  max_length=500,
                                  verbose_name='Keywords')),
                ('place',
                 models.CharField(blank=True,
                                  max_length=500,
                                  verbose_name='Place')),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('opens', models.DateTimeField(blank=True, null=True)),
                ('expires', models.DateTimeField(blank=True, null=True)),
                ('object_id', models.PositiveIntegerField(blank=True,
                                                          null=True)),
                ('content_type',
                 models.ForeignKey(
                     blank=True,
                     default=None,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='contenttypes.contenttype')),
            ],
        ),
        migrations.CreateModel(
            name='Mail',
            fields=[
                ('id',
                 models.BigAutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name='ID')),
                ('status',
                 models.CharField(choices=[('UNPROCESSED', 'UNPROCESSED'),
                                           ('PROCESSED', 'PROCESSED'),
                                           ('DUPLICATE', 'DUPLICATE'),
                                           ('FAILED', 'FAILED')],
                                  default='UNPROCESSED',
                                  max_length=40)),
                ('filesize', models.IntegerField(editable=False, null=True)),
                ('file',
                 models.FileField(
                     editable=False,
                     storage=django.core.files.storage.FileSystemStorage(
                         location=
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/mail/content'
                     ),
                     upload_to=content.models.upload_split_by_1000)),
                ('md5',
                 models.CharField(db_index=True, editable=False,
                                  max_length=32)),
                ('sha1',
                 models.CharField(db_index=True, editable=False,
                                  max_length=40)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('processed', models.DateTimeField(null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Audio',
            fields=[
                ('content',
                 models.OneToOneField(
                     editable=False,
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to='content.content')),
                ('duration', models.FloatField(blank=True, null=True)),
                ('bitrate',
                 models.FloatField(blank=True, editable=False, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Image',
            fields=[
                ('content',
                 models.OneToOneField(
                     editable=False,
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to='content.content')),
                ('width',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('height',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('rotate',
                 models.IntegerField(blank=True,
                                     choices=[(0, 0), (90, 90), (180, 180),
                                              (270, 270)],
                                     default=0,
                                     null=True)),
                ('thumbnail',
                 models.ImageField(
                     editable=False,
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/preview'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
            ],
        ),
        migrations.CreateModel(
            name='Uploadinfo',
            fields=[
                ('content',
                 models.OneToOneField(
                     editable=False,
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to='content.content')),
                ('sessionid',
                 models.CharField(blank=True, editable=False, max_length=200)),
                ('ip',
                 models.GenericIPAddressField(blank=True,
                                              editable=False,
                                              null=True)),
                ('useragent',
                 models.CharField(blank=True, editable=False, max_length=500)),
                ('info', models.TextField(blank=True)),
            ],
        ),
        migrations.CreateModel(
            name='Video',
            fields=[
                ('content',
                 models.OneToOneField(
                     editable=False,
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to='content.content')),
                ('width',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('height',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('duration',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('bitrate',
                 models.CharField(blank=True,
                                  editable=False,
                                  max_length=256,
                                  null=True)),
                ('thumbnail',
                 models.ImageField(
                     editable=False,
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/preview'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
            ],
        ),
        migrations.CreateModel(
            name='Videoinstance',
            fields=[
                ('id',
                 models.BigAutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name='ID')),
                ('mimetype', models.CharField(editable=False, max_length=200)),
                ('filesize',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('duration',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('bitrate',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('extension', models.CharField(editable=False, max_length=16)),
                ('width',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('height',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('framerate',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('file',
                 models.FileField(
                     editable=False,
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/video'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
                ('command', models.CharField(editable=False, max_length=2000)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('content',
                 models.ForeignKey(editable=False,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='videoinstances',
                                   to='content.content')),
            ],
        ),
        migrations.CreateModel(
            name='Group',
            fields=[
                ('id',
                 models.BigAutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('slug', models.SlugField(max_length=100)),
                ('description', models.TextField()),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('users',
                 models.ManyToManyField(blank=True,
                                        related_name='contentgroups',
                                        to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.AddField(
            model_name='content',
            name='group',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='content.group'),
        ),
        migrations.AddField(
            model_name='content',
            name='parent',
            field=models.ForeignKey(
                blank=True,
                editable=False,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='content.content'),
        ),
        migrations.AddField(
            model_name='content',
            name='peers',
            field=models.ManyToManyField(blank=True,
                                         editable=False,
                                         to='content.content'),
        ),
        migrations.AddField(
            model_name='content',
            name='user',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.CreateModel(
            name='Audioinstance',
            fields=[
                ('id',
                 models.BigAutoField(auto_created=True,
                                     primary_key=True,
                                     serialize=False,
                                     verbose_name='ID')),
                ('mimetype', models.CharField(editable=False, max_length=200)),
                ('filesize',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('duration',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('bitrate',
                 models.FloatField(blank=True, editable=False, null=True)),
                ('extension', models.CharField(editable=False, max_length=16)),
                ('file',
                 models.FileField(
                     editable=False,
                     storage=django.core.files.storage.
                     FileSystemStorage(location=pathlib.PurePosixPath(
                         '/Users/arista/Documents/workspace/mestadb-py3/services/mestadb/var/audio'
                     )),
                     upload_to=content.models.upload_split_by_1000)),
                ('command', models.CharField(editable=False, max_length=2000)),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('content',
                 models.ForeignKey(editable=False,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='audioinstances',
                                   to='content.content')),
            ],
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('wagtailcore', '0040_page_draft_title'),
        ('taggit', '0002_auto_20150616_2121'),
        ('wagtailimages', '0019_delete_filter'),
        ('content', '0036_blogcategory_short_description'),
    ]

    operations = [
        migrations.CreateModel(
            name='EventIndex',
            fields=[
                ('page_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='wagtailcore.Page')),
            ],
            options={
                'abstract': False,
            },
            bases=(content.models.MobileTemplateMixin, 'wagtailcore.page'),
        ),
        migrations.CreateModel(
            name='EventPage',
            fields=[
                ('page_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='wagtailcore.Page')),
                ('full_title',
                 models.CharField(blank=True,
                                  help_text='До 150 символов',
                                  max_length=150,
                                  null=True,
                                  verbose_name='Полный заголовок')),
                ('short_lead',
                 models.TextField(help_text='До 160 символов',
                                  max_length=300,
                                  verbose_name='Короткий лид')),
                ('full_lead',
                 models.TextField(blank=True,
                                  help_text='До 250 символов',
                                  max_length=300,
                                  null=True,
                                  verbose_name='Полный лид')),
                ('count_view', models.PositiveIntegerField(default=0)),
                ('allowed_comments',
                 models.BooleanField(default=True,
                                     verbose_name='Включить комментарии')),
                ('body',
                 wagtail.wagtailcore.fields.StreamField(
                     (('h2',
                       wagtail.wagtailcore.blocks.CharBlock(
                           classname='title',
                           icon='title',
                           label='H2',
                           template='content/stream_fields/h2.html')),
                      ('embed',
                       wagtail.wagtailembeds.blocks.EmbedBlock(icon='link',
                                                               label='Эмбед')),
                      ('image',
                       wagtail.wagtailcore.blocks.StructBlock(
                           (('image',
                             wagtail.wagtailimages.blocks.ImageChooserBlock(
                                 label='Фотография')),
                            ('caption',
                             wagtail.wagtailcore.blocks.RichTextBlock(
                                 label='Подпись', required=False))),
                           icon='image',
                           label='Фотография',
                           template='content/stream_fields/image.html')),
                      ('left_image',
                       wagtail.wagtailcore.blocks.StructBlock(
                           (('image',
                             wagtail.wagtailimages.blocks.ImageChooserBlock(
                                 label='Фотография')),
                            ('title',
                             wagtail.wagtailcore.blocks.CharBlock(
                                 label='Заголовок', required=False)),
                            ('notes',
                             wagtail.wagtailcore.blocks.ListBlock(
                                 wagtail.wagtailcore.blocks.StructBlock(
                                     (('key',
                                       wagtail.wagtailcore.blocks.CharBlock(
                                           label='Заголовок')),
                                      ('value',
                                       wagtail.wagtailcore.blocks.CharBlock(
                                           label='Описание')))),
                                 label='Подписи'))),
                           icon='image',
                           label='Фотография слева',
                           template='content/stream_fields/left_image.html')),
                      ('paragraph',
                       wagtail.wagtailcore.blocks.RichTextBlock(
                           editor='tinymce',
                           label='Параграф',
                           language='ru',
                           template='content/stream_fields/paragraph.html')),
                      ('read_also',
                       wagtail.wagtailcore.blocks.StructBlock(
                           (('page',
                             wagtail.wagtailcore.blocks.PageChooserBlock(
                                 label='Страница')), ))),
                      ('gallery',
                       wagtail.wagtailcore.blocks.ListBlock(
                           content.blocks.ImageBlock,
                           icon='image',
                           label='Галерея',
                           template='content/stream_fields/gallery.html')),
                      ('notes',
                       wagtail.wagtailcore.blocks.ListBlock(
                           wagtail.wagtailcore.blocks.StructBlock(
                               (('key',
                                 wagtail.wagtailcore.blocks.CharBlock(
                                     label='Заголовок')),
                                ('value',
                                 wagtail.wagtailcore.blocks.CharBlock(
                                     label='Описание')))),
                           label='Подписи',
                           template='content/stream_fields/notes.html')),
                      ('html_field',
                       wagtail.wagtailcore.blocks.TextBlock(
                           help_text=
                           'Поле для html, css и js (может использоваться для сложных embed-кодов)',
                           icon='code',
                           label='html врезка',
                           template='content/stream_fields/html_field.html'))))
                 ),
                ('show_in_news',
                 models.BooleanField(default=False,
                                     verbose_name='Отображать в новостях')),
                ('show_in_promo',
                 models.BooleanField(default=False,
                                     verbose_name='Отображать в promotion')),
                ('old_id', models.IntegerField(blank=True, null=True)),
                ('published_at',
                 models.DateTimeField(blank=True,
                                      null=True,
                                      verbose_name='Дата/время публикации')),
                ('active_from',
                 models.DateTimeField(verbose_name='Дата и время начала')),
                ('active_to',
                 models.DateTimeField(verbose_name='Дата и время конца')),
                ('preview_picture',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='+',
                                   to='wagtailimages.Image',
                                   verbose_name='Основная иллюстрация')),
            ],
            options={
                'verbose_name': 'Событие',
                'verbose_name_plural': 'События',
            },
            bases=(
                content.models.MobileTemplateMixin,
                wagtail.contrib.wagtailroutablepage.models.RoutablePageMixin,
                'wagtailcore.page'),
        ),
        migrations.CreateModel(
            name='EventPageTag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('content_object',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='tagged_items',
                     to='content.EventPage')),
                ('tag',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='content_eventpagetag_items',
                                   to='taggit.Tag')),
            ],
            options={
                'abstract': False,
            },
        ),
        migrations.AddField(
            model_name='eventpage',
            name='tags',
            field=modelcluster.contrib.taggit.ClusterTaggableManager(
                blank=True,
                help_text='A comma-separated list of tags.',
                through='content.EventPageTag',
                to='taggit.Tag',
                verbose_name='Теги'),
        ),
    ]