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): dependencies = [ ('books', '0003_remove_issuebooks_time'), ] operations = [ migrations.AlterField( model_name='issuebooks', name='entry_date', field=models.DateField(auto_now_add=True), ), migrations.AlterField( model_name='issuebooks', name='expiry_date', field=models.DateField( default=books.models.IssueBooks.get_expiry_date), ), ]
class Migration(migrations.Migration): dependencies = [ ('books', '0018_auto_20170624_1354'), ('members', '0004_membership_key_allowed'), ] operations = [ migrations.CreateModel( name='KeyFee', 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.00'), help_text='The price at which this item sold.', max_digits=6)), ('ctrlid', models.CharField(default=members.models.next_keyfee_ctrlid, help_text="Payment processor's id for this line item 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.')), ], options={ 'abstract': False, }, bases=(books.models.JournalLiner, models.Model), ), migrations.RemoveField( model_name='membership', name='key_allowed', ), migrations.AddField( model_name='keyfee', name='membership', field=models.OneToOneField(blank=True, default=None, help_text='The associated membership. MUST be specified, eventually!', null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.Membership'), ), migrations.AddField( model_name='keyfee', name='sale', field=models.ForeignKey(blank=True, default=None, help_text='The sale that includes this line item.', null=True, on_delete=django.db.models.deletion.CASCADE, to='books.Sale'), ), ]
class Migration(migrations.Migration): dependencies = [ ('books', '0004_auto_20200607_1110'), ] operations = [ migrations.AlterField( model_name='issuebooks', name='entry_date', field=models.DateField( default=books.models.IssueBooks.get_entry_date), ), ]
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 = [ ] operations = [ migrations.CreateModel( name='book', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('book_name', models.CharField(max_length=100)), ('author_name', models.CharField(max_length=50)), ('published_date', models.DateField(null=True)), ('publisher', models.CharField(max_length=100)), ('Category', models.CharField(max_length=100)), ('book_description', models.CharField(max_length=1000)), ('book_image', models.ImageField(blank=True, upload_to=books.models.user_directory_path)), ], ), ]
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 = [ ('globales', '0011_auto_20201212_1227'), ] operations = [ migrations.CreateModel( name='BooksCategoria', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, verbose_name='Name')), ('description', models.CharField(blank=True, max_length=120, null=True, verbose_name='Descripción')), ], options={ 'verbose_name': 'Categoria', 'verbose_name_plural': 'Categorias', 'ordering': ['name'], }, ), migrations.CreateModel( name='BooksEditorial', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, verbose_name='Nombre')), ('direction', models.TextField(blank=True, null=True, verbose_name='Dirección')), ], options={ 'verbose_name': 'Editorial', 'verbose_name_plural': 'Editoriales', 'ordering': ['name'], }, ), migrations.CreateModel( name='BooksPerson', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=30, verbose_name='Nombre')), ('other_name', models.CharField(blank=True, max_length=30, null=True, verbose_name='Otro Nombre')), ('last_name', models.CharField(max_length=30, verbose_name='Apellido')), ('other_last_name', models.CharField(blank=True, max_length=30, null=True, verbose_name='Otro Apellido')), ('birth_date', models.DateField(blank=True, null=True, verbose_name='Fecha de Nacimiento')), ('ciudad_nacimiento', models.CharField(blank=True, max_length=120, null=True, verbose_name='Ciudad de Nacimiento')), ('fecha_defuncion', models.DateField(blank=True, null=True, verbose_name='Fecha de Defunción')), ('ciudad_defuncion', models.CharField(blank=True, max_length=120, null=True, verbose_name='Ciudad de Defunción')), ('resumen_biografico', ckeditor.fields.RichTextField( blank=True, null=True, verbose_name='Resumen Biográfico')), ('foto', models.ImageField(blank=True, default='books_persona/default.png', max_length=255, null=True, storage=cuenta.libSobreEscribirImagen. SobreEscribirImagen(), upload_to=books.models.image_path_person)), ('is_autor', models.BooleanField(default=False)), ('is_editor', models.BooleanField(default=False)), ('pais_defuncion', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='persona_pais_dead', to='globales.Pais')), ('pais_nacimiento', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='persona_pais_born', to='globales.Pais')), ], options={ 'verbose_name': 'Autor', 'verbose_name_plural': 'Autores', 'ordering': ['name', 'last_name'], }, ), migrations.CreateModel( name='BooksPublicacion', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('fecha_edicion', models.DateField(blank=True, null=True, verbose_name='Fecha de Edición')), ('edition_number', models.IntegerField(blank=True, null=True, verbose_name='Edición N°')), ('fecha_publicacion', models.DateField(blank=True, null=True, verbose_name='Fecha de Publicación')), ('isbn', models.CharField(blank=True, max_length=17, null=True, verbose_name='ISBN')), ('issn', models.CharField(blank=True, max_length=9, null=True, verbose_name='ISSN')), ('numero', models.IntegerField(blank=True, null=True, verbose_name='Número')), ('titulo', models.TextField(blank=True, max_length=256, null=True, verbose_name='Título')), ('sub_titulo', models.TextField(blank=True, max_length=256, null=True, verbose_name='Sub Título')), ('volumen', models.CharField(blank=True, max_length=256, null=True, verbose_name='Volumen')), ('resumen', ckeditor.fields.RichTextField(blank=True, null=True, verbose_name='Resumen')), ('cantidad_paginas', models.IntegerField(blank=True, null=True)), ('portada', models.ImageField(blank=True, default='books_portada/default.png', max_length=255, null=True, storage=cuenta.libSobreEscribirImagen. SobreEscribirImagen(), upload_to=books.models.image_path_portada, verbose_name='Portada')), ('pdf', models.ImageField(blank=True, default='books_pdf/default.png', max_length=255, null=True, storage=cuenta.libSobreEscribirImagen. SobreEscribirImagen(), upload_to=books.models.image_path_pdf, verbose_name='PDF')), ('autor', models.ManyToManyField(blank=True, related_name='autores', to='books.BooksPerson', verbose_name='Autor')), ('categoria', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='books.BooksCategoria', verbose_name='Categoría')), ('editor', models.ManyToManyField(blank=True, related_name='editores', to='books.BooksPerson', verbose_name='Editor')), ('editorial', models.ManyToManyField(blank=True, related_name='editoriales', to='books.BooksEditorial', verbose_name='Editorial (es)')), ('pais_edicion', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, related_name='book_pais', to='globales.Pais', verbose_name='País de Edición')), ], options={ 'verbose_name': 'Publicacion', 'verbose_name_plural': 'Publicaciones', 'ordering': ['titulo'], }, ), ]
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='Author', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('firstname', models.CharField(max_length=255)), ('lastname', models.CharField(max_length=255)), ('nickname', models.CharField(blank=True, max_length=255, null=True)), ('birthdate', models.DateField(blank=True, null=True)), ], ), 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)), ('pages_num', models.IntegerField()), ('cover_image', models.ImageField(upload_to=books.models.image_path)), ], ), migrations.CreateModel( name='Publisher', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ], ), migrations.CreateModel( name='BookAuthor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('author', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='books', to='books.Author')), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='authors', to='books.Book')), ], ), migrations.AddField( model_name='book', name='publisher', field=models.ForeignKey( default='', on_delete=django.db.models.deletion.CASCADE, related_name='books', to='books.Publisher'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('books', '0001_initial'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='DiscoveryMethod', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField( help_text= 'The name of some means by which people learn about our organization.', max_length=30, unique=True)), ('order', models.IntegerField( default=None, help_text= 'These values define the order in which the discovery methods should be presented to users.', unique=True)), ], ), migrations.CreateModel( name='GroupMembership', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('start_date', models.DateField( default=datetime.date.today, help_text='The first day on which the membership is valid.' )), ('end_date', models.DateField( default=datetime.date.today, help_text='The last day on which the membership is valid.' )), ('sale_price', models.DecimalField( decimal_places=2, default=Decimal('0'), help_text='The price at which this item sold.', max_digits=6)), ('max_members', models.IntegerField( blank=True, default=None, help_text= 'The maximum number of members to which this group membership can be applied. Blank if no limit.', null=True)), ], options={ 'abstract': False, }, bases=(books.models.JournalLiner, models.Model), ), migrations.CreateModel( name='Member', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('nag_re_membership', models.BooleanField( default=False, help_text= 'If true, person will be nudged (via email) to renew membership.' )), ('membership_card_md5', models.CharField( blank=True, help_text= 'MD5 of the member card#. Field will auto-apply MD5 if value is digits.', max_length=32, null=True)), ('membership_card_when', models.DateTimeField( blank=True, help_text= 'Date/time on which the membership card was created.', null=True)), ('auth_user', models.OneToOneField( help_text= 'This must point to the corresponding auth.User object.', on_delete=django.db.models.deletion.CASCADE, related_name='member', to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ['auth_user__first_name', 'auth_user__last_name'], }, ), migrations.CreateModel( name='MemberLogin', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('when', models.DateTimeField( default=django.utils.timezone.now, help_text='Date/time member logged in.')), ('ip', models.GenericIPAddressField( help_text='IP address from which member logged in.')), ('member', models.ForeignKey( blank=True, help_text='The member who logged in.', null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.Member')), ], options={ 'verbose_name': 'Login', }, ), migrations.CreateModel( name='MemberNote', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('content', models.TextField( help_text= 'For staff. Anything you want to say about the member.', max_length=2048)), ('author', models.ForeignKey( blank=True, help_text='The member who wrote this note.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='member_notes_authored', to='members.Member')), ('member', models.ForeignKey( help_text='The member to which this note pertains.', on_delete=django.db.models.deletion.CASCADE, to='members.Member')), ], ), migrations.CreateModel( name='Membership', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('start_date', models.DateField( default=datetime.date.today, help_text='The first day on which the membership is valid.' )), ('end_date', models.DateField( default=datetime.date.today, help_text='The last day on which the membership is valid.' )), ('sale_price', models.DecimalField( decimal_places=2, default=Decimal('0'), help_text='The price at which this item sold.', max_digits=6)), ('membership_type', models.CharField(choices=[('R', 'Regular'), ('W', 'Work-Trade'), ('S', 'Scholarship'), ('C', 'Complimentary'), ('G', 'Group'), ('F', 'Family'), ('K', 'Gift Card')], default='R', help_text='The type of membership.', max_length=1)), ('ctrlid', models.CharField( default=members.models.next_membership_ctrlid, help_text= "Payment processor's id for this membership if it was part of an online purchase.", max_length=40, unique=True)), ('protected', models.BooleanField( default=False, help_text= 'Protect against further auto processing by ETL, etc. Prevents overwrites of manually entered data.' )), ('when_nudged', models.DateField( blank=True, default=None, help_text= 'Most recent date on which a renewal reminder was sent.', null=True)), ('nudge_count', models.IntegerField( default=0, help_text= 'The number of times a renewal reminder was sent.')), ('group', models.ForeignKey( blank=True, default=None, help_text= 'The associated group membership, if any. Usually none.', null=True, on_delete=django.db.models.deletion.CASCADE, to='members.GroupMembership')), ('member', models.ForeignKey( blank=True, default=None, help_text='The member to whom this membership applies.', null=True, on_delete=django.db.models.deletion.SET_NULL, to='members.Member')), ], options={ 'ordering': ['start_date'], }, bases=(books.models.JournalLiner, models.Model), ), migrations.CreateModel( name='MembershipGiftCard', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('redemption_code', models.CharField( help_text= 'A random string printed on the card, used during card redemption / membership activation.', max_length=20, unique=True)), ('date_created', models.DateField( default=django.utils.timezone.now, help_text='The date on which the gift card was created.') ), ('price', models.DecimalField( decimal_places=2, help_text='The price to buy this gift card.', max_digits=6)), ('month_duration', models.IntegerField( blank=True, default=None, help_text= 'The number of months of membership this gift card grants when redeemed.', null=True, verbose_name='Months')), ('day_duration', models.IntegerField( blank=True, default=None, help_text= 'The number of days of membership this gift card grants when redeemed.', null=True, verbose_name='Days')), ], options={ 'verbose_name': 'Gift card', }, ), migrations.CreateModel( name='MembershipGiftCardRedemption', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('redemption_date', models.DateField( default=django.utils.timezone.now, help_text='The date on which the gift card was redeemed.') ), ('card', models.OneToOneField( help_text='The membership gift card that was redeemed.', on_delete=django.db.models.deletion.PROTECT, to='members.MembershipGiftCard')), ], options={ 'verbose_name': 'Gift card redemption', }, ), migrations.CreateModel( name='MembershipGiftCardReference', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sale_price', models.DecimalField( decimal_places=2, help_text='The price at which this item sold.', max_digits=6)), ('ctrlid', models.CharField( default=members.models.next_giftcardref_ctrlid, help_text= "Payment processor's id if this was part of an online purchase.", max_length=40, unique=True)), ('protected', models.BooleanField( default=False, help_text= 'Protect against further auto processing by ETL, etc. Prevents overwrites of manually entered data.' )), ('card', models.OneToOneField( blank=True, help_text='The membership gift card being sold.', null=True, on_delete=django.db.models.deletion.PROTECT, to='members.MembershipGiftCard')), ('sale', models.ForeignKey( blank=True, help_text= 'The sale that includes the card as a line item.', null=True, on_delete=django.db.models.deletion.CASCADE, to='books.Sale')), ], options={ 'verbose_name': 'Membership gift card', }, bases=(models.Model, books.models.JournalLiner), ), migrations.CreateModel( name='Pushover', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('key', models.CharField( help_text="The member's User Key on Pushover.com", max_length=30)), ('who', models.ForeignKey( help_text='The member to whom this tagging info applies.', on_delete=django.db.models.deletion.CASCADE, to='members.Member')), ], ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(help_text='A short name for the tag.', max_length=40, unique=True)), ('meaning', models.TextField( help_text= "A discussion of the tag's semantics. What does it mean? What does it NOT mean?", max_length=500)), ], options={ 'ordering': ['name'], }, ), migrations.CreateModel( name='Tagging', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date_tagged', models.DateTimeField( auto_now_add=True, help_text='Date/time on which the member was tagged.')), ('can_tag', models.BooleanField( default=False, help_text= 'If True, the tagged member can be a authorizing member for this tag.' )), ('authorizing_member', models.ForeignKey( blank=True, help_text= 'The member that authorized that the member be tagged.', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='authorized_taggings', to='members.Member')), ('tag', models.ForeignKey(help_text='The tag assigned to the member.', on_delete=django.db.models.deletion.CASCADE, to='members.Tag')), ('tagged_member', models.ForeignKey(help_text='The member tagged.', on_delete=django.db.models.deletion.CASCADE, related_name='taggings', to='members.Member')), ], ), migrations.CreateModel( name='VisitEvent', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('when', models.DateTimeField(default=django.utils.timezone.now, help_text='Date/time of visit event.')), ('method', models.CharField( choices=[('R', 'RFID'), ('F', 'Front Desk'), ('M', 'Mobile App'), ('U', 'Unknown')], default='U', help_text= "The method used to record the visit, such as 'Front Desk' or 'RFID'.", max_length=1)), ('event_type', models.CharField(choices=[('A', 'Arrival'), ('P', 'Presence'), ('D', 'Departure')], help_text='The type of visit event.', max_length=1)), ('sync1', models.BooleanField( default=False, help_text= "True if this event has been sync'ed to 'other system #1'" )), ('who', models.ForeignKey( help_text="The member who's visiting or visited.", on_delete=django.db.models.deletion.PROTECT, to='members.Member')), ], options={ 'ordering': ['when'], }, ), migrations.CreateModel( name='WifiMacDetected', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('when', models.DateTimeField( default=django.utils.timezone.now, help_text='Date/time when MAC was noticed to be present.') ), ('mac', models.CharField(help_text='A MAC address as 12 hex digits.', max_length=12)), ], options={ 'verbose_name_plural': 'Wifi MACs detected', 'verbose_name': 'Wifi MAC detected', }, ), migrations.AddField( model_name='membership', name='redemption', field=models.ForeignKey( blank=True, default=None, help_text= 'The associated membership gift card redemption, if any. Usually none.', null=True, on_delete=django.db.models.deletion.CASCADE, to='members.MembershipGiftCardRedemption'), ), migrations.AddField( model_name='membership', name='sale', field=models.ForeignKey( blank=True, default=None, help_text= "The sale that includes this line item, if any. E.g. comp memberships don't have a corresponding sale.", null=True, on_delete=django.db.models.deletion.CASCADE, to='books.Sale'), ), migrations.AddField( model_name='member', name='tags', field=models.ManyToManyField(blank=True, related_name='members', through='members.Tagging', to='members.Tag'), ), migrations.AddField( model_name='groupmembership', name='group_tag', field=models.ForeignKey( help_text= 'Group membership is initially populated with the set of people having this tag.', on_delete=django.db.models.deletion.PROTECT, to='members.Tag'), ), migrations.AddField( model_name='groupmembership', name='invoice', field=models.ForeignKey( blank=True, default=None, help_text= 'The receivable invoice that includes this line item, if any.', null=True, on_delete=django.db.models.deletion.CASCADE, to='books.ReceivableInvoice'), ), migrations.AddField( model_name='groupmembership', name='members_covered', field=models.ManyToManyField(through='members.Membership', to='members.Member'), ), migrations.AddField( model_name='groupmembership', name='sale', field=models.ForeignKey( blank=True, default=None, help_text= 'The sale on which this group membership appears as a line item, if any.', null=True, on_delete=django.db.models.deletion.CASCADE, to='books.Sale'), ), migrations.AlterUniqueTogether( name='visitevent', unique_together=set([('who', 'when')]), ), migrations.AlterUniqueTogether( name='tagging', unique_together=set([('tagged_member', 'tag')]), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='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): 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 = [] 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 = [ ('authors', '0001_initial'), ] operations = [ migrations.CreateModel( name='Book', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Book Title')), ('book_src', models.FileField(blank=True, null=True, upload_to=books.models.upload_book, verbose_name='Book Source')), ('pages', models.PositiveSmallIntegerField(blank=True, null=True)), ('published_on', models.DateField(blank=True, default=datetime.date.today, null=True)), ('genre', models.CharField(choices=[('adventure', 'Adventure'), ('history', 'History'), ('fiction', 'Fiction'), ('nonfiction', 'Non-Fiction')], max_length=50)), ('photo', models.ImageField(blank=True, max_length=1000, null=True, upload_to='Book_Covers/')), ('summary', models.TextField(blank=True, null=True, verbose_name='Summary')), ('author', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='authors.Author')), ], ), migrations.CreateModel( name='Review', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('username', models.CharField(max_length=50, verbose_name='Username')), ('stars', models.IntegerField(choices=[(1, '1'), (2, '2'), (3, '3'), (4, '4'), (5, '5')], verbose_name='Stars')), ('comment', models.TextField(blank=True, null=True, verbose_name='Your Comment')), ('book', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='book_review', to='books.Book', verbose_name='Book')), ], options={ 'verbose_name': 'Review', 'verbose_name_plural': 'Reviews', }, ), ]