Skip to content

Commit 2c4efd1

Browse files
committed
Merged in [11075] from ben@nostrum.com:
Allow meetings/materials to be queried without an explicit meeting number. Fixes issue ietf-tools#1934. - Legacy-Id: 11081 Note: SVN reference [11075] has been migrated to Git commit d3a14a7
2 parents 760e324 + d3a14a7 commit 2c4efd1

3 files changed

Lines changed: 20 additions & 11 deletions

File tree

ietf/meeting/tests_views.py

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,18 @@ def test_materials(self):
180180
self.assertEqual(r.status_code, 302)
181181
self.assertTrue(meeting.number in r["Location"])
182182

183-
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict(meeting_num=meeting.number)))
183+
# test with explicit meeting number in url
184+
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict(num=meeting.number)))
185+
self.assertEqual(r.status_code, 200)
186+
q = PyQuery(r.content)
187+
row = q('#content td div:contains("%s")' % str(session.group.acronym)).closest("tr")
188+
self.assertTrue(row.find('a:contains("Agenda")'))
189+
self.assertTrue(row.find('a:contains("Minutes")'))
190+
self.assertTrue(row.find('a:contains("Slideshow")'))
191+
self.assertFalse(row.find("a:contains(\"Bad Slideshow\")"))
192+
193+
#test with no meeting number in url
194+
r = self.client.get(urlreverse("ietf.meeting.views.materials", kwargs=dict()))
184195
self.assertEqual(r.status_code, 200)
185196
q = PyQuery(r.content)
186197
row = q('#content td div:contains("%s")' % str(session.group.acronym)).closest("tr")

ietf/meeting/urls.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -55,11 +55,10 @@
5555
url(r'^agenda/room-view(?:.html)?/?$', views.room_view),
5656
url(r'^week-view(?:.html)?/?$', views.week_view),
5757
url(r'^room-view(?:.html)?/$', views.room_view),
58+
url(r'^materials(?:.html)?/$', views.materials),
5859
]
5960

6061
urlpatterns = [
61-
# TODO - views.material should take num instead of meeting_num so it can move into one of the above lists
62-
url(r'^(?P<meeting_num>\d+)/materials(?:.html)?/?$', views.materials),
6362
url(r'^requests.html$', RedirectView.as_view(url='/meeting/requests', permanent=True)),
6463
url(r'^(?P<num>\d+)/requests.html$', RedirectView.as_view(url='/meeting/%(num)s/requests', permanent=True)),
6564
url(r'^(?P<num>[A-Za-z0-9._+-]+)/', include(safe_for_all_meeting_types)),

ietf/meeting/views.py

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,8 @@
4141

4242
from ietf.doc.fields import SearchableDocumentsField
4343

44-
def materials(request, meeting_num=None):
45-
meeting = get_meeting(meeting_num)
46-
44+
def materials(request, num=None):
45+
meeting = get_meeting(num)
4746
begin_date = meeting.get_submission_start_date()
4847
cut_off_date = meeting.get_submission_cut_off_date()
4948
cor_cut_off_date = meeting.get_submission_correction_date()
@@ -52,24 +51,24 @@ def materials(request, meeting_num=None):
5251
pass
5352
elif now > cor_cut_off_date:
5453
return render(request, "meeting/materials_upload_closed.html", {
55-
'meeting_num': meeting_num,
54+
'meeting_num': meeting.number,
5655
'begin_date': begin_date,
5756
'cut_off_date': cut_off_date,
5857
'cor_cut_off_date': cor_cut_off_date
5958
})
6059

61-
#sessions = Session.objects.filter(meeting__number=meeting_num, timeslot__isnull=False)
60+
#sessions = Session.objects.filter(meeting__number=meeting.number, timeslot__isnull=False)
6261
schedule = get_schedule(meeting, None)
63-
sessions = Session.objects.filter(meeting__number=meeting_num, timeslotassignments__schedule=schedule).select_related()
62+
sessions = Session.objects.filter(meeting__number=meeting.number, timeslotassignments__schedule=schedule).select_related()
6463
plenaries = sessions.filter(name__icontains='plenary')
6564
ietf = sessions.filter(group__parent__type__slug = 'area').exclude(group__acronym='edu')
6665
irtf = sessions.filter(group__parent__acronym = 'irtf')
6766
training = sessions.filter(group__acronym__in=['edu','iaoc'])
6867
iab = sessions.filter(group__parent__acronym = 'iab')
6968

70-
cache_version = Document.objects.filter(session__meeting__number=meeting_num).aggregate(Max('time'))["time__max"]
69+
cache_version = Document.objects.filter(session__meeting__number=meeting.number).aggregate(Max('time'))["time__max"]
7170
return render(request, "meeting/materials.html", {
72-
'meeting_num': meeting_num,
71+
'meeting_num': meeting.number,
7372
'plenaries': plenaries, 'ietf': ietf, 'training': training, 'irtf': irtf, 'iab': iab,
7473
'cut_off_date': cut_off_date,
7574
'cor_cut_off_date': cor_cut_off_date,

0 commit comments

Comments
 (0)