0001-manager-use-selected-ou-by-default-in-add-roles-form.patch
src/authentic2/manager/role_views.py | ||
---|---|---|
84 | 84 | |
85 | 85 |
class RoleAddView(views.BaseAddView): |
86 | 86 |
template_name = 'authentic2/manager/role_add.html' |
87 | 87 |
model = get_role_model() |
88 | 88 |
title = _('Add role') |
89 | 89 |
success_view_name = 'a2-manager-role-members' |
90 | 90 |
exclude_fields = ('slug',) |
91 | 91 | |
92 |
def get_initial(self): |
|
93 |
initial = super().get_initial() |
|
94 |
search_ou = self.request.GET.get('search-ou') |
|
95 |
if search_ou: |
|
96 |
initial['ou'] = search_ou |
|
97 |
return initial |
|
98 | ||
92 | 99 |
def get_form_class(self): |
93 | 100 |
form = forms.get_role_form_class() |
94 | 101 |
fields = [x for x in form.base_fields.keys() if x not in self.exclude_fields] |
95 | 102 |
return modelform_factory(self.model, form=form, fields=fields) |
96 | 103 | |
97 | 104 |
def form_valid(self, form): |
98 | 105 |
response = super(RoleAddView, self).form_valid(form) |
99 | 106 |
hooks.call_hooks('event', name='manager-add-role', user=self.request.user, |
src/authentic2/manager/templates/authentic2/manager/roles.html | ||
---|---|---|
3 | 3 | |
4 | 4 |
{% block page-title %}{{ block.super }} - {% trans "Roles" %}{% endblock %} |
5 | 5 | |
6 | 6 |
{% block appbar %} |
7 | 7 |
{{ block.super }} |
8 | 8 |
<span class="actions"> |
9 | 9 |
<a class="extra-actions-menu-opener"></a> |
10 | 10 |
{% if view.can_add %} |
11 |
<a href="{% url "a2-manager-role-add" %}" rel="popup">{% trans "Add role" %}</a>
|
|
11 |
<a href="{% url 'a2-manager-role-add' %}?{{ request.GET.urlencode }}" rel="popup">{% trans "Add role" %}</a>
|
|
12 | 12 |
{% else %} |
13 | 13 |
<a href="#" class="disabled" rel="popup">{% trans "Add role" %}</a> |
14 | 14 |
{% endif %} |
15 | 15 |
<ul class="extra-actions-menu"> |
16 | 16 |
<li><a download href="{% url 'a2-manager-roles-export' format="json" %}?{{ request.GET.urlencode }}">{% trans 'Export' %}</a></li> |
17 | 17 |
{% if view.can_add %} |
18 | 18 |
<li><a href="{% url 'a2-manager-roles-import' %}?{{ request.GET.urlencode }}" rel="popup">{% trans 'Import' %}</a></li> |
19 | 19 |
{% endif %} |
tests/test_role_manager.py | ||
---|---|---|
192 | 192 | |
193 | 193 | |
194 | 194 |
def test_manager_role_import_selected_ou(app, admin, ou1, ou2): |
195 | 195 |
response = login(app, admin, 'a2-manager-roles') |
196 | 196 |
response.form.set('search-ou', ou2.pk) |
197 | 197 |
response = response.form.submit() |
198 | 198 |
response = response.click('Import') |
199 | 199 |
assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2' |
200 | ||
201 | ||
202 |
def test_manager_role_add_selected_ou(app, admin, ou1, ou2): |
|
203 |
response = login(app, admin, 'a2-manager-roles') |
|
204 |
response.form.set('search-ou', ou2.pk) |
|
205 |
response = response.form.submit() |
|
206 |
response = response.click('Add role') |
|
207 |
assert response.pyquery.find('select#id_ou option[selected]')[0].text == 'OU2' |
|
200 |
- |