summaryrefslogtreecommitdiff
path: root/ishtar_common/migrations/0266_migrate_cached_town.py
blob: e5904a5c5ebc824506c56a4d89f3918d92f4e67b (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
# Generated by Django 2.2.24 on 2025-10-24 12:59

from django.db import migrations


def _generate_cached_town(Town, town):
    if town.precise_town_id:
        return Town.objects.get(id=town.precise_town_id).name
    return town.town or ""


def migrate_cached_towns(apps, __):
    Town = apps.get_model("ishtar_common", "Town")
    Person = apps.get_model("ishtar_common", "Person")
    for person in Person.objects.all():
        Person.objects.filter(pk=person.pk).update(
            cached_town=_generate_cached_town(Town, person),
            cached_person_types=", ".join(pt.label for pt in person.person_types.all()),
            cached_profiles=", ".join(set([p.profile_type.label
                                           for p in person.profiles.all()]))
        )
    Organization = apps.get_model("ishtar_common", "Organization")
    for organization in Organization.objects.all():
        Organization.objects.filter(pk=organization.pk).update(
            cached_town=_generate_cached_town(Town, organization),
        )


class Migration(migrations.Migration):

    dependencies = [
        ('ishtar_common', '0265_cached_town'),
    ]

    operations = [
        migrations.RunPython(migrate_cached_towns)
    ]