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')
|