summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0079_migrate-importers.py
blob: 3a66ffb3065ebf16acf10eca9c51c5ee90d71fad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
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)
    ]