ci: Also check generated HTML with the "vnu" validator (#3682)
* ci: Also check generated HTML with the "vnu" validator Because HTML Tidy apparently misses a bunch of errors. * thead -> tbody * More fixes * More fixes * Start checker in test runner
This commit is contained in:
parent
6ecd4b40e2
commit
eb5423d084
|
@ -124,6 +124,12 @@ RUN sed -i '/imklog/s/^/#/' /etc/rsyslog.conf
|
|||
# Colorize the bash shell
|
||||
RUN sed -i 's/#force_color_prompt=/force_color_prompt=/' /root/.bashrc
|
||||
|
||||
# Install the Nu Html Checker (v.Nu)
|
||||
ADD https://github.com/validator/validator/releases/download/latest/vnu.linux.zip /
|
||||
RUN unzip -d / /vnu.linux.zip
|
||||
RUN cp -r /vnu-runtime-image/* /usr/local
|
||||
RUN rm -rf /vnu.linux.zip /vnu-runtime-image
|
||||
|
||||
ADD https://raw.githubusercontent.com/eficode/wait-for/v2.1.3/wait-for /usr/local/bin/
|
||||
RUN chmod +rx /usr/local/bin/wait-for
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<html>
|
||||
<head>
|
||||
<style type="text/css">
|
||||
<style>
|
||||
p.comment {
|
||||
background-color: #cfc;
|
||||
border: solid black 1px;
|
||||
|
|
|
@ -32,7 +32,7 @@
|
|||
</dl>
|
||||
|
||||
<h2>Edit template content</h2>
|
||||
<form id="dbtemplate-edit" role="form" method="post">
|
||||
<form id="dbtemplate-edit" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
{% bootstrap_form form %}
|
||||
|
|
|
@ -197,6 +197,7 @@ def urlize_ietf_docs(string, autoescape=None):
|
|||
string = re.sub(r"(STD\s*?)0{0,3}(\d+)", "<a href=\"/doc/std\\2/\">\\1\\2</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(FYI\s*?)0{0,3}(\d+)", "<a href=\"/doc/fyi\\2/\">\\1\\2</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(draft-[-0-9a-zA-Z._+]+)", "<a href=\"/doc/\\1/\">\\1</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(bofreq-[-0-9a-zA-Z._+]+)", "<a href=\"/doc/\\1/\">\\1</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(conflict-review-[-0-9a-zA-Z._+]+)", "<a href=\"/doc/\\1/\">\\1</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(status-change-[-0-9a-zA-Z._+]+)", "<a href=\"/doc/\\1/\">\\1</a>", string, flags=re.IGNORECASE)
|
||||
string = re.sub(r"(charter-[-0-9a-zA-Z._+]+)", "<a href=\"/doc/\\1/\">\\1</a>", string, flags=re.IGNORECASE)
|
||||
|
|
|
@ -25,6 +25,7 @@ from ietf.person.factories import PersonFactory, EmailFactory
|
|||
from ietf.doc.factories import DocumentFactory
|
||||
from ietf.group.factories import RoleFactory, ReviewTeamFactory, GroupFactory
|
||||
from ietf.review.factories import ReviewRequestFactory, ReviewerSettingsFactory, ReviewAssignmentFactory
|
||||
from django.utils.html import escape
|
||||
|
||||
class ReviewTests(TestCase):
|
||||
def test_review_requests(self):
|
||||
|
@ -375,8 +376,8 @@ class ReviewTests(TestCase):
|
|||
# get
|
||||
r = self.client.get(unassigned_url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
self.assertContains(r, review_req1.doc.name)
|
||||
self.assertContains(r, doc_author.name)
|
||||
self.assertContains(r, escape(review_req1.doc.name))
|
||||
self.assertContains(r, escape(doc_author.name))
|
||||
|
||||
# Test that conflicts are detected
|
||||
r = self.client.post(unassigned_url, {
|
||||
|
|
|
@ -162,8 +162,8 @@ class IprTests(TestCase):
|
|||
r = self.client.get(url + "?submit=holder&holder=%s" % ipr.holder_legal_name)
|
||||
self.assertContains(r, ipr.title)
|
||||
|
||||
# find by patent infoj
|
||||
r = self.client.get(url + "?submit=patent&patent=%s" % quote(ipr.patent_info))
|
||||
# find by patent info
|
||||
r = self.client.get(url + "?submit=patent&patent=%s" % quote(ipr.patent_info.partition("\n")[0]))
|
||||
self.assertContains(r, ipr.title)
|
||||
|
||||
r = self.client.get(url + "?submit=patent&patent=US12345")
|
||||
|
|
|
@ -18,13 +18,13 @@ class ButtonWidget(Widget):
|
|||
super(ButtonWidget, self).__init__(*args, **kwargs)
|
||||
|
||||
def render(self, name, value, **kwargs):
|
||||
html = '<span style="display: none" class="showAttachsOn">%s</span>' % conditional_escape(self.show_on)
|
||||
html += '<span style="display: none" class="attachEnabledLabel">%s</span>' % conditional_escape(self.label)
|
||||
html = '<span style="display: none;" class="showAttachsOn">%s</span>' % conditional_escape(self.show_on)
|
||||
html += '<span style="display: none;" class="attachEnabledLabel">%s</span>' % conditional_escape(self.label)
|
||||
if self.require:
|
||||
for i in self.require:
|
||||
html += '<span style="display: none" class="attachRequiredField">%s</span>' % conditional_escape(i)
|
||||
html += '<span style="display: none;" class="attachRequiredField">%s</span>' % conditional_escape(i)
|
||||
required_str = 'Please fill in %s to attach a new file' % conditional_escape(self.required_label)
|
||||
html += '<span style="display: none" class="attachDisabledLabel">%s</span>' % conditional_escape(required_str)
|
||||
html += '<span style="display: none;" class="attachDisabledLabel">%s</span>' % conditional_escape(required_str)
|
||||
html += '<input type="button" class="addAttachmentWidget btn btn-primary btn-sm" value="%s">' % conditional_escape(self.label)
|
||||
return mark_safe(html)
|
||||
|
||||
|
@ -32,7 +32,7 @@ class ButtonWidget(Widget):
|
|||
class ShowAttachmentsWidget(Widget):
|
||||
def render(self, name, value, **kwargs):
|
||||
html = '<div id="id_%s">' % name
|
||||
html += '<span style="display: none" class="showAttachmentsEmpty form-control widget">No files attached</span>'
|
||||
html += '<span style="display: none;" class="showAttachmentsEmpty form-control widget">No files attached</span>'
|
||||
html += '<div class="attachedFiles form-control widget">'
|
||||
if value and isinstance(value, QuerySet):
|
||||
for attachment in value:
|
||||
|
|
|
@ -42,5 +42,4 @@ class ReleasePagesTest(TestCase):
|
|||
|
||||
s = q('#frequency-data').text()
|
||||
self.assertIn("type: 'column',", s)
|
||||
self.assertIn('"data": [[2007, 7], ', s)
|
||||
|
||||
self.assertIn('"data": [[2007, 7], ', s)
|
|
@ -11,7 +11,7 @@
|
|||
<div class="module">
|
||||
<h2>Announcement</h2>
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<table class="new-style full-width amstable" id="announce-table">
|
||||
{% if form.non_field_errors %}{{ form.non_field_errors }}{% endif %}
|
||||
{% for field in form.visible_fields %}
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{% block title %}Areas - People{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
{% endblock %}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<div class="module">
|
||||
<h2>Area - View</h2>
|
||||
<table class="full-width">
|
||||
<col width="150">
|
||||
|
||||
<tr><td>Area Acronym:</td><td>{{ area.acronym }}</td></tr>
|
||||
<tr><td>Area Name:</td><td>{{ area.name }}</td></tr>
|
||||
<tr><td>Status:</td><td>{{ area.state }}</td></tr>
|
||||
|
|
|
@ -6,11 +6,13 @@
|
|||
<meta http-equiv="X-UA-Compatible" content="IE=edge"/>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/forms.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/custom.css' %}" />
|
||||
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||
|
||||
{% if not server_mode == "production" %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/test.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}" />
|
||||
{% endif %}
|
||||
{% block extrastyle %}{% endblock %}
|
||||
|
||||
|
@ -38,12 +40,12 @@
|
|||
|
||||
<!-- Breadcrumbs -->
|
||||
<div class="breadcrumbs">
|
||||
<table width="100%">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<td class="text-start">
|
||||
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
||||
</td>
|
||||
<td align="right">
|
||||
<td class="text-end">
|
||||
{% block instructions %}{% endblock %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||||
<title>{% block title %}{% endblock %}</title>
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
|
||||
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/forms.css' %}" />
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/custom.css' %}" />
|
||||
<link rel="stylesheet" href="{% block stylesheet %}{% static 'secr/css/base.css' %}{% endblock %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/forms.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/custom.css' %}" />
|
||||
{% if not server_mode == "production" %}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/test.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/test.css' %}" />
|
||||
{% endif %}
|
||||
{% block extrastyle %}{% endblock %}
|
||||
|
||||
|
@ -39,12 +39,12 @@
|
|||
|
||||
<!-- Breadcrumbs -->
|
||||
<div class="breadcrumbs">
|
||||
<table width="100%">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<td class="text-start">
|
||||
{% block breadcrumbs %}<a href="/secr/">Home</a>{% endblock %}
|
||||
</td>
|
||||
<td align="right">
|
||||
<td class="text-end">
|
||||
{% block instructions %}{% endblock %}
|
||||
</td>
|
||||
</tr>
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
{% block title %}{{ title }}{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} IETF Dashboard {% endif %}{% endblock %}
|
||||
|
||||
{% block branding %}
|
||||
<table width="100%">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<td class="text-start">
|
||||
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} IETF Dashboard {% endif %}</h1>
|
||||
</td>
|
||||
<td align="right">
|
||||
<td class="text-end">
|
||||
<br>
|
||||
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
||||
</td>
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
</div>
|
||||
<div id="footer-logo">
|
||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
|
||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -6,12 +6,12 @@
|
|||
{% block title %}{{ title }}{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} WG Chair Dashboard {% endif %}{% endblock %}
|
||||
|
||||
{% block branding %}
|
||||
<table width="100%">
|
||||
<table>
|
||||
<tr>
|
||||
<td align="left">
|
||||
<td class="text-start">
|
||||
<h1 id="site-name">{% if user|has_role:"Secretariat" %} Secretariat Dashboard {% else %} WG Chair Dashboard {% endif %}</h1>
|
||||
</td>
|
||||
<td align="right">
|
||||
<td class="text-end">
|
||||
<br>
|
||||
<span class="login">{% if user|has_role:"Secretariat" %}Secretariat {% endif %}Logged in: <a href="/accounts/profile/">{{ user }}</a> | <a rel="nofollow" href="/accounts/logout/">Log out</a></span>
|
||||
</td>
|
||||
|
@ -31,7 +31,7 @@
|
|||
|
||||
</div>
|
||||
<div id="footer-logo">
|
||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" align="right" border="0" hspace="5" /></a>
|
||||
<a href="https://www.amsl.com/"><img src="{% static 'secr/images/ams_logo.png' %}" alt="AMS" class="text-end p-3" /></a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -12,7 +12,7 @@
|
|||
<p>You are about to cancel: {{ object }}</p>
|
||||
{% if extra %}<p>{{ extra }}</p>{% endif %}
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<div>
|
||||
<p>
|
||||
<input type="hidden" name="post" value="yes">
|
||||
|
|
|
@ -12,7 +12,7 @@
|
|||
<p>You are about to delete: {{ object }}</p>
|
||||
{% if extra %}<p>{{ extra }}</p>{% endif %}
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<div>
|
||||
<p>
|
||||
<input type="hidden" name="post" value="yes">
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{% block title %}Groups - People{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
{% endblock %}
|
||||
|
@ -45,7 +45,7 @@
|
|||
<div class="inline-related">
|
||||
<!-- <hr><br> -->
|
||||
<h3>Add Role</h3>
|
||||
<form id="groups-people" action="" method="post">{% csrf_token %}
|
||||
<form id="groups-people" method="post">{% csrf_token %}
|
||||
{{ form.non_field_errors }}
|
||||
{{ form.group_acronym }}
|
||||
<table class="full-width">
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
|
||||
<div class="module group-container">
|
||||
<h2>Groups - Search</h2>
|
||||
<form enctype="multipart/form-data" action="" method="post">{% csrf_token %}
|
||||
<form enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||
<table class="full-width amstable">
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<div id="groups-view-col1">
|
||||
<h2>Groups - View</h2>
|
||||
<table >
|
||||
<col width="150">
|
||||
|
||||
<tr><td>Group Acronym:</td><td>{{ group.acronym }}</td></tr>
|
||||
<tr><td>Group Name:</td><td>{{ group.name }}</td></tr>
|
||||
<tr><td>Status:</td><td>{{ group.state }}</td></tr>
|
||||
|
|
|
@ -4,8 +4,8 @@
|
|||
{% if form.non_field_errors %}
|
||||
{{ form.non_field_errors }}
|
||||
{% endif %}
|
||||
<table id="sessions-new-table" cellspacing="1" cellpadding="1" border="0">
|
||||
<col width="150">
|
||||
<table id="sessions-new-table">
|
||||
|
||||
<tr class="bg1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
||||
<tr class="bg2"><td>Area Name:</td><td>{% if group.parent %}{{ group.parent.name }} ({{ group.parent.acronym }}){% endif %}</td></tr>
|
||||
<tr class="bg1"><td>Number of Sessions:<span class="required">*</span></td><td>{{ form.num_session.errors }}{{ form.num_session }}</td></tr>
|
||||
|
@ -37,25 +37,25 @@
|
|||
</tr>
|
||||
{% for cname, cfield, cselector in form.wg_constraint_fields %}
|
||||
<tr class="bg1">
|
||||
{% if forloop.first %}<td rowspan="{{ form.wg_constraint_count }}" valign="top" width="220">WG Sessions:<br>You may select multiple WGs within each category</td>{% endif %}
|
||||
<td width="320">{{ cname|title }}</td>
|
||||
{% if forloop.first %}<td rowspan="{{ form.wg_constraint_count }}" >WG Sessions:<br>You may select multiple WGs within each category</td>{% endif %}
|
||||
<td>{{ cname|title }}</td>
|
||||
<td>{{ cselector }}
|
||||
<input type="button" id="wg_delete_{{ cname.slug }}" value="Delete the last entry" onClick="ietf_sessions.delete_wg_constraint_clicked('{{ cname.slug }}')"><br>
|
||||
{{ cfield.errors }}{{ cfield }}
|
||||
</td>
|
||||
</tr>
|
||||
{% empty %}{# shown if there are no constraint fields #}
|
||||
<tr class="bg1"><td width="220"></td><td colspan="2">No constraints are enabled for this meeting.</td></tr>
|
||||
<tr class="bg1"><td ></td><td colspan="2">No constraints are enabled for this meeting.</td></tr>
|
||||
{% endfor %}
|
||||
{% if form.inactive_wg_constraints %}
|
||||
{% for cname, value, field in form.inactive_wg_constraints %}
|
||||
<tr class="bg1">
|
||||
{% if forloop.first %}
|
||||
<td rowspan="{{ form.inactive_wg_constraint_count }}" valign="top" width="220">
|
||||
<td rowspan="{{ form.inactive_wg_constraint_count }}" >
|
||||
Disabled for this meeting
|
||||
</td>
|
||||
{% endif %}
|
||||
<td width="320">{{ cname|title }}</td>
|
||||
<td>{{ cname|title }}</td>
|
||||
<td><input type="text" value="{{ value }}" maxlength="255" class="wg_constraint" disabled><br>{{ field }} {{ field.label }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
|
@ -76,11 +76,11 @@
|
|||
</td>
|
||||
</tr>
|
||||
<tr class="bg1">
|
||||
<td valign="top">Times during which this WG can <strong>not</strong> meet:</td>
|
||||
<td>Times during which this WG can <strong>not</strong> meet:</td>
|
||||
<td>{{ form.timeranges.errors }}{{ form.timeranges }}</td>
|
||||
</tr>
|
||||
<tr class="bg2">
|
||||
<td valign="top">
|
||||
<td>
|
||||
Plan session adjacent with another WG:<br />
|
||||
(Immediately before or after another WG, no break in between, in the same room.)
|
||||
</td>
|
||||
|
@ -106,7 +106,7 @@
|
|||
{% endif %}
|
||||
|
||||
<tr class="bg2">
|
||||
<td valign="top">Special Requests:<br /> <br />i.e. restrictions on meeting times / days, etc.<br /> (limit 200 characters)</td>
|
||||
<td>Special Requests:<br /> <br />i.e. restrictions on meeting times / days, etc.<br /> (limit 200 characters)</td>
|
||||
<td>{{ form.comments.errors }}{{ form.comments }}</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{% load ams_filters %}
|
||||
<table class="full-width">
|
||||
<col width="200">
|
||||
|
||||
<tr class="row1"><td>Working Group Name:</td><td>{{ group.name }} ({{ group.acronym }})</td></tr>
|
||||
<tr class="row2"><td>Area Name:</td><td>{{ group.parent }}</td></tr>
|
||||
<tr class="row1"><td>Number of Sessions Requested:</td><td>{% if session.third_session %}3{% else %}{{ session.num_session }}{% endif %}</td></tr>
|
||||
|
|
|
@ -6,8 +6,8 @@
|
|||
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
|
||||
<table class="menu" width="100%" cellpadding="5" cellspacing="5" border="0">
|
||||
<tr valign="top">
|
||||
<table class="menu">
|
||||
<tr>
|
||||
<td>
|
||||
<h3>IESG</h3>
|
||||
<ul>
|
||||
|
@ -26,7 +26,7 @@
|
|||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<tr>
|
||||
<td>
|
||||
<h3>Meetings and Proceedings</h3>
|
||||
<ul>
|
||||
|
@ -47,8 +47,8 @@
|
|||
|
||||
{% else %}
|
||||
|
||||
<table class="menu" width="100%" cellpadding="5" cellspacing="5" border="0">
|
||||
<tr valign="top">
|
||||
<table class="menu">
|
||||
<tr>
|
||||
<td>
|
||||
<h3>Section 1</h3>
|
||||
<ul>
|
||||
|
@ -61,7 +61,7 @@
|
|||
<h3>Section 2</h3>
|
||||
</td>
|
||||
</tr>
|
||||
<tr valign="top">
|
||||
<tr>
|
||||
<td>
|
||||
<h3>Section 3</h3>
|
||||
</td>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
{% block content %}
|
||||
<div class="module">
|
||||
<h2>Proceedings - Add</h2>
|
||||
<form id="proceedings-add-form" enctype="multipart/form-data" action="" method="post">{% csrf_token %}
|
||||
<form id="proceedings-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||
<table id="proceedings-add-table">
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{% block title %}Meetings{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
<script src="{% static 'secr/js/dynamic_inlines.js' %}"></script>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
</p>
|
||||
|
||||
<br>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<table>
|
||||
{{ form }}
|
||||
</table>
|
||||
|
|
|
@ -54,11 +54,11 @@
|
|||
<br /><hr />
|
||||
|
||||
<div>
|
||||
<form id="timeslot-form" action="" method="post">{% csrf_token %}
|
||||
<form id="timeslot-form" method="post">{% csrf_token %}
|
||||
<table class="full-width amstable">
|
||||
<col width="150">
|
||||
|
||||
{{ form.as_table }}
|
||||
<tr><td colspan="2" align="center"><input type="submit" name="submit" value="Add" /></td></tr>
|
||||
<tr><td colspan="2" class="text-center"><input type="submit" name="submit" value="Add" /></td></tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
@ -17,10 +17,10 @@
|
|||
<div class="module">
|
||||
<h2>Edit Session</h2>
|
||||
|
||||
<form id="meetings-schedule-form" method="post" action="">{% csrf_token %}
|
||||
<form id="meetings-schedule-form" method="post">{% csrf_token %}
|
||||
<div class="inline-related{% if forloop.last %} last-related{% endif %}">
|
||||
<table class="full-width amstable">
|
||||
<col width="200">
|
||||
|
||||
<tr>
|
||||
<th>Day:</th>
|
||||
<td>{% if timeslot %}{{ timeslot.time|date:"l" }}{% endif %}</td>
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
<div class="inline-group">
|
||||
<div class="tabular inline-related">
|
||||
<form id="meetings-meta-rooms" action="" method="post">{% csrf_token %}
|
||||
<form id="meetings-meta-rooms" method="post">{% csrf_token %}
|
||||
{{ formset.management_form }}
|
||||
{{ formset.non_form_errors }}
|
||||
{% if options_form %}{{ options_form.errors }}{% endif %}
|
||||
|
@ -41,7 +41,7 @@
|
|||
{% endfor %}
|
||||
</tr>
|
||||
{% endfor %}
|
||||
{% if options_form %}{{ options_form }}{% endif %}
|
||||
{% if options_form %}<tr><td colspan="11">{{ options_form.as_p }}</td></tr>{% endif %}
|
||||
</tbody>
|
||||
</table>
|
||||
</form>
|
||||
|
|
|
@ -33,7 +33,7 @@
|
|||
{% endif %}
|
||||
<br /><hr />
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.non_field_errors }}
|
||||
<table id="timeslot-form" class="full-width">
|
||||
<tr>
|
||||
|
|
|
@ -19,8 +19,7 @@
|
|||
{% if meeting.frozen == 1 %}
|
||||
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
||||
{% endif %}
|
||||
<table class="full-width">
|
||||
<col id="proceedings-view-first-col" />
|
||||
<table class="full-width" id="proceedings-view-first-col">
|
||||
<tr><td>Start Date:</td><td> {{ meeting.date }}</td></tr>
|
||||
<tr><td>City:</td><td> {{ meeting.city }} </td></tr>
|
||||
<tr><td>Country:</td><td> {{ meeting.country }} </td></tr>
|
||||
|
@ -56,24 +55,4 @@
|
|||
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
|
@ -12,17 +12,17 @@
|
|||
</tr>
|
||||
{% for meeting in meetings %}
|
||||
<tr class="{% cycle 'row1' 'row2' %}">
|
||||
<td align="left" style="white-space: nowrap">{{ meeting.date }}</td>
|
||||
<td class="text-start" style="white-space: nowrap">{{ meeting.date }}</td>
|
||||
<td><a href="https://datatracker.ietf.org/wg/{{ meeting.group.acronym }}">{{ meeting.group.acronym }}</a></td>
|
||||
{% if meeting.schedule %}
|
||||
<td width="70" align="center"><a href="{{ meeting.schedule.get_absolute_url }}">Agenda</a></td>
|
||||
<td class="text-center"><a href="{{ meeting.schedule.get_absolute_url }}">Agenda</a></td>
|
||||
{% else %}
|
||||
<td width="70" align="center">Agenda</td>
|
||||
<td class="text-center">Agenda</td>
|
||||
{% endif %}
|
||||
{% if meeting.minutes %}
|
||||
<td width="70" align="center"><a href="{{ meeting.minutes.get_absolute_url }}">Minutes</a></td>
|
||||
<td class="text-center"><a href="{{ meeting.minutes.get_absolute_url }}">Minutes</a></td>
|
||||
{% else %}
|
||||
<td width="70" align="center">Minutes</td>
|
||||
<td class="text-center">Minutes</td>
|
||||
{% endif %}
|
||||
{% if meeting.get_proceedings_url %}
|
||||
<td><a href="{{ meeting.get_proceedings_url }}">Proceedings</a></td>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
{% block title %}Proceedings{% endblock %}
|
||||
|
||||
{% block extrastyle %}{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
|
||||
{% endblock %}
|
||||
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
<div class="module interim-container">
|
||||
<h2>Recording Metadata for Group: {{ form.instance.group.acronym }} | Session: {{ form.instance.session_set.first.official_scheduledsession.timeslot.time }}</h2>
|
||||
<p><h3>Edit Recording Metadata:</h3></p>
|
||||
<form id="recording-form" action="" method="post">{% csrf_token %}
|
||||
<form id="recording-form" method="post">{% csrf_token %}
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
|
|
@ -18,8 +18,7 @@
|
|||
{% if meeting.frozen == 1 %}
|
||||
<ul class="errorlist"><li> THIS IS A FROZEN PROCEEDING</li></ul>
|
||||
{% endif %}
|
||||
<table class="full-width">
|
||||
<col id="proceedings-view-first-col" />
|
||||
<table class="full-width" id="proceedings-view-first-col">
|
||||
<tr><td>Meeting Start Date:</td><td> {{ meeting.date }}</td></tr>
|
||||
<tr><td>Meeting End Date:</td><td> {{ meeting.end_date }} </td></tr>
|
||||
<tr><td>Meeting City:</td><td> {{ meeting.city }} </td></tr>
|
||||
|
@ -28,8 +27,7 @@
|
|||
|
||||
<div class="inline-related">
|
||||
<h2>Dates</h2>
|
||||
<table class="full-width">
|
||||
<col id="proceedings-view-first-col" />
|
||||
<table class="full-width" id="proceedings-view-first-col">
|
||||
<tr><td>Submission Start Date:</td><td> {{ meeting.get_submission_start_date }} </td></tr>
|
||||
<tr><td>Submission Cut Off Date:</td><td> {{ meeting.get_submission_cut_off_date }} </td></tr>
|
||||
<tr><td>Submission Correction Cut Off Date:</td><td> {{ meeting.get_submission_correction_date }} </td></tr>
|
||||
|
@ -54,27 +52,4 @@
|
|||
</div> <!-- button-group -->
|
||||
</div> <!-- module -->
|
||||
|
||||
{% endblock %}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
|
@ -4,7 +4,7 @@
|
|||
{% block title %}Roles{% endblock %}
|
||||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/jquery-ui.css' %}" />
|
||||
<script src="{% static 'ietf/js/jquery-ui.js' %}"></script>
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
|
||||
|
@ -40,7 +40,7 @@
|
|||
{% block content %}
|
||||
|
||||
<div class="module interim-container">
|
||||
<form id="roles-form" action="" method="post">{% csrf_token %}
|
||||
<form id="roles-form" method="post">{% csrf_token %}
|
||||
<h2>Role Tool</h2>
|
||||
<div class="inline-related">
|
||||
<h3><b>Select Group</b></h3>
|
||||
|
|
|
@ -38,9 +38,9 @@
|
|||
|
||||
<div class="module">
|
||||
<h2>Name</h2>
|
||||
<form id="rolodex-add-form" enctype="multipart/form-data" action="" method="post">{% csrf_token %}
|
||||
<form id="rolodex-add-form" enctype="multipart/form-data" method="post">{% csrf_token %}
|
||||
<table class="full-width amstable">
|
||||
<col width="200">
|
||||
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
{% block content %}
|
||||
<h1>Adding {{ name }}</h1>
|
||||
|
||||
<form action="" method="post" id="rolodex-add-form">{% csrf_token %}
|
||||
<form method="post" id="rolodex-add-form">{% csrf_token %}
|
||||
<div class="module">
|
||||
<h2>Rolodex - Add</h2>
|
||||
<table class="full-width amstable">
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
{% endfor %}
|
||||
</ul>
|
||||
</li></ul>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<input type="hidden" name="post" value="yes" />
|
||||
<input type="submit" value="Yes, I'm sure" />
|
||||
</form>
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<form enctype="multipart/form-data" action="" method="post" id="rolodex-edit-form">{% csrf_token %}
|
||||
<form enctype="multipart/form-data" method="post" id="rolodex-edit-form">{% csrf_token %}
|
||||
<div class="module">
|
||||
<h2>Rolodex - Edit</h2>
|
||||
<table id="rolodex-edit-table" class="full-width amstable">
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
<h2>Rolodex - Search <span class="unlocked"><a href="add/" class="addlink">Add</a></span></h2>
|
||||
<form id="rolodex-search-form" action="." method="post">{% csrf_token %}
|
||||
<table class="full-width amstable">
|
||||
<col width="200">
|
||||
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
|
||||
|
||||
<table id="rolodex-view-table" class="full-width">
|
||||
<col width="150">
|
||||
|
||||
<tr><td>Name:</td><td>{{ person.name }}</td></tr>
|
||||
<tr><td>Ascii Name:</td><td>{{ person.ascii }}</td></tr>
|
||||
<tr><td>Short Name:</td><td>{{ person.ascii_short }}</td></tr>
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
{% endif %}
|
||||
</li>
|
||||
{% empty %}
|
||||
<i>NONE</i>
|
||||
<li><i>NONE</i></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div> <!-- inline-related -->
|
||||
|
@ -52,7 +52,7 @@
|
|||
{% for group in scheduled_groups %}
|
||||
<li><a href="{% url "ietf.secr.sreq.views.view" acronym=group.acronym %}">{{ group.acronym }} - {{ group.status_message }}</a></li>
|
||||
{% empty %}
|
||||
<i>NONE</i>
|
||||
<li><i>NONE</i></li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
</div> <!-- inline-related -->
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
<div class="module interim-container">
|
||||
<h2>Sessions - Status</h2>
|
||||
<p>Enter the message that you would like displayed to the WG Chair when this tool is locked.</p>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<table>
|
||||
{{ form.as_table }}
|
||||
</table>
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
|
||||
{% block extrahead %}{{ block.super }}
|
||||
<script src="{% static 'secr/js/utils.js' %}"></script>
|
||||
<link rel="stylesheet" type="text/css" href="{% static 'secr/css/telechat.css' %}" />
|
||||
<link rel="stylesheet" href="{% static 'secr/css/telechat.css' %}" />
|
||||
{% endblock %}
|
||||
|
||||
{% block breadcrumbs %}{{ block.super }}
|
||||
|
|
|
@ -28,7 +28,7 @@
|
|||
Number of Open Positions: {{ open_positions }}<br />
|
||||
<br />
|
||||
<div>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ formset.management_form }}
|
||||
<table id="telechat-positions-table">
|
||||
<tr>
|
||||
|
@ -56,7 +56,7 @@
|
|||
|
||||
<hr /><br />
|
||||
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
<table>
|
||||
{{ state_form.as_table }}
|
||||
</table>
|
||||
|
@ -72,13 +72,13 @@
|
|||
<br /><hr /><br />
|
||||
{% endif %}
|
||||
|
||||
<a name="writeup"><h2>Ballot Writeup</h2></a>
|
||||
<h2 id="writeup">Ballot Writeup</h2>
|
||||
<pre>
|
||||
{{ writeup }}
|
||||
</pre>
|
||||
|
||||
{% if downrefs %}
|
||||
<a name="downrefs"><h2>Downward References</h2></a>
|
||||
<h2 id="downrefs">Downward References</h2>
|
||||
{% for ref in downrefs %}
|
||||
<p>Add {{ref.target.document.canonical_name}}
|
||||
({{ref.target.document.std_level}} - {{ref.target.document.stream.desc}})
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
<form id="dummy" action="" method="post">{% csrf_token %}
|
||||
<form id="dummy" method="post">{% csrf_token %}
|
||||
{% if header.2 == "4.1.1 Proposed for IETF Review" %}
|
||||
<b>Does anyone have an objection to the creation of this working group being sent for EXTERNAL REVIEW?</b><br><br>
|
||||
<input type="radio" name="wg_action_status" value="1"> External Review APPROVED; "The Secretariat will send a Working Group Review announcement with a copy to new-work and place it back on the agenda for the next telechat."<br><br>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
{% block subsection %}
|
||||
<div id="telechat-main-DUPLICATE">
|
||||
<h3>Select a Telechat</h3>
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
{{ form.date.label_tag }} {{ form.date }} <button type="submit" name="submit" value="Select">Select</button>
|
||||
</form>
|
||||
<br>
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<span class="telechat-warn"><h3>This feature is pending</h3></span>
|
||||
<h3>Roll Call</h3>
|
||||
<br />
|
||||
<form action="" method="post">{% csrf_token %}
|
||||
<form method="post">{% csrf_token %}
|
||||
{% for person in people %}
|
||||
<input type="checkbox" name="attendee" value="{{ person.id }}" checked="checked" /> {{ person.name }}<br />
|
||||
{% endfor %}
|
||||
|
|
|
@ -69,8 +69,7 @@ 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 btn btn-danger btn-sm">Delete</a>';
|
||||
html += '</div>';
|
||||
attachmentWidget.config.showOnDisplay.html(html);
|
||||
attachmentWidget.count += 1;
|
||||
|
|
|
@ -667,5 +667,5 @@ class MessageModelForm(forms.ModelForm):
|
|||
def __init__(self, *args, **kwargs):
|
||||
super(MessageModelForm, self).__init__(*args, **kwargs)
|
||||
self.fields['frm'].label='From'
|
||||
self.fields['frm'].widget.attrs['readonly'] = 'True'
|
||||
self.fields['reply_to'].widget.attrs['readonly'] = 'True'
|
||||
self.fields['frm'].widget.attrs['readonly'] = True
|
||||
self.fields['reply_to'].widget.attrs['readonly'] = True
|
|
@ -13,7 +13,7 @@
|
|||
</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
{% comment Halloween %}
|
||||
<link href='https://fonts.googleapis.com/css?family=IM+Fell+English+SC|IM+Fell+DW+Pica:400,400italic|Nova+Mono|IM+Fell+English:400,400italic&subset=latin-ext,latin' rel='stylesheet' type='text/css'>
|
||||
<link href='https://fonts.googleapis.com/css?family=IM+Fell+English+SC|IM+Fell+DW+Pica:400,400italic|Nova+Mono|IM+Fell+English:400,400italic&subset=latin-ext,latin' rel='stylesheet'>
|
||||
{% endcomment %}
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/select2.css' %}">
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<br>
|
||||
Which downward references, if any, are to be added to the DOWNREF registry?</b>
|
||||
</p>
|
||||
<form action="" method="post">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form approve_downrefs_form %}
|
||||
<a class="btn btn-primary"
|
||||
|
|
|
@ -20,8 +20,7 @@
|
|||
<button type="submit" class="btn btn-warning" name="regenerate_text" value="Regenerate">Regenerate
|
||||
</button>
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
<a type="submit"
|
||||
class="btn btn-primary"
|
||||
<a class="btn btn-primary"
|
||||
href="{% url 'ietf.doc.views_charter.approve' name=charter.canonical_name %}">
|
||||
Charter approval page
|
||||
</a>
|
||||
|
|
|
@ -155,7 +155,7 @@
|
|||
{{ doc.name }}-{{ doc.rev }}
|
||||
</div>
|
||||
<div class="card-body">
|
||||
{{ content|linkify|urlize_ietf_docs }}
|
||||
{{ content|urlize_ietf_docs|linkify }}
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -989,8 +989,6 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
{% endif %}
|
||||
|
|
|
@ -73,25 +73,25 @@
|
|||
name="difftype"
|
||||
value="--html"
|
||||
id="html">
|
||||
<label for="html"class="btn btn-outline-primary">Side-by-side</label>
|
||||
<label for="html" class="btn btn-outline-primary">Side-by-side</label>
|
||||
<input type="radio"
|
||||
class="btn-check"
|
||||
name="difftype"
|
||||
value="--abdiff"
|
||||
id="abdiff">
|
||||
<label for="abdiff"class="btn btn-outline-primary">Before-after</label>
|
||||
<label for="abdiff" class="btn btn-outline-primary">Before-after</label>
|
||||
<input type="radio"
|
||||
class="btn-check"
|
||||
name="difftype"
|
||||
value="--chbars"
|
||||
id="chbars">
|
||||
<label for="chbars"class="btn btn-outline-primary">Change bars</label>
|
||||
<label for="chbars" class="btn btn-outline-primary">Change bars</label>
|
||||
<input type="radio"
|
||||
class="btn-check"
|
||||
name="difftype"
|
||||
value="--hwdiff"
|
||||
id="hwdiff">
|
||||
<label for="hwdiff"class="btn btn-outline-primary">Wdiff</label>
|
||||
<label for="hwdiff" class="btn btn-outline-primary">Wdiff</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Review suggestions for documents that {{ doc }} replaces</h1>
|
||||
<form name="review-suggested-replaces" role="form" method="post">
|
||||
<form name="review-suggested-replaces" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<a class="btn btn-secondary float-end" href="{{ doc.get_absolute_url }}">Back</a>
|
||||
|
|
|
@ -27,11 +27,11 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% for state, docs in grouped_docs %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="5">{{ state.name }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for doc in docs %}
|
||||
<tr>
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<div class="mb-3">
|
||||
<label class="form-label" for="role-toolbar">Related people</label>
|
||||
<label class="form-label">Related people</label>
|
||||
<div class="btn-toolbar"
|
||||
role="toolbar"
|
||||
id="role-toolbar-{{ role_type_label|slugify }}">
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
<label class="my-1 fw-bold" for="docrev">Versions:</label>
|
||||
<nav id="docrev" class="mb-3">
|
||||
<label class="my-1 fw-bold">Versions:</label>
|
||||
<nav class="mb-3">
|
||||
<ul class="pagination pagination-sm">
|
||||
{% for rev in revisions %}
|
||||
<li class="page-item {% if rev == doc.rev %}{% if snapshot or doc.get_state_slug != 'rfc' %}active{% endif %}{% endif %}">
|
||||
|
|
|
@ -40,7 +40,7 @@
|
|||
{% endif %}
|
||||
{% regroup docs by search_heading as grouped_docs %}
|
||||
{% for doc_group in grouped_docs %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th></th>
|
||||
{% if color_ad_position %}
|
||||
|
@ -51,7 +51,7 @@
|
|||
{{ doc_group.grouper|plural:doc_group.list }} ({{ doc_group.list|length }} {{"hit"|plural:doc_group.list }})
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for doc in doc_group.list %}
|
||||
{% include "doc/search/search_result_row.html" %}
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
</option>
|
||||
</select>
|
||||
<select class="form-select" name="statchg_relation_row_{{ rfc }}">
|
||||
<option value="" {% if choice_slug == "" %}selected{% endif %}>
|
||||
<option {% if choice_slug == "" %}selected{% endif %}>
|
||||
(None)
|
||||
</option>
|
||||
{% for rel in relation_slugs %}
|
||||
|
@ -38,7 +38,7 @@
|
|||
data-placeholder="Enter new affected RFC.">
|
||||
</select>
|
||||
<select class="form-select" name="statchg_relation_row_">
|
||||
<option value="" {% if choice_slug == "" %}selected{% endif %}>
|
||||
<option {% if choice_slug == "" %}selected{% endif %}>
|
||||
(Select proposed new status.)
|
||||
</option>
|
||||
{% for rel in relation_slugs %}
|
||||
|
|
|
@ -26,11 +26,11 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% for state in state_groups %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="2">{{ state.grouper }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for doc in state.list %}
|
||||
<tr>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{% load origin %}
|
||||
{% origin %}
|
||||
<!doctype html>
|
||||
<html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<title>
|
||||
Google Webmaster Tools Verification
|
||||
|
|
|
@ -17,13 +17,13 @@
|
|||
</thead>
|
||||
{% regroup adm by parent as grouped_groups %}
|
||||
{% for grouptype in grouped_groups %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th colspan="2" class="table-info">
|
||||
Active {% firstof grouptype.grouper.verbose_name grouptype.grouper.name 'Top-level Administration' %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for group in grouptype.list %}
|
||||
<tr>
|
||||
|
|
|
@ -19,11 +19,11 @@
|
|||
|
||||
{% regroup iabgroups by type as grouped_groups %}
|
||||
{% for grouptype in grouped_groups %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info"><th colspan="3">
|
||||
{% firstof grouptype.grouper.verbose_name grouptype.grouper.name %}{{ grouptype.list|pluralize }}
|
||||
</th></tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for group in grouptype.list %}
|
||||
<tr>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
<div class="col-md-6 rightpanel">
|
||||
<div class="h2 text-center bg-info">Markdown rendering</div>
|
||||
<div class="border-bottom text-center">
|
||||
<label for="exampleFormControlInput1" class="form-label">Constrain width</label>
|
||||
<label class="form-label">Constrain width</label>
|
||||
<input type="checkbox" class="form-check-input" name="widthconstraint">
|
||||
</div>
|
||||
<div class="rightcontent">{{ rendered|sanitize|safe }}</div>
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
name="milestone"
|
||||
value="{{ milestone.id }}"
|
||||
{% if not milestone.resolved %}checked{% endif %}>
|
||||
<label class="form-check-label" for="{{ milestone.id }}">
|
||||
<label class="form-check-label">
|
||||
{{ milestone.desc }}
|
||||
<span class="badge {% if milestone.resolved %}bg-success{% else %}bg-info{% endif %}">
|
||||
{% if milestone.resolved %}
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
{% load ietf_filters static django_bootstrap5 %}
|
||||
{% block content %}
|
||||
<h1>Set next reviewer in queue<br><small class="text-muted">{{ group.acronym }}</small></h1>
|
||||
<form class="my-3" role="form" method="post">
|
||||
<form class="my-3" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<button class="btn btn-primary" type="submit">Save</button>
|
||||
|
|
|
@ -30,11 +30,11 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% if unassigned_review_requests %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info" id="unassigned-review-requests">
|
||||
<th colspan="7">Unassigned review requests</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for r in unassigned_review_requests %}
|
||||
<tr>
|
||||
|
@ -76,11 +76,11 @@
|
|||
</tbody>
|
||||
{% endif %}
|
||||
{% if open_review_assignments %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info" id="open_review_assignments">
|
||||
<th colspan="7">Open review requests</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for a in open_review_assignments %}
|
||||
<tr>
|
||||
|
@ -153,13 +153,13 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% if closed_review_requests %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="8">
|
||||
Closed review requests
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for r in closed_review_requests %}
|
||||
<tr>
|
||||
|
@ -192,13 +192,13 @@
|
|||
</tbody>
|
||||
{% endif %}
|
||||
{% if closed_review_assignments %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="8">
|
||||
Closed review assignments
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% for a in closed_review_assignments %}
|
||||
<tr>
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
<th data-sort="status">Status</th>
|
||||
<th data-sort="ipr">IPR</th>
|
||||
<th data-sort="ad">AD/Shepherd</th>
|
||||
<th></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
|
|
@ -42,7 +42,7 @@ Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Moderator Package for {{ date }} IESG Telechat</title>
|
||||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}">
|
||||
<style type="text/css">
|
||||
<style>
|
||||
h3 { page-break-before:always; }
|
||||
@media print {
|
||||
html { margin: 0; }
|
||||
|
|
|
@ -171,7 +171,7 @@
|
|||
<p>
|
||||
Add a draft that you would like to review when it becomes available for review:
|
||||
</p>
|
||||
<form role="form" method="post" class="form-inline">
|
||||
<form method="post" class="form-inline">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form review_wish_form %}
|
||||
<button class="btn btn-primary" type="submit" name="action" value="add_wish">
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
<p>
|
||||
Current value of <code>testmailcc</code> cookie: <code>{{ cookie|default:"(Unset)" }}</code>
|
||||
</p>
|
||||
<form role="form" method="post">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<button class="btn btn-primary" type="submit">Set cookie</button>
|
||||
|
|
|
@ -69,7 +69,7 @@
|
|||
</p>
|
||||
</li>
|
||||
</ol>
|
||||
<form role="form" method="post">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<button class="btn btn-primary" type="submit">Add address to account creation whitelist</button>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% load ietf_filters ipr_filters static person_filters textfilters %}
|
||||
{% block morecss %}
|
||||
{% block pagehead %}
|
||||
<link rel="stylesheet" href="{% static "ietf/css/list.css" %}">
|
||||
{% endblock %}
|
||||
{% block title %}History for IPR - {{ ipr.title }}{% endblock %}
|
||||
|
|
|
@ -55,13 +55,13 @@
|
|||
</thead>
|
||||
|
||||
{% for doc in docs %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="table-info" colspan="3">
|
||||
Results for {{ doc.name|rfcspace|lstrip:"0"|urlize_ietf_docs }} ("{{ doc.document.title }}"){% if not forloop.first %}{% if doc.related %}, which was {{ doc.relation|lower }} {{ doc.related.source|rfcspace|lstrip:"0"|urlize_ietf_docs }} ("{{ doc.related.source.title }}"){% endif %}{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% with doc.iprdocrel_set.all as doc_iprs %}
|
||||
{% if doc_iprs %}
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% for alias in docs %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="table-info" colspan="3">
|
||||
IPR that is related to {{ alias.name|lstrip:"0"|rfcnospace|urlize_ietf_docs }} ("{{ alias.document.title }}")
|
||||
|
@ -34,7 +34,7 @@
|
|||
{% endif %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% if alias.document.ipr %}
|
||||
{% for ipr in alias.document.ipr %}
|
||||
|
|
|
@ -35,14 +35,14 @@
|
|||
{% for ipr in iprs %}
|
||||
{% if user|has_role:"Secretariat" %}
|
||||
{% ifchanged %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-warning">
|
||||
<th colspan="3">{{ ipr.state.name }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
{% endifchanged %}
|
||||
{% endif %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="3">
|
||||
{% block intro_prefix %}IPR that was submitted by "{{ q }}" and{% endblock %}
|
||||
|
@ -62,7 +62,7 @@
|
|||
{% block intro_suffix %}{% endblock %}
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>{{ ipr.time|date:"Y-m-d" }}</td>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
</tr>
|
||||
</thead>
|
||||
{% for alias in docs %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr class="table-info">
|
||||
<th colspan="3">
|
||||
IPR related to {{ alias.name|rfcspace|lstrip:"0"|urlize_ietf_docs }} ("{{ alias.document.title }}")
|
||||
|
@ -32,7 +32,7 @@
|
|||
:
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
<tbody>
|
||||
{% if alias.document.ipr %}
|
||||
{% for ipr in alias.document.ipr %}
|
||||
|
|
|
@ -42,7 +42,7 @@
|
|||
<a href="{% url 'liaison-help-fields' %}">field help</a>.
|
||||
</p>
|
||||
{% endif %}
|
||||
<form role="form"
|
||||
<form
|
||||
class="liaisons-form form-horizontal show-required"
|
||||
method="post"
|
||||
enctype="multipart/form-data"
|
||||
|
|
|
@ -83,7 +83,7 @@
|
|||
</span>
|
||||
{% endif %}
|
||||
</h2>
|
||||
<iframe class="w-100 overflow-hidden border border-dark" scrolling="no"></iframe>
|
||||
<iframe class="w-100 overflow-hidden border border-dark"></iframe>
|
||||
</div>
|
||||
<h2 class="mt-3">
|
||||
{% if personalize %}Personalize{% endif %}
|
||||
|
|
|
@ -18,8 +18,8 @@
|
|||
{# style off-agenda sessions to indicate this #}
|
||||
.edit-meeting-schedule .session.off-agenda { filter: brightness(0.9); }
|
||||
{# type and purpose styling #}
|
||||
.edit-meeting-schedule .edit-grid .timeslot.wrong-timeslot-type { background-color: transparent; ); }
|
||||
.edit-meeting-schedule .edit-grid .timeslot.wrong-timeslot-type .time-label { color: transparent; ); }
|
||||
.edit-meeting-schedule .edit-grid .timeslot.wrong-timeslot-type { background-color: transparent; }
|
||||
.edit-meeting-schedule .edit-grid .timeslot.wrong-timeslot-type .time-label { color: transparent; }
|
||||
.edit-meeting-schedule .session.hidden-purpose { filter: blur(3px); }
|
||||
{% endblock %}
|
||||
{% block title %}{{ schedule.name }}: IETF {{ meeting.number }} meeting agenda{% endblock %}
|
||||
|
|
|
@ -113,10 +113,12 @@
|
|||
<small class="text-muted">{{ session.last_update|utc|date:"H:i:s" }} UTC</small>
|
||||
{% endif %}
|
||||
</td>
|
||||
<td>
|
||||
{% if user|has_role:"Secretariat" or session.group in user_groups %}
|
||||
<div class="float-end">{% include "meeting/edit_materials_button.html" %}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% if user|has_role:"Secretariat" or user_groups %}
|
||||
<td>
|
||||
{% if session.group in user_groups %}
|
||||
<div class="float-end">{% include "meeting/edit_materials_button.html" %}</div>
|
||||
{% endif %}
|
||||
</td>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
</tr>
|
|
@ -17,7 +17,6 @@
|
|||
<p class="pull-left">Last updated: {% firstof note.get_update_time "unknown" %}</p>
|
||||
<p class="pull-right"><a href="{{ note.url }}">View on notes.ietf.org</a></p>
|
||||
<iframe id="preview" srcdoc="{{ note.get_preview|force_escape }}" sandbox>
|
||||
<p>Your browser does not support iframes, so preview cannot be shown.</p>
|
||||
</iframe>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
{% origin %}
|
||||
<h1>Interim Meeting Request</h1>
|
||||
{% if form.non_field_errors %}<div class="my-3 alert alert-danger">{{ form.non_field_errors }}</div>{% endif %}
|
||||
<form id="interim-request-form" role="form" method="post" class="my-3">
|
||||
<form id="interim-request-form" method="post" class="my-3">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_field form.group layout='horizontal' %}
|
||||
{% bootstrap_field form.in_person layout='horizontal' %}
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
{% endblock %}
|
||||
</h1>
|
||||
<form id="interim-request-cancel-form"
|
||||
role="form"
|
||||
|
||||
method="post"
|
||||
class="my-3">
|
||||
{% csrf_token %}
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
{% origin %}
|
||||
<h1>Edit Interim Meeting Request</h1>
|
||||
{% if form.non_field_errors %}<div class="my-3 alert alert-danger">{{ form.non_field_errors }}</div>{% endif %}
|
||||
<form id="interim-request-form" role="form" method="post" class="my-3">
|
||||
<form id="interim-request-form" method="post" class="my-3">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_field form.group layout='horizontal' %}
|
||||
<input type="hidden" name="group" value="{{ form.group.value }}">
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Announce Interim Meeting</h1>
|
||||
<form method="post" role="form" class="my-3">
|
||||
<form method="post" class="my-3">
|
||||
{% csrf_token %}
|
||||
<div class="row mb-3">
|
||||
<label for="id_to" class="col-md-2 fw-bold col-form-label">To</label>
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
<p class="alert alert-info my-3">
|
||||
You are requesting to complete scheduling of the interim meeting for <b>{{ meeting.session_set.first.group.acronym|upper }}</b> on <b>{{ meeting.date }}</b> without sending an announcement.
|
||||
</p>
|
||||
<form action="" method="post">
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
<input class="btn btn btn-danger" type="submit" value="Continue">
|
||||
<a class="btn btn-secondary float-end"
|
||||
|
|
|
@ -19,9 +19,9 @@
|
|||
</li>
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p>
|
||||
<li>
|
||||
You cannot manage the meeting materials for any groups.
|
||||
</p>
|
||||
</li>
|
||||
{% endif %}
|
||||
{% endwith %}
|
||||
</ul>
|
||||
|
|
|
@ -40,11 +40,11 @@
|
|||
</thead>
|
||||
{% for session in area.list %}
|
||||
{% ifchanged %}
|
||||
<thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th class="table-warning" colspan="7">{{ session.current_status_name|capfirst }}</th>
|
||||
</tr>
|
||||
</thead>
|
||||
</tbody>
|
||||
{% endifchanged %}
|
||||
<tbody>
|
||||
<tr>
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
{% if session.agenda and show_agenda %}
|
||||
{# agenda pop-up button #}
|
||||
<button class="btn btn-outline-primary"
|
||||
role="button"
|
||||
data-bs-toggle="modal"
|
||||
data-bs-target="#modal-{{ slug }}"
|
||||
title="Show meeting materials">
|
||||
|
|
|
@ -11,12 +11,12 @@
|
|||
{% endcomment %}
|
||||
.timeslot-edit { overflow: auto; height: max(30rem, calc(100vh - 25rem));}
|
||||
.tstable { width: 100%; border-collapse: separate; } {# "separate" to ensure sticky cells keep their borders #}
|
||||
.tstable thead { position: sticky; top: 0; z-index: 2; background-color: white;}
|
||||
.tstable thead { position: sticky; top: 0; z-index: 3; background-color: white;}
|
||||
.tstable th:first-child, .tstable td:first-child {
|
||||
background-color: white; {# needs to match the lighter of the striped-table colors! #}
|
||||
position: sticky;
|
||||
left: 0;
|
||||
z-index: 1.5; {# render above other cells / borders but below thead (z-index 2, above) #}
|
||||
z-index: 2; {# render above other cells / borders but below thead (z-index 3, above) #}
|
||||
}
|
||||
.tstable tbody > tr:nth-of-type(odd) > th:first-child {
|
||||
background-color: rgb(249, 249, 249); {# needs to match the darker of the striped-table colors! #}
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
<div class="tz-display input-group my-3">
|
||||
<label class="input-group-text border-primary bg-white fw-bold">Time zone:</label>
|
||||
<input type="radio"
|
||||
autocomplete="off"
|
||||
{% if timezone == "meeting" %}checked{% endif %}
|
||||
name="tzradio"
|
||||
class="btn-check"
|
||||
|
@ -11,7 +10,6 @@
|
|||
onclick="ietf_timezone.use('{{ timezone }}')">
|
||||
<label class="btn btn-outline-primary" for="meeting-timezone{{ id_suffix }}">Meeting</label>
|
||||
<input type="radio"
|
||||
autocomplete="off"
|
||||
{% if timezone == "local" %}checked{% endif %}
|
||||
name="tzradio"
|
||||
class="btn-check"
|
||||
|
@ -19,7 +17,6 @@
|
|||
onclick="ietf_timezone.use('local')">
|
||||
<label class="btn btn-outline-primary" for="local-timezone{{ id_suffix }}">Local</label>
|
||||
<input type="radio"
|
||||
autocomplete="off"
|
||||
{% if timezone == "UTC" %}checked{% endif %}
|
||||
name="tzradio"
|
||||
class="btn-check"
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}
|
||||
{% origin %}
|
||||
{% load static %}
|
||||
{# FIXME: the weekview only renders correctly in quirks mode, i.e., not in HTML5 with "<!doctype html>" in the next line; it should be rewritten with fullcalendar #}
|
||||
{# <!doctype html> #}
|
||||
<html lang="en">
|
||||
{% origin %}
|
||||
<head>
|
||||
<title>Weekview</title>
|
||||
<meta charset="utf-8">
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
</button>
|
||||
</h2>
|
||||
<div id="generic_iesg_reqs_{{ position.name|slugify }}"
|
||||
role="region"
|
||||
class="accordion-collapse collapse">
|
||||
<div class="accordion-body">{{ generic_iesg_reqs|safe }}</div>
|
||||
</div>
|
||||
|
@ -21,6 +22,7 @@
|
|||
</button>
|
||||
</h2>
|
||||
<div id="iesg_reqs_{{ position.name|slugify }}"
|
||||
role="region"
|
||||
class="accordion-collapse collapse show"
|
||||
aria-expanded="true">
|
||||
<div class="accordion-body">{{ specific_reqs|safe }}</div>
|
||||
|
|
|
@ -146,6 +146,7 @@
|
|||
<form class="form-inline" id="batch-action-form" method="post">
|
||||
{% csrf_token %}
|
||||
{% endif %}
|
||||
{% if nominee_positions %}
|
||||
<table class="table table-sm table-striped table-hover tablesorter"
|
||||
id="nominee-position-table">
|
||||
<thead>
|
||||
|
@ -169,49 +170,50 @@
|
|||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
{% if nominee_positions %}
|
||||
<tbody>
|
||||
{% for np in nominee_positions %}
|
||||
<tr>
|
||||
{% if is_chair and nomcom.group.state_id == 'active' %}
|
||||
<td>
|
||||
<input class="batch-select form-check-input"
|
||||
type="checkbox"
|
||||
value="{{ np.id }}"
|
||||
name="selected">
|
||||
</td>
|
||||
<td class="edit">
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.nomcom.views.edit_nominee' year np.nominee.id %}">
|
||||
Edit
|
||||
</a>
|
||||
</td>
|
||||
{% endif %}
|
||||
<tbody>
|
||||
{% for np in nominee_positions %}
|
||||
<tr>
|
||||
{% if is_chair and nomcom.group.state_id == 'active' %}
|
||||
<td>
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=np.nominee.name %}">
|
||||
{{ np.nominee }}
|
||||
</a>
|
||||
<input class="batch-select form-check-input"
|
||||
type="checkbox"
|
||||
value="{{ np.id }}"
|
||||
name="selected">
|
||||
</td>
|
||||
<td>
|
||||
<td class="edit">
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.nomcom.views.view_feedback_nominee' year=year nominee_id=np.nominee.id %}#comment">
|
||||
View feedback
|
||||
href="{% url 'ietf.nomcom.views.edit_nominee' year np.nominee.id %}">
|
||||
Edit
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ np.position.name }}
|
||||
</td>
|
||||
<td>
|
||||
{{ np.state }}
|
||||
</td>
|
||||
<td>
|
||||
{{ np.questionnaires|yesno:"Yes,No,No" }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
{% endif %}
|
||||
{% endif %}
|
||||
<td>
|
||||
<a href="{% url 'ietf.person.views.profile' email_or_name=np.nominee.name %}">
|
||||
{{ np.nominee }}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a class="btn btn-primary btn-sm"
|
||||
href="{% url 'ietf.nomcom.views.view_feedback_nominee' year=year nominee_id=np.nominee.id %}#comment">
|
||||
View feedback
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
{{ np.position.name }}
|
||||
</td>
|
||||
<td>
|
||||
{{ np.state }}
|
||||
</td>
|
||||
<td>
|
||||
{{ np.questionnaires|yesno:"Yes,No,No" }}
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% else %}
|
||||
<p>No nominees.</p>
|
||||
{% endif %}
|
||||
{% if is_chair %}
|
||||
{% if nomcom.group.state_id == 'active' %}
|
||||
<div class="mb-3">
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
</p>
|
||||
{% endif %}
|
||||
{% if nomcom.group.state_id == 'active' %}
|
||||
<form id="reminderform " method="post">
|
||||
<form id="reminderform" method="post">
|
||||
{% csrf_token %}
|
||||
<table class="table table-sm table-striped">
|
||||
<thead>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue