Skip to content

Commit 143b8cc

Browse files
committed
Fixed an issue with [10344], where the numberless /meeting/agenda/ would redirect to a non-existing proceedings URL.
- Legacy-Id: 10360 Note: SVN reference [10344] has been migrated to Git commit 893988e
1 parent f60fe7c commit 143b8cc

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

ietf/meeting/helpers.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
import re
77
from tempfile import mkstemp
88

9-
from django.http import HttpRequest
9+
from django.http import HttpRequest, Http404
1010
from django.db.models import Max, Q, Prefetch, F
1111
from django.conf import settings
1212
from django.core.cache import cache
@@ -107,12 +107,19 @@ def get_wg_list(assignments):
107107
return Group.objects.filter(acronym__in = set(wg_name_list)).order_by('parent__acronym','acronym')
108108

109109

110-
def get_meeting(num=None):
110+
def get_meetings(num=None):
111111
if num == None:
112-
meeting = Meeting.objects.filter(type="ietf").order_by("-date")[:1].get()
112+
meetings = Meeting.objects.filter(type="ietf").order_by("-date")
113+
else:
114+
meetings = Meeting.objects.filter(type="ietf", number=num)
115+
return meetings
116+
117+
def get_meeting(num=None):
118+
meetings = get_meetings(num)
119+
if meetings.exists():
120+
return meetings.first()
113121
else:
114-
meeting = get_object_or_404(Meeting, number=num)
115-
return meeting
122+
raise Http404("No such meeting found: %s" % num)
116123

117124
def get_schedule(meeting, name=None):
118125
if name is None:

ietf/meeting/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@
3232
from ietf.meeting.helpers import get_all_assignments_from_schedule
3333
from ietf.meeting.helpers import get_modified_from_assignments
3434
from ietf.meeting.helpers import get_wg_list, find_ads_for_meeting
35-
from ietf.meeting.helpers import get_meeting, get_schedule, agenda_permissions, meeting_updated
35+
from ietf.meeting.helpers import get_meeting, get_schedule, agenda_permissions, meeting_updated, get_meetings
3636
from ietf.meeting.helpers import preprocess_assignments_for_agenda, read_agenda_file
3737
from ietf.meeting.helpers import convert_draft_to_pdf
3838
from ietf.utils.pipe import pipe
@@ -364,17 +364,17 @@ def agenda(request, num=None, name=None, base=None, ext=None):
364364
".csv": "text/csv; charset=%s"%settings.DEFAULT_CHARSET,
365365
}
366366

367-
meeting_query = Meeting.objects.filter(number=num)
367+
meetings = get_meetings(num)
368368

369369
# We do not have the appropriate data in the datatracker for IETF 64 and earlier.
370370
# So that we're not producing misleading pages...
371-
if not meeting_query.exists() or not meeting_query.first().agenda.assignments.exists():
371+
if not meetings.exists() or not meetings.first().agenda.assignments.exists():
372372
if ext == '.html':
373373
return HttpResponseRedirect( 'https://www.ietf.org/proceedings/%s' % num )
374374
else:
375375
raise Http404
376376

377-
meeting = meeting_query.first()
377+
meeting = meetings.first()
378378
schedule = get_schedule(meeting, name)
379379
if schedule == None:
380380
base = base.replace("-utc", "")

0 commit comments

Comments
 (0)