156 lines
9.1 KiB
Python
156 lines
9.1 KiB
Python
import django.db.models.deletion
|
|
import django.utils.timezone
|
|
import model_utils.fields
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
from opaque_keys.edx.django.models import CourseKeyField
|
|
|
|
import lms.djangoapps.verify_student.models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='HistoricalVerificationDeadline',
|
|
fields=[
|
|
('id', models.IntegerField(verbose_name='ID', db_index=True, auto_created=True, blank=True)),
|
|
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
|
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
|
('course_key', CourseKeyField(help_text='The course for which this deadline applies', max_length=255, db_index=True)),
|
|
('deadline', models.DateTimeField(help_text='The datetime after which users are no longer allowed to submit photos for verification.')),
|
|
('history_id', models.AutoField(serialize=False, primary_key=True)),
|
|
('history_date', models.DateTimeField()),
|
|
('history_type', models.CharField(max_length=1, choices=[('+', 'Created'), ('~', 'Changed'), ('-', 'Deleted')])),
|
|
('history_user', models.ForeignKey(related_name='+', on_delete=django.db.models.deletion.SET_NULL, to=settings.AUTH_USER_MODEL, null=True)),
|
|
],
|
|
options={
|
|
'ordering': ('-history_date', '-history_id'),
|
|
'get_latest_by': 'history_date',
|
|
'verbose_name': 'historical verification deadline',
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='IcrvStatusEmailsConfiguration',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('change_date', models.DateTimeField(auto_now_add=True, verbose_name='Change date')),
|
|
('enabled', models.BooleanField(default=False, verbose_name='Enabled')),
|
|
('changed_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to=settings.AUTH_USER_MODEL, null=True, verbose_name='Changed by')),
|
|
],
|
|
options={
|
|
'ordering': ('-change_date',),
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='InCourseReverificationConfiguration',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('change_date', models.DateTimeField(auto_now_add=True, verbose_name='Change date')),
|
|
('enabled', models.BooleanField(default=False, verbose_name='Enabled')),
|
|
('changed_by', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, editable=False, to=settings.AUTH_USER_MODEL, null=True, verbose_name='Changed by')),
|
|
],
|
|
options={
|
|
'ordering': ('-change_date',),
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='SkippedReverification',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('course_id', CourseKeyField(max_length=255, db_index=True)),
|
|
('created_at', models.DateTimeField(auto_now_add=True)),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='SoftwareSecurePhotoVerification',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('status', model_utils.fields.StatusField(default='created', max_length=100, verbose_name='status', no_check_for_status=True, choices=[('created', 'created'), ('ready', 'ready'), ('submitted', 'submitted'), ('must_retry', 'must_retry'), ('approved', 'approved'), ('denied', 'denied')])),
|
|
('status_changed', model_utils.fields.MonitorField(default=django.utils.timezone.now, verbose_name='status changed', monitor='status')),
|
|
('name', models.CharField(max_length=255, blank=True)),
|
|
('face_image_url', models.URLField(max_length=255, blank=True)),
|
|
('photo_id_image_url', models.URLField(max_length=255, blank=True)),
|
|
('receipt_id', models.CharField(default=lms.djangoapps.verify_student.models.generateUUID, max_length=255, db_index=True)),
|
|
('created_at', models.DateTimeField(auto_now_add=True, db_index=True)),
|
|
('updated_at', models.DateTimeField(auto_now=True, db_index=True)),
|
|
('display', models.BooleanField(default=True, db_index=True)),
|
|
('submitted_at', models.DateTimeField(null=True, db_index=True)),
|
|
('reviewing_service', models.CharField(max_length=255, blank=True)),
|
|
('error_msg', models.TextField(blank=True)),
|
|
('error_code', models.CharField(max_length=50, blank=True)),
|
|
('photo_id_key', models.TextField(max_length=1024)),
|
|
('copy_id_photo_from', models.ForeignKey(blank=True, to='verify_student.SoftwareSecurePhotoVerification', null=True, on_delete=models.CASCADE)),
|
|
('reviewing_user', models.ForeignKey(related_name='photo_verifications_reviewed', default=None, to=settings.AUTH_USER_MODEL, null=True, on_delete=models.CASCADE)),
|
|
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
|
|
],
|
|
options={
|
|
'ordering': ['-created_at'],
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='VerificationCheckpoint',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('course_id', CourseKeyField(max_length=255, db_index=True)),
|
|
('checkpoint_location', models.CharField(max_length=255)),
|
|
('photo_verification', models.ManyToManyField(to='verify_student.SoftwareSecurePhotoVerification')),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='VerificationDeadline',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('created', model_utils.fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False)),
|
|
('modified', model_utils.fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
|
('course_key', CourseKeyField(help_text='The course for which this deadline applies', unique=True, max_length=255, db_index=True)),
|
|
('deadline', models.DateTimeField(help_text='The datetime after which users are no longer allowed to submit photos for verification.')),
|
|
],
|
|
options={
|
|
'abstract': False,
|
|
},
|
|
),
|
|
migrations.CreateModel(
|
|
name='VerificationStatus',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('status', models.CharField(db_index=True, max_length=32, choices=[('submitted', 'submitted'), ('approved', 'approved'), ('denied', 'denied'), ('error', 'error')])),
|
|
('timestamp', models.DateTimeField(auto_now_add=True)),
|
|
('response', models.TextField(null=True, blank=True)),
|
|
('error', models.TextField(null=True, blank=True)),
|
|
('checkpoint', models.ForeignKey(related_name='checkpoint_status', to='verify_student.VerificationCheckpoint', on_delete=models.CASCADE)),
|
|
('user', models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE)),
|
|
],
|
|
options={
|
|
'get_latest_by': 'timestamp',
|
|
'verbose_name': 'Verification Status',
|
|
'verbose_name_plural': 'Verification Statuses',
|
|
},
|
|
),
|
|
migrations.AddField(
|
|
model_name='skippedreverification',
|
|
name='checkpoint',
|
|
field=models.ForeignKey(related_name='skipped_checkpoint', to='verify_student.VerificationCheckpoint', on_delete=models.CASCADE),
|
|
),
|
|
migrations.AddField(
|
|
model_name='skippedreverification',
|
|
name='user',
|
|
field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='verificationcheckpoint',
|
|
unique_together={('course_id', 'checkpoint_location')},
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='skippedreverification',
|
|
unique_together={('user', 'course_id')},
|
|
),
|
|
]
|