Add simple overview page with links to concluded groups, use that instead of the tools page for the left menu link
- Legacy-Id: 7567
This commit is contained in:
parent
dbead00fcc
commit
357f88c0d6
|
@ -48,7 +48,7 @@ from ietf.doc.views_search import SearchForm, retrieve_search_results
|
|||
from ietf.doc.models import State, DocAlias, RelatedDocument
|
||||
from ietf.doc.utils import get_chartering_type
|
||||
from ietf.doc.templatetags.ietf_filters import clean_whitespace
|
||||
from ietf.group.models import Group, Role
|
||||
from ietf.group.models import Group, Role, ChangeStateGroupEvent
|
||||
from ietf.name.models import GroupTypeName
|
||||
from ietf.group.utils import get_charter_text, can_manage_group_type, milestone_reviewer_for_group_type
|
||||
from ietf.utils.pipe import pipe
|
||||
|
@ -185,7 +185,7 @@ def chartering_groups(request):
|
|||
group_types = GroupTypeName.objects.filter(slug__in=("wg", "rg"))
|
||||
|
||||
for t in group_types:
|
||||
t.chartering_groups = Group.objects.filter(type=t, charter__states__in=charter_states).select_related("state", "charter")
|
||||
t.chartering_groups = Group.objects.filter(type=t, charter__states__in=charter_states).select_related("state", "charter").order_by("acronym")
|
||||
t.can_manage = can_manage_group_type(request.user, t.slug)
|
||||
|
||||
for g in t.chartering_groups:
|
||||
|
@ -195,6 +195,26 @@ def chartering_groups(request):
|
|||
dict(charter_states=charter_states,
|
||||
group_types=group_types))
|
||||
|
||||
def concluded_groups(request):
|
||||
group_types = GroupTypeName.objects.filter(slug__in=("wg", "rg"))
|
||||
|
||||
for t in group_types:
|
||||
t.concluded_groups = Group.objects.filter(type=t, state__in=("conclude", "bof-conc")).select_related("state", "charter").order_by("acronym")
|
||||
|
||||
# add start/conclusion date
|
||||
d = dict((g.pk, g) for g in t.concluded_groups)
|
||||
|
||||
for g in t.concluded_groups:
|
||||
g.start_date = g.conclude_date = None
|
||||
|
||||
for e in ChangeStateGroupEvent.objects.filter(group__in=t.concluded_groups, state="active").order_by("-time"):
|
||||
d[e.group_id].start_date = e.time
|
||||
|
||||
for e in ChangeStateGroupEvent.objects.filter(group__in=t.concluded_groups, state="conclude").order_by("time"):
|
||||
d[e.group_id].conclude_date = e.time
|
||||
|
||||
return render(request, 'group/concluded_groups.html',
|
||||
dict(group_types=group_types))
|
||||
|
||||
def construct_group_menu_context(request, group, selected, others):
|
||||
"""Return context with info for the group menu filled in."""
|
||||
|
|
|
@ -101,6 +101,18 @@ class GroupPagesTests(TestCase):
|
|||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('table.ietf-doctable td.acronym a:contains("%s")' % group.acronym)), 1)
|
||||
|
||||
def test_concluded_groups(self):
|
||||
draft = make_test_data()
|
||||
group = draft.group
|
||||
group.state = GroupStateName.objects.get(used=True, slug="conclude")
|
||||
group.save()
|
||||
|
||||
url = urlreverse('ietf.group.info.concluded_groups')
|
||||
r = self.client.get(url)
|
||||
self.assertEqual(r.status_code, 200)
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('table.concluded-groups a:contains("%s")' % group.acronym)), 1)
|
||||
|
||||
def test_bofs(self):
|
||||
draft = make_test_data()
|
||||
group = draft.group
|
||||
|
|
|
@ -6,6 +6,7 @@ urlpatterns = patterns('',
|
|||
(r'^(?P<acronym>[a-z0-9]+).json$', 'ietf.group.ajax.group_json'),
|
||||
(r'^chartering/$', 'ietf.group.info.chartering_groups'),
|
||||
(r'^chartering/create/(?P<group_type>(wg|rg))/$', 'ietf.group.edit.edit', {'action': "charter"}, "group_create"),
|
||||
(r'^concluded/$', 'ietf.group.info.concluded_groups'),
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -18,18 +18,18 @@ urlpatterns = patterns('',
|
|||
(r'^chartering/create/$', RedirectView.as_view(url='/group/chartering/create/%(group_type)s/')),
|
||||
(r'^bofs/$', info.bofs),
|
||||
(r'^bofs/create/$', edit.edit, {'action': "create"}, "bof_create"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/documents/txt/$', info.group_documents_txt),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/$', info.group_documents, None, "group_docs"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/charter/$', info.group_charter, None, 'group_charter'),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/init-charter/', edit.submit_initial_charter),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/history/$', info.history),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/deps/dot/$', info.dependencies_dot),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/deps/pdf/$', info.dependencies_pdf),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/edit/$', edit.edit, {'action': "edit"}, "group_edit"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/conclude/$', edit.conclude),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/milestones/$', milestones.edit_milestones, {'milestone_set': "current"}, "group_edit_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/milestones/charter/$', milestones.edit_milestones, {'milestone_set': "charter"}, "group_edit_charter_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/milestones/charter/reset/$', milestones.reset_charter_milestones, None, "group_reset_charter_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/ajax/searchdocs/$', milestones.ajax_search_docs, None, "group_ajax_search_docs"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-]+)/workflow/$', edit.customize_workflow),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/documents/txt/$', info.group_documents_txt),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/$', info.group_documents, None, "group_docs"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/charter/$', info.group_charter, None, 'group_charter'),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/history/$', info.history),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/deps/dot/$', info.dependencies_dot),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/deps/pdf/$', info.dependencies_pdf),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/init-charter/', edit.submit_initial_charter),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/edit/$', edit.edit, {'action': "edit"}, "group_edit"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/conclude/$', edit.conclude),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/milestones/$', milestones.edit_milestones, {'milestone_set': "current"}, "group_edit_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/milestones/charter/$', milestones.edit_milestones, {'milestone_set': "charter"}, "group_edit_charter_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/milestones/charter/reset/$', milestones.reset_charter_milestones, None, "group_reset_charter_milestones"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/ajax/searchdocs/$', milestones.ajax_search_docs, None, "group_ajax_search_docs"),
|
||||
(r'^(?P<acronym>[a-zA-Z0-9-._]+)/workflow/$', edit.customize_workflow),
|
||||
)
|
||||
|
|
|
@ -76,7 +76,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|||
<li style="padding-top:0;"><a href="{% url "ietf.group.info.active_groups" group_type="rg" %}">Active RGs</a></li>
|
||||
<li><a href="{% url "ietf.group.info.chartering_groups" %}">Chartering</a></li>
|
||||
<li><a href="{% url "ietf.group.info.bofs" group_type="wg" %}">BoFs</a></li>
|
||||
<li><a href="http://tools.ietf.org/wg/concluded">Concluded WGs</a></li>
|
||||
<li><a href="{% url "ietf.group.info.concluded_groups" %}">Concluded</a></li>
|
||||
<li><a href="http://www.ietf.org/list/nonwg.html">Non-WG Lists</a></li>
|
||||
|
||||
|
||||
|
|
42
ietf/templates/group/concluded_groups.html
Normal file
42
ietf/templates/group/concluded_groups.html
Normal file
|
@ -0,0 +1,42 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block title %}Concluded Groups{% endblock %}
|
||||
|
||||
{% block morecss %}
|
||||
.concluded-groups .active-period { display: inline-block; margin-left: 0.5em; font-style: italic; }
|
||||
.note { font-style: italic; }
|
||||
{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<h1>Concluded Groups</h1>
|
||||
|
||||
<p>Note that the information on historical groups may be inaccurate.</p>
|
||||
|
||||
{% for t in group_types %}
|
||||
<h2>{{ t.name }}s</h2>
|
||||
|
||||
{% if t.slug == "wg" %}<p class="note">Some additional concluded WGs may
|
||||
be present at <a href="http://tools.ietf.org/wg/concluded">tools.ietf.org/wg/concluded/</a></p>{% endif %}
|
||||
|
||||
{% if not t.concluded_groups %}
|
||||
<p><b>No groups found.</b></p>
|
||||
{% else %}
|
||||
<table class="concluded-groups">
|
||||
{% for g in t.concluded_groups %}
|
||||
<tr>
|
||||
<td>
|
||||
<a href="{% url "group_charter" group_type=g.type_id acronym=g.acronym %}">{{ g.acronym }}</a>
|
||||
</td>
|
||||
<td>{{ g.name }}
|
||||
<span class="active-period">({% if g.start_date %}{{ g.start_date|date:"M. Y" }}{% else %}?{% endif %}
|
||||
-
|
||||
{% if g.conclude_date %}{{ g.conclude_date|date:"M. Y" }}{% else %}?{% endif %})</span>
|
||||
</td>
|
||||
</tr>
|
||||
{% endfor %}
|
||||
</table>
|
||||
{% endif %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% endblock %}
|
Loading…
Reference in a new issue