Merge pull request #6345 from larseggert/fix-6343

fix: Add link to public pages to private NomCom pages
This commit is contained in:
Robert Sparks 2023-09-29 10:13:58 -05:00 committed by GitHub
commit 486a4f5370
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 86 additions and 104 deletions

View file

@ -22,8 +22,8 @@ urlpatterns = [
url(r'^(?P<year>\d{4})/private/view-feedback/nominee/(?P<nominee_id>\d+)$', views.view_feedback_nominee),
url(r'^(?P<year>\d{4})/private/view-feedback/topic/(?P<topic_id>\d+)$', views.view_feedback_topic),
url(r'^(?P<year>\d{4})/private/edit/nominee/(?P<nominee_id>\d+)$', views.edit_nominee),
url(r'^(?P<year>\d{4})/private/merge-nominee/?$', views.private_merge_nominee),
url(r'^(?P<year>\d{4})/private/merge-person/?$', views.private_merge_person),
url(r'^(?P<year>\d{4})/private/merge-nominee/$', views.private_merge_nominee),
url(r'^(?P<year>\d{4})/private/merge-person/$', views.private_merge_person),
url(r'^(?P<year>\d{4})/private/send-reminder-mail/(?P<type>\w+)/$', views.send_reminder_mail),
url(r'^(?P<year>\d{4})/private/extract-email-lists/$', views.extract_email_lists),
url(r'^(?P<year>\d{4})/private/edit-members/$', views.edit_members),

View file

@ -77,7 +77,6 @@ def year_index(request, year):
return render(request, 'nomcom/year_index.html',
{'nomcom': nomcom,
'year': year,
'selected': 'index',
'template': template})
def announcements(request):
@ -182,8 +181,7 @@ def private_key(request, year):
{'nomcom': nomcom,
'year': year,
'back_url': back_url,
'form': form,
'selected': 'private_key'})
'form': form})
@role_required("Nomcom")
@ -283,7 +281,6 @@ def private_index(request, year):
'positions': positions,
'selected_state': selected_state,
'selected_position': selected_position and int(selected_position) or None,
'selected': 'index',
'is_chair': is_chair,
'mailto': mailto,
})
@ -308,13 +305,11 @@ def send_reminder_mail(request, year, type):
interesting_state = 'pending'
mail_path = nomcom_template_path + NOMINEE_ACCEPT_REMINDER_TEMPLATE
reminder_description = 'accept (or decline) a nomination'
selected_tab = 'send_accept_reminder'
state_description = NomineePositionStateName.objects.get(slug=interesting_state).name
elif type=='questionnaire':
interesting_state = 'accepted'
mail_path = nomcom_template_path + NOMINEE_QUESTIONNAIRE_REMINDER_TEMPLATE
reminder_description = 'complete the questionnaire for a nominated position'
selected_tab = 'send_questionnaire_reminder'
state_description = NomineePositionStateName.objects.get(slug=interesting_state).name+' but no questionnaire has been received'
else:
raise Http404
@ -349,7 +344,6 @@ def send_reminder_mail(request, year, type):
'year': year,
'nominees': annotated_nominees,
'mail_template': mail_template,
'selected': selected_tab,
'reminder_description': reminder_description,
'state_description': state_description,
'is_chair_task' : True,
@ -376,7 +370,6 @@ def private_merge_person(request, year):
{'nomcom': nomcom,
'year': year,
'form': form,
'selected': 'merge_person',
'is_chair_task' : True,
})
@ -401,7 +394,6 @@ def private_merge_nominee(request, year):
{'nomcom': nomcom,
'year': year,
'form': form,
'selected': 'merge_nominee',
'is_chair_task' : True,
})
@ -411,8 +403,7 @@ def requirements(request, year):
return render(request, 'nomcom/requirements.html',
{'nomcom': nomcom,
'positions': positions,
'year': year,
'selected': 'requirements'})
'year': year})
def questionnaires(request, year):
@ -421,8 +412,7 @@ def questionnaires(request, year):
return render(request, 'nomcom/questionnaires.html',
{'nomcom': nomcom,
'positions': positions,
'year': year,
'selected': 'questionnaires'})
'year': year})
@login_required
@ -456,15 +446,13 @@ def nominate(request, year, public, newperson):
messages.warning(request, "This Nomcom is not yet accepting nominations")
return render(request, template,
{'nomcom': nomcom,
'year': year,
'selected': 'nominate'})
'year': year})
if nomcom.group.state_id == 'conclude':
messages.warning(request, "Nominations to this Nomcom are closed.")
return render(request, template,
{'nomcom': nomcom,
'year': year,
'selected': 'nominate'})
'year': year})
if request.method == 'POST':
if newperson:
@ -488,8 +476,7 @@ def nominate(request, year, public, newperson):
{'form': form,
'nomcom': nomcom,
'year': year,
'positions': nomcom.position_set.filter(is_open=True),
'selected': 'nominate'})
'positions': nomcom.position_set.filter(is_open=True)})
@login_required
def public_feedback(request, year):
@ -553,7 +540,6 @@ def feedback(request, year, public):
return render(request, 'nomcom/feedback.html', {
'nomcom': nomcom,
'year': year,
'selected': 'feedback',
'counts' : counts,
'base_template': base_template
})
@ -564,7 +550,6 @@ def feedback(request, year, public):
'form': None,
'nomcom': nomcom,
'year': year,
'selected': 'feedback',
'positions': positions,
'topics': topics,
'counts' : counts,
@ -578,7 +563,6 @@ def feedback(request, year, public):
'form': None,
'nomcom': nomcom,
'year': year,
'selected': 'feedback',
'positions': positions,
'topics': topics,
'counts' : counts,
@ -625,7 +609,6 @@ def feedback(request, year, public):
'year': year,
'positions': positions,
'topics': topics,
'selected': 'feedback',
'counts': counts,
'topic_counts': topic_counts,
'base_template': base_template
@ -651,7 +634,6 @@ def private_feedback_email(request, year):
return render(request, template,
{'nomcom': nomcom,
'year': year,
'selected': 'feedback_email',
'is_chair_task' : True,
})
@ -671,8 +653,7 @@ def private_feedback_email(request, year):
return render(request, template,
{'form': form,
'nomcom': nomcom,
'year': year,
'selected': 'feedback_email'})
'year': year})
@role_required("Nomcom Chair", "Nomcom Advisor")
def private_questionnaire(request, year):
@ -694,7 +675,6 @@ def private_questionnaire(request, year):
return render(request, template,
{'nomcom': nomcom,
'year': year,
'selected': 'questionnaire',
'is_chair_task' : True,
})
@ -713,8 +693,7 @@ def private_questionnaire(request, year):
{'form': form,
'questionnaire_response': questionnaire_response,
'nomcom': nomcom,
'year': year,
'selected': 'questionnaire'})
'year': year})
def process_nomination_status(request, year, nominee_position_id, state, date, hash):
@ -768,7 +747,6 @@ def process_nomination_status(request, year, nominee_position_id, state, date, h
'nominee_position': nominee_position,
'state': state,
'need_confirmation': need_confirmation,
'selected': 'feedback',
'form': form })
@role_required("Nomcom")
@ -833,7 +811,6 @@ def view_feedback(request, year):
return render(request, 'nomcom/view_feedback.html',
{'year': year,
'selected': 'view_feedback',
'nominees': nominees,
'nominee_feedback_types': nominee_feedback_types,
'independent_feedback_types': independent_feedback_types,
@ -930,7 +907,6 @@ def view_feedback_pending(request, year):
form.set_nomcom(nomcom, request.user)
return render(request, 'nomcom/view_feedback_pending.html',
{'year': year,
'selected': 'feedback_pending',
'formset': formset,
'extra_step': extra_step,
'extra_ids': extra_ids,
@ -1093,7 +1069,6 @@ def edit_nominee(request, year, nominee_id):
return render(request, 'nomcom/edit_nominee.html',
{'year': year,
'selected': 'index',
'nominee': nominee,
'form': form,
'nomcom': nomcom,
@ -1131,7 +1106,6 @@ def edit_nomcom(request, year):
'formset': formset,
'nomcom': nomcom,
'year': year,
'selected': 'edit_nomcom',
'is_chair_task' : True,
})
@ -1145,7 +1119,6 @@ def list_templates(request, year):
return render(request, 'nomcom/list_templates.html',
{'template_list': template_list,
'year': year,
'selected': 'edit_templates',
'nomcom': nomcom,
'is_chair_task' : True,
})
@ -1218,7 +1191,6 @@ def list_positions(request, year):
return render(request, 'nomcom/list_positions.html',
{'positions': positions,
'year': year,
'selected': 'edit_positions',
'nomcom': nomcom,
'is_chair_task' : True,
})
@ -1285,7 +1257,6 @@ def list_topics(request, year):
return render(request, 'nomcom/list_topics.html',
{'topics': topics,
'year': year,
'selected': 'edit_topics',
'nomcom': nomcom,
'is_chair_task' : True,
})
@ -1367,8 +1338,7 @@ def edit_members(request, year):
return render(request, 'nomcom/new_edit_members.html',
{'nomcom' : nomcom,
'year' : year,
'form': form,
})
'form': form})
@role_required("Nomcom Chair", "Nomcom Advisor")
def extract_email_lists(request, year):
@ -1388,8 +1358,7 @@ def extract_email_lists(request, year):
'pending': pending,
'accepted': accepted,
'noresp': noresp,
'bypos': bypos,
})
'bypos': bypos})
@login_required
def volunteer(request):

View file

@ -57,7 +57,7 @@ $(document)
var text = $(this)
.text();
// insert some <wbr> at strategic places
var newtext = text.replace(/([@._])/g, "$1<wbr>");
var newtext = text.replace(/([@._+])/g, "$1<wbr>");
if (newtext === text) {
return;
}

View file

@ -9,6 +9,7 @@
{% endblock %}
{% block content %}
{% origin %}
{% with selected=request.path|split:'/'|slice:'4:-1'|join:'-' %}
<h1>
NomCom {{ year }}
{% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill text-bg-info">Concluded</span>{% endif %}
@ -19,127 +20,137 @@
</h1>
<ul class="nav nav-tabs my-3">
<li class="nav-item">
<a class="nav-link {% if selected == "index" %}active{% endif %}"
<a class="nav-link {% if selected == '' %}active{% endif %}"
href="{% url "ietf.nomcom.views.private_index" year %}">
Nominees
</a>
</li>
{% if nomcom|has_publickey %}
<li class="nav-item">
<a class="nav-link {% if selected == "nominate" %}active{% endif %}"
<a class="nav-link {% if selected == 'nominate' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.private_nominate' year %}">
Nominate
</a>
</li>
<li class="nav-item">
<a class="nav-link {% if selected == "feedback" %}active{% endif %}"
{% endif %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle {% if selected in 'feedback,view-feedback'|split:',' %}active{% endif %}" data-bs-toggle="dropdown" href="#">Feedback</a>
<ul class="dropdown-menu mt-n1" role="menu">
{% if nomcom|has_publickey %}
<li>
<a class="dropdown-item {% if selected == 'feedback' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.private_feedback' year %}">
Enter feedback
</a>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link {% if selected == "view_feedback" %}active{% endif %}"
href="{% url 'ietf.nomcom.views.view_feedback' year %}">
View feedback
</a>
{% endif %}
<li>
<a class="dropdown-item {% if selected == 'view-feedback' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.view_feedback' year %}">
View feedback
</a>
</li>
</ul>
</li>
<li class="nav-item">
<a class="nav-link {% if selected == "private_key" %}active{% endif %}"
<a class="nav-link {% if selected == 'key' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.private_key' year %}">
Private key
</a>
</li>
{% if user|is_chair_or_advisor:year %}
<li class="nav-item">
<a class="nav-link {% if selected == "feedback_pending" %}active{% endif %}"
<a class="nav-link {% if selected == 'view-feedback-pending' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.view_feedback_pending' year %}">
Pending emails
{% if nomcom.pending_email_count %}<span class="badge rounded-pill text-bg-primary">{{ nomcom.pending_email_count }}</span>{% endif %}
</a>
</li>
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">Chair/Advisor Tasks</a>
<a class="nav-link dropdown-toggle {% if selected in 'feedback-email,questionnaire-response,extract-email-lists,send-reminder-mail-accept,send-reminder-mail-questionnaire,merge-person,merge-nominee,edit-nomcom,chair-templates,chair-position,chair-topic,edit-members,help'|split:',' %}active{% endif %}" data-bs-toggle="dropdown" href="#">Chair/advisor tasks</a>
<ul class="dropdown-menu mt-n1" role="menu">
{% if nomcom.group.state_id == 'active' %}
<li role="presentation" class="dropdown-header">Feedback Management</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.private_feedback_email' year %}">Enter email feedback</a>
<li>
<a class="dropdown-item {% if selected == 'feedback-email' %}active{% endif %}" href="{% url 'ietf.nomcom.views.private_feedback_email' year %}">Enter email feedback</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.private_questionnaire' year %}">Enter questionnaire response</a>
<li>
<a class="dropdown-item {% if selected == 'questionnaire-response' %}active{% endif %}" href="{% url 'ietf.nomcom.views.private_questionnaire' year %}">Enter questionnaire response</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.extract_email_lists' year %}">Extract email lists</a>
<li>
<a class="dropdown-item {% if selected == 'extract-email-lists' %}active{% endif %}" href="{% url 'ietf.nomcom.views.extract_email_lists' year %}">Extract email lists</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.send_reminder_mail' year "accept" %}">Send accept reminder</a>
<li>
<a class="dropdown-item {% if selected == 'send-reminder-mail-accept' %}active{% endif %}" href="{% url 'ietf.nomcom.views.send_reminder_mail' year "accept" %}">Send accept reminder</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.send_reminder_mail' year "questionnaire" %}">Send questionnaire reminder</a>
<li>
<a class="dropdown-item {% if selected == 'send-reminder-mail-questionnaire' %}active{% endif %}" href="{% url 'ietf.nomcom.views.send_reminder_mail' year "questionnaire" %}">Send questionnaire reminder</a>
</li>
<li class="dropdown-item">
<a href="{% url "ietf.nomcom.views.private_merge_person" year %}">Request person record merge</a>
<li>
<a class="dropdown-item {% if selected == 'merge-person' %}active{% endif %}" href="{% url "ietf.nomcom.views.private_merge_person" year %}">Request person record merge</a>
</li>
<li class="dropdown-item">
<a href="{% url "ietf.nomcom.views.private_merge_nominee" year %}">Merge nominee records</a>
<li>
<a class="dropdown-item {% if selected == 'merge-nominee' %}active{% endif %}" href="{% url "ietf.nomcom.views.private_merge_nominee" year %}">Merge nominee records</a>
</li>
<li><hr class="dropdown-divider"></li>
{% endif %}
<li role="presentation" class="dropdown-header">NomCom configuration</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.edit_nomcom' year %}">Edit settings</a>
<li>
<a class="dropdown-item {% if selected == 'edit-nomcom' %}active{% endif %}" href="{% url 'ietf.nomcom.views.edit_nomcom' year %}">Edit settings</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.list_templates' year %}">Edit pages</a>
<li>
<a class="dropdown-item {% if selected == 'chair-templates' %}active{% endif %}" href="{% url 'ietf.nomcom.views.list_templates' year %}">Edit pages</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.list_positions' year %}">Edit positions</a>
<li>
<a class="dropdown-item {% if selected == 'chair-position' %}active{% endif %}" href="{% url 'ietf.nomcom.views.list_positions' year %}">Edit positions</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.list_topics' year %}">Edit topics</a>
<li>
<a class="dropdown-item {% if selected == 'chair-topic' %}active{% endif %}" href="{% url 'ietf.nomcom.views.list_topics' year %}">Edit topics</a>
</li>
{% if nomcom.group.state_id == 'active' %}
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.edit_members' year %}">Edit members</a>
<li>
<a class="dropdown-item {% if selected == 'edit-members' %}active{% endif %}" href="{% url 'ietf.nomcom.views.edit_members' year %}">Edit members</a>
</li>
{% endif %}
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.configuration_help' year %}">Configuration help</a>
<li>
<a class="dropdown-item {% if selected == 'help' %}active{% endif %}" href="{% url 'ietf.nomcom.views.configuration_help' year %}">Configuration help</a>
</li>
<li><hr class="dropdown-divider"></li>
<li role="presentation" class="dropdown-header">Other tools</li>
<li class="dropdown-item">
<a href="{% url 'ietf.secr.announcement.views.main' %}">Announcement tool</a>
</li>
<li class="dropdown-item">
<a href="https://www.ietf.org/registration/nomcom_chair/nomcomstaff.py">Secretariat private eligibility checker</a>
</li>
<li class="dropdown-item">
<a href="https://www.ietf.org/registration/nomcom.py">Secretariat public eligibility checker</a>
<li>
<a class="dropdown-item" href="{% url 'ietf.secr.announcement.views.main' %}">Announcement tool</a>
</li>
</ul>
</li>
{% endif %}
{% if user|is_chair_or_advisor:year or user|has_role:"Secretariat" %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">
<a class="nav-link dropdown-toggle {% if selected in 'chair-eligible,chair-volunteers'|split:',' %}active{% endif %}" data-bs-toggle="dropdown" href="#">
Volunteers
</a>
<ul class="dropdown-menu mt-n1" role="menu">
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.private_eligible' year %}">
<li>
<a class="dropdown-item {% if selected == 'chair-eligible' %}active{% endif %}" href="{% url 'ietf.nomcom.views.private_eligible' year %}">
View eligible
</a>
</li>
<li class="dropdown-item">
<a href="{% url 'ietf.nomcom.views.private_volunteers' year %}">
<li>
<a class="dropdown-item {% if selected == 'chair-volunteers' %}active{% endif %}" href="{% url 'ietf.nomcom.views.private_volunteers' year %}">
View volunteers
</a>
</li>
</ul>
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link"
href="/nomcom/{{ nomcom.year }}">
Public pages &raquo;
</a>
</li>
</ul>
{% block nomcom_content %}{% endblock %}
{% endwith %}
{% endblock %}
{% block js %}
<script>

View file

@ -9,13 +9,14 @@
{% endblock %}
{% block content %}
{% origin %}
{% with selected=request.path|split:'/'|slice:'3:-1'|join:'-' %}
<h1>
NomCom {{ year }}
{% if nomcom.group.state_id == 'conclude' %}<span class="badge rounded-pill text-bg-info">Concluded</span>{% endif %}
</h1>
<ul class="nav nav-tabs my-3">
<li class="nav-item">
<a class="nav-link {% if selected == "index" %}active{% endif %}"
<a class="nav-link {% if selected == '' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.year_index' year %}">
Home
</a>
@ -35,7 +36,7 @@
</li>
{% endif %}
<li class="nav-item">
<a class="nav-link {% if selected == "requirements" %}active{% endif %}"
<a class="nav-link {% if selected == "expertise" %}active{% endif %}"
href="{% url 'ietf.nomcom.views.requirements' year %}">
Desired expertise
</a>
@ -48,14 +49,14 @@
</li>
{% if user|is_chair_or_advisor:year or user|has_role:"Secretariat" %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" data-bs-toggle="dropdown" href="#">Volunteers</a>
<a class="nav-link dropdown-toggle {% if selected in 'eligible,volunteers'|split:',' %}active{% endif %}" data-bs-toggle="dropdown" href="#">Volunteers</a>
<ul class="dropdown-menu mt-n1" role="menu">
<li class="nav-item">
<a class="dropdown-item"
<a class="dropdown-item {% if selected == 'eligible' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.public_eligible' year %}">View eligible</a>
</li>
<li class="nav-item">
<a class="dropdown-item"
<a class="dropdown-item {% if selected == 'volunteers' %}active{% endif %}"
href="{% url 'ietf.nomcom.views.public_volunteers' year %}">View volunteers</a>
</li>
</ul>
@ -63,6 +64,7 @@
{% endif %}
</ul>
{% block nomcom_content %}{% endblock %}
{% endwith %}
{% endblock %}
{% block js %}
<script>
@ -81,4 +83,4 @@
});
});
</script>
{% endblock %}
{% endblock %}

View file

@ -1,7 +1,7 @@
{% extends public|yesno:"nomcom/nomcom_public_base.html,nomcom/nomcom_private_base.html" %}
{# Copyright The IETF Trust 2021, All Rights Reserved #}
{% load origin %}
{% load django_bootstrap5 textfilters person_filters %}
{% load django_bootstrap5 textfilters person_filters ietf_filters%}
{% load static %}
{% block subtitle %}- Volunteers{% endblock %}
{% block pagehead %}
@ -34,7 +34,7 @@
{% for v in eligibility_group.list %}
<tr>
<td>{{ forloop.counter }}</td>
<td>{{ v.person.last_name }}</td>
<td>{{ v.person.last_name|split:'+'|join:'+<wbr>' }}</td>
<td>{{ v.person.first_name }}</td>
<td>{{ v.person.ascii_name }}</td>
<td>{% person_link v.person %}</td>