fix: Group.used_roles overrides default_used_roles (#4118)
This commit is contained in:
parent
eda494a299
commit
c2fb5e5b66
|
@ -79,10 +79,10 @@ class GroupForm(forms.Form):
|
|||
self.used_roles = self.group.used_roles or group_features.default_used_roles
|
||||
else:
|
||||
group_features = GroupFeatures.objects.filter(type_id=self.group_type).first()
|
||||
self.used_roles = group_features.default_used_roles
|
||||
|
||||
log.assertion('group_features is not None')
|
||||
if group_features is not None:
|
||||
self.used_roles = group_features.default_used_roles
|
||||
parent_types = group_features.parent_types.all()
|
||||
need_parent = group_features.need_parent
|
||||
default_parent = group_features.default_parent
|
||||
|
|
|
@ -16,6 +16,7 @@ from tempfile import NamedTemporaryFile
|
|||
import debug # pyflakes:ignore
|
||||
|
||||
from django.conf import settings
|
||||
from django.test import RequestFactory
|
||||
from django.urls import reverse as urlreverse
|
||||
from django.urls import NoReverseMatch
|
||||
from django.utils import timezone
|
||||
|
@ -1086,6 +1087,16 @@ class GroupFormTests(TestCase):
|
|||
RoleFactory(name_id=rslug, group=group, person=PersonFactory())
|
||||
self.do_edit_roles_test(group)
|
||||
|
||||
def test_used_roles_overrides_default(self):
|
||||
"""A group's used_roles should override the GroupFeatures default"""
|
||||
request_factory = RequestFactory()
|
||||
group = GroupFactory(type_id='wg')
|
||||
self.assertEqual(GroupForm(request_factory.get('/some/url'), group=group).used_roles, group.features.default_used_roles)
|
||||
group.used_roles = ['ad', 'chair']
|
||||
group.save()
|
||||
self.assertNotEqual(group.used_roles, group.features.default_used_roles)
|
||||
self.assertEqual(GroupForm(request_factory.get('/some/url'), group=group).used_roles, group.used_roles)
|
||||
|
||||
def test_need_parent(self):
|
||||
"""GroupForm should enforce non-null parent when required"""
|
||||
group = GroupFactory()
|
||||
|
|
Loading…
Reference in a new issue