X-Git-Url: https://git.mdrn.pl/audio.git/blobdiff_plain/69fe4abd2389432ba3f9b017b55d4b8d500c92a0..db4b95766ce00690d38bff256d77fed006abc54d:/src/youtube/migrations/0012_move_thumbnail_definitions.py diff --git a/src/youtube/migrations/0012_move_thumbnail_definitions.py b/src/youtube/migrations/0012_move_thumbnail_definitions.py new file mode 100644 index 0000000..a54cf12 --- /dev/null +++ b/src/youtube/migrations/0012_move_thumbnail_definitions.py @@ -0,0 +1,52 @@ +# 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 + ) + ]