From 1571ad539337a3f8d6b14eb4d432fee109e4a686 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Sat, 29 Jan 2022 08:32:09 +0100 Subject: [PATCH 3/3] manager: remove possibility of rel=popup on table rows (#59991) --- src/authentic2/manager/tables.py | 5 ++++- .../templates/authentic2/manager/table.html | 8 +------- tests/test_manager.py | 16 ++++++++++------ 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/src/authentic2/manager/tables.py b/src/authentic2/manager/tables.py index f625e6bf..bb1a29ce 100644 --- a/src/authentic2/manager/tables.py +++ b/src/authentic2/manager/tables.py @@ -226,7 +226,10 @@ class UserRolesTable(Table): class ServiceTable(Table): name = tables.LinkColumn( - viewname='a2-manager-service', kwargs={'pk': A('pk')}, accessor='name', verbose_name=_('label') + viewname='a2-manager-service', + kwargs={'service_pk': A('pk')}, + accessor='name', + verbose_name=_('label'), ) ou = tables.Column() slug = tables.Column() diff --git a/src/authentic2/manager/templates/authentic2/manager/table.html b/src/authentic2/manager/templates/authentic2/manager/table.html index 71e3d477..83fee36e 100644 --- a/src/authentic2/manager/templates/authentic2/manager/table.html +++ b/src/authentic2/manager/templates/authentic2/manager/table.html @@ -19,13 +19,7 @@ {% endblock table.thead %} {% block table.tbody.row %} - + {% for column, cell in row.items %} {% if column.localize == None %}{{ cell }}{% else %}{% if column.localize %}{{ cell|localize }}{% else %}{{ cell|unlocalize }}{% endif %}{% endif %} {% endfor %} diff --git a/tests/test_manager.py b/tests/test_manager.py index b78e6b08..1281de2c 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -37,7 +37,7 @@ from authentic2.validators import EmailValidator from django_rbac.models import VIEW_OP from django_rbac.utils import get_operation -from .utils import assert_event, get_link_from_mail, login, request_select2 +from .utils import assert_event, get_link_from_mail, login, request_select2, text_content pytestmark = pytest.mark.django_db @@ -795,7 +795,7 @@ def test_manager_homepage_import_export_hidden(admin, app): def test_manager_ou(app, superuser_or_admin, ou1): manager_home_page = login(app, superuser_or_admin, reverse('a2-manager-homepage')) ou_homepage = manager_home_page.click(href='organizational-units') - assert {e.text for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit'} + assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit'} assert [x.text for x in ou_homepage.pyquery('td.slug')] == ['default', 'ou1'] # add a new ou @@ -804,9 +804,13 @@ def test_manager_ou(app, superuser_or_admin, ou1): add_ou_page.form.set('default', True) ou_homepage = add_ou_page.form.submit().follow() ou2 = OU.objects.get(name='ou2') - assert {e.text for e in ou_homepage.pyquery('td.name')} == {'OU1', 'Default organizational unit', 'ou2'} + assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == { + 'OU1', + 'Default organizational unit', + 'ou2', + } assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % ou2.pk)) == 1 - assert len(ou_homepage.pyquery('tr[data-url="%s"] td.default span.true' % ou2.get_absolute_url())) == 1 + assert len(ou_homepage.pyquery('tr td a[href="%s"]' % ou2.get_absolute_url())) == 1 # FIXME: table lines are not clickable as they do not contain an anchor # default ou cannot be deleted @@ -817,7 +821,7 @@ def test_manager_ou(app, superuser_or_admin, ou1): ou1_detail_page = app.get(reverse('a2-manager-ou-detail', kwargs={'pk': ou1.pk})) ou1_delete_page = ou1_detail_page.click('Delete') ou_homepage = ou1_delete_page.form.submit().follow() - assert {e.text for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'} + assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'} # remake old default ou the default one old_default = OU.objects.get(name__contains='Default') @@ -830,7 +834,7 @@ def test_manager_ou(app, superuser_or_admin, ou1): assert old_default_detail_page.pyquery('input[name="default"][checked="checked"]') # check ou homepage has changed too ou_homepage = old_default_detail_page.click('Organizational unit') - assert {e.text for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'} + assert {text_content(e) for e in ou_homepage.pyquery('td.name')} == {'Default organizational unit', 'ou2'} assert len(ou_homepage.pyquery('span.true')) == 1 assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % ou2.pk)) == 0 assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % old_default.pk)) == 1 -- 2.34.1