manager: allow ou slug edition (#46655)
This commit is contained in:
parent
9a07dc2a18
commit
03f2b80a98
|
@ -626,7 +626,7 @@ class OUEditForm(SlugMixin, CssClass, forms.ModelForm):
|
|||
class Meta:
|
||||
model = get_ou_model()
|
||||
fields = (
|
||||
'name', 'default', 'username_is_unique', 'email_is_unique', 'validate_emails',
|
||||
'name', 'slug', 'default', 'username_is_unique', 'email_is_unique', 'validate_emails',
|
||||
'show_username', 'user_can_reset_password', 'user_add_password_policy',
|
||||
'clean_unused_accounts_alert', 'clean_unused_accounts_deletion'
|
||||
)
|
||||
|
|
|
@ -47,6 +47,11 @@ class OrganizationalUnitAddView(views.BaseAddView):
|
|||
permissions = ['a2_rbac.add_organizationalunit']
|
||||
form_class = forms.OUEditForm
|
||||
title = _('Add organizational unit')
|
||||
exclude_fields = ('slug',)
|
||||
|
||||
def get_fields(self):
|
||||
return [x for x in self.form_class.base_fields.keys()
|
||||
if x not in self.exclude_fields]
|
||||
|
||||
def get_success_url(self):
|
||||
return '..'
|
||||
|
|
|
@ -137,7 +137,7 @@ class OUTable(tables.Table):
|
|||
class Meta:
|
||||
model = get_ou_model()
|
||||
attrs = {'class': 'main', 'id': 'ou-table'}
|
||||
fields = ('name', 'default')
|
||||
fields = ('name', 'slug', 'default')
|
||||
empty_text = _('None')
|
||||
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@ def test_manager_login(superuser_or_admin, app):
|
|||
def test_manager_create_ou(superuser_or_admin, app):
|
||||
ou_add = login(app, superuser_or_admin, path=reverse('a2-manager-ou-add'))
|
||||
form = ou_add.form
|
||||
assert 'name' in form.fields
|
||||
assert 'slug' not in form.fields
|
||||
form.set('name', 'New OU')
|
||||
response = form.submit().follow()
|
||||
assert 'New OU' in response
|
||||
|
@ -728,6 +730,7 @@ def test_manager_ou(app, superuser_or_admin, ou1):
|
|||
manager_home_page = login(app, superuser_or_admin, reverse('a2-manager-homepage'))
|
||||
ou_homepage = manager_home_page.click(href='organizational-units')
|
||||
assert set([e.text for e in ou_homepage.pyquery('td.name')]) == set(['OU1', 'Default organizational unit'])
|
||||
assert [x.text for x in ou_homepage.pyquery('td.slug')] == ['default', 'ou1']
|
||||
|
||||
# add a new ou
|
||||
add_ou_page = ou_homepage.click('Add')
|
||||
|
@ -766,6 +769,15 @@ def test_manager_ou(app, superuser_or_admin, ou1):
|
|||
assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % ou2.pk)) == 0
|
||||
assert len(ou_homepage.pyquery('tr[data-pk="%s"] td.default span.true' % old_default.pk)) == 1
|
||||
|
||||
# edit ou slug
|
||||
assert OU.objects.get(name='ou2').slug == 'ou2'
|
||||
ou2_detail_page = app.get(reverse('a2-manager-ou-edit', kwargs={'pk': ou2.pk}))
|
||||
form = ou2_detail_page.form
|
||||
assert 'slug' in form.fields
|
||||
form.set('slug', 'new-ou2-slug')
|
||||
form.submit().follow()
|
||||
assert OU.objects.get(name='ou2').slug == 'new-ou2-slug'
|
||||
|
||||
|
||||
def test_return_on_logout(superuser, app):
|
||||
'''Verify we will return to /manage/ after logout/login cycle'''
|
||||
|
|
Loading…
Reference in New Issue