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'