Allow pre-ADs to be assigned as responsible for document. Fixes #3229. Commit ready for merge.
- Legacy-Id: 19383
This commit is contained in:
parent
58fa3218eb
commit
fc9864114b
|
@ -1063,6 +1063,30 @@ class IndividualInfoFormsTests(TestCase):
|
||||||
doc = Document.objects.get(name=self.docname)
|
doc = Document.objects.get(name=self.docname)
|
||||||
self.assertEqual(doc.ad, None)
|
self.assertEqual(doc.ad, None)
|
||||||
|
|
||||||
|
def test_doc_change_ad_allows_pre_ad(self):
|
||||||
|
"""Pre-ADs can be responsible for documents"""
|
||||||
|
# create a pre-AD
|
||||||
|
doc = Document.objects.get(name=self.docname)
|
||||||
|
pre_ad = RoleFactory(name_id='pre-ad', group=doc.group.parent).person
|
||||||
|
|
||||||
|
url = urlreverse('ietf.doc.views_draft.edit_ad', kwargs=dict(name=self.docname))
|
||||||
|
self.client.login(username='secretary', password='secretary+password')
|
||||||
|
|
||||||
|
# test get
|
||||||
|
r = self.client.get(url)
|
||||||
|
self.assertEqual(r.status_code, 200)
|
||||||
|
q = PyQuery(r.content)
|
||||||
|
self.assertEqual(
|
||||||
|
len(q(f'form select[name=ad] option[value="{pre_ad.pk}"]')), 1,
|
||||||
|
'Pre-AD should be an option for assignment',
|
||||||
|
)
|
||||||
|
|
||||||
|
# test post
|
||||||
|
r = self.client.post(url, dict(ad=str(pre_ad.pk)))
|
||||||
|
self.assertEqual(r.status_code, 302)
|
||||||
|
doc = Document.objects.get(pk=doc.pk) # refresh
|
||||||
|
self.assertEqual(doc.ad, pre_ad, 'Pre-AD was not actually assigned')
|
||||||
|
|
||||||
def test_doc_change_shepherd(self):
|
def test_doc_change_shepherd(self):
|
||||||
doc = Document.objects.get(name=self.docname)
|
doc = Document.objects.get(name=self.docname)
|
||||||
doc.shepherd = None
|
doc.shepherd = None
|
||||||
|
|
|
@ -1111,8 +1111,16 @@ def change_shepherd_email(request, name):
|
||||||
})
|
})
|
||||||
|
|
||||||
class AdForm(forms.Form):
|
class AdForm(forms.Form):
|
||||||
ad = forms.ModelChoiceField(Person.objects.filter(role__name="ad", role__group__state="active", role__group__type="area").order_by('name'),
|
ad = forms.ModelChoiceField(
|
||||||
label="Shepherding AD", empty_label="(None)", required=False)
|
Person.objects.filter(
|
||||||
|
role__name__in=("ad", "pre-ad"),
|
||||||
|
role__group__state="active",
|
||||||
|
role__group__type="area",
|
||||||
|
).order_by('name'),
|
||||||
|
label="Shepherding AD",
|
||||||
|
empty_label="(None)",
|
||||||
|
required=False,
|
||||||
|
)
|
||||||
|
|
||||||
def __init__(self, doc, *args, **kwargs):
|
def __init__(self, doc, *args, **kwargs):
|
||||||
super(self.__class__, self).__init__(*args, **kwargs)
|
super(self.__class__, self).__init__(*args, **kwargs)
|
||||||
|
|
Loading…
Reference in a new issue