* refactor: better control proceedings caching * refactor: move methods from views to utils * chore: revert accidental settings change * fix: eliminate circular import get_schedule() with name=None should perhaps be an anti-pattern * feat: task to recompute proceedings daily * chore: proceedings cache lifetime = 1 day * fix: ensure finalization is immediately reflected * chore: update beat comments in docker-compose * style: undo a couple whitespace changes * test: update / refactor tests * test: test task * refactor: disallow positional arg to task * refactor: add trivial test of old task
216 lines
7.7 KiB
HTML
216 lines
7.7 KiB
HTML
{% include 'meeting/proceedings/introduction.html' with meeting=meeting only %}
|
|
<!-- Plenaries -->
|
|
{% if plenaries %}
|
|
<h2 class="mt-5" id="plenaries">Plenaries</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">Group</th>
|
|
<th scope="col" data-sort="artifacts">Artifacts</th>
|
|
<th scope="col" data-sort="recordings">Recordings</th>
|
|
<th scope="col" data-sort="slides">Slides</th>
|
|
<th scope="col" data-sort="drafts">Internet-Drafts</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in plenaries %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
<!-- Working groups -->
|
|
{% for area, meeting_groups, not_meeting_groups in ietf_areas %}
|
|
<h2 class="mt-5" id="{{ area.acronym }}">
|
|
{{ area.acronym|upper }} <small class="text-body-secondary">{{ area.name }}</small>
|
|
</h2>
|
|
{% if meeting_groups %}
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">Group</th>
|
|
<th scope="col" data-sort="artifacts">Artifacts</th>
|
|
<th scope="col" data-sort="recordings">Recordings</th>
|
|
<th scope="col" data-sort="slides">Slides</th>
|
|
<th scope="col" data-sort="drafts">Internet-Drafts</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in meeting_groups %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% if not_meeting_groups %}
|
|
<p>
|
|
{{ area.name }} groups not meeting:
|
|
{% for entry in not_meeting_groups %}
|
|
{% if entry.name == "" %}{# do not show named sessions in this list #}
|
|
<a href="{% url 'ietf.group.views.group_home' acronym=entry.group.acronym %}">
|
|
{{ entry.group.acronym }}
|
|
</a>{% if not forloop.last %},{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
</p>
|
|
<table class="table table-sm table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in not_meeting_groups %}{% if entry.has_materials %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endif %}{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endfor %}
|
|
<!-- Training Sessions -->
|
|
{% if training %}
|
|
<h2 class="mt-5" id="training">Training</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">Group</th>
|
|
<th scope="col" data-sort="artifacts">Artifacts</th>
|
|
<th scope="col" data-sort="recordings">Recordings</th>
|
|
<th scope="col" data-sort="slides">Slides</th>
|
|
<th scope="col" data-sort="drafts">Internet-Drafts</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in training %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=False only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
<!-- IAB Sessions -->
|
|
{% if iab %}
|
|
<h2 class="mt-5" id="iab">
|
|
IAB <small class="text-body-secondary">Internet Architecture Board</small>
|
|
</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">
|
|
Group
|
|
</th>
|
|
<th scope="col" data-sort="artifacts">
|
|
Artifacts
|
|
</th>
|
|
<th scope="col" data-sort="recordings">
|
|
Recordings
|
|
</th>
|
|
<th scope="col" data-sort="slides">
|
|
Slides
|
|
</th>
|
|
<th scope="col" data-sort="drafts">
|
|
Internet-Drafts
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in iab %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
<!-- IRTF Sessions -->
|
|
{% if irtf.meeting_groups %}
|
|
<h2 class="mt-5" id="irtf">
|
|
IRTF <small class="text-body-secondary">Internet Research Task Force</small>
|
|
</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">
|
|
Group
|
|
</th>
|
|
<th scope="col" data-sort="artifacts">
|
|
Artifacts
|
|
</th>
|
|
<th scope="col" data-sort="recordings">
|
|
Recordings
|
|
</th>
|
|
<th scope="col" data-sort="slides">
|
|
Slides
|
|
</th>
|
|
<th scope="col" data-sort="drafts">
|
|
Internet-Drafts
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in irtf.meeting_groups %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% if irtf.not_meeting_groups %}
|
|
<p>
|
|
IRTF groups not meeting:
|
|
{% for entry in irtf.not_meeting_groups %}
|
|
{% if entry.name == "" %}{# do not show named sessions in this list #}
|
|
<a href="{% url 'ietf.group.views.group_home' acronym=entry.group.acronym %}">
|
|
{{ entry.group.acronym }}
|
|
</a>{% if not forloop.last %},{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
</p>
|
|
<table class="table table-sm table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in irtf.not_meeting %}{% if entry.has_materials %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endif %}{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
<!-- Editorial Sessions -->
|
|
{% if editorial %}
|
|
<h2 class="mt-5" id="editorial">Editorial Stream</h2>
|
|
<table class="table table-sm table-striped tablesorter">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" data-sort="group">
|
|
Group
|
|
</th>
|
|
<th scope="col" data-sort="artifacts">
|
|
Artifacts
|
|
</th>
|
|
<th scope="col" data-sort="recordings">
|
|
Recordings
|
|
</th>
|
|
<th scope="col" data-sort="slides">
|
|
Slides
|
|
</th>
|
|
<th scope="col" data-sort="drafts">
|
|
Internet-Drafts
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for entry in editorial %}
|
|
{% include "meeting/group_proceedings.html" with entry=entry meeting=meeting show_agenda=True only %}
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endif %}
|