Skip to content

Commit a37f418

Browse files
committed
Allow WG Chairs to manage the meeting materials when starting from the old WG Chair Dashboard in ietf.secr.proceedings
- Legacy-Id: 12326
1 parent f68d0c6 commit a37f418

5 files changed

Lines changed: 41 additions & 1 deletion

File tree

ietf/meeting/tests_views.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,21 @@ def test_materials(self):
274274
# FIXME: missing tests of .pdf/.tar generation (some code can
275275
# probably be lifted from similar tests in iesg/tests.py)
276276

277+
def test_materials_editable_groups(self):
278+
meeting = make_meeting_test_data()
279+
280+
self.client.login(username="marschairman", password="marschairman+password")
281+
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
282+
self.assertEqual(r.status_code, 200)
283+
self.assertTrue(meeting.number in unicontent(r))
284+
self.assertTrue("mars" in unicontent(r))
285+
286+
self.client.login(username="plain",password="plain+password")
287+
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
288+
self.assertEqual(r.status_code, 200)
289+
self.assertTrue(meeting.number in unicontent(r))
290+
self.assertTrue("You cannot manage the meeting materials for any groups" in unicontent(r))
291+
277292
def test_proceedings(self):
278293
meeting = make_meeting_test_data()
279294
session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()

ietf/meeting/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
url(r'^week-view(?:.html)?/?$', views.week_view),
7676
url(r'^room-view(?:.html)?/?$', views.room_view),
7777
url(r'^materials(?:.html)?/?$', views.materials),
78+
url(r'^materials/editable-groups/?$', views.materials_editable_groups),
7879
url(r'^proceedings(?:.html)?/?$', views.proceedings),
7980
url(r'^proceedings(?:.html)?/finalize/?$', views.finalize_proceedings),
8081
url(r'^proceedings/acknowledgements/$', views.proceedings_acknowledgements),

ietf/meeting/views.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
from django.shortcuts import render, redirect, get_object_or_404
2121
from django.http import HttpResponse, HttpResponseRedirect, HttpResponseForbidden, Http404
2222
from django.contrib import messages
23+
from django.contrib.auth.decorators import login_required
2324
from django.core.urlresolvers import reverse,reverse_lazy
2425
from django.db.models import Min, Max
2526
from django.conf import settings
@@ -140,6 +141,12 @@ def current_materials(request):
140141
else:
141142
raise Http404
142143

144+
@login_required
145+
def materials_editable_groups(request, num=None):
146+
meeting = get_meeting(num)
147+
return render(request, "meeting/materials_editable_groups.html", {
148+
'meeting_num': meeting.number})
149+
143150
def ascii_alphanumeric(string):
144151
return re.match(r'^[a-zA-Z0-9]*$', string)
145152

ietf/secr/proceedings/views.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ def select(request, meeting_num):
397397
'''
398398

399399
if not has_role(request.user,'Secretariat'):
400-
return HttpResponseRedirect(reverse('ietf.meeting.views.materials', kwargs={'num':meeting_num}))
400+
return HttpResponseRedirect(reverse('ietf.meeting.views.materials_editable_groups', kwargs={'num':meeting_num}))
401401

402402
meeting = get_object_or_404(Meeting, number=meeting_num)
403403
proceedings_url = get_proceedings_url(meeting)
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{% extends "base.html" %}
2+
{# Copyright The IETF Trust 2016, All Rights Reserved #}
3+
{% load origin %}
4+
5+
{% load ietf_filters managed_groups %}
6+
7+
{% block content %}
8+
<h1>IETF {{ meeting_num }} meeting materials that you can edit</h1>
9+
10+
{% if user and user.is_authenticated and user|managed_groups %}
11+
{% for g in user|managed_groups %}
12+
<p><a href="{% url 'ietf.meeting.views.session_details' num=meeting_num acronym=g.acronym %}">{{ g.acronym }}</a></p>
13+
{% endfor %}
14+
{% else %}
15+
<p>You cannot manage the meeting materials for any groups.</p>
16+
{% endif %}
17+
{% endblock %}

0 commit comments

Comments
 (0)