fix: restore attendee dbtemplate for old meetings pending data correction (#6656)
* fix: restore attendee dbtemplate for old meetings pending data correction * test: adjust attendees test to match workaround
This commit is contained in:
parent
1f47d0a159
commit
c1627ed011
|
@ -7856,7 +7856,7 @@ class ProceedingsTests(BaseMeetingTestCase):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
make_meeting_test_data()
|
make_meeting_test_data()
|
||||||
meeting = MeetingFactory(type_id='ietf', date=datetime.date(2016, 7, 14), number="97")
|
meeting = MeetingFactory(type_id='ietf', date=datetime.date(2023, 11, 4), number="118")
|
||||||
person_a = PersonFactory(name='Person A')
|
person_a = PersonFactory(name='Person A')
|
||||||
person_b = PersonFactory(name='Person B')
|
person_b = PersonFactory(name='Person B')
|
||||||
person_c = PersonFactory(name='Person C')
|
person_c = PersonFactory(name='Person C')
|
||||||
|
@ -7868,7 +7868,7 @@ class ProceedingsTests(BaseMeetingTestCase):
|
||||||
MeetingRegistrationFactory(meeting=meeting, person=person_c, reg_type='remote')
|
MeetingRegistrationFactory(meeting=meeting, person=person_c, reg_type='remote')
|
||||||
AttendedFactory(session__meeting=meeting, session__type_id='plenary', person=person_c)
|
AttendedFactory(session__meeting=meeting, session__type_id='plenary', person=person_c)
|
||||||
MeetingRegistrationFactory(meeting=meeting, person=person_d, reg_type='remote')
|
MeetingRegistrationFactory(meeting=meeting, person=person_d, reg_type='remote')
|
||||||
url = urlreverse('ietf.meeting.views.proceedings_attendees',kwargs={'num': 97})
|
url = urlreverse('ietf.meeting.views.proceedings_attendees',kwargs={'num': 118})
|
||||||
response = self.client.get(url)
|
response = self.client.get(url)
|
||||||
self.assertContains(response, 'Attendee list')
|
self.assertContains(response, 'Attendee list')
|
||||||
q = PyQuery(response.content)
|
q = PyQuery(response.content)
|
||||||
|
@ -8284,4 +8284,4 @@ class ProceedingsTests(BaseMeetingTestCase):
|
||||||
self.assertTrue(person_a.pk in checked_in)
|
self.assertTrue(person_a.pk in checked_in)
|
||||||
self.assertTrue(person_b.pk not in checked_in)
|
self.assertTrue(person_b.pk not in checked_in)
|
||||||
self.assertTrue(person_c.pk in attended)
|
self.assertTrue(person_c.pk in attended)
|
||||||
self.assertTrue(person_d.pk not in attended)
|
self.assertTrue(person_d.pk not in attended)
|
||||||
|
|
|
@ -3861,18 +3861,29 @@ def proceedings_attendees(request, num=None):
|
||||||
if meeting.proceedings_format_version == 1:
|
if meeting.proceedings_format_version == 1:
|
||||||
return HttpResponseRedirect(f'{settings.PROCEEDINGS_V1_BASE_URL.format(meeting=meeting)}/attendee.html')
|
return HttpResponseRedirect(f'{settings.PROCEEDINGS_V1_BASE_URL.format(meeting=meeting)}/attendee.html')
|
||||||
|
|
||||||
checked_in, attended = participants_for_meeting(meeting)
|
template = None
|
||||||
regs = list(MeetingRegistration.objects.filter(meeting__number=num, reg_type='onsite', checkedin=True))
|
meeting_registrations = None
|
||||||
|
|
||||||
for mr in MeetingRegistration.objects.filter(meeting__number=num, reg_type='remote').select_related('person'):
|
if int(meeting.number) >= 118:
|
||||||
if mr.person.pk in attended and mr.person.pk not in checked_in:
|
checked_in, attended = participants_for_meeting(meeting)
|
||||||
regs.append(mr)
|
regs = list(MeetingRegistration.objects.filter(meeting__number=num, reg_type='onsite', checkedin=True))
|
||||||
|
|
||||||
meeting_registrations = sorted(regs, key=lambda x: (x.last_name, x.first_name))
|
for mr in MeetingRegistration.objects.filter(meeting__number=num, reg_type='remote').select_related('person'):
|
||||||
|
if mr.person.pk in attended and mr.person.pk not in checked_in:
|
||||||
|
regs.append(mr)
|
||||||
|
|
||||||
|
meeting_registrations = sorted(regs, key=lambda x: (x.last_name, x.first_name))
|
||||||
|
else:
|
||||||
|
overview_template = "/meeting/proceedings/%s/attendees.html" % meeting.number
|
||||||
|
try:
|
||||||
|
template = render_to_string(overview_template, {})
|
||||||
|
except TemplateDoesNotExist:
|
||||||
|
raise Http404
|
||||||
|
|
||||||
return render(request, "meeting/proceedings_attendees.html", {
|
return render(request, "meeting/proceedings_attendees.html", {
|
||||||
'meeting': meeting,
|
'meeting': meeting,
|
||||||
'meeting_registrations': meeting_registrations,
|
'meeting_registrations': meeting_registrations,
|
||||||
|
'template': template,
|
||||||
})
|
})
|
||||||
|
|
||||||
def proceedings_overview(request, num=None):
|
def proceedings_overview(request, num=None):
|
||||||
|
|
|
@ -15,29 +15,32 @@
|
||||||
</h1>
|
</h1>
|
||||||
<h2>Attendee list of IETF {{ meeting.number }} meeting</h2>
|
<h2>Attendee list of IETF {{ meeting.number }} meeting</h2>
|
||||||
|
|
||||||
<table id="id_attendees" class="table table-sm table-striped tablesorter">
|
{% if template %}
|
||||||
<thead>
|
{{template|safe}}
|
||||||
<tr>
|
{% else %}
|
||||||
<th scope="col" data-sort="last">Last Name</th>
|
<table id="id_attendees" class="table table-sm table-striped tablesorter">
|
||||||
<th scope="col" data-sort="first">First Name</th>
|
<thead>
|
||||||
<th scope="col" data-sort="organization">Organization</th>
|
<tr>
|
||||||
<th scope="col" data-sort="country">Country</th>
|
<th scope="col" data-sort="last">Last Name</th>
|
||||||
<th scope="col" data-sort="type">Registration Type</th>
|
<th scope="col" data-sort="first">First Name</th>
|
||||||
</tr>
|
<th scope="col" data-sort="organization">Organization</th>
|
||||||
</thead>
|
<th scope="col" data-sort="country">Country</th>
|
||||||
<tbody>
|
<th scope="col" data-sort="type">Registration Type</th>
|
||||||
{% for reg in meeting_registrations %}
|
</tr>
|
||||||
<tr>
|
</thead>
|
||||||
<td>{{ reg.last_name }}</td>
|
<tbody>
|
||||||
<td>{{ reg.first_name }}</td>
|
{% for reg in meeting_registrations %}
|
||||||
<td>{{ reg.affiliation }}</td>
|
<tr>
|
||||||
<td>{{ reg.country_code }}</td>
|
<td>{{ reg.last_name }}</td>
|
||||||
<td>{{ reg.reg_type }}</td>
|
<td>{{ reg.first_name }}</td>
|
||||||
</tr>
|
<td>{{ reg.affiliation }}</td>
|
||||||
{% endfor %}
|
<td>{{ reg.country_code }}</td>
|
||||||
</tbody>
|
<td>{{ reg.reg_type }}</td>
|
||||||
</table>
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
{% endif %}
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
{% block js %}
|
{% block js %}
|
||||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||||
|
|
Loading…
Reference in a new issue