Merged in [11711] from rjsparks@nostrum.com:
Starting a page for direct rendering of proceedings. - Legacy-Id: 11717 Note: SVN reference [11711] has been migrated to Git commit d9b1528f36e092892c9a18602615f7151edf75c3
This commit is contained in:
parent
d117b9399d
commit
081abec0e8
|
@ -248,6 +248,17 @@ class MeetingTests(TestCase):
|
|||
# FIXME: missing tests of .pdf/.tar generation (some code can
|
||||
# probably be lifted from similar tests in iesg/tests.py)
|
||||
|
||||
def test_proceedings(self):
|
||||
meeting = make_meeting_test_data()
|
||||
session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()
|
||||
|
||||
self.write_materials_files(meeting, session)
|
||||
|
||||
url = urlreverse("ietf.meeting.views.proceedings", kwargs=dict(num=meeting.number))
|
||||
login_testing_unauthorized(self,"secretary",url)
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
|
||||
def test_feed(self):
|
||||
meeting = make_meeting_test_data()
|
||||
session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()
|
||||
|
|
|
@ -65,7 +65,8 @@ type_ietf_only_patterns_id_optional = [
|
|||
url(r'^floor-plan/(?P<floor>[-a-z0-9_]+)/?$', views.floor_plan),
|
||||
url(r'^week-view(?:.html)?/?$', views.week_view),
|
||||
url(r'^room-view(?:.html)?/$', views.room_view),
|
||||
url(r'^materials(?:.html)?/$', views.materials),
|
||||
url(r'^materials(?:.html)?/$', views.materials),
|
||||
url(r'^proceedings(?:.html)?/$', views.proceedings),
|
||||
]
|
||||
|
||||
urlpatterns = [
|
||||
|
|
|
@ -1441,3 +1441,30 @@ def floor_plan(request, num=None, floor=None, ):
|
|||
"number": num,
|
||||
"floors": floors,
|
||||
})
|
||||
|
||||
@role_required('Secretariat')
|
||||
def proceedings(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()
|
||||
now = datetime.date.today()
|
||||
|
||||
schedule = get_schedule(meeting, None)
|
||||
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.number).aggregate(Max('time'))["time__max"]
|
||||
return render(request, "meeting/proceedings.html", {
|
||||
'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,
|
||||
'submission_started': now > begin_date,
|
||||
'cache_version': cache_version,
|
||||
})
|
||||
|
|
182
ietf/templates/meeting/proceedings.html
Normal file
182
ietf/templates/meeting/proceedings.html
Normal file
|
@ -0,0 +1,182 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load ietf_filters staticfiles %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "jquery.tablesorter/css/theme.bootstrap.min.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block bodyAttrs %}data-spy="scroll" data-target="#affix"{% endblock %}
|
||||
|
||||
{% block title %}IETF {{ meeting_num }} Proceedings {% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<div class="row">
|
||||
<div class="col-md-10">
|
||||
|
||||
<h1>IETF {{ meeting_num }} Proceedings</h1>
|
||||
|
||||
<p class="alert alert-info">
|
||||
<b>This page is under construction</b>
|
||||
</p>
|
||||
|
||||
{# cache for 15 minutes, as long as there's no proceedings activity. takes 4-8 seconds to generate. #}
|
||||
{% load cache %}
|
||||
{% cache 900 ietf_meeting_materials meeting_num cache_version %}
|
||||
|
||||
{% with "True" as show_agenda %}
|
||||
<!-- Plenaries -->
|
||||
{% if plenaries %}
|
||||
<h2 class="anchor-target" id="plenaries">Plenaries</h2>
|
||||
<table class="table table-condensed table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-1">Group</th>
|
||||
<th class="col-md-1">Agenda</th>
|
||||
<th class="col-md-1">Minutes</th>
|
||||
<th class="col-md-6">Slides</th>
|
||||
<th class="col-md-3">Drafts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for session in plenaries %}
|
||||
{% include "meeting/group_materials.html" %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
<!-- Working groups -->
|
||||
{% regroup ietf|dictsort:"group.parent.acronym" by group.parent.name as areas %}
|
||||
{% for sessions in areas %}
|
||||
<h2 class="anchor-target" id="{{sessions.list.0.group.parent.acronym}}">{{sessions.list.0.group.parent.acronym|upper}} <small>{{ sessions.grouper }}</small></h2>
|
||||
<table class="table table-condensed table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-1">Group</th>
|
||||
<th class="col-md-1">Agenda</th>
|
||||
<th class="col-md-1">Minutes</th>
|
||||
<th class="col-md-6">Slides</th>
|
||||
<th class="col-md-3">Drafts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for session in sessions.list|dictsort:"group.acronym" %}
|
||||
{% ifchanged session.group.acronym %}
|
||||
{% include "meeting/group_materials.html" %}
|
||||
{% endifchanged %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endfor %}
|
||||
|
||||
<!-- Training Sessions -->
|
||||
{% if training %}
|
||||
{% with "False" as show_agenda %}
|
||||
<h2 class="anchor-target" id="training">Training</h2>
|
||||
<table class="table table-condensed table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-1">Group</th>
|
||||
<th class="col-md-1">Agenda</th>
|
||||
<th class="col-md-1">Minutes</th>
|
||||
<th class="col-md-6">Slides</th>
|
||||
<th class="col-md-3">Drafts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for session in training %}
|
||||
{% ifchanged %}
|
||||
{% include "meeting/group_materials.html" %}
|
||||
{% endifchanged %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endwith %}
|
||||
{% endif %}
|
||||
|
||||
<!-- IAB Sessions -->
|
||||
{% if iab %}
|
||||
<h2 class="anchor-target" id="iab">IAB <small>Internet Architecture Board</small></h2>
|
||||
<table class="table table-condensed table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-1">Group</th>
|
||||
<th class="col-md-1">Agenda</th>
|
||||
<th class="col-md-1">Minutes</th>
|
||||
<th class="col-md-6">Slides</th>
|
||||
<th class="col-md-3">Drafts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for session in iab %}
|
||||
{% ifchanged %}
|
||||
{% include "meeting/group_materials.html" %}
|
||||
{% endifchanged %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
<!-- IRTF Sessions -->
|
||||
{% if irtf %}
|
||||
<h2 class="anchor-target" id="irtf">IRTF <small>Internet Research Task Force</small></h2>
|
||||
<table class="table table-condensed table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="col-md-1">Group</th>
|
||||
<th class="col-md-1">Agenda</th>
|
||||
<th class="col-md-1">Minutes</th>
|
||||
<th class="col-md-6">Slides</th>
|
||||
<th class="col-md-3">Drafts</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for session in irtf|dictsort:"group.acronym" %}
|
||||
{% ifchanged %}
|
||||
{% include "meeting/group_materials.html" %}
|
||||
{% endifchanged %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
{% endcache %}
|
||||
</div>
|
||||
|
||||
<div class="col-md-2 hidden-print bs-docs-sidebar" id="affix">
|
||||
<ul class="nav nav-pills nav-stacked small" data-spy="affix">
|
||||
{% if plenaries %}
|
||||
<li><a href="#plenaries">Plenaries</a></li>
|
||||
{% endif %}
|
||||
{% if ietf %}
|
||||
{% regroup ietf|dictsort:"group.parent.acronym" by group.parent as areas %}
|
||||
{% for area in areas %}
|
||||
<li><a href="#{{area.grouper.acronym}}">{{ area.grouper.acronym|upper }}</a></li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if training %}
|
||||
<li><a href="#training">Training</a></li>
|
||||
{% endif %}
|
||||
{% if iab %}
|
||||
<li><a href="#iab">IAB</a></li>
|
||||
{% endif %}
|
||||
{% if irtf %}
|
||||
<li><a href="#irtf">IRTF</a></li>
|
||||
{% endif %}
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "jquery.tablesorter/js/jquery.tablesorter.combined.min.js" %}"></script>
|
||||
{% endblock %}
|
Loading…
Reference in a new issue