fix: handle registration is_nomcom_volunteer = false correctly (#7484)
Co-authored-by: Robert Sparks <rjsparks@nostrum.com>
This commit is contained in:
parent
2ccc230ce7
commit
99b852805b
|
@ -30,7 +30,7 @@ from ietf.doc.factories import IndividualDraftFactory, WgDraftFactory, WgRfcFact
|
||||||
from ietf.group.factories import RoleFactory
|
from ietf.group.factories import RoleFactory
|
||||||
from ietf.meeting.factories import MeetingFactory, SessionFactory
|
from ietf.meeting.factories import MeetingFactory, SessionFactory
|
||||||
from ietf.meeting.models import Session
|
from ietf.meeting.models import Session
|
||||||
from ietf.nomcom.models import Volunteer, NomCom
|
from ietf.nomcom.models import Volunteer
|
||||||
from ietf.nomcom.factories import NomComFactory, nomcom_kwargs_for_year
|
from ietf.nomcom.factories import NomComFactory, nomcom_kwargs_for_year
|
||||||
from ietf.person.factories import PersonFactory, random_faker, EmailFactory
|
from ietf.person.factories import PersonFactory, random_faker, EmailFactory
|
||||||
from ietf.person.models import Email, User
|
from ietf.person.models import Email, User
|
||||||
|
@ -828,7 +828,7 @@ class CustomApiTests(TestCase):
|
||||||
'reg_type': 'onsite',
|
'reg_type': 'onsite',
|
||||||
'ticket_type': '',
|
'ticket_type': '',
|
||||||
'checkedin': 'False',
|
'checkedin': 'False',
|
||||||
'is_nomcom_volunteer': 'True',
|
'is_nomcom_volunteer': 'False',
|
||||||
}
|
}
|
||||||
person = PersonFactory()
|
person = PersonFactory()
|
||||||
reg['email'] = person.email().address
|
reg['email'] = person.email().address
|
||||||
|
@ -842,16 +842,22 @@ class CustomApiTests(TestCase):
|
||||||
# create appropriate group and nomcom objects
|
# create appropriate group and nomcom objects
|
||||||
nomcom = NomComFactory.create(is_accepting_volunteers=True, **nomcom_kwargs_for_year(year))
|
nomcom = NomComFactory.create(is_accepting_volunteers=True, **nomcom_kwargs_for_year(year))
|
||||||
url = urlreverse('ietf.api.views.api_new_meeting_registration')
|
url = urlreverse('ietf.api.views.api_new_meeting_registration')
|
||||||
r = self.client.post(url, reg)
|
|
||||||
self.assertContains(r, 'Invalid apikey', status_code=403)
|
|
||||||
oidcp = PersonFactory(user__is_staff=True)
|
oidcp = PersonFactory(user__is_staff=True)
|
||||||
# Make sure 'oidcp' has an acceptable role
|
# Make sure 'oidcp' has an acceptable role
|
||||||
RoleFactory(name_id='robot', person=oidcp, email=oidcp.email(), group__acronym='secretariat')
|
RoleFactory(name_id='robot', person=oidcp, email=oidcp.email(), group__acronym='secretariat')
|
||||||
key = PersonalApiKey.objects.create(person=oidcp, endpoint=url)
|
key = PersonalApiKey.objects.create(person=oidcp, endpoint=url)
|
||||||
reg['apikey'] = key.hash()
|
reg['apikey'] = key.hash()
|
||||||
|
|
||||||
|
# first test is_nomcom_volunteer False
|
||||||
r = self.client.post(url, reg)
|
r = self.client.post(url, reg)
|
||||||
nomcom = NomCom.objects.last()
|
|
||||||
self.assertContains(r, "Accepted, New registration", status_code=202)
|
self.assertContains(r, "Accepted, New registration", status_code=202)
|
||||||
|
# assert no Volunteers exists
|
||||||
|
self.assertEqual(Volunteer.objects.count(), 0)
|
||||||
|
|
||||||
|
# test is_nomcom_volunteer True
|
||||||
|
reg['is_nomcom_volunteer'] = 'True'
|
||||||
|
r = self.client.post(url, reg)
|
||||||
|
self.assertContains(r, "Accepted, Updated registration", status_code=202)
|
||||||
# assert Volunteer exists
|
# assert Volunteer exists
|
||||||
self.assertEqual(Volunteer.objects.count(), 1)
|
self.assertEqual(Volunteer.objects.count(), 1)
|
||||||
volunteer = Volunteer.objects.last()
|
volunteer = Volunteer.objects.last()
|
||||||
|
|
|
@ -212,7 +212,7 @@ def api_new_meeting_registration(request):
|
||||||
response += ", Email sent"
|
response += ", Email sent"
|
||||||
|
|
||||||
# handle nomcom volunteer
|
# handle nomcom volunteer
|
||||||
if data['is_nomcom_volunteer'] and object.person:
|
if request.POST.get('is_nomcom_volunteer', 'false').lower() == 'true' and object.person:
|
||||||
try:
|
try:
|
||||||
nomcom = NomCom.objects.get(is_accepting_volunteers=True)
|
nomcom = NomCom.objects.get(is_accepting_volunteers=True)
|
||||||
except (NomCom.DoesNotExist, NomCom.MultipleObjectsReturned):
|
except (NomCom.DoesNotExist, NomCom.MultipleObjectsReturned):
|
||||||
|
|
Loading…
Reference in a new issue