First try at /wg/acronym/ pages; updated /wg/ list

- Legacy-Id: 2009
This commit is contained in:
Pasi Eronen 2010-02-23 13:31:52 +00:00
parent 0cd1d1d0c0
commit 611e94a9d9
7 changed files with 334 additions and 47 deletions

View file

@ -1,78 +1,50 @@
{% extends "base.html" %}
{% extends "idrfc/base.html" %}
{# Copyright The IETF Trust 2009, All Rights Reserved #}
{% block title %} Active IETF Working Groups {% endblock %}
{% block content %}
<hr/>
<h1>Active IETF Working Groups</h1>
<hr/>
<p>
Old WG pages can be found in
the <a href="http://www.ietf.org/wg/concluded/index.html">Concluded
Working Groups</a>.
<p>See also: <a href="http://www.ietf.org/wg/concluded/index.html">Concluded
Working Groups</a> and <a href="http://www.ietf.org/dyn/wg/charter/history/">Historic Charters</a>.
</p>
<p>
Archived WG Charters can be found in
the <a href="http://www.ietf.org/dyn/wg/charter/history/">Historic
Charters page</a>.
</p>
<hr/>
<h2>Table of Contents</h2>
<ul>
{% regroup wg_list|dictsort:"area.area.area_acronym.acronym" by area.area as wga_list %}
{% for area in wga_list %}
{% for wg in area.list|dictsort:"group_acronym.acronym" %}
{% ifequal wg.area.area.status_id 1 %}
{% if forloop.first %}
<li><a href="#{{ wg.area_acronym.name|cut:" " }}">{{ wg.area_acronym.name }}</a></li>
{% endif %}
{% endifequal %}
{% endfor %}
{% endfor %}
</ul>
{% for area in wga_list %}
{% for wg in area.list|dictsort:"group_acronym.acronym" %}
{% ifequal wg.area.area.status_id 1 %}
{% if forloop.first %}
<hr/>
<a name="{{ wg.area_acronym.name|cut:" " }}"></a>
<h2>{{ wg.area_acronym.name }}</h2>
<h2 style="background:#2647a0;color:white;padding:0.5em 1em;font-size:116%">{{ wg.area_acronym.name }}</h2>
{% for ad in wg.area_directors %}
{% if forloop.first %}
<p>Area Director{{ forloop.revcounter|pluralize }}:</p>
<ul>
<p style="margin-left: 2em">
{% endif %}
<li><a href="mailto:{{ ad.person.email.1|escape }}">{{ ad.person }} &lt;{{ ad.person.email.1 }}&gt;</a></li>
{% endfor %}
</ul>
{% for url in wg.area.area.urls.all %}
{% if forloop.first %}
<p>Additional Area Information:</p>
<ul>
{% endif %}
<li><a href="{{url.url}}">{{url.url_label}}</a></li>
<a href="mailto:{{ ad.person.email.1 }}">{{ ad.person }} &lt;{{ ad.person.email.1 }}&gt;</a>{% if not forloop.last %}<br/>{% endif %}
{% if forloop.last %}
</ul>
</p>
{% endif %}
{% endfor %}
<p>Working Groups:</p>
<table>
<colgroup align="center">
<col width="10%"/>
<col width="10%"/>
<col width="80%"/>
</colgroup>
<p>Active Working Groups:</p>
<div style="margin-left:2em;">
<table width="100%" style="max-width:50em;">
{% endif %}
{% if wg.start_date %}
<tr><td></td><td><a href="http://www.ietf.org/dyn/wg/charter/{{ wg|escape }}-charter.html">{{ wg|escape }}</a></td><td>{{ wg.group_acronym.name|escape }}</td></tr>
<tr valign="top"><td width="10%;"><a href="/wg/{{wg}}/">{{ wg }}</a></td><td width="50%">{{ wg.group_acronym.name }}</td>
<td width="39%">{% for chair in wg.chairs %}<a href="mailto:{{chair.person.email}}">{{chair.person}}</a>{% if not forloop.last %}, {% endif %}{% endfor %}</td></tr>
{% endif %}
{% if forloop.last %}
</table>
</div>
{% endif %}
{% endifequal %}
{% endfor %}
{% endfor %}
{% endblock %}

View file

@ -0,0 +1,62 @@
{% extends "idrfc/base.html" %}
{% comment %}
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the Nokia Corporation and/or its
subsidiary(-ies) nor the names of its contributors may be used
to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{% endcomment %}
{% load ietf_filters %}
{% block title %}{{wg.group_acronym.name}} ({{wg.group_acronym.acronym}}) - {% block wg_titledetail %}{% endblock %}{% endblock %}
{% block morecss %}
.ietf-navset {
background:#214197 url(/images/yui/sprite.png) repeat-x left -1400px;
color:white;
border:1px solid black;
padding:4px;
}
.ietf-navset .selected { font-weight:bold; padding: 0 3px; }
.ietf-navset a, .ietf-navset a:visited { color: white; padding:0 3px; }
{% endblock morecss %}
{% block content %}
<h1>{{wg.group_acronym.name}} ({{wg.group_acronym.acronym}})</h1>
<div class="ietf-navset">
{% ifequal selected "documents" %}<span class="selected">Documents</span>{% else %}<a href="/wg/{{wg}}/">Documents</a>{% endifequal %} |
{% ifequal selected "charter" %}<span class="selected">Charter</span>{% else %}<a href="/wg/{{wg}}/charter/">Charter</a>{% endifequal %} |
<a href="{{ wg.email_archive }}">List Archive</a> |
<a href="http://tools.ietf.org/wg/{{wg}}/">Tools WG Page</a>
</div>
{% block wg_content %}
{% endblock wg_content %}
{% endblock content %}

View file

@ -0,0 +1,141 @@
{% extends "wginfo/wg_base.html" %}
{% comment %}
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the Nokia Corporation and/or its
subsidiary(-ies) nor the names of its contributors may be used
to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{% endcomment %}
{% load ietf_filters %}
{% block wg_titledetail %}Charter{% endblock %}
{% block wg_content %}
<div style="background:#edf5ff;border:1px solid #cccccc;float:right;padding: 4px;margin-top:16px;">
<table>
<tr>
<td colspan="2">
<b>Personnel</b>
</td>
</tr>
<tr valign="top">
<td style="width:14ex;">Chair{{ wg.chairs.count|pluralize:",s" }}:</td>
<td>
{% for chair in wg.chairs %}
<a href="mailto:{{ chair.person.email.1 }}">{{ chair.person|escape }} &lt;{{ chair.person.email.1 }}&gt;</a><br/>
{% endfor %}
</td></tr>
<tr><td>Area Director:</td>
<td>
{% ifequal wg.area_director.person.email.1 "noreply@ietf.org" %}?{%else%}
<a href="mailto:{{ wg.area_director.person.email.1 }}">{{ wg.area_director.person }} &lt;{{wg.area_director.person.email.1 }}&gt;</a>{% endifequal %}
</td>
</tr>
{% if wg.wgtechadvisor_set.count %}
<tr>
<td>Tech Advisor{{ wg.wgtechadvisor_set.count|pluralize:",s" }}:</td>
<td>
{% for techadvisor in wg.wgtechadvisor_set.all %}
<a href="mailto:{{ techadvisor.person.email.1 }}">{{ techadvisor.person }} &lt;{{ techadvisor.person.email.1 }}&gt;</a><br/>
{% endfor %}
</td></tr>
{% endif %}
{% if wg.wgeditor_set.count %}
<td>Editor{{ wg.wgeditor_set.count|pluralize:",s" }}:</td>
<td>
{% for editor in wg.wgeditor_set.all %}
<a href="mailto:{{ editor.person.email.1 }}">{{ editor.person }} &lt;{{ editor.person.email.1 }}&gt;</a><br/>
{% endfor %}
</td></tr>
{% endif %}
{% if wg.secretaries %}
<tr><td>Secretar{{ wg.secretaries.count|pluralize:"y,ies" }}:</td>
<td>
{% for secretary in wg.secretaries %}
<a href="mailto:{{ secretary.person.email.1 }}">{{ secretary.person }} &lt;{{ secretary.person.email.1 }}&gt;</a><br/>
{% endfor %}
</td></tr>
{% endif %}
<tr>
<td colspan="2">
<br/><b>Mailing List</b>
</td>
</tr>
<tr><td>Address:</td><td><a href="mailto:{{ wg.email_address }}">{{ wg.email_address }}</a></td></tr>
<tr><td>To Subscribe:</td><td<a href="{{ wg.email_subscribe }}">{{ wg.email_subscribe }}</a></td></tr>
<tr><td>Archive:</td><td><a href="{{ wg.email_archive }}">{{ wg.email_archive }}</a></td></tr>
<tr>
<td colspan="2">
<br/><b>Jabber Chat</b>
</td>
</tr>
<tr><td>Room Address:</td><td><a href="xmpp:{{wg}}@jabber.ietf.org">xmpp:{{wg}}@jabber.ietf.org</a></td></tr>
<tr><td>Logs:</td><td><a href="http://jabber.ietf.org/logs/{{wg}}/">http://jabber.ietf.org/logs/{{wg}}/</td></tr>
</table>
</div>
<h2>Description of Working Group</h2>
<p>{{ wg.charter_text|escape|format_charter|safe }}</p>
<h2>Goals and Milestones</h2>
<table>
{% for milestone in wg.milestones %}
<tr>
<td width="80px">
{% ifequal milestone.done 'Done' %} Done
{% else %}
{%ifequal milestone.expected_due_date.month 1 %}Jan{% endifequal %}
{%ifequal milestone.expected_due_date.month 2 %}Feb{% endifequal %}
{%ifequal milestone.expected_due_date.month 3 %}Mar{% endifequal %}
{%ifequal milestone.expected_due_date.month 4 %}Apr{% endifequal %}
{%ifequal milestone.expected_due_date.month 5 %}May{% endifequal %}
{%ifequal milestone.expected_due_date.month 6 %}Jun{% endifequal %}
{%ifequal milestone.expected_due_date.month 7 %}Jul{% endifequal %}
{%ifequal milestone.expected_due_date.month 8 %}Aug{% endifequal %}
{%ifequal milestone.expected_due_date.month 9 %}Sep{% endifequal %}
{%ifequal milestone.expected_due_date.month 10 %}Oct{% endifequal %}
{%ifequal milestone.expected_due_date.month 11 %}Nov{% endifequal %}
{%ifequal milestone.expected_due_date.month 12 %}Dec{% endifequal %}
{{ milestone.expected_due_date.year }}
{% endifequal %}
</td>
<td>{{ milestone.description|escape }}
</td></tr>
{% endfor %}
</table>
{% endblock wg_content %}

View file

@ -0,0 +1,54 @@
{% extends "wginfo/wg_base.html" %}
{% comment %}
Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials provided
with the distribution.
* Neither the name of the Nokia Corporation and/or its
subsidiary(-ies) nor the names of its contributors may be used
to endorse or promote products derived from this software
without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{% endcomment %}
{% block wg_titledetail %}Documents{% endblock %}
{% block wg_content %}
{% regroup docs by view_sort_group as grouped_docs %}
<table class="ietf-table ietf-doctable" style="margin-top:16px;">
<tr><th class="doc">Document</th><th class="title">Title</th><th class="date">Date</th><th class="status" colspan="2">Status</th><th class="ad">Area Director</th></tr>
{% for doc_group in grouped_docs %}
<tr class="header"><td colspan="6">{{doc_group.grouper}}s</td></tr>
{% for doc in doc_group.list %}
{% include "idrfc/search_result_row.html" %}
{% endfor %}
{% endfor %}
</table>
{% endblock wg_content %}

View file

@ -1,4 +1,11 @@
200 /wg/
404 /wg/nosuchgroup/
200 /wg/tls/
200 /wg/tls/charter/
200 /wg/mobike/ # concluded
200 /wg/mobike/charter/
200 /wg/catnip/ # concluded very long time ago
200 /wg/catnip/charter/ # concluded very long time ago
200 /wg/summary.txt
200 /wg/1wg-summary.txt
200 /wg/summary-by-area.txt

View file

@ -13,4 +13,6 @@ urlpatterns = patterns('',
(r'^(?P<wg>.*)-charter.txt', views.wg_charter_txt),
(r'^1wg-charters.txt', views.wg_charters),
(r'^1wg-charters-by-acronym.txt', views.wg_charters_by_acronym),
(r'^(?P<acronym>[^/]+)/$', views.wg_documents),
(r'^(?P<acronym>[^/]+)/charter/$', views.wg_charter2),
)

View file

@ -1,5 +1,37 @@
# Copyright The IETF Trust 2008, All Rights Reserved
# Portion Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# * Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials provided
# with the distribution.
#
# * Neither the name of the Nokia Corporation and/or its
# subsidiary(-ies) nor the names of its contributors may be used
# to endorse or promote products derived from this software
# without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
from ietf.idtracker.models import Area, IETFWG
from django.shortcuts import get_object_or_404, render_to_response
from django.template import RequestContext, loader
@ -41,3 +73,20 @@ def wg_charters_by_acronym(request):
wgs = IETFWG.objects.filter(status='1',start_date__isnull=False)
return HttpResponse(loader.render_to_string('wginfo/1wg-charters-by-acronym.txt', {'wg_list': wgs}),mimetype='text/plain; charset=UTF-8')
from ietf.idrfc.views_search import SearchForm, search_query
def wg_documents(request, acronym):
wg = get_object_or_404(IETFWG, group_acronym__acronym=acronym)
form = SearchForm(request.REQUEST)
if form.is_valid():
pass
form.cleaned_data['group'] = str(wg.group_acronym.acronym)
form.cleaned_data['activeDrafts'] = True
form.cleaned_data['rfcs'] = True
#form.cleaned_data['oldDrafts'] = True
(docs,meta) = search_query(form.cleaned_data)
return render_to_response('wginfo/wg_documents.html', {'wg': wg, 'selected':'documents', 'docs':docs, 'meta':meta}, RequestContext(request))
def wg_charter2(request, acronym):
wg = get_object_or_404(IETFWG, group_acronym__acronym=acronym)
return render_to_response('wginfo/wg_charter.html', {'wg': wg, 'selected':'charter'}, RequestContext(request))