diff --git a/ietf/group/info.py b/ietf/group/info.py index c44130f89..a80c66643 100644 --- a/ietf/group/info.py +++ b/ietf/group/info.py @@ -39,6 +39,8 @@ from tempfile import mkstemp import datetime from collections import OrderedDict +import debug # pyflakes:ignore + from django import forms from django.shortcuts import render, redirect from django.template.loader import render_to_string @@ -505,6 +507,30 @@ def group_about(request, acronym, group_type=None): "status_update": status_update, })) +def all_status(request): + wgs = Group.objects.filter(type='wg',state__in=['active','bof']) + rgs = Group.objects.filter(type='rg',state__in=['active','proposed']) + + wg_reports = [] + for wg in wgs: + e = wg.latest_event(type='status_update') + if e: + wg_reports.append(e) + + wg_reports.sort(key=lambda x: (x.group.parent.acronym,datetime.datetime.now()-x.time)) + + rg_reports = [] + for rg in rgs: + e = rg.latest_event(type='status_update') + if e: + rg_reports.append(e) + + return render(request, 'group/all_status.html', + { 'wg_reports': wg_reports, + 'rg_reports': rg_reports, + } + ) + def group_about_status(request, acronym, group_type=None): group = get_group_or_404(acronym, group_type) status_update = group.latest_event(type='status_update') diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index a6dec522d..a40e2845d 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -1124,6 +1124,13 @@ class StatusUpdateTests(TestCase): response = self.client.post(url,dict(txt=test_file,submit_response="1")) self.assertEqual(response.status_code, 302) self.assertEqual(chair.group.latest_event(type='status_update').desc,'This came from a file.') + + def test_view_all_status_updates(self): + GroupEventFactory(type='status_update',desc='blah blah blah',group__type_id='wg') + GroupEventFactory(type='status_update',desc='blah blah blah',group__type_id='rg') + url = urlreverse('ietf.group.info.all_status') + response = self.client.get(url) + self.assertEqual(response.status_code,200) class GroupParentLoopTests(TestCase): @@ -1165,4 +1172,4 @@ class GroupParentLoopTests(TestCase): signal.alarm(0) # If we get here, then there is not an infinite loop - return \ No newline at end of file + return diff --git a/ietf/group/urls.py b/ietf/group/urls.py index 30ef24225..522beb37b 100644 --- a/ietf/group/urls.py +++ b/ietf/group/urls.py @@ -10,6 +10,7 @@ urlpatterns = patterns('', (r'^chartering/create/(?P(wg|rg))/$', 'ietf.group.edit.edit', {'action': "charter"}, "group_create"), (r'^concluded/$', 'ietf.group.info.concluded_groups'), (r'^email-aliases/$', 'ietf.group.info.email_aliases'), + (r'^all-status/$', 'ietf.group.info.all_status'), (r'^(?P[a-zA-Z0-9-._]+)/$', 'ietf.group.info.group_home', None, "group_home"), (r'^(?P[a-zA-Z0-9-._]+)/', include('ietf.group.urls_info_details')), ) diff --git a/ietf/templates/group/active_rgs.html b/ietf/templates/group/active_rgs.html index 5b6eac5b1..db4e0b95d 100644 --- a/ietf/templates/group/active_rgs.html +++ b/ietf/templates/group/active_rgs.html @@ -16,6 +16,7 @@

{{ irtf.chair.person.plain_name }}

Active research groups

+ Status Reports @@ -40,4 +41,4 @@ {% block js %} -{% endblock %} \ No newline at end of file +{% endblock %} diff --git a/ietf/templates/group/active_wgs.html b/ietf/templates/group/active_wgs.html index 6b84f9b94..0f1e85117 100644 --- a/ietf/templates/group/active_wgs.html +++ b/ietf/templates/group/active_wgs.html @@ -19,6 +19,7 @@ Concluded WGsHistoric charters + Status Reports {% for area in areas %}

{{ area.name }} ({{ area.acronym }})

@@ -93,4 +94,4 @@ {% block js %} -{% endblock %} \ No newline at end of file +{% endblock %}