diff options
| author | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
|---|---|---|
| committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2019-01-11 16:19:59 +0100 | 
| commit | 1e05946531d237dc954f46ddfc25a6b61c084a74 (patch) | |
| tree | 8b9137dd9b68121db86e4e22dfdb7b7016a6f1ad /ishtar_common/migrations/0079_migrate-importers.py | |
| parent | 4779acd3006e6d6b17babd13585a4d83fb8d2332 (diff) | |
| parent | 9eced41d76545bd2921605b7b81bd14b875ce541 (diff) | |
| download | Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.tar.bz2 Ishtar-1e05946531d237dc954f46ddfc25a6b61c084a74.zip | |
Merge branch 'develop'
Diffstat (limited to 'ishtar_common/migrations/0079_migrate-importers.py')
| -rw-r--r-- | ishtar_common/migrations/0079_migrate-importers.py | 70 | 
1 files changed, 70 insertions, 0 deletions
| diff --git a/ishtar_common/migrations/0079_migrate-importers.py b/ishtar_common/migrations/0079_migrate-importers.py new file mode 100644 index 000000000..3a66ffb30 --- /dev/null +++ b/ishtar_common/migrations/0079_migrate-importers.py @@ -0,0 +1,70 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.10 on 2018-12-13 15:13 +from __future__ import unicode_literals + +from django.db import migrations + + +def migrate_importer(apps, schema): +    ImporterDuplicateField = apps.get_model('ishtar_common', +                                            'ImporterDuplicateField') +    ImportTarget = apps.get_model('ishtar_common', 'ImportTarget') + +    idx = 0 +    for k, model in (('field_name', ImporterDuplicateField), +                     ('target', ImportTarget),): +        q = model.objects.filter( +            **{k + "__icontains": 'container'} +        ).exclude( +            **{k + "__icontains": 'container_ref'} +        ) +        for item in q.all(): +            value = getattr(item, k).replace( +                'container', 'container_ref').replace( +                'container_ref_type', 'container_type') + +            dup_dct = {"column": item.column, +                       "field_name": value} +            q2 = ImporterDuplicateField.objects.filter( +                **dup_dct +            ) +            if q2.count(): +                continue +            idx += 1 +            if item.concat_str: +                dup_dct['concat_str'] = item.concat_str +            if item.concat: +                dup_dct['concat'] = item.concat +            ImporterDuplicateField.objects.create(**dup_dct) +        q = model.objects.filter( +            **{k + "__icontains": 'set_localisation'} +        ) +        for item in q.all(): +            value = getattr(item, k).replace( +                'set_localisation', 'set_reference_localisation') +            dup_dct = {"column": item.column, +                       "field_name": value} +            q2 = ImporterDuplicateField.objects.filter( +                **dup_dct +            ) +            if q2.count(): +                continue +            idx += 1 +            if item.concat_str: +                dup_dct['concat_str'] = item.concat_str +            if item.concat: +                dup_dct['concat'] = item.concat +            ImporterDuplicateField.objects.create(**dup_dct) + +    print("{} dup field created".format(idx)) + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('ishtar_common', '0078_auto_20181203_1442'), +    ] + +    operations = [ +        migrations.RunPython(migrate_importer) +    ] | 
