From 51f24f047c3697f33affe42f228e5574cb50363d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emilio=20Jim=C3=A9nez?= Date: Tue, 22 Jan 2013 16:36:52 +0000 Subject: [PATCH] Add edit public key and edit members views to private area. See #904 #905 - Legacy-Id: 5315 --- ietf/nomcom/forms.py | 15 ++++++++++++++- ietf/nomcom/templatetags/__init__.py | 0 ietf/nomcom/templatetags/nomcom_tags.py | 13 +++++++++++++ ietf/nomcom/test_data.py | 5 ++++- ietf/nomcom/views.py | 4 +++- ietf/templates/nomcom/edit_members.html | 8 ++++---- ietf/templates/nomcom/edit_publickey.html | 8 ++++---- ietf/templates/nomcom/nomcom_private_base.html | 8 +++++++- 8 files changed, 49 insertions(+), 12 deletions(-) create mode 100644 ietf/nomcom/templatetags/__init__.py create mode 100644 ietf/nomcom/templatetags/nomcom_tags.py diff --git a/ietf/nomcom/forms.py b/ietf/nomcom/forms.py index 428ff2b78..ba0e172a5 100644 --- a/ietf/nomcom/forms.py +++ b/ietf/nomcom/forms.py @@ -1,11 +1,13 @@ from django.conf import settings from django import forms -from django.contrib.formtools.preview import FormPreview +from django.contrib.formtools.preview import FormPreview, AUTO_ID from django.http import HttpResponseRedirect from django.shortcuts import get_object_or_404 from django.core.urlresolvers import reverse from django.template.loader import render_to_string from django.utils.decorators import method_decorator +from django.shortcuts import render_to_response +from django.template.context import RequestContext from ietf.utils import unaccent from ietf.utils.mail import send_mail @@ -79,6 +81,17 @@ class EditMembersFormPreview(FormPreview): return super(EditMembersFormPreview, self).__call__(request, *args, **kwargs) + def preview_get(self, request): + "Displays the form" + f = self.form(auto_id=AUTO_ID) + return render_to_response(self.form_template, + {'form': f, + 'stage_field': self.unused_name('stage'), + 'state': self.state, + 'year': self.year, + 'selected': 'edit_members'}, + context_instance=RequestContext(request)) + def parse_params(self, *args, **kwargs): members = self.group.role_set.filter(name__slug='member') diff --git a/ietf/nomcom/templatetags/__init__.py b/ietf/nomcom/templatetags/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/ietf/nomcom/templatetags/nomcom_tags.py b/ietf/nomcom/templatetags/nomcom_tags.py new file mode 100644 index 000000000..22f1ae5b9 --- /dev/null +++ b/ietf/nomcom/templatetags/nomcom_tags.py @@ -0,0 +1,13 @@ +from django import template + +from ietf.nomcom.utils import get_nomcom_by_year + +register = template.Library() + + +@register.filter +def is_chair(user, year): + if not user or not year: + return False + nomcom = get_nomcom_by_year(year=year) + return nomcom.group.is_chair(user) diff --git a/ietf/nomcom/test_data.py b/ietf/nomcom/test_data.py index f0e344ee6..8789369c6 100644 --- a/ietf/nomcom/test_data.py +++ b/ietf/nomcom/test_data.py @@ -113,7 +113,10 @@ def nomcom_test_data(): parent=None) # users for user in USERS: - u, created = User.objects.get_or_create(username=user, password=user) + u, created = User.objects.get_or_create(username=user) + if created: + u.set_password(user) + u.save() person, created = Person.objects.get_or_create( name=user, ascii=user, diff --git a/ietf/nomcom/views.py b/ietf/nomcom/views.py index cf3fc7e0d..55c3cc248 100644 --- a/ietf/nomcom/views.py +++ b/ietf/nomcom/views.py @@ -146,7 +146,9 @@ def edit_publickey(request, year): return render_to_response('nomcom/edit_publickey.html', {'form': form, 'group': nomcom.group, - 'message': message}, RequestContext(request)) + 'message': message, + 'year': year, + 'selected': 'edit_publickey'}, RequestContext(request)) def ajax_position_text(request, position_id): diff --git a/ietf/templates/nomcom/edit_members.html b/ietf/templates/nomcom/edit_members.html index 36497dbfa..78f67d01b 100644 --- a/ietf/templates/nomcom/edit_members.html +++ b/ietf/templates/nomcom/edit_members.html @@ -1,9 +1,9 @@ -{% extends "base.html" %} +{% extends "nomcom/nomcom_private_base.html" %} -{% block title %}Edit {{ state.group.acronym }} members{% endblock %} +{% block subtitle %} - Edit members{% endblock %} -{% block content %} -

Edit {{ state.group.acronym }} members

+{% block nomcom_content %} +

Edit members

{% if form.errors %}
Please correct the following errors
{% endif %} diff --git a/ietf/templates/nomcom/edit_publickey.html b/ietf/templates/nomcom/edit_publickey.html index 302313858..633890d10 100644 --- a/ietf/templates/nomcom/edit_publickey.html +++ b/ietf/templates/nomcom/edit_publickey.html @@ -1,9 +1,9 @@ -{% extends "base.html" %} +{% extends "nomcom/nomcom_private_base.html" %} -{% block title %}Edit {{ group.acronym }} public key{% endblock %} +{% block subtitle %}- Edit public key{% endblock %} -{% block content %} -

Edit {{ group.acronym }} public key

+{% block nomcom_content %} +

Edit public key

{% if message %}
{{ message.1 }}
diff --git a/ietf/templates/nomcom/nomcom_private_base.html b/ietf/templates/nomcom/nomcom_private_base.html index 6a74706cd..204229090 100644 --- a/ietf/templates/nomcom/nomcom_private_base.html +++ b/ietf/templates/nomcom/nomcom_private_base.html @@ -1,13 +1,19 @@ {% extends "nomcom/nomcom_base.html" %} +{% load nomcom_tags %} + {% block content %}

Nomcom {{ year }} Private Area

{% if selected == "index" %}List of nominees{% else %}List of nominees{% endif %} | - {% if selected == "merge" %}Merge nominee email addr{% else %}Merge nominee email addr{% endif %} | {% if selected == "nominate" %}Nominate{% else %}Nominate{% endif %} | + {% if user|is_chair:year %} + {% if selected == "merge" %}Merge nominee email addr{% else %}Merge nominee email addr{% endif %} | + {% if selected == "edit_members" %}Edit nomcom members{% else %}Edit nomcom members{% endif %} | + {% if selected == "edit_publickey" %}Edit public key{% else %}Edit public key{% endif %} + {% endif %}