* fix: Remove extra whitespace around parentheses * fix: Make heading capitalization consistent, colorize a "No" * fix: Pagination element, spacing, replace text with icon
275 lines
12 KiB
HTML
275 lines
12 KiB
HTML
{# Copyright The IETF Trust 2015, All Rights Reserved #}
|
|
{% extends "base.html" %}
|
|
{% load origin %}
|
|
{% load widget_tweaks django_bootstrap5 textfilters ietf_filters %}
|
|
{% load person_filters %}
|
|
{% block title %}Profile for {{ user }}{% endblock %}
|
|
{% block content %}
|
|
{% origin %}
|
|
<h1>Profile information for {{ user.person.name }}</h1>
|
|
<p class="my-3">
|
|
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>
|
|
<form class="form-horizontal" method="post">
|
|
{% csrf_token %}
|
|
{% bootstrap_form_errors person_form %}
|
|
{% for f in new_email_forms %}
|
|
{% bootstrap_form_errors f %}
|
|
{% endfor %}
|
|
<div class="row mb-3">
|
|
<label class="col-sm-2 col-form-label fw-bold">
|
|
User name
|
|
<a href="#pi" aria-label="!">
|
|
<i class="bi bi-exclamation-circle"></i>
|
|
</a>
|
|
</label>
|
|
<div class="col-sm-10">
|
|
<p class="form-control-plaintext">
|
|
{{ user.username }}
|
|
</p>
|
|
<a class="btn btn-primary" href="/accounts/username/">Edit</a>
|
|
</div>
|
|
</div>
|
|
<div class="row mb-3">
|
|
<label class="col-sm-2 col-form-label fw-bold">
|
|
Password
|
|
<a href="#pi" aria-label="!">
|
|
<i class="bi bi-exclamation-circle"></i>
|
|
</a>
|
|
</label>
|
|
<div class="col-sm-10">
|
|
<a class="btn btn-primary" href="/accounts/password/">Change password</a>
|
|
</div>
|
|
</div>
|
|
{% if person.photo %}
|
|
<div class="row mb-3">
|
|
<label class="col-sm-2 col-form-label fw-bold">
|
|
Photo
|
|
<a href="#pi" aria-label="!">
|
|
<i class="bi bi-exclamation-circle"></i>
|
|
</a>
|
|
</label>
|
|
<div class="col-sm-10">{% include "person/photo.html" with person=person %}</div>
|
|
</div>
|
|
{% endif %}
|
|
<div class="row mb-3">
|
|
<label class="col-sm-2 col-form-label fw-bold">NomCom eligible</label>
|
|
<div class="col-sm-10">
|
|
{% with person|is_nomcom_eligible|yesno:'Yes,No,No' as is_eligible %}
|
|
<p class="form-control-plaintext {% if is_eligible == 'Yes' %}text-success fw-bold{% else %}text-danger{% endif %}">
|
|
{{ is_eligible }}
|
|
</p>
|
|
{% endwith %}
|
|
{% 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="offset-sm-2 alert alert-info my-3">
|
|
{% if volunteer_status == 'volunteered' %}
|
|
<p class="mb-0">
|
|
<b id="volunteered">You have volunteered for the {{ nomcom.group.name }}.</b> To modify your volunteer status, contact the NomCom chair.
|
|
</p>
|
|
{% else %}
|
|
<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 class="mb-0">
|
|
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>
|
|
{% endif %}
|
|
</div>
|
|
<div class="row mb-3">
|
|
<label class="col-sm-2 col-form-label fw-bold">
|
|
External resources
|
|
<a href="#pi" aria-label="!">
|
|
<i class="bi bi-exclamation-circle"></i>
|
|
</a>
|
|
</label>
|
|
<div class="col-sm-10">
|
|
{% if person.personextresource_set.all %}
|
|
<div class="form-control-plaintext">
|
|
<dl class="row mb-0">
|
|
{% for extres in person.personextresource_set.all %}
|
|
<dt class="col-sm-3">
|
|
{% firstof extres.display_name extres.name.name %}
|
|
</dt>
|
|
<dd class="col-sm-9">
|
|
{{ extres.value|linkify }}
|
|
</dd>
|
|
{% endfor %}
|
|
</dl>
|
|
</div>
|
|
{% endif %}
|
|
<a class="btn btn-primary"
|
|
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">
|
|
<thead>
|
|
<tr>
|
|
<th scope="col" class="text-center">Primary</th>
|
|
<th scope="col" class="text-center">Active</th>
|
|
<th scope="col">Address</th>
|
|
<th scope="col">Origin</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for email in emails %}
|
|
<tr>
|
|
<td class="text-center">
|
|
<label aria-label="Primary email">
|
|
<input class="form-check-input"
|
|
type="radio"
|
|
name="primary_email"
|
|
value="{{ email.pk }}"
|
|
{% if email.primary %}checked{% endif %}>
|
|
</label>
|
|
</td>
|
|
<td class="text-center">
|
|
<label aria-label="Active email">
|
|
<input class="form-check-input"
|
|
type="checkbox"
|
|
name="active_emails"
|
|
value="{{ email.pk }}"
|
|
{% if email.active %}checked{% endif %}>
|
|
</label>
|
|
</td>
|
|
<td>
|
|
{% if email.origin == person.user.username or email.origin == '' %}
|
|
<a href="#pi" aria-label="!">
|
|
<i class="bi bi-exclamation-circle"></i>
|
|
</a>
|
|
{% endif %}
|
|
{{ email|linkify }}
|
|
</td>
|
|
<td>{{ email.origin|default:'(unknown)'|urlize_ietf_docs }}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<p class="form-text">
|
|
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 type="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>
|
|
{% bootstrap_form person_form layout="horizontal" exclude="ascii_short" %}
|
|
{% bootstrap_button button_type="submit" content="Submit" extra_classes="offset-sm-2" %}
|
|
</form>
|
|
<div class="form-text mt-5">
|
|
<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>
|
|
<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>
|
|
<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 %}
|
|
{% block js %}
|
|
<script>
|
|
$(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");
|
|
} else {
|
|
$(this)
|
|
.parent()
|
|
.next()
|
|
.addClass("text-danger line-through");
|
|
$(this)
|
|
.parent()
|
|
.next()
|
|
.removeClass("text-success");
|
|
}
|
|
})
|
|
.trigger("change");
|
|
|
|
$(".add-email")
|
|
.on("click", function (e) {
|
|
e.preventDefault();
|
|
|
|
var container = $(this)
|
|
.closest("form")
|
|
.find(".new-emails");
|
|
|
|
$('<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 %}
|