--- /dev/null
+# Generated by Django 3.0.6 on 2020-07-03 17:18
+
+from django.db import migrations
+import yaml
+
+
+def generate_versions(version_lists):
+ if not version_lists:
+ yield []
+ else:
+ for subversion in generate_versions(version_lists[1:]):
+ for version in version_lists[0]:
+ yield [version] + subversion
+
+
+def move_definitions(apps, schema_editor):
+ YouTube = apps.get_model('youtube', 'YouTube')
+ ThumbnailTemplate = apps.get_model('youtube', 'ThumbnailTemplate')
+ order = 1
+ for youtube in YouTube.objects.all():
+ src_def = yaml.load(youtube.thumbnail_definition)
+ version_lists = [
+ box['versions']
+ for box in src_def['boxes']
+ ]
+ for version in generate_versions(version_lists):
+ defn = yaml.dump(
+ {"boxes": version},
+ allow_unicode=True,
+ default_flow_style=False
+ )
+ ThumbnailTemplate.objects.create(
+ order=order,
+ is_active=True,
+ background=youtube.thumbnail_template,
+ definition=defn,
+ )
+ order += 1
+
+
+class Migration(migrations.Migration):
+
+ dependencies = [
+ ('youtube', '0011_thumbnailtemplate'),
+ ]
+
+ operations = [
+ migrations.RunPython(
+ move_definitions,
+ migrations.RunPython.noop
+ )
+ ]