Projet

Général

Profil

0001-manager-replace-is_active-column-by-an-explicit-ment.patch

Valentin Deniaud, 30 juillet 2020 18:14

Télécharger (2,95 ko)

Voir les différences:

Subject: [PATCH] manager: replace "is_active" column by an explicit mention
 (#45337)

 src/authentic2/manager/tables.py | 18 +++++++++++++++---
 tests/test_user_manager.py       | 12 ++++++++++++
 2 files changed, 27 insertions(+), 3 deletions(-)
src/authentic2/manager/tables.py
36 36
        self.permission = kwargs.pop('permission', None)
37 37
        super(PermissionLinkColumn, self).__init__(viewname, **kwargs)
38 38

  
39
    def render(self, value, record, bound_column):
39
    def render(self, value, record, bound_column, **kwargs):
40 40
        if self.permission:
41 41
            request = StoreRequestMiddleware.get_request()
42 42
            if request and not request.user.has_perm(self.permission, record):
......
56 56
        return value
57 57

  
58 58

  
59
class UserLinkColumn(PermissionLinkColumn):
60
    def render(self, **kwargs):
61
        user = kwargs['record']
62
        value = super().render(**kwargs)
63
        if not user.is_active:
64
            value = html.format_html(
65
                '<span class="disabled">{value} ({disabled})</span>',
66
                value=value, disabled=_('disabled'))
67
        return value
68

  
69

  
70

  
59 71
class UserTable(tables.Table):
60
    link = PermissionLinkColumn(
72
    link = UserLinkColumn(
61 73
        viewname='a2-manager-user-detail',
62 74
        permission='custom_user.view_user',
63 75
        verbose_name=_('User'),
......
72 84
        model = User
73 85
        attrs = {'class': 'main', 'id': 'user-table'}
74 86
        fields = ('username', 'email', 'first_name',
75
                  'last_name', 'is_active', 'ou')
87
                  'last_name', 'ou')
76 88
        sequence = ('link', '...')
77 89
        empty_text = _('None')
78 90
        order_by = ('first_name', 'last_name', 'email', 'username')
tests/test_user_manager.py
734 734
    simple_user.save()
735 735
    resp = app.get('/manage/users/')
736 736
    assert resp.html.find('span', {'class': 'verified'}).text == simple_user.email
737

  
738

  
739
def test_manager_user_link_column_is_active(app, simple_user, superuser_or_admin):
740
    login(app, superuser_or_admin, '/manage/')
741

  
742
    resp = app.get('/manage/users/')
743
    assert not resp.html.find('span', {'class': 'disabled'})
744

  
745
    simple_user.is_active = False
746
    simple_user.save()
747
    resp = app.get('/manage/users/')
748
    assert resp.html.find('span', {'class': 'disabled'}).text == 'Jôhn Dôe (disabled)'
737
-