Skip to content

Commit b552ff3

Browse files
committed
Replace the announcement pages with a new page collecting all IESG
review decisions. Add migration to split up iesg_approve/disapprove events of the form "IESG has approved ... and state has been changed ..." into the approve/disapprove event and a synthesized state change event. Also regularize the descriptions a bit. This simplifies the code in the new page. - Legacy-Id: 6340
1 parent d9ccff1 commit b552ff3

8 files changed

Lines changed: 481 additions & 192 deletions

File tree

ietf/bin/test-crawl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ connection.queries = DontSaveQueries()
2424
MAX_URL_LENGTH = 500
2525
SLOW_THRESHOLD = 1.0
2626

27-
initial = ["/doc/all/", "/doc/in-last-call/"]
27+
initial = ["/doc/all/", "/doc/in-last-call/", "/iesg/decisions/"]
2828

2929
visited = set()
3030
urls = {} # url -> referrer

ietf/doc/migrations/0015_split_state_changing_iesg_approve_events.py

Lines changed: 435 additions & 0 deletions
Large diffs are not rendered by default.

ietf/doc/views_ballot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -693,7 +693,7 @@ def approve_ballot(request, name):
693693
e = DocEvent(doc=doc, by=login)
694694
if action == "do_not_publish":
695695
e.type = "iesg_disapproved"
696-
e.desc = "Do Not Publish note has been sent to RFC Editor"
696+
e.desc = "Do Not Publish note has been sent to the RFC Editor"
697697
else:
698698
e.type = "iesg_approved"
699699
e.desc = "IESG has approved the document"

ietf/iesg/urls.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,10 @@
3737
from ietf.iesg import views
3838

3939
urlpatterns = patterns('',
40-
(r'^telechat/.*$', 'django.views.generic.simple.redirect_to', { 'url': 'http://www.ietf.org/iesg/minutes.html' })
41-
(r'^ann/ind/$',views.inddocs),
42-
(r'^ann/(?P<cat>[^/]+)/$',views.wgdocs),
43-
(r'^agenda/$', views.agenda),
40+
(r'^telechat/.*$', 'django.views.generic.simple.redirect_to', { 'url': 'http://www.ietf.org/iesg/minutes.html' }),
41+
(r'^decisions/(?:(?P<year>[0-9]{4})/)?$', views.review_decisions),
42+
(r'^ann/(?:ind|new|prev)/$', 'django.views.generic.simple.redirect_to', { 'url': "/iesg/decisions/", 'permanent': True }),
43+
(r'^agenda/$', views.agenda),
4444
(r'^agenda/agenda.txt$', views.agenda_txt),
4545
(r'^agenda/agenda.json$', views.agenda_json),
4646
(r'^agenda/scribe_template.html$', views.agenda_scribe_template),

ietf/iesg/views.py

Lines changed: 21 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
import datetime
3737
import tarfile
3838

39-
from ietf.idtracker.models import IDInternal, InternetDraft, AreaGroup, Position, IESGLogin, Acronym
4039
from django.views.generic.list_detail import object_list
4140
from django.views.generic.simple import direct_to_template
4241
from django.views.decorators.vary import vary_on_cookie
@@ -47,91 +46,42 @@
4746
from django.conf import settings
4847
from django.utils import simplejson as json
4948
from django import forms
49+
50+
from ietf.idtracker.models import IDInternal, InternetDraft, AreaGroup, Position, IESGLogin, Acronym
51+
5052
from ietf.iesg.models import TelechatDates, TelechatAgendaItem, WGAction
5153
from ietf.idrfc.idrfc_wrapper import IdWrapper, RfcWrapper
5254
from ietf.doc.utils import update_telechat
5355
from ietf.ietfauth.decorators import group_required, role_required
5456
from ietf.ietfauth.utils import has_role
5557
from ietf.ipr.models import IprDocAlias
56-
from ietf.doc.models import Document, TelechatDocEvent, LastCallDocEvent, ConsensusDocEvent
58+
from ietf.doc.models import Document, TelechatDocEvent, LastCallDocEvent, ConsensusDocEvent, DocEvent
5759
from ietf.group.models import Group, GroupMilestone
5860

59-
def date_threshold():
60-
"""Return the first day of the month that is 185 days ago."""
61-
ret = datetime.date.today() - datetime.timedelta(days=185)
62-
ret = ret - datetime.timedelta(days=ret.day - 1)
63-
return ret
64-
65-
def inddocs(request):
66-
queryset_list_ind = [d for d in InternetDraft.objects.filter(stream__in=("IRTF","ISE"), docevent__type="iesg_approved").distinct() if d.latest_event(type__in=("iesg_disapproved", "iesg_approved")).type == "iesg_approved"]
67-
queryset_list_ind.sort(key=lambda d: d.b_approve_date, reverse=True)
61+
def review_decisions(request, year=None):
62+
events = DocEvent.objects.filter(type__in=("iesg_disapproved", "iesg_approved"))
6863

69-
queryset_list_ind_dnp = [d for d in IDInternal.objects.filter(stream__in=("IRTF","ISE"), docevent__type="iesg_disapproved").distinct() if d.latest_event(type__in=("iesg_disapproved", "iesg_approved")).type == "iesg_disapproved"]
70-
queryset_list_ind_dnp.sort(key=lambda d: d.dnp_date, reverse=True)
64+
years = sorted((d.year for d in events.dates('time', 'year')), reverse=True)
7165

72-
return render_to_response('iesg/independent_doc.html',
73-
dict(object_list=queryset_list_ind,
74-
object_list_dnp=queryset_list_ind_dnp),
75-
context_instance=RequestContext(request))
76-
77-
78-
def wgdocs(request,cat):
79-
pass
80-
81-
def wgdocsREDESIGN(request,cat):
82-
is_recent = 0
83-
proto_actions = []
84-
doc_actions = []
85-
threshold = date_threshold()
86-
87-
proto_levels = ["bcp", "ds", "ps", "std"]
88-
doc_levels = ["exp", "inf"]
89-
90-
if cat == 'new':
91-
is_recent = 1
92-
93-
drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__gte=threshold, intended_std_level__in=proto_levels + doc_levels).exclude(stream__in=("ISE","IRTF")).distinct()
94-
for d in drafts:
95-
if d.b_approve_date and d.b_approve_date >= threshold:
96-
if d.intended_std_level_id in proto_levels:
97-
proto_actions.append(d)
98-
elif d.intended_std_level_id in doc_levels:
99-
doc_actions.append(d)
100-
101-
elif cat == 'prev':
102-
# proto
103-
start_date = datetime.date(1997, 12, 1)
104-
105-
drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__lt=threshold, docevent__time__gte=start_date, intended_std_level__in=proto_levels).exclude(stream__in=("ISE","IRTF")).distinct()
66+
if year:
67+
year = int(year)
68+
events = events.filter(time__year=year)
69+
else:
70+
d = datetime.date.today() - datetime.timedelta(days=185)
71+
d = datetime.date(d.year, d.month, 1)
72+
events = events.filter(time__gte=d)
10673

107-
for d in drafts:
108-
if d.b_approve_date and start_date <= d.b_approve_date < threshold:
109-
proto_actions.append(d)
74+
events = events.select_related("doc", "doc__intended_std_level").order_by("-time", "-id")
11075

111-
# doc
112-
start_date = datetime.date(1998, 10, 15)
113-
114-
drafts = InternetDraft.objects.filter(docevent__type="iesg_approved", docevent__time__lt=threshold, docevent__time__gte=start_date, intended_std_level__in=doc_levels).exclude(stream__in=("ISE","IRTF")).distinct()
76+
#proto_levels = ["bcp", "ds", "ps", "std"]
77+
#doc_levels = ["exp", "inf"]
11578

116-
for d in drafts:
117-
if d.b_approve_date and start_date <= d.b_approve_date < threshold:
118-
doc_actions.append(d)
119-
else:
120-
raise Http404
121-
122-
proto_actions.sort(key=lambda d: d.b_approve_date, reverse=True)
123-
doc_actions.sort(key=lambda d: d.b_approve_date, reverse=True)
124-
125-
return render_to_response('iesg/ietf_doc.html',
126-
dict(object_list=proto_actions,
127-
object_list_doc=doc_actions,
128-
is_recent=is_recent,
129-
title_prefix="Recent" if is_recent else "Previous"),
79+
return render_to_response('iesg/review_decisions.html',
80+
dict(events=events,
81+
years=years,
82+
year=year),
13083
context_instance=RequestContext(request))
13184

132-
if settings.USE_DB_REDESIGN_PROXY_CLASSES:
133-
wgdocs = wgdocsREDESIGN
134-
13585

13686
def get_doc_section(id):
13787
pass

ietf/templates/iesg/ietf_doc.html

Lines changed: 0 additions & 71 deletions
This file was deleted.

ietf/templates/iesg/independent_doc.html

Lines changed: 0 additions & 44 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{% extends "base.html" %}
2+
3+
{% block title %}IESG Review Decisions{% endblock %}
4+
5+
{% block content %}
6+
<h1>IESG Review Decisions</h1>
7+
8+
<p>Showing review decisions announced in {% if year %}{{ year }}{% else %}the past 6 months{% endif %}.</p>
9+
10+
<p>Announcements in:
11+
{% for y in years %}<a {% if y != year %}href="{% url ietf.iesg.views.review_decisions year=y %}"{% endif %}>{{ y }}</a>{% if not forloop.last %}, {% endif %}{% endfor %}
12+
</p>
13+
14+
{% for e in events %}
15+
{% ifchanged %}<h3>{{ e.time|date:"F j, Y" }}</h3>{% endifchanged %}
16+
<div>{{ e.desc }} <a href="{{ e.doc.get_absolute_url }}">{{ e.doc.name }}</a> {% if e.doc.intended_std_level %}({{ e.doc.intended_std_level }}){% endif %} - {{ e.doc.title }}</div>
17+
{% endfor %}
18+
19+
{% endblock %}

0 commit comments

Comments
 (0)