Allow WG Chairs to manage the meeting materials when starting from the old WG Chair Dashboard in ietf.secr.proceedings

- Legacy-Id: 12326
This commit is contained in:
Russ Housley 2016-11-12 05:40:12 +00:00
parent f68d0c6f6b
commit a37f41823c
5 changed files with 41 additions and 1 deletions

View file

@ -274,6 +274,21 @@ class MeetingTests(TestCase):
# FIXME: missing tests of .pdf/.tar generation (some code can
# probably be lifted from similar tests in iesg/tests.py)
def test_materials_editable_groups(self):
meeting = make_meeting_test_data()
self.client.login(username="marschairman", password="marschairman+password")
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
self.assertEqual(r.status_code, 200)
self.assertTrue(meeting.number in unicontent(r))
self.assertTrue("mars" in unicontent(r))
self.client.login(username="plain",password="plain+password")
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
self.assertEqual(r.status_code, 200)
self.assertTrue(meeting.number in unicontent(r))
self.assertTrue("You cannot manage the meeting materials for any groups" in unicontent(r))
def test_proceedings(self):
meeting = make_meeting_test_data()
session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()

View file

@ -75,6 +75,7 @@ type_ietf_only_patterns_id_optional = [
url(r'^week-view(?:.html)?/?$', views.week_view),
url(r'^room-view(?:.html)?/?$', views.room_view),
url(r'^materials(?:.html)?/?$', views.materials),
url(r'^materials/editable-groups/?$', views.materials_editable_groups),
url(r'^proceedings(?:.html)?/?$', views.proceedings),
url(r'^proceedings(?:.html)?/finalize/?$', views.finalize_proceedings),
url(r'^proceedings/acknowledgements/$', views.proceedings_acknowledgements),

View file

@ -20,6 +20,7 @@ from django import forms
from django.shortcuts import render, redirect, get_object_or_404
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
from django.contrib import messages
from django.contrib.auth.decorators import login_required
from django.core.urlresolvers import reverse,reverse_lazy
from django.db.models import Min, Max
from django.conf import settings
@ -140,6 +141,12 @@ def current_materials(request):
else:
raise Http404
@login_required
def materials_editable_groups(request, num=None):
meeting = get_meeting(num)
return render(request, "meeting/materials_editable_groups.html", {
'meeting_num': meeting.number})
def ascii_alphanumeric(string):
return re.match(r'^[a-zA-Z0-9]*$', string)

View file

@ -397,7 +397,7 @@ def select(request, meeting_num):
'''
if not has_role(request.user,'Secretariat'):
return HttpResponseRedirect(reverse('ietf.meeting.views.materials', kwargs={'num':meeting_num}))
return HttpResponseRedirect(reverse('ietf.meeting.views.materials_editable_groups', kwargs={'num':meeting_num}))
meeting = get_object_or_404(Meeting, number=meeting_num)
proceedings_url = get_proceedings_url(meeting)

View file

@ -0,0 +1,17 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2016, All Rights Reserved #}
{% load origin %}
{% load ietf_filters managed_groups %}
{% block content %}
<h1>IETF {{ meeting_num }} meeting materials that you can edit</h1>
{% if user and user.is_authenticated and user|managed_groups %}
{% for g in user|managed_groups %}
<p><a href="{% url 'ietf.meeting.views.session_details' num=meeting_num acronym=g.acronym %}">{{ g.acronym }}</a></p>
{% endfor %}
{% else %}
<p>You cannot manage the meeting materials for any groups.</p>
{% endif %}
{% endblock %}