0003_data__default_modes.py 1.36 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

# Converted from the original South migration 0002_default_rate_limit_config.py

from django.db import migrations, models
from django.conf import settings
from django.core.files import File

def forwards(apps, schema_editor):
    """Add default modes"""
12
    BadgeImageConfiguration = apps.get_model("certificates", "BadgeImageConfiguration")
13 14 15 16 17
    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)
18 19 20
    if not objects.exists():
        for mode in ['honor', 'verified', 'professional']:
            conf = objects.create(mode=mode)
21 22 23 24 25 26 27 28
            file_name = '{0}{1}'.format(mode, '.png')
            conf.icon.save(
                'badges/{}'.format(file_name),
                File(open(settings.PROJECT_ROOT / 'static' / 'images' / 'default-badges' / file_name))
            )

            conf.save()

29 30 31
def backwards(apps, schema_editor):
    """Do nothing, assumptions too dangerous."""
    pass
32 33 34 35 36 37 38 39

class Migration(migrations.Migration):

    dependencies = [
        ('certificates', '0002_data__certificatehtmlviewconfiguration_data'),
    ]

    operations = [
40
        migrations.RunPython(forwards, backwards)
41
    ]