Coverage for app/venv/lib/python3.14/site-packages/weblate/auth/migrations/0003_fixup_teams.py: 56%
19 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-07 07:15 +0000
1# Copyright © Michal Čihař <michal@weblate.org>
2#
3# SPDX-License-Identifier: GPL-3.0-or-later
5# Generated by Django 4.2.9 on 2024-02-19 09:08
7from django.db import migrations
9from weblate.auth.data import GROUPS
12def migrate_teams(apps, schema_editor) -> None:
13 Group = apps.get_model("weblate_auth", "Group")
14 for name, _roles, _project_selection in GROUPS:
15 offset = 2
16 instances = list(
17 Group.objects.filter(
18 name=name,
19 internal=True,
20 defining_project=None,
21 )
22 )
23 while len(instances) > 1: 23 ↛ 24line 23 didn't jump to line 24 because the condition on line 23 was never true
24 instance = instances.pop()
25 newname = f"{name} ({offset})"
26 while Group.objects.filter(
27 name=newname, internal=True, defining_project=None
28 ).exists():
29 offset += 1
30 newname = f"{name} ({offset})"
32 print(
33 f"Found duplicate team<{instance.pk}>: {name!r}, renaming to {newname!r}"
34 )
35 instance.name = newname
36 instance.save(update_fields=["name"])
39class Migration(migrations.Migration):
40 dependencies = [
41 ("weblate_auth", "0002_squashed_weblate_5"),
42 ]
44 operations = [
45 migrations.RunPython(migrate_teams, migrations.RunPython.noop, elidable=True),
46 ]