class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('modified', models.DateTimeField(auto_now=True)),
                ('title', models.CharField(max_length=50)),
                ('short_description', models.CharField(max_length=70)),
                ('long_description', models.TextField()),
                ('release_date', models.DateField()),
                ('price', models.PositiveIntegerField()),
                ('author', models.CharField(max_length=70)),
                ('rating', models.PositiveIntegerField(validators=[django.core.validators.MaxLengthValidator(5)])),
                ('author_image', models.ImageField(upload_to=books.models.profile_directory_path)),
                ('book_image', models.ImageField(upload_to=books.models.book_directory_path)),
            ],
            options={
                'abstract': False,
            },
        ),
    ]
Beispiel #2
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=50)),
                ('description', models.TextField()),
                ('image',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to=books.models.get_image_path)),
                ('listed_date',
                 models.DateTimeField(default=datetime.datetime(
                     2019, 4, 18, 11, 2, 15, 419272, tzinfo=utc))),
                ('posted_date', models.DateTimeField(blank=True, null=True)),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='book_owner',
                                   to='accounts.User')),
            ],
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('books', '0004_auto_20200629_1031'),
    ]

    operations = [
        migrations.RemoveField(
            model_name='book',
            name='download',
        ),
        migrations.RemoveField(
            model_name='book',
            name='image_url',
        ),
        migrations.AlterField(
            model_name='book',
            name='descriptions',
            field=models.TextField(),
        ),
        migrations.AlterField(
            model_name='book',
            name='image',
            field=models.ImageField(
                upload_to='books/images',
                validators=[books.models.Book.validate_image]),
        ),
    ]
Beispiel #4
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('sites', '0002_alter_domain_unique'),
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('validated', models.BooleanField(default=False)),
                ('start_publication_on', models.DateTimeField(default=datetime.datetime.now)),
                ('end_publication_on', models.DateTimeField(blank=True, null=True)),
                ('lang', models.CharField(max_length=5)),
                ('title', models.CharField(max_length=100)),
                ('slug', models.SlugField(max_length=100, unique=True)),
                ('authors', models.CharField(max_length=200)),
                ('url', models.URLField(blank=True)),
                ('affiliate_url', models.URLField(blank=True)),
                ('isbn_10', models.CharField(blank=True, max_length=10, null=True)),
                ('isbn_13', models.CharField(blank=True, max_length=13, null=True)),
                ('asin', models.CharField(blank=True, max_length=20, null=True)),
                ('description', models.TextField()),
                ('cover', models.ImageField(blank=True, upload_to=books.models.cover_filename)),
            ],
            options={
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
            },
            managers=[
                ('objects', django.db.models.manager.Manager()),
                ('on_site', books.models.SiteBookManager()),
            ],
        ),
        migrations.CreateModel(
            name='Editor',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
                ('slug', models.SlugField(unique=True)),
            ],
            options={
                'verbose_name': 'Editor',
                'verbose_name_plural': 'Editors',
            },
        ),
        migrations.AddField(
            model_name='book',
            name='editor',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.Editor'),
        ),
        migrations.AddField(
            model_name='book',
            name='site',
            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='sites.Site'),
        ),
    ]
Beispiel #5
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=64)),
                ('price', models.PositiveIntegerField()),
                ('description', models.TextField(max_length=500)),
                ('image', models.FileField(upload_to=books.models.book_directory_path)),
            ],
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=32, unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='Publisher',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=32)),
                ('address', models.CharField(max_length=128)),
                ('phone', models.CharField(max_length=32)),
            ],
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=20, unique=True)),
            ],
        ),
        migrations.AddField(
            model_name='book',
            name='category',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='books.Category'),
        ),
        migrations.AddField(
            model_name='book',
            name='publisher',
            field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='books.Publisher'),
        ),
        migrations.AddField(
            model_name='book',
            name='tags',
            field=models.ManyToManyField(to='books.Tag'),
        ),
    ]
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=100)),
                ('publisher', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('ISBN', models.CharField(max_length=50)),
                ('author', models.CharField(max_length=100)),
                ('release_date',
                 models.PositiveIntegerField(
                     default=2020,
                     validators=[
                         django.core.validators.MinValueValidator(1900),
                         books.models.max_value_current_year
                     ])),
                ('price', models.IntegerField()),
                ('reviews', models.IntegerField()),
                ('cover', cloudinary.models.CloudinaryField(max_length=255)),
                ('desc', models.TextField()),
                ('category',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.category')),
                ('owner',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Beispiel #7
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Books',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.TextField()),
                ('author', models.TextField()),
                ('content', models.TextField(blank=True, null=True)),
                ('rentalRate', models.IntegerField()),
                ('location', models.CharField(max_length=240)),
                ('image',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to=books.models.upload_book_image)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
            },
        ),
    ]
Beispiel #8
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
        ('category', '0001_initial'),
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField()),
                ('author', models.CharField(max_length=255)),
                ('poster', models.ImageField(upload_to=books.models.poster_upload_to)),
                ('created_at', models.DateField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('quantity', models.IntegerField()),
                ('price', models.DecimalField(decimal_places=2, max_digits=10)),
                ('rating', models.DecimalField(decimal_places=2, max_digits=10, null=True)),
                ('active', models.BooleanField(default=False)),
                ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='category.category')),
                ('publisher', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Ratings',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('rating', models.IntegerField(validators=[django.core.validators.MaxValueValidator(5), django.core.validators.MinValueValidator(1)])),
                ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.book')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Favorites',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.book')),
                ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)),
            ],
        ),
    ]
Beispiel #9
0
class Migration(migrations.Migration):

    dependencies = [
        ('books', '0005_auto_20200630_0000'),
    ]

    operations = [
        migrations.AlterField(
            model_name='book',
            name='descriptions',
            field=models.TextField(blank=True, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='image',
            field=models.ImageField(blank=True, null=True, upload_to='books/images', validators=[books.models.Book.validate_image]),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField()),
                ('cover', models.FileField(blank=True, upload_to=books.models.cover_upload_path)),
            ],
        ),
    ]
Beispiel #11
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('image',
                 models.ImageField(upload_to=books.models.generate_filename)),
                ('slug', models.SlugField()),
                ('title', models.CharField(max_length=120)),
                ('author', models.CharField(max_length=120)),
                ('about', models.TextField()),
                ('cost', models.FloatField()),
            ],
        ),
        migrations.CreateModel(
            name='Genre',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=50)),
                ('slug', models.SlugField()),
            ],
        ),
        migrations.AddField(
            model_name='book',
            name='genre',
            field=models.ForeignKey(on_delete='', to='books.Genre'),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('directories', '0007_series'),
    ]

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=60, verbose_name='Имя')),
                ('discription', models.TextField(blank=True, null=True, verbose_name='Описание')),
                ('picture', models.ImageField(default='authors/Author', upload_to=books.models.book_directory_path, verbose_name='Изображение')),
                ('price', models.FloatField(verbose_name='цена (BYN)')),
                ('pyblishing_year', models.IntegerField(blank=True, null=True, verbose_name='год издания')),
                ('pages', models.IntegerField(blank=True, null=True, verbose_name='страниц')),
                ('binding', models.CharField(choices=[('T', 'твердый'), ('М', 'мягкий'), ('др', 'другой')], default='др', max_length=2, verbose_name='переплет')),
                ('format', models.CharField(choices=[('св_кр', 'сверхкрупная (84×108/16; 70×90/8)'), ('кр', 'крупная (70×90/16; 75×90/16)'), ('ср', 'средняя (60×90/16; 84×108/32)'), ('мал', 'малая (70×90/32; 70×108/32)'), ('св_м', 'сверхмалая (60×90/32)')], default='ср', max_length=5, verbose_name='формат')),
                ('ISBN', models.CharField(blank=True, max_length=17, null=True, verbose_name='ISBN номер')),
                ('weight', models.IntegerField(blank=True, null=True, verbose_name='вес, (гр.)')),
                ('age_restrictions', models.CharField(default='нет', max_length=3, verbose_name='возрастные ограничения')),
                ('in_stock', models.IntegerField(blank=True, null=True, verbose_name='кол-во в наличии')),
                ('available', models.BooleanField(default=False, verbose_name='доступна для заказа')),
                ('rating', models.FloatField(blank=True, null=True, verbose_name='рейтинг')),
                ('created', models.DateTimeField(auto_now_add=True, verbose_name='Дата внесения в каталог')),
                ('updated', models.DateTimeField(auto_now=True, verbose_name='Дата последнего редактирования в БД')),
                ('authors', models.ManyToManyField(related_name='books', to='directories.Author')),
                ('genre', models.ManyToManyField(related_name='books', to='directories.Genre', verbose_name='жанры')),
                ('ph', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='books', to='directories.publishinghouse')),
                ('series', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='books', to='directories.series', verbose_name='серия')),
            ],
            options={
                'verbose_name': 'Автор',
                'verbose_name_plural': 'Авторы',
            },
        ),
    ]
Beispiel #13
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('ISBN', models.CharField(max_length=13, unique=True)),
                ('title', models.CharField(max_length=30, verbose_name='도서명')),
                ('author',
                 models.CharField(blank=True, max_length=30,
                                  verbose_name='저자')),
                ('publisher',
                 models.CharField(blank=True,
                                  max_length=30,
                                  verbose_name='출판사')),
                ('intro', models.TextField(max_length=100, verbose_name='서평')),
                ('status',
                 models.CharField(choices=[('대여가능', '대여 가능'), ('예약', '예약 중'),
                                           ('대여중', '대여 중'),
                                           ('대여불가능', '대여 불가능')],
                                  default='대여가능',
                                  max_length=10,
                                  verbose_name='상태')),
                ('bookcover',
                 imagekit.models.fields.ProcessedImageField(
                     blank=True, upload_to=books.models.file_path)),
                ('stored_at', models.DateTimeField(auto_now_add=True)),
            ],
            options={
                'ordering': ['-stored_at'],
            },
        ),
        migrations.CreateModel(
            name='Review',
            fields=[
                ('book',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     primary_key=True,
                     serialize=False,
                     to='books.book')),
                ('comment', models.TextField(max_length=100,
                                             verbose_name='리뷰')),
                ('rate',
                 models.IntegerField(
                     default=1,
                     validators=[
                         django.core.validators.MinValueValidator(1),
                         django.core.validators.MaxValueValidator(5)
                     ],
                     verbose_name='별점')),
            ],
        ),
    ]
Beispiel #14
0
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=200)),
                ('slug', models.SlugField(unique=True)),
                ('autor', models.CharField(max_length=200)),
                ('description', models.TextField()),
                ('likes', models.PositiveIntegerField(default=0)),
                ('created_date',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('published_date', models.DateTimeField(blank=True,
                                                        null=True)),
                ('files',
                 models.FileField(
                     upload_to=books.models.upload_location,
                     validators=[books.models.validate_file_extension])),
            ],
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('created_at',
                 models.DateTimeField(auto_now_add=True,
                                      verbose_name='Created at')),
                ('updated_at',
                 models.DateTimeField(auto_now=True,
                                      verbose_name='Updated at')),
                ('title',
                 models.CharField(blank=True,
                                  max_length=200,
                                  null=True,
                                  verbose_name='Title')),
            ],
            options={
                'verbose_name': 'Category',
                'verbose_name_plural': 'Categories',
            },
        ),
        migrations.AddField(
            model_name='book',
            name='book_type',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Category',
                verbose_name='Category'),
        ),
    ]
Beispiel #15
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('categories', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='Author',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=150)),
            ],
            options={
                'verbose_name': 'Author',
                'verbose_name_plural': 'Authors',
            },
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(max_length=150)),
                ('description', models.TextField(verbose_name='description')),
                ('image',
                 sorl.thumbnail.fields.ImageField(
                     blank=True,
                     null=True,
                     upload_to=books.models.book_image_file_path)),
                ('authors',
                 models.ManyToManyField(to='books.Author',
                                        verbose_name='Authors')),
                ('categories',
                 models.ManyToManyField(to='categories.Category',
                                        verbose_name='Categories')),
                ('read_by',
                 models.ManyToManyField(blank=True,
                                        null=True,
                                        to=settings.AUTH_USER_MODEL,
                                        verbose_name='Read By')),
            ],
            options={
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
            },
        ),
        migrations.CreateModel(
            name='Review',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('review', models.TextField(verbose_name='Review')),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='reviews',
                                   to='books.Book')),
                ('user',
                 models.ManyToManyField(to=settings.AUTH_USER_MODEL,
                                        verbose_name='User')),
            ],
            options={
                'verbose_name': 'Review',
                'verbose_name_plural': 'Reviews',
            },
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='author_detail',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=30)),
                ('list_of_books', models.TextField(blank=True, null=True)),
                ('photo',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=books.models.upload_location_authors)),
                ('email_id', models.CharField(blank=True, max_length=30)),
                ('phone_no', models.CharField(blank=True, max_length=15)),
                ('address', models.CharField(blank=True, max_length=100)),
                ('gender',
                 models.CharField(blank=True,
                                  choices=[('Male', 'Male'),
                                           ('Female', 'Female'),
                                           ('Others', 'Others')],
                                  max_length=10)),
                ('writing_field',
                 models.CharField(blank=True,
                                  choices=[
                                      ('Science fiction', 'Science fiction'),
                                      ('Satire', 'Satire'), ('Drama', 'Drama'),
                                      ('Action and Adventure',
                                       'Action and Adventure'),
                                      ('Romance', 'Romance'),
                                      ('Mystery', 'Mystery'),
                                      ('Horror', 'Horror'),
                                      ('Self help', 'Self help'),
                                      ('Health', 'Health'), ('Guide', 'Guide'),
                                      ('Travel', 'Travel'),
                                      ("Children's", "Children's"),
                                      ('Religion, Spirituality & New Age',
                                       'Religion, Spirituality & New Age'),
                                      ('Science', 'Science'),
                                      ('History', 'History'), ('Math', 'Math'),
                                      ('Anthology', 'Anthology'),
                                      ('Poetry', 'Poetry'),
                                      ('Encyclopedias', 'Encyclopedias'),
                                      ('Dictionaries', 'Dictionaries'),
                                      ('Comics', 'Comics'), ('Art', 'Art'),
                                      ('Cookbooks', 'Cookbooks'),
                                      ('Diaries', 'Diaries'),
                                      ('Journals', 'Journals'),
                                      ('Prayer books', 'Prayer books'),
                                      ('Series', 'Series'),
                                      ('Trilogy', 'Trilogy'),
                                      ('Biographies', 'Biographies'),
                                      ('Autobiographies', 'Autobiographies'),
                                      ('Fantasy', 'Fantasy')
                                  ],
                                  max_length=20)),
                ('youtube_video', models.CharField(blank=True,
                                                   max_length=150)),
            ],
        ),
        migrations.CreateModel(
            name='book_detail',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(blank=True, max_length=30)),
                ('image',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=books.models.upload_location_books)),
                ('description', models.TextField(blank=True, null=True)),
                ('category',
                 models.CharField(blank=True,
                                  choices=[
                                      ('Science fiction', 'Science fiction'),
                                      ('Satire', 'Satire'), ('Drama', 'Drama'),
                                      ('Action and Adventure',
                                       'Action and Adventure'),
                                      ('Romance', 'Romance'),
                                      ('Mystery', 'Mystery'),
                                      ('Horror', 'Horror'),
                                      ('Self help', 'Self help'),
                                      ('Health', 'Health'), ('Guide', 'Guide'),
                                      ('Travel', 'Travel'),
                                      ("Children's", "Children's"),
                                      ('Religion, Spirituality & New Age',
                                       'Religion, Spirituality & New Age'),
                                      ('Science', 'Science'),
                                      ('History', 'History'), ('Math', 'Math'),
                                      ('Anthology', 'Anthology'),
                                      ('Poetry', 'Poetry'),
                                      ('Encyclopedias', 'Encyclopedias'),
                                      ('Dictionaries', 'Dictionaries'),
                                      ('Comics', 'Comics'), ('Art', 'Art'),
                                      ('Cookbooks', 'Cookbooks'),
                                      ('Diaries', 'Diaries'),
                                      ('Journals', 'Journals'),
                                      ('Prayer books', 'Prayer books'),
                                      ('Series', 'Series'),
                                      ('Trilogy', 'Trilogy'),
                                      ('Biographies', 'Biographies'),
                                      ('Autobiographies', 'Autobiographies'),
                                      ('Fantasy', 'Fantasy')
                                  ],
                                  max_length=20)),
                ('author_name', models.CharField(blank=True, max_length=30)),
                ('isbn_number', models.CharField(blank=True, max_length=30)),
                ('mrp', models.IntegerField(blank=True)),
                ('discount', models.IntegerField(blank=True)),
                ('selling_price', models.IntegerField(blank=True)),
                ('preview',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=books.models.upload_location_books)),
                ('book',
                 models.FileField(
                     blank=True,
                     null=True,
                     upload_to=books.models.upload_location_books)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
            ],
        ),
    ]
Beispiel #17
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title',
                 models.CharField(max_length=100, verbose_name='Book Title')),
                ('slug',
                 autoslug.fields.AutoSlugField(editable=False,
                                               populate_from='title',
                                               unique=True)),
                ('description',
                 models.TextField(blank=True,
                                  max_length=5000,
                                  null=True,
                                  verbose_name='Description')),
                ('category',
                 models.CharField(choices=[
                     ('000',
                      'Computer science, information and general works'),
                     ('100', 'Philosophy and psychology'), ('200', 'Religion'),
                     ('300', 'Social Sciences'), ('400', 'Language'),
                     ('500', 'Science'),
                     ('600', 'Technology and applied science'),
                     ('700', 'Arts and recreation'), ('800', 'Literature'),
                     ('900', 'History and geography')
                 ],
                                  default='000',
                                  max_length=3,
                                  verbose_name='Select Category')),
                ('is_free',
                 models.BooleanField(
                     default=True,
                     verbose_name='Check to give away your book for free.')),
                ('price',
                 models.IntegerField(blank=True,
                                     default=0,
                                     verbose_name='Add a price')),
                ('is_active', models.BooleanField(default=True)),
                ('location', models.CharField(blank=True, max_length=25)),
                ('created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('submitter',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='posted_books',
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
                'ordering': ('-created', ),
            },
        ),
        migrations.CreateModel(
            name='Photo',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('photo',
                 models.ImageField(upload_to=books.models.get_photo_filename,
                                   verbose_name='Upload photos')),
                ('created',
                 models.DateTimeField(default=django.utils.timezone.now)),
                ('book',
                 models.ForeignKey(default=None,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='book_photos',
                                   to='books.Book')),
            ],
            options={
                'verbose_name': 'Photo',
                'verbose_name_plural': 'Photos',
                'ordering': ('-created', ),
            },
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('auth', '0011_update_proxy_permissions'),
    ]

    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=30,
                                  verbose_name='first name')),
                ('last_name',
                 models.CharField(blank=True,
                                  max_length=150,
                                  verbose_name='last name')),
                ('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')),
                ('email',
                 models.EmailField(max_length=254,
                                   unique=True,
                                   verbose_name='email address')),
                ('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='Language',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
                ('about', models.TextField()),
                ('count', models.IntegerField(default=0)),
                ('image',
                 models.ImageField(upload_to=books.models.upload_image)),
                ('book_pdf',
                 models.FileField(
                     upload_to=books.models.upload_image,
                     validators=[
                         django.core.validators.FileExtensionValidator(['pdf'])
                     ])),
                ('genere',
                 models.CharField(choices=[('0', 'Romantic'), ('1', 'Horror'),
                                           ('2', 'Comedy')],
                                  max_length=2)),
                ('author',
                 models.ForeignKey(on_delete=django.db.models.deletion.PROTECT,
                                   related_name='bauthor',
                                   to=settings.AUTH_USER_MODEL)),
                ('language',
                 models.ManyToManyField(related_name='book',
                                        to='books.Language')),
            ],
            options={
                'ordering': ('-pk', ),
            },
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('books', '0006_auto_20170810_1959'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='author',
            options={
                'verbose_name': 'Автор',
                'verbose_name_plural': 'Авторы'
            },
        ),
        migrations.AlterModelOptions(
            name='book',
            options={
                'verbose_name': 'Книга',
                'verbose_name_plural': 'Книги'
            },
        ),
        migrations.AlterField(
            model_name='author',
            name='first_name',
            field=models.CharField(max_length=50, verbose_name='Имя автора'),
        ),
        migrations.AlterField(
            model_name='author',
            name='last_name',
            field=models.CharField(max_length=50,
                                   verbose_name='Фамилия автора'),
        ),
        migrations.AlterField(
            model_name='author',
            name='photo',
            field=models.ImageField(blank=True,
                                    null=True,
                                    upload_to=books.models.get_image_path,
                                    verbose_name='Фотография'),
        ),
        migrations.AlterField(
            model_name='book',
            name='cost',
            field=models.DecimalField(decimal_places=2,
                                      max_digits=5,
                                      verbose_name='Стоимость'),
        ),
        migrations.AlterField(
            model_name='book',
            name='desc',
            field=models.TextField(blank=True,
                                   max_length=2500,
                                   verbose_name='Описание'),
        ),
        migrations.AlterField(
            model_name='book',
            name='photo',
            field=models.ImageField(blank=True,
                                    null=True,
                                    upload_to=books.models.get_image_path,
                                    verbose_name='Фотография'),
        ),
        migrations.AlterField(
            model_name='book',
            name='title',
            field=models.CharField(max_length=100,
                                   verbose_name='Название книги'),
        ),
    ]
Beispiel #20
0
class Migration(migrations.Migration):

    dependencies = [
        ('books', '0004_auto_20180603_1541'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='author',
            options={
                'verbose_name': '作者',
                'verbose_name_plural': '作者'
            },
        ),
        migrations.AlterModelOptions(
            name='book',
            options={
                'verbose_name': '書籍',
                'verbose_name_plural': '書籍'
            },
        ),
        migrations.AlterModelOptions(
            name='category',
            options={
                'verbose_name': '類別',
                'verbose_name_plural': '類別'
            },
        ),
        migrations.AlterModelOptions(
            name='publisher',
            options={
                'verbose_name': '出版商',
                'verbose_name_plural': '出版商'
            },
        ),
        migrations.AlterModelOptions(
            name='tag',
            options={
                'verbose_name': '標籤',
                'verbose_name_plural': '標籤'
            },
        ),
        migrations.AlterField(
            model_name='author',
            name='name',
            field=models.CharField(max_length=32, verbose_name='名稱'),
        ),
        migrations.AlterField(
            model_name='book',
            name='authors',
            field=models.ManyToManyField(to='books.Author', verbose_name='作者'),
        ),
        migrations.AlterField(
            model_name='book',
            name='category',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='books.Category',
                verbose_name='使用者'),
        ),
        migrations.AlterField(
            model_name='book',
            name='count',
            field=models.PositiveIntegerField(default=0, verbose_name='庫存'),
        ),
        migrations.AlterField(
            model_name='book',
            name='description',
            field=models.TextField(max_length=500, verbose_name='簡介'),
        ),
        migrations.AlterField(
            model_name='book',
            name='image',
            field=models.ImageField(upload_to=books.models.book_directory_path,
                                    verbose_name='圖片'),
        ),
        migrations.AlterField(
            model_name='book',
            name='price',
            field=models.PositiveIntegerField(verbose_name='價錢'),
        ),
        migrations.AlterField(
            model_name='book',
            name='publisher',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.PROTECT,
                to='books.Publisher',
                verbose_name='出版商'),
        ),
        migrations.AlterField(
            model_name='book',
            name='tags',
            field=models.ManyToManyField(to='books.Tag', verbose_name='標籤'),
        ),
        migrations.AlterField(
            model_name='book',
            name='title',
            field=models.CharField(max_length=64, verbose_name='書名'),
        ),
        migrations.AlterField(
            model_name='category',
            name='name',
            field=models.CharField(max_length=32,
                                   unique=True,
                                   verbose_name='類別'),
        ),
        migrations.AlterField(
            model_name='publisher',
            name='address',
            field=models.CharField(max_length=128, verbose_name='地址'),
        ),
        migrations.AlterField(
            model_name='publisher',
            name='name',
            field=models.CharField(max_length=32, verbose_name='名稱'),
        ),
        migrations.AlterField(
            model_name='publisher',
            name='phone',
            field=models.CharField(max_length=32, verbose_name='電話'),
        ),
        migrations.AlterField(
            model_name='tag',
            name='name',
            field=models.CharField(max_length=20,
                                   unique=True,
                                   verbose_name='標籤'),
        ),
    ]
Beispiel #21
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('globales', '0011_auto_20201212_1227'),
    ]

    operations = [
        migrations.CreateModel(
            name='BooksCategoria',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=30, verbose_name='Name')),
                ('description',
                 models.CharField(blank=True,
                                  max_length=120,
                                  null=True,
                                  verbose_name='Descripción')),
            ],
            options={
                'verbose_name': 'Categoria',
                'verbose_name_plural': 'Categorias',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='BooksEditorial',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=30,
                                          verbose_name='Nombre')),
                ('direction',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Dirección')),
            ],
            options={
                'verbose_name': 'Editorial',
                'verbose_name_plural': 'Editoriales',
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='BooksPerson',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=30,
                                          verbose_name='Nombre')),
                ('other_name',
                 models.CharField(blank=True,
                                  max_length=30,
                                  null=True,
                                  verbose_name='Otro Nombre')),
                ('last_name',
                 models.CharField(max_length=30, verbose_name='Apellido')),
                ('other_last_name',
                 models.CharField(blank=True,
                                  max_length=30,
                                  null=True,
                                  verbose_name='Otro Apellido')),
                ('birth_date',
                 models.DateField(blank=True,
                                  null=True,
                                  verbose_name='Fecha de Nacimiento')),
                ('ciudad_nacimiento',
                 models.CharField(blank=True,
                                  max_length=120,
                                  null=True,
                                  verbose_name='Ciudad de Nacimiento')),
                ('fecha_defuncion',
                 models.DateField(blank=True,
                                  null=True,
                                  verbose_name='Fecha de Defunción')),
                ('ciudad_defuncion',
                 models.CharField(blank=True,
                                  max_length=120,
                                  null=True,
                                  verbose_name='Ciudad de Defunción')),
                ('resumen_biografico',
                 ckeditor.fields.RichTextField(
                     blank=True, null=True,
                     verbose_name='Resumen Biográfico')),
                ('foto',
                 models.ImageField(blank=True,
                                   default='books_persona/default.png',
                                   max_length=255,
                                   null=True,
                                   storage=cuenta.libSobreEscribirImagen.
                                   SobreEscribirImagen(),
                                   upload_to=books.models.image_path_person)),
                ('is_autor', models.BooleanField(default=False)),
                ('is_editor', models.BooleanField(default=False)),
                ('pais_defuncion',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.PROTECT,
                                   related_name='persona_pais_dead',
                                   to='globales.Pais')),
                ('pais_nacimiento',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.PROTECT,
                                   related_name='persona_pais_born',
                                   to='globales.Pais')),
            ],
            options={
                'verbose_name': 'Autor',
                'verbose_name_plural': 'Autores',
                'ordering': ['name', 'last_name'],
            },
        ),
        migrations.CreateModel(
            name='BooksPublicacion',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('fecha_edicion',
                 models.DateField(blank=True,
                                  null=True,
                                  verbose_name='Fecha de Edición')),
                ('edition_number',
                 models.IntegerField(blank=True,
                                     null=True,
                                     verbose_name='Edición N°')),
                ('fecha_publicacion',
                 models.DateField(blank=True,
                                  null=True,
                                  verbose_name='Fecha de Publicación')),
                ('isbn',
                 models.CharField(blank=True,
                                  max_length=17,
                                  null=True,
                                  verbose_name='ISBN')),
                ('issn',
                 models.CharField(blank=True,
                                  max_length=9,
                                  null=True,
                                  verbose_name='ISSN')),
                ('numero',
                 models.IntegerField(blank=True,
                                     null=True,
                                     verbose_name='Número')),
                ('titulo',
                 models.TextField(blank=True,
                                  max_length=256,
                                  null=True,
                                  verbose_name='Título')),
                ('sub_titulo',
                 models.TextField(blank=True,
                                  max_length=256,
                                  null=True,
                                  verbose_name='Sub Título')),
                ('volumen',
                 models.CharField(blank=True,
                                  max_length=256,
                                  null=True,
                                  verbose_name='Volumen')),
                ('resumen',
                 ckeditor.fields.RichTextField(blank=True,
                                               null=True,
                                               verbose_name='Resumen')),
                ('cantidad_paginas', models.IntegerField(blank=True,
                                                         null=True)),
                ('portada',
                 models.ImageField(blank=True,
                                   default='books_portada/default.png',
                                   max_length=255,
                                   null=True,
                                   storage=cuenta.libSobreEscribirImagen.
                                   SobreEscribirImagen(),
                                   upload_to=books.models.image_path_portada,
                                   verbose_name='Portada')),
                ('pdf',
                 models.ImageField(blank=True,
                                   default='books_pdf/default.png',
                                   max_length=255,
                                   null=True,
                                   storage=cuenta.libSobreEscribirImagen.
                                   SobreEscribirImagen(),
                                   upload_to=books.models.image_path_pdf,
                                   verbose_name='PDF')),
                ('autor',
                 models.ManyToManyField(blank=True,
                                        related_name='autores',
                                        to='books.BooksPerson',
                                        verbose_name='Autor')),
                ('categoria',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.PROTECT,
                                   to='books.BooksCategoria',
                                   verbose_name='Categoría')),
                ('editor',
                 models.ManyToManyField(blank=True,
                                        related_name='editores',
                                        to='books.BooksPerson',
                                        verbose_name='Editor')),
                ('editorial',
                 models.ManyToManyField(blank=True,
                                        related_name='editoriales',
                                        to='books.BooksEditorial',
                                        verbose_name='Editorial (es)')),
                ('pais_edicion',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.PROTECT,
                                   related_name='book_pais',
                                   to='globales.Pais',
                                   verbose_name='País de Edición')),
            ],
            options={
                'verbose_name': 'Publicacion',
                'verbose_name_plural': 'Publicaciones',
                'ordering': ['titulo'],
            },
        ),
    ]
Beispiel #22
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('title', models.CharField(blank=True, max_length=100)),
                ('description', models.TextField(blank=True)),
                ('cover_picture',
                 models.ImageField(blank=True,
                                   height_field=50,
                                   null=True,
                                   upload_to=books.models.upload_dir,
                                   width_field=30)),
                ('disabled', models.BooleanField(default=False)),
                ('slug', models.SlugField(max_length=255)),
                ('price',
                 models.CharField(blank=True, default='500.00',
                                  max_length=100)),
                ('timestamp',
                 models.DateTimeField(blank=True,
                                      default=datetime.datetime.now)),
                ('author',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'db_table': 'book',
                'ordering': ('title', ),
                'verbose_name': 'Book',
                'verbose_name_plural': 'Books',
            },
        ),
        migrations.CreateModel(
            name='Contributor',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('contributors',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'verbose_name': 'Contributor',
                'db_table': 'contributor',
                'verbose_name_plural': 'Contributors',
            },
        ),
        migrations.AddField(
            model_name='book',
            name='contributors',
            field=models.ManyToManyField(to='books.Contributor'),
        ),
        migrations.AlterUniqueTogether(
            name='book',
            unique_together=set([('slug', 'title')]),
        ),
    ]
class Migration(migrations.Migration):

    replaces = [('books', '0001_initial'),
                ('books', '0002_auto_20160218_1121'),
                ('books', '0003_auto_20160222_1200'),
                ('books', '0004_auto_20160222_1230'),
                ('books', '0005_auto_20160224_1637'),
                ('books', '0006_auto_20160225_1410'),
                ('books', '0007_auto_20160229_1326'),
                ('books', '0008_book_concept_coach_link'),
                ('books', '0009_auto_20160307_1106'),
                ('books', '0010_auto_20160309_1016'),
                ('books', '0011_book_table_of_contents'),
                ('books', '0012_book_student_handbook'),
                ('books', '0013_auto_20160316_1555'),
                ('books', '0014_book_errata_link'),
                ('books', '0015_auto_20160328_1056'),
                ('books', '0016_book_license_text'),
                ('books', '0017_auto_20160407_1154'),
                ('books', '0018_book_ibook_link_volume_2'),
                ('books', '0019_auto_20160419_0955'),
                ('books', '0020_auto_20160421_2139'),
                ('books', '0021_auto_20160531_1045'),
                ('books', '0022_auto_20160617_1216'),
                ('books', '0023_auto_20160622_1556'),
                ('books', '0024_book_authors'),
                ('books', '0025_auto_20160719_1359'),
                ('books', '0026_auto_20160815_1159'),
                ('books', '0027_auto_20160901_1548'),
                ('books', '0028_book_coming_soon'),
                ('books', '0029_auto_20161025_1300'),
                ('books', '0030_auto_20161026_1541'),
                ('books', '0031_auto_20170330_0831'),
                ('books', '0032_book_comp_copy_available'),
                ('books', '0033_auto_20170414_0856'),
                ('books', '0034_book_tutor_marketing_book'),
                ('books', '0035_auto_20170706_2239'),
                ('books', '0036_auto_20170707_1305'),
                ('books', '0037_book_kindle_link'),
                ('books', '0038_auto_20180125_1347'),
                ('books', '0039_auto_20180301_1107'),
                ('books', '0040_auto_20180402_1158'),
                ('books', '0041_auto_20180403_1123'),
                ('books', '0042_auto_20180403_1132'),
                ('books', '0043_auto_20180405_1413'),
                ('books', '0044_auto_20180405_1452'),
                ('books', '0045_auto_20180405_1454'),
                ('books', '0046_auto_20180405_1459'),
                ('books', '0047_auto_20180405_1531'),
                ('books', '0048_auto_20180405_1621'),
                ('books', '0049_auto_20180406_0959'),
                ('books', '0050_auto_20180406_1002'),
                ('books', '0051_bookcommunityresources'),
                ('books', '0052_auto_20180406_1005'),
                ('books', '0053_auto_20180409_1242'),
                ('books', '0054_auto_20180418_1034'),
                ('books', '0055_auto_20180502_1255'),
                ('books', '0056_auto_20180711_0921'),
                ('books', '0057_auto_20180713_1227'),
                ('books', '0058_remove_book_subject'),
                ('books', '0059_book_subject'),
                ('books', '0060_auto_20180920_1155'),
                ('books', '0061_book_chegg_link'),
                ('books', '0062_book_chegg_link_text'),
                ('books', '0063_auto_20190220_0836'),
                ('books', '0064_remove_book_subject'),
                ('books', '0065_book_book_cover_text_color'),
                ('books', '0066_auto_20190515_1206'),
                ('books', '0067_auto_20190710_1351'),
                ('books', '0068_auto_20190710_1356'),
                ('books', '0069_auto_20190710_1358'),
                ('books', '0070_auto_20190710_1424'),
                ('books', '0071_auto_20190710_1504'),
                ('books', '0072_book_webview_rex_link'),
                ('books', '0073_auto_20190730_1437'),
                ('books', '0073_auto_20190730_1153'),
                ('books', '0074_merge_20190805_1353'),
                ('books', '0075_book_study_edge_link'),
                ('books', '0076_auto_20190805_1642'),
                ('books', '0077_auto_20190806_1342'),
                ('books', '0078_auto_20190916_1211'),
                ('books', '0079_remove_book_table_of_contents'),
                ('books', '0079_auto_20191003_1236'),
                ('books', '0080_merge_20191003_1238'),
                ('books', '0081_book_table_of_contents'),
                ('books', '0082_book_videos'),
                ('books', '0083_auto_20191113_1616'),
                ('books', '0084_auto_20200210_1041'),
                ('books', '0084_auto_20200203_1638'),
                ('books', '0085_merge_20200210_1046'),
                ('books', '0086_auto_20200211_0906'),
                ('books', '0087_book_partner_page_link_text'),
                ('books', '0088_auto_20200309_1624'),
                ('books', '0089_auto_20200309_1627'),
                ('books', '0090_auto_20200310_1016'),
                ('books', '0092_auto_20200403_1514'),
                ('books', '0084_auto_20200213_1156'),
                ('books', '0087_merge_20200213_1202'),
                ('books', '0088_merge_20200311_0956'),
                ('books', '0091_merge_20200325_0813'),
                ('books', '0093_merge_20200403_1547'),
                ('books', '0094_auto_20200415_1139'),
                ('books', '0095_book_use_alt_errata_schedule'),
                ('books', '0096_auto_20200511_1312'),
                ('books', '0097_facultyresources_k12'),
                ('books', '0098_auto_20200710_0830'),
                ('books', '0099_auto_20200710_0936'),
                ('books', '0100_videofacultyresources')]

    dependencies = [
        ('wagtaildocs', '0010_document_file_hash'),
        ('wagtailcore', '0040_page_draft_title'),
        ('wagtailcore', '0023_alter_page_revision_on_delete_behaviour'),
        ('snippets', '0002_communityresource'),
        ('snippets', '0001_initial'),
        ('allies', '0001_initial'),
        ('wagtailimages', '0020_add-verbose-name'),
        ('wagtaildocs', '0007_merge'),
        ('snippets', '__first__'),
        ('wagtailimages', '0010_change_on_delete_behaviour'),
        ('snippets', '0010_communityresource_sharedcontent'),
        ('wagtaildocs', '0004_capitalizeverbose'),
    ]

    operations = [
        migrations.CreateModel(
            name='BookAlly',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('book_link_url',
                 models.URLField(blank=True, help_text='Call to Action Link')),
                ('book_link_text',
                 models.CharField(help_text='Call to Action Text',
                                  max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='BookIndex',
            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')),
                ('page_description', models.TextField()),
                ('dev_standards_heading',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('dev_standard_1_heading',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('dev_standard_1_description',
                 wagtail.core.fields.RichTextField()),
                ('dev_standard_2_heading',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('dev_standard_2_description',
                 wagtail.core.fields.RichTextField()),
                ('dev_standard_3_heading',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('dev_standard_3_description',
                 wagtail.core.fields.RichTextField()),
                ('subject_list_heading',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('promote_image',
                 models.ForeignKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailimages.Image')),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page', ),
        ),
        migrations.CreateModel(
            name='FacultyResources',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('link_external',
                 models.URLField(
                     blank=True,
                     help_text=
                     'Provide an external URL starting with http:// (or fill out either one of the following two).',
                     verbose_name='External link')),
                ('link_document',
                 models.ForeignKey(
                     blank=True,
                     help_text='Or select a document for viewers to download.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('link_page',
                 models.ForeignKey(
                     blank=True,
                     help_text='Or select an existing page to attach.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailcore.Page')),
                ('resource',
                 models.ForeignKey(
                     help_text='Manage resources through snippets.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='snippets.FacultyResource')),
                ('link_text',
                 models.CharField(default='',
                                  help_text='Call to Action Text',
                                  max_length=255)),
                ('coming_soon_text',
                 models.CharField(
                     blank=True,
                     help_text=
                     'If there is text in this field a coming soon banner will be added with this description.',
                     max_length=255,
                     null=True)),
                ('updated',
                 models.DateTimeField(
                     blank=True,
                     help_text='Late date resource was updated',
                     null=True)),
                ('featured',
                 models.BooleanField(
                     default=False,
                     help_text='Add to featured bar on resource page')),
                ('k12',
                 models.BooleanField(default=False,
                                     help_text='Add K12 banner to resource')),
                ('video_reference_number',
                 models.IntegerField(blank=True, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='Quotes',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('quote_text', wagtail.core.fields.RichTextField()),
                ('quote_author', models.CharField(max_length=255)),
                ('quote_author_school', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Book',
            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')),
                ('created', models.DateTimeField(auto_now_add=True)),
                ('cnx_id',
                 models.CharField(
                     blank=True,
                     help_text=
                     'This is used to pull relevant information from CNX.',
                     max_length=255,
                     null=True)),
                ('updated',
                 models.DateTimeField(
                     blank=True,
                     help_text='Late date web content was updated',
                     null=True)),
                ('description',
                 wagtail.core.fields.RichTextField(
                     blank=True,
                     help_text='Description shown on Book Detail page.')),
                ('publish_date',
                 models.DateField(help_text='Date the book is published on.',
                                  null=True)),
                ('print_isbn_10',
                 models.CharField(
                     blank=True,
                     help_text='ISBN 10 for print version (hardcover).',
                     max_length=255,
                     null=True)),
                ('print_isbn_13',
                 models.CharField(
                     blank=True,
                     help_text='ISBN 13 for print version (hardcover).',
                     max_length=255,
                     null=True)),
                ('license_name',
                 models.CharField(blank=True,
                                  editable=False,
                                  help_text='Name of the license.',
                                  max_length=255,
                                  null=True)),
                ('license_version',
                 models.CharField(blank=True,
                                  editable=False,
                                  help_text='Version of the license.',
                                  max_length=255,
                                  null=True)),
                ('license_url',
                 models.CharField(blank=True,
                                  editable=False,
                                  help_text='External URL of the license.',
                                  max_length=255,
                                  null=True)),
                ('cover',
                 models.ForeignKey(
                     help_text='The book cover to be shown on the website.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('is_ap',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Whether this book is an AP (Advanced Placement) book.')),
                ('high_resolution_pdf',
                 models.ForeignKey(
                     blank=True,
                     help_text='High quality PDF document of the book.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('ibook_link',
                 models.URLField(blank=True, help_text='Link to iBook')),
                ('low_resolution_pdf',
                 models.ForeignKey(
                     blank=True,
                     help_text='Low quality PDF document of the book.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('webview_link',
                 models.URLField(blank=True,
                                 help_text='Link to CNX Webview book')),
                ('amazon_link',
                 models.URLField(blank=True, help_text='Link to Amazon')),
                ('bookshare_link',
                 models.URLField(blank=True,
                                 help_text='Link to Bookshare resources')),
                ('license_text',
                 models.TextField(blank=True,
                                  help_text='Overrides default license text.',
                                  null=True)),
                ('ibook_link_volume_2',
                 models.URLField(blank=True,
                                 help_text='Link to secondary iBook')),
                ('community_resource_cta',
                 models.CharField(blank=True,
                                  help_text='Call the action text.',
                                  max_length=255,
                                  null=True)),
                ('community_resource_url',
                 models.URLField(blank=True,
                                 help_text='URL of the external source.')),
                ('authors',
                 wagtail.core.fields.StreamField([
                     ('author',
                      wagtail.core.blocks.StructBlock([
                          ('name',
                           wagtail.core.blocks.CharBlock(
                               help_text='Full name of the author.',
                               required=True)),
                          ('university',
                           wagtail.core.blocks.CharBlock(
                               help_text=
                               'Name of the university/institution the author is associated with.',
                               required=False)),
                          ('country',
                           wagtail.core.blocks.CharBlock(
                               help_text=
                               'Country of the university/institution.',
                               required=False)),
                          ('senior_author',
                           wagtail.core.blocks.BooleanBlock(
                               help_text=
                               'Whether the author is a senior author. (Senior authors are shown before non-senior authors.)',
                               required=False)),
                          ('display_at_top',
                           wagtail.core.blocks.BooleanBlock(
                               help_text='Whether display the author on top.',
                               required=False))
                      ]))
                 ],
                                                 null=True)),
                ('coming_soon', models.BooleanField(default=False)),
                ('salesforce_abbreviation',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('salesforce_name',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('amazon_coming_soon',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Whether this book is coming to Amazon bookstore.')),
                ('bookstore_coming_soon',
                 models.BooleanField(
                     default=False,
                     help_text='Whether this book is coming to bookstore soon.'
                 )),
                ('comp_copy_available',
                 models.BooleanField(
                     default=True,
                     help_text='Whether free compy available for teachers.')),
                ('tutor_marketing_book',
                 models.BooleanField(
                     default=False,
                     help_text='Whether this is a Tutor marketing book.')),
                ('digital_isbn_10',
                 models.CharField(blank=True,
                                  help_text='ISBN 10 for digital version.',
                                  max_length=255,
                                  null=True)),
                ('digital_isbn_13',
                 models.CharField(blank=True,
                                  help_text='ISBN 13 for digital version.',
                                  max_length=255,
                                  null=True)),
                ('ibook_isbn_10',
                 models.CharField(blank=True,
                                  help_text='ISBN 10 for iBook version.',
                                  max_length=255,
                                  null=True)),
                ('ibook_isbn_13',
                 models.CharField(blank=True,
                                  help_text='ISBN 13 for iBook version.',
                                  max_length=255,
                                  null=True)),
                ('ibook_volume_2_isbn_10',
                 models.CharField(blank=True,
                                  help_text='ISBN 10 for iBook v2 version.',
                                  max_length=255,
                                  null=True)),
                ('ibook_volume_2_isbn_13',
                 models.CharField(blank=True,
                                  help_text='ISBN 13 for iBook v2 version.',
                                  max_length=255,
                                  null=True)),
                ('kindle_link',
                 models.URLField(blank=True,
                                 help_text='Link to Kindle version')),
                ('community_resource_blurb',
                 models.TextField(blank=True, help_text='Blurb.')),
                ('community_resource_feature_text',
                 models.TextField(
                     blank=True,
                     help_text='Text of the community resource feature.')),
                ('cover_color',
                 models.CharField(choices=[('blue', 'Blue'),
                                           ('deep-green', 'Deep Green'),
                                           ('gold', 'Gold'), ('gray', 'Gray'),
                                           ('green', 'Green'),
                                           ('light-blue', 'Light Blue'),
                                           ('light-gray', 'Light Gray'),
                                           ('medium-blue', 'Medium Blue'),
                                           ('orange', 'Orange'),
                                           ('red', 'Red'),
                                           ('yellow', 'Yellow')],
                                  default='blue',
                                  help_text='The color of the cover.',
                                  max_length=255)),
                ('reverse_gradient', models.BooleanField(default=False)),
                ('title_image',
                 models.ForeignKey(
                     help_text=
                     'The svg for title image to be shown on the website.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('community_resource_feature_link',
                 models.ForeignKey(
                     blank=True,
                     help_text='Document of the community resource feature.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('ally_content',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     null=True)),
                ('bookstore_content',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     help_text='Bookstore content.',
                     null=True)),
                ('comp_copy_content',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     help_text='Content of the free copy.',
                     null=True)),
                ('errata_content',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     help_text='Errata content.',
                     null=True)),
                ('free_stuff_instructor',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     help_text=
                     'Snippet to show texts for free instructor resources.',
                     null=True)),
                ('free_stuff_student',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     help_text=
                     'Snipped to show texts for free student resources.',
                     null=True)),
                ('webinar_content',
                 wagtail.core.fields.StreamField(
                     [('content',
                       books.models.SharedContentChooserBlock(
                           snippets.models.SharedContent)),
                      ('link', wagtail.core.blocks.URLBlock(required=False)),
                      ('link_text',
                       wagtail.core.blocks.CharBlock(required=False))],
                     blank=True,
                     null=True)),
                ('community_resource_heading',
                 models.CharField(
                     blank=True,
                     help_text='Snipped to show texts for community resources.',
                     max_length=255,
                     null=True)),
                ('community_resource_logo',
                 models.ForeignKey(
                     blank=True,
                     help_text='Logo for community resources.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('book_state',
                 models.CharField(choices=[
                     ('live', 'Live'), ('coming_soon', 'Coming Soon'),
                     ('new_edition_available',
                      'New Edition Available (Show new edition correction schedule)'
                      ),
                     ('deprecated',
                      'Deprecated (Disallow errata submissions and show deprecated schedule)'
                      ), ('retired', 'Retired (Remove from website)')
                 ],
                                  default='live',
                                  help_text='The state of the book.',
                                  max_length=255)),
                ('promote_image',
                 models.ForeignKey(
                     blank=True,
                     help_text='Promote image.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailimages.Image')),
                ('chegg_link',
                 models.URLField(blank=True,
                                 help_text='Link to Chegg e-reader',
                                 null=True)),
                ('chegg_link_text',
                 models.CharField(blank=True,
                                  help_text='Text for Chegg link.',
                                  max_length=255,
                                  null=True)),
                ('book_cover_text_color',
                 models.CharField(
                     choices=[
                         ('yellow', 'Yellow'), ('light_blue', 'Light Blue'),
                         ('dark_blue', 'Dark Blue'), ('green', 'Green'),
                         ('white', 'White'), ('grey', 'Grey'), ('red', 'Red'),
                         ('white_red', 'White/Red'),
                         ('white_blue', 'White/Blue'),
                         ('green_white', 'Green/White'),
                         ('yellow_white', 'Yellow/White'),
                         ('grey_white', 'Grey/White'),
                         ('white_grey', 'White/Grey'),
                         ('white_orange', 'White/Orange')
                     ],
                     default='yellow',
                     help_text=
                     'Use by the Unified team - this will not change the text color on the book cover.',
                     max_length=255)),
                ('webview_rex_link',
                 models.URLField(blank=True,
                                 help_text='Link to REX Webview book')),
                ('print_softcover_isbn_10',
                 models.CharField(
                     blank=True,
                     help_text='ISBN 10 for print version (softcover).',
                     max_length=255,
                     null=True)),
                ('print_softcover_isbn_13',
                 models.CharField(
                     blank=True,
                     help_text='ISBN 13 for print version (softcover).',
                     max_length=255,
                     null=True)),
                ('last_updated_pdf',
                 models.DateTimeField(
                     blank=True,
                     help_text='Last time PDF was revised.',
                     null=True,
                     verbose_name='PDF Content Revision Date')),
                ('enable_study_edge',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'This will cause the link to the Study Edge app appear on the book details page.'
                 )),
                ('rex_callout_blurb',
                 models.CharField(
                     blank=True,
                     help_text='Additional text for the REX callout.',
                     max_length=255,
                     null=True)),
                ('rex_callout_title',
                 models.CharField(blank=True,
                                  default='Recommended',
                                  help_text='Title of the REX callout',
                                  max_length=255,
                                  null=True)),
                ('table_of_contents',
                 django.contrib.postgres.fields.jsonb.JSONField(
                     blank=True, editable=False, help_text='TOC.', null=True)),
                ('videos',
                 wagtail.core.fields.StreamField(
                     [('video',
                       wagtail.core.blocks.ListBlock(
                           wagtail.core.blocks.StructBlock([
                               ('title', wagtail.core.blocks.CharBlock()),
                               ('description',
                                wagtail.core.blocks.RichTextBlock()),
                               ('embed', wagtail.core.blocks.RawHTMLBlock())
                           ])))],
                     blank=True,
                     null=True)),
                ('partner_list_label',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Controls the heading text on the book detail page for partners. This will update ALL books to use this value!',
                     max_length=255,
                     null=True)),
                ('partner_page_link_text',
                 models.CharField(
                     blank=True,
                     help_text='Link to partners page on top right of list.',
                     max_length=255,
                     null=True)),
                ('featured_resources_header',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Featured resource header on instructor resources tab.',
                     max_length=255,
                     null=True)),
            ],
            options={
                'abstract': False,
            },
            bases=('wagtailcore.page', ),
        ),
        migrations.CreateModel(
            name='Authors',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(help_text='Full name of the author.',
                                  max_length=255)),
                ('university',
                 models.CharField(
                     blank=True,
                     help_text=
                     'Name of the university/institution the author is associated with.',
                     max_length=255,
                     null=True)),
                ('country',
                 models.CharField(
                     blank=True,
                     help_text='Country of the university/institution.',
                     max_length=255,
                     null=True)),
                ('senior_author',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Whether the author is a senior author. (Senior authors are shown before non-senior authors.)'
                 )),
                ('display_at_top',
                 models.BooleanField(
                     default=False,
                     help_text='Whether display the author on top.')),
                ('book',
                 modelcluster.fields.ParentalKey(
                     blank=True,
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_contributing_authors',
                     to='books.Book')),
            ],
        ),
        migrations.CreateModel(
            name='BookQuotes',
            fields=[
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
            bases=('books.quotes', models.Model),
        ),
        migrations.CreateModel(
            name='BookFacultyResources',
            fields=[
                ('facultyresources_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='books.FacultyResources')),
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('book_faculty_resource',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_faculty_resources',
                     to='books.Book')),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
            bases=('books.facultyresources', models.Model),
        ),
        migrations.CreateModel(
            name='BookAllies',
            fields=[
                ('bookally_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='books.BookAlly')),
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('book_ally',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_allies',
                     to='books.Book')),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
            bases=('books.bookally', models.Model),
        ),
        migrations.CreateModel(
            name='StudentResources',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('link_external',
                 models.URLField(
                     blank=True,
                     help_text=
                     'Provide an external URL starting with http:// (or fill out either one of the following two).',
                     verbose_name='External link')),
                ('link_text',
                 models.CharField(help_text='Call to Action Text',
                                  max_length=255)),
                ('link_document',
                 models.ForeignKey(
                     blank=True,
                     help_text='Or select a document for viewers to download.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtaildocs.Document')),
                ('link_page',
                 models.ForeignKey(
                     blank=True,
                     help_text='Or select an existing page to attach.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='wagtailcore.Page')),
                ('resource',
                 models.ForeignKey(
                     help_text='Manage resources through snippets.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='+',
                     to='snippets.StudentResource')),
                ('coming_soon_text',
                 models.CharField(
                     blank=True,
                     help_text=
                     'If there is text in this field a coming soon banner will be added with this description.',
                     max_length=255,
                     null=True)),
                ('updated',
                 models.DateTimeField(
                     blank=True,
                     help_text='Late date resource was updated',
                     null=True)),
            ],
        ),
        migrations.CreateModel(
            name='BookStudentResources',
            fields=[
                ('studentresources_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='books.StudentResources')),
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('book_student_resource',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_student_resources',
                     to='books.Book')),
            ],
            options={
                'abstract': False,
                'ordering': ['sort_order'],
            },
            bases=('books.studentresources', models.Model),
        ),
        migrations.CreateModel(
            name='BookSharedContent',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('link', models.URLField(blank=True, null=True)),
                ('link_text',
                 models.CharField(blank=True, max_length=255, null=True)),
            ],
        ),
        migrations.CreateModel(
            name='BookSharedContents',
            fields=[
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
            ],
            options={
                'abstract': False,
                'ordering': ['sort_order'],
            },
            bases=('books.booksharedcontent', models.Model),
        ),
        migrations.DeleteModel(name='BookSharedContent', ),
        migrations.DeleteModel(name='BookSharedContents', ),
        migrations.DeleteModel(name='BookQuotes', ),
        migrations.DeleteModel(name='Quotes', ),
        migrations.CreateModel(
            name='SubjectBooks',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('subject',
                 models.ForeignKey(
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='subjects_subject',
                     to='snippets.Subject')),
            ],
        ),
        migrations.CreateModel(
            name='BookSubjects',
            fields=[
                ('subjectbooks_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='books.SubjectBooks')),
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('book_subject',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_subjects',
                     to='books.Book')),
            ],
            options={
                'abstract': False,
                'ordering': ['sort_order'],
            },
            bases=('books.subjectbooks', models.Model),
        ),
        migrations.DeleteModel(name='BookAllies', ),
        migrations.DeleteModel(name='BookAlly', ),
        migrations.CreateModel(
            name='VideoFacultyResource',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('resource_heading', models.CharField(max_length=255)),
                ('resource_description',
                 wagtail.core.fields.RichTextField(blank=True, null=True)),
                ('video_title',
                 models.CharField(blank=True, max_length=255, null=True)),
                ('video_url', models.URLField(blank=True, null=True)),
                ('video_file',
                 models.FileField(blank=True,
                                  null=True,
                                  upload_to='resource_videos')),
            ],
        ),
        migrations.CreateModel(
            name='VideoFacultyResources',
            fields=[
                ('videofacultyresource_ptr',
                 models.OneToOneField(
                     auto_created=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     parent_link=True,
                     primary_key=True,
                     serialize=False,
                     to='books.VideoFacultyResource')),
                ('sort_order',
                 models.IntegerField(blank=True, editable=False, null=True)),
                ('book_video_faculty_resource',
                 modelcluster.fields.ParentalKey(
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='book_video_faculty_resources',
                     to='books.Book')),
            ],
            options={
                'ordering': ['sort_order'],
                'abstract': False,
            },
            bases=('books.videofacultyresource', models.Model),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('books', '0001_initial'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.CreateModel(
            name='DiscoveryMethod',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(
                     help_text=
                     'The name of some means by which people learn about our organization.',
                     max_length=30,
                     unique=True)),
                ('order',
                 models.IntegerField(
                     default=None,
                     help_text=
                     'These values define the order in which the discovery methods should be presented to users.',
                     unique=True)),
            ],
        ),
        migrations.CreateModel(
            name='GroupMembership',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('start_date',
                 models.DateField(
                     default=datetime.date.today,
                     help_text='The first day on which the membership is valid.'
                 )),
                ('end_date',
                 models.DateField(
                     default=datetime.date.today,
                     help_text='The last day on which the membership is valid.'
                 )),
                ('sale_price',
                 models.DecimalField(
                     decimal_places=2,
                     default=Decimal('0'),
                     help_text='The price at which this item sold.',
                     max_digits=6)),
                ('max_members',
                 models.IntegerField(
                     blank=True,
                     default=None,
                     help_text=
                     'The maximum number of members to which this group membership can be applied. Blank if no limit.',
                     null=True)),
            ],
            options={
                'abstract': False,
            },
            bases=(books.models.JournalLiner, models.Model),
        ),
        migrations.CreateModel(
            name='Member',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('nag_re_membership',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'If true, person will be nudged (via email) to renew membership.'
                 )),
                ('membership_card_md5',
                 models.CharField(
                     blank=True,
                     help_text=
                     'MD5 of the member card#. Field will auto-apply MD5 if value is digits.',
                     max_length=32,
                     null=True)),
                ('membership_card_when',
                 models.DateTimeField(
                     blank=True,
                     help_text=
                     'Date/time on which the membership card was created.',
                     null=True)),
                ('auth_user',
                 models.OneToOneField(
                     help_text=
                     'This must point to the corresponding auth.User object.',
                     on_delete=django.db.models.deletion.CASCADE,
                     related_name='member',
                     to=settings.AUTH_USER_MODEL)),
            ],
            options={
                'ordering': ['auth_user__first_name', 'auth_user__last_name'],
            },
        ),
        migrations.CreateModel(
            name='MemberLogin',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('when',
                 models.DateTimeField(
                     default=django.utils.timezone.now,
                     help_text='Date/time member logged in.')),
                ('ip',
                 models.GenericIPAddressField(
                     help_text='IP address from which member logged in.')),
                ('member',
                 models.ForeignKey(
                     blank=True,
                     help_text='The member who logged in.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='members.Member')),
            ],
            options={
                'verbose_name': 'Login',
            },
        ),
        migrations.CreateModel(
            name='MemberNote',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('content',
                 models.TextField(
                     help_text=
                     'For staff. Anything you want to say about the member.',
                     max_length=2048)),
                ('author',
                 models.ForeignKey(
                     blank=True,
                     help_text='The member who wrote this note.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='member_notes_authored',
                     to='members.Member')),
                ('member',
                 models.ForeignKey(
                     help_text='The member to which this note pertains.',
                     on_delete=django.db.models.deletion.CASCADE,
                     to='members.Member')),
            ],
        ),
        migrations.CreateModel(
            name='Membership',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('start_date',
                 models.DateField(
                     default=datetime.date.today,
                     help_text='The first day on which the membership is valid.'
                 )),
                ('end_date',
                 models.DateField(
                     default=datetime.date.today,
                     help_text='The last day on which the membership is valid.'
                 )),
                ('sale_price',
                 models.DecimalField(
                     decimal_places=2,
                     default=Decimal('0'),
                     help_text='The price at which this item sold.',
                     max_digits=6)),
                ('membership_type',
                 models.CharField(choices=[('R', 'Regular'),
                                           ('W', 'Work-Trade'),
                                           ('S', 'Scholarship'),
                                           ('C', 'Complimentary'),
                                           ('G', 'Group'), ('F', 'Family'),
                                           ('K', 'Gift Card')],
                                  default='R',
                                  help_text='The type of membership.',
                                  max_length=1)),
                ('ctrlid',
                 models.CharField(
                     default=members.models.next_membership_ctrlid,
                     help_text=
                     "Payment processor's id for this membership if it was part of an online purchase.",
                     max_length=40,
                     unique=True)),
                ('protected',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Protect against further auto processing by ETL, etc. Prevents overwrites of manually entered data.'
                 )),
                ('when_nudged',
                 models.DateField(
                     blank=True,
                     default=None,
                     help_text=
                     'Most recent date on which a renewal reminder was sent.',
                     null=True)),
                ('nudge_count',
                 models.IntegerField(
                     default=0,
                     help_text=
                     'The number of times a renewal reminder was sent.')),
                ('group',
                 models.ForeignKey(
                     blank=True,
                     default=None,
                     help_text=
                     'The associated group membership, if any. Usually none.',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     to='members.GroupMembership')),
                ('member',
                 models.ForeignKey(
                     blank=True,
                     default=None,
                     help_text='The member to whom this membership applies.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     to='members.Member')),
            ],
            options={
                'ordering': ['start_date'],
            },
            bases=(books.models.JournalLiner, models.Model),
        ),
        migrations.CreateModel(
            name='MembershipGiftCard',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('redemption_code',
                 models.CharField(
                     help_text=
                     'A random string printed on the card, used during card redemption / membership activation.',
                     max_length=20,
                     unique=True)),
                ('date_created',
                 models.DateField(
                     default=django.utils.timezone.now,
                     help_text='The date on which the gift card was created.')
                 ),
                ('price',
                 models.DecimalField(
                     decimal_places=2,
                     help_text='The price to buy this gift card.',
                     max_digits=6)),
                ('month_duration',
                 models.IntegerField(
                     blank=True,
                     default=None,
                     help_text=
                     'The number of months of membership this gift card grants when redeemed.',
                     null=True,
                     verbose_name='Months')),
                ('day_duration',
                 models.IntegerField(
                     blank=True,
                     default=None,
                     help_text=
                     'The number of days of membership this gift card grants when redeemed.',
                     null=True,
                     verbose_name='Days')),
            ],
            options={
                'verbose_name': 'Gift card',
            },
        ),
        migrations.CreateModel(
            name='MembershipGiftCardRedemption',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('redemption_date',
                 models.DateField(
                     default=django.utils.timezone.now,
                     help_text='The date on which the gift card was redeemed.')
                 ),
                ('card',
                 models.OneToOneField(
                     help_text='The membership gift card that was redeemed.',
                     on_delete=django.db.models.deletion.PROTECT,
                     to='members.MembershipGiftCard')),
            ],
            options={
                'verbose_name': 'Gift card redemption',
            },
        ),
        migrations.CreateModel(
            name='MembershipGiftCardReference',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('sale_price',
                 models.DecimalField(
                     decimal_places=2,
                     help_text='The price at which this item sold.',
                     max_digits=6)),
                ('ctrlid',
                 models.CharField(
                     default=members.models.next_giftcardref_ctrlid,
                     help_text=
                     "Payment processor's id if this was part of an online purchase.",
                     max_length=40,
                     unique=True)),
                ('protected',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'Protect against further auto processing by ETL, etc. Prevents overwrites of manually entered data.'
                 )),
                ('card',
                 models.OneToOneField(
                     blank=True,
                     help_text='The membership gift card being sold.',
                     null=True,
                     on_delete=django.db.models.deletion.PROTECT,
                     to='members.MembershipGiftCard')),
                ('sale',
                 models.ForeignKey(
                     blank=True,
                     help_text=
                     'The sale that includes the card as a line item.',
                     null=True,
                     on_delete=django.db.models.deletion.CASCADE,
                     to='books.Sale')),
            ],
            options={
                'verbose_name': 'Membership gift card',
            },
            bases=(models.Model, books.models.JournalLiner),
        ),
        migrations.CreateModel(
            name='Pushover',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('key',
                 models.CharField(
                     help_text="The member's User Key on Pushover.com",
                     max_length=30)),
                ('who',
                 models.ForeignKey(
                     help_text='The member to whom this tagging info applies.',
                     on_delete=django.db.models.deletion.CASCADE,
                     to='members.Member')),
            ],
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(help_text='A short name for the tag.',
                                  max_length=40,
                                  unique=True)),
                ('meaning',
                 models.TextField(
                     help_text=
                     "A discussion of the tag's semantics. What does it mean? What does it NOT mean?",
                     max_length=500)),
            ],
            options={
                'ordering': ['name'],
            },
        ),
        migrations.CreateModel(
            name='Tagging',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('date_tagged',
                 models.DateTimeField(
                     auto_now_add=True,
                     help_text='Date/time on which the member was tagged.')),
                ('can_tag',
                 models.BooleanField(
                     default=False,
                     help_text=
                     'If True, the tagged member can be a authorizing member for this tag.'
                 )),
                ('authorizing_member',
                 models.ForeignKey(
                     blank=True,
                     help_text=
                     'The member that authorized that the member be tagged.',
                     null=True,
                     on_delete=django.db.models.deletion.SET_NULL,
                     related_name='authorized_taggings',
                     to='members.Member')),
                ('tag',
                 models.ForeignKey(help_text='The tag assigned to the member.',
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='members.Tag')),
                ('tagged_member',
                 models.ForeignKey(help_text='The member tagged.',
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='taggings',
                                   to='members.Member')),
            ],
        ),
        migrations.CreateModel(
            name='VisitEvent',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('when',
                 models.DateTimeField(default=django.utils.timezone.now,
                                      help_text='Date/time of visit event.')),
                ('method',
                 models.CharField(
                     choices=[('R', 'RFID'), ('F', 'Front Desk'),
                              ('M', 'Mobile App'), ('U', 'Unknown')],
                     default='U',
                     help_text=
                     "The method used to record the visit, such as 'Front Desk' or 'RFID'.",
                     max_length=1)),
                ('event_type',
                 models.CharField(choices=[('A', 'Arrival'), ('P', 'Presence'),
                                           ('D', 'Departure')],
                                  help_text='The type of visit event.',
                                  max_length=1)),
                ('sync1',
                 models.BooleanField(
                     default=False,
                     help_text=
                     "True if this event has been sync'ed to 'other system #1'"
                 )),
                ('who',
                 models.ForeignKey(
                     help_text="The member who's visiting or visited.",
                     on_delete=django.db.models.deletion.PROTECT,
                     to='members.Member')),
            ],
            options={
                'ordering': ['when'],
            },
        ),
        migrations.CreateModel(
            name='WifiMacDetected',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('when',
                 models.DateTimeField(
                     default=django.utils.timezone.now,
                     help_text='Date/time when MAC was noticed to be present.')
                 ),
                ('mac',
                 models.CharField(help_text='A MAC address as 12 hex digits.',
                                  max_length=12)),
            ],
            options={
                'verbose_name_plural': 'Wifi MACs detected',
                'verbose_name': 'Wifi MAC detected',
            },
        ),
        migrations.AddField(
            model_name='membership',
            name='redemption',
            field=models.ForeignKey(
                blank=True,
                default=None,
                help_text=
                'The associated membership gift card redemption, if any. Usually none.',
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='members.MembershipGiftCardRedemption'),
        ),
        migrations.AddField(
            model_name='membership',
            name='sale',
            field=models.ForeignKey(
                blank=True,
                default=None,
                help_text=
                "The sale that includes this line item, if any. E.g. comp memberships don't have a corresponding sale.",
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Sale'),
        ),
        migrations.AddField(
            model_name='member',
            name='tags',
            field=models.ManyToManyField(blank=True,
                                         related_name='members',
                                         through='members.Tagging',
                                         to='members.Tag'),
        ),
        migrations.AddField(
            model_name='groupmembership',
            name='group_tag',
            field=models.ForeignKey(
                help_text=
                'Group membership is initially populated with the set of people having this tag.',
                on_delete=django.db.models.deletion.PROTECT,
                to='members.Tag'),
        ),
        migrations.AddField(
            model_name='groupmembership',
            name='invoice',
            field=models.ForeignKey(
                blank=True,
                default=None,
                help_text=
                'The receivable invoice that includes this line item, if any.',
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.ReceivableInvoice'),
        ),
        migrations.AddField(
            model_name='groupmembership',
            name='members_covered',
            field=models.ManyToManyField(through='members.Membership',
                                         to='members.Member'),
        ),
        migrations.AddField(
            model_name='groupmembership',
            name='sale',
            field=models.ForeignKey(
                blank=True,
                default=None,
                help_text=
                'The sale on which this group membership appears as a line item, if any.',
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Sale'),
        ),
        migrations.AlterUniqueTogether(
            name='visitevent',
            unique_together=set([('who', 'when')]),
        ),
        migrations.AlterUniqueTogether(
            name='tagging',
            unique_together=set([('tagged_member', 'tag')]),
        ),
    ]
class Migration(migrations.Migration):

    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name='Novel',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=20, verbose_name='名称')),
                ('number',
                 models.IntegerField(default=books.models.num,
                                     verbose_name='编号')),
            ],
        ),
        migrations.CreateModel(
            name='NovelTag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('tag', models.CharField(max_length=60, verbose_name='标签')),
            ],
        ),
        migrations.CreateModel(
            name='User',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('mail', models.CharField(max_length=50, verbose_name='邮箱')),
            ],
        ),
        migrations.CreateModel(
            name='UserToSc',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('number',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Novel')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.User')),
            ],
        ),
        migrations.AddField(
            model_name='user',
            name='number',
            field=models.ManyToManyField(through='books.UserToSc',
                                         to='books.Novel',
                                         verbose_name='num1'),
        ),
        migrations.CreateModel(
            name='NumToTag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('num',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Novel')),
                ('tags',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.NovelTag')),
            ],
        ),
        migrations.AddField(
            model_name='noveltag',
            name='number',
            field=models.ManyToManyField(through='books.NumToTag',
                                         to='books.Novel',
                                         verbose_name='num'),
        ),
        migrations.CreateModel(
            name='NovelMessage',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('author', models.CharField(max_length=30, verbose_name='作者')),
                ('introduce',
                 models.CharField(max_length=999, verbose_name='介绍')),
                ('up',
                 models.IntegerField(default=books.models.up_num,
                                     verbose_name='点赞')),
                ('serialize',
                 models.BooleanField(default=1, verbose_name='连载状态')),
                ('vip_type',
                 models.BooleanField(default=0, verbose_name='VIP可阅读')),
                ('cover',
                 models.ImageField(null=True,
                                   upload_to='cover',
                                   verbose_name='封面')),
                ('novel_num',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to='books.Novel',
                     verbose_name='小说编号')),
            ],
            options={
                'ordering': ['-up'],
            },
        ),
        migrations.AddField(
            model_name='novel',
            name='mail',
            field=models.ManyToManyField(through='books.UserToSc',
                                         to='books.User'),
        ),
        migrations.AddField(
            model_name='novel',
            name='tag',
            field=models.ManyToManyField(through='books.NumToTag',
                                         to='books.NovelTag'),
        ),
        migrations.CreateModel(
            name='Chapter',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('chapter',
                 models.CharField(max_length=100, verbose_name='小说章节')),
                ('content', models.TextField(verbose_name='单章内容')),
                ('topic',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Novel')),
            ],
        ),
    ]
Beispiel #26
0
class Migration(migrations.Migration):

    initial = True

    dependencies = [
    ]

    operations = [
        CITextExtension(),
        migrations.CreateModel(
            name='Author',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', models.CharField(max_length=255)),
                ('age', models.PositiveSmallIntegerField()),
                ('email', books.models.CustomEmailField(max_length=254, null=True)),
            ],
            options={
                'db_table': 'author',
            },
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('name', django.contrib.postgres.fields.citext.CICharField(max_length=30)),
                ('created', models.DateTimeField(auto_now=True)),
            ],
            options={
                'db_table': 'category',
            },
        ),
        migrations.CreateModel(
            name='CategoryRelation',
            fields=[
                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
                ('type', models.CharField(max_length=30, null=True)),
                ('category1', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parents', to='books.Category')),
                ('category2', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='children', to='books.Category')),
            ],
            options={
                'db_table': 'category_relation',
            },
        ),
        migrations.AddField(
            model_name='category',
            name='related_coming',
            field=models.ManyToManyField(related_name='related_going', through='books.CategoryRelation', to='books.Category'),
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('price', django.contrib.postgres.fields.jsonb.JSONField()),
                ('title', models.CharField(max_length=255)),
                ('description', models.TextField(blank=True, null=True)),
                ('content', models.BinaryField()),
                ('tags', django.contrib.postgres.fields.ArrayField(base_field=models.CharField(max_length=10), size=3)),
                ('author', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='books', to='books.Author')),
                ('category', models.ManyToManyField(related_name='books', to='books.Category')),
            ],
            options={
                'db_table': 'book',
            },
        ),
    ]
Beispiel #27
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name',
                 models.CharField(max_length=200, verbose_name='Book Title')),
                ('book_src',
                 models.FileField(blank=True,
                                  null=True,
                                  upload_to=books.models.upload_book,
                                  verbose_name='Book Source')),
                ('pages',
                 models.PositiveSmallIntegerField(blank=True, null=True)),
                ('published_on',
                 models.DateField(blank=True,
                                  default=datetime.date.today,
                                  null=True)),
                ('genre',
                 models.CharField(choices=[('adventure', 'Adventure'),
                                           ('history', 'History'),
                                           ('fiction', 'Fiction'),
                                           ('nonfiction', 'Non-Fiction')],
                                  max_length=50)),
                ('photo',
                 models.ImageField(blank=True,
                                   max_length=1000,
                                   null=True,
                                   upload_to='Book_Covers/')),
                ('summary',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Summary')),
                ('author',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='authors.Author')),
            ],
        ),
        migrations.CreateModel(
            name='Review',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('username',
                 models.CharField(max_length=50, verbose_name='Username')),
                ('stars',
                 models.IntegerField(choices=[(1, '1'), (2, '2'), (3, '3'),
                                              (4, '4'), (5, '5')],
                                     verbose_name='Stars')),
                ('comment',
                 models.TextField(blank=True,
                                  null=True,
                                  verbose_name='Your Comment')),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='book_review',
                                   to='books.Book',
                                   verbose_name='Book')),
            ],
            options={
                'verbose_name': 'Review',
                'verbose_name_plural': 'Reviews',
            },
        ),
    ]
class Migration(migrations.Migration):

    dependencies = [
        ('books', '0070_auto_20190710_1424'),
    ]

    operations = [
        migrations.AlterField(
            model_name='book',
            name='amazon_coming_soon',
            field=models.BooleanField(default=False, help_text='Whether this book is coming to Amazon bookstore.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='bookstore_coming_soon',
            field=models.BooleanField(default=False, help_text='Whether this book is coming to bookstore soon.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='bookstore_content',
            field=wagtail.core.fields.StreamField([('content', books.models.SharedContentChooserBlock(snippets.models.SharedContent)), ('link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.CharBlock(required=False))], blank=True, help_text='Bookstore content.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='chegg_link_text',
            field=models.CharField(blank=True, help_text='Text for Chegg link.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_blurb',
            field=models.TextField(blank=True, help_text='Blurb.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_cta',
            field=models.CharField(blank=True, help_text='Call the action text.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_feature_link',
            field=models.ForeignKey(blank=True, help_text='Document of the community resource feature.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtaildocs.Document'),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_feature_text',
            field=models.TextField(blank=True, help_text='Text of the community resource feature.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_heading',
            field=models.CharField(blank=True, help_text='Snipped to show texts for community resources.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_logo',
            field=models.ForeignKey(blank=True, help_text='Logo for community resources.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtaildocs.Document'),
        ),
        migrations.AlterField(
            model_name='book',
            name='community_resource_url',
            field=models.URLField(blank=True, help_text='URL of the external source.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='comp_copy_available',
            field=models.BooleanField(default=True, help_text='Whether free compy available for teachers.'),
        ),
        migrations.AlterField(
            model_name='book',
            name='comp_copy_content',
            field=wagtail.core.fields.StreamField([('content', books.models.SharedContentChooserBlock(snippets.models.SharedContent)), ('link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.CharBlock(required=False))], blank=True, help_text='Content of the free copy.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='errata_content',
            field=wagtail.core.fields.StreamField([('content', books.models.SharedContentChooserBlock(snippets.models.SharedContent)), ('link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.CharBlock(required=False))], blank=True, help_text='Errata content.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='free_stuff_instructor',
            field=wagtail.core.fields.StreamField([('content', books.models.SharedContentChooserBlock(snippets.models.SharedContent)), ('link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.CharBlock(required=False))], blank=True, help_text='Snippet to show texts for free instructor resources.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='free_stuff_student',
            field=wagtail.core.fields.StreamField([('content', books.models.SharedContentChooserBlock(snippets.models.SharedContent)), ('link', wagtail.core.blocks.URLBlock(required=False)), ('link_text', wagtail.core.blocks.CharBlock(required=False))], blank=True, help_text='Snipped to show texts for free student resources.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='high_resolution_pdf',
            field=models.ForeignKey(blank=True, help_text='High quality PDF document of the book.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtaildocs.Document'),
        ),
        migrations.AlterField(
            model_name='book',
            name='license_name',
            field=models.CharField(blank=True, editable=False, help_text='Name of the license.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='license_url',
            field=models.CharField(blank=True, editable=False, help_text='External URL of the license.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='license_version',
            field=models.CharField(blank=True, editable=False, help_text='Version of the license.', max_length=255, null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='low_resolution_pdf',
            field=models.ForeignKey(blank=True, help_text='Low quality PDF document of the book.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtaildocs.Document'),
        ),
        migrations.AlterField(
            model_name='book',
            name='promote_image',
            field=models.ForeignKey(blank=True, help_text='Promote image.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image'),
        ),
        migrations.AlterField(
            model_name='book',
            name='table_of_contents',
            field=django.contrib.postgres.fields.jsonb.JSONField(blank=True, editable=False, help_text='TOC.', null=True),
        ),
        migrations.AlterField(
            model_name='book',
            name='tutor_marketing_book',
            field=models.BooleanField(default=False, help_text='Whether this is a Tutor marketing book.'),
        ),
    ]
Beispiel #29
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        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=100)),
                ('middle_name',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('last_name',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('country', models.CharField(max_length=100)),
                ('place_of_birth', models.CharField(max_length=300)),
                ('date_of_birth', models.DateField()),
                ('date_of_death', models.DateField(null=True)),
                ('description', models.TextField()),
            ],
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('isbn',
                 models.CharField(max_length=20,
                                  primary_key=True,
                                  serialize=False,
                                  unique=True,
                                  validators=[books.validators.validate_isbn
                                              ])),
                ('description', models.TextField()),
                ('title', models.CharField(max_length=300)),
                ('pages', models.IntegerField(blank=True, null=True)),
                ('publish_date', models.DateField(blank=True, null=True)),
                ('language',
                 models.CharField(blank=True, max_length=100, null=True)),
                ('hidden', models.BooleanField(default=False)),
                ('picture',
                 models.ImageField(blank=True,
                                   null=True,
                                   upload_to=books.models.book_picture_path,
                                   verbose_name='Book picture')),
                ('copies_num', models.IntegerField()),
                ('authors',
                 models.ManyToManyField(related_name='books',
                                        to='books.Author')),
            ],
        ),
        migrations.CreateModel(
            name='BookComment',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('body', models.TextField()),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('blocked', models.BooleanField(default=False)),
                ('blocked_reason', models.CharField(max_length=200,
                                                    null=True)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='comments',
                                   to='books.Book')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='comments',
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='BookFile',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=50)),
                ('description', models.CharField(max_length=100)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('file',
                 models.FileField(upload_to=books.models.book_files_path)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='files',
                                   to='books.Book')),
            ],
        ),
        migrations.CreateModel(
            name='BookTag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Book')),
            ],
        ),
        migrations.CreateModel(
            name='Genre',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=200)),
            ],
        ),
        migrations.CreateModel(
            name='Publisher',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=300)),
                ('country', models.CharField(max_length=100)),
            ],
        ),
        migrations.CreateModel(
            name='ReadersListRecord',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('date_taken', models.DateTimeField(auto_now_add=True)),
                ('date_returned', models.DateTimeField(blank=True)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Book')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='Tag',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('name', models.CharField(max_length=300)),
            ],
        ),
        migrations.CreateModel(
            name='Vote',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('action', models.SmallIntegerField(default=1)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Book')),
                ('user',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.AddField(
            model_name='booktag',
            name='tag',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE, to='books.Tag'),
        ),
        migrations.AddField(
            model_name='booktag',
            name='user',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to=settings.AUTH_USER_MODEL),
        ),
        migrations.AddField(
            model_name='book',
            name='genre',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='books.Genre'),
        ),
        migrations.AddField(
            model_name='book',
            name='publisher',
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Publisher'),
        ),
        migrations.AddField(
            model_name='book',
            name='tags',
            field=models.ManyToManyField(blank=True,
                                         related_name='books',
                                         to='books.Tag'),
        ),
        migrations.AddField(
            model_name='author',
            name='genre',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                to='books.Genre'),
        ),
    ]
Beispiel #30
0
class Migration(migrations.Migration):

    initial = True

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

    operations = [
        migrations.CreateModel(
            name='Author',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('author_name', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Book',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('isbn', models.CharField(max_length=120)),
                ('title', models.CharField(max_length=120)),
                ('description', models.TextField()),
                ('length',
                 models.DurationField(default=datetime.timedelta(0, 1200))),
                ('release_date', models.DateTimeField()),
                ('image', models.FileField(blank=True,
                                           null=True,
                                           upload_to=b'')),
                ('audio_link',
                 models.FileField(
                     upload_to=books.models.get_upload_file_name)),
                ('is_banner',
                 models.CharField(choices=[('On', 'on'), ('Off', 'off')],
                                  max_length=10)),
                ('is_featured',
                 models.CharField(choices=[('On', 'on'), ('Off', 'off')],
                                  max_length=10)),
                ('updated', models.DateTimeField(auto_now=True)),
                ('timestamp', models.DateTimeField(auto_now_add=True)),
                ('author_id', models.ManyToManyField(to='books.Author')),
            ],
        ),
        migrations.CreateModel(
            name='Category',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('category_name', models.CharField(max_length=50)),
                ('parent',
                 models.ForeignKey(blank=True,
                                   null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   related_name='child',
                                   to='books.Category')),
            ],
            options={
                'verbose_name': 'category',
                'verbose_name_plural': 'categories',
            },
        ),
        migrations.CreateModel(
            name='Currency',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('currency_name', models.CharField(max_length=255)),
                ('currency_symbol', models.CharField(max_length=10)),
            ],
        ),
        migrations.CreateModel(
            name='Group',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('group_name', models.CharField(max_length=120)),
            ],
        ),
        migrations.CreateModel(
            name='Language',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('language_name', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Narrator',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('narrator_name', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Price',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('price_tag',
                 models.DecimalField(decimal_places=2,
                                     default=Decimal('0.00'),
                                     max_digits=6)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Book')),
                ('currency',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   related_name='price_currency',
                                   to='books.Currency')),
                ('language',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Language')),
            ],
        ),
        migrations.CreateModel(
            name='ProgramFormat',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('program_name', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Publisher',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('publisher_name', models.CharField(max_length=255)),
            ],
        ),
        migrations.CreateModel(
            name='Rating',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('rating', models.IntegerField(default=0)),
                ('book',
                 models.ForeignKey(on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Book')),
                ('user_id',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.CreateModel(
            name='UserProfile',
            fields=[
                ('id',
                 models.AutoField(auto_created=True,
                                  primary_key=True,
                                  serialize=False,
                                  verbose_name='ID')),
                ('group',
                 models.ForeignKey(null=True,
                                   on_delete=django.db.models.deletion.CASCADE,
                                   to='books.Group')),
                ('user',
                 models.OneToOneField(
                     on_delete=django.db.models.deletion.CASCADE,
                     to=settings.AUTH_USER_MODEL)),
            ],
        ),
        migrations.AddField(
            model_name='book',
            name='category_id',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Category'),
        ),
        migrations.AddField(
            model_name='book',
            name='narrator_id',
            field=models.ManyToManyField(to='books.Narrator'),
        ),
        migrations.AddField(
            model_name='book',
            name='program_format',
            field=models.ForeignKey(
                null=True,
                on_delete=django.db.models.deletion.CASCADE,
                to='books.ProgramFormat'),
        ),
        migrations.AddField(
            model_name='book',
            name='publisher',
            field=models.ForeignKey(
                on_delete=django.db.models.deletion.CASCADE,
                to='books.Publisher'),
        ),
    ]