Merged in [11075] from ben@nostrum.com:
Allow meetings/materials to be queried without an explicit meeting number. Fixes issue #1934.
- Legacy-Id: 11081
Note: SVN reference [11075] has been migrated to Git commit d3a14a7e15
This commit is contained in:
commit
2c4efd1e25
|
@ -180,7 +180,18 @@ class MeetingTests(TestCase):
|
|||
self.assertEqual(r.status_code, 302)
|
||||
self.assertTrue(meeting.number in r["Location"])
|
||||
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict(meeting_num=meeting.number)))
|
||||
# test with explicit meeting number in url
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict(num=meeting.number)))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
row = q('#content td div:contains("%s")' % str(session.group.acronym)).closest("tr")
|
||||
self.assertTrue(row.find('a:contains("Agenda")'))
|
||||
self.assertTrue(row.find('a:contains("Minutes")'))
|
||||
self.assertTrue(row.find('a:contains("Slideshow")'))
|
||||
self.assertFalse(row.find("a:contains(\"Bad Slideshow\")"))
|
||||
|
||||
#test with no meeting number in url
|
||||
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict()))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
row = q('#content td div:contains("%s")' % str(session.group.acronym)).closest("tr")
|
||||
|
|
|
@ -55,11 +55,10 @@ type_ietf_only_patterns_id_optional = [
|
|||
url(r'^agenda/room-view(?:.html)?/?$', views.room_view),
|
||||
url(r'^week-view(?:.html)?/?$', views.week_view),
|
||||
url(r'^room-view(?:.html)?/$', views.room_view),
|
||||
url(r'^materials(?:.html)?/$', views.materials),
|
||||
]
|
||||
|
||||
urlpatterns = [
|
||||
# TODO - views.material should take num instead of meeting_num so it can move into one of the above lists
|
||||
url(r'^(?P<meeting_num>\d+)/materials(?:.html)?/?$', views.materials),
|
||||
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
|
||||
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
|
||||
url(r'^(?P<num>[A-Za-z0-9._+-]+)/', include(safe_for_all_meeting_types)),
|
||||
|
|
|
@ -41,9 +41,8 @@ from ietf.utils.pdf import pdf_pages
|
|||
|
||||
from ietf.doc.fields import SearchableDocumentsField
|
||||
|
||||
def materials(request, meeting_num=None):
|
||||
meeting = get_meeting(meeting_num)
|
||||
|
||||
def materials(request, num=None):
|
||||
meeting = get_meeting(num)
|
||||
begin_date = meeting.get_submission_start_date()
|
||||
cut_off_date = meeting.get_submission_cut_off_date()
|
||||
cor_cut_off_date = meeting.get_submission_correction_date()
|
||||
|
@ -52,24 +51,24 @@ def materials(request, meeting_num=None):
|
|||
pass
|
||||
elif now > cor_cut_off_date:
|
||||
return render(request, "meeting/materials_upload_closed.html", {
|
||||
'meeting_num': meeting_num,
|
||||
'meeting_num': meeting.number,
|
||||
'begin_date': begin_date,
|
||||
'cut_off_date': cut_off_date,
|
||||
'cor_cut_off_date': cor_cut_off_date
|
||||
})
|
||||
|
||||
#sessions = Session.objects.filter(meeting__number=meeting_num, timeslot__isnull=False)
|
||||
#sessions = Session.objects.filter(meeting__number=meeting.number, timeslot__isnull=False)
|
||||
schedule = get_schedule(meeting, None)
|
||||
sessions = Session.objects.filter(meeting__number=meeting_num, timeslotassignments__schedule=schedule).select_related()
|
||||
sessions = Session.objects.filter(meeting__number=meeting.number, timeslotassignments__schedule=schedule).select_related()
|
||||
plenaries = sessions.filter(name__icontains='plenary')
|
||||
ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu')
|
||||
irtf = sessions.filter(group__parent__acronym = 'irtf')
|
||||
training = sessions.filter(group__acronym__in=['edu','iaoc'])
|
||||
iab = sessions.filter(group__parent__acronym = 'iab')
|
||||
|
||||
cache_version = Document.objects.filter(session__meeting__number=meeting_num).aggregate(Max('time'))["time__max"]
|
||||
cache_version = Document.objects.filter(session__meeting__number=meeting.number).aggregate(Max('time'))["time__max"]
|
||||
return render(request, "meeting/materials.html", {
|
||||
'meeting_num': meeting_num,
|
||||
'meeting_num': meeting.number,
|
||||
'plenaries': plenaries, 'ietf': ietf, 'training': training, 'irtf': irtf, 'iab': iab,
|
||||
'cut_off_date': cut_off_date,
|
||||
'cor_cut_off_date': cor_cut_off_date,
|
||||
|
|
Loading…
Reference in a new issue