Template fixes, and changes needed to fix templates.
- Legacy-Id: 19642
This commit is contained in:
parent
868f583afc
commit
408f45a9bf
|
@ -14,5 +14,9 @@ module.exports = {
|
|||
},
|
||||
globals: {
|
||||
d3: true
|
||||
},
|
||||
parserOptions: {
|
||||
sourceType: "module",
|
||||
ecmaVersion: 2015
|
||||
}
|
||||
};
|
|
@ -33,18 +33,18 @@ $enable-negative-margins: true;
|
|||
@import "~/node_modules/bootstrap/scss/card";
|
||||
@import "~/node_modules/bootstrap/scss/accordion";
|
||||
// @import "~/node_modules/bootstrap/scss/breadcrumb";
|
||||
// @import "~/node_modules/bootstrap/scss/pagination";
|
||||
@import "~/node_modules/bootstrap/scss/pagination";
|
||||
@import "~/node_modules/bootstrap/scss/badge";
|
||||
// @import "~/node_modules/bootstrap/scss/alert";
|
||||
@import "~/node_modules/bootstrap/scss/alert";
|
||||
// @import "~/node_modules/bootstrap/scss/progress";
|
||||
// @import "~/node_modules/bootstrap/scss/list-group";
|
||||
// @import "~/node_modules/bootstrap/scss/close";
|
||||
@import "~/node_modules/bootstrap/scss/close";
|
||||
// @import "~/node_modules/bootstrap/scss/toasts";
|
||||
// @import "~/node_modules/bootstrap/scss/modal";
|
||||
// @import "~/node_modules/bootstrap/scss/tooltip";
|
||||
@import "~/node_modules/bootstrap/scss/modal";
|
||||
@import "~/node_modules/bootstrap/scss/tooltip";
|
||||
// @import "~/node_modules/bootstrap/scss/popover";
|
||||
// @import "~/node_modules/bootstrap/scss/carousel";
|
||||
// @import "~/node_modules/bootstrap/scss/spinners";
|
||||
@import "~/node_modules/bootstrap/scss/spinners";
|
||||
// @import "~/node_modules/bootstrap/scss/offcanvas";
|
||||
// @import "~/node_modules/bootstrap/scss/placeholders";
|
||||
|
||||
|
|
|
@ -1,18 +1,18 @@
|
|||
// Only import what we need:
|
||||
// https://getbootstrap.com/docs/5.1/customize/optimize/
|
||||
|
||||
// import "bootstrap/js/dist/alert";
|
||||
import "bootstrap/js/dist/alert";
|
||||
import "bootstrap/js/dist/button";
|
||||
// import "bootstrap/js/dist/carousel";
|
||||
import "bootstrap/js/dist/collapse";
|
||||
import "bootstrap/js/dist/dropdown";
|
||||
// import "bootstrap/js/dist/modal";
|
||||
import "bootstrap/js/dist/modal";
|
||||
// import "bootstrap/js/dist/offcanvas";
|
||||
// import "bootstrap/js/dist/popover";
|
||||
// import "bootstrap/js/dist/scrollspy";
|
||||
import "bootstrap/js/dist/tab";
|
||||
// import "bootstrap/js/dist/toast";
|
||||
// import "bootstrap/js/dist/tooltip";
|
||||
import "bootstrap/js/dist/tooltip";
|
||||
|
||||
import jquery from "jquery"
|
||||
|
||||
|
@ -29,6 +29,7 @@ function csrfSafeMethod(method) {
|
|||
// these HTTP methods do not require CSRF protection
|
||||
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
|
||||
}
|
||||
|
||||
jQuery.ajaxSetup({
|
||||
crossDomain: false, // obviates need for sameOrigin test
|
||||
beforeSend: function (xhr, settings) {
|
||||
|
@ -38,59 +39,63 @@ jQuery.ajaxSetup({
|
|||
}
|
||||
});
|
||||
|
||||
function dropdown_hover() {
|
||||
var navbar = $(this)
|
||||
.closest(".navbar");
|
||||
if (navbar.length === 0 || navbar.find(".navbar-toggler")
|
||||
.is(":hidden")) {
|
||||
$(this)
|
||||
.children(".dropdown-toggle")
|
||||
.dropdown("toggle");
|
||||
}
|
||||
}
|
||||
$(document)
|
||||
.ready(function () {
|
||||
|
||||
if (!("ontouchstart" in document.documentElement)) {
|
||||
$("ul.nav li.dropdown, ul.nav li.dropend")
|
||||
.on("mouseenter mouseleave", dropdown_hover);
|
||||
}
|
||||
|
||||
// load data for the menu
|
||||
$.ajax({
|
||||
url: $(document.body)
|
||||
.data("group-menu-data-url"),
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
for (var parentId in data) {
|
||||
var attachTo = $(".group-menu.group-parent-" + parentId);
|
||||
if (attachTo.length == 0) {
|
||||
console.log("Could not find parent " + parentId);
|
||||
continue;
|
||||
function dropdown_hover() {
|
||||
var navbar = $(this)
|
||||
.closest(".navbar");
|
||||
if (navbar.length === 0 || navbar.find(".navbar-toggler")
|
||||
.is(":hidden")) {
|
||||
$(this)
|
||||
.children(".dropdown-toggle")
|
||||
.dropdown("toggle");
|
||||
}
|
||||
attachTo.find(".dropdown-menu")
|
||||
.remove();
|
||||
var menu = ['<ul class="dropdown-menu ms-n1">'];
|
||||
var groups = data[parentId];
|
||||
var gtype = "";
|
||||
for (var i = 0; i < groups.length; ++i) {
|
||||
var g = groups[i];
|
||||
if (g.type != gtype) {
|
||||
if (i > 0)
|
||||
menu.push('<li class="dropdown-divider"></li>');
|
||||
menu.push('<li class="dropdown-header">' + g.type + 's</li>');
|
||||
gtype = g.type;
|
||||
}
|
||||
menu.push('<li><a class="dropdown-item" href="' + g.url + '">' +
|
||||
g.acronym + ' — ' + g.name + '</a></li>');
|
||||
}
|
||||
menu.push("</ul>");
|
||||
for (var i = 0; i < attachTo.length; i++) {
|
||||
attachTo.closest(".dropdown-menu");
|
||||
}
|
||||
attachTo.append(menu.join(""));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// load data for the menu
|
||||
$.ajax({
|
||||
url: $(document.body)
|
||||
.data("group-menu-data-url"),
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
for (var parentId in data) {
|
||||
var attachTo = $(".group-menu.group-parent-" + parentId);
|
||||
if (attachTo.length == 0) {
|
||||
console.log("Could not find parent " + parentId);
|
||||
continue;
|
||||
}
|
||||
attachTo.find(".dropdown-menu")
|
||||
.remove();
|
||||
var menu = ['<ul class="dropdown-menu ms-n1">'];
|
||||
var groups = data[parentId];
|
||||
var gtype = "";
|
||||
for (var i = 0; i < groups.length; ++i) {
|
||||
var g = groups[i];
|
||||
if (g.type != gtype) {
|
||||
if (i > 0)
|
||||
menu.push('<li class="dropdown-divider"></li>');
|
||||
menu.push('<li class="dropdown-header">' + g.type + "s</li>");
|
||||
gtype = g.type;
|
||||
}
|
||||
menu.push('<li><a class="dropdown-item" href="' + g.url + '">' +
|
||||
g.acronym + " — " + g.name + "</a></li>");
|
||||
}
|
||||
menu.push("</ul>");
|
||||
for (i = 0; i < attachTo.length; i++) {
|
||||
attachTo.closest(".dropdown-menu");
|
||||
}
|
||||
attachTo.append(menu.join(""));
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
if (!("ontouchstart" in document.documentElement)) {
|
||||
$("ul.nav li.dropdown, ul.nav li.dropend")
|
||||
.on("mouseenter mouseleave", dropdown_hover);
|
||||
}
|
||||
});
|
||||
|
||||
// This used to be in doc-search.js; consolidate all JS in one file.
|
||||
$(document)
|
||||
|
@ -172,15 +177,15 @@ $(document)
|
|||
updateAdvanced();
|
||||
}
|
||||
|
||||
$('.review-wish-add-remove-doc.ajax, .track-untrack-doc')
|
||||
$(".review-wish-add-remove-doc.ajax, .track-untrack-doc")
|
||||
.on("click", function (e) {
|
||||
e.preventDefault();
|
||||
var trigger = $(this);
|
||||
$.ajax({
|
||||
url: trigger.attr('href'),
|
||||
type: 'POST',
|
||||
url: trigger.attr("href"),
|
||||
type: "POST",
|
||||
cache: false,
|
||||
dataType: 'json',
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
if (response.success) {
|
||||
trigger.parent()
|
||||
|
@ -189,12 +194,11 @@ $(document)
|
|||
trigger.attr("hidden", true);
|
||||
|
||||
var target_unhide = null;
|
||||
if (trigger.hasClass('review-wish-add-remove-doc')) {
|
||||
target_unhide = '.review-wish-add-remove-doc';
|
||||
} else if (trigger.hasClass('track-untrack-doc')) {
|
||||
target_unhide = '.track-untrack-doc';
|
||||
if (trigger.hasClass("review-wish-add-remove-doc")) {
|
||||
target_unhide = ".review-wish-add-remove-doc";
|
||||
} else if (trigger.hasClass("track-untrack-doc")) {
|
||||
target_unhide = ".track-untrack-doc";
|
||||
}
|
||||
if (target_unhide) {}
|
||||
trigger.parent()
|
||||
.find(target_unhide)
|
||||
.not(trigger)
|
||||
|
@ -203,5 +207,4 @@ $(document)
|
|||
}
|
||||
});
|
||||
});
|
||||
|
||||
});
|
|
@ -20,6 +20,7 @@
|
|||
<link rel="stylesheet" href="{% static 'ietf/css/ietf.css' %}"/>
|
||||
<style>
|
||||
{% block morecss %}{% endblock morecss %}
|
||||
.leftmenu { width: 13em; }
|
||||
</style>
|
||||
|
||||
{% block pagehead %}{% endblock pagehead %}
|
||||
|
@ -64,29 +65,29 @@
|
|||
</nav>
|
||||
|
||||
<div class="pt-3 container-fluid">
|
||||
{% comment %} {% bootstrap_messages %} {% endcomment %}
|
||||
{% for message in messages %}
|
||||
<div class="alert{% if message.level_tag %} alert-{% if message.level_tag == 'error' %}danger{% else %}{{ message.level_tag }}{% endif %}{% endif %}{% if message.extra_tags %} {{ message.extra_tags }}{% endif %} alert-dismissable"><button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>{{ message }}</div>
|
||||
{% endfor %}
|
||||
{% if request.COOKIES.left_menu == "on" and not hide_menu %}
|
||||
{# ugly hack for the more or less unported meeting agenda edit pages #}
|
||||
<div class="row">
|
||||
<div class="d-none d-md-block border-end lh-sm leftmenu small" style="width: 13em;">
|
||||
<div class="row">
|
||||
{% if request.COOKIES.left_menu == "on" and not hide_menu %}
|
||||
<div class="col-1 d-none d-md-block border-end lh-sm leftmenu small">
|
||||
<ul class="nav nav-pills flex-column">
|
||||
{% include "base/menu.html" with flavor="left" %}
|
||||
</ul>
|
||||
</div>
|
||||
{% endif %}
|
||||
<div class="col" id="content">
|
||||
{% block content %}{{ content|safe }}{% endblock content %}
|
||||
{% block content_end %}{% endblock content_end %}
|
||||
</div>
|
||||
{% if request.COOKIES.left_menu == "on" and not hide_menu %}
|
||||
{% endif %}
|
||||
<div class="col" id="content">
|
||||
{% comment %} {% bootstrap_messages %} {% endcomment %}
|
||||
{% for message in messages %}
|
||||
<div class="alert{% if message.level_tag %} alert-{% if message.level_tag == 'error' %}danger{% else %}{{ message.level_tag }}{% endif %}{% endif %}{% if message.extra_tags %} {{ message.extra_tags }}{% endif %} alert-dismissable fade show">
|
||||
<button type="button" class="btn-close float-end" data-bs-dismiss="alert" aria-label="Close"></button>
|
||||
{{ message }}
|
||||
</div>
|
||||
{% endfor %}
|
||||
{% block content %}{{ content|safe }}{% endblock content %}
|
||||
{% block content_end %}{% endblock content_end %}
|
||||
</div>
|
||||
{% endif %}
|
||||
</div>
|
||||
<hr/>
|
||||
{% block footer %}
|
||||
<footer class="col-md-12 col-sm-12 text-center">
|
||||
<hr/>
|
||||
<a href="https://www.ietf.org/" class="p-3">IETF</a>
|
||||
<a href="https://www.ietf.org/iesg/" class="p-3">IESG</a>
|
||||
<a href="https://www.iab.org/" class="p-3">IAB</a>
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
{% load origin %}
|
||||
|
||||
{% block title %}User settings{% endblock %}
|
||||
{% block title %}User settings{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -15,51 +16,47 @@
|
|||
(everything still continues to work by using default settings).
|
||||
</p>
|
||||
|
||||
<h2>How many days is considered "new"?</h2>
|
||||
<h3>How many days is considered "new"?</h3>
|
||||
|
||||
<p>This setting affects how many days are considered "new enough" to get the special highlighting in the documents table. The default setting is {{ defaults.new_enough }} days.</p>
|
||||
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-primary {% if new_enough == '7' %}active{% endif %}" href="/accounts/settings/new_enough/7">7 days</a>
|
||||
<a class="btn btn-primary {% if new_enough == '14' %}active{% endif %}" href="/accounts/settings/new_enough/14">14 days</a>
|
||||
<a class="btn btn-primary {% if new_enough == '21' %}active{% endif %}" href="/accounts/settings/new_enough/21">21 days</a>
|
||||
<a class="btn btn-primary {% if new_enough == '30' %}active{% endif %}" href="/accounts/settings/new_enough/30">30 days</a>
|
||||
<a class="btn btn-primary {% if new_enough == '60' %}active{% endif %}" href="/accounts/settings/new_enough/60">60 days</a>
|
||||
<a class="btn btn-primary {% if new_enough == '90' %}active{% endif %}" href="/accounts/settings/new_enough/90">90 days</a>
|
||||
</div>
|
||||
<p class="btn-group d-flex">
|
||||
<a class="btn btn-outline-primary {% if new_enough == '7' %}active{% endif %}" href="/accounts/settings/new_enough/7">7 days</a>
|
||||
<a class="btn btn-outline-primary {% if new_enough == '14' %}active{% endif %}" href="/accounts/settings/new_enough/14">14 days</a>
|
||||
<a class="btn btn-outline-primary {% if new_enough == '21' %}active{% endif %}" href="/accounts/settings/new_enough/21">21 days</a>
|
||||
<a class="btn btn-outline-primary {% if new_enough == '30' %}active{% endif %}" href="/accounts/settings/new_enough/30">30 days</a>
|
||||
<a class="btn btn-outline-primary {% if new_enough == '60' %}active{% endif %}" href="/accounts/settings/new_enough/60">60 days</a>
|
||||
<a class="btn btn-outline-primary {% if new_enough == '90' %}active{% endif %}" href="/accounts/settings/new_enough/90">90 days</a>
|
||||
</p>
|
||||
|
||||
<h2 class="ietf-divider">How many days is considered "soon"?</h2>
|
||||
<h3>How many days is considered "soon"?</h3>
|
||||
|
||||
<p>This setting tells what is considered "soon" when showing documents that are going to be expire soon. The Default setting is {{ defaults.expires_soon }} days.</p>
|
||||
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-primary {% if expires_soon == '7' %}active{% endif %}" href="/accounts/settings/expires_soon/7">7 days</a>
|
||||
<a class="btn btn-primary {% if expires_soon == '14' %}active{% endif %}" href="/accounts/settings/expires_soon/14">14 days</a>
|
||||
<a class="btn btn-primary {% if expires_soon == '21' %}active{% endif %}" href="/accounts/settings/expires_soon/21">21 days</a>
|
||||
<a class="btn btn-primary {% if expires_soon == '30' %}active{% endif %}" href="/accounts/settings/expires_soon/30">30 days</a>
|
||||
<a class="btn btn-primary {% if expires_soon == '60' %}active{% endif %}" href="/accounts/settings/expires_soon/60">60 days</a>
|
||||
<a class="btn btn-primary {% if expires_soon == '90' %}active{% endif %}" href="/accounts/settings/expires_soon/90">90 days</a>
|
||||
</div>
|
||||
<p class="btn-group d-flex">
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '7' %}active{% endif %}" href="/accounts/settings/expires_soon/7">7 days</a>
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '14' %}active{% endif %}" href="/accounts/settings/expires_soon/14">14 days</a>
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '21' %}active{% endif %}" href="/accounts/settings/expires_soon/21">21 days</a>
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '30' %}active{% endif %}" href="/accounts/settings/expires_soon/30">30 days</a>
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '60' %}active{% endif %}" href="/accounts/settings/expires_soon/60">60 days</a>
|
||||
<a class="btn btn-outline-primary {% if expires_soon == '90' %}active{% endif %}" href="/accounts/settings/expires_soon/90">90 days</a>
|
||||
</p>
|
||||
|
||||
<h2 class="ietf-divider">Show full document text by default?</h2>
|
||||
<h3>Show full document text by default?</h3>
|
||||
|
||||
<p>Show the full text immediately on the document page instead of only showing beginning of it. This defaults to {{ defaults.full_draft }}.</p>
|
||||
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-primary {% if full_draft == 'off' %}active{% endif %}" href="/accounts/settings/full_draft/off">Off</a>
|
||||
<a class="btn btn-primary {% if full_draft == 'on' %}active{% endif %}" href="/accounts/settings/full_draft/on">On</a>
|
||||
</div>
|
||||
<p class="btn-group d-flex">
|
||||
<a class="btn btn-outline-primary {% if full_draft == 'off' %}active{% endif %}" href="/accounts/settings/full_draft/off">Off</a>
|
||||
<a class="btn btn-outline-primary {% if full_draft == 'on' %}active{% endif %}" href="/accounts/settings/full_draft/on">On</a>
|
||||
</p>
|
||||
|
||||
<h2 class="ietf-divider">Show the left-hand menu?</h2>
|
||||
<h3>Show the left-hand menu?</h3>
|
||||
|
||||
<p>Show the left-hand menu on all regular pages? This defaults to {{ defaults.left_menu }}.</p>
|
||||
|
||||
<div class="btn-group btn-group-justified">
|
||||
<a class="btn btn-primary {% if left_menu == 'off' %}active{% endif %}" href="/accounts/settings/left_menu/off">Off</a>
|
||||
<a class="btn btn-primary {% if left_menu == 'on' %}active{% endif %}" href="/accounts/settings/left_menu/on">On</a>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
{% endblock %}
|
||||
|
||||
<p class="btn-group d-flex">
|
||||
<a class="btn btn-outline-primary {% if left_menu == 'off' %}active{% endif %}" href="/accounts/settings/left_menu/off">Off</a>
|
||||
<a class="btn btn-outline-primary {% if left_menu == 'on' %}active{% endif %}" href="/accounts/settings/left_menu/on">On</a>
|
||||
</p>
|
||||
{% endblock content %}
|
|
@ -11,7 +11,7 @@
|
|||
{{ form.name|add_class:"form-control"|attr:"placeholder:Document name/title/RFC number" }}
|
||||
<span class="input-group-btn">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<span class="bi bi-search"></span>
|
||||
<span class="bi bi-search"/>
|
||||
Search
|
||||
</button>
|
||||
</span>
|
||||
|
@ -151,7 +151,7 @@
|
|||
</div>
|
||||
<div class="col-sm-4 d-grid">
|
||||
<button class="btn btn-primary" type="submit">
|
||||
<span class="bi bi-search"></span>
|
||||
<span class="bi bi-search"/>
|
||||
Search
|
||||
</button>
|
||||
</div>
|
||||
|
|
|
@ -1,101 +1,91 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2018-2018, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% block title %}Personal Information in the Datatracker{% endblock %}
|
||||
{% block title %}Personal Information in the Datatracker{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<div class="col-sm-12" style="max-width: 85ex;">
|
||||
<h1>Personal Information in the Datatracker</h1>
|
||||
<p>
|
||||
<h1>Personal Information in the Datatracker</h1>
|
||||
<p>
|
||||
<a href="https://datatracker.ietf.org/doc/html/rfc3935">RFC 3935, "A Mission Statement for the IETF"</a> lays out
|
||||
the goal and the mission of the IETF as follows
|
||||
</p>
|
||||
|
||||
<a href="https://datatracker.ietf.org/doc/html/rfc3935">RFC 3935, "A Mission Statement for the IETF"</a> lays out
|
||||
the goal and the mission of the IETF as follows:
|
||||
</p>
|
||||
<pre>
|
||||
The goal of the IETF is to make the Internet work better.
|
||||
|
||||
<samp class="preformatted small"> The goal of the IETF is to make the Internet work better.
|
||||
The mission of the IETF is to produce high quality, relevant
|
||||
technical and engineering documents that influence the way people
|
||||
design, use, and manage the Internet in such a way as to make the
|
||||
Internet work better. These documents include protocol standards,
|
||||
best current practices, and informational documents of various kinds.
|
||||
</pre>
|
||||
|
||||
The mission of the IETF is to produce high quality, relevant
|
||||
technical and engineering documents that influence the way people
|
||||
design, use, and manage the Internet in such a way as to make the
|
||||
Internet work better. These documents include protocol standards,
|
||||
best current practices, and informational documents of various kinds.
|
||||
</samp>
|
||||
{% comment %}
|
||||
The following text has been reviewed by legal counsel (Thomas Zych)
|
||||
on Thu, 26 Apr 2018 17:24:03 -0400
|
||||
*** DO NOT CHANGE WITHOUT LEGAL REVIEW ***
|
||||
{% endcomment %}
|
||||
|
||||
<!-- *** NOTE ***
|
||||
<p>
|
||||
In order to fulfil its mission, the IETF provides various ways to distribute
|
||||
and discuss Internet-Drafts, and otherwise process them until there is
|
||||
consensus that they are ready for publication.
|
||||
</p>
|
||||
|
||||
The following text has been reviewed by legal counsel (Thomas Zych)
|
||||
on Thu, 26 Apr 2018 17:24:03 -0400
|
||||
<p>
|
||||
This makes the information in the content of the draft documents, as well
|
||||
as contributions related to the draft documents and their processing as
|
||||
laid out in the "<a href="https://www.ietf.org/about/note-well/">Note
|
||||
Well</a>" statement, of legitimate interest to the IETF when it pursues
|
||||
its mission; not only in general terms, but specifically under Article
|
||||
6(1) f) of
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">
|
||||
EU's General Data Protection Regulation </a>.
|
||||
</p>
|
||||
|
||||
*** DO NOT CHANGE WITHOUT LEGAL REVIEW ***
|
||||
-->
|
||||
<p>
|
||||
The datatracker treats all personal information derived from draft documents and
|
||||
documents published as RFC, as well as personal information derived from
|
||||
processing draft documents through the IETF procedures, in accordance with
|
||||
applicable law, including the GDPR. This includes author names,
|
||||
email addresses and other address information provided in draft documents or as
|
||||
contact information for IETF roles such as Working Group chairs, secretaries,
|
||||
Area Directors and other roles.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<p>
|
||||
There is however additional personal information held in the datatracker that
|
||||
is used for other purposes. This information requires the consent of the
|
||||
individuals whose information is stored and processed which IETF secures
|
||||
through various means, and the person it relates to may at any time request
|
||||
its correction or removal. This includes:
|
||||
</p>
|
||||
|
||||
In order to fulfil its mission, the IETF provides various ways to distribute
|
||||
and discuss Internet-Drafts, and otherwise process them until there is
|
||||
consensus that they are ready for publication.
|
||||
<ul>
|
||||
<li>Personal photograph or other likeness;</li>
|
||||
<li>Personal biography;</li>
|
||||
<li>Personal email addresses not derived from IETF contributions; and </li>
|
||||
<li>Personal account login information</li>
|
||||
<li>Personal notification subscriptions</li>
|
||||
</ul>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
Most of this information can be edited on the individual's
|
||||
<a href="/accounts/profile/">Account Info</a> page by the individual
|
||||
after logging in to the account. If the datatracker holds such
|
||||
information about a person, and they don't have an account, a request to
|
||||
the <a href="mailto:{{ settings.SECRETARIAT_ACTION_EMAIL }}">IETF secretariat</a> to change
|
||||
or remove the information will be honoured to the extent feasible and
|
||||
legally permitted.
|
||||
</p>
|
||||
|
||||
This makes the information in the content of the draft documents, as well
|
||||
as contributions related to the draft documents and their processing as
|
||||
laid out in the "<a href="https://www.ietf.org/about/note-well/">Note
|
||||
Well</a>" statement, of legitimate interest to the IETF when it pursues
|
||||
its mission; not only in general terms, but specifically under Article
|
||||
6(1) f) of
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">
|
||||
EU's General Data Protection Regulation </a>.
|
||||
<p>
|
||||
Please also see the IETF's overall
|
||||
<a href="https://www.ietf.org/privacy-statement/">Statement concerning personal data</a>
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
The datatracker treats all personal information derived from draft documents and
|
||||
documents published as RFC, as well as personal information derived from
|
||||
processing draft documents through the IETF procedures, in accordance with
|
||||
applicable law, including the GDPR. This includes author names,
|
||||
email addresses and other address information provided in draft documents or as
|
||||
contact information for IETF roles such as Working Group chairs, secretaries,
|
||||
Area Directors and other roles.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
There is however additional personal information held in the datatracker that
|
||||
is used for other purposes. This information requires the consent of the
|
||||
individuals whose information is stored and processed which IETF secures
|
||||
through various means, and the person it relates to may at any time request
|
||||
its correction or removal. This includes:
|
||||
|
||||
</p>
|
||||
|
||||
<ul>
|
||||
<li>Personal photograph or other likeness;</li>
|
||||
<li>Personal biography;</li>
|
||||
<li>Personal email addresses not derived from IETF contributions; and </li>
|
||||
<li>Personal account login information</li>
|
||||
<li>Personal notification subscriptions</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
|
||||
Most of this information can be edited on the individual's
|
||||
<a href="/accounts/profile/">Account Info</a> page by the individual
|
||||
after logging in to the account. If the datatracker holds such
|
||||
information about a person, and they don't have an account, a request to
|
||||
the <a href="mailto:{{settings.SECRETARIAT_ACTION_EMAIL}}">IETF secretariat</a> to change
|
||||
or remove the information will be honoured to the extent feasible and
|
||||
legally permitted.
|
||||
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Please also see the IETF's overall
|
||||
<a href="https://www.ietf.org/privacy-statement/">Statement concerning personal data</a>.
|
||||
</p>
|
||||
|
||||
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,35 +1,30 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}
|
||||
{{ title }} {{ person.plain_name }}
|
||||
{% endblock %}
|
||||
{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>{{ title }}<br><small>{{ person.plain_name }}</small></h1>
|
||||
|
||||
<p>
|
||||
<b>
|
||||
{{ info|safe }}
|
||||
</b>
|
||||
<h1>{{ title }}</h1>
|
||||
<h2>{{ person.plain_name }}</h2>
|
||||
<p class="fw-bold">
|
||||
{{ info|striptags }}
|
||||
</p>
|
||||
|
||||
|
||||
<form enctype="multipart/form-data" method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
|
||||
|
||||
|
||||
<!-- Regarding placement of buttons: https://www.lukew.com/ff/entry.asp?571 -->
|
||||
<button type="submit" class="btn btn-primary" name="submit" value="Save">Submit</button>
|
||||
<a class="btn btn-primary float-end" href="{% url "ietf.ietfauth.views.profile" %}">Back</a>
|
||||
|
||||
|
||||
{% bootstrap_button button_type="submit" content="Submit" %}
|
||||
<a class="btn btn-secondary float-end" href="{% url "ietf.ietfauth.views.profile" %}">Back</a>
|
||||
</form>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,8 +1,10 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% block title %}Profile update successful{% endblock %}
|
||||
{% block title %}Profile update successful{% endblock title%}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -16,4 +18,4 @@
|
|||
{% endfor %}
|
||||
|
||||
<a class="btn btn-primary" href="{% url "ietf.ietfauth.views.profile" %}">Edit profile</a>
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,10 +1,12 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Account creation{% endblock %}
|
||||
{% block title %}Account creation{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -17,41 +19,34 @@
|
|||
<p>We have sent an email to {{ to_email }} with instructions on how to complete the process.</p>
|
||||
|
||||
{% else %}
|
||||
<div class="row">
|
||||
<div class="col-md-2 col-sm-0"></div>
|
||||
<div class="col-md-8 col-sm-12">
|
||||
<h1>Account creation</h1>
|
||||
<p>
|
||||
<b>If you already have an account and want to use a new email address,</b>
|
||||
please go to your account profile page and
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-primary" href="{% url "ietf.ietfauth.views.profile" %}"> Add a new email address</a>
|
||||
</p>
|
||||
<p> </p>
|
||||
<p>
|
||||
<b>If you already have an account but forgot your password,</b>
|
||||
please simply
|
||||
</p>
|
||||
<p>
|
||||
<a class="btn btn-warning" href="{% url "ietf.ietfauth.views.password_reset" %}">Reset your password</a>
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
<h1>Account creation</h1>
|
||||
|
||||
<p>Please enter your email address in order to create your datatracker account.</p>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<p>
|
||||
<b>If you already have an account and want to use a new email address,</b>
|
||||
please go to your account profile page and
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<a class="btn btn-primary" href="{% url "ietf.ietfauth.views.profile" %}"> Add a new email address</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>If you already have an account but forgot your password,</b>
|
||||
please simply
|
||||
</p>
|
||||
|
||||
<button type="submit" class="btn btn-primary">Create account</button>
|
||||
<p>
|
||||
<a class="btn btn-warning" href="{% url "ietf.ietfauth.views.password_reset" %}">Reset your password</a>
|
||||
</p>
|
||||
|
||||
<hr/>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-0"></div>
|
||||
</div>
|
||||
<p>Please enter your email address in order to create your datatracker account.</p>
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
{% bootstrap_button button_type="submit" content="Create account" %}
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,25 +1,23 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load widget_tweaks django_bootstrap5 %}
|
||||
|
||||
{% load person_filters %}
|
||||
|
||||
{% block title %}Profile for {{ user }}{% endblock %}
|
||||
{% block title %}Profile for {{ user }}{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Profile information for {{ user.person.name }}</h1>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>
|
||||
The information you provide below is used to generate your <a href="{% url 'ietf.person.views.profile' email_or_name=user.person.email %}">public datatracker profile page</a>
|
||||
</p>
|
||||
|
||||
<hr>
|
||||
|
||||
<form class="form-horizontal" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
|
@ -28,35 +26,30 @@
|
|||
{% bootstrap_form_errors f %}
|
||||
{% endfor %}
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">User name <a href="#pi">†</a></label>
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">User name <a href="#pi"><i class="bi bi-exclamation-circle"></i></a></label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static">
|
||||
<p class="form-control-plaintext">
|
||||
{{ user.username }}
|
||||
<a href="/accounts/username/"><span class="bi bi-pencil"></span></a>
|
||||
</p>
|
||||
<a class="btn btn-primary" href="/accounts/username/">Edit</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Password <a href="#pi">†</a></label>
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">Password <a href="#pi"><i class="bi bi-exclamation-circle"></i></a></label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static">
|
||||
|
||||
<a href="/accounts/password/">Password change form</a>
|
||||
<a href="/accounts/password/"><span class="bi bi-pencil"></span></a>
|
||||
</p>
|
||||
<a class="btn btn-primary" href="/accounts/password/">Change password</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if person.photo %}
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Photo <a href="#pi">†</a></label>
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">Photo <a href="#pi"><i class="bi bi-exclamation-circle"></i></a></label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-static">
|
||||
<a href="{{person.photo.url}}">
|
||||
<p class="form-control-plaintext">
|
||||
<a href="{{ person.photo.url }}">
|
||||
<img class="photo" src="{{ person.photo.url }}" alt="Photo of {{ person }}" />
|
||||
</a>
|
||||
</p>
|
||||
|
@ -64,171 +57,187 @@
|
|||
</div>
|
||||
{% endif %}
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Nomcom Eligible</label>
|
||||
<div class="col-sm-1 form-control-static">
|
||||
{{person|is_nomcom_eligible|yesno:'Yes,No,No'}}
|
||||
{% if volunteer_status == 'allow' %}
|
||||
<br>
|
||||
<a id="volunteer-button" class="btn btn-primary" href="{% url "ietf.nomcom.views.volunteer" %}">Volunteer</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="col-sm-9">
|
||||
<p class="alert alert-info form-control-static">
|
||||
If you believe this calculation is incorrect, make sure you've added all the
|
||||
email addresses you've registered for IETF meetings with to the
|
||||
list below.<br/>
|
||||
|
||||
If you've done so and the calculation is still incorrect, please
|
||||
send a note to
|
||||
<a href="mailto:{{settings.SECRETARIAT_SUPPORT_EMAIL}}">{{settings.SECRETARIAT_SUPPORT_EMAIL}}</a>.<br/>
|
||||
See <a href="{% url 'ietf.doc.views_doc.document_main' name='rfc8713'%}">RFC 8713</a>
|
||||
for eligibility requirements.
|
||||
For the 2021 nomcom, see also <a href="{% url 'ietf.doc.views_doc.document_main' name='rfc8989' %}">RFC 8989</a>.
|
||||
|
||||
{% if volunteer_status == 'volunteered' %}
|
||||
<br/><strong id='volunteered'>You have volunteered for the {{nomcom.group.name}}.</strong> To modify your volunteer status, contact the NomCom chair.
|
||||
{% endif %}
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">NomCom Eligible</label>
|
||||
<div class="col-sm-10">
|
||||
<p class="form-control-plaintext">
|
||||
{{ person|is_nomcom_eligible|yesno:'Yes,No,No' }}
|
||||
</p>
|
||||
{% if volunteer_status == 'allow' %}
|
||||
<a id="volunteer-button" class="btn btn-primary" href="{% url "ietf.nomcom.views.volunteer" %}">Volunteer</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">External Resources <a href="#pi">†</a></label>
|
||||
<div class="col-sm-10 form-control-static">
|
||||
<div class="offset-sm-2 alert alert-info ">
|
||||
<p>
|
||||
If you believe this calculation is incorrect, make sure you've added all the
|
||||
email addresses you've registered for IETF meetings with to the
|
||||
list below.</p>
|
||||
<p>
|
||||
If you've done so and the calculation is still incorrect, please
|
||||
send a note to
|
||||
<a href="mailto:{{ settings.SECRETARIAT_SUPPORT_EMAIL }}">{{ settings.SECRETARIAT_SUPPORT_EMAIL }}</a>.
|
||||
</p>
|
||||
<p>
|
||||
See <a href="{% url 'ietf.doc.views_doc.document_main' name='rfc8713' %}">RFC 8713</a>
|
||||
for eligibility requirements.
|
||||
For the 2021 and 2022 NomComs, see also <a href="{% url 'ietf.doc.views_doc.document_main' name='rfc8989' %}">RFC 8989</a>.
|
||||
</p>
|
||||
|
||||
{% if volunteer_status == 'volunteered' %}
|
||||
<p>
|
||||
<b id="volunteered">You have volunteered for the {{ nomcom.group.name }}.</b> To modify your volunteer status, contact the NomCom chair.
|
||||
</p>
|
||||
{% endif %}
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">External Resources <a href="#pi"><i class="bi bi-exclamation-circle"></i></a></label>
|
||||
<div class="col-sm-10">
|
||||
{% for extres in person.personextresource_set.all %}
|
||||
<div class="row">
|
||||
<div class="col-sm-1">
|
||||
<span title="{{ extres.name.name}}">{% firstof extres.display_name extres.name.name %}</span>
|
||||
<div class="col-3">
|
||||
{% firstof extres.display_name extres.name.name %}
|
||||
</div>
|
||||
<div class="col-sm-11">{{extres.value}}
|
||||
{% if forloop.first %} <a href="{% url 'ietf.ietfauth.views.edit_person_externalresources' %}"><span class="bi bi-pencil"></span></a>{% endif %}
|
||||
<div class="col">
|
||||
{{ extres.value }}
|
||||
</div>
|
||||
</div>
|
||||
{% empty %}
|
||||
<div class="row"><div class="col-sm-1">None <a href="{% url 'ietf.ietfauth.views.edit_person_externalresources' %}"><span class="bi bi-pencil"></span></a></div></div>
|
||||
None
|
||||
{% endfor %}
|
||||
<a class="btn btn-primary mt-1" href="{% url 'ietf.ietfauth.views.edit_person_externalresources' %}">Edit</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row mb-3">
|
||||
<label class="col-sm-2 col-form-label fw-bold">Email addresses</label>
|
||||
<div class="col-sm-10 emails">
|
||||
<table class="table table-sm">
|
||||
<tr>
|
||||
<th class="text-center">Primary</th>
|
||||
<th class="text-center">Active</th>
|
||||
<th>Address</th>
|
||||
<th>Origin</th></tr>
|
||||
{% for email in emails %}
|
||||
<tr>
|
||||
<td class="text-center">
|
||||
<input class="form-check-input" type="radio" name="primary_email" value="{{ email.pk }}" {% if email.primary %}checked{% endif %}/>
|
||||
</td>
|
||||
<td class="text-center">
|
||||
<input class="form-check-input" type="checkbox" name="active_emails" value="{{ email.pk }}" {% if email.active %}checked{% endif %}/>
|
||||
</td>
|
||||
<td>
|
||||
{% if email.origin == person.user.username or email.origin == '' %}
|
||||
<a href="#pi"><i class="bi bi-exclamation-circle"></i></a>
|
||||
{% endif %}
|
||||
{{ email }}
|
||||
</td>
|
||||
<td>{{ email.origin|default:'(unknown)' }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
<p class="text-muted">Note: Email addresses cannot be deleted in this form, only deactivated.</p>
|
||||
|
||||
{% for f in new_email_forms %}
|
||||
{% bootstrap_field f.new_email layout="horizontal" show_label=False %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="new-emails"></div>
|
||||
<div>
|
||||
<button class="btn btn-primary add-email mb-5">Add new email address</button>
|
||||
</div>
|
||||
{% for role in roles %}
|
||||
{% bootstrap_field role.email_form.email show_label=False %}
|
||||
{% endfor %}
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-2 control-label">Email addresses</label>
|
||||
<div class="col-sm-10">
|
||||
<div class="row">
|
||||
<div class="col-sm-10" id="emails">
|
||||
<table class="table table-sm">
|
||||
<tr ><th>Primary</th><th>Active</th><th>Address</th><th>Origin</th></tr>
|
||||
{% for email in emails %}
|
||||
<tr >
|
||||
<td><input type="radio" name="primary_email" value="{{ email.pk }}" {% if email.primary %}checked{% endif %}></td>
|
||||
<td><input type="checkbox" name="active_emails" value="{{ email.pk }}" {% if email.active %}checked{% endif %}></td>
|
||||
<td>
|
||||
{% if email.origin == person.user.username or email.origin == '' %}<a href="#pi">†</a>{% endif %}
|
||||
{{ email }}
|
||||
</td>
|
||||
<td>{{ email.origin|default:'(unknown)' }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
</div>
|
||||
<div class="col-sm-10">
|
||||
<div class="help-block">Note: Email addresses cannot be deleted in this form, only deactivated.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% for f in new_email_forms %}
|
||||
{% bootstrap_field f.new_email layout="horizontal" show_label=False %}
|
||||
{% endfor %}
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<div class="new-emails"></div>
|
||||
|
||||
<button class="btn btn-primary btn-sm add-email">Add a new email address</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% for role in roles %}
|
||||
{% bootstrap_field role.email_form.email layout="horizontal" show_label=False %}
|
||||
{% endfor %}
|
||||
|
||||
{% bootstrap_field person_form.name layout="horizontal" %}
|
||||
{% bootstrap_field person_form.plain layout="horizontal" %}
|
||||
{% bootstrap_field person_form.ascii layout="horizontal" %}
|
||||
{% if roles %}
|
||||
{% bootstrap_field person_form.biography layout="horizontal" %}
|
||||
{% endif %}
|
||||
{% bootstrap_field person_form.consent layout="horizontal" %}
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-offset-2 col-sm-10">
|
||||
<button type="submit" class="btn btn-primary">Submit</button>
|
||||
</div>
|
||||
</div>
|
||||
{% bootstrap_form person_form layout="horizontal" exclude="ascii_short" %}
|
||||
{% bootstrap_button button_type="submit" content="Submit" extra_classes="offset-sm-2" %}
|
||||
</form>
|
||||
|
||||
<hr>
|
||||
<div class="small text-muted mt-5">
|
||||
|
||||
<p id="pi"><strong>[†] Personal information requiring consent:</strong></p>
|
||||
<p id="pi">
|
||||
<b><i class="bi bi-exclamation-circle"></i> Personal information requiring consent</b>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Personal information in the datatracker which is derived from your contributions
|
||||
to the IETF standards development process is covered by the EU General Data Protection
|
||||
Regulation's
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">Article 6(1) (f)</a>
|
||||
covering IETF's Legitimate Interest due to the IETF's mission of developing standards
|
||||
for the internet. See also the page on <a href="/help/personal-information">handling
|
||||
of personal information</a>.
|
||||
<p>
|
||||
Personal information in the datatracker which is derived from your contributions
|
||||
to the IETF standards development process is covered by the EU General Data Protection
|
||||
Regulation's
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">Article 6(1) (f)</a>
|
||||
covering IETF's Legitimate Interest due to the IETF's mission of developing standards
|
||||
for the internet. See also the page on <a href="/help/personal-information">handling
|
||||
of personal information</a>.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
Personal information which is <i>not</i> derived from your contributions is covered by the EU
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">GDPR Article 6(1) (a)</a>
|
||||
regarding consent. All such information is visible on this page and shown with the
|
||||
<i class="bi bi-exclamation-circle"></i> symbol next to it, or listed on your
|
||||
<a href="{% url 'ietf.community.views.view_list' user.username %}">notification subscription page</a>. Most of this
|
||||
information can be edited or removed on these pages. There are some exceptions, such
|
||||
as photos, which currently require an email to <a href="mailto:{{ settings.SECRETARIAT_SUPPORT_EMAIL }}">the Secretariat</a>
|
||||
if you wish to update or remove the information.
|
||||
</p>
|
||||
|
||||
Personal information which is <b>not</b> derived from your contributions is covered by the EU
|
||||
<a href="https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:32016R0679#d1e1888-1-1">GDPR Article 6(1) (a)</a>
|
||||
regarding consent. All such information is visible on this page and shown with the
|
||||
dagger symbol (<strong>†</strong>) next to it, or listed on your
|
||||
<a href="{% url 'ietf.community.views.view_list' user.username %}">notification subscription page</a>. Most of this
|
||||
information can be edited or removed on these pages. There are some exceptions, such
|
||||
as photos, which currently require an email to <a href="mailto:{{settings.SECRETARIAT_SUPPORT_EMAIL}}">the Secretariat</a>
|
||||
if you wish to update or remove the information.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
All the information the datatracker has that is coupled to this account and visible
|
||||
on this page or otherwise related to your work on ietf documents, is also available
|
||||
to you as a <a href="{% url 'ietf.api.views.PersonalInformationExportView' %}">JSON blob</a> when
|
||||
you are logged in. It contains both the Legitimate Interest information and the information
|
||||
that requires Consent.
|
||||
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
<p>
|
||||
All the information the datatracker has that is coupled to this account and visible
|
||||
on this page or otherwise related to your work on ietf documents, is also available
|
||||
to you as a <a href="{% url 'ietf.api.views.PersonalInformationExportView' %}">JSON blob</a> when
|
||||
you are logged in. It contains both the Legitimate Interest information and the information
|
||||
that requires Consent.
|
||||
</p>
|
||||
</div>
|
||||
{% endblock content %}
|
||||
|
||||
{% block js %}
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$("input[name=active_emails]").on("change keypress click", function () {
|
||||
$(document)
|
||||
.ready(function () {
|
||||
$("input[name=active_emails]")
|
||||
.on("change keypress click", function () {
|
||||
if (this.checked) {
|
||||
$(this).parent().next().addClass("text-success");;
|
||||
$(this).parent().next().removeClass("text-danger line-through");
|
||||
$(this)
|
||||
.parent()
|
||||
.next()
|
||||
.addClass("text-success");;
|
||||
$(this)
|
||||
.parent()
|
||||
.next()
|
||||
.removeClass("text-danger line-through");
|
||||
} else {
|
||||
$(this).parent().next().addClass("text-danger line-through");
|
||||
$(this).parent().next().removeClass("text-success");
|
||||
$(this)
|
||||
.parent()
|
||||
.next()
|
||||
.addClass("text-danger line-through");
|
||||
$(this)
|
||||
.parent()
|
||||
.next()
|
||||
.removeClass("text-success");
|
||||
}
|
||||
}).trigger("change");
|
||||
})
|
||||
.trigger("change");
|
||||
|
||||
$(".add-email").click(function(e) {
|
||||
$(".add-email")
|
||||
.on("click", function (e) {
|
||||
e.preventDefault();
|
||||
|
||||
var container = $(this).closest("form").find(".new-emails");
|
||||
var container = $(this)
|
||||
.closest("form")
|
||||
.find(".new-emails");
|
||||
|
||||
$('<input class="form-control" name="new_email" placeholder="The address entered here will get a confirmation challenge. To add an address that cannot confirm, contact the secretariat.">').appendTo(container).focus();
|
||||
$('<div class="float-end pad"><i>Remember to submit the form for the new email challenge to be sent.</i></div>').appendTo(container);
|
||||
$('<input class="form-control mb-3" name="new_email" placeholder="You will get a confirmation challenge. To add an address that cannot confirm, contact the secretariat.">')
|
||||
.appendTo(container)
|
||||
.trigger("focus");
|
||||
$('<div class="float-end text-muted small">Remember to submit the form for the new email challenge to be sent.</div>')
|
||||
.appendTo(container);
|
||||
})
|
||||
});
|
||||
|
||||
</script>
|
||||
{% endblock %}
|
||||
{% endblock js %}
|
|
@ -1,40 +1,26 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Sign in{% endblock %}
|
||||
{% block title %}Sign in{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<div class="col-md-2 col-sm-0"></div>
|
||||
<div class="col-md-8 col-sm-12">
|
||||
<h1>Sign in</h1>
|
||||
<script type="text/javascript">window.scrollTo(0, 0)</script>
|
||||
<h1>Sign in</h1>
|
||||
<script type="text/javascript">window.scrollTo(0, 0)</script>
|
||||
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
{% bootstrap_button button_type="submit" content="Sign in" %}
|
||||
|
||||
{% if alert %}
|
||||
<p class="alert alert-danger">
|
||||
{{ alert }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-primary">Sign in</button>
|
||||
|
||||
<div class="float-end">
|
||||
Forgot your password?
|
||||
<a href="{% url 'ietf.ietfauth.views.password_reset' %}">Request a reset</a>.
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-md-2 col-sm-0"></div>
|
||||
{% endblock %}
|
||||
<div class="float-end">
|
||||
Forgot your password?
|
||||
<a href="{% url 'ietf.ietfauth.views.password_reset' %}">Request a reset</a>.
|
||||
</div>
|
||||
</form>
|
||||
{% endblock content %}
|
|
@ -1,10 +1,10 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Complete account creation{% endblock %}
|
||||
{% block title %}Complete account creation{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -13,9 +13,7 @@
|
|||
|
||||
<p>
|
||||
Our apologies, it looks like there was an issue creating your Datatracker account.
|
||||
Please send an email to support@ietf.org and we'll get you set up promptly.
|
||||
|
||||
Best, IETF Secretariat
|
||||
Please send an email to the <a href="mailto:{{ settings.SECRETARIAT_SUPPORT_EMAIL }}">IETF secretariat</a> and we'll get you set up promptly.
|
||||
</p>
|
||||
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,10 +1,12 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
|
||||
{% load origin %}
|
||||
|
||||
{% load django_bootstrap5 %}
|
||||
|
||||
{% block title %}Password reset{% endblock %}
|
||||
{% block title %}Password reset{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
|
@ -22,12 +24,7 @@
|
|||
<form method="post">
|
||||
{% csrf_token %}
|
||||
{% bootstrap_form form %}
|
||||
|
||||
|
||||
|
||||
<button type="submit" class="btn btn-warning">Reset password</button>
|
||||
|
||||
|
||||
{% bootstrap_button button_type="submit" content="Reset password" %}
|
||||
</form>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
{% endblock content %}
|
|
@ -1,160 +1,149 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
|
||||
{% extends "base.html" %}
|
||||
{% load origin %}
|
||||
|
||||
{% block title %}About the Datatracker{% endblock %}
|
||||
{% block title %}About the Datatracker{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<div class="col-sm-12">
|
||||
<h1>About the IETF Datatracker</h1>
|
||||
<p>
|
||||
<h1>About the IETF Datatracker</h1>
|
||||
|
||||
The IETF Datatracker is the primary day-to-day front-end to the IETF database for people
|
||||
who work on IETF standards. It contains data about the documents, working groups,
|
||||
meetings, agendas, minutes, presentations, and more, of the IETF.
|
||||
<p>
|
||||
The IETF Datatracker is the primary day-to-day front-end to the IETF database for people
|
||||
who work on IETF standards. It contains data about the documents, working groups,
|
||||
meetings, agendas, minutes, presentations, and more, of the IETF.
|
||||
The primary public face of the IETF is at <a href="https://www.ietf.org/">www.ietf.org</a>.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
All the Datatracker code is publicly available from the
|
||||
<a href="https://svn.ietf.org/svn/tools/ietfdb">IETF tools SVN repository</a>.
|
||||
Bug tickets and wiki notes are available from the
|
||||
<a href="https://trac.ietf.org/trac/ietfdb">Issue Tracker</a>, and
|
||||
there are also <a href="/release">release notes</a> available since version 2.00.
|
||||
</p>
|
||||
|
||||
The primary public face of the IETF is at <a href="https://www.ietf.org/">www.ietf.org</a>.
|
||||
<p>
|
||||
Below you'll find a brief history of the datatracker development, in terms of the big
|
||||
moments. For the nitty-gritty week-to-week code changes, please check the release
|
||||
notes or the commit log.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
All the Datatracker code is publicly avaliable from the
|
||||
<a href="https://svn.ietf.org/svn/tools/ietfdb">IETF tools SVN repository</a>.
|
||||
Bug tickets and wiki notes are available from the
|
||||
<a href="https://trac.ietf.org/trac/ietfdb">Issue Tracker</a>, and
|
||||
there are also <a href="/release">release notes</a> available since version 2.00.
|
||||
<h2>Version 6.x Work</h2>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
<p>
|
||||
Between the release of 6.0.0 in April 2015 and the <a href="/release/">latest release</a>
|
||||
there has been numerous releases (75, as of 11 Feb 2017) which has extended the
|
||||
functionality of the datatracker substantially. The <a href="/release/#release-list">release list</a>
|
||||
gives more information.
|
||||
|
||||
Below you'll find a brief history of the datatracker development, in terms of the big
|
||||
moments. For the nitty-gritty week-to-week code changes, please check the release
|
||||
notes or the commit log.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<h2>Version 6.0.0: Facelift using Bootstrap</h2>
|
||||
|
||||
<h2>Version 6.x Work</h2>
|
||||
<p>
|
||||
<p>
|
||||
During more than a year, from July 2013 to late 2014, <i>Lars Eggert</i> worked intensively
|
||||
on a major facelift to the datatracker, porting the GUI to Bootstrap. The work
|
||||
took
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/personal/lars?rev=8652&stop_rev=5871&limit=500">
|
||||
287 separate commits
|
||||
</a>, and comprised changes to 1016 different files.
|
||||
|
||||
Between the release of 6.0.0 in April 2015 and the <a href="/release/">latest release</a>
|
||||
there has been numerous releases (75, as of 11 Feb 2017) which has extended the
|
||||
functionality of the datatracker substantially. The <a href="/release/#release-list">release list</a>
|
||||
gives more information.
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
This work has turned the IETF Datatracker website into a responsive website which
|
||||
support use on a much larger variety of devices, from small mobile devices to desktops.
|
||||
|
||||
<h2>Version 6.0.0: Facelift using Bootstrap</h2>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
During more than a year, from July 2013 to late 2014, <i>Lars Eggert</i> worked intensively
|
||||
on a major facelift to the datatracker, porting the GUI to Bootstrap. The work
|
||||
took
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/personal/lars?rev=8652&stop_rev=5871&limit=500">
|
||||
287 separate commits
|
||||
</a>, and comprised changes to 1016 different files.
|
||||
<p>
|
||||
The work relies heavily on the capabilities of <a href="https://getbootstrap.com">
|
||||
Bootstrap</a>, and continues to use the <a href="https://www.djangoproject.org/">Django</a>
|
||||
framework which the datatracker has been build on since <a href="/release/2.00/">version
|
||||
2.00</a>. It also uses icons from <a href="https://fontawesome.com/">FontAwesome</a>, and functions from
|
||||
<a href="https://django-bootstrap3.readthedocs.org/">django-bootstrap3</a>.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
</p>
|
||||
|
||||
This work has turned the IETF Datatracker website into a responsive website which
|
||||
support use on a much larger variety of devices, from small mobile devices to desktops.
|
||||
<p>
|
||||
Additional
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/branch/iola?rev=9116&stop_rev=8520&limit=200">
|
||||
page conversion work
|
||||
</a> has been done by <i>Ole Laursen</i>, with
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/personal/henrik/facelift-r9116">
|
||||
final style tweaks, bug-fixes and adaptations
|
||||
</a>
|
||||
by <i>Henrik Levkowetz</i>, giving it a distinct
|
||||
<a href="https://www.colourlovers.com/palette/3702908/Key_West_Sunset">colour palette</a>
|
||||
(with the addition of complementing green and red colours for success and error indications),
|
||||
and a selection of fonts from
|
||||
<a href="https://www.paratype.com/public/">ParaType</a>
|
||||
(<a href="https://www.identifont.com/show?2G32">PT Serif</a> for body text,
|
||||
<a href="https://www.identifont.com/show?2G2G">PT Sans Caption</a> for headers,
|
||||
<a href="https://www.identifont.com/show?2G2F">PT Sans</a> for menus,
|
||||
and PT Mono for monospaced documents). (Even if PT Sans Caption was
|
||||
created as a 'Caption' (6-8pt) <a href="https://en.wikipedia.org/wiki/Font#Optical_size">
|
||||
optical size</a> font to go with PT Sans, it works well for headers when paired with PT Serif.)
|
||||
</p>
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
The work relies heavily on the capabilities of <a href="http://getbootstrap.com">
|
||||
Bootstrap</a>, and continues to use the <a href="https://www.djangoproject.org/">Django</a>
|
||||
framework which the datatracker has been build on since <a href="/release/2.00/">version
|
||||
2.00</a>. It also uses icons from <a href="">FontAwesome</a>, and functions from
|
||||
<a href="https://django-bootstrap3.readthedocs.org/">django-bootstrap3</a>.
|
||||
|
||||
</p>
|
||||
<p>
|
||||
|
||||
Additional
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/branch/iola?rev=9116&stop_rev=8520&limit=200">
|
||||
page conversion work
|
||||
</a> has been done by <i>Ole Laursen</i>, with
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/log/personal/henrik/facelift-r9116">
|
||||
final style tweaks, bug-fixes and adaptations
|
||||
</a>
|
||||
by <i>Henrik Levkowetz</i>, giving it a distinct
|
||||
<a href="http://www.colourlovers.com/palette/3702908/Key_West_Sunset">colour palette</a>
|
||||
(with the addition of complementing green and red colours for success and error indications),
|
||||
and a selection of fonts from
|
||||
<a href="http://www.paratype.com/public/">ParaType</a>
|
||||
(<a href="http://www.identifont.com/show?2G32">PT Serif</a> for body text,
|
||||
<a href="http://www.identifont.com/show?2G2G">PT Sans Caption</a> for headers,
|
||||
<a href="http://www.identifont.com/show?2G2F">PT Sans</a> for menus,
|
||||
and PT Mono for monospaced documents). (Even if PT Sans Caption was
|
||||
created as a 'Caption' (6-8pt) <a href="http://en.wikipedia.org/wiki/Font#Optical_size">
|
||||
optical size</a> font to go with PT Sans, it works well for headers when paired with PT Serif.)
|
||||
|
||||
</p>
|
||||
<h2>Version 5.x Work</h2>
|
||||
<p>
|
||||
|
||||
Between the release of 5.0.0 in January 2014 and the last release in the 5.x series in
|
||||
April 2015, there were 42 releases containing bug fixes and features. Worth mentioning
|
||||
were 4 code sprint releases, added support for the secretariat's agenda scheduling work,
|
||||
the addition of pages for <a href="/rg/">Research Groups</a> and <a
|
||||
href="/group/edu">Teams</a>, a <a href="/api/v1/?format=json">JSON interface</a> to the
|
||||
database for tool builders, improved <a href="/ipr/">IPR support</a>, a move to Django 1.7,
|
||||
and many <a href="https://trac.ietf.org/trac/ietfdb/wiki/Testing?version=13">
|
||||
improvements in testing support</a>.
|
||||
|
||||
</p>
|
||||
|
||||
<h2>Version 5.0.0: Shim Removal</h2>
|
||||
|
||||
<div class="alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
|
||||
<h2>Version 4.00: New Database Schema</h2>
|
||||
|
||||
<div class="alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
|
||||
<h2>Version 3.00: Django Port of the IESG Datatracker Pages</h2>
|
||||
|
||||
<div class="alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
|
||||
<h2>Version 2.00: Django Port of the Public Datatracker Pages</h2>
|
||||
|
||||
<p>
|
||||
This release was a complete re-write of the CGI/Perl-based IESG datatracker
|
||||
in Python, using the Django framework. It comprised about 8000 lines of
|
||||
Python code, and 6000 lines of template code. The work was done as a
|
||||
skunkworks project by Bill Fenner and Henrik Levkowetz from mid-April
|
||||
to mid-May 2007, and continued as an official project from then on. The
|
||||
aim was to eliminate numerous SQL injection insecurities in the current
|
||||
code, and also provide a better framework on which to build future enhancements.
|
||||
During the most intensive period, Bill and Henrik worked 10 hours per day
|
||||
to get all public pages ported and released. The release was deployed
|
||||
in the early hours of 28 June 2007, and nobody noticed the change :-))
|
||||
</p>
|
||||
|
||||
<h2>Version 1.0: Initial Perl/MySQL database and web-pages</h2>
|
||||
|
||||
<p>
|
||||
The first version of the idtracker was commissioned by the IESG under <i>Harald
|
||||
Alvestrand</i> in 2001, and the IESG started using it at the beginning of 2002. It was
|
||||
written by <i>Michael Lee</i> in Perl, with direct SQL statements. It provided a
|
||||
major improvement in visibility of the progress of drafts by the IESG.
|
||||
The first <a href="https://www.ietf.org/proceedings/55/slides/plenary-6/plenary-6.ppt">
|
||||
public presentation</a> of it and its capabilities was made 2002-11-20
|
||||
in Atlanta by Thomas Narten.
|
||||
</p>
|
||||
<h2>Version 5.x Work</h2>
|
||||
|
||||
<p>
|
||||
Between the release of 5.0.0 in January 2014 and the last release in the 5.x series in
|
||||
April 2015, there were 42 releases containing bug fixes and features. Worth mentioning
|
||||
were 4 code sprint releases, added support for the secretariat's agenda scheduling work,
|
||||
the addition of pages for <a href="/rg/">Research Groups</a> and <a
|
||||
href="/group/edu">Teams</a>, a <a href="/api/v1/?format=json">JSON interface</a> to the
|
||||
database for tool builders, improved <a href="/ipr/">IPR support</a>, a move to Django 1.7,
|
||||
and many <a href="https://trac.ietf.org/trac/ietfdb/wiki/Testing?version=13">
|
||||
improvements in testing support</a>.
|
||||
</p>
|
||||
|
||||
<h2>Version 5.0.0: Shim Removal</h2>
|
||||
|
||||
<div class="alert alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
<h2>Version 4.00: New Database Schema</h2>
|
||||
|
||||
<div class="alert alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
|
||||
<h2>Version 3.00: Django Port of the IESG Datatracker Pages</h2>
|
||||
|
||||
<div class="alert alert-info">
|
||||
To be written.
|
||||
</div>
|
||||
|
||||
<h2>Version 2.00: Django Port of the Public Datatracker Pages</h2>
|
||||
|
||||
<p>
|
||||
This release was a complete re-write of the CGI/Perl-based IESG datatracker
|
||||
in Python, using the Django framework. It comprised about 8000 lines of
|
||||
Python code, and 6000 lines of template code. The work was done as a
|
||||
skunkworks project by Bill Fenner and Henrik Levkowetz from mid-April
|
||||
to mid-May 2007, and continued as an official project from then on. The
|
||||
aim was to eliminate numerous SQL injection insecurities in the current
|
||||
code, and also provide a better framework on which to build future enhancements.
|
||||
During the most intensive period, Bill and Henrik worked 10 hours per day
|
||||
to get all public pages ported and released. The release was deployed
|
||||
in the early hours of 28 June 2007, and nobody noticed the change :-))
|
||||
</p>
|
||||
|
||||
<h2>Version 1.0: Initial Perl/MySQL database and web-pages</h2>
|
||||
|
||||
<p>
|
||||
The first version of the idtracker was commissioned by the IESG under <i>Harald
|
||||
Alvestrand</i> in 2001, and the IESG started using it at the beginning of 2002. It was
|
||||
written by <i>Michael Lee</i> in Perl, with direct SQL statements. It provided a
|
||||
major improvement in visibility of the progress of drafts by the IESG.
|
||||
The first <a href="https://www.ietf.org/proceedings/55/slides/plenary-6/plenary-6.ppt">
|
||||
public presentation</a> of it and its capabilities was made 2002-11-20
|
||||
in Atlanta by Thomas Narten.
|
||||
</p>
|
||||
{% endblock content %}
|
|
@ -1,88 +1,80 @@
|
|||
{% extends "base.html" %}
|
||||
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
||||
{% load origin %}{% load cache %}
|
||||
|
||||
{% block title %}Release information{% endblock %}
|
||||
{% extends "base.html" %}
|
||||
{% load origin %}
|
||||
{% load cache %}
|
||||
|
||||
{% block morecss %}
|
||||
.year-row { background-color: white; }
|
||||
.version-row { vertical-align: top; }
|
||||
.version { text-align: right; padding: 0.1em 0.5em; min-width: 4em; }
|
||||
.date { text-align: right; padding: 0.1em 0.5em; min-width: 8em; }
|
||||
.release-title { padding: 0.1em 0.5em; }
|
||||
{% endblock %}
|
||||
{% block title %}Release information{% endblock title %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<div class="col-sm-12">
|
||||
<h1>
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/browser/tags/{{entry.version}}">
|
||||
<div class="row">
|
||||
<h1 class="col-11">
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/browser/tags/{{ entry.version }}">
|
||||
Version {{ entry.version }}</a>
|
||||
<br><small>Released {{ entry.date }}</small>
|
||||
<div class="float-end"><a href="{% url "ietf.release.views.stats" %}" class="icon-link"> <span class="small bi bi-bar-chart-line"> </span></a></div>
|
||||
<br/><small>Released {{ entry.date }}</small>
|
||||
</h1>
|
||||
|
||||
<ul class="pager">
|
||||
<li class="previous {% if not entry.prev %}disabled{% endif %}">
|
||||
<a href="{% if entry.prev %}/release/{{entry.prev.version}}/{% else %}#{% endif %}"><span class="bi bi-arrow-left"></span> Previous release</a>
|
||||
</li>
|
||||
<li class="next {% if not entry.next %}disabled{% endif %}">
|
||||
<a href="{% if entry.next %}/release/{{entry.next.version}}/{% else %}#{% endif %}">Next release <span class="bi bi-arrow-right"></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
{% if coverage %}
|
||||
Tested:
|
||||
<b>Code</b>: {{coverage.code.percentage|stringformat:".2f"}}%,
|
||||
<b>Templates</b>: {{coverage.template.percentage|stringformat:".2f"}}%,
|
||||
<b>URLs</b>: {{coverage.url.percentage|stringformat:".2f"}}%
|
||||
{% endif %}
|
||||
{% if code_coverage_url %}
|
||||
<br/>
|
||||
(A <a href="{{code_coverage_url}}">code test coverage report</a> dated {{code_coverage_time}} is available.)
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h2>{{ entry.version }} release notes</h2>
|
||||
<pre>{% if entry.title %} <b>{{entry.title}}</b>
|
||||
|
||||
{% endif %}{{entry.html|safe}}
|
||||
|
||||
-- {{entry.author}} <{{entry.email}}> {{entry.date}}
|
||||
</pre>
|
||||
{% cache 3600 ietf_release_list %}
|
||||
<div id="release-list"></div>
|
||||
<h2>Release list:</h2>
|
||||
|
||||
<table style="margin-left: 3em" class="table-striped">
|
||||
<tbody>
|
||||
{% for item in releases %}
|
||||
{% ifchanged %}
|
||||
</tbody>
|
||||
<tbody>
|
||||
<tr><td colspan="3"></td></tr>
|
||||
<tr class="year-row">
|
||||
<th class="h3">{{ item.date|slice:"7:11" }}</th>
|
||||
<th></th>
|
||||
<th></th>
|
||||
</tr>
|
||||
{% endifchanged %}
|
||||
<tr class="version-row">
|
||||
<td class="version"><a href="/release/{{item.version}}/">{{ item.version }}</a></td>
|
||||
<td class="date">{{ item.date|slice:":11" }}</td>
|
||||
<td class="release-title">{{ item.title }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</tbody>
|
||||
</table>
|
||||
{% endcache %}
|
||||
<div class="col-1 text-end">
|
||||
<a href="{% url "ietf.release.views.stats" %}" class="icon-link">
|
||||
<span class="bi bi-bar-chart-line"></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
<ul class="pagination d-flex py-2">
|
||||
<li class="me-auto page-item {% if not entry.prev %}disabled{% endif %}">
|
||||
<a class="page-link" href="{% if entry.prev %}/release/{{ entry.prev.version }}/{% else %}#{% endif %}"><span class="bi bi-arrow-left"></span> Previous release</a>
|
||||
</li>
|
||||
<li class="page-item {% if not entry.next %}disabled{% endif %}">
|
||||
<a class="page-link" href="{% if entry.next %}/release/{{ entry.next.version }}/{% else %}#{% endif %}">Next release <span class="bi bi-arrow-right"></span></a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
{% if coverage %}
|
||||
Tested:
|
||||
<b>Code</b>: {{ coverage.code.percentage|stringformat:".2f" }}%,
|
||||
<b>Templates</b>: {{ coverage.template.percentage|stringformat:".2f" }}%,
|
||||
<b>URLs</b>: {{ coverage.url.percentage|stringformat:".2f" }}%
|
||||
{% endif %}
|
||||
{% if code_coverage_url %}
|
||||
<br/>
|
||||
(A <a href="{{ code_coverage_url }}">code test coverage report</a> dated {{ code_coverage_time }} is available.)
|
||||
{% endif %}
|
||||
</p>
|
||||
|
||||
<h2>{{ entry.version }} release notes</h2>
|
||||
{% if entry.title %}<h4>{{ entry.title }}</h4>{% endif %}
|
||||
<pre>{{ entry.html|safe }}
|
||||
|
||||
— {{ entry.author }} <{{ entry.email }}> {{ entry.date }}
|
||||
</pre>
|
||||
|
||||
{% cache 3600 ietf_release_list %}
|
||||
<div id="release-list"></div>
|
||||
<h2>Release list:</h2>
|
||||
|
||||
<table class="table table-striped table-sm">
|
||||
{% for item in releases %}
|
||||
{% ifchanged %}
|
||||
<tr class="table-info">
|
||||
<th colspan="3" class="h4">{{ item.date|slice:"7:11" }}</th>
|
||||
</tr>
|
||||
{% endifchanged %}
|
||||
<tr>
|
||||
<td class="text-end"><a href="/release/{{ item.version }}/">{{ item.version }}</a></td>
|
||||
<td class="text-end pe-3">{{ item.date|slice:":11" }}</td>
|
||||
<td>{{ item.title }}</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endcache %}
|
||||
|
||||
{% endblock content %}
|
||||
|
||||
{% block footer %}
|
||||
<div class="col-md-12 text-center padded-top">
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/wiki/ContractorInstructions"><i>Contractor instructions</i></a>
|
||||
</div>
|
||||
<p class="text-center">
|
||||
<a href="https://trac.ietf.org/trac/ietfdb/wiki/ContractorInstructions">Contractor instructions</a>
|
||||
</p>
|
||||
{{ block.super }}
|
||||
{% endblock %}
|
||||
{% endblock footer %}
|
Loading…
Reference in a new issue