More fixes.
- Legacy-Id: 19836
This commit is contained in:
parent
a5cbf5307e
commit
edf3242665
|
@ -250,7 +250,7 @@ class SearchTests(TestCase):
|
|||
r = self.client.get(urlreverse('ietf.doc.views_search.docs_for_ad', kwargs=dict(name=ad.full_name_as_key())))
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, draft.name)
|
||||
self.assertContains(r, escape(draft.action_holders.first().plain_name()))
|
||||
self.assertContains(r, escape(draft.action_holders.first().name))
|
||||
self.assertContains(r, rfc.canonical_name())
|
||||
self.assertContains(r, conflrev.name)
|
||||
self.assertContains(r, statchg.name)
|
||||
|
@ -1237,7 +1237,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
def _pyquery_select_action_holder_string(q, s):
|
||||
"""Helper to use PyQuery to find an action holder in the draft HTML"""
|
||||
# selector grabs the action holders heading and finds siblings with a div containing the search string
|
||||
return q('th:contains("Action Holders") ~ td>div:contains("%s")' % s)
|
||||
return q('th:contains("Action Holder") ~ td>div:contains("%s")' % s)
|
||||
|
||||
@mock.patch.object(Document, 'action_holders_enabled', return_value=False, new_callable=mock.PropertyMock)
|
||||
def test_document_draft_hides_action_holders(self, mock_method):
|
||||
|
@ -1245,11 +1245,11 @@ Man Expires September 22, 2015 [Page 3]
|
|||
draft = WgDraftFactory()
|
||||
url = urlreverse("ietf.doc.views_doc.document_main", kwargs=dict(name=draft.name))
|
||||
r = self.client.get(url)
|
||||
self.assertNotContains(r, 'Action Holders') # should not show action holders...
|
||||
self.assertNotContains(r, 'Action Holder') # should not show action holders...
|
||||
|
||||
draft.action_holders.set([PersonFactory()])
|
||||
r = self.client.get(url)
|
||||
self.assertNotContains(r, 'Action Holders') # ...even if they are assigned
|
||||
self.assertNotContains(r, 'Action Holder') # ...even if they are assigned
|
||||
|
||||
@mock.patch.object(Document, 'action_holders_enabled', return_value=True, new_callable=mock.PropertyMock)
|
||||
def test_document_draft_shows_action_holders(self, mock_method):
|
||||
|
@ -1259,7 +1259,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
|
||||
# No action holders case should be shown properly
|
||||
r = self.client.get(url)
|
||||
self.assertContains(r, 'Action Holders') # should show action holders
|
||||
self.assertContains(r, 'Action Holder') # should show action holders
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(self._pyquery_select_action_holder_string(q, '(None)')), 1)
|
||||
|
||||
|
@ -1274,7 +1274,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
with self.settings(DOC_ACTION_HOLDER_AGE_LIMIT_DAYS=20):
|
||||
r = self.client.get(url)
|
||||
|
||||
self.assertContains(r, 'Action Holders') # should still be shown
|
||||
self.assertContains(r, 'Action Holder') # should still be shown
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(self._pyquery_select_action_holder_string(q, '(None)')), 0)
|
||||
for person in draft.action_holders.all():
|
||||
|
@ -1299,7 +1299,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
q = PyQuery(r.content)
|
||||
|
||||
self.assertEqual(
|
||||
len(q('th:contains("Action Holders") ~ td a[href="%s"]' % edit_ah_url)),
|
||||
len(q('th:contains("Action Holder") ~ td a[href="%s"]' % edit_ah_url)),
|
||||
1 if expect_buttons else 0,
|
||||
'%s should%s see the edit action holders button but %s' % (
|
||||
username if username else 'unauthenticated user',
|
||||
|
@ -1308,7 +1308,7 @@ Man Expires September 22, 2015 [Page 3]
|
|||
)
|
||||
)
|
||||
self.assertEqual(
|
||||
len(q('th:contains("Action Holders") ~ td a[href="%s"]' % remind_ah_url)),
|
||||
len(q('th:contains("Action Holder") ~ td a[href="%s"]' % remind_ah_url)),
|
||||
1 if expect_buttons else 0,
|
||||
'%s should%s see the remind action holders button but %s' % (
|
||||
username if username else 'unauthenticated user',
|
||||
|
|
|
@ -23,7 +23,7 @@
|
|||
<form action="modify/" method="post">{% csrf_token %}
|
||||
<input type="hidden" name="tag" value="{{ director.person.id }}" />
|
||||
<tr>
|
||||
<td id="id-ad-name"><a href="">{{ director.person.name }}</a></td>
|
||||
<td id="id-ad-name"><a href="#">{{ director.person.name }}</a></td>
|
||||
<td>{% if director.name.slug == "ad" %}
|
||||
Voting Enabled
|
||||
{% else %}
|
||||
|
@ -56,4 +56,4 @@
|
|||
</div> <!-- button-group -->
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -34,7 +34,7 @@
|
|||
» Roles
|
||||
{% endblock %}
|
||||
{% block instructions %}
|
||||
<a href="" target="_blank">Instructions</a>
|
||||
<a href="#" target="_blank">Instructions</a>
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
|
@ -84,5 +84,4 @@
|
|||
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% endblock %}
|
|
@ -161,7 +161,7 @@ $timeline-even-hover-color: shift-color($timeline-even-color, $link-shade-percen
|
|||
// Styles needed for the ballot table
|
||||
|
||||
.ballot-icon table td {
|
||||
border: $table-border-width solid $table-border-color;
|
||||
border: $table-border-width solid $gray-500;
|
||||
height: 1em;
|
||||
width: .8em;
|
||||
}
|
||||
|
|
|
@ -116,7 +116,7 @@ $(document)
|
|||
.shift()
|
||||
.trim();
|
||||
|
||||
if ($(contents)
|
||||
if (contents
|
||||
.length > 0 && $(headings)
|
||||
.last()
|
||||
.offset()
|
||||
|
@ -245,9 +245,18 @@ $(document)
|
|||
$('.modal')
|
||||
.on('show.bs.modal', function (e) {
|
||||
var button = $(e.relatedTarget);
|
||||
if (!$(button)
|
||||
.attr("href")) {
|
||||
return;
|
||||
}
|
||||
var loc = $(button)
|
||||
.attr("href")
|
||||
.trim();
|
||||
// load content from value of button href
|
||||
$(this)
|
||||
.find('.modal-content')
|
||||
.load(button.attr("href"));
|
||||
if (loc !== undefined && loc !== "#") {
|
||||
$(this)
|
||||
.find('.modal-content')
|
||||
.load(loc);
|
||||
}
|
||||
});
|
||||
});
|
|
@ -69,8 +69,8 @@ var attachmentWidget = {
|
|||
html += '</span>';
|
||||
container.hide();
|
||||
});
|
||||
//html += ' <a href="" class="removeAttach glyphicon glyphicon-remove text-danger"></a>';
|
||||
html += ' <a href="" class="removeAttach btn btn-default btn-xs">Delete</a>';
|
||||
//html += ' <a href="#" class="removeAttach glyphicon glyphicon-remove text-danger"></a>';
|
||||
html += ' <a href="#" class="removeAttach btn btn-default btn-xs">Delete</a>';
|
||||
html += '</div>';
|
||||
attachmentWidget.config.showOnDisplay.html(html);
|
||||
attachmentWidget.count += 1;
|
||||
|
|
|
@ -49,7 +49,7 @@ $(document)
|
|||
|
||||
// get field classes from first thead row
|
||||
var fields = $(header_row)
|
||||
.find("*")
|
||||
.find("th, td")
|
||||
.map(function () {
|
||||
return $(this)
|
||||
.attr("data-sort") ? $(this)
|
||||
|
|
|
@ -120,7 +120,7 @@ class DraftIdnitsChecker(object):
|
|||
class DraftYangChecker(object):
|
||||
|
||||
name = "yang validation"
|
||||
symbol = '<span class="large">\u262f</span>'
|
||||
symbol = '<i class="bi bi-yin-yang"></i>'
|
||||
|
||||
def check_file_txt(self, path):
|
||||
name = os.path.basename(path)
|
||||
|
@ -293,5 +293,4 @@ class DraftYangChecker(object):
|
|||
items = [ e for res in results for e in res["items"] ]
|
||||
info['items'] = items
|
||||
info['code']['yang'] = model_list
|
||||
return passed, message, errors, warnings, info
|
||||
|
||||
return passed, message, errors, warnings, info
|
|
@ -111,7 +111,7 @@
|
|||
<a href="https://www.rfc-editor.org/" class="p-3">RFC Editor</a>
|
||||
<a href="https://www.iana.org/" class="p-3">IANA</a>
|
||||
<a href="https://www.ietf.org/privacy-statement/" class="p-3">Privacy Statement</a>
|
||||
<p class="small text-muted p-3">
|
||||
<div class="small text-muted p-3">
|
||||
{% if version_num %}
|
||||
<a href="/release/about">About</a>
|
||||
IETF Datatracker
|
||||
|
@ -134,10 +134,10 @@
|
|||
{% if django_version %}Django {{ django_version }}{% endif %}
|
||||
<br>
|
||||
{% include "debug.html" %}
|
||||
</p>
|
||||
</div>
|
||||
</footer>
|
||||
{% endblock %}
|
||||
</div>
|
||||
{% block js %}{% endblock %}
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
|
@ -2,11 +2,6 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load static %}
|
||||
{% block pagehead %}
|
||||
{% if debug %}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/list.css' %}"/>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% origin %}
|
||||
{% if debug %}
|
||||
{% if sql_debug %}
|
||||
|
@ -17,7 +12,7 @@
|
|||
onclick="$('#debug-query-table').toggleClass('visually-hidden');">Show</a>
|
||||
{% endif %}
|
||||
<div id="debug-query-table" class="visually-hidden">
|
||||
<small class="text-start">
|
||||
<div class="text-start">
|
||||
<table class="table table-sm tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
|
@ -106,16 +101,11 @@
|
|||
{% endwith %}
|
||||
</tbody>
|
||||
</table>
|
||||
</small>
|
||||
</div>
|
||||
</div>
|
||||
{% else %}
|
||||
<small class='text-center text-muted'>
|
||||
Add <code>ietf.context_processors.sql_debug</code> to <code>settings.DEV_TEMPLATE_CONTEXT_PROCESSORS</code> to turn on the SQL statement table.
|
||||
</small>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% block js %}
|
||||
{% if debug %}
|
||||
<script src="{% static 'ietf/js/list.js' %}"></script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endif %}
|
|
@ -284,7 +284,7 @@
|
|||
<a href="#"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#check-{{ check.pk }}">
|
||||
{{ check.errors }} errors, {{ check.warnings }} warnings.
|
||||
{{ check.errors }} errors, {{ check.warnings }} warnings
|
||||
</a>
|
||||
{% include "doc/yang-check-modal-overlay.html" %}
|
||||
</td>
|
||||
|
@ -653,7 +653,7 @@
|
|||
<th>
|
||||
</th>
|
||||
<th>
|
||||
Action Holders
|
||||
Action Holder{{ doc.documentactionholder_set.all|pluralize }}
|
||||
</th>
|
||||
<td class="edit">
|
||||
{% if can_edit %}
|
||||
|
|
|
@ -54,7 +54,7 @@
|
|||
<b>{{ doc.title }}</b>
|
||||
{% if doc.action_holders_enabled and doc.action_holders.exists %}
|
||||
<br>
|
||||
Action holders:
|
||||
Action holder{{ doc.documentactionholder_set.all|pluralize }}:
|
||||
{% for action_holder in doc.documentactionholder_set.all %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
|
@ -81,4 +81,4 @@
|
|||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -5,11 +5,11 @@
|
|||
{% load static %}
|
||||
{% load django_bootstrap5 %}
|
||||
{% load person_filters %}
|
||||
{% block title %}Send reminder to action holders for {{ titletext }}{% endblock %}
|
||||
{% block title %}Send reminder to action holder{{ doc.action_holders.all|pluralize }} for {{ titletext }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>
|
||||
Send reminder to action holders
|
||||
Send reminder to action holder{{ doc.action_holders.all|pluralize }}
|
||||
<br>
|
||||
<small class="text-muted">{{ titletext }}</small>
|
||||
</h1>
|
||||
|
|
|
@ -120,13 +120,13 @@
|
|||
<span class="content"></span>
|
||||
<span class="visually-hidden try-yourself">
|
||||
(searched for
|
||||
<a class="query-url" href="">
|
||||
<a class="query-url" href="#">
|
||||
"
|
||||
<span class="query"></span>
|
||||
"
|
||||
</a>
|
||||
, corresponding
|
||||
<a class="query-data-url" href="">export</a>
|
||||
<a class="query-data-url" href="#">export</a>
|
||||
).
|
||||
</span>
|
||||
You have to fill in link and content yourself.
|
||||
|
|
|
@ -12,9 +12,10 @@
|
|||
<h1>Document Search</h1>
|
||||
{% include "doc/search/search_form.html" %}
|
||||
{% if meta.searching %}
|
||||
{% include "doc/search/search_results.html" %}
|
||||
{% include "doc/search/search_results.html" with start_table=True end_table=True %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
<script src="{% static "ietf/js/doc-search.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -15,28 +15,24 @@
|
|||
<td>
|
||||
{% if user.is_authenticated %}
|
||||
<a href="{% url "ietf.community.views.untrack_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc
|
||||
{% if not doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
class="track-untrack-doc {% if not doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Remove from your personal ID list">
|
||||
<span class="bi bi-bookmark-check-fill"></span>
|
||||
</a>
|
||||
<a href="{% url "ietf.community.views.track_document" username=request.user.username name=doc.name %}"
|
||||
class="track-untrack-doc
|
||||
{% if doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
class="track-untrack-doc {% if doc.tracked_in_personal_community_list %}visually-hidden{% endif %}"
|
||||
title="Add to your personal ID list">
|
||||
<span class="bi bi-bookmark"></span>
|
||||
</a>
|
||||
<br>
|
||||
{% endif %}
|
||||
{% if user.review_teams %}
|
||||
<a class="review-wish-add-remove-doc ajax
|
||||
{% if not doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
<a class="review-wish-add-remove-doc ajax {% if not doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wishes_remove" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Remove from your review wishes for all teams">
|
||||
<span class="bi bi-chats"></span>
|
||||
</a>
|
||||
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %}
|
||||
{% if doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
<a class="review-wish-add-remove-doc {% if user.review_teams|length_is:"1" %}ajax {% endif %} {% if doc.has_review_wish %}visually-hidden{% endif %}"
|
||||
href="{% url "ietf.doc.views_review.review_wish_add" name=doc.name %}?next={{ request.get_full_path|urlencode }}"
|
||||
title="Add to your review wishes">
|
||||
<span class="bi bi-chats-o"></span>
|
||||
|
@ -62,7 +58,33 @@
|
|||
</a>
|
||||
{% if doc.get_state_slug == "rfc" and "draft" in doc.name %}<i class="text-muted">(was {{ doc.name }})</i>{% endif %}
|
||||
<br>
|
||||
<b>{{ doc.title }}</b>
|
||||
{% comment %}
|
||||
<div class="float-end">
|
||||
{% for check in doc.submission.latest_checks %}
|
||||
{% if check.passed != None and check.symbol.strip %}
|
||||
{% if check.errors or check.warnings %}
|
||||
<a href="#"
|
||||
class="text-decoration-none checker-warning"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#check-{{ check.pk }}"
|
||||
title="{{ check.checker|title }} returned warnings or errors.">
|
||||
{{ check.symbol|safe }}
|
||||
</a>
|
||||
{% else %}
|
||||
<a href="#"
|
||||
class="text-decoration-none checker-success"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#check-{{ check.pk }}"
|
||||
title="{{ check.checker|title }} passed">
|
||||
{{ check.symbol|safe }}
|
||||
</a>
|
||||
{% endif %}
|
||||
{% include "doc/yang-check-modal-overlay.html" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
{% endcomment %}
|
||||
<b>{{ doc.title|wordwrap:60|linebreaksbr }}</b>
|
||||
{% if doc.has_verified_errata %}
|
||||
<a class="badge bg-danger float-end"
|
||||
href="https://www.rfc-editor.org/errata_search.php?rfc={{ doc.rfc_number }}">
|
||||
|
@ -102,18 +124,6 @@
|
|||
{% if doc.rev != "00" or doc.replaces %}</a>{% endif %}
|
||||
{% endif %}
|
||||
</span>
|
||||
{% comment %}
|
||||
{% for check in doc.submission.latest_checks %}
|
||||
{% if check.passed != None and check.symbol.strip %}
|
||||
{% if check.errors or check.warnings %}
|
||||
<span class="checker-warning float-end" data-bs-toggle="modal" data-bs-target="#check-{{ check.pk }}" title="{{ check.checker|title }} returned warnings or errors.">{{ check.symbol|safe }}</span>
|
||||
{% else %}
|
||||
<span class="checker-success float-end" data-bs-toggle="modal" data-bs-target="#check-{{ check.pk }}" title="{{ check.checker|title }} passed">{{ check.symbol|safe }}</span>
|
||||
{% endif %}
|
||||
{% include "doc/yang-check-modal-overlay.html" %}
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{% endcomment %}
|
||||
{% if doc.latest_revision_date|timesince_days|new_enough:request %}
|
||||
<wbr>
|
||||
<div class="float-end">
|
||||
|
|
|
@ -1,32 +1,30 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
|
||||
{% load ietf_filters %}
|
||||
|
||||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% load ietf_filters static %}
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
{% if not docs %}
|
||||
{% if not skip_no_matches_warning %}
|
||||
<div class="alert alert-info">No documents match your query.</div>
|
||||
{% endif %}
|
||||
{% if not skip_no_matches_warning %}<div class="alert alert-info">No documents match your query.</div>{% endif %}
|
||||
{% else %}
|
||||
|
||||
{% if meta.max %}
|
||||
<div class="alert alert-warning">
|
||||
Too many documents match your query! Returning only a partial result.
|
||||
<div class="alert alert-warning my-3">
|
||||
Too many documents match your query! Returning only a partial result ({{ meta.max }} matches).
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
{% comment %}
|
||||
Disable the js tablesort stuff for a truncate result, per Henrik.
|
||||
{% endcomment %}
|
||||
{% if start_table %}
|
||||
<table class="table table-sm table-striped {% if not meta.max %}tablesorter{% endif %}">
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th></th>
|
||||
|
||||
{% for h in meta.headers %}
|
||||
{% if h.title != "Title" %}
|
||||
<th data-sort="{{ h.key }}">
|
||||
{% if "sort_url" in h %}
|
||||
<a href="{{ h.sort_url }}">{{ h.title|cut:" " }}
|
||||
<a href="{{ h.sort_url }}">
|
||||
{{ h.title|cut:" " }}
|
||||
{% if h.sorted and meta.max %}
|
||||
{% if h.direction == "asc" %}
|
||||
<span class="bi bi-caret-up"></span>
|
||||
|
@ -41,37 +39,32 @@
|
|||
</th>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
||||
{% if color_row_positions %}
|
||||
<th></th>
|
||||
{% endif %}
|
||||
{% if color_row_positions %}<th></th>{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
{% endif %}
|
||||
|
||||
{% regroup docs by search_heading as grouped_docs %}
|
||||
|
||||
{% for doc_group in grouped_docs %}
|
||||
<thead>
|
||||
<tr class="table-info">
|
||||
<th></th>
|
||||
{% if color_row_positions %}
|
||||
<th colspan="{{ meta.headers|length }}">
|
||||
{% else %}
|
||||
<th colspan="{{ meta.headers|length|add:"-1" }}">
|
||||
{% endif %}
|
||||
{{ doc_group.grouper|plural:doc_group.list }} ({{doc_group.list|length}} {{"hit"|plural:doc_group.list}})
|
||||
</th>
|
||||
</tr>
|
||||
{% else %}
|
||||
<th colspan="{{ meta.headers|length|add:"-1" }}">
|
||||
{% endif %}
|
||||
{{ doc_group.grouper|plural:doc_group.list }} ({{ doc_group.list|length }} {{"hit"|plural:doc_group.list }})
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for doc in doc_group.list %}
|
||||
{% include "doc/search/search_result_row.html" %}
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% if end_table %}
|
||||
</table>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% if end_table %}</table>{% endif %}
|
||||
{% endif %}
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -1,21 +1,22 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% load ietf_filters ballot_icon person_filters %}
|
||||
<td class="status">
|
||||
<div class="float-end mx-3 mb-3" id="ballot-icon-{{ doc.name }}">
|
||||
{% if doc.ballot %}
|
||||
{% ballot_icon doc %}
|
||||
{% endif %}
|
||||
</div>
|
||||
{% if doc.ballot %}
|
||||
<div class="float-end" id="ballot-icon-{{ doc.name }}">{% ballot_icon doc %}</div>
|
||||
{% endif %}
|
||||
{% if not doc.get_state_slug == "rfc" %}
|
||||
{% if '::' in doc.friendly_state %}
|
||||
{{ doc.friendly_state|safe|split:"::"|join:"::<wbr>" }}
|
||||
{{ doc.friendly_state|safe|split:'::'|join:'::<wbr>' }}
|
||||
{% else %}
|
||||
{{ doc.friendly_state|safe }}
|
||||
{% endif %}
|
||||
{% if doc|state:"draft-rfceditor" %}
|
||||
<wbr>: <a href="https://www.rfc-editor.org/queue2.html#{{ doc.name }}">{{ doc|state:"draft-rfceditor" }}</a>
|
||||
<wbr>
|
||||
:
|
||||
<a href="https://www.rfc-editor.org/queue2.html#{{ doc.name }}">{{ doc|state:"draft-rfceditor" }}</a>
|
||||
{% endif %}
|
||||
{{ doc|auth48_alert_badge }}
|
||||
{{ doc|state_age_colored }}
|
||||
|
@ -34,12 +35,14 @@
|
|||
{% if doc|state:"stream" %}
|
||||
{{ doc|state:"stream" }}
|
||||
{% if doc.intended_std_level %}
|
||||
:<wbr>
|
||||
:
|
||||
<wbr>
|
||||
{% endif %}
|
||||
{% else %}
|
||||
{{ doc.stream }} stream
|
||||
{% if doc.intended_std_level %}
|
||||
:<wbr>
|
||||
:
|
||||
<wbr>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
|
@ -50,7 +53,7 @@
|
|||
{% endif %}
|
||||
{% if doc.reviewed_by_teams %}
|
||||
<br>
|
||||
Reviews:
|
||||
Review{{ doc.reviewed_by_teams|pluralize }}:
|
||||
{% spaceless %}
|
||||
{% for acronym in doc.reviewed_by_teams %}
|
||||
<a href="{% url "ietf.group.views.group_home" acronym=acronym %}">{{ acronym }}</a>
|
||||
|
@ -66,9 +69,10 @@
|
|||
{% endfor %}
|
||||
{% if doc.action_holders_enabled and doc.action_holders.exists %}
|
||||
<br>
|
||||
Action Holders:
|
||||
Action Holder{{ doc.documentactionholder_set.all|pluralize }}:
|
||||
{% for action_holder in doc.documentactionholder_set.all %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}{% if not forloop.last %},{% endif %}
|
||||
{% person_link action_holder.person title=action_holder.role_for_doc %} {{ action_holder|action_holder_badge }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% else %}
|
||||
|
@ -76,11 +80,11 @@
|
|||
{{ doc.std_level|safe }} RFC
|
||||
{% if doc.obsoleted_by_list %}
|
||||
<br>
|
||||
Obsoleted by {{ doc.obsoleted_by_list|join:", "|urlize_ietf_docs }}
|
||||
<span class="text-muted">Obsoleted by {{ doc.obsoleted_by_list|join:", "|urlize_ietf_docs }}</span>
|
||||
{% endif %}
|
||||
{% if doc.updated_by_list %}
|
||||
<br>
|
||||
Updated by {{ doc.updated_by_list|join:", "|urlize_ietf_docs }}
|
||||
<span class="text-muted">Updated by {{ doc.updated_by_list|join:", "|urlize_ietf_docs }}</span>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</td>
|
|
@ -1,22 +1,22 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load ietf_filters %}
|
||||
{% load textfilters %}
|
||||
|
||||
{% block title %}
|
||||
Shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Shepherd writeup for {{ doc.canonical_name }}-{{ doc.rev }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Shepherd writeup<br><small class="text-muted">{{ doc.canonical_name }}-{{ doc.rev }}</small></h1>
|
||||
|
||||
<pre class="pasted">{{writeup|linkify}}</pre>
|
||||
|
||||
<h1>
|
||||
Shepherd writeup
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.canonical_name }}-{{ doc.rev }}</small>
|
||||
</h1>
|
||||
<pre class="border p-3 my-3">{{writeup|linkify|wordwrap:"80"}}</pre>
|
||||
{% if can_edit %}
|
||||
<a class="btn btn-primary" href="{% url 'ietf.doc.views_draft.edit_shepherd_writeup' name=doc.name %}">Edit</a>
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.doc.views_draft.edit_shepherd_writeup' name=doc.name %}">Edit</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-secondary float-end" href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
|
||||
{% endblock %}
|
||||
<a class="btn btn-secondary float-end"
|
||||
href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
{% endblock %}
|
|
@ -1,27 +1,27 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load static %}
|
||||
{% block title %}{{ title }}{% endblock %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>{{ title }}</h1>
|
||||
|
||||
{% if state_type.slug == "draft-iesg" %}
|
||||
<p><a class="btn btn-primary" href="{% static 'ietf/images/iesg-draft-state-diagram.png' %}">View diagram</a></p>
|
||||
<p>
|
||||
<a class="btn btn-primary"
|
||||
href="{% static 'ietf/images/iesg-draft-state-diagram.png' %}">View diagram</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>State</th>
|
||||
<th>Description</th>
|
||||
{% if has_next_states %}<th>Next State</th>{% endif %}
|
||||
<th data-sort="state">State</th>
|
||||
<th data-sort="description">Description</th>
|
||||
{% if has_next_states %}<th data-sort="next">Next State</th>{% endif %}
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
@ -32,7 +32,8 @@
|
|||
{% if has_next_states %}
|
||||
<td>
|
||||
{% for s in state.next_states.all %}
|
||||
{{ s.name }}<br/>
|
||||
{{ s.name }}
|
||||
<br />
|
||||
{% endfor %}
|
||||
</td>
|
||||
{% endif %}
|
||||
|
@ -40,18 +41,15 @@
|
|||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if tags %}
|
||||
<h2>Tags</h2>
|
||||
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Tag</th>
|
||||
<th>Description</th>
|
||||
<th data-sort="tag">Tag</th>
|
||||
<th data-sort="description">Description</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for tag in tags %}
|
||||
<tr id="{{ tag.slug }}">
|
||||
|
@ -62,9 +60,7 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -1,24 +1,21 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Approve {{doc.canonical_name }}{% endblock %}
|
||||
|
||||
{% block title %}Approve {{ doc.canonical_name }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Approve<br><small class="text-muted">{{ doc.canonical_name }}</small></h1>
|
||||
|
||||
<form method="post">
|
||||
<h1>
|
||||
Approve
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.canonical_name }}</small>
|
||||
</h1>
|
||||
<form class="my-3" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_formset formset %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary" >Send announcement & close ballot</button>
|
||||
<a class="btn btn-secondary float-end" href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Send announcement & close ballot</button>
|
||||
<a class="btn btn-secondary float-end"
|
||||
href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,30 +1,41 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
{% load ietf_filters %}
|
||||
|
||||
{% block title %}Last call text for {{ doc }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Last call text<br><small class="text-muted">{{ doc }}</small></h1>
|
||||
|
||||
<form class="edit-last-call-text" method="post">
|
||||
<h1>
|
||||
Last call text
|
||||
<br>
|
||||
<small class="text-muted">{{ doc }}</small>
|
||||
</h1>
|
||||
<form class="my-3 edit-last-call-text" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form last_call_form %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary" name="save_last_call_text" value="Save Last Call Text">Save text</button>
|
||||
<button type="submit" class="btn btn-primary" name="send_last_call_request" value="Save and Request Last Call">Save text & request last call</button>
|
||||
<button type="submit" class="btn btn-warning" name="regenerate_last_call_text" value="Regenerate Last Call Text">Reset to template text</button>
|
||||
<button type="submit"
|
||||
class="btn btn-primary"
|
||||
name="save_last_call_text"
|
||||
value="Save Last Call Text">Save text</button>
|
||||
<button type="submit"
|
||||
class="btn btn-warning"
|
||||
name="send_last_call_request"
|
||||
value="Save and Request Last Call">
|
||||
Save text & request last call
|
||||
</button>
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
<a class="btn btn-primary" href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a>
|
||||
<a class="btn btn-warning"
|
||||
href="{% url 'ietf.doc.views_ballot.make_last_call' name=doc.name %}">Issue last call</a>
|
||||
{% endif %}
|
||||
<a class="btn btn-secondary float-end" href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
|
||||
|
||||
<button type="submit"
|
||||
class="btn btn-danger"
|
||||
name="regenerate_last_call_text"
|
||||
value="Regenerate Last Call Text">
|
||||
Reset to template text
|
||||
</button>
|
||||
<a class="btn btn-secondary float-end"
|
||||
href="{% url "ietf.doc.views_doc.document_main" name=doc.name %}">Back</a>
|
||||
</form>
|
||||
{% endblock%}
|
||||
{% endblock %}
|
|
@ -1,40 +1,32 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load static %}
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/datepicker.css' %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Make last call for {{ doc.name }}{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
||||
<h1>Make last call<br><small class="text-muted">{{doc.name}}</small></h1>
|
||||
|
||||
<div class="mb-3">
|
||||
<h1>
|
||||
Make last call
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.name }}</small>
|
||||
</h1>
|
||||
<div class="my-3">
|
||||
<label>Last call text</label>
|
||||
<pre>{{ announcement }}</pre>
|
||||
<pre class="border p-3">{{ announcement }}</pre>
|
||||
</div>
|
||||
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
<button type="reset" class="btn btn-warning">Reset</button>
|
||||
<a class="btn btn-secondary float-end" href="{{ doc.get_absolute_url }}">Back</a>
|
||||
|
||||
|
||||
</form>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static 'ietf/js/datepicker.js' %}"></script>
|
||||
<script>
|
||||
|
@ -42,8 +34,6 @@
|
|||
format: "yyyy-mm-dd",
|
||||
todayBtn: "linked",
|
||||
todayHighlight: true
|
||||
}).wrap('<div class="input-group"></div>').parent().prepend('<span class="input-group-addon"><span class="bi bi-calendar"></span></span>');
|
||||
}).wrap('<div class="input-group mb-3"></div>').parent().prepend('<span class="input-group-text"><span class="bi bi-calendar"></span></span>');
|
||||
</script>
|
||||
{% endblock %}
|
||||
|
||||
|
||||
{% endblock %}
|
|
@ -1,22 +1,23 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load ietf_filters static %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}RFC status changes{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>RFC status changes</h1>
|
||||
|
||||
{% if user|has_role:"Area Director,Secretariat" %}
|
||||
<p><a class="btn btn-primary" href="{% url 'ietf.doc.views_status_change.start_rfc_status_change' %}">New RFC status change</a></p>
|
||||
<p>
|
||||
<a class="btn btn-primary my-3"
|
||||
href="{% url 'ietf.doc.views_status_change.start_rfc_status_change' %}">
|
||||
New RFC status change
|
||||
</a>
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
{% regroup docs by get_state as state_groups %}
|
||||
<table class="table table-striped table-sm tablesorter">
|
||||
<thead>
|
||||
|
@ -25,24 +26,25 @@
|
|||
<th data-sort="title">Title</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
{% for state in state_groups %}
|
||||
<thead>
|
||||
<tr class="table-info"><th colspan="2">{{state.grouper}}</th></tr>
|
||||
<tr class="table-info">
|
||||
<th colspan="2">{{ state.grouper }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{% for doc in state.list %}
|
||||
<tr>
|
||||
<td>{{ doc.displayname_with_link|safe }}</td>
|
||||
<td><b>{{ doc.title }}</b></td>
|
||||
<td>
|
||||
<b>{{ doc.title }}</b>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
|
@ -1,27 +1,35 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Edit status change text for {{doc.title}}{% endblock %}
|
||||
|
||||
{% block title %}Edit status change text for {{ doc.title }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Edit status change text<br><small class="text-muted">{{doc.title}}</small></h1>
|
||||
|
||||
<p>The text will be submitted as <b>{{ doc.canonical_name }}-{{ next_rev }}</b>:</p>
|
||||
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
<h1>
|
||||
Edit status change text
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.title }}</small>
|
||||
</h1>
|
||||
<p class="my-3 alert alert-info">
|
||||
The text will be submitted as <b>{{ doc.canonical_name }}-{{ next_rev }}</b>.
|
||||
</p>
|
||||
<form class="my-3" enctype="multipart/form-data" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary" name="submit_response" value="Submit">Submit</button>
|
||||
<button type="submit" class="btn btn-warning" name="reset_text" value="Reset to Template Text">Reset to template text</button>
|
||||
<a class="btn btn-secondary float-end" href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">Back</a>
|
||||
|
||||
|
||||
<button type="submit"
|
||||
class="btn btn-primary"
|
||||
name="submit_response"
|
||||
value="Submit">Submit</button>
|
||||
<button type="submit"
|
||||
class="btn btn-warning"
|
||||
name="reset_text"
|
||||
value="Reset to Template Text">
|
||||
Reset to template text
|
||||
</button>
|
||||
<a class="btn btn-secondary float-end"
|
||||
href="{% url "ietf.doc.views_doc.document_main" name=doc.canonical_name %}">
|
||||
Back
|
||||
</a>
|
||||
</form>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,84 +1,106 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}
|
||||
Publication request for {{doc.name}}-{{doc.rev}}
|
||||
{% endblock %}
|
||||
|
||||
{% load django_bootstrap5 person_filters %}
|
||||
{% block title %}Publication request for {{ doc.name }}-{{ doc.rev }}{% endblock %}
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Publication request<br><small class="text-muted">{{doc.name}}-{{doc.rev}}</small></h1>
|
||||
|
||||
<p>
|
||||
<h1>
|
||||
Publication request
|
||||
<br>
|
||||
<small class="text-muted">{{ doc.name }}-{{ doc.rev }}</small>
|
||||
</h1>
|
||||
<p class="my-3">
|
||||
Please verify the following information:
|
||||
</p>
|
||||
|
||||
<table class="table table-sm">
|
||||
<tr {% if warn.intended_std_level %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Intended status level</th>
|
||||
<td>{% if warn.intended_std_level %}<span class="bi bi-exclamation"></span>{% endif %}</td>
|
||||
<td>{{doc.intended_std_level}}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="text-nowrap">Responsible AD</th>
|
||||
<td></td>
|
||||
<td>{{ad}}</td>
|
||||
</tr>
|
||||
|
||||
<tr {% if warn.shepherd %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Document shepherd</th>
|
||||
<td>{% if warn.shepherd %}<span class="bi bi-exclamation"></span>{% endif %}</td>
|
||||
<td>{% if doc.shepherd %}{{ doc.shepherd.person }}{% endif %}</td>
|
||||
</tr>
|
||||
|
||||
<tr {% if warn.shepherd_writeup %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Shepherd write-up exists</th>
|
||||
<td>{% if warn.shepherd_writeup %}<span class="bi bi-exclamation"></span>{% endif %}</td>
|
||||
<td>{%if shepherd_writeup %}Yes{%else%}No{%endif%}</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<th class="text-nowrap">Also notify</th>
|
||||
<td></td>
|
||||
<td>{% if notify %}{{notify}}{%else%}(None){%endif%}</td>
|
||||
</tr>
|
||||
|
||||
<tr {% if warn.tags %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Annotation tags</th>
|
||||
<td>{% if warn.tags %}<span class="bi bi-exclamation"></span>{% endif %}</td>
|
||||
<td>{% if not tags %}(None){%else%}{% for tag in tags %}{{ tag }}{% if not forloop.last%}, {%endif%}{% endfor %}{% endif %}</td>
|
||||
</tr>
|
||||
<table class="table table-sm table-borderless">
|
||||
<tbody>
|
||||
<tr {% if warn.intended_std_level %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Intended status level</th>
|
||||
<td {% if warn.intended_std_level %}class="text-danger"{% endif %}>
|
||||
{% if warn.intended_std_level %}<i class="bi bi-exclamation-circle"></i>{% endif %}
|
||||
{{ doc.intended_std_level }}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="text-nowrap">Responsible AD</th>
|
||||
<td>{% person_link ad %}</td>
|
||||
</tr>
|
||||
<tr {% if warn.shepherd %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Document shepherd</th>
|
||||
<td {% if warn.shepherd %}class="text-danger"{% endif %}>
|
||||
{% if warn.shepherd %}<i class="bi bi-exclamation-circle"></i>{% endif %}
|
||||
{% if doc.shepherd %}
|
||||
{% person_link doc.shepherd.person %}
|
||||
{% else %}
|
||||
(None)
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr {% if warn.shepherd_writeup %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Shepherd write-up exists</th>
|
||||
<td {% if warn.shepherd_writeup %}class="text-danger"{% endif %}>
|
||||
{% if warn.shepherd_writeup %}<i class="bi bi-exclamation-circle"></i>{% endif %}
|
||||
{% if shepherd_writeup %}
|
||||
Yes
|
||||
{% else %}
|
||||
No
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th class="text-nowrap">Also notify</th>
|
||||
<td>
|
||||
{% if notify %}
|
||||
{{ notify }}
|
||||
{% else %}
|
||||
(None)
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
<tr {% if warn.tags %}class="table-warning"{% endif %}>
|
||||
<th class="text-nowrap">Annotation tags</th>
|
||||
<td {% if warn.tags %}class="text-danger"{% endif %}>
|
||||
{% if warn.tags %}<i class="bi bi-exclamation-circle"></i>{% endif %}
|
||||
{% if not tags %}
|
||||
(None)
|
||||
{% else %}
|
||||
{% for tag in tags %}
|
||||
{{ tag }}
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
{% if warn %}
|
||||
<p class="alert alert-warning"><span class="bi bi-exclamation"></span> indicates the document might not be ready for submission. Please check each instance carefully to see if changes need to be made to the document's state before submitting.</p>
|
||||
<p class="alert alert-warning">
|
||||
<i class="bi bi-exclamation-circle"></i>
|
||||
indicates the document might not be ready for submission. Please check each instance carefully to see if changes need to be made to the document's state before submitting.
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
<p>
|
||||
Upon submission:
|
||||
<ul>
|
||||
<li> the document will be placed into the IESG '{{target_state.iesg}}' state</li>
|
||||
<li> the document will be placed into the working group '{{target_state.wg}}' state</li>
|
||||
{% if not ad == doc.ad %}<li> the responsible AD will be set as above </li>{% endif %}
|
||||
{% if not notify == doc.notify %}<li> the document's state change notification list will be set as above </li>{% endif %}
|
||||
<li> an entry will be made noting the publication request in the document's history</li>
|
||||
<li> an email message will be sent to the working group chairs, the secretariat, and everyone listed above</li>
|
||||
<li>the document will be placed into the IESG '{{ target_state.iesg }}' state</li>
|
||||
<li>the document will be placed into the working group '{{ target_state.wg }}' state</li>
|
||||
{% if not ad == doc.ad %}<li>the responsible AD will be set as above</li>{% endif %}
|
||||
{% if not notify == doc.notify %}<li>the document's state change notification list will be set as above</li>{% endif %}
|
||||
<li>an entry will be made noting the publication request in the document's history</li>
|
||||
<li>an email message will be sent to the working group chairs, the secretariat, and everyone listed above</li>
|
||||
</ul>
|
||||
</p>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
|
||||
<input type="submit" class="btn btn-warning" name="confirm" value="Request publication">
|
||||
<input type="submit" class="btn btn-secondary float-end" name="cancel" value="Back">
|
||||
|
||||
|
||||
<input type="submit"
|
||||
class="btn btn-warning"
|
||||
name="confirm"
|
||||
value="Request publication">
|
||||
<input type="submit"
|
||||
class="btn btn-secondary float-end"
|
||||
name="cancel"
|
||||
value="Back">
|
||||
</form>
|
||||
|
||||
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,10 +1,21 @@
|
|||
{% load ietf_filters %}{% load origin %}{% origin %}
|
||||
<div class="modal fade" id="check-{{check.pk}}" tabindex="-1" role="dialog" aria-labelledby="check-{{check.pk}}" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
{# bs5ok #}
|
||||
{% load origin %}{% origin %}
|
||||
{% load ietf_filters %}
|
||||
<div class="modal fade"
|
||||
id="check-{{ check.pk }}"
|
||||
tabindex="-1"
|
||||
aria-labelledby="check-{{ check.pk }}-label"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog modal-xl modal-dialog-scrollable">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-bs-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4 class="modal-title" id="nitslabel">{{ check.checker|title }} for {{ doc.name }}-{{ doc.rev }} on {{ check.time|date:"Y-m-d" }}</h4>
|
||||
<h5 class="modal-title" id="check-{{ check.pk }}-label">
|
||||
{{ check.checker|title }} for {{ doc.name }}-{{ doc.rev }} on {{ check.time|date:"Y-m-d" }}
|
||||
</h5>
|
||||
<button type="button"
|
||||
class="btn-close"
|
||||
data-bs-dismiss="modal"
|
||||
aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<pre class="pasted">{{ check.message|zaptmp }}</pre>
|
||||
|
@ -14,4 +25,4 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
|
@ -1,10 +1,13 @@
|
|||
{# bs5ok #}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}{% origin %}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
<html>
|
||||
<body>
|
||||
|
||||
<h3>This is a verification page for the <a href="https://www.google.com/webmasters/tools/siteoverview">Google Webmaster Tools</a>.</h3>
|
||||
|
||||
<h3>
|
||||
This is a verification page for the
|
||||
<a href="https://www.google.com/webmasters/tools/siteoverview">Google Webmaster Tools</a>
|
||||
.
|
||||
</h3>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
</html>
|
|
@ -1,39 +1,43 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2021, All Rights Reserved #}
|
||||
{% load origin static %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Active administrative groups{% endblock %}
|
||||
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
{% regroup adm by parent as grouped_groups %}
|
||||
{% for grouptype in grouped_groups %}
|
||||
<h1>Active {% firstof grouptype.grouper.verbose_name grouptype.grouper.name 'Top-level Administration' %} Groups</h1>
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<h1>Active administrative groups</h1>
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th data-sort="group">Group</th>
|
||||
<th data-sort="name">Name</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{% regroup adm by parent as grouped_groups %}
|
||||
{% for grouptype in grouped_groups %}
|
||||
<thead>
|
||||
<tr>
|
||||
<th>{{grouptype.grouper}}</th>
|
||||
<th>Name</th>
|
||||
<th colspan=2 class="table-info">
|
||||
Active {% firstof grouptype.grouper.verbose_name grouptype.grouper.name 'Top-level Administration' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for group in grouptype.list %}
|
||||
<tr>
|
||||
<td><a href="{% url "ietf.group.views.group_home" acronym=group.acronym %}">{{ group.acronym }}</a></td>
|
||||
<td>
|
||||
<a href="{% url "ietf.group.views.group_home" acronym=group.acronym %}">{{ group.acronym }}</a>
|
||||
</td>
|
||||
<td>{{ group.name }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,47 +1,58 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin static %}
|
||||
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
|
||||
{% block title %}Active area groups{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Active area groups</h1>
|
||||
<table class="table table-sm table-striped tablesorter">
|
||||
<table class="my-3 table table-sm table-striped tablesorter">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Team</th>
|
||||
<th>Name</th>
|
||||
<th>AD</th>
|
||||
<th>Secretaries</th>
|
||||
<th>Chairs</th>
|
||||
<th data-sort="team">Team</th>
|
||||
<th data-sort="name">Name</th>
|
||||
<th data-sort="ad">AD</th>
|
||||
<th data-sort="secretaries">Secretaries</th>
|
||||
<th data-sort="chairs">Chairs</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{% for group in groups %}
|
||||
<tr>
|
||||
<td><a href="{% url "ietf.group.views.group_home" acronym=group.acronym %}">{{ group.acronym }}</a></td>
|
||||
<td>
|
||||
<a href="{% url "ietf.group.views.group_home" acronym=group.acronym %}">{{ group.acronym }}</a>
|
||||
</td>
|
||||
<td>{{ group.name }}</td>
|
||||
<td>
|
||||
{% for ad in group.ads %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=ad.person.name %}">{{ ad.person.plain_name }}
|
||||
</a><a href="mailto:{{ ad.email.address }}"><span class="bi bi-envelope tiny"></span></a>{% if not forloop.last %}, {% endif %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=ad.person.name %}">{{ ad.person.plain_name }}</a>
|
||||
<a href="mailto:{{ ad.email.address }}">
|
||||
<span class="bi bi-envelope tiny"></span>
|
||||
</a>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for secretary in group.secretaries %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=secretary.person.name %}">{{ secretary.person.plain_name }}
|
||||
</a><a href="mailto:{{ secretary.email.address }}"><span class="bi bi-envelope tiny"></span></a> {% if not forloop.last %}, {% endif %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=secretary.person.name %}">
|
||||
{{ secretary.person.plain_name }}
|
||||
</a>
|
||||
<a href="mailto:{{ secretary.email.address }}">
|
||||
<span class="bi bi-envelope tiny"></span>
|
||||
</a>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
<td>
|
||||
{% for chair in group.chairs %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=chair.person.name %}">{{ chair.person.plain_name }}
|
||||
</a><a href="mailto:{{ chair.email.address }}"><span class="bi bi-envelope tiny"></span></a>{% if not forloop.last %}, {% endif %}
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=chair.person.name %}">{{ chair.person.plain_name }}</a>
|
||||
<a href="mailto:{{ chair.email.address }}">
|
||||
<span class="bi bi-envelope tiny"></span>
|
||||
</a>
|
||||
{% if not forloop.last %},{% endif %}
|
||||
{% endfor %}
|
||||
</td>
|
||||
</tr>
|
||||
|
@ -49,7 +60,6 @@
|
|||
</tbody>
|
||||
</table>
|
||||
{% endblock %}
|
||||
|
||||
{% block js %}
|
||||
<script src="{% static "ietf/js/list.js" %}"></script>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
|
@ -1,23 +1,56 @@
|
|||
{# bs5ok #}
|
||||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
|
||||
{% load origin textfilters %}
|
||||
{% block title %}Active areas{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Areas</h1>
|
||||
<p>The IETF divides its work into a number of areas, each comprised of working groups that relate to that area's focus. The area structure is defined by the IESG, and the IESG can add areas, redefine areas, merge areas, change the number of ADs assigned to an area, or close down areas.</p>
|
||||
<p>Changes to the area structure affect the IETF in many ways; decisions to change the area structure are taken in consultation with the community.</p>
|
||||
<p>When changing the area structure, the IESG can decide which members are responsible for new and changed areas, including making one sitting AD responsible for multiple areas, but the IESG can only add new members through the <a href="https://www.ietf.org/nomcom/index.html">nomcom process</a>.</p>
|
||||
<p>The primary task of area management is handled by one or two Area Directors per area. An AD may be advised by one or more directorates, which are created, selected, chaired and if necessary disbanded by the AD. Directorates may be specific to an area, specific to a technology, or chartered in some other fashion.</p>
|
||||
<p>The ADs for an area are jointly responsible for making sure the WGs in the area are well coordinated, that there is coverage for the technologies needed in the area, and that the challenges most important to the Internet in that area are indeed being worked on.</p>
|
||||
<ul><li>A full list of active working groups, sorted by area, may be found at <a href="{% url 'ietf.group.views.active_groups' group_type='wg'%}">{% url 'ietf.group.views.active_groups' group_type='wg' %}</a>.</li></ul>
|
||||
<p>The IESG decides which areas working groups belong to. The charter of each area is listed below.</p>
|
||||
|
||||
<p>
|
||||
The IETF divides its work into a number of areas, each comprised of working groups that relate to that area's focus. The area structure is defined by the IESG, and the IESG can add areas, redefine areas, merge areas, change the number of ADs assigned to an area, or close down areas.
|
||||
</p>
|
||||
<p>
|
||||
Changes to the area structure affect the IETF in many ways; decisions to change the area structure are taken in consultation with the community.
|
||||
</p>
|
||||
<p>
|
||||
When changing the area structure, the IESG can decide which members are responsible for new and changed areas, including making one sitting AD responsible for multiple areas, but the IESG can only add new members through the
|
||||
<a href="https://www.ietf.org/nomcom/index.html">NomCom process</a>.
|
||||
</p>
|
||||
<p>
|
||||
The primary task of area management is handled by one or two Area Directors per area. An AD may be advised by one or more directorates, which are created, selected, chaired and if necessary disbanded by the AD. Directorates may be specific to an area, specific to a technology, or chartered in some other fashion.
|
||||
</p>
|
||||
<p>
|
||||
The ADs for an area are jointly responsible for making sure the WGs in the area are well coordinated, that there is coverage for the technologies needed in the area, and that the challenges most important to the Internet in that area are indeed being worked on.
|
||||
</p>
|
||||
<p>
|
||||
For more information about the role of the IESG in areas and working groups, please see
|
||||
<a href="https://www.ietf.org/rfc/rfc3710.txt">RFC 3710 ("An IESG charter")</a>,
|
||||
Section 6 and
|
||||
<a href="https://www.ietf.org/rfc/rfc2418.txt">RFC 2418 ("IETF Working Group Guidelines and Procedures")</a>.
|
||||
</p>
|
||||
<p>
|
||||
A full list of active working groups, sorted by area, may be found at
|
||||
<a href="{% url 'ietf.group.views.active_groups' group_type='wg' %}">
|
||||
{% url 'ietf.group.views.active_groups' group_type='wg' %}
|
||||
</a>.
|
||||
</p>
|
||||
<p>
|
||||
The IESG decides which areas working groups belong to. The charter of each area is listed below:
|
||||
<ul>
|
||||
{% for area in areas %}
|
||||
<li>
|
||||
<a href="#id-{{ area.acronym|slugify }}">{{ area.acronym|upper }} – {{ area.name }}</a>
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</p>
|
||||
{% for area in areas %}
|
||||
<h2><a href="{%url 'ietf.group.views.active_groups' group_type='wg'%}#{{area.acronym}}">{{area.name}} ({{area.acronym}})</a></h2>
|
||||
<pre class="pasted">{{area.description}}</pre>
|
||||
<h2 class="mt-3" id="id-{{ area.acronym|slugify }}">
|
||||
{{ area.name }}
|
||||
<a href="{% url 'ietf.group.views.active_groups' group_type='wg' %}#{{ area.acronym }}">({{ area.acronym|upper }})</a>
|
||||
</h2>
|
||||
<p>
|
||||
{{ area.description|linkify|safe }}
|
||||
</p>
|
||||
{% endfor %}
|
||||
<p>For more information about the role of the IESG in areas and working groups, please see <a href="https://www.ietf.org/rfc/rfc3710.txt">RFC 3710 ("An IESG charter")</a>, section 6 and <a href="https://www.ietf.org/rfc/rfc2418.txt">RFC 2418 ("IETF Working Group Guidelines and Procedures")</a>.</p>
|
||||
{% endblock %}
|
||||
{% endblock %}
|
Loading…
Reference in a new issue