Skip to content

Commit 0a15bf9

Browse files
committed
Merged in [12326] from housley@vigilsec.com:
Allow WG Chairs to manage the meeting materials when starting from the old WG Chair Dashboard in ietf.secr.proceedings - Legacy-Id: 12370 Note: SVN reference [12326] has been migrated to Git commit a37f418
2 parents f4268ce + a37f418 commit 0a15bf9

6 files changed

Lines changed: 42 additions & 1 deletion

File tree

ietf/meeting/tests_views.py

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

288+
def test_materials_editable_groups(self):
289+
meeting = make_meeting_test_data()
290+
291+
self.client.login(username="marschairman", password="marschairman+password")
292+
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
293+
self.assertEqual(r.status_code, 200)
294+
self.assertTrue(meeting.number in unicontent(r))
295+
self.assertTrue("mars" in unicontent(r))
296+
297+
self.client.login(username="plain",password="plain+password")
298+
r = self.client.get(urlreverse("ietf.meeting.views.materials_editable_groups", kwargs={'num':meeting.number}))
299+
self.assertEqual(r.status_code, 200)
300+
self.assertTrue(meeting.number in unicontent(r))
301+
self.assertTrue("You cannot manage the meeting materials for any groups" in unicontent(r))
302+
288303
def test_proceedings(self):
289304
meeting = make_meeting_test_data()
290305
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, Q
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 %}

ready-for-merge

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
# --- Add entries at the top ---
99

10+
/personal/housley/6.37.2.dev0@12326
1011
/personal/adam/6.37.2.dev0@12340
1112

1213
/personal/housley/6.27.1.dev0@11663

0 commit comments

Comments
 (0)