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 893988e45e
This commit is contained in:
Henrik Levkowetz 2015-11-01 22:49:07 +00:00
parent f60fe7ceab
commit 143b8cc646
2 changed files with 16 additions and 9 deletions

View file

@ -6,7 +6,7 @@ import os
import re
from tempfile import mkstemp
from django.http import HttpRequest
from django.http import HttpRequest, Http404
from django.db.models import Max, Q, Prefetch, F
from django.conf import settings
from django.core.cache import cache
@ -107,12 +107,19 @@ def get_wg_list(assignments):
return Group.objects.filter(acronym__in = set(wg_name_list)).order_by('parent__acronym','acronym')
def get_meeting(num=None):
def get_meetings(num=None):
if num == None:
meeting = Meeting.objects.filter(type="ietf").order_by("-date")[:1].get()
meetings = Meeting.objects.filter(type="ietf").order_by("-date")
else:
meeting = get_object_or_404(Meeting, number=num)
return meeting
meetings = Meeting.objects.filter(type="ietf", number=num)
return meetings
def get_meeting(num=None):
meetings = get_meetings(num)
if meetings.exists():
return meetings.first()
else:
raise Http404("No such meeting found: %s" % num)
def get_schedule(meeting, name=None):
if name is None:

View file

@ -32,7 +32,7 @@ from ietf.meeting.helpers import build_all_agenda_slices, get_wg_name_list
from ietf.meeting.helpers import get_all_assignments_from_schedule
from ietf.meeting.helpers import get_modified_from_assignments
from ietf.meeting.helpers import get_wg_list, find_ads_for_meeting
from ietf.meeting.helpers import get_meeting, get_schedule, agenda_permissions, meeting_updated
from ietf.meeting.helpers import get_meeting, get_schedule, agenda_permissions, meeting_updated, get_meetings
from ietf.meeting.helpers import preprocess_assignments_for_agenda, read_agenda_file
from ietf.meeting.helpers import convert_draft_to_pdf
from ietf.utils.pipe import pipe
@ -364,17 +364,17 @@ def agenda(request, num=None, name=None, base=None, ext=None):
".csv": "text/csv; charset=%s"%settings.DEFAULT_CHARSET,
}
meeting_query = Meeting.objects.filter(number=num)
meetings = get_meetings(num)
# We do not have the appropriate data in the datatracker for IETF 64 and earlier.
# So that we're not producing misleading pages...
if not meeting_query.exists() or not meeting_query.first().agenda.assignments.exists():
if not meetings.exists() or not meetings.first().agenda.assignments.exists():
if ext == '.html':
return HttpResponseRedirect( 'https://www.ietf.org/proceedings/%s' % num )
else:
raise Http404
meeting = meeting_query.first()
meeting = meetings.first()
schedule = get_schedule(meeting, name)
if schedule == None:
base = base.replace("-utc", "")