Files
edx-platform/lms/djangoapps/certificates/migrations/0003_data__default_modes.py

40 lines
1.3 KiB
Python

from django.conf import settings
from django.core.files import File
from django.db import migrations, models
# Converted from the original South migration 0002_default_rate_limit_config.py
def forwards(apps, schema_editor):
"""Add default modes"""
BadgeImageConfiguration = apps.get_model("certificates", "BadgeImageConfiguration")
db_alias = schema_editor.connection.alias
# This will need to be changed if badges/certificates get moved out of the default db for some reason.
if db_alias != 'default':
return
objects = BadgeImageConfiguration.objects.using(db_alias)
if not objects.exists():
for mode in ['honor', 'verified', 'professional']:
conf = objects.create(mode=mode)
file_name = '{}{}'.format(mode, '.png')
conf.icon.save(
f'badges/{file_name}',
File(open(settings.PROJECT_ROOT / 'static' / 'images' / 'default-badges' / file_name, 'rb'))
)
conf.save()
def backwards(apps, schema_editor):
"""Do nothing, assumptions too dangerous."""
pass
class Migration(migrations.Migration):
dependencies = [
('certificates', '0002_data__certificatehtmlviewconfiguration_data'),
]
operations = [
migrations.RunPython(forwards, backwards)
]