* Use full LMS imports paths in LMS settings and urls modules * Use full LMS import paths in Studio settings and urls modules * Import from lms.djangoapps.badges instead of badges * Import from lms.djangoapps.branding instead of branding * Import from lms.djangoapps.bulk_email instead of bulk_email * Import from lms.djangoapps.bulk_enroll instead of bulk_enroll * Import from lms.djangoapps.ccx instead of ccx * Import from lms.djangoapps.course_api instead of course_api * Import from lms.djangoapps.course_blocks instead of course_blocks * Import from lms.djangoapps.course_wiki instead of course_wiki * Import from lms.djangoapps.courseware instead of courseware * Import from lms.djangoapps.dashboard instead of dashboard * Import from lms.djangoapps.discussion import discussion * Import from lms.djangoapps.email_marketing instead of email_marketing * Import from lms.djangoapps.experiments instead of experiments * Import from lms.djangoapps.gating instead of gating * Import from lms.djangoapps.grades instead of grades * Import from lms.djangoapps.instructor_analytics instead of instructor_analytics * Import form lms.djangoapps.lms_xblock instead of lms_xblock * Import from lms.djangoapps.lti_provider instead of lti_provider * Import from lms.djangoapps.mobile_api instead of mobile_api * Import from lms.djangoapps.rss_proxy instead of rss_proxy * Import from lms.djangoapps.static_template_view instead of static_template_view * Import from lms.djangoapps.survey instead of survey * Import from lms.djangoapps.verify_student instead of verify_student * Stop suppressing EdxPlatformDeprecatedImportWarnings
71 lines
3.5 KiB
Python
71 lines
3.5 KiB
Python
# -*- coding: utf-8 -*-
|
|
|
|
|
|
import django.utils.timezone
|
|
import jsonfield.fields
|
|
from django.conf import settings
|
|
from django.db import migrations, models
|
|
from model_utils import fields
|
|
from opaque_keys.edx.django.models import CourseKeyField
|
|
|
|
from lms.djangoapps.badges import models as badges_models
|
|
|
|
|
|
class Migration(migrations.Migration):
|
|
|
|
dependencies = [
|
|
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
|
|
]
|
|
|
|
operations = [
|
|
migrations.CreateModel(
|
|
name='BadgeAssertion',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('data', jsonfield.fields.JSONField()),
|
|
('backend', models.CharField(max_length=50)),
|
|
('image_url', models.URLField()),
|
|
('assertion_url', models.URLField()),
|
|
('modified', fields.AutoLastModifiedField(default=django.utils.timezone.now, verbose_name='modified', editable=False)),
|
|
('created', fields.AutoCreatedField(default=django.utils.timezone.now, verbose_name='created', editable=False, db_index=True)),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='BadgeClass',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('slug', models.SlugField(max_length=255, validators=[badges_models.validate_lowercase])),
|
|
('issuing_component', models.SlugField(default=u'', blank=True, validators=[badges_models.validate_lowercase])),
|
|
('display_name', models.CharField(max_length=255)),
|
|
('course_id', CourseKeyField(default=None, max_length=255, blank=True)),
|
|
('description', models.TextField()),
|
|
('criteria', models.TextField()),
|
|
('mode', models.CharField(default=u'', max_length=100, blank=True)),
|
|
('image', models.ImageField(upload_to=u'badge_classes', validators=[badges_models.validate_badge_image])),
|
|
],
|
|
),
|
|
migrations.CreateModel(
|
|
name='CourseCompleteImageConfiguration',
|
|
fields=[
|
|
('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)),
|
|
('mode', models.CharField(help_text='The course mode for this badge image. For example, "verified" or "honor".', unique=True, max_length=125)),
|
|
('icon', models.ImageField(help_text='Badge images must be square PNG files. The file size should be under 250KB.', upload_to=u'course_complete_badges', validators=[badges_models.validate_badge_image])),
|
|
('default', models.BooleanField(default=False, help_text='Set this value to True if you want this image to be the default image for any course modes that do not have a specified badge image. You can have only one default image.')),
|
|
],
|
|
),
|
|
migrations.AlterUniqueTogether(
|
|
name='badgeclass',
|
|
unique_together=set([('slug', 'issuing_component', 'course_id')]),
|
|
),
|
|
migrations.AddField(
|
|
model_name='badgeassertion',
|
|
name='badge_class',
|
|
field=models.ForeignKey(to='badges.BadgeClass', on_delete=models.CASCADE),
|
|
),
|
|
migrations.AddField(
|
|
model_name='badgeassertion',
|
|
name='user',
|
|
field=models.ForeignKey(to=settings.AUTH_USER_MODEL, on_delete=models.CASCADE),
|
|
),
|
|
]
|