datatracker/ietf/templates/meeting/group_materials.html
Lars Eggert 5598762608
fix: add more HTML validation & fixes (#3891)
* Update vnu.jar

* Fix py2 -> py3 issue

* Run pyupgrade

* test: Add default-jdk to images

* test: Add option to also validate HTML with vnu.jar

Since it's already installed in bin. Don't do this by default, since it
increases the time needed for tests by ~50%.

* fix: Stop the urlizer from urlizing in linkified mailto: text

* More HTML fixes

* More HTML validation fixes

* And more HTML fixes

* Fix floating badge

* Ignore unicode errors

* Only URLize docs that are existing

* Final fixes

* Don't URLize everything during test-crawl

* Feed HTML into vnu using python rather than Java to speed things up

* Allow test-crawl to start vnu on a different port

* Increase retry count to vnu. Restore batch size to 30.

* More HTML validation fixes

* Use urllib3 to make requests to vnu, since overriding requests_mock is tricky

* Undo commit of unmodified file

* Also urlize ftp links

* Fix matching of file name

* More HTML fixes

* Add `is_valid_url` filter

* weekday -> data-weekday

* urlencode URLs

* Add and use vnu_fmt_message. Bump vnu max buffer.

* Simplify doc_exists

* Don't add tab link to mail archive if the URL is invalid

* Run urlize_ietf_docs before linkify

Reduces the possibility of generating incorrect HTML

* Undo superfluous change

* Runner fixes

* Consolidate vnu message filtering into vnu_filter_message

* Correctly handle multiple persons with same name

* Minimze diff

* Fix HTML nits

* Print source snippet in vnu_fmt_message

* Only escape if there is something to escape

* Fix snippet

* Skip crufty old IPR declarations

* Only include modal when needed. Add handles.

* Fix wordwrap+linkification

* Update ietf/doc/templatetags/ietf_filters.py

* Update ietf/doc/templatetags/tests_ietf_filters.py

* Don't right-align second column
2022-05-03 13:55:48 -05:00

125 lines
5.8 KiB
HTML

{# Copyright The IETF Trust 2015-2019, All Rights Reserved #}
{% load origin %}
{% origin %}
{% load ietf_filters proceedings_filters managed_groups %}
{% load tz %}
<tr>
<td>
{% if session.name %}
<div id="{{ session.name|slugify }}">{{ session.name }}</div>
{% else %}
<div id="{{ session.group.acronym }}">
<a href="{% url 'ietf.group.views.group_home' acronym=session.group.acronym %}">{{ session.group.acronym }}</a>
</div>
{% if session.group.state.slug == "bof" %}
<span class="badge bg-success">{{ session.group.state.slug|upper }}</span>
{% endif %}
{% endif %}
</td>
{% if session.all_meeting_sessions_cancelled %}
<td colspan="{% if user|has_role:'Secretariat' or user_groups %}6{% else %}5{% endif %}">
<span class="badge bg-danger">Session cancelled</span>
</td>
{% else %}
<td>
{% if session.all_meeting_agendas %}
{% for agenda in session.all_meeting_agendas %}
{% if session.all_meeting_agendas|length == 1 %}
{% if agenda.time > old %}
<i class="small bi bi-bell"
title="Last Update: {{ agenda.time|utc|date:"Y-m-d H:i:s" }} UTC"></i>
{% endif %}
<a href="{{ session.all_meeting_agendas.0|meeting_href:session.meeting }}">Agenda</a>
<br>
{% else %}
<a href="{{ agenda|meeting_href:session.meeting }}">
Agenda {{ agenda.sessionpresentation_set.first.session.official_timeslotassignment.timeslot.time|date:"D G:i" }}
</a>
<br>
{% endif %}
{% endfor %}
{% else %}
{% if show_agenda == "True" %}<span class="badge bg-warning">No agenda</span>{% endif %}
{% endif %}
</td>
<td>
{% if session.all_meeting_minutes %}
{% if session.all_meeting_minutes|length == 1 %}
<a href="{{ session.all_meeting_minutes.0|meeting_href:session.meeting }}">Minutes</a>
<br>
{% else %}
{% for minutes in session.all_meeting_minutes %}
<a href="{{ minutes|meeting_href:session.meeting }}">
Minutes {{ minutes.sessionpresentation_set.first.session.official_timeslotassignment.timeslot.time|date:"D G:i" }}
</a>
<br>
{% endfor %}
{% endif %}
{% else %}
{% if show_agenda == "True" %}<span class="badge bg-warning">No minutes</span>{% endif %}
{% endif %}
{% if session.type_id == 'regular' and show_agenda == "True" %}
{% if session.all_meeting_bluesheets %}
{% if session.all_meeting_bluesheets|length == 1 %}
<a href="{{ session.all_meeting_bluesheets.0|meeting_href:session.meeting }}">Bluesheets</a>
<br>
{% else %}
{% for bluesheets in session.all_meeting_bluesheets %}
<a href="{{ bluesheets|meeting_href:session.meeting }}">
Bluesheets
<br>
<span class="small float-end">{{ bluesheets.sessionpresentation_set.first.session.official_timeslotassignment.timeslot.time|date:"D G:i" }}</span>
</a>
<br>
{% endfor %}
{% endif %}
{% else %}
<span class="badge bg-warning">No bluesheets</span>
{% endif %}
{% endif %}
</td>
<td>
{% with session.all_meeting_slides as slides %}
{% for slide in slides %}
{% if slide.time > old %}
<i class="small bi bi-bell"
title="Last Update: {{ slide.time|utc|date:"Y-m-d H:i:s" }} UTC"></i>
{% endif %}
<a href="{{ slide|meeting_href:session.meeting }}">{{ slide.title|clean_whitespace }}</a>
<br>
{% empty %}
<span class="badge bg-warning">No slides</span>
{% endfor %}
{% endwith %}
</td>
<td>
{% with session.all_meeting_drafts as drafts %}
{% for draft in drafts %}
{% if draft.time > old %}
<i class="small bi bi-bell"
title="Last Update: {{ draft.time|utc|date:"Y-m-d H:i:s" }} UTC"></i>
{% endif %}
<a href="{{ draft.get_href }}">{{ draft.name }}</a>
<br>
{% empty %}
<span class="badge bg-warning">No drafts</span>
{% endfor %}
{% endwith %}
</td>
<td>
{% if session.last_update %}
{{ session.last_update|utc|date:"Y-m-d" }}
<br>
<small class="text-muted">{{ session.last_update|utc|date:"H:i:s" }}&nbsp;UTC</small>
{% endif %}
</td>
{% if user|has_role:"Secretariat" or user_groups %}
<td>
{% if user|has_role:"Secretariat" or session.group in user_groups %}
<div class="float-end">{% include "meeting/edit_materials_button.html" %}</div>
{% endif %}
</td>
{% endif %}
{% endif %}
</tr>