Coverage for app/venv/lib/python3.14/site-packages/weblate/auth/management/commands/setupgroups.py: 0%

17 statements  

« 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 

4from __future__ import annotations 

5 

6from typing import TYPE_CHECKING 

7 

8from weblate.auth.models import create_groups, setup_project_groups 

9from weblate.trans.models import Project 

10from weblate.utils.management.base import BaseCommand 

11 

12if TYPE_CHECKING: 

13 from django.core.management.base import CommandParser 

14 

15 

16class Command(BaseCommand): 

17 help = "setups default user groups" 

18 

19 def add_arguments(self, parser: CommandParser) -> None: 

20 parser.add_argument( 

21 "--no-privs-update", 

22 action="store_false", 

23 dest="update", 

24 default=True, 

25 help="Prevents updates of privileges of existing groups", 

26 ) 

27 parser.add_argument( 

28 "--no-projects-update", 

29 action="store_false", 

30 dest="projects", 

31 default=True, 

32 help="Prevents updates of groups for existing projects", 

33 ) 

34 

35 def handle(self, *args, **options) -> None: 

36 """ 

37 Create or update default set of groups. 

38 

39 It also optionally updates them and moves users around to default group. 

40 """ 

41 create_groups(options["update"]) 

42 if options["projects"]: 

43 for project in Project.objects.iterator(): 

44 setup_project_groups(Project, project)