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'), ), ]
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): 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, }, ), ]
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='제목')), ('disclosure', models.BooleanField(default=False, verbose_name='공개 허용 여부')), ('author', models.CharField(max_length=50, verbose_name='저자')), ('translator', models.CharField(blank=True, max_length=50, null=True, verbose_name='번역자')), ('publisher', models.CharField(max_length=50, verbose_name='출판사')), ('pub_date', models.DateField(blank=True, null=True, verbose_name='출간일 (최종)')), ('description', mdeditor.fields.MDTextField(blank=True, null=True, verbose_name='책설명')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='등록자')), ], options={ 'verbose_name': '1. 도서', 'verbose_name_plural': '1. 도서', 'ordering': ('-created_at',), }, ), migrations.CreateModel( name='Subject', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('seq', models.PositiveSmallIntegerField(verbose_name='순서')), ('title', models.CharField(max_length=100, verbose_name='단원 명칭')), ('level', models.IntegerField(choices=[(1, ' 1'), (2, ' 2'), (3, ' 3'), (4, ' 4'), (5, ' 5')], verbose_name='단원 레벨')), ('content', mdeditor.fields.MDTextField(blank=True, verbose_name='단원 내용')), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.book')), ('user', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, verbose_name='등록자')), ], options={ 'verbose_name': '2. 단원', 'verbose_name_plural': '2. 단원', 'ordering': ('book', 'seq'), }, ), migrations.CreateModel( name='Images', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField(upload_to=books.models.get_image_filename, verbose_name='Image')), ('subject', models.ForeignKey(default=None, on_delete=django.db.models.deletion.CASCADE, to='books.subject')), ], ), ]
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')), ('isbn', models.CharField(max_length=40)), ('title', models.CharField(max_length=50)), ('author', models.CharField(max_length=50)), ('quantity', models.IntegerField()), ], options={ 'ordering': ['title'], }, ), migrations.CreateModel( name='IssueBooks', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('entry_date', models.DateTimeField(auto_now_add=True)), ('expiry_date', models.DateTimeField( default=books.models.IssueBooks.get_expiry_date)), ('issue_book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.Books')), ('issue_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('books', '0022_auto_20181124_2037'), ] operations = [ migrations.CreateModel( name='Upload', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('image', models.ImageField(upload_to=books.models.get_image_path)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='uploads', to='books.Book')), ], options={ 'abstract': False, }, ), migrations.RemoveField( model_name='social', name='book', ), migrations.AddField( model_name='comment', name='book', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.PROTECT, to='books.Book'), ), migrations.DeleteModel(name='Social', ), ]
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': 'Авторы', }, ), ]
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', }, ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('books', '0001_initial'), ] operations = [ migrations.CreateModel( name='BookLoanEvent', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.CharField(default=books.models.LoanStatus('requested'), max_length=2)), ('date', models.DateTimeField(blank=True, null=True)), ], ), migrations.AlterField( model_name='book', name='status', field=django_fsm.FSMField( choices=[('AV', 'available'), ('OL', 'on loan'), ('RQ', 'requested'), ('NA', 'not available')], default=books.models.LoanStatus('available'), max_length=50), ), migrations.DeleteModel(name='BookLoan', ), migrations.AddField( model_name='bookloanevent', name='book', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='books.Book'), ), migrations.AddField( model_name='bookloanevent', name='holder', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), ]
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)), ], ), ]
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')), ('name', models.CharField(max_length=200)), ('slug', models.SlugField(blank=True, max_length=200, null=True)), ('published', models.DateField()), ('ISBN', models.CharField(max_length=50)), ('author', models.CharField(max_length=200)), ('genre', models.CharField(max_length=200)), ('about', ckeditor.fields.RichTextField()), ('cover', models.ImageField(null=True, upload_to=books.models.upload_to)), ('added_by', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='books_added', to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Book', 'verbose_name_plural': 'Books', }, ), migrations.CreateModel( name='Favourite', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True, db_index=True)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fav_to_set', to='books.Book')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='fav_from_set', to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('-created',), }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0008_alter_user_username_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField( default=False, help_text= 'Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='Email address')), ('username', models.CharField(blank=True, max_length=255, null=True, verbose_name='User name')), ('first_name', models.CharField(blank=True, max_length=32, null=True, verbose_name='First name')), ('last_name', models.CharField(blank=True, max_length=32, null=True, verbose_name='Last name')), ('date_joined', models.DateTimeField(auto_now_add=True, verbose_name='Date joined')), ('is_active', models.BooleanField(default=True, verbose_name='Active')), ('is_staff', models.BooleanField(default=False, verbose_name='Staff')), ('avatar', models.ImageField(blank=True, null=True, upload_to=books.models.user_avatar_path, verbose_name='Profile picture')), ('facebook_email', models.EmailField(blank=True, max_length=254, null=True, verbose_name='Facebook email address')), ('facebook_avatar', models.URLField(blank=True, null=True, verbose_name='Facebook profile picture')), ('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_plural': 'users', 'verbose_name': 'user', }, managers=[ ('objects', books.managers.UserManager()), ], ), 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=255, verbose_name='First name')), ('last_name', models.CharField(max_length=255, verbose_name='Last name')), ], options={ 'verbose_name_plural': 'Authors', 'verbose_name': 'Author', }, ), 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, verbose_name='Title')), ('isbn', models.CharField(blank=True, help_text='10 or 13 digits', max_length=13, null=True, unique=True, validators=[books.models.isbn_validator], verbose_name='ISBN')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Created')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Updated')), ('cover', models.ImageField(blank=True, null=True, upload_to='books/covers', verbose_name='Cover')), ('author', models.ManyToManyField(related_name='author', to='books.Author', verbose_name='Author')), ], options={ 'verbose_name_plural': 'Books', 'verbose_name': 'Book', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [] 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=60)), ('slug', models.CharField(max_length=80)), ], 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=60)), ('slug', models.SlugField(max_length=80)), ('isbn', isbn_field.fields.ISBNField( max_length=28, validators=[isbn_field.validators.ISBNValidator], verbose_name='ISBN')), ('image', models.ImageField(blank=True, null=True, upload_to=books.models.upload_location)), ('price', models.DecimalField(decimal_places=2, default=0, max_digits=10)), ('publish_date', models.DateField(blank=True, default=datetime.date.today)), ('created', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now_add=True)), ('active', models.BooleanField(default=True)), ('authors', models.ManyToManyField(related_name='books', to='books.Author')), ], options={ 'verbose_name': 'book', 'verbose_name_plural': 'books', }, ), migrations.CreateModel( name='RequestListener', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('request_value', models.CharField(max_length=200)), ], ), ]
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='별점')), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('books', '0015_journal_month'), ] operations = [ migrations.AlterField( model_name='book', name='age_restrictions', field=models.CharField(max_length=50, verbose_name='Возрастные ограничения'), ), migrations.AlterField( model_name='book', name='author', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to='refers.Author', verbose_name='Автор'), ), migrations.AlterField( model_name='book', name='available', field=models.BooleanField(default=True, verbose_name='Доступно к заказу'), ), migrations.AlterField( model_name='book', name='book_ISBN', field=models.CharField(max_length=50, verbose_name='ISBN'), ), migrations.AlterField( model_name='book', name='book_format', field=models.CharField(max_length=50, verbose_name='Формат'), ), migrations.AlterField( model_name='book', name='cover', field=models.ImageField(upload_to=books.models.image_folder, verbose_name='Обложка'), ), migrations.AlterField( model_name='book', name='created', field=models.DateTimeField(auto_now_add=True, verbose_name='Дата создания'), ), migrations.AlterField( model_name='book', name='genre', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to='refers.Genre', verbose_name='Жанр'), ), migrations.AlterField( model_name='book', name='name', field=models.CharField(max_length=200, verbose_name='Наименование'), ), migrations.AlterField( model_name='book', name='page', field=models.IntegerField(verbose_name='Количество страниц'), ), migrations.AlterField( model_name='book', name='price', field=models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Цена, BYN'), ), migrations.AlterField( model_name='book', name='quantity_for_sale', field=models.IntegerField( verbose_name='Количество книг в наличии'), ), migrations.AlterField( model_name='book', name='rating', field=models.FloatField(verbose_name='Рейтинг'), ), migrations.AlterField( model_name='book', name='serie', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to='refers.Serie', verbose_name='Серия'), ), migrations.AlterField( model_name='book', name='slug', field=models.SlugField(verbose_name='Slug'), ), migrations.AlterField( model_name='book', name='type_cover', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to='refers.TypeCover', verbose_name='Переплёт'), ), migrations.AlterField( model_name='book', name='updated', field=models.DateTimeField( auto_now=True, verbose_name='Дата последнего изменения'), ), migrations.AlterField( model_name='book', name='weight_gram', field=models.IntegerField(verbose_name='Вес, гр'), ), migrations.AlterField( model_name='book', name='year', field=models.IntegerField(verbose_name='Год издания'), ), migrations.AlterField( model_name='journal', name='available', field=models.BooleanField(default=True, verbose_name='Доступно к заказу'), ), migrations.AlterField( model_name='journal', name='created', field=models.DateTimeField(auto_now_add=True, verbose_name='Дата создания'), ), migrations.AlterField( model_name='journal', name='month', field=models.CharField(max_length=50, verbose_name='Месяц'), ), migrations.AlterField( model_name='journal', name='name', field=models.CharField(max_length=200, verbose_name='Наименование'), ), migrations.AlterField( model_name='journal', name='number', field=models.IntegerField(verbose_name='Выпуск'), ), migrations.AlterField( model_name='journal', name='page', field=models.IntegerField(verbose_name='Количество страниц'), ), migrations.AlterField( model_name='journal', name='price', field=models.DecimalField(decimal_places=2, max_digits=10, verbose_name='Цена, BYN'), ), migrations.AlterField( model_name='journal', name='updated', field=models.DateTimeField( auto_now=True, verbose_name='Дата последнего изменения'), ), migrations.AlterField( model_name='journal', name='year', field=models.IntegerField(verbose_name='Год издания'), ), ]
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)), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Author', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('first_name', models.CharField(blank=True, max_length=100, null=True)), ('last_name', models.CharField(max_length=100)), ('date_of_birth', models.DateField(blank=True, null=True)), ('date_of_death', models.DateField(blank=True, null=True, verbose_name='Died')), ('slug', models.SlugField(blank=True, null=True)), ], options={ 'ordering': ['last_name', 'first_name'], }, ), 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)), ('summary', ckeditor_uploader.fields.RichTextUploadingField( blank=True, help_text='Enter a brief description of the book', null=True)), ('isbn', models.CharField( blank=True, help_text= '13 Character <a href="https://www.isbn-international.org/content/what-isbn">ISBN number</a>', max_length=13, null=True, verbose_name='ISBN')), ('cover', models.ImageField(default='covers/no_cover.jpg', upload_to='covers')), ('slug', models.SlugField(blank=True, max_length=70, null=True)), ('published_data', models.DateField(blank=True, null=True)), ('author', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='books.Author')), ], ), migrations.CreateModel( name='BookFile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('uploaded_at', models.DateTimeField(auto_now_add=True)), ('file', models.FileField(blank=True, null=True, upload_to=books.models.get_path)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.Book')), ], ), ]
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', }, ), ]
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')), ('created', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now_add=True)), ('slug', models.CharField(blank=True, max_length=255)), ('name', models.CharField(max_length=255, unique=True)), ('dob', models.DateTimeField(blank=True, null=True)), ('country', models.CharField(blank=True, max_length=150, null=True)), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Book', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now_add=True)), ('slug', models.CharField(blank=True, max_length=255)), ('isbn13', models.CharField(blank=True, max_length=10, null=True)), ('isbn10', models.CharField(blank=True, max_length=10, null=True)), ('title', models.CharField(max_length=255, unique=True)), ('edition', models.PositiveSmallIntegerField(blank=True, null=True)), ('cover', models.ImageField(blank=True, upload_to=books.models.book_cover_path)), ('item', models.FileField(upload_to='book_file_path')), ('description', models.CharField(blank=True, max_length=255, null=True)), ('author', models.ManyToManyField(null=True, to='books.Author')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now_add=True)), ('slug', models.CharField(blank=True, max_length=255)), ('title', models.CharField(max_length=255, unique=True)), ('description', models.CharField(blank=True, max_length=255, null=True)), ('parent', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='books.Category')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Publisher', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now=True)), ('updated', models.DateTimeField(auto_now_add=True)), ], options={ 'abstract': False, }, ), migrations.AddField( model_name='book', name='category', field=models.ManyToManyField(blank=True, null=True, to='books.Category'), ), migrations.AddField( model_name='book', name='user', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), ), ]
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=255)), ('author', models.CharField(max_length=255)), ('description', models.CharField(max_length=255)), ('genre', models.CharField(max_length=255)), ('year', models.IntegerField()), ('quantity', models.IntegerField()), ('price', models.FloatField()), ('image', models.FileField(upload_to=books.models.book_img_path)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('seller', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ['-created_at'], }, ), migrations.CreateModel( name='Profile', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('birthdate', models.DateField()), ('address', models.CharField(max_length=255)), ('balance', models.FloatField(default=0)), ('image', models.ImageField(blank=True, upload_to=books.models.user_img_path)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('email_confirmed', models.BooleanField(default=False)), ('user', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='BookSale', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('price_per_piece', models.FloatField()), ('quantity', models.IntegerField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='books.book')), ('buyer', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ['-created_at'], }, ), ]
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'), ), ]
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 = [ 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 = [ ('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): 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 = [ 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'), ), ]
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'), ), ]