manager: replace "is_active" column by an explicit mention (#45337)
This commit is contained in:
parent
0aa8456917
commit
fa80828407
|
@ -36,7 +36,7 @@ class PermissionLinkColumn(tables.LinkColumn):
|
|||
self.permission = kwargs.pop('permission', None)
|
||||
super(PermissionLinkColumn, self).__init__(viewname, **kwargs)
|
||||
|
||||
def render(self, value, record, bound_column):
|
||||
def render(self, value, record, bound_column, **kwargs):
|
||||
if self.permission:
|
||||
request = StoreRequestMiddleware.get_request()
|
||||
if request and not request.user.has_perm(self.permission, record):
|
||||
|
@ -56,8 +56,20 @@ class VerifiableEmailColumn(tables.Column):
|
|||
return value
|
||||
|
||||
|
||||
class UserLinkColumn(PermissionLinkColumn):
|
||||
def render(self, **kwargs):
|
||||
user = kwargs['record']
|
||||
value = super().render(**kwargs)
|
||||
if not user.is_active:
|
||||
value = html.format_html(
|
||||
'<span class="disabled">{value} ({disabled})</span>',
|
||||
value=value, disabled=_('disabled'))
|
||||
return value
|
||||
|
||||
|
||||
|
||||
class UserTable(tables.Table):
|
||||
link = PermissionLinkColumn(
|
||||
link = UserLinkColumn(
|
||||
viewname='a2-manager-user-detail',
|
||||
permission='custom_user.view_user',
|
||||
verbose_name=_('User'),
|
||||
|
@ -72,7 +84,7 @@ class UserTable(tables.Table):
|
|||
model = User
|
||||
attrs = {'class': 'main', 'id': 'user-table'}
|
||||
fields = ('username', 'email', 'first_name',
|
||||
'last_name', 'is_active', 'ou')
|
||||
'last_name', 'ou')
|
||||
sequence = ('link', '...')
|
||||
empty_text = _('None')
|
||||
order_by = ('first_name', 'last_name', 'email', 'username')
|
||||
|
|
|
@ -734,3 +734,15 @@ def test_manager_email_verified_column_user(app, simple_user, superuser_or_admin
|
|||
simple_user.save()
|
||||
resp = app.get('/manage/users/')
|
||||
assert resp.html.find('span', {'class': 'verified'}).text == simple_user.email
|
||||
|
||||
|
||||
def test_manager_user_link_column_is_active(app, simple_user, superuser_or_admin):
|
||||
login(app, superuser_or_admin, '/manage/')
|
||||
|
||||
resp = app.get('/manage/users/')
|
||||
assert not resp.html.find('span', {'class': 'disabled'})
|
||||
|
||||
simple_user.is_active = False
|
||||
simple_user.save()
|
||||
resp = app.get('/manage/users/')
|
||||
assert resp.html.find('span', {'class': 'disabled'}).text == 'Jôhn Dôe (disabled)'
|
||||
|
|
Loading…
Reference in New Issue