Reorganized the tab navigation on the nomcom private pages. Made it more obvious when the chair is doing something that only the chair gets to see. Fixes #1788 and #1795.

- Legacy-Id: 10505
This commit is contained in:
Robert Sparks 2015-11-17 22:50:35 +00:00
parent 00e5762e20
commit 2197259102
3 changed files with 61 additions and 20 deletions

View file

@ -7,7 +7,6 @@ from django.template.defaultfilters import linebreaksbr, force_escape
from ietf.utils.pipe import pipe
from ietf.utils.log import log
from ietf.ietfauth.utils import has_role
from ietf.doc.templatetags.ietf_filters import wrap_text
from ietf.person.models import Person
@ -19,13 +18,11 @@ register = template.Library()
@register.filter
def is_chair(user, year):
def is_chair_or_advisor(user, year):
if not user or not year:
return False
nomcom = get_nomcom_by_year(year=year)
if has_role(user, "Secretariat"):
return True
return nomcom.group.has_role(user, "chair")
return nomcom.group.has_role(user, ["chair","advisor"])
@register.filter

View file

@ -249,7 +249,9 @@ def send_reminder_mail(request, year, type):
'selected': selected_tab,
'reminder_description': reminder_description,
'state_description': state_description,
'message': message}, RequestContext(request))
'message': message,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -269,7 +271,9 @@ def private_merge(request, year):
'year': year,
'form': form,
'message': message,
'selected': 'merge'}, RequestContext(request))
'selected': 'merge',
'is_chair_task' : True,
}, RequestContext(request))
def requirements(request, year):
@ -414,7 +418,9 @@ def private_feedback_email(request, year):
{'message': message,
'nomcom': nomcom,
'year': year,
'selected': 'feedback_email'}, RequestContext(request))
'selected': 'feedback_email',
'is_chair_task' : True,
}, RequestContext(request))
form = FeedbackEmailForm(nomcom=nomcom)
@ -448,7 +454,9 @@ def private_questionnaire(request, year):
{'message': message,
'nomcom': nomcom,
'year': year,
'selected': 'questionnaire'}, RequestContext(request))
'selected': 'questionnaire',
'is_chair_task' : True,
}, RequestContext(request))
if request.method == 'POST':
form = QuestionnaireForm(data=request.POST,
@ -649,7 +657,9 @@ def view_feedback_pending(request, year):
'type_dict': type_dict,
'extra_ids': extra_ids,
'types': FeedbackTypeName.objects.all().order_by('pk'),
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom")
@ -704,7 +714,9 @@ def edit_nominee(request, year, nominee_id):
'nominee': nominee,
'form': form,
'message': message,
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -739,7 +751,9 @@ def edit_nomcom(request, year):
'nomcom': nomcom,
'message': message,
'year': year,
'selected': 'edit_nomcom'}, RequestContext(request))
'selected': 'edit_nomcom',
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -755,6 +769,7 @@ def delete_nomcom(request, year):
'year': year,
'selected': 'edit_nomcom',
'nomcom': nomcom,
'is_chair_task' : True,
})
@ -769,7 +784,9 @@ def list_templates(request, year):
'positions': positions,
'year': year,
'selected': 'edit_templates',
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -782,7 +799,9 @@ def edit_template(request, year, template_id):
formclass=NomComTemplateForm,
extra_context={'year': year,
'return_url': return_url,
'nomcom': nomcom})
'nomcom': nomcom,
'is_chair_task' : True,
})
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -794,7 +813,9 @@ def list_positions(request, year):
{'positions': positions,
'year': year,
'selected': 'edit_positions',
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -811,7 +832,9 @@ def remove_position(request, year, position_id):
return render_to_response('nomcom/remove_position.html',
{'year': year,
'position': position,
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))
@role_required("Nomcom Chair", "Nomcom Advisor")
@ -837,4 +860,6 @@ def edit_position(request, year, position_id=None):
{'form': form,
'position': position,
'year': year,
'nomcom': nomcom}, RequestContext(request))
'nomcom': nomcom,
'is_chair_task' : True,
}, RequestContext(request))

View file

@ -9,7 +9,7 @@
{% block content %}
{% origin %}
<h1>NomCom {{ year }} <small>Private area</small></h1>
<h1>NomCom {{ year }} <small>Private area {% if is_chair_task %}- Chair/Advisors only{% endif %}</small></h1>
<ul class="nav nav-tabs" role="tablist">
<li {% if selected == "index" %}class="active"{% endif %}><a href="{% url "nomcom_private_index" year %}">Nominees</a></li>
@ -17,13 +17,31 @@
{% if nomcom|has_publickey %}
<li {% if selected == "nominate" %}class="active"{% endif %}><a href="{% url "nomcom_private_nominate" year %}">Nominate</a></li>
<li {% if selected == "feedback" %}class="active"{% endif %}><a href="{% url "nomcom_private_feedback" year %}">Enter feedback</a></li>
<li {% if selected == "questionnaire" %}class="active"{% endif %}><a href="{% url "nomcom_private_questionnaire" year %}">Questionnaire response</a></li>
{% endif %}
<li {% if selected == "view_feedback" %}class="active"{% endif %}><a href="{% url "nomcom_view_feedback" year %}">View feedback</a></li>
<li {% if selected == "private_key" %}class="active"{% endif %}><a href="{% url "nomcom_private_key" year %}">Private key</a></li>
{% if user|is_chair:year %}
{% if user|is_chair_or_advisor:year %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Chair/Advisor Tasks <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
<li role = "presentation" class = "dropdown-header">Feedback Management</li>
<li {% if selected == "feedback_pending" %}class="active"{% endif %}><a href="{% url "nomcom_view_feedback_pending" year %}">Classify pending feedback</a></li>
<li {% if selected == "feedback_email" %}class="active"{% endif %}><a href="{% url "nomcom_private_feedback_email" year %}">Enter email feedback</a></li>
<li {% if selected == "questionnaire" %}class="active"{% endif %}><a href="{% url "nomcom_private_questionnaire" year %}">Enter questionnaire response</a></li>
<li {% if selected == "send_accept_reminder" %}class="active"{% endif %}><a href="{% url "nomcom_send_reminder_mail" year "accept" %}">Send accept reminder</a></li>
<li {% if selected == "send_questionnaire_reminder" %}class="active"{% endif %}><a href="{% url "nomcom_send_reminder_mail" year "questionnaire" %}">Send questionnaire reminder</a></li>
<li {% if selected == "merge" %}class="active"{% endif %}><a href="{% url "nomcom_private_merge" year %}">Merge Email Addresses</a></li>
<li role = "presentation" class = "dropdown-header">Nomcom Configuration</li>
<li {% if selected == "edit_nomcom" %}class="active"{% endif %}><a href="{% url "nomcom_edit_nomcom" year %}">Edit Settings</a></li>
<li {% if selected == "edit_templates" %}class="active"{% endif %}><a href="{% url "nomcom_list_templates" year %}">Edit Pages</a></li>
<li {% if selected == "edit_positions" %}class="active"{% endif %}><a href="{% url "nomcom_list_positions" year %}">Edit Positions</a></li>
<li {% if selected == "edit_members" %}class="active"{% endif %}><a href="{% url "nomcom_edit_members" year %}">Edit Members</a></li>
</ul>
</li>
{% comment %}
<li class="dropdown">
<a class="dropdown-toggle" data-toggle="dropdown" href="#">Chair <span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
@ -44,6 +62,7 @@
<li {% if selected == "edit_members" %}class="active"{% endif %}><a href="{% url "nomcom_edit_members" year %}">Edit Nomcom Members</a></li>
</ul>
</li>
{% endcomment %}
{% endif %}
</ul>