Projet

Général

Profil

0001-manager-use-selected-ou-by-default-in-add-roles-form.patch

Nicolas Roche, 14 octobre 2020 14:56

Télécharger (3,65 ko)

Voir les différences:

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(-)
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
-