manager: handle data-pk row attribute at view level (#59664)

This commit is contained in:
Valentin Deniaud 2021-12-20 16:40:44 +01:00
parent abf3ca8038
commit bd437ddafb
2 changed files with 29 additions and 25 deletions

View File

@ -30,6 +30,11 @@ from authentic2_idp_oidc.models import OIDCAuthorization
User = get_user_model()
class Table(tables.Table):
class Meta:
row_attrs = {"data-pk": lambda record: record.pk}
class PermissionLinkColumn(tables.LinkColumn):
def render(self, value, record, bound_column, **kwargs):
request = StoreRequestMiddleware.get_request()
@ -60,7 +65,7 @@ class UserLinkColumn(PermissionLinkColumn):
return value
class UserTable(tables.Table):
class UserTable(Table):
link = UserLinkColumn(
verbose_name=_('User'),
accessor='get_full_name',
@ -70,7 +75,7 @@ class UserTable(tables.Table):
email = VerifiableEmailColumn()
ou = tables.Column()
class Meta:
class Meta(Table.Meta):
model = User
attrs = {'class': 'main', 'id': 'user-table'}
fields = ('username', 'email', 'first_name', 'last_name', 'ou')
@ -99,18 +104,18 @@ class UserOrRoleColumn(UserLinkColumn):
return value
class MixedUserRoleTable(tables.Table):
class MixedUserRoleTable(Table):
name = UserOrRoleColumn(
verbose_name=_('Members'),
text=str,
orderable=False,
)
class Meta:
class Meta(Table.Meta):
attrs = {'class': 'main', 'id': 'user-table'}
class RoleTable(tables.Table):
class RoleTable(Table):
name = tables.LinkColumn(
viewname='a2-manager-role-members', kwargs={'pk': A('pk')}, accessor='name', verbose_name=_('label')
)
@ -123,36 +128,36 @@ class RoleTable(tables.Table):
content = SafeText('%s (%s)' % (content, _('LDAP')))
return content
class Meta:
class Meta(Table.Meta):
model = Role
attrs = {'class': 'main', 'id': 'role-table'}
fields = ('name', 'slug', 'ou', 'member_count')
class PermissionTable(tables.Table):
class PermissionTable(Table):
operation = tables.Column()
scope = tables.Column()
target = tables.Column()
class Meta:
class Meta(Table.Meta):
model = Permission
attrs = {'class': 'main', 'id': 'role-table'}
fields = ('operation', 'scope', 'target')
empty_text = _('None')
class OUTable(tables.Table):
class OUTable(Table):
name = tables.Column(verbose_name=_('label'))
default = tables.BooleanColumn()
class Meta:
class Meta(Table.Meta):
model = OrganizationalUnit
attrs = {'class': 'main', 'id': 'ou-table'}
fields = ('name', 'slug', 'default')
empty_text = _('None')
class OuUserRolesTable(tables.Table):
class OuUserRolesTable(Table):
name = tables.LinkColumn(
viewname='a2-manager-role-members', kwargs={'pk': A('pk')}, accessor='name', verbose_name=_('label')
)
@ -180,7 +185,7 @@ class OuUserRolesTable(tables.Table):
content = SafeText('%s (%s)' % (content, _('LDAP')))
return content
class Meta:
class Meta(Table.Meta):
model = Role
attrs = {'class': 'main plaintable', 'id': 'role-table'}
fields = ('name', 'ou')
@ -188,7 +193,7 @@ class OuUserRolesTable(tables.Table):
order_by = ('name',)
class UserRolesTable(tables.Table):
class UserRolesTable(Table):
name = tables.LinkColumn(
viewname='a2-manager-role-members', kwargs={'pk': A('pk')}, accessor='name', verbose_name=_('label')
)
@ -206,7 +211,7 @@ class UserRolesTable(tables.Table):
content = SafeText('%s (%s)' % (content, _('LDAP')))
return content
class Meta:
class Meta(Table.Meta):
model = Role
attrs = {'class': 'main', 'id': 'role-table'}
fields = ('name', 'ou')
@ -214,12 +219,12 @@ class UserRolesTable(tables.Table):
order_by = ('name', 'ou')
class ServiceTable(tables.Table):
class ServiceTable(Table):
ou = tables.Column()
name = tables.Column()
slug = tables.Column()
class Meta:
class Meta(Table.Meta):
model = Service
attrs = {'class': 'main', 'id': 'service-table'}
fields = ('ou', 'name', 'slug')
@ -227,29 +232,29 @@ class ServiceTable(tables.Table):
order_by = ('ou', 'name', 'slug')
class ServiceRolesTable(tables.Table):
class ServiceRolesTable(Table):
name = tables.Column(accessor='name', verbose_name=_('name'))
class Meta:
class Meta(Table.Meta):
model = Role
attrs = {'class': 'main', 'id': 'service-role-table'}
fields = ('name',)
empty_text = _('No access restriction. All users are allowed to connect to this service.')
class UserAuthorizationsTable(tables.Table):
class UserAuthorizationsTable(Table):
client = tables.Column(orderable=False)
created = tables.Column()
expired = tables.Column()
class Meta:
class Meta(Table.Meta):
model = OIDCAuthorization
attrs = {'class': 'main plaintable', 'id': 'user-authorizations-table'}
fields = ('client', 'created', 'expired')
empty_text = _('This user has not granted profile data access to any service yet.')
class InheritanceRolesTable(tables.Table):
class InheritanceRolesTable(Table):
name = tables.LinkColumn(
viewname='a2-manager-role-members', kwargs={'pk': A('pk')}, accessor='name', verbose_name=_('label')
)
@ -264,7 +269,7 @@ class InheritanceRolesTable(tables.Table):
verbose_name='',
)
class Meta:
class Meta(Table.Meta):
model = Role
attrs = {'class': 'main plaintable', 'id': 'inheritance-role-table'}
fields = ('name', 'ou')

View File

@ -20,6 +20,7 @@
{% block table.tbody.row %}
<tr
{{ row.attrs.as_html }}
{% if table.context.row_link %}
{% if popup_edit %}
rel="popup"
@ -29,9 +30,7 @@
{% else %}
data-url="{{ row.record.pk }}/"
{% endif %}
{% endif %}
data-pk="{{ row.record.id }}"
class="{{ forloop.counter|divisibleby:2|yesno:"even,odd" }}">
{% endif %}>
{% for column, cell in row.items %}
<td {{ column.attrs.td.as_html }}>{% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %}</td>
{% endfor %}