More template changes.

- Legacy-Id: 19706
This commit is contained in:
Lars Eggert 2021-11-24 13:15:11 +00:00
parent 5174cb3e6f
commit a189b51b30
28 changed files with 236 additions and 196 deletions

View file

@ -208,7 +208,7 @@ def state_age_colored(doc):
elif days > goal1:
class_name = "badge bg-warning"
else:
class_name = "ietf-small"
class_name = "badge bg-success"
if days > goal1:
title = ' title="Goal is <%d days"' % (goal1,)
else:

View file

@ -3,6 +3,7 @@ import * as List from "list.js";
var dummy = new List();
function text_sort(a, b, options) {
// sort by text content
return dummy.utils.naturalSort.caseInsensitive($($.parseHTML(a.values()[options.valueName]))
.text()
.trim()
@ -21,11 +22,13 @@ $(document)
var header_row = $(table)
.find("thead > tr:first");
// get field classes from first thead row
var fields = $(header_row)
.find("*")
.map(function () {
return $(this)
.attr("data-sort");
.attr("data-sort") ? $(this)
.attr("data-sort") : "";
})
.toArray();
@ -45,6 +48,7 @@ $(document)
header_row.addClass("visually-hidden");
}
// HTML for the search widget
var searcher = $.parseHTML(`
<div class="input-group my-3">
<input type="search" class="search form-control" placeholder="Search"/>
@ -62,13 +66,46 @@ $(document)
var reset_search = $(searcher)
.children("button.search-reset");
// var pager = $.parseHTML(`
// <nav aria-label="Pagination control" class="visually-hidden">
// <ul class="pagination"></ul>
// </nav>`);
// $(table)
// .after(pager);
var list_instance = [];
var internal_table = [];
var pagination = $(table)
.children("tbody")
.length == 1;
// list.js cannot deal with tables with multiple tbodys,
// so maintain separate internal "tables" for
// sorting/searching and update the DOM based on them
$(table)
.children("tbody")
.addClass("list")
.each(function () {
// add the required classes to the cells
$(this)
.children("tr")
.each(function () {
$(this)
.children("th, td")
.each((i, e) => {
$(e)
.addClass(fields[i]);
if (fields[i] == "date") {
// magic
$(e)
.addClass("text-end");
}
});
});
// create the internal table and add list.js to them
var thead = $(this)
.siblings("thead:first")
.clone();
@ -80,12 +117,26 @@ $(document)
.clone()
.empty()
.removeClass("tablesorter")
.wrap("<div id='abc'></div")
.append(thead, tbody);
internal_table.push(parent);
// if (pagination) {
// console.log("Enabling pager.");
// $(pager)
// .removeClass("visually-hidden");
// pagination = {
// item: '<li class="page-item"><a class="page-link" href="#"></a></li>'
// };
// }
list_instance.push(
new List(parent[0], { valueNames: fields }));
new List(parent[0], {
valueNames: fields,
// pagination: pagination,
// page: 10
}));
});
reset_search.on("click", function () {

View file

@ -27,10 +27,10 @@
<tbody>
{% for alias in aliases %}
<tr>
<td class="alias">
<td>
<a href="mailto:{{ doc.name }}{{ alias.alias_type|default:''}}@{{ietf_domain}}">
{{ doc.name }}{{ alias.alias_type|default:''}}@{{ietf_domain}}</a></td>
<td class="expansion">{{ alias.expansion }}</td>
<td>{{ alias.expansion }}</td>
</tr>
{% endfor %}
</tbody>
@ -50,10 +50,10 @@
<tbody>
{% for trigger,desc,to,cc in expansions %}
<tr>
<td class="trigger"><a href="{% url 'ietf.mailtrigger.views.show_triggers' trigger %}"
<td><a href="{% url 'ietf.mailtrigger.views.show_triggers' trigger %}"
title="{{desc}}">{{trigger}}</a></td>
<td class="to"> {{to|join:', '}}</td>
<td class="cc"> {{cc|join:', '}}</td>
<td> {{to|join:', '}}</td>
<td> {{cc|join:', '}}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -98,10 +98,10 @@
<tbody>
{% for e in events %}
<tr class="anchor-target" id="history-{{ e.pk }}">
<td class="text-nowrap date"><div title="{{ e.time|date:'Y-m-d H:i:s O' }}">{{ e.time|date:"Y-m-d" }}</div></td>
<td class="text-end rev">{{ e.rev }}</td>
<td class="by">{{ e.by|escape }}</td>
<td class="action">{{ e.desc|format_history_text|safe }}</td>
<td class="text-nowrap"><div title="{{ e.time|date:'Y-m-d H:i:s O' }}">{{ e.time|date:"Y-m-d" }}</div></td>
<td class="text-end">{{ e.rev }}</td>
<td>{{ e.by|escape }}</td>
<td>{{ e.desc|format_history_text|safe }}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -43,26 +43,26 @@
{% for ref in refs %}
{% with ref.source.canonical_name as name %}
<tr>
<td class="document">
<td>
<a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a>
{% if ref.target.name != alias_name %}
<br><span class="badge bg-info">As {{ref.target.name}}</span>
{% endif %}
</td>
<td class="title">
<td>
<b>{{ref.source.title}}</b><br>
<a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_references' name %}" rel="nofollow"><span class="bi bi-arrow-left"></span> References</a>
<a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_referenced_by' name %}" rel="nofollow"><span class="bi bi-arrow-right"></span> Referenced by</a>
</td>
<td class="status">
<td>
{% ifequal ref.source.get_state.slug 'rfc' %}
{% with ref.source.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%}
{% else %}
{% with ref.source.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%}
{% endifequal %}
</td>
<td class="type">{{ref.relationship.name}}</td>
<td class="downref">{{ref.is_downref|default:''}}</td>
<td>{{ref.relationship.name}}</td>
<td>{{ref.is_downref|default:''}}</td>
</tr>
{% endwith %}
{% endfor %}

View file

@ -35,21 +35,21 @@
{% for ref in refs %}
{% with ref.target.name as name %}
<tr>
<td class="document"><a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a></td>
<td class="title">
<td><a href="{% url 'ietf.doc.views_doc.document_main' name=name %}">{{ name|prettystdname }}</a></td>
<td>
<b>{{ref.target.document.title}}</b><br>
<a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_references' name %}" rel="nofollow"><span class="bi bi-arrow-left"></span> References</a>
<a class="btn btn-primary btn-sm" href="{% url 'ietf.doc.views_doc.document_referenced_by' name %}" rel="nofollow"><span class="bi bi-arrow-right"></span> Referenced by</a>
</td>
<td class="status">
<td>
{% ifequal ref.target.document.get_state.slug 'rfc' %}
{% with ref.target.document.std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%}
{% else %}
{% with ref.target.document.intended_std_level as lvl %}{% if lvl %}{{lvl}}{% endif %}{%endwith%}
{% endifequal %}
</td>
<td class="type">{{ref.relationship.name}}</td>
<td class="downref">{{ref.is_downref|default:''}}</td>
<td>{{ref.relationship.name}}</td>
<td>{{ref.is_downref|default:''}}</td>
</tr>
{% endwith %}
{% endfor %}

View file

@ -30,11 +30,11 @@
<tbody>
{% for target_doc, source_doc in doc_pairs %}
<tr>
<td class="ref">
<td>
<a href="{% url "ietf.doc.views_doc.document_main" target_doc.name %}">RFC {{ target_doc.rfc_number }}</a>
<br><b>{{ target_doc.title }}</b>
</td>
<td class="id">
<td>
<a href="{% url "ietf.doc.views_doc.document_main" source_doc.name %}">{{ source_doc.name }}</a>
<br><b>{{ source_doc.title }}</b>
</td>

View file

@ -26,10 +26,10 @@
<tbody>
{% for doc in blocked_docs %}
<tr>
<td class="document">{{ doc.displayname_with_link }}</td>
<td>{{ doc.displayname_with_link }}</td>
{% include "doc/search/status_columns.html" %}
<td class="responsible">{{ doc.ad|default:"" }}</td>
<td class="discusses">
<td>{{ doc.ad|default:"" }}</td>
<td>
{% for p in doc.blocking_positions %}
{{ p.balloter }}
({% if p.discuss_time %}{{ p.discuss_time|timesince_days }}{% endif %}

View file

@ -31,8 +31,8 @@
<tbody>
{% for doc in docs %}
<tr>
<td class="area text-nowrap">{% if doc.area_acronym %}{{ doc.area_acronym }}{% endif %}</td>
<td class="date text-nowrap">
<td class="text-nowrap">{% if doc.area_acronym %}{{ doc.area_acronym }}{% endif %}</td>
<td class="text-nowrap">
{% if state.slug == "lc" %}
{% if doc.lc_expires %}{{ doc.lc_expires|date:"Y-m-d" }}{% endif %}
{% else %}
@ -40,7 +40,7 @@
{% endif %}
</td>
<td class="doc">
<td>
<a href="{% url "ietf.doc.views_doc.document_main" doc.name %}">{{ doc.name }}</a>
<br><b>{{ doc.title }}</b>
{% if doc.action_holders_enabled and doc.action_holders.exists %}
@ -53,8 +53,8 @@
<br><i>Note: {{ doc.note|linkify|linebreaksbr }}</i>
{% endif %}
</td>
<td class="level">{{ doc.intended_std_level.name }}</td>
<td class="ad">{% person_link doc.ad %}</td>
<td>{{ doc.intended_std_level.name }}</td>
<td>{% person_link doc.ad %}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -26,7 +26,7 @@
<tbody>
{% for doc in docs %}
<tr>
<td class="doc">
<td>
{{ doc.displayname_with_link }}
</td>
{% include "doc/search/status_columns.html" %}

View file

@ -16,9 +16,9 @@
<tbody>
{% for s in sessions %}
<tr>
<td class="revision">{{s|presented_versions:doc}}</td>
<td class="meeting">{% ifchanged s.meeting %}{% if s.meeting.type.slug == 'ietf' %}IETF{% endif %}{{s.meeting.number}}{% endifchanged %}</td>
<td class="session">
<td>{{s|presented_versions:doc}}</td>
<td>{% ifchanged s.meeting %}{% if s.meeting.type.slug == 'ietf' %}IETF{% endif %}{{s.meeting.number}}{% endifchanged %}</td>
<td>
{% if s.name %}{{ s.name }}<br>{% else %}{{ s.group.acronym }} - {% endif %}
{% if s.current_status == "sched" %}
{% if s.meeting.type.slug == 'ietf' %}{{s.time|date:"D M d, Y Hi"}}{% else %}{{s.time|date:"D M d, Y"}}{% endif %}

View file

@ -23,9 +23,9 @@
<tbody>
{% for rel in relations %}
<tr class="anchor-target" id="{{ rel.slug }}">
<th class="name">{{ rel.name }}</th>
<td class="desc">{{ rel.desc|linebreaksbr }}</td>
<td class="revname">{{ rel.revname }}</td>
<th>{{ rel.name }}</th>
<td>{{ rel.desc|linebreaksbr }}</td>
<td>{{ rel.revname }}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -3,6 +3,7 @@
{% load ietf_filters %}
{% load ballot_icon %}
{% load person_filters %}
{% load django_bootstrap5 %}
<tr {% spaceless %}
{% if color_row_positions %}
@ -40,12 +41,16 @@
{% endfor %}
</td>
<td class="document">
<td>
{% if doc.pages %}
<small class="float-end text-muted">{{doc.pages}} page{{ doc.pages|pluralize }}</small>
{% endif %}
<div>
<a href="{{ doc.get_absolute_url }}">{% if doc.get_state_slug == "rfc" %}RFC {{ doc.rfc_number }}{% else %}{{ doc.name }}-{{ doc.rev }}{% endif %}</a>
{% if doc.get_state_slug == "rfc" and "draft" in doc.name %}
<i>(was {{ doc.name }})</i>
<i class="text-muted">(was {{ doc.name }})</i>
{% endif %}
<br>
<b>{{ doc.title }}</b>
@ -57,19 +62,16 @@
</div>
{% if user|has_role:"Secretariat" and doc.reschedule_form %}
<div class="form-group">
<label for="{{ doc.reschedule_form.telechat_date.auto_id}}">Reschedule:</label>
{{ doc.reschedule_form.telechat_date|add_class:"form-control input-sm" }}
<div class="mt-3">
{% bootstrap_form doc.reschedule_form layout="floating" %}
{% if doc.reschedule_form.show_clear %}
{% bootstrap_field doc.reschedule_form.clear_returning_item %}
{% endif %}
</div>
{% if doc.reschedule_form.show_clear %}
<div class="checkbox">
<label>{{ doc.reschedule_form.clear_returning_item }} <b>Clear "returning item"</b></label>
</div>
{% endif %}
{% endif %}
</td>
<td class="date">
<td>
<span class="text-nowrap">
{% if doc.latest_revision_date|timesince_days|new_enough:request and doc.get_state_slug != "rfc" %}
@ -97,10 +99,6 @@
{% endfor %}
{% endcomment %}
{% if doc.pages %}
<br><small class="text-muted">{{doc.pages}} page{{ doc.pages|pluralize }}</small>
{% endif %}
{% if doc.latest_revision_date|timesince_days|new_enough:request %}
<wbr><div class="float-end"><span class="badge bg-success">New</span></div>
{% endif %}
@ -113,7 +111,7 @@
{% include "doc/search/status_columns.html" %}
<td class="ipr text-center">
<td class="text-center">
{% if doc.related_ipr %}
<a href="{% url "ietf.ipr.views.search" %}?submit=draft&amp;id={{ doc.name }}">
<span class="badge bg-secondary">{{ doc.related_ipr|length }}</span>
@ -122,7 +120,7 @@
</td>
{% if ad_name == None or ad_name != doc.ad.plain_name %}
<td class="ad">
<td>
{% if doc.ad %}
{% person_link doc.ad title="Area Director" %}<br>
{% endif %}

View file

@ -1,7 +1,7 @@
{# Copyright The IETF Trust 2015, All Rights Reserved #}{% load origin %}{% origin %}
{% load ietf_filters ballot_icon person_filters %}
<td class="status">
<td>
<div class="float-end" id="ballot-icon-{{doc.name}}">
{% if doc.ballot %}{% ballot_icon doc %}{% endif %}
</div>
@ -51,9 +51,11 @@
{% if doc.reviewed_by_teams %}
<br>Reviews:
{% spaceless %}
{% for acronym in doc.reviewed_by_teams %}
{{ acronym }}{% if not forloop.last %}, {% endif %}
<a href="{% url "ietf.group.views.group_home" acronym=acronym %}">{{ acronym }}</a>{% if not forloop.last %}, {% endif %}
{% endfor %}
{% endspaceless %}
{% endif %}
{% for m in doc.milestones %}

View file

@ -34,8 +34,8 @@
<tbody>
{% for doc in state.list %}
<tr>
<td class="document">{{ doc.displayname_with_link|safe }}</td>
<td class="title"><b>{{ doc.title }}</b></td>
<td>{{ doc.displayname_with_link|safe }}</td>
<td><b>{{ doc.title }}</b></td>
</tr>
{% endfor %}
</tbody>

View file

@ -15,16 +15,16 @@
<table class="table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Team</th>
<th>Name</th>
<th>Chairs</th>
<th data-sort="team">Team</th>
<th data-sort="name">Name</th>
<th data-sort="chairs">Chairs</th>
</tr>
</thead>
<tbody>
{% for group in teams %}
<tr>
<td><a href="{% url "ietf.group.views.group_home" acronym=group.acronym %}">{{ group.acronym }}</a></td>
<td>{{ group.name }}</td>
<th>{{ group.name }}</th>
<td>
{% for chair in group.chairs %}
<a href="{% url 'ietf.person.views.profile' email_or_name=chair.person.name %}">{{ chair.person.plain_name }}</a>
@ -40,4 +40,4 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -25,9 +25,9 @@
<tbody>
{% for e in events %}
<tr>
<td class="date text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
<td class="by text-nowrap">{{ e.by.plain_name }}</td>
<td class="action">{{ e.desc|format_history_text }}</td>
<td class="text-nowrap">{{ e.time|date:"Y-m-d" }}</td>
<td class="text-nowrap">{{ e.by.plain_name }}</td>
<td>{{ e.desc|format_history_text }}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -38,24 +38,24 @@
<tbody>
{% for r in unassigned_review_requests %}
<tr>
<td class="request">{% if r.pk != None %}<a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">{% endif %}{{ r.doc.name }}-{% if r.requested_rev %}{{ r.requested_rev }}{% else %}{{ r.doc.rev }}{% endif %}{% if r.pk != None %}</a>{% endif %}</td>
<td class="type text-nowrap">{{ r.type.name }}</td>
<td class="requested text-end">{% if r.pk %}{{ r.time|date:"Y-m-d" }} by {{r.requested_by.plain_name}}{% else %}<em>auto-suggested</em>{% endif %}</td>
<td class="deadline text-end">
<td>{% if r.pk != None %}<a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">{% endif %}{{ r.doc.name }}-{% if r.requested_rev %}{{ r.requested_rev }}{% else %}{{ r.doc.rev }}{% endif %}{% if r.pk != None %}</a>{% endif %}</td>
<td class="text-nowrap">{{ r.type.name }}</td>
<td class="text-end">{% if r.pk %}{{ r.time|date:"Y-m-d" }} by {{r.requested_by.plain_name}}{% else %}<em>auto-suggested</em>{% endif %}</td>
<td class="text-end">
{{ r.deadline|date:"Y-m-d" }}
{% if r.due %}<br><span class="badge xxx bg-warning" title="{{ r.due }} day{{ r.due|pluralize }} past deadline">{{ r.due }} day{{ r.due|pluralize }}</span>{% endif %}
</td>
{% if r.reviewer %}
<td class="reviewer">
<td>
{{ r.reviewer.person }}
{% if r.state_id == "accepted" %}<br><span class="badge bg-secondary">Accepted</span>{% endif %}
{% if r.reviewer_unavailable %}<br><span class="badge bg-danger">Unavailable</span>{% endif %}
</td>
{% endif %}
<td class="state">
<td>
{{ r.doc.friendly_state }}
</td>
<td class="telechat">
<td>
{% if r.doc.telechat_date %}
{{ r.doc.telechat_date }}
{% endif %}
@ -85,22 +85,22 @@
<tbody>
{% for a in open_review_assignments %}
<tr>
<td class="request"><a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">{{ a.review_request.doc.name }}-{% if a.review_request.requested_rev %}{{ a.review_requests.requested_rev }}{% else %}{{ a.review_request.doc.rev }}{% endif %}</a></td>
<td class="type text-nowrap">{{ a.review_request.type.name }}</td>
<td class="assigned text-end">{{ a.assigned_on|date:"Y-m-d" }}</td>
<td class="deadline text-end">
<td><a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">{{ a.review_request.doc.name }}-{% if a.review_request.requested_rev %}{{ a.review_requests.requested_rev }}{% else %}{{ a.review_request.doc.rev }}{% endif %}</a></td>
<td class="text-nowrap">{{ a.review_request.type.name }}</td>
<td class="text-end">{{ a.assigned_on|date:"Y-m-d" }}</td>
<td class="text-end">
{{ a.review_request.deadline|date:"Y-m-d" }}
{% if a.due %}<br><span class="badge bg-warning" title="{{ a.due }} day{{ a.due|pluralize }} past deadline">{{ a.due }} day{{ a.due|pluralize }}</span>{% endif %}
</td>
<td class="reviewer">
<td>
{% person_link a.reviewer.person %}
{% if a.state_id == "accepted" %}<br><span class="badge bg-secondary">Accepted</span>{% endif %}
{% if a.reviewer_unavailable %}<br><span class="badge bg-danger">Unavailable</span>{% endif %}
</td>
<td class="state">
<td>
{{ a.review_request.doc.friendly_state }}
</td>
<td class="telechat">
<td>
{% if a.review_request.doc.telechat_date %}
{{ a.review_request.doc.telechat_date }}
{% endif %}
@ -138,12 +138,12 @@
<tbody>
{% for r in closed_review_requests %}
<tr>
<td class="request"><a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">{{ r.doc.name }}{% if r.requested_rev %}-{{ r.requested_rev }}{% endif %}</a></td>
<td class="type text-nowrap">{{ r.type }}</td>
<td class="requested text-end">{{ r.time|date:"Y-m-d" }} by {{ r.requested_by.plain_name }}</td>
<td class="deadline text-end">{{ r.deadline|date:"Y-m-d" }}</td>
<td class="closed text-end">{{ r.request_closed_time|date:"Y-m-d" }}</td>
<td class="state">{{ r.state.name }}</td>
<td><a href="{% url "ietf.doc.views_review.review_request" name=r.doc.name request_id=r.pk %}">{{ r.doc.name }}{% if r.requested_rev %}-{{ r.requested_rev }}{% endif %}</a></td>
<td class="text-nowrap">{{ r.type }}</td>
<td class="text-end">{{ r.time|date:"Y-m-d" }} by {{ r.requested_by.plain_name }}</td>
<td class="text-end">{{ r.deadline|date:"Y-m-d" }}</td>
<td class="text-end">{{ r.request_closed_time|date:"Y-m-d" }}</td>
<td>{{ r.state.name }}</td>
</tr>
{% endfor %}
</tbody>
@ -168,14 +168,14 @@
<tbody>
{% for a in closed_review_assignments %}
<tr>
<td class="request"><a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">{{ a.review_request.doc.name }}{% if a.review_request.requested_rev %}-{{ a.review_request.requested_rev }}{% endif %}</a></td>
<td class="type text-nowrap">{{ a.review_request.type }}</td>
<td class="assigned text-end">{{ a.assigned_on|date:"Y-m-d" }}</td>
<td class="deadline text-end">{{ a.review_request.deadline|date:"Y-m-d" }}</td>
<td class="closed text-end">{{ a.completed_on|date:"Y-m-d" }}</td>
<td class="reviewer">{% person_link a.reviewer.person %}</td>
<td class="state">{{ a.state }}</td>
<td class="result">{% if a.result %}{{ a.result }}{% endif %}</td>
<td><a href="{% url "ietf.doc.views_review.review_request" name=a.review_request.doc.name request_id=a.review_request.pk %}">{{ a.review_request.doc.name }}{% if a.review_request.requested_rev %}-{{ a.review_request.requested_rev }}{% endif %}</a></td>
<td class="text-nowrap">{{ a.review_request.type }}</td>
<td class="text-end">{{ a.assigned_on|date:"Y-m-d" }}</td>
<td class="text-end">{{ a.review_request.deadline|date:"Y-m-d" }}</td>
<td class="text-end">{{ a.completed_on|date:"Y-m-d" }}</td>
<td>{% person_link a.reviewer.person %}</td>
<td>{{ a.state }}</td>
<td>{% if a.result %}{{ a.result }}{% endif %}</td>
</tr>
{% endfor %}
</tbody>

View file

@ -25,9 +25,9 @@
<tbody>
{% for state in states %}
<tr>
<th class="state">{{ state.name }}</th>
<td class="desc">{{ state.desc|safe }}</td>
<td class="next"><ul>{% for s in state.next_states.all %}<li>{{ s.name }}</li>{%endfor%}</ul></td>
<th>{{ state.name }}</th>
<td>{{ state.desc|safe }}</td>
<td><ul>{% for s in state.next_states.all %}<li>{{ s.name }}</li>{%endfor%}</ul></td>
</tr>
{% endfor %}

View file

@ -4,6 +4,7 @@
{% load ballot_icon %}
{% load ietf_filters %}
{% load django_bootstrap5 %}
{% block pagehead %}
<link rel="alternate" type="application/atom+xml" href="/feed/iesg-agenda/">
@ -16,7 +17,7 @@
{% origin %}
<h1>Documents on future IESG telechat agendas</h1>
<ul class="nav nav-tabs">
<ul class="nav nav-tabs mb-3">
<li class="nav-item "><a class="nav-link" href="{% url 'ietf.iesg.views.agenda' %}">IESG Agenda</a></li>
<li class="nav-item"><a class="nav-link active" href="{% url 'ietf.iesg.views.agenda_documents' %}">Documents on future agendas</a></li>
<li class="nav-item "><a class="nav-link" href="{% url 'ietf.iesg.views.discusses' %}">DISCUSS positions</a></li>
@ -24,8 +25,6 @@
<li class="nav-item "><a class="nav-link" href="{% url 'ietf.iesg.views.photos' %}">IESG Photos</a></li>
</ul>
{% if user|has_role:"Secretariat" %}
<form class="form-inline" method="post">
{% csrf_token %}
@ -33,9 +32,9 @@
{% for t in telechats %}
<h2>IESG telechat {{t.date}}
<small class="text-muted">{{t.pages}} page{{t.pages|pluralize}}</small>
<br><small class="text-muted">{{t.pages}} page{{t.pages|pluralize}}</small>
</h2>
<p>
<div class="buttonlist">
<a class="btn btn-primary" role="button" href="/iesg/agenda/">
<span class="bi bi-list"></span>
Full IESG agenda
@ -45,25 +44,25 @@
<span class="bi bi-download"></span>
Download documents
</a>
</p>
</div>
{% for num, section in t.sections %}
{% if "docs" not in section or section.docs %}
{% if num|sectionlevel == 1 %}<h3>{{ num }}. {{ section.title|safe }}</h3>{% endif %}
{% if num|sectionlevel == 2 %}<h4>{{ num }} {{ section.title|safe }}</h4>{% endif %}
{% if num|sectionlevel == 3 %}<h5>{{ num }} {{ section.title|safe }}</h5>{% endif %}
{% if num|sectionlevel == 1 %}<h3 class="mt-3">{{ num }}. {{ section.title|safe }}</h3>{% endif %}
{% if num|sectionlevel == 2 %}<h4 class="mt-3">{{ num }} {{ section.title|safe }}</h4>{% endif %}
{% if num|sectionlevel == 3 %}<h5 class="mt-3">{{ num }} {{ section.title|safe }}</h5>{% endif %}
{% endif %}
{% if "docs" in section and section.docs %}
<table class="table table-sm table-striped tablesorter">
<thead>
<tr>
<th data-orderable="false"></th>
<th>Document</th>
<th>Date</th>
<th>Status</th>
<th>IPR</th>
<th>AD / Shepherd</th>
<th></th>
<th data-sort="document">Document</th>
<th data-sort="date">Date</th>
<th data-sort="status">Status</th>
<th data-sort="ipr">IPR</th>
<th data-sort="ad">AD/Shepherd</th>
</tr>
</thead>
<tbody>
@ -78,7 +77,7 @@
{% endfor %}
{% if user|has_role:"Secretariat" %}
<input title="Save reschedule changes done with the drop-down boxes below" type="submit" value="Save reschedules" class="btn btn-primary">
{% bootstrap_button button_type="submit" content="Save reschedules" title="Save reschedule changes done with the drop-down boxes below" %}
</form>
{% endif %}
@ -86,4 +85,4 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -16,9 +16,9 @@
<tbody>
{% for ipr in iprs %}
<tr>
<td class="date text-nowrap text-end">{{ ipr.time|date:"Y-m-d" }}</td>
<td class="id text-end">{{ ipr.id }}</td>
<td class="title">
<td class="text-nowrap text-end">{{ ipr.time|date:"Y-m-d" }}</td>
<td class="text-end">{{ ipr.id }}</td>
<td>
{% if ipr.state_id == 'posted' or administrative_list %}
<div><a href="{% url "ietf.ipr.views.show" ipr.id %}">{{ ipr.title }}</a></div>
@ -42,8 +42,8 @@
{% if administrative_list == 'pending' %}
{% with ipr.get_latest_event_msgout as latest_msgout %}
<td class="query">{% if latest_msgout %}{{ latest_msgout.time|date:"Y-m-d" }}{% endif %}</td>
<td class="due text-nowrap">
<td>{% if latest_msgout %}{{ latest_msgout.time|date:"Y-m-d" }}{% endif %}</td>
<td class="text-nowrap">
{% if latest_msgout and latest_msgout.response_due %}
{{ latest_msgout.response_due|date:"Y-m-d" }}
{% if latest_msgout.response_past_due %}

View file

@ -168,7 +168,7 @@
<td class="text-nowrap text-end">
{% include "meeting/timeslot_start_end.html" %}
</td>
<td colspan="3" class="loc">
<td colspan="3">
{% if item.timeslot.show_location and item.timeslot.location %}
{% location_anchor item.timeslot %}
{{ item.timeslot.get_html_location }}
@ -185,7 +185,7 @@
{% endwith %}
{% endif %}
</td>
<td class="desc">
<td>
{% agenda_anchor item.session %}
{% assignment_display_name item %}
{% end_agenda_anchor %}
@ -223,7 +223,7 @@
<th class="text-nowrap text-end">
{% include "meeting/timeslot_start_end.html" %}
</th>
<th colspan="4" class="desc">
<th colspan="4">
{{ item.timeslot.time|date:"l"}}
{{item.timeslot.name|capfirst_allcaps}}
</th>
@ -258,7 +258,7 @@
<td class="text-nowrap text-end">
{% include "meeting/timeslot_start_end.html" %}
</td>
<td colspan="3" class="loc">
<td colspan="3">
{% if item.timeslot.show_location and item.timeslot.location %}
{% location_anchor item.timeslot %}
{{item.timeslot.get_html_location}}
@ -278,7 +278,7 @@
{% endwith %}
</td>
<td class="loc">
<td>
{% if item.timeslot.show_location and item.timeslot.location %}
{% location_anchor item.timeslot %}
{{item.timeslot.get_html_location}}
@ -286,9 +286,9 @@
{% endif %}
</td>
<td class="area"><div class="d-none d-sm-block">{{item.session.historic_group.historic_parent.acronym}}</div></td>
<td><div class="d-none d-sm-block">{{item.session.historic_group.historic_parent.acronym}}</div></td>
<td class="group">
<td>
{% if item.session.historic_group %}
<a href="{% url 'ietf.group.views.group_about' acronym=item.session.historic_group.acronym %}">{{item.session.historic_group.acronym}}</a>
{% else %}
@ -297,7 +297,7 @@
</td>
{% endif %}
<td class="desc">
<td>
{% agenda_anchor item.session %}
{% assignment_display_name item %}
{% end_agenda_anchor %}

View file

@ -21,8 +21,8 @@
<table class="approvals table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Draft</th>
<th>Submitted</th>
<th data-sort="draft">Draft</th>
<th data-sort="date">Submitted</th>
</tr>
</thead>
<tbody>
@ -48,10 +48,10 @@
<table class="preapprovals table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Draft name</th>
<th>Pre-approved</th>
<th>By</th>
<th data-orderable="false"></th>
<th data-sort="draft">Draft name</th>
<th data-sort="date">Pre-approved</th>
<th data-sort="by">By</th>
<th></th>
</tr>
</thead>
<tbody>
@ -75,8 +75,8 @@
<table class="recently-approved table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Draft</th>
<th>Submitted</th>
<th data-sort="draft">Draft</th>
<th data-sort="date">Submitted</th>
</tr>
</thead>
<tbody>
@ -104,4 +104,4 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -21,10 +21,10 @@
<table id="manual" class="submissions table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Draft</th>
<th>Submitted</th>
<th>Passes Checks</th>
<th>Metadata</th>
<th data-sort="draft">Draft</th>
<th data-sort="date">Submitted</th>
<th data-sort="passes">Passes Checks</th>
<th data-sort="metadata">Metadata</th>
</tr>
</thead>
<tbody>
@ -52,9 +52,9 @@
<table id="waiting-for-draft" class="waiting-for-draft table table-sm table-striped tablesorter">
<thead>
<tr>
<th>Name</th>
<th>Rev</th>
<th>Submitted</th>
<th data-sort="name">Name</th>
<th data-sort="rev">Rev</th>
<th data-sort="date">Submitted</th>
</tr>
</thead>
<tbody>
@ -95,4 +95,4 @@
{% block js %}
<script src="{% static "ietf/js/list.js" %}"></script>
{% endblock %}
{% endblock %}

View file

@ -447,4 +447,4 @@
{% block js %}
{{ all_forms|merge_media:'js' }}
{% endblock %}
{% endblock %}

View file

@ -10,7 +10,7 @@
{% origin %}
<h1>Internet-Draft submission </h1>
<ul class="nav nav-tabs">
<ul class="nav nav-tabs mb-3">
<li class="nav-item">
<a class="nav-link {% if selected == "index" %}active{% endif %}" href="{% url "ietf.submit.views.upload_submission" %}">Upload</a>
</li>
@ -31,4 +31,4 @@
{% block submit_content %}
{% endblock %}
{% endblock %}
{% endblock %}

View file

@ -36,61 +36,51 @@
fix them.
</p>
<div class="panel ">
<div class="card">
<div class="card-body">
<form method="post" enctype="multipart/form-data">
{% csrf_token %}
<div class="form-group">
{% bootstrap_field form.xml label='<i class="bi bi-file-code" aria-hidden="true"></i> XML source of the I-D' %}
{% bootstrap_label '<i class="bi bi-file-code"></i> XML source of the I-D' label_class="fw-bold" %}
{% bootstrap_field form.xml show_label=False %}
<p class="help-block">
Preferably, submit a standalone
<a href="{% url 'ietf.doc.views_doc.document_html' name='rfc7991' %}">xml2rfc version 3</a>
source file. You can use this online
<a href="https://author-tools.ietf.org/">conversion service</a>
to convert your I-D to this format.
(You may submit an older
<a href="{% url 'ietf.doc.views_doc.document_html' name='rfc7749' %}">xml2rfc version 2</a>
file if you must.)
</p>
<div class="form-check mb-3">
<label class="form-check-label" data-bs-toggle="collapse" data-bs-target="#other-formats" aria-expanded="false" aria-controls="other-formats">
<input class="form-check-input" id="checkbox" type="checkbox" type="checkbox" /> Submit other formats
</label>
</div>
<div class="collapse" id="other-formats">
{% bootstrap_label '<i class="bi bi-file-text"></i> Plaintext rendering of the I-D' label_class="fw-bold" %}
{% bootstrap_field form.txt show_label=False %}
<p class="help-block">
Preferably, submit a standalone
<a href="{% url 'ietf.doc.views_doc.document_html' name='rfc7991' %}">xml2rfc version 3</a>
source file. You can use this online
<a href="https://author-tools.ietf.org/">conversion service</a>
to convert your I-D to this format.
(You may submit an older
<a href="{% url 'ietf.doc.views_doc.document_html' name='rfc7749' %}">xml2rfc version 2</a>
file if you must.)
Optional to submit, will be auto-generated based
on the submitted XML.
However, if you cannot for some reason submit XML, you must
submit a plaintext rendering of your I-D.
</p>
{% bootstrap_label '<i class="bi bi-file-pdf"></i> PDF rendering of the I-D' label_class="fw-bold" %}
{% bootstrap_field form.pdf show_label=False %}
<p class="help-block">
Optional to submit, will be auto-generated based
on the submitted XML.
</p>
</div>
<div class="form-group">
<div class="checkbox">
<label data-bs-toggle="collapse" data-bs-target="#other-formats" aria-expanded="false" aria-controls="other-formats">
<input id="checkbox" type="checkbox" /> Submit other formats
</label>
</div>
</div>
<div class="collapse" id="other-formats">
<div class="form-group">
{% bootstrap_field form.txt label='<i class="bi bi-file-text" aria-hidden="true"></i> Plaintext rendering of the I-D'%}
<p class="help-block">
Optional to submit, will be auto-generated based
on the submitted XML.
However, if you cannot for some reason submit XML, you must
submit a plaintext rendering of your I-D.
</p>
</div>
<div class="form-group">
{% bootstrap_field form.pdf label='<i class="bi bi-file-pdf" aria-hidden="true"></i> PDF rendering of the I-D'%}
<p class="help-block">
Optional to submit, will be auto-generated based
on the submitted XML.
</p>
</div>
</div>
{% bootstrap_form_errors form %}
{% bootstrap_button button_type="submit" name="upload" content="Upload" %}
<div class="form-group">
<input class="btn btn-primary" type="submit" value="Upload" name="upload">
</div>
</form>
</div>
</div>
@ -106,4 +96,4 @@
$("#other-formats").collapse('show')
});
</script>
{% endblock %}
{% endblock %}

2
package-lock.json generated
View file

@ -1,5 +1,5 @@
{
"name": "7.39.1.dev4-bs5",
"name": "7.40.1.dev0-bs5",
"lockfileVersion": 2,
"requires": true,
"packages": {