Coverage for app/venv/lib/python3.14/site-packages/weblate/accounts/data.py: 85%
9 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
4from __future__ import annotations
6from typing import TYPE_CHECKING
8from weblate.accounts.notifications import NotificationFrequency, NotificationScope
10if TYPE_CHECKING: 10 ↛ 11line 10 didn't jump to line 11 because the condition on line 10 was never true
11 from weblate.auth.models import User
13DEFAULT_NOTIFICATIONS = [
14 (
15 NotificationScope.SCOPE_ALL,
16 NotificationFrequency.FREQ_INSTANT,
17 "MentionCommentNotificaton",
18 ),
19 (
20 NotificationScope.SCOPE_WATCHED,
21 NotificationFrequency.FREQ_INSTANT,
22 "LastAuthorCommentNotificaton",
23 ),
24 (
25 NotificationScope.SCOPE_WATCHED,
26 NotificationFrequency.FREQ_INSTANT,
27 "MentionCommentNotificaton",
28 ),
29 (
30 NotificationScope.SCOPE_WATCHED,
31 NotificationFrequency.FREQ_INSTANT,
32 "NewAnnouncementNotificaton",
33 ),
34 (
35 NotificationScope.SCOPE_WATCHED,
36 NotificationFrequency.FREQ_WEEKLY,
37 "NewStringNotificaton",
38 ),
39 (
40 NotificationScope.SCOPE_ADMIN,
41 NotificationFrequency.FREQ_INSTANT,
42 "MergeFailureNotification",
43 ),
44 (
45 NotificationScope.SCOPE_ADMIN,
46 NotificationFrequency.FREQ_INSTANT,
47 "ParseErrorNotification",
48 ),
49 (
50 NotificationScope.SCOPE_ADMIN,
51 NotificationFrequency.FREQ_INSTANT,
52 "NewTranslationNotificaton",
53 ),
54 (
55 NotificationScope.SCOPE_ADMIN,
56 NotificationFrequency.FREQ_INSTANT,
57 "NewAlertNotificaton",
58 ),
59 (
60 NotificationScope.SCOPE_ADMIN,
61 NotificationFrequency.FREQ_INSTANT,
62 "NewAnnouncementNotificaton",
63 ),
64]
67def create_default_notifications(user: User) -> None:
68 for scope, frequency, notification in DEFAULT_NOTIFICATIONS:
69 user.subscription_set.get_or_create(
70 scope=scope, notification=notification, defaults={"frequency": frequency}
71 )