Skip to content

Commit 3c40f7f

Browse files
committed
improved migrations
1 parent 0145999 commit 3c40f7f

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

django/gsmap/migrations/0043_default_groups_and_permissions.py

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -7,15 +7,22 @@ def apply_migration(apps, schema_editor):
77
db_alias = schema_editor.connection.alias
88

99
Group = apps.get_model("auth", "Group")
10-
Group.objects.using(db_alias).bulk_create(
11-
[
12-
Group(name="core/participation"),
13-
Group(name="core/areamanagement"),
14-
Group(name="default"),
15-
]
16-
)
10+
Permission = apps.get_model("auth", "Permission")
11+
default_groups = [
12+
Group(name="core/participation"),
13+
Group(name="core/areamanagement"),
14+
Group(name="default"),
15+
]
16+
17+
for g in default_groups:
18+
Group.objects.using(db_alias).get_or_create(name=g.name)
1719

18-
permissions = ['view_workspace','view_annotation','view_category', 'view_usergroup']
20+
permissions = [
21+
Permission.objects.get(codename='view_workspace'),
22+
Permission.objects.get(codename='view_annotation'),
23+
Permission.objects.get(codename='view_category'),
24+
Permission.objects.get(codename='view_usergroup'),
25+
]
1926

2027
default = Group.objects.using(db_alias).get(name="default")
2128
core_p_group = Group.objects.using(db_alias).get(name="core/participation")
@@ -33,16 +40,13 @@ def apply_migration(apps, schema_editor):
3340
core_a_group.user_set.add(*users)
3441

3542
Category = apps.get_model("gsmap", "Category")
36-
categories = Category.objects.using(db_alias).filter(group=None).all()
37-
for i, c in enumerate(categories):
38-
categories[i].group = default
39-
Category.objects.using(db_alias).bulk_update(categories, ["group"])
43+
Category.objects.using(db_alias).filter(group=None).update(group=default)
4044

4145
Workspace = apps.get_model("gsmap", "Workspace")
42-
Workspace.objects.using(db_alias).filter(group=None).bulk_update(group=default)
46+
Workspace.objects.using(db_alias).filter(group=None).update(group=default)
4347

4448
Usergroup = apps.get_model("gsmap", "Usergroup")
45-
Usergroup.objects.using(db_alias).filter(group=None).bulk_update(group=default)
49+
Usergroup.objects.using(db_alias).filter(group=None).update(group=default)
4650

4751
def revert_migration(apps, schema_editor):
4852
Group = apps.get_model("auth", "Group")

0 commit comments

Comments
 (0)