0001-manager-allow-filtering-services-by-OU-54190.patch
src/authentic2/manager/forms.py | ||
---|---|---|
594 | 594 |
return qs |
595 | 595 | |
596 | 596 | |
597 |
class ServiceSearchForm(OUSearchForm, NameSearchForm): |
|
598 |
pass |
|
599 | ||
600 | ||
597 | 601 |
class RoleEditForm(SlugMixin, HideOUFieldMixin, LimitQuerysetFormMixin, CssClass, forms.ModelForm): |
598 | 602 |
ou = forms.ModelChoiceField( |
599 | 603 |
queryset=get_ou_model().objects, required=True, label=_('Organizational unit') |
src/authentic2/manager/service_views.py | ||
---|---|---|
26 | 26 |
model = Service |
27 | 27 |
template_name = 'authentic2/manager/services.html' |
28 | 28 |
table_class = tables.ServiceTable |
29 |
search_form_class = forms.NameSearchForm
|
|
29 |
search_form_class = forms.ServiceSearchForm
|
|
30 | 30 |
permissions = ['authentic2.search_service'] |
31 | 31 |
title = _('Services') |
32 | 32 | |
33 |
def get_search_form_kwargs(self): |
|
34 |
kwargs = super().get_search_form_kwargs() |
|
35 |
kwargs['queryset'] = self.get_queryset() |
|
36 |
return kwargs |
|
37 | ||
33 | 38 | |
34 | 39 |
listing = ServicesView.as_view() |
35 | 40 |
tests/test_manager.py | ||
---|---|---|
31 | 31 |
from authentic2.a2_rbac.models import MANAGE_MEMBERS_OP |
32 | 32 |
from authentic2.a2_rbac.utils import get_default_ou |
33 | 33 |
from authentic2.apps.journal.models import Event |
34 |
from authentic2.models import Service |
|
34 | 35 |
from authentic2.validators import EmailValidator |
35 | 36 |
from django_rbac.models import VIEW_OP |
36 | 37 |
from django_rbac.utils import get_operation, get_ou_model, get_permission_model, get_role_model |
... | ... | |
1184 | 1185 |
'ou1 - parent4', |
1185 | 1186 |
'ou2 - parent3', |
1186 | 1187 |
] |
1188 | ||
1189 | ||
1190 |
def test_manager_service_search(app, admin, ou1): |
|
1191 |
Service.objects.create(ou=ou1, slug='test', name='Test Service') |
|
1192 |
Service.objects.create(ou=get_default_ou(), slug='example', name='Example Service') |
|
1193 | ||
1194 |
resp = login(app, admin, 'a2-manager-services') |
|
1195 |
assert 'Test Service' in resp.text |
|
1196 |
assert 'Example Service' in resp.text |
|
1197 | ||
1198 |
resp.form.set('search-text', 'example') |
|
1199 |
resp = resp.form.submit() |
|
1200 |
assert 'Test Service' not in resp.text |
|
1201 |
assert 'Example Service' in resp.text |
|
1202 | ||
1203 |
resp.form.set('search-text', '') |
|
1204 |
resp.form.set('search-ou', ou1.pk) |
|
1205 |
resp = resp.form.submit() |
|
1206 |
assert 'Test Service' in resp.text |
|
1207 |
assert 'Example Service' not in resp.text |
|
1187 |
- |