class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Upload', fields=[ ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)), ('password', models.CharField(default=core.models.generate_upload_password, max_length=32)), ('file', models.FileField(blank=True, null=True, upload_to='uploads/')), ('url', models.URLField(blank=True, null=True)), ('successful_attempts', models.IntegerField(default=0)), ('failed_attempts', models.IntegerField(default=0)), ('expires_at', models.DateTimeField(default=core.models.generate_expiry_datetime)), ('created_at', models.DateTimeField(auto_now_add=True)), ], ), migrations.CreateModel( name='UserAgent', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('value', models.TextField()), ('updated_at', models.DateTimeField(auto_now=True)), ('user', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='last_user_agent', to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Gig', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=300)), ('description', models.TextField()), ('url', models.URLField(default='https://www.testvid.com')), ('scheduled_time', models.DateTimeField(default=core.models.add_datetime)), ('is_active', models.BooleanField()), ('user', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Ticket', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('gig', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to='core.gig')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.RESTRICT, to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0002_auto_20180411_1534'), ] operations = [ migrations.CreateModel( name='ReviewedLink', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('url', models.URLField(max_length=250)), ('created', models.DateTimeField(auto_now_add=True)), ], ), migrations.AlterField( model_name='post', name='difficulty_level', field=models.ForeignKey(default=2, on_delete='SET_DEFAULT', to='core.DifficultyLevel'), ), migrations.AlterField( model_name='post', name='publish', field=models.DateTimeField(default=core.models.default_start_time), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50, null=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('modified_at', models.DateTimeField(auto_now=True)), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name_plural': 'categories', 'ordering': ('-created_at', ), 'unique_together': {('name', 'user')}, }, ), migrations.CreateModel( name='Site', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('url', models.URLField(verbose_name='Site URL')), ('image_path', models.CharField(max_length=300)), ('created_at', models.DateTimeField(auto_now_add=True)), ('modified_at', models.DateTimeField(auto_now=True)), ('deadline', models.DateTimeField(blank=True, default=core.models.default_date)), ('expired', models.BooleanField(default=False)), ('category', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='categories', to='core.Category')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('-modified_at', ), 'unique_together': {('user', 'url')}, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Arching_Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50)), ], ), migrations.CreateModel( name='Quote', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('words', models.CharField(max_length=250)), ('author', models.CharField(max_length=100)), ], ), migrations.CreateModel( name='Tag_Type', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50)), ], ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50)), ('tag_type', models.ManyToManyField(to='core.Tag_Type')), ], ), migrations.CreateModel( name='Organization', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200)), ('street', models.CharField(max_length=300)), ('city', models.CharField(max_length=100)), ('zipcode', models.CharField(max_length=5)), ('description', models.CharField(max_length=1000)), ('website', models.URLField(max_length=500)), ('phone_number', models.CharField(max_length=12)), ('email', models.EmailField(max_length=254)), ('org_image', models.ImageField(blank=True, null=True, upload_to=core.models.get_image_path)), ('contact_phone_number', models.CharField(max_length=12)), ('contact_email', models.EmailField(max_length=254)), ('contact_image', models.ImageField(blank=True, null=True, upload_to=core.models.get_image_path)), ('overall_tags', models.ManyToManyField(to='core.Arching_Tag')), ('tags', models.ManyToManyField(to='core.Tag')), ], ), ]
class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('core', '0001_initial'), ] operations = [ migrations.CreateModel( name='assignment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('content_url', models.URLField()), ('due_date', models.DateTimeField(default=core.models.return_date_time)), ('timestamp', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('client', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Client', 'verbose_name_plural': 'clientele', 'ordering': ['-timestamp', '-updated'], }, ), migrations.CreateModel( name='clientele', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('business_url', models.URLField()), ('business_type', models.CharField(choices=[('Blog', 'blog'), ('Youtube', 'youtube'), ('Local Business', 'local_business'), ('Other', 'other')], default='Blog', max_length=20)), ('timestamp', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ('client', models.ForeignKey(default=1, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'verbose_name': 'Client', 'verbose_name_plural': 'clientele', 'ordering': ['-timestamp', '-updated'], }, ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0002_auto_20200423_2105'), ] operations = [ migrations.CreateModel( name='BotAplication', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(default='Bot App', max_length=160)), ('bot_application_url', models.URLField(blank=True, help_text='Coloca sólo el endpoint', null=True, verbose_name='URL del bot')), ('vertical_position', models.CharField(choices=[('top', 'Top'), ('bottom', 'Bottom')], default='bottom', max_length=15, verbose_name='Posición vertical')), ('horizontal_position', models.CharField(choices=[('right', 'Right'), ('left', 'Left')], default='right', max_length=15, verbose_name='Posición Horizontal')), ('button_icon', models.ImageField( help_text= 'Formatos ico, jpg, png o gif. Relación de aspecto 1:1', upload_to=core.models.bot_custom_upload_to, verbose_name='Ícono')), ('width', models.IntegerField(default=350, verbose_name='Ancho')), ('height', models.IntegerField(default=500, verbose_name='Alto')), ('created', models.DateTimeField(auto_now_add=True)), ('updated', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Bot Application', 'verbose_name_plural': 'Bot Application', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Repo', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=150, verbose_name='name')), ('token', models.CharField(blank=True, max_length=150, null=True, verbose_name='token')), ('private', models.BooleanField(default=False, verbose_name='private')), ('url', models.URLField(max_length=250, verbose_name='url')), ('comment', models.CharField(blank=True, max_length=1000, null=True, verbose_name='comment')), ], options={ 'verbose_name': 'репозиторий', 'verbose_name_plural': 'репозитории', }, ), migrations.CreateModel( name='TaskModel', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('lastrunned', models.DateTimeField(editable=False, verbose_name='lastrunned')), ('taskname', models.CharField(max_length=50, verbose_name='taskname')), ], options={ 'verbose_name': 'запуск', 'verbose_name_plural': 'запуски', }, ), migrations.CreateModel( name='Backup', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file', models.FileField(upload_to=core.models.get_file_path, verbose_name='backup')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='created')), ('repo', models.ForeignKey(on_delete=django.db.models.deletion.DO_NOTHING, to='core.repo')), ('task', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.taskmodel')), ], options={ 'verbose_name': 'бэкап', 'verbose_name_plural': 'бэкапы', }, ), ]
class Migration(migrations.Migration): dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ('core', '0001_initial'), ] operations = [ migrations.CreateModel( name='Activation', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('valid_until', models.DateTimeField(verbose_name='Дата окончания действия ссылки активации')), ('url', models.URLField(verbose_name='Ссылка')), ], ), migrations.CreateModel( name='Profile', fields=[ ('user_ptr', models.OneToOneField(auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), ('avatar', models.ImageField(blank=True, null=True, upload_to=core.models.get_profile_image_path, verbose_name='Аватар')), ('activation', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.Activation', verbose_name='Активация')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'account', 'abstract': False, }, bases=('auth.user',), managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='SiteSettings', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('activation_url_preiod', models.SmallIntegerField(default=100, verbose_name='Срок действия ссылки на активацию, ч.')), ('default_user_image', models.ImageField(blank=True, null=True, upload_to='', verbose_name='Аватар пользователя по умолчанию')), ], options={ 'verbose_name': 'Настройки сайта', }, ), migrations.DeleteModel( name='Person', ), ]
class Migration(migrations.Migration): dependencies = [ ('events', '0007_auto_20170129_2041'), ] operations = [ migrations.AlterField( model_name='sponsoredevent', name='abstract', field=core.models.EAWTextField(max_length=1000, verbose_name='abstract'), ), migrations.AlterField( model_name='sponsoredevent', name='detailed_description', field=models.TextField(blank=True, verbose_name='detailed description'), ), migrations.AlterField( model_name='sponsoredevent', name='python_level', field=models.CharField(choices=[('NOVICE', 'Novice'), ('INTERMEDIATE', 'Intermediate'), ('EXPERIENCED', 'Experienced')], max_length=12, verbose_name='Python level'), ), migrations.AlterField( model_name='sponsoredevent', name='recording_policy', field=models.BooleanField(choices=[(True, 'Yes'), (False, 'No')], default=True, verbose_name='recording policy'), ), migrations.AlterField( model_name='sponsoredevent', name='slide_link', field=models.URLField(blank=True, default='', verbose_name='slide link'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Portada', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField(blank=True, upload_to=core.models.portada_custom_upload_to, verbose_name='Imagen')), ('title', models.CharField(max_length=150, verbose_name='Título')), ('subtitle', models.CharField(max_length=150, verbose_name='Subtítulo')), ('link', models.URLField(blank=True, verbose_name='Link de la portada')), ('link_text', models.CharField(max_length=16, verbose_name='Texto del botón')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Creado')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Actualizado')), ], options={ 'verbose_name': 'Inicio', 'verbose_name_plural': 'Inicio', 'ordering': ['-created'], }, ), migrations.CreateModel( name='Noticia', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=150, verbose_name='Título')), ('subtitle', models.CharField(max_length=150, verbose_name='Subtítulo')), ('content', models.TextField(verbose_name='Contenido')), ('image', models.ImageField(upload_to=core.models.noticias_custom_upload_to, verbose_name='Imagen')), ('created', models.DateTimeField(auto_now_add=True, verbose_name='Creado')), ('updated', models.DateTimeField(auto_now=True, verbose_name='Actualizado')), ('home', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Portada')), ], options={ 'ordering': ['-created'], }, ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0012_auto_20180219_2024'), ] operations = [ migrations.AlterModelOptions( name='sitesettings', options={'verbose_name': 'Настройки сайта'}, ), migrations.AlterField( model_name='activation', name='url', field=models.URLField(verbose_name='Ссылка'), ), migrations.AlterField( model_name='activation', name='valid_until', field=models.DateTimeField(verbose_name='Ссылка активна до'), ), migrations.AlterField( model_name='profile', name='activation', field=models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.Activation', verbose_name='Активация'), ), migrations.AlterField( model_name='profile', name='avatar', field=models.ImageField(blank=True, null=True, upload_to=core.models.get_profile_image_path, verbose_name='Аватар'), ), migrations.AlterField( model_name='sitesettings', name='activation_url_preiod', field=models.SmallIntegerField(default=100, verbose_name='Время действия ссылки, ч'), ), migrations.AlterField( model_name='sitesettings', name='default_user_image', field=models.ImageField(blank=True, null=True, upload_to='', verbose_name='Аватар по-умолчанию'), ), ]
class Migration(migrations.Migration): dependencies = [ ('sponsors', '0017_merge_20200225_1431'), ] operations = [ migrations.CreateModel( name='OpenRole', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100, verbose_name='open role name')), ('description', models.TextField(verbose_name='open role descsription')), ('description_zh_hant', models.TextField(null=True, verbose_name='open role descsription')), ('description_en_us', models.TextField(null=True, verbose_name='open role descsription')), ('url', models.URLField(blank=True, max_length=255, verbose_name='open role URL')), ('sponsor', core.models.BigForeignKey( on_delete=django.db.models.deletion.CASCADE, to='sponsors.Sponsor', verbose_name='sponsor')), ], options={ 'verbose_name': 'open role', 'verbose_name_plural': 'open Roles', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Url', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.CharField(help_text='Custom label for url.', max_length=255)), ('uid', models.UUIDField(default=core.utils.short_url, editable=False, help_text='Short url identifier.', unique=True)), ('url', models.URLField(help_text='Destination url.')), ('custom_id', models.CharField(help_text='Custom short url identifier.', max_length=255, unique=True)), ('user', models.ForeignKey(on_delete=models.SET(core.models.get_sentinel_user), to=settings.AUTH_USER_MODEL)), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0001_initial'), ] operations = [ migrations.CreateModel( name='safasf', fields=[ ('shorten_hash', models.CharField( default=core.models.get_random_alphanumeric_string, max_length=16, primary_key=True, serialize=False, unique=True)), ('target_url', models.URLField(blank=True)), ], ), migrations.DeleteModel(name='url', ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ] operations = [ migrations.CreateModel( name='Mail', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('street', models.CharField(max_length=100, verbose_name='Street Address')), ('city', models.CharField(max_length=100)), ('state', models.CharField(max_length=2)), ('zip', models.CharField(max_length=5, verbose_name='ZIP Code')), ], ), migrations.CreateModel( name='Registration', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('first_name', models.CharField(max_length=100, verbose_name='First Name')), ('last_name', models.CharField(max_length=100, verbose_name='Last Name')), ('zip', models.CharField(max_length=5, validators=[core.models.validate_zip], verbose_name='ZIP Code')), ], ), migrations.CreateModel( name='Zip', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('zip', models.CharField(max_length=5)), ('state', models.CharField(max_length=2)), ('mail_only', models.BooleanField()), ('link', models.URLField()), ], ), ]
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')), ('email', models.EmailField(max_length=255, unique=True)), ('name', models.CharField(max_length=255)), ('user_role', models.CharField(blank=True, default='client', max_length=20, null=True)), ('is_active', models.BooleanField(default=True)), ('is_staff', models.BooleanField(default=False)), ('is_user_manager', models.BooleanField(default=False)), ('login_attempt_count', models.PositiveSmallIntegerField(default=0)), ('is_locked', models.BooleanField(default=False)), ('avatar', models.ImageField(blank=True, null=True, upload_to=core.models.avatar_upload_path)), ('avatar_url', models.URLField(blank=True, max_length=1024, null=True)), ('provider', models.CharField(default='native', max_length=32)), ('phone', models.CharField(max_length=32)), ('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={ 'abstract': False, }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0009_alter_user_last_name_max_length'), ] operations = [ migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('password', models.CharField(max_length=128, verbose_name='password')), ('last_login', models.DateTimeField(blank=True, null=True, verbose_name='last login')), ('is_superuser', models.BooleanField( default=False, help_text= 'Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), ('username', models.CharField( error_messages={ 'unique': 'A user with that username already exists.' }, help_text= 'Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.', max_length=150, unique=True, validators=[ django.contrib.auth.validators. UnicodeUsernameValidator() ], verbose_name='username')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('email', models.EmailField(blank=True, max_length=254, verbose_name='email address')), ('is_staff', models.BooleanField( default=False, help_text= 'Designates whether the user can log into this admin site.', verbose_name='staff status')), ('is_active', models.BooleanField( default=True, help_text= 'Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), ('user_type', models.PositiveSmallIntegerField(blank=True, choices=[(1, 'Trainee'), (2, 'Industry Expert'), (4, 'Teacher'), (3, 'Moderator'), (4, 'SubMentor')], null=True)), ('is_approved', models.BooleanField(default=False)), ('has_paid_subscription', models.BooleanField(default=False)), ('date_of_birth', models.DateField(blank=True, null=True)), ('bio', models.CharField( blank=True, max_length=2000, null=True, validators=[ django.core.validators.MinLengthValidator(100) ])), ('profile_picture', models.ImageField(blank=True, default='default_profile_pic.jpg', null=True, upload_to=core.models.profile_media_path)), ('signup_completed', models.BooleanField(default=False)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', django.contrib.auth.models.UserManager()), ], ), migrations.CreateModel( name='Answer', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('answer_text', models.TextField(max_length=5000)), ('answer_attachment_files', models.FileField(blank=True, null=True, upload_to=core.models.answer_media_path)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('answer_accepted', models.BooleanField(default=False)), ], ), migrations.CreateModel( name='AnswerChoice', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('answer_choice_text', models.CharField(max_length=100)), ('answer_choice_correct', models.BooleanField(default=False)), ], ), migrations.CreateModel( name='Course', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('course_name', models.CharField(max_length=100)), ('course_picture', models.ImageField( blank=True, default='default_course_pic.jpg', null=True, upload_to=core.models.course_picture_media_path)), ('course_about', models.CharField(max_length=5000)), ('course_prerequisite', models.CharField(default='None', max_length=5000)), ('course_difficulty', models.IntegerField( default=1, validators=[ django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5) ])), ('course_progress', models.IntegerField(default=1)), ('course_duration', models.DurationField(blank=True, default=0, null=True)), ], ), migrations.CreateModel( name='Exam', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('exam_name', models.CharField(max_length=100)), ('exam_number', models.IntegerField( blank=True, default=1, null=True, validators=[django.core.validators.MinValueValidator(1) ])), ('exam_file', models.FileField(blank=True, null=True, upload_to=core.models.exam_media_path)), ], ), migrations.CreateModel( name='ExamSubmission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('exam_submission_file', models.FileField( blank=True, null=True, upload_to=core.models.exam_submission_media_path)), ('exam_score', models.FloatField(default=0)), ('exam', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='examsubmissions', to='core.Exam')), ], ), migrations.CreateModel( name='Lesson', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('lesson_name', models.CharField(max_length=100)), ('lesson_number', models.IntegerField( blank=True, default=1, null=True, validators=[django.core.validators.MinValueValidator(1) ])), ('lesson_file', models.URLField(default='https://youtu.be/3tgz4EM7ItE')), ('is_paid', models.BooleanField(default=False)), ], ), migrations.CreateModel( name='Module', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('module_name', models.CharField(max_length=100)), ('module_about', models.CharField(max_length=5000)), ('module_number', models.IntegerField( default=1, validators=[django.core.validators.MinValueValidator(1) ])), ('module_progress', models.IntegerField(default=1)), ('module_duration', models.DurationField(blank=True, null=True)), ('course', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='modules', to='core.Course')), ], ), migrations.CreateModel( name='Project', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('project_name', models.CharField(max_length=100)), ('project_picture', models.ImageField( blank=True, default='default_project_pic.jpg', null=True, upload_to=core.models.project_picture_media_path)), ('project_about', models.CharField(max_length=5000)), ('project_prerequisite', models.CharField(default='None', max_length=5000)), ('project_difficulty', models.IntegerField( default=1, validators=[ django.core.validators.MinValueValidator(1), django.core.validators.MaxValueValidator(5) ])), ('project_duration', models.DurationField(blank=True, default=0, null=True)), ('project_file', models.FileField(blank=True, null=True, upload_to=core.models.project_media_path)), ('is_capstone', models.BooleanField(default=False, verbose_name='Capstone Project')), ], ), migrations.CreateModel( name='ProjectSubmission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('project_submission_file', models.FileField( blank=True, null=True, upload_to=core.models.project_submission_media_path)), ('project_score', models.FloatField(default=0)), ('project', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projectsubmissions', to='core.Project')), ], ), migrations.CreateModel( name='Query', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('query_title', models.CharField(max_length=100)), ('query_text', models.TextField(max_length=5000)), ('query_attachment_files', models.FileField(blank=True, null=True, upload_to=core.models.query_media_path)), ('query_solved', models.BooleanField(default=False)), ('created_at', models.DateTimeField(auto_now_add=True)), ('last_active', models.DateTimeField(blank=True, null=True)), ], options={ 'verbose_name_plural': 'Queries', }, bases=(models.Model, hitcount.models.HitCountMixin), ), migrations.CreateModel( name='Question', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('question_type', models.PositiveSmallIntegerField(blank=True, choices=[(1, 'IQ'), (2, 'Verbal Ability')], null=True)), ('question_text', models.CharField(max_length=5000)), ], ), migrations.CreateModel( name='Referral_Mentor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('referral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], ), migrations.CreateModel( name='Referral_SubMentor', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('referral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], ), migrations.CreateModel( name='Referral_Trainee', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('referral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], ), migrations.CreateModel( name='Skill', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('skill_name', models.CharField(max_length=50, unique=True)), ], ), migrations.CreateModel( name='subSkill', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('subskill_name', models.CharField(max_length=50, unique=True)), ], ), migrations.CreateModel( name='Tag', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('tag_name', models.CharField(max_length=50, unique=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('last_active', models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name='Test', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('test_type', models.PositiveSmallIntegerField(blank=True, choices=[(1, 'IQ'), (2, 'Verbal Ability')], null=True)), ('test_score', models.IntegerField(default=0)), ('test_taken_on_date', models.DateField(auto_now_add=True)), ('questions', models.ManyToManyField(blank=True, related_name='tests', to='core.Question')), ], ), migrations.CreateModel( name='Mentor', fields=[ ('user', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), ('score', models.FloatField(blank=True, default=0, null=True)), ('mentee_pref_count', models.IntegerField(default=5, verbose_name='Preferred menteee count')), ('refral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ('skills', models.ManyToManyField(blank=True, related_name='skills', to='core.Skill')), ], ), migrations.CreateModel( name='SubMentor', fields=[ ('user', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), ('mentee_pref_count', models.IntegerField(default=3, verbose_name='Preferred mentee count')), ('refral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], ), migrations.CreateModel( name='Trainee', fields=[ ('user', models.OneToOneField( on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to=settings.AUTH_USER_MODEL)), ('score', models.FloatField(blank=True, default=0, null=True)), ('academic_score', models.FloatField(blank=True, default=0, null=True)), ('personality_h', models.FloatField(blank=True, default=0, null=True)), ('personality_e', models.FloatField(blank=True, default=0, null=True)), ('personality_x', models.FloatField(blank=True, default=0, null=True)), ('personality_a', models.FloatField(blank=True, default=0, null=True)), ('personality_c', models.FloatField(blank=True, default=0, null=True)), ('personality_o', models.FloatField(blank=True, default=0, null=True)), ('iq_score', models.FloatField(blank=True, default=0, null=True)), ('verbal_ability_score', models.FloatField(blank=True, default=0, null=True)), ('course_score', models.FloatField(blank=True, default=0, null=True)), ('project_score', models.FloatField(blank=True, default=0, null=True)), ('qa_score', models.FloatField(blank=True, default=0, null=True)), ('refral_count', models.PositiveIntegerField(blank=True, default=0, null=True)), ('referral_code', models.CharField(blank=True, max_length=100, null=True)), ], ), migrations.AddField( model_name='test', name='user', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='tests', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='query', name='query_author', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='queries', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='query', name='query_tags', field=models.ManyToManyField(blank=True, related_name='queries', to='core.Tag'), ), migrations.AddField( model_name='projectsubmission', name='user', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='projectsubmissions', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='project', name='project_tags', field=models.ManyToManyField(blank=True, related_name='projects', to='core.Tag'), ), migrations.AddField( model_name='lesson', name='module', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='lessons', to='core.Module'), ), migrations.AddField( model_name='examsubmission', name='user', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='examsubmissions', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='exam', name='module', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='exams', to='core.Module'), ), migrations.AddField( model_name='course', name='course_tags', field=models.ManyToManyField(blank=True, related_name='courses', to='core.Tag'), ), migrations.AddField( model_name='answerchoice', name='question', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='answerchoices', to='core.Question'), ), migrations.AddField( model_name='answer', name='answer_author', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='answers', to=settings.AUTH_USER_MODEL), ), migrations.AddField( model_name='answer', name='query', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='answers', to='core.Query'), ), migrations.AddField( model_name='user', name='groups', field=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'), ), migrations.AddField( model_name='user', name='profile_tags', field=models.ManyToManyField(blank=True, related_name='profiles', to='core.Tag'), ), migrations.AddField( model_name='user', name='user_permissions', field=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'), ), migrations.AddField( model_name='trainee', name='courses', field=models.ManyToManyField(blank=True, related_name='courses', to='core.Course'), ), migrations.AddField( model_name='trainee', name='mentors', field=models.ManyToManyField(blank=True, related_name='trainees', to='core.Mentor'), ), migrations.AddField( model_name='trainee', name='projects', field=models.ManyToManyField(blank=True, related_name='projects', to='core.Project'), ), migrations.AddField( model_name='trainee', name='submentors', field=models.ManyToManyField(blank=True, related_name='trainees', to='core.SubMentor'), ), migrations.AddField( model_name='submentor', name='subcourses', field=models.ManyToManyField(blank=True, related_name='subcourses', to='core.Course'), ), migrations.AddField( model_name='submentor', name='subprojects', field=models.ManyToManyField(blank=True, related_name='subprojects', to='core.Project'), ), migrations.AddField( model_name='submentor', name='subskills', field=models.ManyToManyField(blank=True, related_name='subskills', to='core.subSkill'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('wagtailcore', '0040_page_draft_title'), ('wagtailimages', '0019_delete_filter'), ] operations = [ migrations.CreateModel( name='TermsAndConditionsPage', 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')), ('body', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.CreateModel( name='ExportReadinessApp', fields=[ ('page_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='wagtailcore.Page')), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.CreateModel( name='PrivacyAndCookiesPage', 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')), ('body', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.CreateModel( name='GetFinancePage', 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')), ('breadcrumbs_label', models.CharField(max_length=50)), ('banner_content', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('section_one_content', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('section_two_content', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('video_embed', models.CharField(max_length=500)), ('section_three_content', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('call_to_action_text', models.CharField(max_length=255)), ('call_to_action_url', models.CharField(max_length=500)), ('banner_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('ukef_logo', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.CreateModel( name='PerformanceDashboardPage', 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')), ('heading', models.CharField(max_length=255)), ('description', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('product_link', models.URLField()), ('data_title_row_one', models.CharField(max_length=100)), ('data_number_row_one', models.CharField(max_length=15)), ('data_period_row_one', models.CharField(max_length=100)), ('data_description_row_one', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('data_title_row_two', models.CharField(max_length=100)), ('data_number_row_two', models.CharField(max_length=15)), ('data_period_row_two', models.CharField(max_length=100)), ('data_description_row_two', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('data_title_row_three', models.CharField(max_length=100)), ('data_number_row_three', models.CharField(max_length=15)), ('data_period_row_three', models.CharField(max_length=100)), ('data_description_row_three', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('data_title_row_four', models.CharField(blank=True, max_length=100, null=True)), ('data_number_row_four', models.CharField(blank=True, max_length=15, null=True)), ('data_period_row_four', models.CharField(blank=True, max_length=100, null=True)), ('data_description_row_four', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks])), ('landing_dashboard', models.BooleanField(default=False)), ('guidance_notes', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks])), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Character', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(max_length=1024)), ('created', models.DateTimeField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ], options={ 'ordering': ('-created', ), }, ), migrations.CreateModel( name='Game', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('created', models.DateTimeField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ('name', models.CharField(max_length=80)), ('description', models.TextField(max_length=1024)), ('users', models.ManyToManyField(to=settings.AUTH_USER_MODEL)), ], options={ 'ordering': ('-created', ), }, ), migrations.CreateModel( name='Level', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=80, unique=True)), ('description', models.TextField(max_length=1024)), ('script', models.TextField(max_length=10240)), ('created', models.DateTimeField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ('characters', models.ManyToManyField(blank=True, to='core.Character')), ('game', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Game')), ], options={ 'ordering': ('created', ), }, ), migrations.CreateModel( name='Mechanic', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(max_length=1024)), ('created', models.DateTimeField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ('game', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Game')), ], options={ 'ordering': ('-created', ), }, ), migrations.CreateModel( name='Media', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255, unique=True)), ('description', models.TextField(max_length=1024)), ('created', models.DateTimeField(auto_now_add=True)), ('last_updated', models.DateTimeField(auto_now=True)), ('url', models.URLField(blank=True)), ('file', models.FileField(blank=True, upload_to=core.models.user_directory_path)), ('type', models.CharField(choices=[('AUDIO', 'Audio'), ('VIDEO', 'Video'), ('PICTURE', 'Picture')], max_length=30)), ('game', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Game')), ], options={ 'ordering': ('-created', ), }, ), migrations.AddField( model_name='mechanic', name='medias', field=models.ManyToManyField(blank=True, to='core.Media'), ), migrations.AddField( model_name='level', name='mechanics', field=models.ManyToManyField(blank=True, to='core.Mechanic'), ), migrations.AddField( model_name='level', name='medias', field=models.ManyToManyField(blank=True, to='core.Media'), ), migrations.AddField( model_name='character', name='game', field=models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, to='core.Game'), ), migrations.AddField( model_name='character', name='mechanics', field=models.ManyToManyField(blank=True, to='core.Mechanic'), ), migrations.AddField( model_name='character', name='medias', field=models.ManyToManyField(blank=True, to='core.Media'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] 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')), ('first_name', models.CharField(blank=True, max_length=30, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=30, verbose_name='last name')), ('userpic', versatileimagefield.fields.VersatileImageField( blank=True, null=True, upload_to='customer/userpics', verbose_name='profile userpic')), ('userpic_ppoi', versatileimagefield.fields.PPOIField( default='0.5x0.5', editable=False, max_length=20, verbose_name='Image PPOI')), ('phone', phonenumber_field.modelfields.PhoneNumberField( blank=True, max_length=128, null=True, verbose_name='phone number')), ('email', models.EmailField(max_length=254, unique=True, verbose_name='email address')), ('birth_date', models.DateField(blank=True, null=True, verbose_name='birth date')), ('country', django_countries.fields.CountryField(blank=True, max_length=2, null=True)), ('state', models.CharField(blank=True, max_length=300, null=True, verbose_name='State/region')), ('city', models.CharField(blank=True, max_length=300, null=True, verbose_name='city/village')), ('is_email_confirmed', models.BooleanField(default=False, verbose_name='mail confirmed')), ('is_phone_confirmed', models.BooleanField(default=False, verbose_name='phone confirmed')), ('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')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, managers=[ ('objects', core.models.UserManager()), ], ), migrations.CreateModel( name='Branch', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(help_text='Company name', max_length=300)), ('country', django_countries.fields.CountryField(max_length=2)), ('state', models.CharField(blank=True, max_length=300, null=True)), ('city', models.CharField(blank=True, max_length=300, null=True)), ('address_1', models.CharField(max_length=300)), ('address_2', models.CharField(blank=True, max_length=300, null=True)), ('email', models.EmailField(max_length=254)), ('phone', phonenumber_field.modelfields.PhoneNumberField( max_length=128)), ('description', models.TextField(blank=True, null=True)), ('date_added', models.DateTimeField(auto_now_add=True)), ('date_modified', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Branch', 'verbose_name_plural': 'Branches', 'abstract': False, }, ), migrations.CreateModel( name='Category', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=200, verbose_name='Category name')), ('description', models.TextField(blank=True, null=True, verbose_name='About this category')), ('icon', versatileimagefield.fields.VersatileImageField( blank=True, help_text='Category icon', null=True, upload_to='categories/icons')), ], options={ 'verbose_name': 'Category', 'verbose_name_plural': 'Categories', }, ), migrations.CreateModel( name='Comment', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('text', models.TextField()), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ], ), migrations.CreateModel( name='HTMLWidgetModel', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('text', models.TextField(default='', null=True)), ('slug', models.TextField(db_index=True, max_length=200)), ], options={ 'verbose_name': 'HTML Widget', 'verbose_name_plural': 'HTML Widgets', 'abstract': False, }, ), migrations.CreateModel( name='Organization', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('slug', models.SlugField(blank=True, verbose_name='Organization url slug')), ('logo', versatileimagefield.fields.VersatileImageField( blank=True, help_text='Company logo', null=True, upload_to='company/logo')), ('image', versatileimagefield.fields.VersatileImageField( blank=True, help_text='Company page image', null=True, upload_to='company/page')), ('name', models.CharField(help_text='Company name', max_length=300)), ('inn', models.CharField(max_length=300)), ('ogrn', models.CharField(max_length=300)), ('url', models.URLField(blank=True, null=True)), ('country', django_countries.fields.CountryField(max_length=2)), ('state', models.CharField(blank=True, max_length=300, null=True)), ('city', models.CharField(blank=True, max_length=300, null=True)), ('address_1', models.CharField(max_length=300)), ('address_2', models.CharField(blank=True, max_length=300, null=True)), ('email', models.EmailField(max_length=254)), ('phone', phonenumber_field.modelfields.PhoneNumberField( max_length=128)), ('description', models.TextField(blank=True, null=True)), ('date_added', models.DateTimeField(auto_now_add=True)), ('date_modified', models.DateTimeField(auto_now=True)), ('is_confirmed', models.PositiveIntegerField(default=0)), ], options={ 'verbose_name': 'Organization', 'verbose_name_plural': 'Organizations', 'abstract': False, }, ), migrations.CreateModel( name='OrganizationProduct', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('is_featured', models.BooleanField(default=False, verbose_name='company featured')), ('is_popular', models.BooleanField(default=False, verbose_name='bestseller')), ('rate_up', models.PositiveIntegerField(blank=True, default=0, verbose_name='Green bulb')), ('rate_down', models.PositiveIntegerField(blank=True, default=0, verbose_name='Red bulb')), ('rate_broken', models.PositiveIntegerField(blank=True, default=0, verbose_name='Broken bulb')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Partnership', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.PositiveIntegerField( blank=True, choices=[(0, 'Partnership is not confirmed by partner'), (1, 'Partnership is confirmed by partner'), (2, 'Partnership is declined by partner')], default=0)), ('date_added', models.DateTimeField(auto_now_add=True)), ('date_modified', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Partnership', 'verbose_name_plural': 'Partnerships', }, ), migrations.CreateModel( name='Rating', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('is_positive', models.BooleanField()), ], options={ 'verbose_name': 'Rating', 'verbose_name_plural': 'Ratings', }, ), migrations.CreateModel( name='Staff', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('position', models.CharField(blank=True, max_length=40, null=True, verbose_name='position')), ('is_verified', models.PositiveIntegerField(blank=True, default=0)), ('date_added', models.DateTimeField(auto_now_add=True)), ('date_modified', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Staff', 'verbose_name_plural': 'Staff', 'abstract': False, }, ), migrations.CreateModel( name='Vacancy', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=300, verbose_name='Vacancy position name')), ('description', models.TextField(verbose_name='Extended description')), ('date_added', models.DateTimeField(auto_now_add=True)), ('date_modified', models.DateTimeField(auto_now=True)), ], options={ 'verbose_name': 'Vacancy', 'verbose_name_plural': 'Vacancies', 'abstract': False, }, ), migrations.CreateModel( name='VisitorMessage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sender_name', models.CharField(blank=True, max_length=200, null=True)), ('email', models.EmailField(help_text='Email to reply', max_length=254)), ('phone', phonenumber_field.modelfields.PhoneNumberField( blank=True, help_text='Phone for callback', max_length=128, null=True)), ('text', models.TextField()), ('ip', models.CharField(blank=True, help_text='IP from which message was sent', max_length=200, null=True)), ('send_to', models.PositiveIntegerField( blank=True, choices=[(0, 'Send to organization page'), (1, 'Send to organization email')], default=0, verbose_name='Kind of submited message')), ('is_deleted', models.BooleanField(default=False)), ('is_confirmed', models.BooleanField(default=False)), ('phone_status', models.PositiveIntegerField(blank=True, choices=[ (0, 'Phone is not verified'), (1, 'Phone is verified'), (2, 'Verification was sent') ], default=0)), ('email_status', models.PositiveIntegerField(blank=True, choices=[ (0, 'Email is not verified'), (1, 'Email is verified') ], default=0)), ('created_at', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('organization', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Organization')), ('user', models.ForeignKey(blank=True, help_text='Authed user id', null=True, 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='SponsoredEvent', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=140, verbose_name='title')), ('category', models.CharField(choices=[ ('PRAC', 'Best Practices & Patterns'), ('COM', 'Community'), ('DB', 'Databases'), ('DATA', 'Data Analysis'), ('EDU', 'Education'), ('EMBED', 'Embedded Systems'), ('GAME', 'Gaming'), ('GRAPH', 'Graphics'), ('OTHER', 'Other'), ('CORE', 'Python Core (language, stdlib, etc.)'), ('INTNL', 'Python Internals'), ('LIBS', 'Python Libraries'), ('SCI', 'Science'), ('SEC', 'Security'), ('ADMIN', 'Systems Administration'), ('TEST', 'Testing'), ('WEB', 'Web Frameworks') ], max_length=5, verbose_name='category')), ('language', models.CharField(choices=[ ('ENEN', 'English talk'), ('ZHEN', 'Chinese talk w. English slides'), ('ZHZH', 'Chinese talk w. Chinese slides'), ('TAI', 'Taiwanese Hokkien') ], max_length=4, verbose_name='language')), ('abstract', core.models.EAWTextField( help_text= 'The overview of what the talk is about. If the talk assume some domain knowledge please state it here. If your talk is accepted, this will be displayed on both the website and the handbook. Should be one paragraph.', max_length=1000, verbose_name='abstract')), ('python_level', models.CharField( choices=[('NOVICE', 'Novice'), ('INTERMEDIATE', 'Intermediate'), ('EXPERIENCED', 'Experienced')], help_text= 'The choice of talk level matters during the review process. More definition of talk level can be found at the <a href="/None/speaking/talk/" target="_blank">How to Propose a Talk</a> page. Note that a proposal won\'t be more likely to be accepted because of being "Novice" level. We may contact you to change the talk level when we find the content is too-hard or too-easy for the target audience.', max_length=12, verbose_name='Python level')), ('detailed_description', models.TextField( blank=True, help_text= "Try not be too lengthy to scare away reviewers or potential audience. A comfortable length is less than 2000 characters (or about 1200 Chinese characters). Since most reviewers may not understand the topic as deep as you do, including related links to the talk topic will help reviewers understand the proposal. Edit using <a href='http://daringfireball.net/projects/markdown/basics' target='_blank'>Markdown</a>.", verbose_name='detailed description')), ('recording_policy', models.BooleanField( choices=[(True, 'Yes'), (False, 'No')], default=True, help_text= "Whether you agree to give permission to PyCon Taiwan to record, edit, and release audio and video of your presentation. More information can be found at <a href='/None/speaking/recording/' target='_blank'>Recording Release</a> page.", verbose_name='recording policy')), ('slide_link', models.URLField( blank=True, default='', help_text= 'You can add your slide link near or after the conference day. Not required for review.', verbose_name='slide link')), ('created_at', models.DateTimeField(auto_now_add=True, db_index=True, verbose_name='created at')), ('host', core.models.BigForeignKey( on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='host')), ], options={ 'verbose_name': 'sponsored event', 'verbose_name_plural': 'sponsored events', }, ), ]
class Migration(migrations.Migration): initial = True dependencies = [ ('auth', '0012_alter_user_first_name_max_length'), ] operations = [ migrations.CreateModel( name='CustomUser', fields=[ ('id', models.BigAutoField(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')), ('first_name', models.CharField(blank=True, max_length=150, verbose_name='first name')), ('last_name', models.CharField(blank=True, max_length=150, verbose_name='last name')), ('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)), ('phone_number', models.CharField(max_length=70)), ('email_confirmed', models.BooleanField(default=False)), ('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', core.models.UserManager()), ], ), migrations.CreateModel( name='Claim', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date_of_request', models.DateTimeField(auto_now_add=True)), ('updated_at', models.DateTimeField(auto_now=True)), ('address', models.CharField(max_length=200)), ('description', models.TextField()), ('status', models.CharField(choices=[('rejected', 'rejected'), ('received', 'received'), ('submitted', 'submitted'), ('in progress', 'in progress'), ('completed', 'completed')], default='received', max_length=30)), ('date_of_review', models.DateTimeField(blank=True, null=True)), ('date_start_work', models.DateTimeField(blank=True, null=True)), ('date_end_work', models.DateTimeField(blank=True, null=True)), ('latitude', models.CharField(max_length=40)), ('longitude', models.CharField(max_length=40)), ('minsk_region', models.CharField(choices=[('Московский', 'moskovsky'), ('Фрунзенский', 'frunzensky'), ('Центральный', 'central'), ('Советский', 'sovetsky'), ('Пермайский', 'pervomaisky'), ('Партизанский', 'partizansky'), ('Заводской', 'zavodsky'), ('Ленинский', 'leninsky'), ('Октябрьский', 'oktyabrsky')], max_length=60)), ('claim_type', models.CharField(choices=[ ('Автомобильные дороги, тротуары', 'roads and sidewalks'), ('Бытовые услуги', 'household services'), ('Водоснабжение', 'water supply'), ('Водоснабжение. Гооячая вода', 'water supply hot water'), ('Водоснабжение. Холодная вода', 'water supply cold water'), ('Газоснабжение', 'gas supply'), ('Канализация', 'sewer'), ('Кровельные работы', 'roofing work'), ('Обращение с ТКО', 'municipal solid waste'), ('Общественные места (Парки, скверы)', 'public places parks'), ('Общественный транспорт, остановки общественного транспорта', 'public transport and stops'), ('Общестроительные работы', 'general construction works'), ('Отопление', 'heating'), ('Работы по ремонту стыков', 'joint repair work'), ('Рекламные и информационные конструкции и объявления', 'advertising and info structures'), ('Санитарное состояние и благоустройство территории', 'sanitary condition and landscaping'), ('Техническое обслуживание зданий и сооружений', 'maintenance of buildings and structures'), ('Техническое обслуживание ЗПУ', 'maintenance of shutoff and intercom system'), ('Санитарное состояние многоквартирного дома', 'sanitary condition of apartment building'), ('Техническое обслуэивание лифтв', 'elevator maintenance'), ('Электроснабжение', 'power supply'), ('Другое', 'other') ], max_length=250)), ('citizen_rate', models.IntegerField(blank=True, null=True)), ], ), migrations.CreateModel( name='Comment', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('text', models.TextField()), ('date_posted', models.DateTimeField(auto_now_add=True)), ('is_active', models.BooleanField(default=True)), ('claim', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comments', to='core.claim')), ('user', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='comments', to=settings.AUTH_USER_MODEL)), ], ), migrations.CreateModel( name='Department', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('email', models.EmailField(blank=True, max_length=150)), ('region', models.CharField(choices=[('Московский', 'moskovsky'), ('Фрунзенский', 'frunzensky'), ('Центральный', 'central'), ('Советский', 'sovetsky'), ('Пермайский', 'pervomaisky'), ('Партизанский', 'partizansky'), ('Заводской', 'zavodsky'), ('Ленинский', 'leninsky'), ('Октябрьский', 'oktyabrsky')], max_length=60)), ('name', models.CharField(max_length=200)), ('site', models.URLField(blank=True)), ('address', models.CharField(blank=True, max_length=250)), ('info', models.TextField(blank=True)), ], ), migrations.CreateModel( name='ProgressReport', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('date_of_report', models.DateTimeField(auto_now_add=True)), ('description_of_work', models.TextField()), ('date_range', django.contrib.postgres.fields.ranges.DateTimeRangeField()), ('status', models.CharField(choices=[('rejected', 'rejected'), ('received', 'received'), ('submitted', 'submitted'), ('in progress', 'in progress'), ('completed', 'completed')], max_length=30)), ('claim', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='work_progress', to='core.claim')), ], ), migrations.CreateModel( name='Citizen', fields=[ ('customuser_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.customuser')), ('notify_if_status_changed', models.BooleanField(default=False)), ('notify_if_comment_added', models.BooleanField(default=False)), ('region', models.CharField(choices=[('Московский', 'moskovsky'), ('Фрунзенский', 'frunzensky'), ('Центральный', 'central'), ('Советский', 'sovetsky'), ('Пермайский', 'pervomaisky'), ('Партизанский', 'partizansky'), ('Заводской', 'zavodsky'), ('Ленинский', 'leninsky'), ('Октябрьский', 'oktyabrsky')], max_length=60)), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, bases=('core.customuser', ), managers=[ ('objects', core.models.UserManager()), ], ), migrations.CreateModel( name='Operator', fields=[ ('customuser_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.customuser')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, bases=('core.customuser', ), managers=[ ('objects', core.models.UserManager()), ], ), migrations.CreateModel( name='ProgressReportFile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file_type', models.CharField(choices=[('text', 'text'), ('audio', 'audio'), ('video', 'video')], max_length=10)), ('file', models.FileField(upload_to='progress_report_files')), ('progress_report', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='report_files', to='core.progressreport')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='CommentFile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file_type', models.CharField(choices=[('text', 'text'), ('audio', 'audio'), ('video', 'video')], max_length=10)), ('file', models.FileField(upload_to='progress_report_files')), ('comment', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='comment_files', to='core.comment')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='ClaimFile', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('file_type', models.CharField(choices=[('text', 'text'), ('audio', 'audio'), ('video', 'video')], max_length=10)), ('file', models.FileField(upload_to='progress_report_files')), ('claim', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='files', to='core.claim')), ], options={ 'abstract': False, }, ), migrations.CreateModel( name='Performer', fields=[ ('customuser_ptr', models.OneToOneField( auto_created=True, on_delete=django.db.models.deletion.CASCADE, parent_link=True, primary_key=True, serialize=False, to='core.customuser')), ('department', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='workers', to='core.department')), ], options={ 'verbose_name': 'user', 'verbose_name_plural': 'users', 'abstract': False, }, bases=('core.customuser', ), managers=[ ('objects', core.models.UserManager()), ], ), migrations.AddField( model_name='claim', name='citizen', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='filed_claims', to='core.citizen'), ), migrations.AddField( model_name='claim', name='operator', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_claims', to='core.operator'), ), migrations.AddField( model_name='claim', name='performer', field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_claims', to='core.performer'), ), migrations.AddField( model_name='citizen', name='bookmarked_claims', field=models.ManyToManyField(related_name='followers', to='core.Claim'), ), ]
class Migration(migrations.Migration): replaces = [('great_international', '0001_initial'), ('great_international', '0002_auto_20190206_1146'), ('great_international', '0003_internationalarticlelistingpage'), ('great_international', '0003_auto_20190211_1202'), ('great_international', '0004_merge_20190212_1003'), ('great_international', '0005_internationalukhqpages'), ('great_international', '0006_internationaltopiclandingpage'), ('great_international', '0007_auto_20190219_1114'), ('great_international', '0008_auto_20190222_1554'), ('great_international', '0008_auto_20190222_1230'), ('great_international', '0009_merge_20190225_1214'), ('great_international', '0010_auto_20190228_0819'), ('great_international', '0011_auto_20190228_1051'), ('great_international', '0012_internationalsectorpage'), ('great_international', '0013_auto_20190301_1227'), ('great_international', '0014_auto_20190304_1215'), ('great_international', '0015_auto_20190306_1521')] initial = True dependencies = [ ('wagtailforms', '0003_capitalizeverbose'), ('export_readiness', '0049_auto_20190207_0924'), ('wagtailimages', '0021_image_file_hash'), ('export_readiness', '0047_allcontactpagespage'), ('wagtailcore', '0040_page_draft_title'), ('export_readiness', '0050_auto_20190219_1633'), ] operations = [ migrations.CreateModel( name='GreatInternationalApp', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page', models.Model), ), migrations.CreateModel( name='InternationalArticlePage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('article_title', models.CharField(max_length=255)), ('article_teaser', models.CharField(max_length=255)), ('article_body_text', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('article_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('related_page_one', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ('related_page_three', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ('related_page_two', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), migrations.CreateModel( name='InternationalHomePage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('tariffs_title', models.CharField(max_length=255)), ('tariffs_description', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('tariffs_link', models.URLField()), ('news_title', models.CharField(max_length=255)), ('tariffs_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.CreateModel( name='InternationalCampaignPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('campaign_heading', models.CharField(max_length=255)), ('section_one_heading', models.CharField(max_length=255)), ('section_one_intro', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('selling_point_one_heading', models.CharField(max_length=255)), ('selling_point_one_content', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('selling_point_two_heading', models.CharField(blank=True, max_length=255, null=True)), ('selling_point_two_content', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks])), ('selling_point_three_heading', models.CharField(blank=True, max_length=255, null=True)), ('selling_point_three_content', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks])), ('section_one_contact_button_url', models.CharField(blank=True, max_length=255, null=True)), ('section_one_contact_button_text', models.CharField(blank=True, max_length=255, null=True)), ('section_two_heading', models.CharField(max_length=255)), ('section_two_intro', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('section_two_contact_button_url', models.CharField(blank=True, max_length=255, null=True)), ('section_two_contact_button_text', models.CharField(blank=True, max_length=255, null=True)), ('related_content_heading', models.CharField(max_length=255)), ('related_content_intro', core.model_fields.MarkdownField( validators=[core.validators.slug_hyperlinks])), ('cta_box_message', models.CharField(max_length=255)), ('cta_box_button_url', models.CharField(max_length=255)), ('cta_box_button_text', models.CharField(max_length=255)), ('campaign_hero_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('related_page_one', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ('related_page_three', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ('related_page_two', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalArticlePage')), ('section_one_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('section_two_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('selling_point_one_icon', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('selling_point_three_icon', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('selling_point_two_icon', 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='InternationalArticleListingPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('landing_page_title', models.CharField(max_length=255)), ('hero_teaser', models.CharField(blank=True, max_length=255, null=True)), ('list_teaser', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks])), ('hero_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='InternationalTopicLandingPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('landing_page_title', models.CharField(max_length=255)), ('hero_teaser', models.CharField(blank=True, max_length=255, null=True)), ('hero_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='InternationalRegionPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('tags', modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag')), ], options={ 'abstract': False, }, bases=(core.models.ExclusivePageMixin, 'wagtailcore.page'), ), migrations.AddField( model_name='internationalarticlelistingpage', name='tags', field=modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag'), ), migrations.AddField( model_name='internationalarticlepage', name='tags', field=modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag'), ), migrations.AddField( model_name='internationalcampaignpage', name='tags', field=modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag'), ), migrations.AddField( model_name='internationaltopiclandingpage', name='tags', field=modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag'), ), migrations.CreateModel( name='InternationalLocalisedFolderPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), migrations.AddField( model_name='internationalcampaignpage', name='campaign_teaser', field=models.CharField(blank=True, max_length=255, null=True), ), migrations.AddField( model_name='internationalhomepage', name='related_page_one', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), ), migrations.AddField( model_name='internationalhomepage', name='related_page_three', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), ), migrations.AddField( model_name='internationalhomepage', name='related_page_two', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page'), ), migrations.CreateModel( name='InternationalSectorPage', 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')), ('service_name', models.CharField(choices=[ ('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International') ], db_index=True, max_length=100, null=True)), ('heading', models.CharField(max_length=255)), ('sub_heading', models.CharField(blank=True, max_length=255)), ('heading_teaser', models.TextField(blank=True)), ('section_one_body', core.model_fields.MarkdownField( null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Bullets markdown')), ('statistic_1_number', models.CharField(max_length=255)), ('statistic_1_heading', models.CharField(max_length=255)), ('statistic_1_smallprint', models.CharField(blank=True, max_length=255)), ('statistic_2_number', models.CharField(max_length=255)), ('statistic_2_heading', models.CharField(max_length=255)), ('statistic_2_smallprint', models.CharField(blank=True, max_length=255)), ('statistic_3_number', models.CharField(blank=True, max_length=255)), ('statistic_3_heading', models.CharField(blank=True, max_length=255)), ('statistic_3_smallprint', models.CharField(blank=True, max_length=255)), ('statistic_4_number', models.CharField(blank=True, max_length=255)), ('statistic_4_heading', models.CharField(blank=True, max_length=255)), ('statistic_4_smallprint', models.CharField(blank=True, max_length=255)), ('statistic_5_number', models.CharField(blank=True, max_length=255)), ('statistic_5_heading', models.CharField(blank=True, max_length=255)), ('statistic_5_smallprint', models.CharField(blank=True, max_length=255)), ('statistic_6_number', models.CharField(blank=True, max_length=255)), ('statistic_6_heading', models.CharField(blank=True, max_length=255)), ('statistic_6_smallprint', models.CharField(blank=True, max_length=255)), ('section_two_heading', models.CharField(max_length=255, verbose_name='Highlights heading')), ('section_two_teaser', models.TextField(verbose_name='Highlights teaser')), ('section_two_subsection_one_heading', models.CharField(max_length=255, verbose_name='Highlight 1 heading')), ('section_two_subsection_one_body', models.TextField(verbose_name='Highlight 1 body')), ('section_two_subsection_two_heading', models.CharField(max_length=255, verbose_name='Highlight 2 heading')), ('section_two_subsection_two_body', models.TextField(verbose_name='Highlight 2 body')), ('section_two_subsection_three_heading', models.CharField(max_length=255, verbose_name='Highlight 3 heading')), ('section_two_subsection_three_body', models.TextField(verbose_name='Highlight 3 body')), ('case_study_title', models.CharField(blank=True, max_length=255)), ('case_study_description', models.CharField(blank=True, max_length=255)), ('case_study_cta_text', models.TextField(blank=True)), ('section_three_heading', models.CharField(blank=True, max_length=255, verbose_name='Fact sheets heading')), ('section_three_teaser', models.TextField(blank=True, verbose_name='Fact sheets teaser')), ('section_three_subsection_one_heading', models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 1 heading')), ('section_three_subsection_one_teaser', models.TextField(blank=True, verbose_name='Fact sheet 1 teaser')), ('section_three_subsection_one_body', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 1 body')), ('section_three_subsection_two_heading', models.CharField(blank=True, max_length=255, verbose_name='Fact sheet 2 heading')), ('section_three_subsection_two_teaser', models.TextField(blank=True, verbose_name='Fact sheet 2 teaser')), ('section_three_subsection_two_body', core.model_fields.MarkdownField( blank=True, null=True, validators=[core.validators.slug_hyperlinks], verbose_name='Fact sheet 2 body')), ('case_study_image', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('hero_image', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image')), ('related_page_one', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('related_page_three', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('related_page_two', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('section_one_image', models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Bullets image')), ('section_two_subsection_one_icon', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 1 icon')), ('section_two_subsection_three_icon', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 3 icon')), ('section_two_subsection_two_icon', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailimages.Image', verbose_name='Highlight 2 icon')), ('case_study_cta_page', models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='wagtailcore.Page')), ('tags', modelcluster.fields.ParentalManyToManyField( blank=True, to='export_readiness.Tag')), ('section_one_image_caption', models.CharField(blank=True, max_length=255, verbose_name='Bullets image caption')), ('section_one_image_caption_company', models.CharField( blank=True, max_length=255, verbose_name='Bullets image caption — company name')), ], options={ 'abstract': False, }, bases=('wagtailcore.page', ), ), ]
class Migration(migrations.Migration): dependencies = [ ('wagtailcore', '0059_apply_collection_ordering'), ('great_international', '0093_auto_20200414_1626'), ] operations = [ migrations.CreateModel( name='InvestmentOpportunityListingPage', 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')), ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), ('breadcrumbs_label', models.CharField(max_length=50)), ('breadcrumbs_label_en_gb', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_de', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_ja', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_zh_hans', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_fr', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_es', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_pt', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_ar', models.CharField(max_length=50, null=True)), ('search_results_title', models.CharField(max_length=255)), ('search_results_title_en_gb', models.CharField(max_length=255, null=True)), ('search_results_title_de', models.CharField(max_length=255, null=True)), ('search_results_title_ja', models.CharField(max_length=255, null=True)), ('search_results_title_zh_hans', models.CharField(max_length=255, null=True)), ('search_results_title_fr', models.CharField(max_length=255, null=True)), ('search_results_title_es', models.CharField(max_length=255, null=True)), ('search_results_title_pt', models.CharField(max_length=255, null=True)), ('search_results_title_ar', models.CharField(max_length=255, null=True)), ('hero_text', models.TextField(help_text='Text that appears beneath the page title', max_length=2000)), ('hero_text_en_gb', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_de', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_ja', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_zh_hans', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_fr', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_es', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_pt', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('hero_text_ar', models.TextField(help_text='Text that appears beneath the page title', max_length=2000, null=True)), ('contact_cta_title', models.CharField(blank=True, max_length=50)), ('contact_cta_title_en_gb', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_de', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_ja', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_zh_hans', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_fr', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_es', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_pt', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_title_ar', models.CharField(blank=True, max_length=50, null=True)), ('contact_cta_text', models.TextField(blank=True, max_length=1000)), ('contact_cta_text_en_gb', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_de', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_ja', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_zh_hans', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_fr', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_es', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_pt', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_text_ar', models.TextField(blank=True, max_length=1000, null=True)), ('contact_cta_link', models.URLField(blank=True)), ('contact_cta_link_en_gb', models.URLField(blank=True, null=True)), ('contact_cta_link_de', models.URLField(blank=True, null=True)), ('contact_cta_link_ja', models.URLField(blank=True, null=True)), ('contact_cta_link_zh_hans', models.URLField(blank=True, null=True)), ('contact_cta_link_fr', models.URLField(blank=True, null=True)), ('contact_cta_link_es', models.URLField(blank=True, null=True)), ('contact_cta_link_pt', models.URLField(blank=True, null=True)), ('contact_cta_link_ar', models.URLField(blank=True, null=True)), ], options={ 'abstract': False, }, bases=(core.models.WagtailAdminExclusivePageMixin, 'wagtailcore.page', great_international.panels.investment_atlas.InvestmentOpportunityListingPagePanels), ), migrations.CreateModel( name='InvestmentOpportunityPage', 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')), ('service_name', models.CharField(choices=[('FIND_A_SUPPLIER', 'Find a Supplier'), ('EXPORT_READINESS', 'Export Readiness'), ('INVEST', 'Invest'), ('COMPONENTS', 'Components'), ('GREAT_INTERNATIONAL', 'Great International')], db_index=True, max_length=100, null=True)), ('uses_tree_based_routing', models.BooleanField(default=False, help_text="Allow this page's URL to be determined by its slug, and the slugs of its ancestors in the page tree.", verbose_name='tree-based routing enabled')), ('breadcrumbs_label', models.CharField(max_length=50)), ('breadcrumbs_label_en_gb', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_de', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_ja', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_zh_hans', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_fr', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_es', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_pt', models.CharField(max_length=50, null=True)), ('breadcrumbs_label_ar', models.CharField(max_length=50, null=True)), ('priority_weighting', models.DecimalField(decimal_places=2, default='0.0', help_text='For use when auto-ordering results or automatically choosing which to show - an Opportunity with a higher priority weighting will be shown earlier. Max val: 999.99', max_digits=5)), ('featured_images', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_en_gb', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_de', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_ja', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_zh_hans', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_fr', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_es', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_pt', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('featured_images_ar', wagtail.core.fields.StreamField([('images', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False))]))], blank=True, null=True)), ('strapline', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200)), ('strapline_en_gb', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_de', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_ja', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_zh_hans', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_fr', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_es', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_pt', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('strapline_ar', models.CharField(help_text='A single sentence which directly brings to the direct opportunity to the fore. 200 chars max.', max_length=200, null=True)), ('introduction', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300)), ('introduction_en_gb', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_de', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_ja', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_zh_hans', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_fr', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_es', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_pt', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('introduction_ar', core.model_fields.MarkdownField(help_text='A single paragraph of 300 characters max including spaces to introduce the opportunity – what is the vision / ambition of the opportunity, timeline and where relevant, procurement method. What type of investor is this suitable for? Where is it and why is that important? Further detail can be provided in the “The Opportunity” section.', max_length=300, null=True)), ('opportunity_summary', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300)), ('opportunity_summary_en_gb', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_de', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_ja', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_zh_hans', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_fr', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_es', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_pt', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('opportunity_summary_ar', models.TextField(help_text='Simple summary of the Opportunity, for display on OTHER pages (eg listing pages) which link TO a full page about this opportunity. 300 chars max.', max_length=300, null=True)), ('location', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200)), ('location_en_gb', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_de', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_ja', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_zh_hans', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_fr', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_es', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_pt', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_ar', models.CharField(blank=True, help_text='Verbose display name for the location. Geospatial and region data is set in the Location and Relevant Regions tab.', max_length=200, null=True)), ('location_coords', models.CharField(blank=True, max_length=200)), ('promoter', models.CharField(blank=True, max_length=200)), ('promoter_en_gb', models.CharField(blank=True, max_length=200, null=True)), ('promoter_de', models.CharField(blank=True, max_length=200, null=True)), ('promoter_ja', models.CharField(blank=True, max_length=200, null=True)), ('promoter_zh_hans', models.CharField(blank=True, max_length=200, null=True)), ('promoter_fr', models.CharField(blank=True, max_length=200, null=True)), ('promoter_es', models.CharField(blank=True, max_length=200, null=True)), ('promoter_pt', models.CharField(blank=True, max_length=200, null=True)), ('promoter_ar', models.CharField(blank=True, max_length=200, null=True)), ('scale', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255)), ('scale_en_gb', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_de', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_ja', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_zh_hans', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_fr', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_es', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_pt', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_ar', models.CharField(blank=True, help_text='Verbose description of investment scale', max_length=255, null=True)), ('scale_value', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_en_gb', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_de', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_ja', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_zh_hans', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_fr', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_es', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_pt', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('scale_value_ar', models.DecimalField(blank=True, decimal_places=2, default=0, max_digits=10, null=True, verbose_name='Scale value (in millions)')), ('time_to_investment_decision', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50)), ('time_to_investment_decision_en_gb', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_de', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_ja', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_zh_hans', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_fr', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_es', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_pt', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('time_to_investment_decision_ar', models.CharField(blank=True, choices=[('TIME_TO_INVESTMENT_DECISION_0M_6M', '0-6 months'), ('TIME_TO_INVESTMENT_DECISION_6M_12M', '6-12 months'), ('TIME_TO_INVESTMENT_DECISION_1Y_2Y', '1-2 years'), ('TIME_TO_INVESTMENT_DECISION_2Y_PLUS', '2 years +')], max_length=50, null=True)), ('main_content', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_en_gb', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_de', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_ja', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_zh_hans', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_fr', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_es', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_pt', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ('main_content_ar', wagtail.core.fields.StreamField([('copy', wagtail.core.blocks.StructBlock([('text_content', great_international.blocks.investment_atlas.MarkdownBlock(required=True)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))])), ('contact_details', wagtail.core.blocks.StructBlock([('name', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('job_title', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('contact_link', wagtail.core.blocks.CharBlock(blank=True, help_text='Can be a URL or an email link in the format mailto:[email protected]', null=True))])), ('image', wagtail.core.blocks.StructBlock([('image', wagtail.images.blocks.ImageChooserBlock(required=True)), ('image_alt', wagtail.core.blocks.CharBlock(max_length=255, required=True)), ('caption', wagtail.core.blocks.CharBlock(max_length=255, required=False)), ('custom_css_class', wagtail.core.blocks.CharBlock(help_text="Only needed if special styling is involved: check with a developer. If in doubt, it's not needed", max_length=255, required=False))]))], blank=True, null=True)), ], options={ 'abstract': False, }, bases=('wagtailcore.page', great_international.panels.investment_atlas.InvestmentOpportunityPagePanels), ), migrations.CreateModel( name='InvestmentType', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50)), ], ), migrations.CreateModel( name='PlanningStatus', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=50)), ], options={ 'verbose_name_plural': 'Planning Status choices', }, ), migrations.CreateModel( name='InvestmentOpportunityRelatedSubSectors', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='related_sub_sectors', to='great_international.InvestmentOpportunityPage')), ('related_sub_sector', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalSubSectorPage')), ], options={ 'ordering': ['sort_order'], 'abstract': False, }, ), migrations.CreateModel( name='InvestmentOpportunityRelatedSectors', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('sort_order', models.IntegerField(blank=True, editable=False, null=True)), ('page', modelcluster.fields.ParentalKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='related_sectors', to='great_international.InvestmentOpportunityPage')), ('related_sector', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to='great_international.InternationalSectorPage')), ], options={ 'ordering': ['sort_order'], 'abstract': False, }, ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_ar', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_de', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_en_gb', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_es', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_fr', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_ja', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_pt', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='investment_type_zh_hans', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.InvestmentType'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_ar', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_de', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_en_gb', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_es', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_fr', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_ja', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_pt', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='planning_status_zh_hans', field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='great_international.PlanningStatus'), ), migrations.AddField( model_name='investmentopportunitypage', name='related_regions', field=modelcluster.fields.ParentalManyToManyField(blank=True, to='great_international.AboutUkRegionPage'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Movie', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=140)), ('plot', models.TextField()), ('year', models.PositiveIntegerField()), ('rating', models.IntegerField(choices=[ (0, 'NR - Not Rated'), (1, 'G - General Audiences'), (2, 'PG - Parental GuidanceSuggested'), (3, 'R - Restricted') ], default=0)), ('runtime', models.PositiveIntegerField()), ('website', models.URLField(blank=True)), ], options={ 'ordering': ('-year', 'title'), }, ), migrations.CreateModel( name='Person', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('first_name', models.CharField(max_length=140)), ('last_name', models.CharField(max_length=140)), ('born', models.DateField()), ('died', models.DateField(blank=True, null=True)), ], options={ 'ordering': ('last_name', 'first_name'), }, ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=140)), ('movie', models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, to='core.Movie')), ('person', models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, to='core.Person')), ], options={ 'unique_together': {('movie', 'person', 'name')}, }, ), migrations.CreateModel( name='MovieImage', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('image', models.ImageField( upload_to=core.models.movie_directory_path_with_uuid)), ('uploaded', models.DateTimeField(auto_now=True)), ('movie', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Movie')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], ), migrations.AddField( model_name='movie', name='actors', field=models.ManyToManyField(blank=True, related_name='acting_credits', through='core.Role', to='core.Person'), ), migrations.AddField( model_name='movie', name='director', field=models.ForeignKey( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='directed', to='core.Person'), ), migrations.AddField( model_name='movie', name='writers', field=models.ManyToManyField(blank=True, related_name='writing_credits', to='core.Person'), ), migrations.CreateModel( name='Vote', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('value', models.SmallIntegerField(choices=[(1, '^'), (-1, '+')])), ('voted_on', models.DateTimeField(auto_now=True)), ('movie', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='core.Movie')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'unique_together': {('user', 'movie')}, }, ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0011_auto_20180219_1803'), ] operations = [ migrations.RemoveField( model_name='contacts', name='author', ), migrations.RemoveField( model_name='homepage', name='author', ), migrations.AlterModelOptions( name='sitesettings', options={'verbose_name': 'Site settings'}, ), migrations.AlterField( model_name='activation', name='url', field=models.URLField(verbose_name='Link'), ), migrations.AlterField( model_name='activation', name='valid_until', field=models.DateTimeField( verbose_name='Activation URL valid until'), ), migrations.AlterField( model_name='profile', name='activation', field=models.OneToOneField( blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, to='core.Activation', verbose_name='Activation'), ), migrations.AlterField( model_name='profile', name='avatar', field=models.ImageField( blank=True, null=True, upload_to=core.models.get_profile_image_path, verbose_name='Avatar'), ), migrations.AlterField( model_name='sitesettings', name='activation_url_preiod', field=models.SmallIntegerField( default=100, verbose_name='URL activity period, h.'), ), migrations.AlterField( model_name='sitesettings', name='default_user_image', field=models.ImageField(blank=True, null=True, upload_to='', verbose_name='Default user avatar'), ), migrations.DeleteModel(name='Contacts', ), migrations.DeleteModel(name='Homepage', ), ]
class Migration(migrations.Migration): dependencies = [ ('core', '0035_merge_20180511_0020'), ] operations = [ migrations.AlterField( model_name='block', name='exp_length', field=models.FloatField(blank=True, null=True, verbose_name='Exposure length in seconds'), ), migrations.AlterField( model_name='block', name='num_observed', field=models.IntegerField(blank=True, help_text='No. of scheduler blocks executed', null=True), ), migrations.AlterField( model_name='block', name='site', field=models.CharField(choices=[('ogg', 'Haleakala'), ('coj', 'Siding Spring'), ('lsc', 'Cerro Tololo'), ('elp', 'McDonald'), ('cpt', 'Sutherland'), ('tfn', 'Tenerife'), ('sbg', 'SBIG cameras'), ('sin', 'Sinistro cameras')], max_length=3), ), migrations.AlterField( model_name='block', name='telclass', field=models.CharField(choices=[('1m0', '1-meter'), ('2m0', '2-meter'), ('0m4', '0.4-meter')], default='1m0', max_length=3), ), migrations.AlterField( model_name='block', name='when_observed', field=models.DateTimeField(blank=True, help_text='Date/time of latest frame', null=True), ), migrations.AlterField( model_name='body', name='abs_mag', field=models.FloatField(blank=True, null=True, verbose_name='H - absolute magnitude'), ), migrations.AlterField( model_name='body', name='active', field=models.BooleanField(default=False, verbose_name='Actively following?'), ), migrations.AlterField( model_name='body', name='arc_length', field=models.FloatField(blank=True, null=True, verbose_name='Length of observed arc (days)'), ), migrations.AlterField( model_name='body', name='argofperih', field=models.FloatField(blank=True, null=True, verbose_name='Arg of perihelion (deg)'), ), migrations.AlterField( model_name='body', name='eccentricity', field=models.FloatField(blank=True, null=True, verbose_name='Eccentricity'), ), migrations.AlterField( model_name='body', name='elements_type', field=models.CharField(blank=True, choices=[('MPC_MINOR_PLANET', 'MPC Minor Planet'), ('MPC_COMET', 'MPC Comet')], max_length=16, null=True, verbose_name='Elements type'), ), migrations.AlterField( model_name='body', name='epochofel', field=models.DateTimeField(blank=True, null=True, verbose_name='Epoch of elements'), ), migrations.AlterField( model_name='body', name='epochofperih', field=models.DateTimeField(blank=True, help_text='for comets', null=True, verbose_name='Epoch of perihelion'), ), migrations.AlterField( model_name='body', name='fast_moving', field=models.BooleanField(default=False, verbose_name='Is this object fast?'), ), migrations.AlterField( model_name='body', name='longascnode', field=models.FloatField(blank=True, null=True, verbose_name='Longitude of Ascending Node (deg)'), ), migrations.AlterField( model_name='body', name='meananom', field=models.FloatField(blank=True, help_text='for asteroids', null=True, verbose_name='Mean Anomaly (deg)'), ), migrations.AlterField( model_name='body', name='meandist', field=models.FloatField(blank=True, help_text='for asteroids', null=True, verbose_name='Mean distance (AU)'), ), migrations.AlterField( model_name='body', name='name', field=models.CharField(blank=True, max_length=15, null=True, verbose_name='Designation'), ), migrations.AlterField( model_name='body', name='not_seen', field=models.FloatField(blank=True, null=True, verbose_name='Time since last observation (days)'), ), migrations.AlterField( model_name='body', name='num_obs', field=models.IntegerField(blank=True, null=True, verbose_name='Number of observations'), ), migrations.AlterField( model_name='body', name='orbinc', field=models.FloatField(blank=True, null=True, verbose_name='Orbital inclination in deg'), ), migrations.AlterField( model_name='body', name='origin', field=models.CharField(blank=True, choices=[('M', 'Minor Planet Center'), ('N', 'NASA'), ('S', 'Spaceguard'), ('D', 'NEODSYS'), ('G', 'Goldstone'), ('A', 'Arecibo'), ('R', 'Goldstone & Arecibo'), ('L', 'LCOGT'), ('Y', 'Yarkovsky'), ('T', 'Trojan')], default='M', max_length=1, null=True, verbose_name='Where did this target come from?'), ), migrations.AlterField( model_name='body', name='perihdist', field=models.FloatField(blank=True, help_text='for comets', null=True, verbose_name='Perihelion distance (AU)'), ), migrations.AlterField( model_name='body', name='provisional_name', field=models.CharField(blank=True, max_length=15, null=True, verbose_name='Provisional MPC designation'), ), migrations.AlterField( model_name='body', name='provisional_packed', field=models.CharField(blank=True, max_length=7, null=True, verbose_name='MPC name in packed format'), ), migrations.AlterField( model_name='body', name='score', field=models.IntegerField(blank=True, help_text='NEOCP digest2 score', null=True), ), migrations.AlterField( model_name='body', name='slope', field=models.FloatField(blank=True, null=True, verbose_name='G - slope parameter'), ), migrations.AlterField( model_name='body', name='source_type', field=models.CharField(blank=True, choices=[('N', 'NEO'), ('A', 'Asteroid'), ('C', 'Comet'), ('K', 'KBO'), ('E', 'Centaur'), ('T', 'Trojan'), ('U', 'Candidate'), ('X', 'Did not exist'), ('W', 'Was not interesting'), ('D', 'Discovery, non NEO'), ('J', 'Artificial satellite'), ('H', 'Hyperbolic asteroids')], max_length=1, null=True, verbose_name='Type of object'), ), migrations.AlterField( model_name='body', name='updated', field=models.BooleanField(default=False, verbose_name='Has this object been updated?'), ), migrations.AlterField( model_name='body', name='urgency', field=models.IntegerField(blank=True, help_text='how urgent is this?', null=True), ), migrations.AlterField( model_name='candidate', name='avg_dec', field=models.FloatField(verbose_name='Average Observed Dec (degrees)'), ), migrations.AlterField( model_name='candidate', name='avg_mag', field=models.FloatField(blank=True, null=True, verbose_name='Average Observed Magnitude'), ), migrations.AlterField( model_name='candidate', name='avg_midpoint', field=models.DateTimeField(verbose_name='Average UTC midpoint'), ), migrations.AlterField( model_name='candidate', name='avg_ra', field=models.FloatField(verbose_name='Average Observed RA (degrees)'), ), migrations.AlterField( model_name='candidate', name='avg_x', field=models.FloatField(verbose_name='Average CCD X co-ordinate'), ), migrations.AlterField( model_name='candidate', name='avg_y', field=models.FloatField(verbose_name='Average CCD Y co-ordinate'), ), migrations.AlterField( model_name='candidate', name='cand_id', field=models.PositiveIntegerField(verbose_name='Candidate Id'), ), migrations.AlterField( model_name='candidate', name='detections', field=models.BinaryField(blank=True, null=True, verbose_name='Detections array'), ), migrations.AlterField( model_name='candidate', name='score', field=models.FloatField(verbose_name='Candidate Score'), ), migrations.AlterField( model_name='candidate', name='sky_motion_pa', field=models.FloatField(verbose_name='Position angle of motion on the sky (degrees)'), ), migrations.AlterField( model_name='candidate', name='speed', field=models.FloatField(verbose_name='Speed (degrees/day)'), ), migrations.AlterField( model_name='catalogsources', name='aperture_size', field=models.FloatField(blank=True, null=True, verbose_name='Size of aperture (arcsec)'), ), migrations.AlterField( model_name='catalogsources', name='background', field=models.FloatField(verbose_name='Background'), ), migrations.AlterField( model_name='catalogsources', name='ellipticity', field=models.FloatField(verbose_name='Ellipticity'), ), migrations.AlterField( model_name='catalogsources', name='err_obs_dec', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed Dec'), ), migrations.AlterField( model_name='catalogsources', name='err_obs_mag', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed Magnitude'), ), migrations.AlterField( model_name='catalogsources', name='err_obs_ra', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed RA'), ), migrations.AlterField( model_name='catalogsources', name='flags', field=models.IntegerField(default=0, help_text='Bitmask of flags', verbose_name='Source flags'), ), migrations.AlterField( model_name='catalogsources', name='flux_max', field=models.FloatField(blank=True, null=True, verbose_name='Peak flux above background'), ), migrations.AlterField( model_name='catalogsources', name='major_axis', field=models.FloatField(verbose_name='Ellipse major axis'), ), migrations.AlterField( model_name='catalogsources', name='minor_axis', field=models.FloatField(verbose_name='Ellipse minor axis'), ), migrations.AlterField( model_name='catalogsources', name='obs_dec', field=models.FloatField(verbose_name='Observed Dec'), ), migrations.AlterField( model_name='catalogsources', name='obs_mag', field=models.FloatField(blank=True, null=True, verbose_name='Observed Magnitude'), ), migrations.AlterField( model_name='catalogsources', name='obs_ra', field=models.FloatField(verbose_name='Observed RA'), ), migrations.AlterField( model_name='catalogsources', name='obs_x', field=models.FloatField(verbose_name='CCD X co-ordinate'), ), migrations.AlterField( model_name='catalogsources', name='obs_y', field=models.FloatField(verbose_name='CCD Y co-ordinate'), ), migrations.AlterField( model_name='catalogsources', name='position_angle', field=models.FloatField(verbose_name='Ellipse position angle'), ), migrations.AlterField( model_name='catalogsources', name='threshold', field=models.FloatField(blank=True, null=True, verbose_name='Detection threshold above background'), ), migrations.AlterField( model_name='frame', name='astrometric_catalog', field=models.CharField(default=' ', max_length=40, verbose_name='Astrometric catalog used'), ), migrations.AlterField( model_name='frame', name='exptime', field=models.FloatField(blank=True, null=True, verbose_name='Exposure time in seconds'), ), migrations.AlterField( model_name='frame', name='filename', field=models.CharField(blank=True, max_length=50, null=True, verbose_name='FITS filename'), ), migrations.AlterField( model_name='frame', name='filter', field=models.CharField(default='B', max_length=15, verbose_name='filter class'), ), migrations.AlterField( model_name='frame', name='frameid', field=models.IntegerField(blank=True, null=True, verbose_name='Archive ID'), ), migrations.AlterField( model_name='frame', name='frametype', field=models.SmallIntegerField(choices=[(0, 'Single frame'), (1, 'Stack of frames'), (2, 'Non-LCOGT data'), (3, 'Satellite data'), (4, 'Spectrum'), (5, 'FITS LDAC catalog'), (6, 'BANZAI LDAC catalog'), (10, 'ORACDR QL frame'), (11, 'BANZAI QL frame'), (90, 'ORACDR reduced frame'), (91, 'BANZAI reduced frame')], default=0, verbose_name='Frame Type'), ), migrations.AlterField( model_name='frame', name='fwhm', field=models.FloatField(blank=True, null=True, verbose_name='Full width at half maximum (FWHM; arcsec)'), ), migrations.AlterField( model_name='frame', name='instrument', field=models.CharField(blank=True, max_length=4, null=True, verbose_name='instrument code'), ), migrations.AlterField( model_name='frame', name='midpoint', field=models.DateTimeField(verbose_name='UTC date/time of frame midpoint'), ), migrations.AlterField( model_name='frame', name='nstars_in_fit', field=models.FloatField(blank=True, null=True, verbose_name='No. of stars used in astrometric fit'), ), migrations.AlterField( model_name='frame', name='photometric_catalog', field=models.CharField(default=' ', max_length=40, verbose_name='Photometric catalog used'), ), migrations.AlterField( model_name='frame', name='quality', field=models.CharField(blank=True, default=' ', help_text='Comma separated list of frame/condition flags', max_length=40, verbose_name='Frame Quality flags'), ), migrations.AlterField( model_name='frame', name='rms_of_fit', field=models.FloatField(blank=True, null=True, verbose_name='RMS of astrometric fit (arcsec)'), ), migrations.AlterField( model_name='frame', name='sitecode', field=models.CharField(max_length=4, verbose_name='MPC site code'), ), migrations.AlterField( model_name='frame', name='time_uncertainty', field=models.FloatField(blank=True, null=True, verbose_name='Time uncertainty (seconds)'), ), migrations.AlterField( model_name='frame', name='wcs', field=core.models.WCSField(blank=True, null=True, verbose_name='WCS info'), ), migrations.AlterField( model_name='frame', name='zeropoint', field=models.FloatField(blank=True, null=True, verbose_name='Frame zeropoint (mag.)'), ), migrations.AlterField( model_name='frame', name='zeropoint_err', field=models.FloatField(blank=True, null=True, verbose_name='Error on Frame zeropoint (mag.)'), ), migrations.AlterField( model_name='panoptesreport', name='classifiers', field=models.TextField(blank=True, help_text='Volunteers usernames who found NEOs', null=True), ), migrations.AlterField( model_name='panoptesreport', name='subject_id', field=models.IntegerField(blank=True, null=True, verbose_name='Subject ID'), ), migrations.AlterField( model_name='panoptesreport', name='when_submitted', field=models.DateTimeField(blank=True, null=True, verbose_name='Date sent to Zooniverse'), ), migrations.AlterField( model_name='previousspectra', name='spec_ir', field=models.URLField(blank=True, null=True, verbose_name='IR Spectra Link'), ), migrations.AlterField( model_name='previousspectra', name='spec_ref', field=models.CharField(blank=True, max_length=10, null=True, verbose_name='Spectra Reference'), ), migrations.AlterField( model_name='previousspectra', name='spec_source', field=models.CharField(blank=True, choices=[('S', 'SMASS'), ('M', 'MANOS'), ('U', 'Unknown'), ('O', 'Other')], max_length=1, null=True, verbose_name='Source'), ), migrations.AlterField( model_name='previousspectra', name='spec_vis', field=models.URLField(blank=True, null=True, verbose_name='Visible Spectra Link'), ), migrations.AlterField( model_name='previousspectra', name='spec_wav', field=models.CharField(blank=True, choices=[('Vis', 'Visible'), ('NIR', 'Near Infrared'), ('Vis+NIR', 'Both Visible and Near IR'), ('NA', 'None Yet.')], max_length=7, null=True, verbose_name='Wavelength'), ), migrations.AlterField( model_name='proposal', name='active', field=models.BooleanField(default=True, verbose_name='Proposal active?'), ), migrations.AlterField( model_name='proposal', name='pi', field=models.CharField(default='', help_text='Principal Investigator (PI)', max_length=50, verbose_name='PI'), ), migrations.AlterField( model_name='proposal', name='tag', field=models.CharField(default='LCOGT', max_length=10), ), migrations.AlterField( model_name='sourcemeasurement', name='aperture_size', field=models.FloatField(blank=True, null=True, verbose_name='Size of aperture (arcsec)'), ), migrations.AlterField( model_name='sourcemeasurement', name='astrometric_catalog', field=models.CharField(default=' ', max_length=40, verbose_name='Astrometric catalog used'), ), migrations.AlterField( model_name='sourcemeasurement', name='err_obs_dec', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed Dec'), ), migrations.AlterField( model_name='sourcemeasurement', name='err_obs_mag', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed Magnitude'), ), migrations.AlterField( model_name='sourcemeasurement', name='err_obs_ra', field=models.FloatField(blank=True, null=True, verbose_name='Error on Observed RA'), ), migrations.AlterField( model_name='sourcemeasurement', name='flags', field=models.CharField(blank=True, default=' ', help_text='Comma separated list of frame/condition flags', max_length=40, verbose_name='Frame Quality flags'), ), migrations.AlterField( model_name='sourcemeasurement', name='obs_dec', field=models.FloatField(blank=True, null=True, verbose_name='Observed Dec'), ), migrations.AlterField( model_name='sourcemeasurement', name='obs_mag', field=models.FloatField(blank=True, null=True, verbose_name='Observed Magnitude'), ), migrations.AlterField( model_name='sourcemeasurement', name='obs_ra', field=models.FloatField(blank=True, null=True, verbose_name='Observed RA'), ), migrations.AlterField( model_name='sourcemeasurement', name='photometric_catalog', field=models.CharField(default=' ', max_length=40, verbose_name='Photometric catalog used'), ), migrations.AlterField( model_name='sourcemeasurement', name='snr', field=models.FloatField(blank=True, null=True, verbose_name='Size of aperture (arcsec)'), ), migrations.AlterField( model_name='spectralinfo', name='tax_notes', field=models.CharField(blank=True, max_length=30, null=True, verbose_name='Notes on Taxonomic Classification'), ), migrations.AlterField( model_name='spectralinfo', name='tax_reference', field=models.CharField(blank=True, choices=[('PDS6', 'Neese, Asteroid Taxonomy V6.0. (2010).'), ('BZ04', 'Binzel, et al. (2004).')], max_length=6, null=True, verbose_name='Reference source for Taxonomic data'), ), migrations.AlterField( model_name='spectralinfo', name='tax_scheme', field=models.CharField(blank=True, choices=[('T', 'Tholen'), ('Ba', 'Barucci'), ('Td', 'Tedesco'), ('H', 'Howell'), ('S', 'SMASS'), ('B', 'Bus'), ('3T', 'S3OS2_TH'), ('3B', 'S3OS2_BB'), ('BD', 'Bus-DeMeo')], max_length=2, null=True, verbose_name='Taxonomic Scheme'), ), migrations.AlterField( model_name='spectralinfo', name='taxonomic_class', field=models.CharField(blank=True, max_length=6, null=True, verbose_name='Taxonomic Class'), ), migrations.AlterField( model_name='superblock', name='jitter', field=models.FloatField(blank=True, null=True, verbose_name='Acceptable deviation before or after strict period (hours)'), ), migrations.AlterField( model_name='superblock', name='period', field=models.FloatField(blank=True, null=True, verbose_name='Spacing between cadence observations (hours)'), ), migrations.AlterField( model_name='superblock', name='rapid_response', field=models.BooleanField(default=False, verbose_name='Is this a ToO/Rapid Response observation?'), ), migrations.AlterField( model_name='superblock', name='timeused', field=models.FloatField(blank=True, null=True, verbose_name='Time used (seconds)'), ), ]
class Migration(migrations.Migration): initial = True dependencies = [] operations = [ migrations.CreateModel( name='Scan', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('started_at', models.DateTimeField(blank=True, null=True)), ('finished_at', models.DateTimeField(blank=True, null=True)), ('name', models.CharField(max_length=255)), ('status', models.CharField(choices=[ (core.models.Status['COMPLETED'], 'completed'), (core.models.Status['FAILED'], 'failed') ], max_length=50)), ('scanners', django.contrib.postgres.fields.ArrayField( base_field=models.CharField(blank=True, max_length=50, null=True), size=None)), ('severity_counts', django.contrib.postgres.fields.jsonb.JSONField(blank=True, null=True)), ], ), migrations.CreateModel( name='User', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('username', models.CharField(max_length=255)), ('email', models.EmailField(max_length=254)), ('first_name', models.CharField(max_length=255)), ('last_name', models.CharField(max_length=255)), ], ), migrations.CreateModel( name='Vulnerability', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('severity', models.CharField(choices=[ (core.models.Severity['INFORMATION'], 'information'), (core.models.Severity['MEDIUM'], 'medium'), (core.models.Severity['HIGH'], 'high'), (core.models.Severity['LOW'], 'low') ], max_length=50)), ('name', models.CharField(max_length=255)), ('description', models.TextField()), ('solution', models.TextField()), ('references', django.contrib.postgres.fields.ArrayField( base_field=models.URLField(blank=True, null=True), size=None)), ('cvss_base_score', models.DecimalField(decimal_places=1, max_digits=2)), ('scans', models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, related_name='vulnerabilities', to='core.scan')), ], ), migrations.AddField( model_name='scan', name='requested_by', field=models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, related_name='user', to='core.user'), ), migrations.CreateModel( name='Asset', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('description', models.TextField()), ('created', models.DateTimeField(auto_now_add=True)), ('scan', models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, related_name='assets_scanned', to='core.scan')), ('vulnerability', models.ForeignKey( on_delete=django.db.models.deletion.DO_NOTHING, related_name='affected_assets', to='core.vulnerability')), ], ), ]
class Migration(migrations.Migration): dependencies = [ ('learn', '0005_merge_20190311_0756'), ] operations = [ migrations.CreateModel( name='LiveTraining', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('max_students', models.SmallIntegerField(null=True)), ('min_students', models.SmallIntegerField(null=True)), ('session_count', models.SmallIntegerField(null=True)), ('prerequisites', models.TextField(null=True)), ], ), migrations.AddField( model_name='course', name='mode', field=models.PositiveSmallIntegerField(default=1), ), migrations.AlterField( model_name='course', name='difficulty', field=models.SmallIntegerField( choices=[(1, core.models.DifficultyChoice(1) ), (2, core.models.DifficultyChoice(2) ), (3, core.models.DifficultyChoice(3))]), ), migrations.AlterField( model_name='courseprovider', name='logo', field=models.ImageField( blank=True, default=None, null=True, upload_to=learn.models.CourseProvider.GetLogoFilename), ), migrations.AlterField( model_name='courseprovider', name='status', field=models.SmallIntegerField(default=1), ), migrations.AlterField( model_name='instructor', name='photo', field=models.URLField(blank=True, default=None, null=True), ), migrations.AlterField( model_name='instructor', name='url', field=models.URLField(blank=True, default=None, null=True), ), migrations.AddField( model_name='livetraining', name='course', field=models.ForeignKey( on_delete=django.db.models.deletion.PROTECT, to='learn.Course'), ), ]