From 8899d2537671e3e79037d2245c27468f34e3584d Mon Sep 17 00:00:00 2001 From: Nicolas ROCHE Date: Wed, 14 Oct 2020 14:24:52 +0200 Subject: [PATCH] manager: use selected ou by default in add roles form (#46643) --- src/authentic2/manager/role_views.py | 7 +++++++ .../manager/templates/authentic2/manager/roles.html | 2 +- tests/test_role_manager.py | 8 ++++++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/authentic2/manager/role_views.py b/src/authentic2/manager/role_views.py index fed5957d3..22ba3361d 100644 --- a/src/authentic2/manager/role_views.py +++ b/src/authentic2/manager/role_views.py @@ -89,6 +89,13 @@ class RoleAddView(views.BaseAddView): success_view_name = 'a2-manager-role-members' exclude_fields = ('slug',) + def get_initial(self): + initial = super().get_initial() + search_ou = self.request.GET.get('search-ou') + if search_ou: + initial['ou'] = search_ou + return initial + def get_form_class(self): form = forms.get_role_form_class() fields = [x for x in form.base_fields.keys() if x not in self.exclude_fields] diff --git a/src/authentic2/manager/templates/authentic2/manager/roles.html b/src/authentic2/manager/templates/authentic2/manager/roles.html index f43a052d7..3aa539896 100644 --- a/src/authentic2/manager/templates/authentic2/manager/roles.html +++ b/src/authentic2/manager/templates/authentic2/manager/roles.html @@ -8,7 +8,7 @@ {% if view.can_add %} - {% trans "Add role" %} + {% trans "Add role" %} {% else %} {% trans "Add role" %} {% endif %} diff --git a/tests/test_role_manager.py b/tests/test_role_manager.py index 6afacc66c..b4933853b 100644 --- a/tests/test_role_manager.py +++ b/tests/test_role_manager.py @@ -197,3 +197,11 @@ def test_manager_role_import_selected_ou(app, admin, ou1, ou2): response = response.form.submit() response = response.click('Import') assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2' + + +def test_manager_role_add_selected_ou(app, admin, ou1, ou2): + response = login(app, admin, 'a2-manager-roles') + response.form.set('search-ou', ou2.pk) + response = response.form.submit() + response = response.click('Add role') + assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2'