Passed
Push — main ( 2c1a84...8b4e52 )
by Jochen
04:45
created

assemble_text_for_user_details_updated()   A

Complexity

Conditions 1

Size

Total Lines 11
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 9
nop 1
dl 0
loc 11
ccs 5
cts 5
cp 1
crap 1
rs 9.95
c 0
b 0
f 0
1
"""
2
byceps.announce.text_assembly.user
3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4
5
Announce user events.
6
7
:Copyright: 2006-2021 Jochen Kupperschmidt
8
:License: Revised BSD (see `LICENSE` file for details)
9
"""
10
11 1
from flask_babel import gettext
12
13 1
from ...events.user import (
14
    UserAccountCreated,
15
    UserAccountDeleted,
16
    UserAccountSuspended,
17
    UserAccountUnsuspended,
18
    UserDetailsUpdated,
19
    UserEmailAddressChanged,
20
    UserEmailAddressInvalidated,
21
    UserScreenNameChanged,
22
)
23 1
from ...services.site import service as site_service
24
25 1
from ._helpers import get_screen_name_or_fallback, with_locale
26
27
28 1
@with_locale
29 1
def assemble_text_for_user_account_created(event: UserAccountCreated) -> str:
30 1
    initiator_screen_name = get_screen_name_or_fallback(
31
        event.initiator_screen_name
32
    )
33 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
34
35 1
    site = None
36 1
    if event.site_id:
37 1
        site = site_service.find_site(event.site_id)
38
39 1
    if site:
40 1
        return gettext(
41
            '%(initiator_screen_name)s has created user account "%(user_screen_name)s" on site "%(site_title)s".',
42
            initiator_screen_name=initiator_screen_name,
43
            user_screen_name=user_screen_name,
44
            site_title=site.title,
45
        )
46
    else:
47 1
        return gettext(
48
            '%(initiator_screen_name)s has created user account "%(user_screen_name)s".',
49
            initiator_screen_name=initiator_screen_name,
50
            user_screen_name=user_screen_name,
51
        )
52
53
54 1
@with_locale
55 1
def assemble_text_for_user_screen_name_changed(
56
    event: UserScreenNameChanged,
57
) -> str:
58 1
    initiator_screen_name = get_screen_name_or_fallback(
59
        event.initiator_screen_name
60
    )
61
62 1
    return gettext(
63
        '%(initiator_screen_name)s has renamed user account "%(old_screen_name)s" to "%(new_screen_name)s".',
64
        initiator_screen_name=initiator_screen_name,
65
        old_screen_name=event.old_screen_name,
66
        new_screen_name=event.new_screen_name,
67
    )
68
69
70 1
@with_locale
71 1
def assemble_text_for_user_email_address_changed(
72
    event: UserEmailAddressChanged,
73
) -> str:
74 1
    initiator_screen_name = get_screen_name_or_fallback(
75
        event.initiator_screen_name
76
    )
77 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
78
79 1
    return gettext(
80
        '%(initiator_screen_name)s has changed the email address of user account "%(user_screen_name)s".',
81
        initiator_screen_name=initiator_screen_name,
82
        user_screen_name=user_screen_name,
83
    )
84
85
86 1
@with_locale
87 1
def assemble_text_for_user_email_address_invalidated(
88
    event: UserEmailAddressInvalidated,
89
) -> str:
90 1
    initiator_screen_name = get_screen_name_or_fallback(
91
        event.initiator_screen_name
92
    )
93 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
94
95 1
    return gettext(
96
        '%(initiator_screen_name)s has invalidated the email address of user account "%(user_screen_name)s".',
97
        initiator_screen_name=initiator_screen_name,
98
        user_screen_name=user_screen_name,
99
    )
100
101
102 1
@with_locale
103 1
def assemble_text_for_user_details_updated(event: UserDetailsUpdated) -> str:
104 1
    initiator_screen_name = get_screen_name_or_fallback(
105
        event.initiator_screen_name
106
    )
107 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
108
109 1
    return gettext(
110
        '%(initiator_screen_name)s has changed personal data of user account "%(user_screen_name)s".',
111
        initiator_screen_name=initiator_screen_name,
112
        user_screen_name=user_screen_name,
113
    )
114
115
116 1
@with_locale
117 1
def assemble_text_for_user_account_suspended(
118
    event: UserAccountSuspended,
119
) -> str:
120 1
    initiator_screen_name = get_screen_name_or_fallback(
121
        event.initiator_screen_name
122
    )
123 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
124
125 1
    return gettext(
126
        '%(initiator_screen_name)s has suspended user account "%(user_screen_name)s".',
127
        initiator_screen_name=initiator_screen_name,
128
        user_screen_name=user_screen_name,
129
    )
130
131
132 1
@with_locale
133 1
def assemble_text_for_user_account_unsuspended(
134
    event: UserAccountUnsuspended,
135
) -> str:
136 1
    initiator_screen_name = get_screen_name_or_fallback(
137
        event.initiator_screen_name
138
    )
139 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
140
141 1
    return gettext(
142
        '%(initiator_screen_name)s has unsuspended user account "%(user_screen_name)s".',
143
        initiator_screen_name=initiator_screen_name,
144
        user_screen_name=user_screen_name,
145
    )
146
147
148 1
@with_locale
149 1
def assemble_text_for_user_account_deleted(event: UserAccountDeleted) -> str:
150 1
    initiator_screen_name = get_screen_name_or_fallback(
151
        event.initiator_screen_name
152
    )
153 1
    user_screen_name = get_screen_name_or_fallback(event.user_screen_name)
154
155 1
    return gettext(
156
        '%(initiator_screen_name)s has deleted user account "%(user_screen_name)s" (ID "%(user_id)s").',
157
        initiator_screen_name=initiator_screen_name,
158
        user_screen_name=user_screen_name,
159
        user_id=event.user_id,
160
    )
161