* 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
168 lines
7 KiB
HTML
168 lines
7 KiB
HTML
{% extends "base.html" %}
|
|
{# Copyright The IETF Trust 2021, All Rights Reserved #}
|
|
{% load origin %}
|
|
{% load static %}
|
|
{% load ietf_filters %}
|
|
{% load person_filters textfilters %}
|
|
{% block title %}{{ doc.title }}{% endblock %}
|
|
{% block content %}
|
|
{% origin %}
|
|
{{ top|safe }}
|
|
{% include "doc/revisions_list.html" %}
|
|
<div id="timeline"></div>
|
|
{% if doc.rev != latest_rev %}
|
|
<div class="alert alert-warning my-3">The information below is for an older version of this BOF request.</div>
|
|
{% endif %}
|
|
<table class="table table-sm table-borderless">
|
|
<tbody class="meta border-top">
|
|
<tr>
|
|
<th scope="row">Document</th>
|
|
<th scope="row">Type</th>
|
|
<td class="edit"></td>
|
|
<td>
|
|
{{ doc.get_state.slug|capfirst }} BOF request
|
|
{% if snapshot %}<span class="badge bg-warning">Snapshot</span>{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<th scope="row">Title</th>
|
|
<td class="edit">
|
|
{% if not snapshot %}
|
|
{% if editor_can_manage or can_manage %}
|
|
{% doc_edit_button 'ietf.doc.views_bofreq.edit_title' name=doc.name %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
<th scope="row">{{ doc.title }}</th>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<th scope="row">Last updated</th>
|
|
<td class="edit"></td>
|
|
<td>{{ doc.time|date:"Y-m-d" }}</td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<th scope="row">
|
|
<a href="{% url 'ietf.doc.views_help.state_help' type='bofreq' %}">State</a>
|
|
</th>
|
|
<td class="edit">
|
|
{% if not snapshot and can_manage %}
|
|
{% doc_edit_button 'ietf.doc.views_bofreq.change_state' name=doc.name %}
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% if doc.get_state %}
|
|
<span title="{{ doc.get_state.desc }}" class="{% if doc.get_state.name|slugify == 'approved' %}text-success{% elif doc.get_state.name|slugify == 'declined' %}text-danger{% endif %}">{{ doc.get_state.name }}</span>
|
|
{% else %}
|
|
No document state
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
<tr id="editors">
|
|
<td></td>
|
|
<th scope="row">Editor{{ editors|pluralize }}</th>
|
|
<td class="edit">
|
|
{% if not snapshot %}
|
|
{% if editor_can_manage or can_manage %}
|
|
{% doc_edit_button 'ietf.doc.views_bofreq.change_editors' name=doc.name %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% for editor in editors %}
|
|
{% person_link editor %}{% if not forloop.last %},{% endif %}
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
<tr id="responsible">
|
|
<td></td>
|
|
<th scope="row">Responsible leadership</th>
|
|
<td class="edit">
|
|
{% if not snapshot %}
|
|
{% if can_manage %}
|
|
{% doc_edit_button 'ietf.doc.views_bofreq.change_responsible' name=doc.name %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% for leader in responsible %}
|
|
{% person_link leader %}{% if not forloop.last %},{% endif %}
|
|
{% endfor %}
|
|
</td>
|
|
</tr>
|
|
{% with doc.docextresource_set.all as resources %}
|
|
{% if resources or editor_can_manage or can_manage %}
|
|
<tr>
|
|
<td></td>
|
|
<th scope="row">Additional resources</th>
|
|
<td class="edit">
|
|
{% if editor_can_manage or can_manage %}
|
|
<a class="btn btn-primary btn-sm"
|
|
href="{% url 'ietf.doc.views_draft.edit_doc_extresources' name=doc.name %}">Edit</a>
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{% if resources %}
|
|
{% for resource in resources|dictsort:"display_name" %}
|
|
{% if resource.name.type.slug == 'url' or resource.name.type.slug == 'email' %}
|
|
<a href="{{ resource.value|urlencode }}" title="{{ resource.name.name }}">
|
|
{% firstof resource.display_name resource.name.name %}
|
|
</a>
|
|
<br>
|
|
{# Maybe make how a resource displays itself a method on the class so templates aren't doing this switching #}
|
|
{% else %}
|
|
<span title="{{ resource.name.name }}">{% firstof resource.display_name resource.name.name %}: {{ resource.value|escape }}</span>
|
|
<br>
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% endif %}
|
|
</td>
|
|
</tr>
|
|
{% endif %}
|
|
{% endwith %}
|
|
<tr>
|
|
<td></td>
|
|
<th scope="row">
|
|
Send notices to
|
|
</th>
|
|
<td class="edit">
|
|
{% if not snapshot %}
|
|
{% if can_manage %}
|
|
{% doc_edit_button 'ietf.doc.views_doc.edit_notify' name=doc.name %}
|
|
{% endif %}
|
|
{% endif %}
|
|
</td>
|
|
<td>
|
|
{{ doc.notify|default:'<span class="text-muted">(None)</span>' }}
|
|
</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
{% if not snapshot %}
|
|
{% if editor_can_manage or can_manage %}
|
|
<p id="change-request">
|
|
<a class="btn btn-primary"
|
|
href="{% url 'ietf.doc.views_bofreq.submit' name=doc.name %}">
|
|
Change BOF request text
|
|
</a>
|
|
</p>
|
|
{% endif %}
|
|
{% endif %}
|
|
<div class="card mt-5">
|
|
<div class="card-header">
|
|
{{ doc.name }}-{{ doc.rev }}
|
|
</div>
|
|
<div class="card-body">
|
|
{{ content|urlize_ietf_docs|linkify }}
|
|
</div>
|
|
</div>
|
|
{% endblock %}
|
|
{% block js %}
|
|
<script src="{% static 'ietf/js/d3.js' %}">
|
|
</script>
|
|
<script src="{% static 'ietf/js/document_timeline.js' %}">
|
|
</script>
|
|
{% endblock %}
|