Refactor IESG agenda pages, put the agenda structure in a helper function in agenda.py, build the agenda up around this structure, and reuse this everywhere instead of duplicating the structure in various templates and the JSON view - this also fixes a couple of minor bugs where the copy-pasted copies were not entirely in sync

- Legacy-Id: 6454
This commit is contained in:
Ole Laursen 2013-10-16 13:07:09 +00:00
parent de2ed527b4
commit 10dceef26d
29 changed files with 836 additions and 1669 deletions

View file

@ -476,6 +476,10 @@ def statehelp(state):
url = urlreverse("state_help", kwargs=dict(type=state.type_id)) + "#" + state.slug
return mark_safe('<a class="state-help-icon" href="%s" title="%s">?</a>' % (url, tooltip))
@register.filter
def sectionlevel(section_number):
return section_number.count(".") + 1
def _test():
import doctest
doctest.testmod()

View file

@ -2,6 +2,9 @@
import codecs, re, os, datetime
# FIXME: once we're on Python 2.7, replace with: from collections import OrderedDict
from django.utils.datastructures import SortedDict as OrderedDict
from django.http import Http404
from django.conf import settings
@ -17,7 +20,8 @@ def get_agenda_date(date=None):
return datetime.date.today()
else:
try:
return TelechatDate.objects.active().get(date=datetime.datetime.strptime(date, "%Y-%m-%d").date()).date
# FIXME: .active()
return TelechatDate.objects.all().get(date=datetime.datetime.strptime(date, "%Y-%m-%d").date()).date
except (ValueError, TelechatDate.DoesNotExist):
raise Http404
@ -30,66 +34,125 @@ def get_doc_section(doc):
g = doc.group_acronym()
if g and str(g) != 'none':
s = s + "1"
elif (s == "3") and doc.stream_id in ("ise","irtf"):
s = s + "3"
s += ".1"
elif s == "3" and doc.stream_id in ("ise","irtf"):
s += ".3"
else:
s = s + "2"
s += ".2"
if doc.get_state_slug() != "rfc" and doc.get_state_slug('draft-iesg') not in ("lc", "writeupw", "goaheadw", "iesg-eva", "defer"):
s = s + "3"
s += ".3"
elif doc.returning_item():
s = s + "2"
s += ".2"
else:
s = s + "1"
s += ".1"
elif doc.type_id == 'charter':
s = get_wg_section(doc.group)
s = "4"
if doc.group.state_id in ('active', 'dormant'):
s += ".2"
else:
s += ".1"
if doc.get_state_slug() in ('extrev', 'iesgrev'):
s += '.2'
else:
s += '.1'
elif doc.type_id == 'statchg':
protocol_action = False
for relation in doc.relateddocument_set.filter(relationship__slug__in=('tops','tois','tohist','toinf','tobcp','toexp')):
if relation.relationship.slug in ('tops','tois') or relation.target.document.std_level.slug in ('std','ds','ps'):
protocol_action = True
if protocol_action:
s="23"
s = "2.3"
else:
s="33"
s = "3.3"
if doc.get_state_slug() not in ("iesgeval", "defer", "appr-pr", "appr-pend", "appr-sent"):
s = s + "3"
s += ".3"
elif doc.returning_item():
s = s + "2"
s += ".2"
else:
s = s + "1"
s += ".1"
elif doc.type_id == 'conflrev':
if doc.get_state('conflrev').slug not in ('adrev','iesgeval','appr-reqnopub-pend','appr-reqnopub-sent','appr-noprob-pend','appr-noprob-sent','defer'):
s = "343"
s = "3.4.3"
elif doc.returning_item():
s = "342"
s = "3.4.2"
else:
s = "341"
s = "3.4.1"
return s
def get_wg_section(wg):
s = ""
charter_slug = None
if wg.charter:
charter_slug = wg.charter.get_state_slug()
if wg.state_id in ['active','dormant']:
if charter_slug in ['extrev','iesgrev']:
s = '422'
else:
s = '421'
else:
if charter_slug in ['extrev','iesgrev']:
s = '412'
else:
s = '411'
return s
def agenda_sections():
return OrderedDict([
('1', {'title':"Administrivia"}),
('1.1', {'title':"Roll Call"}),
('1.2', {'title':"Bash the Agenda"}),
('1.3', {'title':"Approval of the Minutes of Past Telechats"}),
('1.4', {'title':"List of Remaining Action Items from Last Telechat"}),
('2', {'title':"Protocol Actions"}),
('2.1', {'title':"WG Submissions"}),
('2.1.1', {'title':"New Items", 'docs': []}),
('2.1.2', {'title':"Returning Items", 'docs':[]}),
('2.1.3', {'title':"For Action", 'docs':[]}),
('2.2', {'title':"Individual Submissions"}),
('2.2.1', {'title':"New Items", 'docs':[]}),
('2.2.2', {'title':"Returning Items", 'docs':[]}),
('2.2.3', {'title':"For Action", 'docs':[]}),
('2.3', {'title':"Status Changes"}),
('2.3.1', {'title':"New Items", 'docs':[]}),
('2.3.2', {'title':"Returning Items", 'docs':[]}),
('2.3.3', {'title':"For Action", 'docs':[]}),
('3', {'title':"Document Actions"}),
('3.1', {'title':"WG Submissions"}),
('3.1.1', {'title':"New Items", 'docs':[]}),
('3.1.2', {'title':"Returning Items", 'docs':[]}),
('3.1.3', {'title':"For Action", 'docs':[]}),
('3.2', {'title':"Individual Submissions Via AD"}),
('3.2.1', {'title':"New Items", 'docs':[]}),
('3.2.2', {'title':"Returning Items", 'docs':[]}),
('3.2.3', {'title':"For Action", 'docs':[]}),
('3.3', {'title':"Status Changes"}),
('3.3.1', {'title':"New Items", 'docs':[]}),
('3.3.2', {'title':"Returning Items", 'docs':[]}),
('3.3.3', {'title':"For Action", 'docs':[]}),
('3.4', {'title':"IRTF and Independent Submission Stream Documents"}),
('3.4.1', {'title':"New Items", 'docs':[]}),
('3.4.2', {'title':"Returning Items", 'docs':[]}),
('3.4.3', {'title':"For Action", 'docs':[]}),
('4', {'title':"Working Group Actions"}),
('4.1', {'title':"WG Creation"}),
('4.1.1', {'title':"Proposed for IETF Review", 'docs':[]}),
('4.1.2', {'title':"Proposed for Approval", 'docs':[]}),
('4.2', {'title':"WG Rechartering"}),
('4.2.1', {'title':"Under Evaluation for IETF Review", 'docs':[]}),
('4.2.2', {'title':"Proposed for Approval", 'docs':[]}),
('5', {'title':"IAB News We Can Use"}),
('6', {'title':"Management Issues"}),
('7', {'title':"Working Group News"}),
])
def agenda_docs(date):
matches = Document.objects.filter(docevent__telechatdocevent__telechat_date=date).select_related("stream").distinct()
def fill_in_agenda_administrivia(date, sections):
extra_info_files = (
("1.1", "roll_call", settings.IESG_ROLL_CALL_FILE),
("1.3", "minutes", settings.IESG_MINUTES_FILE),
("1.4", "action_items", settings.IESG_TASK_FILE),
)
docmatches = []
for s, key, filename in extra_info_files:
try:
with codecs.open(filename, 'r', 'utf-8', 'replace') as f:
t = f.read().strip()
except IOError:
t = u"(Error reading %s)" % filename
sections[s]["text"] = t
def fill_in_agenda_docs(date, sections, matches=None):
if not matches:
matches = Document.objects.filter(docevent__telechatdocevent__telechat_date=date)
matches = matches.select_related("stream", "group").distinct()
docs = []
for doc in matches:
if doc.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date != date:
continue
@ -112,59 +175,42 @@ def agenda_docs(date):
e = doc.latest_event(ConsensusDocEvent, type="changed_consensus")
if e:
doc.consensus = "Yes" if e.consensus else "No"
elif doc.type_id=='conflrev':
elif doc.type_id == "conflrev":
doc.conflictdoc = doc.relateddocument_set.get(relationship__slug='conflrev').target.document
elif doc.type_id == "charter":
#if doc.group.state_id not in ("proposed", "active"):
# continue
docmatches.append(doc)
doc.group.txt_link = settings.CHARTER_TXT_URL + "%s-%s.txt" % (doc.canonical_name(), doc.rev)
num = get_doc_section(doc)
if num: # and num in sections
sections[num]["docs"].append(doc)
# prune empty "For action" sections
empty_for_action = [num for num, section in sections.iteritems()
if section["title"] == "For Action" and not section["docs"]]
for num in empty_for_action:
del sections[num]
# Be careful to keep this the same as what's used in agenda_documents
docmatches.sort(key=lambda d: d.balloting_started)
res = dict(("s%s%s%s" % (i, j, k), []) for i in range(2, 5) for j in range (1, 4) for k in range(1, 4))
for k in range(1,4):
res['s34%d'%k]=[]
for doc in docmatches:
section_key = "s" + get_doc_section(doc)
if section_key not in res:
res[section_key] = []
res[section_key].append(doc)
return res
for s in sections.itervalues():
if "docs" in s:
s["docs"].sort(key=lambda d: d.balloting_started)
def agenda_wg_actions(date):
res = dict(("s%s%s%s" % (i, j, k), []) for i in range(2, 5) for j in range (1, 4) for k in range(1, 4))
charters = Document.objects.filter(type="charter", docevent__telechatdocevent__telechat_date=date).select_related("group").distinct()
charters = charters.filter(group__state__slug__in=["proposed","active"])
for c in charters:
if c.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date != date:
continue
c.group.txt_link = settings.CHARTER_TXT_URL + "%s-%s.txt" % (c.canonical_name(), c.rev)
section_key = "s" + get_wg_section(c.group)
if section_key not in res:
res[section_key] = []
res[section_key].append(c)
return res
def agenda_management_issues(date):
return TelechatAgendaItem.objects.filter(type=3).order_by('id')
def fill_in_agenda_management_issues(date, sections):
s = "6.%s"
for i, item in enumerate(TelechatAgendaItem.objects.filter(type=3).order_by('id'), start=1):
sections[s % i] = { "title": item.title, "text": item.text }
def agenda_data(request, date=None):
"""Return a dict with the different IESG telechat agenda components."""
date = get_agenda_date(date)
docs = agenda_docs(date)
mgmt = agenda_management_issues(date)
wgs = agenda_wg_actions(date)
data = {'date':str(date), 'docs':docs,'mgmt':mgmt,'wgs':wgs}
for key, filename in {'action_items':settings.IESG_TASK_FILE,
'roll_call':settings.IESG_ROLL_CALL_FILE,
'minutes':settings.IESG_MINUTES_FILE}.items():
try:
f = codecs.open(filename, 'r', 'utf-8', 'replace')
text = f.read().strip()
f.close()
data[key] = text
except IOError:
data[key] = "(Error reading "+key+")"
return data
sections = agenda_sections()
fill_in_agenda_administrivia(date, sections)
fill_in_agenda_docs(date, sections)
fill_in_agenda_management_issues(date, sections)
return { 'date': date.isoformat(), 'sections': sections }

View file

@ -229,10 +229,12 @@ class RescheduleOnAgendaTests(django.test.TestCase):
r = self.client.post(url, { '%s-telechat_date' % form_id: d.isoformat(),
'%s-clear_returning_item' % form_id: "1" })
self.assertEquals(r.status_code, 200)
self.assertEquals(r.status_code, 302)
# check that it moved below the right header in the DOM on the
# agenda docs page
r = self.client.get(url)
self.assertEquals(r.status_code, 200)
d_header_pos = r.content.find("IESG telechat %s" % d.isoformat())
draft_pos = r.content.find(draft.name)
self.assertTrue(d_header_pos < draft_pos)

View file

@ -32,15 +32,15 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
import codecs, re, os, glob
import datetime
import codecs, re, os, glob, datetime
import tarfile, StringIO, time
import itertools
from django.views.generic.simple import direct_to_template
from django.core.urlresolvers import reverse as urlreverse
from django.http import Http404, HttpResponse, HttpResponseForbidden, HttpResponseRedirect
from django.template import RequestContext, Context, loader
from django.shortcuts import render_to_response, get_object_or_404
from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.conf import settings
from django.utils import simplejson as json
from django.db import models
@ -84,166 +84,185 @@ def review_decisions(request, year=None):
context_instance=RequestContext(request))
def agenda_json(request, date=None):
date = get_agenda_date(date)
data = agenda_data(request, date)
data = {'telechat-date':str(date),
'as-of':str(datetime.datetime.utcnow()),
'sections':{}}
data['sections']['1'] = {'title':"Administrivia"}
data['sections']['1.1'] = {'title':"Roll Call"}
data['sections']['1.2'] = {'title':"Bash the Agenda"}
data['sections']['1.3'] = {'title':"Approval of the Minutes of Past Telechats"}
data['sections']['1.4'] = {'title':"List of Remaining Action Items from Last Telechat"}
data['sections']['2'] = {'title':"Protocol Actions"}
data['sections']['2.1'] = {'title':"WG Submissions"}
data['sections']['2.1.1'] = {'title':"New Items", 'docs':[]}
data['sections']['2.1.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['2.2'] = {'title':"Individual Submissions"}
data['sections']['2.2.1'] = {'title':"New Items", 'docs':[]}
data['sections']['2.2.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['2.3'] = {'title':"Individual Submissions"}
data['sections']['2.3.1'] = {'title':"New Items", 'docs':[]}
data['sections']['2.3.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['3'] = {'title':"Document Actions"}
data['sections']['3.1'] = {'title':"WG Submissions"}
data['sections']['3.1.1'] = {'title':"New Items", 'docs':[]}
data['sections']['3.1.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['3.2'] = {'title':"Individual Submissions Via AD"}
data['sections']['3.2.1'] = {'title':"New Items", 'docs':[]}
data['sections']['3.2.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['3.3'] = {'title':"Status Changes"}
data['sections']['3.3.1'] = {'title':"New Items", 'docs':[]}
data['sections']['3.3.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['3.4'] = {'title':"IRTF and Independent Submission Stream Documents"}
data['sections']['3.4.1'] = {'title':"New Items", 'docs':[]}
data['sections']['3.4.2'] = {'title':"Returning Items", 'docs':[]}
data['sections']['4'] = {'title':"Working Group Actions"}
data['sections']['4.1'] = {'title':"WG Creation"}
data['sections']['4.1.1'] = {'title':"Proposed for IETF Review", 'wgs':[]}
data['sections']['4.1.2'] = {'title':"Proposed for Approval", 'wgs':[]}
data['sections']['4.2'] = {'title':"WG Rechartering"}
data['sections']['4.2.1'] = {'title':"Under Evaluation for IETF Review", 'wgs':[]}
data['sections']['4.2.2'] = {'title':"Proposed for Approval", 'wgs':[]}
data['sections']['5'] = {'title':"IAB News We Can Use"}
data['sections']['6'] = {'title':"Management Issues"}
data['sections']['7'] = {'title':"Working Group News"}
res = {
"telechat-date": str(data["date"]),
"as-of": str(datetime.datetime.utcnow()),
"sections": {},
}
docs = agenda_docs(date)
for section in docs.keys():
# in case the document is in a state that does not have an agenda section
if section == 's':
for num, section in data["sections"].iteritems():
s = res["sections"][num] = {
"title": section["title"],
}
if "docs" not in section:
continue
s = str(".".join(list(section)[1:]))
if s[0:1] == '4':
# ignore these; not sure why they are included by agenda_docs
continue
docs = section["docs"]
if not docs[section]:
continue
if "4" <= num < "5":
# charters
s["wgs"] = []
# If needed, add a "For Action" section to agenda
if s[4:5] == '3':
data['sections'][s] = {'title':"For Action", 'docs':[]}
for doc in docs:
wginfo = {
'docname': doc.canonical_name(),
'rev': doc.rev,
'wgname': doc.group.name,
'acronym': doc.group.acronym,
'ad': doc.group.ad.name if doc.group.ad else None,
}
for d in docs[section]:
docinfo = {'docname':d.canonical_name(),
'title':d.title,
'ad':d.ad.name if d.ad else None }
if d.note:
docinfo['note'] = d.note
defer = d.active_defer_event()
if defer:
docinfo['defer-by'] = defer.by.name
docinfo['defer-at'] = str(defer.time)
if d.type_id == "draft":
docinfo['rev'] = d.rev
docinfo['intended-std-level'] = str(d.intended_std_level)
if d.rfc_number():
docinfo['rfc-number'] = d.rfc_number()
# consider moving the charters to "docs" like the other documents
s['wgs'].append(wginfo)
else:
# other documents
s["docs"] = []
iana_state = d.get_state("draft-iana-review")
if iana_state and iana_state.slug in ("not-ok", "changed", "need-rev"):
docinfo['iana-review-state'] = str(iana_state)
for doc in docs:
docinfo = {
'docname':doc.canonical_name(),
'title':doc.title,
'ad':doc.ad.name if doc.ad else None,
}
if d.get_state_slug("draft-iesg") == "lc":
e = d.latest_event(LastCallDocEvent, type="sent_last_call")
if doc.note:
docinfo['note'] = doc.note
defer = doc.active_defer_event()
if defer:
docinfo['defer-by'] = defer.by.name
docinfo['defer-at'] = str(defer.time)
if doc.type_id == "draft":
docinfo['rev'] = doc.rev
docinfo['intended-std-level'] = str(doc.intended_std_level)
if doc.rfc_number():
docinfo['rfc-number'] = doc.rfc_number()
iana_state = doc.get_state("draft-iana-review")
if iana_state and iana_state.slug in ("not-ok", "changed", "need-rev"):
docinfo['iana-review-state'] = str(iana_state)
if doc.get_state_slug("draft-iesg") == "lc":
e = doc.latest_event(LastCallDocEvent, type="sent_last_call")
if e:
docinfo['lastcall-expires'] = e.expires.strftime("%Y-%m-%d")
docinfo['consensus'] = None
e = doc.latest_event(ConsensusDocEvent, type="changed_consensus")
if e:
docinfo['lastcall-expires'] = e.expires.strftime("%Y-%m-%d")
docinfo['consensus'] = e.consensus
elif doc.type_id == 'conflrev':
docinfo['rev'] = doc.rev
td = doc.relateddocument_set.get(relationship__slug='conflrev').target.document
docinfo['target-docname'] = td.canonical_name()
docinfo['target-title'] = td.title
docinfo['target-rev'] = td.rev
docinfo['intended-std-level'] = str(td.intended_std_level)
docinfo['stream'] = str(td.stream)
else:
# XXX check this -- is there nothing to set for
# all other documents here?
pass
docinfo['consensus'] = None
e = d.latest_event(ConsensusDocEvent, type="changed_consensus")
if e:
docinfo['consensus'] = e.consensus
elif d.type_id == 'conflrev':
docinfo['rev'] = d.rev
td = d.relateddocument_set.get(relationship__slug='conflrev').target.document
docinfo['target-docname'] = td.canonical_name()
docinfo['target-title'] = td.title
docinfo['target-rev'] = td.rev
docinfo['intended-std-level'] = str(td.intended_std_level)
docinfo['stream'] = str(td.stream)
else:
# XXX check this -- is there nothing to set for
# all other documents here?
pass
data['sections'][s]['docs'] += [docinfo, ]
s["docs"].append(docinfo)
wgs = agenda_wg_actions(date)
for section in wgs.keys():
# in case the charter is in a state that does not have an agenda section
if section == 's':
continue
s = str(".".join(list(section)[1:]))
if s[0:1] != '4':
# ignore these; not sure why they are included by agenda_wg_actions
continue
if not wgs[section]:
continue
for doc in wgs[section]:
wginfo = {'docname': doc.canonical_name(),
'rev': doc.rev,
'wgname': doc.group.name,
'acronym': doc.group.acronym,
'ad': doc.group.ad.name if doc.group.ad else None}
data['sections'][s]['wgs'] += [wginfo, ]
mgmt = agenda_management_issues(date)
num = 0
for m in mgmt:
num += 1
data['sections']["6.%d" % num] = {'title':m.title}
return HttpResponse(json.dumps(data, indent=2), mimetype='text/plain')
return HttpResponse(json.dumps(res, indent=2), mimetype='text/plain')
def agenda(request, date=None):
data = agenda_data(request, date)
data['settings'] = settings
return render_to_response("iesg/agenda.html", data, context_instance=RequestContext(request))
if has_role(request.user, ["Area Director", "IAB Chair", "Secretariat"]):
data["sections"]["1.1"]["title"] = data["sections"]["1.1"]["title"].replace("Roll Call", '<a href="https://www.ietf.org/iesg/internal/rollcall.txt">Roll Call</a>')
data["sections"]["1.3"]["title"] = data["sections"]["1.3"]["title"].replace("Minutes", '<a href="https://www.ietf.org/iesg/internal/minutes.txt">Minutes</a>')
return render_to_response("iesg/agenda.html", {
"date": data["date"],
"sections": sorted(data["sections"].iteritems()),
"settings": settings,
}, context_instance=RequestContext(request))
def agenda_txt(request, date=None):
data = agenda_data(request, date)
return render_to_response("iesg/agenda.txt", data, context_instance=RequestContext(request), mimetype="text/plain")
return render_to_response("iesg/agenda.txt", {
"date": data["date"],
"sections": sorted(data["sections"].iteritems()),
}, context_instance=RequestContext(request), mimetype="text/plain")
def agenda_scribe_template(request, date=None):
date = get_agenda_date(date)
docs = agenda_docs(date)
return render_to_response('iesg/scribe_template.html', { 'date':str(date), 'docs':docs }, context_instance=RequestContext(request) )
data = agenda_data(request, date)
sections = sorted((num, section) for num, section in data["sections"].iteritems() if "2" <= num < "4")
appendix_docs = []
for num, section in sections:
if "docs" in section:
# why are we here including documents that have no discuss/comment?
appendix_docs.extend(section["docs"])
return render_to_response("iesg/scribe_template.html", {
"date": data["date"],
"sections": sections,
"appendix_docs": appendix_docs,
}, context_instance=RequestContext(request) )
@role_required('Area Director', 'Secretariat')
def agenda_moderator_package(request, date=None):
"""Output telechat agenda with one page per section, with each
document in its own section."""
data = agenda_data(request, date)
data['ads'] = sorted(Person.objects.filter(role__name="ad", role__group__state="active"),
key=lambda p: p.name_parts()[3])
return render_to_response("iesg/moderator_package.html", data, context_instance=RequestContext(request))
def leaf_section(num, section):
return not (num == "1"
or "2" <= num < "5" and "docs" not in section
or (num == "6" and "6.1" not in data["sections"]))
# sort and prune non-leaf headlines
sections = sorted((num, section) for num, section in data["sections"].iteritems()
if leaf_section(num, section))
# add parents field to each section
for num, s in sections:
s["parents"] = []
split = num.split(".")
for i in xrange(num.count(".")):
parent_num = ".".join(split[:i + 1])
parent = data["sections"].get(parent_num)
if parent:
s["parents"].append((parent_num, parent))
# put each document in its own section
flattened_sections = []
for num, s in sections:
if "2" <= num < "5" and "docs" in s and s["docs"]:
for i, d in enumerate(s["docs"], start=1):
flattened_sections.append((num, {
"title": s["title"] + " (%s of %s)" % (i, len(s["docs"])),
"doc": d,
"parents": s["parents"],
}))
else:
flattened_sections.append((num, s))
# add ads
data["sections"]["7"]["ads"] = sorted(Person.objects.filter(role__name="ad", role__group__state="active"),
key=lambda p: p.name_parts()[3])
return render_to_response("iesg/moderator_package.html", {
"date": data["date"],
"sections": flattened_sections,
}, context_instance=RequestContext(request))
@role_required('Area Director', 'Secretariat')
def agenda_package(request, date=None):
data = agenda_data(request)
return render_to_response("iesg/agenda_package.txt", data, context_instance=RequestContext(request), mimetype='text/plain')
data = agenda_data(request, date)
return render_to_response("iesg/agenda_package.txt", {
"date": data["date"],
"sections": sorted(data["sections"].iteritems()),
"roll_call": data["sections"]["1.1"]["text"],
"minutes": data["sections"]["1.3"]["text"],
"management_items": [(num, section) for num, section in data["sections"].iteritems() if "6" < num < "7"],
}, context_instance=RequestContext(request), mimetype='text/plain')
def agenda_documents_txt(request):
@ -293,7 +312,7 @@ class RescheduleForm(forms.Form):
self.fields['telechat_date'].choices = choices
def handle_reschedule_form(request, doc, dates):
def handle_reschedule_form(request, doc, dates, status):
initial = dict(telechat_date=doc.telechat_date())
formargs = dict(telechat_dates=dates,
@ -307,6 +326,8 @@ def handle_reschedule_form(request, doc, dates):
False if form.cleaned_data['clear_returning_item'] else None)
doc.time = datetime.datetime.now()
doc.save()
status["changed"] = True
else:
form = RescheduleForm(**formargs)
@ -315,37 +336,40 @@ def handle_reschedule_form(request, doc, dates):
def agenda_documents(request):
dates = list(TelechatDate.objects.active().order_by('date').values_list("date", flat=True)[:4])
docs = []
for d in Document.objects.filter(docevent__telechatdocevent__telechat_date__in=dates).select_related().distinct():
if d.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date in dates:
docs.append(d)
e = d.latest_event(type="started_iesg_process")
d.balloting_started = e.time if e else datetime.datetime.min
docs.sort(key=lambda d: d.balloting_started)
docs_by_date = dict((d, []) for d in dates)
for doc in Document.objects.filter(docevent__telechatdocevent__telechat_date__in=dates).select_related("stream", "group").distinct():
d = doc.latest_event(TelechatDocEvent, type="scheduled_for_telechat").telechat_date
if d in docs_by_date:
docs_by_date[d].append(doc)
for i in docs:
i.reschedule_form = handle_reschedule_form(request, i, dates)
reschedule_status = { "changed": False }
# some may have been taken off the schedule by the reschedule form
docs = [d for d in docs if d.telechat_date() in dates]
for i in itertools.chain(*docs_by_date.values()):
i.reschedule_form = handle_reschedule_form(request, i, dates, reschedule_status)
if reschedule_status["changed"]:
# if any were changed, redirect so the browser history is preserved
return redirect("ietf.iesg.views.agenda_documents")
telechats = []
for date in dates:
matches = filter(lambda x: x.telechat_date() == date, docs)
res = {}
for i in matches:
section_key = "s" + get_doc_section(i)
if section_key not in res:
res[section_key] = []
if i.type_id=='draft':
if i.get_state_slug()!="rfc":
i.iprUrl = "/ipr/search?option=document_search&id_document_tag=" + str(i.name)
sections = agenda_sections()
fill_in_agenda_docs(date, sections, docs_by_date[d])
for doc in docs_by_date[d]:
if doc.type_id=='draft':
if doc.get_state_slug() != "rfc":
doc.iprUrl = "/ipr/search?option=document_search&id_document_tag=" + str(doc.name)
else:
i.iprUrl = "/ipr/search?option=rfc_search&rfc_search=" + str(i.rfc_number())
i.iprCount = len(i.ipr())
res[section_key].append(i)
telechats.append({'date':date, 'docs':res})
doc.iprUrl = "/ipr/search?option=rfc_search&rfc_search=" + str(doc.rfc_number())
doc.iprCount = len(doc.ipr())
telechats.append({
"date":date,
"sections": sorted((num, section) for num, section in sections.iteritems()
if "2" <= num < "5")
})
return direct_to_template(request, 'iesg/agenda_documents.html', { 'telechats':telechats })
def telechat_docs_tarfile(request, date):

View file

@ -15,7 +15,7 @@ from ietf.person.models import Person
from ietf.doc.lastcall import request_last_call
from ietf.doc.mails import email_ad, email_state_changed
from ietf.iesg.models import TelechatDate, TelechatAgendaItem
from ietf.iesg.agenda import agenda_data
from ietf.iesg.agenda import agenda_data, get_doc_section
from forms import *
import os
@ -24,8 +24,6 @@ import datetime
'''
EXPECTED CHANGES:
x group pages will be just another doc, charter doc
x charter docs to discuss will be passed in the 'docs' section of agenda
x expand get_section_header to include section 4
x consolidate views (get rid of get_group_header,group,group_navigate)
'''
@ -49,8 +47,9 @@ def get_doc_list(agenda):
Document objects in the order they appear in the agenda sections 1-3.
'''
docs = []
for key in sorted(agenda['docs']):
docs.extend(agenda['docs'][key])
for num, section in sorted(agenda['sections'].iteritems()):
if "docs" in section:
docs.extend(section["docs"])
return docs
@ -84,41 +83,29 @@ def get_next_telechat_date():
'''
return TelechatDate.objects.filter(date__gte=datetime.date.today()).order_by('date')[0].date
def get_section_header(file,agenda):
def get_section_header(doc, agenda):
'''
This function takes a filename and an agenda dictionary and returns the
agenda section header as a string for use in the doc template
agenda section header as a list for use in the doc template
'''
h1 = {'2':'Protocol Actions','3':'Document Actions','4':'Working Group Actions'}
h2a = {'1':'WG Submissions','2':'Individual Submissions','3':'Status Changes'}
h2b = {'1':'WG Submissions','2':'Individual Submissions via AD','3':'Status Changes','4':'IRTF and Independent Submission Stream Documents'}
h2c = {'1':'WG Creation','2':'WG Chartering'}
h3a = {'1':'New Item','2':'Returning Item','3':'For Action'}
h3b = {'1':'Proposed for IETF Review','2':'Proposed for Approval'}
h3c = {'1':'Under Evaluation for IETF Review','2':'Proposed for Approval'}
num = get_doc_section(doc)
doc = Document.objects.get(name=file)
header = []
for k,v in agenda['docs'].iteritems():
if doc in v:
section = k
count = '%s of %s' % (v.index(doc) + 1, len(v))
break
split = num.split(".")
header = [ '%s %s' % (section[1], h1[section[1]]) ]
if section[1] == '2':
header.append('%s.%s %s' % (section[1], section[2], h2a[section[2]]))
elif section[1] == '4':
header.append('%s.%s %s' % (section[1], section[2], h2c[section[2]]))
else:
header.append('%s.%s %s' % (section[1], section[2], h2b[section[2]]))
if section[1] == '4':
if section[2] == '1':
header.append('%s.%s.%s %s' % (section[1], section[2], section[3], h3b[section[3]]))
elif section[2] == '2':
header.append('%s.%s.%s %s' % (section[1], section[2], section[3], h3c[section[3]]))
else:
header.append('%s.%s.%s %s' % (section[1], section[2], section[3], h3a[section[3]]))
for i in xrange(num.count(".")):
parent_num = ".".join(split[:i + 1])
parent = agenda["sections"].get(parent_num)
if parent:
if "." not in parent_num:
parent_num += "."
header.append(u"%s %s" % (parent_num, parent["title"]))
section = agenda["sections"][num]
header.append(u"%s %s" % (num, section["title"]))
count = '%s of %s' % (section["docs"].index(doc) + 1, len(section["docs"]))
header.append(count)
return header
@ -127,9 +114,9 @@ def get_first_doc(agenda):
'''
This function takes an agenda dictionary and returns the first document in the agenda
'''
for k,v in sorted(agenda['docs'].iteritems()):
if v:
return v[0]
for num, section in sorted(agenda['sections'].iteritems()):
if "docs" in section and section["docs"]:
return section["docs"][0]
return None
@ -207,7 +194,7 @@ def doc_detail(request, date, name):
BallotFormset = formset_factory(BallotForm, extra=0)
agenda = agenda_data(request, date=date)
header = get_section_header(name,agenda) if name else ''
header = get_section_header(doc, agenda)
# nav button logic
doc_list = get_doc_list(agenda)
@ -376,11 +363,10 @@ def minutes(request, date):
This view shows a list of documents that were approved since the last telechat
'''
# get the telechat previous to selected one
dates = [ t.date for t in TelechatDate.objects.all() ]
y,m,d = date.split('-')
current = datetime.date(int(y),int(m),int(d))
index = dates.index(current)
previous = dates[index + 1]
previous = TelechatDate.objects.filter(date__lt=current).order_by("-date")[0].date
events = DocEvent.objects.filter(type='iesg_approved',time__gte=previous,time__lt=current,doc__type='draft')
docs = [ e.doc for e in events ]
pa_docs = [ d for d in docs if d.intended_std_level.slug not in ('inf','exp','hist') ]
@ -388,6 +374,8 @@ def minutes(request, date):
agenda = agenda_data(request, date=date)
# FIXME: this doesn't show other documents
return render_to_response('telechat/minutes.html', {
'agenda': agenda,
'date': date,

View file

@ -12,77 +12,30 @@
{% endblock %}
{% block content %}
{% load ietf_filters %}
<div id="telechat-sidebar">
<h2>Agenda {{ date }}</h2>
{% if agenda %}
<ul>
<li class="level1">2 Protocol Actions</li>
<li>2.1 WG Submissions</li>
<li>2.1.1 New Item</li>
{% with agenda.docs.s211 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>2.1.2 Returning Item</li>
{% with agenda.docs.s212 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>2.1.3 For Action</li>
{% with agenda.docs.s213 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>2.2 Individual Submissions</li>
<li>2.2.1 New Item</li>
{% with agenda.docs.s221 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>2.2.2 Returning Item</li>
{% with agenda.docs.s222 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>2.2.3 For Action</li>
{% with agenda.docs.s223 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>2.3 Status Changes</li>
<li>2.3.1 New Item</li>
{% with agenda.docs.s231 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>2.3.2 Returning Item</li>
{% with agenda.docs.s232 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li class="level1">3 Document Actions</li>
<li>3.1 WG Submissions</li>
<li>3.1.1 New Item</li>
{% with agenda.docs.s311 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.1.2 Returning Item</li>
{% with agenda.docs.s312 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.1.3 For Action</li>
{% with agenda.docs.s313 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>3.2 Individual Submissions via AD</li>
<li>3.2.1 New Item</li>
{% with agenda.docs.s321 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.2.2 Returning Item</li>
{% with agenda.docs.s322 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.2.3 For Action</li>
{% with agenda.docs.s323 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>3.3 Status Changes</li>
<li>3.3.1 New Item</li>
{% with agenda.docs.s331 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.3.2 Returning Item</li>
{% with agenda.docs.s332 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>3.4 Independent Submissions via RFC Editor</li>
<li>3.4.1 New Item</li>
{% with agenda.docs.s341 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.4.2 Returning Item</li>
{% with agenda.docs.s342 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>3.4.3 For Action</li>
{% with agenda.docs.s343 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li class="level1">4 Working Group Actions</li>
<li>4.1 WG Creation</li>
<li>4.1.1 Proposed for IETF Review</li>
{% with agenda.docs.s411 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>4.1.2 Proposed for Approval</li>
{% with agenda.docs.s412 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li></li>
<li>4.2 WG Rechartering</li>
<li>4.2.1 Under evaluation for IETF Review</li>
{% with agenda.docs.s421 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
<li>4.2.2 Proposed for Approval</li>
{% with agenda.docs.s422 as section_docs %}{% include "telechat/doc_template.html" %}{% endwith %}
{% for num, section in agenda.sections.iteritems %}
{% if num >= "2" and num < "5" %}
<li class="level{{ num|sectionlevel }}">{{ num }} {{ section.title }}
{% if "docs" in section %}
{% if section.docs %}
<ul class="doc-list">
{% for doc in section.docs %}
<li><a href="{% url telechat_doc_detail date=date name=doc.name %}">{{ doc.name }}</a></li>
{% endfor %}
</ul>
{% else %}
<div>None</div>
{% endif %}
</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
{% else %}
Please select a telechat to display the agenda.

View file

@ -1,113 +1,120 @@
{% extends "base.html" %}
{% comment %}
Copyright (C) 2008-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 %}IESG Agenda: {{date}}{% endblock %}
{% block morecss %}
.agenda hr { margin-top: 2em; }
.agenda #section1 h3, #section6 h3 { margin-top:0; margin-bottom:0; }
.agenda noh3 { margin-left: 30px; }
.agenda h4 { margin-top: 0; margin-bottom: 0; }
.agenda h5 { font-size: inherit; margin: 1em 0;}
.agenda #section23 p, #section4 p { margin-left:30px; nomargin-top: 0; nomargin-bottom:0; nofont-style:italic;}
.agenda #section1 pre { margin-left: 30px; }
.agenda blockquote { margin-left: 30px; width: 70ex; font-style:italic;}
table.agenda-doc { margin-left: 30px; margin-top:0.5em; margin-bottom: 0.5em; width: 95%; }
table.agenda-doc > tbody > tr { vertical-align:top; }
div.agenda-wg { margin-left: 30px; margin-top:0.5em; margin-bottom: 0.5em; width: 95%; }
.agenda .stream { padding-left: 0.5em; }
{% endblock morecss %}
{% block title %}IESG Agenda: {{ date }}{% endblock %}
{% block pagehead %}
<link rel="alternate" type="application/atom+xml" href="/feed/iesg-agenda/" />
{% endblock %}
{% block content %}
{% block morecss %}
.agenda hr { margin-top: 2em; }
.agenda .section.s1 h3 { margin: 0; }
.agenda .section p, .agenda .section pre, .agenda blockquote, .agenda .agenda-doc { margin-left: 2.2em; }
.agenda h4 { margin-top: 0; margin-bottom: 0; }
.agenda h5 { font-size: inherit; margin: 1em 0; }
.agenda blockquote { width: 37.6em; font-style:italic; }
.agenda .agenda-doc { margin-top: 0.5em; margin-bottom: 0.8em; width: 95%; clear: both; }
.agenda .agenda-doc .ballot-icon-column { float: right; padding: 0.5em 1em; }
.agenda .stream { padding-left: 0.5em; }
{% endblock morecss %}
{% block content %}
<div class="agenda">
<h1>IESG Agenda: {{ date}} </h1>
<h1>IESG Agenda: {{ date }} </h1>
<p>See also: <a href="/iesg/agenda/documents/">Documents on Future IESG Telechat Agendas</a> and <a href="/iesg/discusses/">IESG Discuss Positions</a>.</p>
<p>See also: <a href="/iesg/agenda/documents/">Documents on Future
IESG Telechat Agendas</a> and <a href="/iesg/discusses/">IESG Discuss
Positions</a>.</p>
<h2>1. Administrivia</h2>
<div id="section1">
{% for num, section in sections %}
<div class="section s{{ num|slice:"1" }}">
<h3>1.1 {% if user|has_role:"Area Director,IAB Chair,Secretariat" %}<a href="https://www.ietf.org/iesg/internal/rollcall.txt">Roll Call</a>{% else %}Roll Call{% endif %}</h3>
{% if num|sectionlevel == 1 %}<h2>{{ num }}. {{ section.title|safe }}</h2>{% endif %}
{% if num|sectionlevel == 2 %}<h3>{{ num }} {{ section.title|safe }}</h3>{% endif %}
{% if num|sectionlevel == 3 %}<h4>{{ num }} {{ section.title|safe }}</h4>{% endif %}
<h3>1.2 Bash the Agenda</h3>
<h3>1.3 Approval of the {% if user|has_role:"Area Director,IAB Chair,Secretariat" %}<a href="https://www.ietf.org/iesg/internal/minutes.txt">Minutes</a>{%else%}Minutes{%endif%} of Past Telechats</h3>
<h3>1.4 List of Remaining Action Items from Last Telechat</h3>
{% if num == "1.4" %}
<pre>
{{ action_items }}
{{ section.text }}
</pre>
</div>
{% endif %}
<div id="section23">
{% with "iesg/agenda_doc.html" as doc_template %}
{% with "iesg/agenda_conflict_doc.html" as doc_conflict_template %}
{% include "iesg/agenda_outline_23.html" %}
{% endwith %}
{% endwith %}
</div>
{% if num >= "2" and num < "5" %}
{% if num == "2" %}
<blockquote>
Reviews should focus on these questions: "Is this document a
reasonable basis on which to build the salient part of the Internet
infrastructure? If not, what changes would make it so?"
</blockquote>
{% endif %}
<div id="section4">
{% with "iesg/agenda_wg.html" as wg_template %}
{% include "iesg/agenda_outline_4.html" %}
{% endwith %}
</div>
{% if num == "3.1" or num == "3.2" %}
<blockquote>
Reviews should focus on these questions: "Is this document a
reasonable contribution to the area of Internet engineering
which it covers? If not, what changes would make it so?"
</blockquote>
{% endif %}
{% if num == "3.3" %}
<blockquote>
Reviews should focus on these questions: "Are the proposed
changes to document status appropriate? Have all requirements
for such a change been met? If not, what changes to the proposal
would make it appropriate?"
</blockquote>
{% endif %}
<h2>5. IAB News We Can Use</h2>
{% if num == "3.4" %}
<blockquote>
The IESG will use RFC 5742 responses: 1) The IESG has concluded
that there is no conflict between this document and IETF work; 2)
The IESG has concluded that this work is related to IETF work done
in WG &lt;X&gt;, but this relationship does not prevent
publishing; 3) The IESG has concluded that publication could
potentially disrupt the IETF work done in WG &lt;X&gt; and
recommends not publishing the document at this time; 4) The IESG
has concluded that this document violates IETF procedures for
&lt;Y&gt; and should therefore not be published without IETF
review and IESG approval; or 5) The IESG has concluded that this
document extends an IETF protocol in a way that requires IETF
review and should therefore not be published without IETF review
and IESG approval.<br/>
<br />
The document shepherd must propose one of these responses in the
conflict-review document, and the document shepherd may supply text
for an IESG Note in that document. The Area Director ballot positions
indicate consensus with the response proposed by the document shepherd
and agreement that the IESG should request inclusion of the IESG Note.<br/>
<br />
Other matters may be recorded in comments, and the comments will
be passed on to the RFC Editor as community review of the document.
</blockquote>
{% endif %}
<h2>6. Management Issues</h2>
<div id="section6">
{% for m in mgmt %}
<h3>6.{{forloop.counter}} {{m.title|escape}}</h3>
{% if user|has_role:"Area Director,IAB Chair,Secretariat" %}
{% if "docs" in section %}
{% for doc in section.docs %}
{% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/agenda_doc.html" %}{% endif %}
{% if doc.type_id == "conflrev" %}{% include "iesg/agenda_conflict_doc.html" %}{% endif %}
{% if doc.type_id == "charter" %}{% include "iesg/agenda_charter.html" %}{% endif %}
{% empty %}
<p>NONE</p>
{% endfor %}
{% endif %}
{% endif %}
{% if num|startswith:"6." and user|has_role:"Area Director,IAB Chair,Secretariat" %}
<pre>
{{m.text|wordwrap:"76"}}
{{ section.text|wordwrap:"76" }}
</pre>
{% endif %}{# if user|has_role #}
{% endif %}
</div>
{% endfor %}
</div>
<h2>7. Working Group News</h2>
</div>
{% endblock content %}

View file

@ -1,68 +1,24 @@
{% comment %}
Copyright (C) 2008-2009 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 %}{% autoescape off %}{% load ietf_filters %}{% filter compress_empty_lines %}{% filter linebreaks_lf %}
{% autoescape off %}{% load ietf_filters %}{% filter compress_empty_lines %}{% filter linebreaks_lf %}
INTERNET ENGINEERING STEERING GROUP (IESG)
Summarized Agenda for the {{date}} IESG Teleconference
Summarized Agenda for the {{ date }} IESG Teleconference
This agenda was generated at {% now "Y-m-d H:i:s T" %}
Up-to-date web version of this agenda can be found at:
http://datatracker.ietf.org/iesg/agenda/
1. Administrivia
1.1 Roll Call
1.2 Bash the Agenda
1.3 Approval of the Minutes of Past Telechats
1.4 List of Remaining Action Items from Last Telechat
{{ action_items|indent|indent }}
{% for num, section in sections %}
{% if num|sectionlevel == 1 %}
{{ num }}.{% else %}{{ num }}{% endif %} {{ section.title }}{% if num == "1.4" %}
{% with "iesg/agenda_doc.txt" as doc_template %}
{% with "iesg/agenda_conflict_doc.txt" as doc_conflict_template %}
{% include "iesg/agenda_outline_23.html" %}
{% endwith %}
{% endwith %}
{{ section.text|indent:4 }}
{% endif %}{% if num >= "2" and num < "5" and "docs" in section %}{% for doc in section.docs %}
{% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/agenda_doc.txt" %}{% endif %}
{% if doc.type_id == "conflrev" %}{% include "iesg/agenda_conflict_doc.txt" %}{% endif %}
{% if doc.type_id == "charter" %}{% include "iesg/agenda_charter.txt" %}{% endif %}
{% empty %}
{% with "iesg/agenda_wg.txt" as wg_template %}
{% include "iesg/agenda_outline_4.html" %}
{% endwith %}
5. IAB News We Can Use
6. Management Issues
{% for m in mgmt %}
6.{{forloop.counter}} {{m.title}}
NONE
{% endfor %}
7. Working Group News
{% endif %}{% if num|startswith:"6"%}
{% endif %}{% endfor %}
{% endfilter %}{% endfilter %}{% endautoescape %}

View file

@ -0,0 +1,17 @@
{% load ballot_icon %}
<div class="agenda-doc">
<div class="ballot-icon-column">
{% ballot_icon doc %}
</div>
<div>
<div>
<a href="{{ doc.get_absolute_url }}">{{ doc.name}}-({{doc.rev}})</a>
<a href="{{ settings.CHARTER_TXT_URL }}{{ doc.filename_with_rev }}">[txt]</a>
</div>
<div>{{ doc.group.name|escape }} ({{doc.group.acronym}})</div>
<div>Area: {{ doc.group.parent.acronym|upper }} ({{ doc.ad|default:"Sponsoring AD not assigned" }})</div>
</div>
</div>

View file

@ -0,0 +1,2 @@
{% load ietf_filters %}
o {{ doc.group.name }} ({{ doc.group.acronym }})

View file

@ -1,112 +1,46 @@
{% comment %}
Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
{% load ietf_filters ballot_icon %}
<div class="agenda-doc">
<div class="ballot-icon-column">
{% ballot_icon doc %}
</div>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
<div>
<a href="{% url doc_view name=doc.name %}">{{doc.name}}-{{doc.rev}}</a>
<a href="http://www.ietf.org/id/{{doc.name}}-{{doc.rev}}.txt">[txt]</a>
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
<br/>{{ doc.title|escape }}
* 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.
{% with doc.conflictdoc as conflictdoc %}
* 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.
<div style="padding-left:30px;">
<a href="{% url doc_view name=conflictdoc.name %}">{{ conflictdoc.name }}-{{ conflictdoc.rev }}</a>
<a href="http://www.ietf.org/id/{{ conflictdoc.name }}-{{ conflictdoc.rev }}.txt">[txt]</a>
<br/>{{ conflictdoc.title|escape }} ({{ conflictdoc.stream }}: {{ conflictdoc.intended_std_level }})
{% if conflictdoc.note %}
<br/>Note: {{ conflictdoc.note|linebreaksbr }}
{% endif %}
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 %}
{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}{% load ballot_icon %}
{% if title2_first %}{% if title1_first %}<h2>{{ title1 }}</h2>
{% endif %}
<h3>{{ title2 }}</h3>
{% if title2|startswith:"3.4" %}
<blockquote>
The IESG will use RFC 5742 responses: 1) The IESG has concluded
that there is no conflict between this document and IETF work; 2)
The IESG has concluded that this work is related to IETF work done
in WG &lt;X&gt;, but this relationship does not prevent
publishing; 3) The IESG has concluded that publication could
potentially disrupt the IETF work done in WG &lt;X&gt; and
recommends not publishing the document at this time; 4) The IESG
has concluded that this document violates IETF procedures for
&lt;Y&gt; and should therefore not be published without IETF
review and IESG approval; or 5) The IESG has concluded that this
document extends an IETF protocol in a way that requires IETF
review and should therefore not be published without IETF review
and IESG approval.<br/>
{% if conflictdoc.ipr %}
<br />
The document shepherd must propose one of these responses in the
conflict-review document, and the document shepherd may supply text
for an IESG Note in that document. The Area Director ballot positions
indicate consensus with the response proposed by the document shepherd
and agreement that the IESG should request inclusion of the IESG Note.<br/>
<br />
Other matters may be recorded in comments, and the comments will
be passed on to the RFC Editor as community review of the document.
</blockquote>
{% endif %}
{% endif %}<h4>{{ title3 }}</h4>
<h5>IPR:</h5>
<ul>
{% for ipr in conflictdoc.ipr %}
{% if ipr.ipr.status == 1 %}
<li><a href="/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% for doc in section_docs %}
<table class="agenda-doc">
<tbody>
<tr><td>
<a href="{% url doc_view name=doc.name %}">{{doc.name}}-{{doc.rev}}</a>
<a href="http://www.ietf.org/id/{{doc.name}}-{{doc.rev}}.txt">[txt]</a>
{% endif %}
</div>
<br/>{{ doc.title|escape }}
<div style="padding-left:30px;">
<a href="{% url doc_view name=doc.conflictdoc.name %}">{{doc.conflictdoc.name}}-{{doc.conflictdoc.rev}}</a>
<a href="http://www.ietf.org/id/{{doc.conflictdoc.name}}-{{doc.conflictdoc.rev}}.txt">[txt]</a>
<br/>{{ doc.conflictdoc.title|escape }} ({{doc.conflictdoc.stream}}: {{ doc.conflictdoc.intended_std_level }})
{% if doc.conflictdoc.note %}
<br/>Note: {{ doc.conflictdoc.note|linebreaksbr }}
{% endif %}
{% endwith %}
{% if doc.conflictdoc.ipr %}
<br />
<h5>IPR:</h5>
<ul>
{% for ipr in doc.conflictdoc.ipr %}
{% ifequal ipr.ipr.status 1 %}
<li><a href="/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a></li>
{% endifequal %}
{% endfor %}
</ul>
{% endif %}
Token: {{ doc.ad }}
{% with doc.active_defer_event as defer %}
{% if defer %}
<br/>Was deferred by {{ defer.by }} on {{ defer.time|date:"Y-m-d" }}
{% endif %}
{% endwith %}
</div>
</div>
Token: {{ doc.ad }}
{% with doc.active_defer_event as defer %}
{% if defer %}
<br/>Was deferred by {{defer.by}} on {{defer.time|date:"Y-m-d"}}
{% endif %}
{% endwith %}
</td><td style="padding-left:20px; width: 50px;">
{% ballot_icon doc %}
</td></tr></tbody></table>
{% empty %}
<p>NONE</p>
{% endfor %}

View file

@ -1,51 +1,8 @@
{% comment %}
Copyright (C) 2008-2009 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 %}
{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% if title2_first %}{% if title1_first %}{{ title1 }}{% endif %}
{{ title2 }}
{% endif %}{{ title3 }}
{% for doc in section_docs %}
o {{doc.canonical_name}}-{{doc.rev}}
{% load ietf_filters %}{% with doc.conflictdoc as conflictdoc %}
o {{ doc.canonical_name }}-{{ doc.rev }}
{% filter wordwrap:"68"|indent|indent %}{{ doc.title }}{% endfilter %}
{{doc.conflictdoc.canonical_name}}-{{doc.conflictdoc.rev}}
{% filter wordwrap:"66"|indent:"4" %}{{ doc.conflictdoc.title }} ({{doc.conflictdoc.stream}}: {{ doc.conflictdoc.intended_std_level }}){% endfilter %}
{% if doc.conflictdoc.note %}{# note: note is not escaped #} {% filter wordwrap:"64"|indent:"6" %}Note: {{ doc.conflictdoc.note|striptags }}{% endfilter %}
{{ conflictdoc.canonical_name }}-{{ conflictdoc.rev }}
{% filter wordwrap:"66"|indent:"4" %}{{ conflictdoc.title }} ({{ conflictdoc.stream }}: {{ conflictdoc.intended_std_level }}){% endfilter %}
{% if conflictdoc.note %}{# note: note is not escaped #} {% filter wordwrap:"64"|indent:"6" %}Note: {{ conflictdoc.note|striptags }}{% endfilter %}
{% endif %} Token: {{ doc.ad }}
{% with doc.active_defer_event as defer %}{% if defer %} Was deferred by {{defer.by}} on {{defer.time|date:"Y-m-d"}}{% endif %}{% endwith %}
{% empty %}
NONE
{% endfor %}
{% with doc.active_defer_event as defer %}{% if defer %} Was deferred by {{defer.by}} on {{defer.time|date:"Y-m-d"}}{% endif %}{% endwith %}{% endwith %}

View file

@ -1,126 +1,60 @@
{% comment %}
Copyright (C) 2008-2010 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
{% load ietf_filters ballot_icon %}
<div class="agenda-doc">
<div class="ballot-icon-column">
{% ballot_icon doc %}
</div>
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
<div>
<a href="{% url doc_view name=doc.canonical_name %}">{{ doc.canonical_name }}</a>
{% with doc.rfc_number as rfc_number %}
{% if rfc_number %}
<a href="http://www.rfc-editor.org/rfc/rfc{{rfc_number}}/">[txt]</a>
{% else %}
<a href="http://www.ietf.org/id/{{doc.name}}-{{doc.rev}}.txt">[txt]</a>
{% endif %}
{% endwith %}
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
<span class="stream">{% if doc.stream %} - {{ doc.stream }} stream{% endif %}</span>
* 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 %}
{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}{% load ballot_icon %}
{% if title2_first %}{% if title1_first %}<h2>{{ title1 }}</h2>
{% if title1|startswith:"2." %}
<blockquote>
Reviews should focus on these questions: "Is this document a
reasonable basis on which to build the salient part of the Internet
infrastructure? If not, what changes would make it so?"
</blockquote>
{% endif %}
{% endif %}
<h3>{{ title2 }}</h3>
{% if title2|startswith:"3.1" or title2|startswith:"3.2" %}
<blockquote>
Reviews should focus on these questions: "Is this document a
reasonable contribution to the area of Internet engineering
which it covers? If not, what changes would make it so?"
</blockquote>
{% endif %}
{% if title2|startswith:"3.3" %}
<blockquote>
Reviews should focus on these questions: "Are the proposed
changes to document status appropriate? Have all requirements
for such a change been met? If not, what changes to the proposal
would make it appropriate?"
</blockquote>
{% endif %}
{% endif %}<h4>{{ title3 }}</h4>
{% for doc in section_docs %}
<table class="agenda-doc">
<tbody>
<tr><td>
<a href="{% url doc_view name=doc.canonical_name %}">{{doc.canonical_name}}</a>
{% with doc.rfc_number as rfc_number %}
{% if rfc_number %}
<a href="http://www.rfc-editor.org/rfc/rfc{{rfc_number}}/">[txt]</a>
{% else %}
<a href="http://www.ietf.org/id/{{doc.name}}-{{doc.rev}}.txt">[txt]</a>
{% endif %}
{% endwith %}
<span class="stream">{% if doc.stream %} - {{ doc.stream }} stream{% endif %}</span>
<br/>{{ doc.title|escape }} ({{ doc.intended_std_level }})
<br/>{{ doc.title|escape }} ({{ doc.intended_std_level }})
{% if doc.note %}
<br/>Note: {{ doc.note|linebreaksbr }}
{% endif %}
{% if doc.note %}
<br/>Note: {{ doc.note|linebreaksbr }}
{% endif %}
{% if doc.ipr %}
<br />
<h5>IPR:</h5>
<ul>
{% for ipr in doc.ipr %}
{% ifequal ipr.ipr.status 1 %}
<li><a href="/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a></li>
{% endifequal %}
{% endfor %}
</ul>
{% if doc.ipr %}
<br />
<h5>IPR:</h5>
<ul>
{% for ipr in doc.ipr %}
{% if ipr.ipr.status == 1 %}
<li><a href="/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a></li>
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endif %}
<br/>Token: {{ doc.ad }} ({{doc.area_acronym}} area)
{% with doc.active_defer_event as defer %}
{% if defer %}
<br/>Was deferred by {{defer.by}} on {{defer.time|date:"Y-m-d"}}
{% endif %}
{% endwith %}
<br/>Token: {{ doc.ad }} ({{ doc.area_acronym }} area)
{% if doc.iana_review_state %}
<br/>IANA Review: {{ doc.iana_review_state }}
{% endif %}
{% with doc.active_defer_event as defer %}
{% if defer %}
<br/>Was deferred by {{ defer.by }} on {{ defer.time|date:"Y-m-d" }}
{% endif %}
{% endwith %}
{% if doc.consensus %}
<br/>Consensus: {{ doc.consensus }}
{% endif %}
{% if doc.iana_review_state %}
<br/>IANA Review: {{ doc.iana_review_state }}
{% endif %}
{% if doc.lastcall_expires %}
<br/>Last call expires: {{ doc.lastcall_expires|date:"Y-m-d" }}
{% endif %}
{% if doc.consensus %}
<br/>Consensus: {{ doc.consensus }}
{% endif %}
</td><td style="padding-left:20px; width: 50px;">
{% ballot_icon doc %}
</td></tr></tbody></table>
{% if doc.lastcall_expires %}
<br/>Last call expires: {{ doc.lastcall_expires|date:"Y-m-d" }}
{% endif %}
{% empty %}
<p>NONE</p>
{% endfor %}
</div>
</div>

View file

@ -1,44 +1,4 @@
{% comment %}
Copyright (C) 2008-2009 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 %}
{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% if title2_first %}{% if title1_first %}{{ title1 }}{% endif %}
{{ title2 }}
{% endif %}{{ title3 }}
{% for doc in section_docs %}{% with doc.rfc_number as rfc_number %}
{% load ietf_filters %}{% with doc.rfc_number as rfc_number %}
o {{doc.canonical_name}}{% if not rfc_number %}-{{doc.rev}}{% endif %}{% endwith %}{% if doc.stream %} - {{ doc.stream }} stream{% endif %}
{% filter wordwrap:"68"|indent|indent %}{{ doc.title }} ({{ doc.intended_std_level }}){% endfilter %}
{% if doc.note %}{# note: note is not escaped #} {% filter wordwrap:"68"|indent|indent %}Note: {{ doc.note|striptags }}{% endfilter %}
@ -47,6 +7,3 @@ Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
Consensus: {{ doc.consensus }}{% endif %}{% if doc.lastcall_expires %}
Last call expires: {{ doc.lastcall_expires|date:"Y-m-d" }}{% endif %}
{% with doc.active_defer_event as defer %}{% if defer %} Was deferred by {{defer.by}} on {{defer.time|date:"Y-m-d"}}{% endif %}{% endwith %}
{% empty %}
NONE
{% endfor %}

View file

@ -68,96 +68,28 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
<table class="ietf-table ietf-doctable agenda_docs">
{% for t in telechats %}
{% if not forloop.first %}
<tr class="header"><td colspan="6">&nbsp;</td></tr>
{% endif %}
{% if not forloop.first %}
<tr class="header"><td colspan="6">&nbsp;</td></tr>
{% endif %}
<tr class="header telechat-date"><td colspan="6">IESG telechat {{t.date}}</td></tr>
<tr class="header telechat-date"><td colspan="6">IESG telechat {{t.date}}</td></tr>
{% if forloop.first %}
<tr class="header"><td colspan="6"><a href="/iesg/agenda/">Full IESG Agenda</a></td></tr>
{% endif %}
{% if forloop.first %}
<tr class="header"><td colspan="6"><a href="/iesg/agenda/">Full IESG Agenda</a></td></tr>
{% endif %}
<tr class="header"><td colspan="6"><a href="/iesg/agenda/telechat-{{t.date|date:"Y"}}-{{t.date|date:"m"}}-{{t.date|date:"d"}}-docs.tgz">Download Documents</a></td></tr>
<tr class="header"><td colspan="6"><a href="/iesg/agenda/telechat-{{t.date|date:"Y"}}-{{t.date|date:"m"}}-{{t.date|date:"d"}}-docs.tgz">Download Documents</a></td></tr>
<tr class="header"><td colspan="6">2. Protocol Actions</td></tr>
<tr class="header"><td colspan="6">2.1 WG Submissions</td></tr>
{% for doc in t.docs.s211 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s212 %}<tr class="header"><td colspan="6">2.1.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s212 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s213 %}<tr class="header"><td colspan="6">2.1.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s213 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">2.2 Individual Submissions</td></tr>
{% for doc in t.docs.s221 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s222 %}<tr class="header"><td colspan="6">2.2.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s222 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s223 %}<tr class="header"><td colspan="6">2.2.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s223 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">2.3 Status Changes</td></tr>
{% for doc in t.docs.s231 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s222 %}<tr class="header"><td colspan="6">2.3.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s232 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s223 %}<tr class="header"><td colspan="6">2.3.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s233 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">3. Document Actions</td></tr>
<tr class="header"><td colspan="6">3.1 WG Submissions</td></tr>
{% for doc in t.docs.s311 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s312 %}<tr class="header"><td colspan="6">3.1.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s312 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s313 %}<tr class="header"><td colspan="6">3.1.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s313 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">3.2 Individual Submissions Via AD</td></tr>
{% for doc in t.docs.s321 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s322 %}<tr class="header"><td colspan="6">3.2.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s322 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s323 %}<tr class="header"><td colspan="6">3.2.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s323 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">3.3 Status Changes</td></tr>
{% for doc in t.docs.s331 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s332 %}<tr class="header"><td colspan="6">3.3.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s332 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s333 %}<tr class="header"><td colspan="6">3.3.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s333 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">3.4 IRTF and Independent Submission Stream Documents</td></tr>
{% for doc in t.docs.s341 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s342 %}<tr class="header"><td colspan="6">3.4.2 Returning Item</td></tr>{% endif %}
{% for doc in t.docs.s342 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s343 %}<tr class="header"><td colspan="6">3.4.3 For Action</td></tr>{% endif %}
{% for doc in t.docs.s343 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
<tr class="header"><td colspan="6">4. Working Group Actions</td></tr>
{% if t.docs.s411 or t.docs.s412%}<tr class="header"><td colspan="6">4.1 WG Creation</td></tr>{% endif %}
{% if t.docs.s411 %}<tr class="header"><td colspan="6">4.1.1 Proposed for IETF Review</td></tr>{% endif %}
{% for doc in t.docs.s411 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s412 %}<tr class="header"><td colspan="6">4.1.2 Proposed for Approval</td></tr>{% endif %}
{% for doc in t.docs.s412 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s421 or t.docs.s422 %}<tr class="header"><td colspan="6">4.2 WG Rechartering</td></tr>{% endif %}
{% if t.docs.s421 %}<tr class="header"><td colspan="6">4.2.1 Under Evaluation for IETF Review</td></tr>{% endif %}
{% for doc in t.docs.s421 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% if t.docs.s422 %}<tr class="header"><td colspan="6">4.2.2 Proposed for Approval</td></tr>{% endif %}
{% for doc in t.docs.s422 %}{% include "iesg/agenda_documents_row.html" %}{%endfor%}
{% for num, section in t.sections %}
{% if "docs" not in section or section.docs %}
<tr class="header"><td colspan="6">{{ num }}{% if num|sectionlevel == 1 %}.{% endif %} {{ section.title }}</td></tr>
{% endif %}
{% if "docs" in section and section.docs %}
{% for doc in section.docs %}{% include "iesg/agenda_documents_row.html" %}{% endfor %}
{% endif %}
{% endfor %}
{% endfor %}
</table>
</form>

View file

@ -1,183 +0,0 @@
{% comment %}
Copyright (C) 2008-2009 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 %}
{% with "2. Protocol Actions" as title1 %}{% with 1 as title1_first %}
{% with "2.1 WG Submissions" as title2 %}
{% with 1 as title2_first %}
{% with "2.1.1 New Items" as title3 %}
{% with docs.s211 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "2.1.2 Returning Items" as title3 %}
{% with docs.s212 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s213 %}
{% with "2.1.3 For Action" as title3 %}
{% with docs.s213 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% endwith %}{# title1_first #}
{% with "2.2 Individual Submissions" as title2 %}
{% with 1 as title2_first %}
{% with "2.2.1 New Items" as title3 %}
{% with docs.s221 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "2.2.2 Returning Items" as title3 %}
{% with docs.s222 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s223 %}
{% with "2.2.3 For Action" as title3 %}
{% with docs.s223 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% with "2.3 Status Changes" as title2 %}
{% with 1 as title2_first %}
{% with "2.3.1 New Items" as title3 %}
{% with docs.s231 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "2.3.2 Returning Items" as title3 %}
{% with docs.s232 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s233 %}
{% with "2.3.3 For Action" as title3 %}
{% with docs.s233 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% endwith %}{# title1 #}
{% with "3. Document Actions" as title1 %}{% with 1 as title1_first %}
{% with "3.1 WG Submissions" as title2 %}
{% with 1 as title2_first %}
{% with "3.1.1 New Items" as title3 %}
{% with docs.s311 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "3.1.2 Returning Items" as title3 %}
{% with docs.s312 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s313 %}
{% with "3.1.3 For Action" as title3 %}
{% with docs.s313 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% endwith %}{# title1_first #}
{% with "3.2 Individual Submissions Via AD" as title2 %}
{% with 1 as title2_first %}
{% with "3.2.1 New Items" as title3 %}
{% with docs.s321 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "3.2.2 Returning Items" as title3 %}
{% with docs.s322 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s323 %}
{% with "3.2.3 For Action" as title3 %}
{% with docs.s323 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% with "3.3 Status Changes" as title2 %}
{% with 1 as title2_first %}
{% with "3.3.1 New Items" as title3 %}
{% with docs.s331 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "3.3.2 Returning Items" as title3 %}
{% with docs.s332 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% if docs.s333 %}
{% with "3.3.3 For Action" as title3 %}
{% with docs.s333 as section_docs %}{% include doc_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %} {# title2 #}
{% with "3.4 IRTF and Independent Submission Stream Documents" as title2 %}
{% with 1 as title2_first %}
{% with "3.4.1 New Items" as title3 %}
{% with docs.s341 as section_docs %}{% include doc_conflict_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "3.4.2 Returning Items" as title3 %}
{% with docs.s342 as section_docs %}{% include doc_conflict_template %}{% endwith %}
{% endwith %}
{% if docs.s343 %}
{% with "3.4.3 For Action" as title3 %}
{% with docs.s343 as section_docs %}{% include doc_conflict_template %}{% endwith %}
{% endwith %}
{% endif %}
{% endwith %}{# title2 #}
{% endwith %}

View file

@ -1,63 +0,0 @@
{% comment %}
Copyright (C) 2008-2009 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 %}
{% with "4. Working Group Actions" as title1 %}{% with 1 as title1_first %}
{% with "4.1 WG Creation" as title2 %}
{% with 1 as title2_first %}
{% with "4.1.1 Proposed for IETF Review" as title3 %}
{% with wgs.s411 as section_wgs %}{% include wg_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "4.1.2 Proposed for Approval" as title3 %}
{% with wgs.s412 as section_wgs %}{% include wg_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2 #}
{% endwith %}{# title1_first #}
{% with "4.2 WG Rechartering" as title2 %}
{% with 1 as title2_first %}
{% with "4.2.1 Under Evaluation for IETF Review" as title3 %}
{% with wgs.s421 as section_wgs %}{% include wg_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2_first #}
{% with "4.2.2 Proposed for Approval" as title3 %}
{% with wgs.s422 as section_wgs %}{% include wg_template %}{% endwith %}
{% endwith %}
{% endwith %}{# title2 #}
{% endwith %}{# title1 #}

View file

@ -24,10 +24,10 @@ Contents:
------------------------------------------------------------------------
3. MANAGEMENT ITEM DETAILS
------------------------------------------------------------------------
{% for m in mgmt %}
6.{{forloop.counter}} {{m.title}}
{% for num, section in management_items %}
{{ num }} {{ section.title}}
{{m.text|wordwrap:"76"}}
{{ section.text|wordwrap:"76" }}
{% endfor %}
------------------------------------------------------------------------

View file

@ -1,55 +0,0 @@
{% comment %}
Copyright (C) 2008-2009 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 ballot_icon %}
{% if title2_first %}{% if title1_first %}<h2>{{ title1 }}</h2>
{% endif %}
<h3>{{ title2 }}</h3>
{% endif %}<h4>{{ title3 }}</h4>
{% for doc in section_wgs %}
<div class="agenda-wg">
<span width="30%" style="float:right;">
{% ballot_icon doc %}
</span>
<span width="30%">
<div> <a href="{{ doc.get_absolute_url }}">{{ doc.name}}-({{doc.rev}})</a> <a href="{{ settings.CHARTER_TXT_URL }}{{ doc.filename_with_rev }}">[txt]</a> </div>
<div>{{ doc.group.name|escape }} ({{doc.group.acronym}})</div>
<div>Area: {{ doc.group.parent.acronym|upper }} ({{ doc.ad|default:"Sponsoring AD not assigned" }})</div>
</span>
</div>
{% empty %}
<p>NONE</p>
{% endfor %}

View file

@ -1,42 +0,0 @@
{% comment %}
Copyright (C) 2008-2009 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 %}{% autoescape off %}{% load ietf_filters %}
{% if title2_first %}{% if title1_first %}{{ title1 }}{% endif %}
{{ title2 }}
{% endif %}{{ title3 }}
{% for doc in section_wgs %}
o {{ doc.group.name }} ({{ doc.group.acronym }})
{% empty %}
NONE
{% endfor %}
{% endautoescape %}

View file

@ -31,14 +31,9 @@ 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 %}
{% for doc in section_wgs %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }} ({{ forloop.counter }} of {{ section_wgs|length }})</h3>
<p><b>{{ doc.group.name }} ({{ doc.group.acronym }})</b></p>
<p><b>{{ doc.group.name }} ({{ doc.group.acronym }})<br>
{% if title3|startswith:"4.1.1" %}
{% if num|startswith:"4.1.1" %}
<p>Does anyone have an objection to the charter being sent for
EXTERNAL REVIEW?</p>
@ -52,7 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* OR Back on the Agenda next time in the same category.</p>
{% endif %}
{% if title3|startswith:"4.1.2" %}
{% if num|startswith:"4.1.2" %}
<p>Does anyone have an objection to the creation of this working
group?</p>
@ -64,7 +59,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* OR Wait for instructions from the shepherding AD.</p>
{% endif %}
{% if title3|startswith:"4.2.1" %}
{% if num|startswith:"4.2.1" %}
<p>Does anyone have an objection with just making the changes to the
charter?</p>
@ -82,7 +77,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
acronym].</p>
{% endif %}
{% if title3|startswith:"4.2.2" %}
{% if num|startswith:"4.2.2" %}
<p>Does anyone have an objection to the rechartering of this working
group?</p>
@ -94,11 +89,3 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* Place the charter back on the agenda for the next telechat.<br>
* OR Wait for instructions from the shepherding AD.</p>
{% endif %}
{% empty %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }}</h3>
<p>NONE</p>
{% endfor %}

View file

@ -35,28 +35,33 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% for doc in section_docs %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }} ({{ forloop.counter }} of {{ section_docs|length }})</h3>
<div><b>{{doc.name}}-{{doc.rev}}</b><br>
<i>({{ doc.title|escape }})</i></div>
<div style="padding-left:20px">
<b>{{doc.conflictdoc.name}}-{{doc.conflictdoc.rev}}</b><br>
<i>({{ doc.conflictdoc.title|escape }})</i><br>
<b>Intended status: {{ doc.conflictdoc.intended_std_level }}<br>
<div>
<b>{{ doc.name }}-{{doc.rev}}</b><br>
<i>({{ doc.title }})</i>
</div>
<div>Token: {{ doc.ad.plain_name|escape }}<br>
{% if doc.type.slug == "draft" %}
Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% if doc.most_recent_ietflc.expires.date|timesince_days < 3 %}!!!{% endif %}
{% endif %}</b></div>
{% if doc.active_ballot %}
<div style="padding-left:20px">
<b>{{ doc.conflictdoc.name }}-{{ doc.conflictdoc.rev }}</b><br>
<i>({{ doc.conflictdoc.title }})</i><br>
<b>Intended status: {{ doc.conflictdoc.intended_std_level }}<br></b>
</div>
<div>
<b>
Token: {{ doc.ad.plain_name }}<br>
{% if doc.type.slug == "draft" %}
Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% if doc.most_recent_ietflc.expires.date|timesince_days < 3 %}!!!{% endif %}
{% endif %}
</b>
</div>
{% with doc.active_ballot as ballot %}
{% if ballot %}
<small><pre>
Yes No-Objection Discuss Abstain Recuse
{% for pos in doc.active_ballot.all_positions %}{% if pos.old_ad %}{{pos.ad.plain_name|bracket|ljust:"22"}}{%else%}{{pos.ad.plain_name|ljust:"22"}}{%endif%} {{pos|bracketpos:"yes"}} {{pos|bracketpos:"noobj"}} {{pos|bracketpos:"discuss"}} {{pos|bracketpos:"abstain"}} {{pos|bracketpos:"recuse"}}
{% for pos in ballot.all_positions %}{% if pos.old_ad %}{{pos.ad.plain_name|bracket|ljust:"22"}}{%else%}{{pos.ad.plain_name|ljust:"22"}}{%endif%} {{pos|bracketpos:"yes"}} {{pos|bracketpos:"noobj"}} {{pos|bracketpos:"discuss"}} {{pos|bracketpos:"abstain"}} {{pos|bracketpos:"recuse"}}
{% endfor %}
</pre></small>
@ -66,11 +71,12 @@ Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% else %}
<p>(Ballot not issued)</p>
{% endif %}
{% endwith %}
{% if title3|startswith:"3.4.1" or title3|startswith:"3.4.2" %}
{% if num|startswith:"3.4.1" or num|startswith:"3.4.2" %}
<p>Does anyone have an objection to the this conflict review response being sent to the {{doc.conflictdoc.stream}}?</p>
{% endif %}
{% if title3|startswith:"3.4.3" %}
{% if num|startswith:"3.4.3" %}
<p>Who will do the review of this document?</p>
{% endif %}
@ -78,7 +84,7 @@ Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
Next State:<br>
Sub State: </p>
{% if title3|startswith:"3.4.1" or title3|startswith:"3.4.2" %}
{% if num|startswith:"3.4.1" or num|startswith:"3.4.2" %}
<p>If APPROVED - The Secretariat will send a standard no problem
message to the RFC Editor. [Name of AD] will you supply the text for
the IESG Note?</p>
@ -94,12 +100,3 @@ Sub State: </p>
the Do Not Publish message to the RFC Editor that includes the note
drafted by[Name the AD].</p>
{% endif %}
{% empty %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }}</h3>
<p>NONE</p>
{% endfor %}

View file

@ -35,28 +35,29 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% for doc in section_docs %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }} ({{ forloop.counter }} of {{ section_docs|length }})</h3>
<p><b>{{doc.name}}-{{doc.rev}}</b><br>
<i>({{ doc.title|escape }})</i><br>
<b>Intended status: {{ doc.intended_std_level }}<br>
Token: {{ doc.ad.plain_name|escape }}<br>
{% if doc.type.slug == "draft" %}
Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% if doc.most_recent_ietflc.expires.date|timesince_days < 3 %}!!!{% endif %}
{% endif %}</b></p>
<p>
<b>{{doc.name}}-{{doc.rev}}</b><br>
<i>({{ doc.title|escape }})</i><br>
<b>
Intended status: {{ doc.intended_std_level }}<br>
Token: {{ doc.ad.plain_name|escape }}<br>
{% if doc.type_id == "draft" %}
Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% if doc.most_recent_ietflc.expires.date|timesince_days < 3 %}!!!{% endif %}
{% endif %}
</b>
</p>
{% if doc.active_ballot %}
{% with doc.active_ballot as ballot %}
{% if ballot %}
<small><pre>
Yes No-Objection Discuss Abstain Recuse
{% for pos in doc.active_ballot.all_positions %}{% if pos.old_ad %}{{pos.ad.plain_name|bracket|ljust:"22"}}{%else%}{{pos.ad.plain_name|ljust:"22"}}{%endif%} {{pos|bracketpos:"yes"}} {{pos|bracketpos:"noobj"}} {{pos|bracketpos:"discuss"}} {{pos|bracketpos:"abstain"}} {{pos|bracketpos:"recuse"}}
{% for pos in ballot.all_positions %}{% if pos.old_ad %}{{pos.ad.plain_name|bracket|ljust:"22"}}{%else%}{{pos.ad.plain_name|ljust:"22"}}{%endif%} {{pos|bracketpos:"yes"}} {{pos|bracketpos:"noobj"}} {{pos|bracketpos:"discuss"}} {{pos|bracketpos:"abstain"}} {{pos|bracketpos:"recuse"}}
{% endfor %}
</pre></small>
{% if title1|startswith:"2." %}
{% if num|startswith:"2." %}
<p>____ open positions<br>
[ &nbsp; ] would you like to record a position?</p>
{% endif %}
@ -67,14 +68,15 @@ Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
{% else %}
<p>(Ballot not issued)</p>
{% endif %}
{% endwith %}
{% if title2|startswith:"3.1" or title2|startswith:"3.2" %}
{% if num|startswith:"3.1" or num|startswith:"3.2" %}
<p>Does anyone have an[y further] objection to this document being published as an {{ doc.intended_std_level }} RFC?</p>
{% endif %}
{% if title3|startswith:"3.3.1" or title3|startswith:"3.3.2" %}
<p>Does anyone have an objection to this conflict review response being sent to the {{doc.conflictdoc.stream}}?</p>
{% if num|startswith:"3.3.1" or num|startswith:"3.3.2" %}
<p>Does anyone have an objection to this conflict review response being sent to the {{ doc.conflictdoc.stream }}?</p>
{% endif %}
{% if title3|startswith:"3.3.3" %}
{% if num|startswith:"3.3.3" %}
<p>Who will do the review of this document?</p>
{% endif %}
@ -82,7 +84,7 @@ Last call ends: {{ doc.most_recent_ietflc.expires.date|default:"(none)" }}
Next State:<br>
Sub State: </p>
{% if title3|startswith:"2.1.1" or title3|startswith:"2.1.2" %}
{% if num|startswith:"2.1.1" or num|startswith:"2.1.2" %}
<p>If APPROVED - The Secretariat will send a working group
submission, Protocol Action Announcement.</p>
@ -92,7 +94,7 @@ Sub State: </p>
AD].</p>
{% endif %}
{% if title3|startswith:"2.2.1" or title3|startswith:"2.2.2" %}
{% if num|startswith:"2.2.1" or num|startswith:"2.2.2" %}
<p>If APPROVED - The Secretariat will send an individual submission,
Protocol Action Announcement.</p>
@ -102,7 +104,7 @@ Sub State: </p>
AD].</p>
{% endif %}
{% if title3|startswith:"2.3.1" or title3|startswith:"2.3.2" %}
{% if num|startswith:"2.3.1" or num|startswith:"2.3.2" %}
<p>If APPROVED - The Secretariat will send the associated status change
Protocol Action Announcements.</p>
@ -112,7 +114,7 @@ Sub State: </p>
AD].</p>
{% endif %}
{% if title3|startswith:"3.1.1" or title3|startswith:"3.1.2" %}
{% if num|startswith:"3.1.1" or num|startswith:"3.1.2" %}
<p>If APPROVED - The Secretariat will send a working group submission
Document Action Announcement.</p>
@ -121,7 +123,7 @@ Sub State: </p>
Ed. Note, IESG, note, etc.] from [Name that AD].</p>
{% endif %}
{% if title3|startswith:"3.2.1" or title3|startswith:"3.2.2" %}
{% if num|startswith:"3.2.1" or num|startswith:"3.2.2" %}
<p>If APPROVED - The Secretariat will send an individual submission
Document Action Announcement.</p>
@ -130,7 +132,7 @@ Sub State: </p>
[RFC Ed. Note, IESG, note, etc.] from [Name that AD].</p>
{% endif %}
{% if title3|startswith:"3.3.1" or title3|startswith:"3.3.2" %}
{% if num|startswith:"3.3.1" or num|startswith:"3.3.2" %}
<p>If APPROVED - The Secretariat will send the associated status change
Document Action Announcements.</p>
@ -139,7 +141,7 @@ Sub State: </p>
Ed. Note, IESG, note, etc.] from [Name that AD].</p>
{% endif %}
{% if title3|startswith:"3.4.1" or title3|startswith:"3.4.2" %}
{% if num|startswith:"3.4.1" or num|startswith:"3.4.2" %}
<p>If APPROVED - The Secretariat will send a standard no problem
message to the RFC Editor. [Name of AD] will you supply the text for
the IESG Note?</p>
@ -155,12 +157,3 @@ Sub State: </p>
the Do Not Publish message to the RFC Editor that includes the note
drafted by[Name the AD].</p>
{% endif %}
{% empty %}
<h3>{{ title1 }}<br>
{{ title2 }}<br>
{{ title3 }}</h3>
<p>NONE</p>
{% endfor %}

View file

@ -33,46 +33,47 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
{% endcomment %}{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
{% load ietf_filters %}
<html><head>
<title>Moderator Package for {{date}} IESG Telechat</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<style type="text/css">
h3 { page-break-before:always; }
@media print {
html { margin: 0; }
body { margin: 0; }
h3 { margin-top: 0; }
}
@media screen {
h3 { border-top: 1px dotted #a0a0a0; padding-top: 1em; }
}
</style>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Moderator Package for {{ date }} IESG Telechat</title>
<style type="text/css">
h3 { page-break-before:always; }
@media print {
html { margin: 0; }
body { margin: 0; }
h3 { margin-top: 0; }
}
@media screen {
h3 { border-top: 1px dotted #a0a0a0; padding-top: 1em; }
}
</style>
</head>
<body>
<h1>Moderator Package for {{date}} IESG Telechat</h1>
{% load ietf_filters %}
<h1>Moderator Package for {{ date }} IESG Telechat</h1>
<p>Generated at {% now "Y-m-d H:i:s T" %}.</p>
<!-- ===================================================================== -->
<!-- SECTION 1 -->
<!-- ===================================================================== -->
<h3>1. Administrivia<br>1.1 Roll Call</h3>
{% for num, section in sections %}
<h3>{% for parent_num, parent_section in section.parents %}{{ parent_num }}{% if parent_num|sectionlevel == 1 %}.{% endif %} {{ parent_section.title }}<br>{% endfor %}{{ num }}{% if num|sectionlevel == 1 %}.{% endif %} {{ section.title }}</h3>
{% if num == "1.1" %}
{% filter linebreaks_crlf %}<pre>
{{ roll_call }}
</pre>{% endfilter %}
<h3>1. Administrivia<br>1.2 Bash the Agenda</h3>
{{ section.text }}
</pre>
{% endfilter %}
{% endif %}
{% if num == "1.2" %}
<p>Does anyone want to add anything NEW to the agenda?</p>
<p>Does anyone have any other changes to the agenda as it stands?</p>
{% endif %}
<h3>1. Administrivia<br>1.3 Approval of the Minutes of Past Telechats</h3>
{% if num == "1.3" %}
<p>Does anyone have an objection to the minutes of the __________ IESG
Teleconference being approved?</p>
@ -82,70 +83,52 @@ teleconference. The Secretariat will post them in the public archive.</p>
<p>Are there narrative minutes to approve for today?</p>
{% filter linebreaks_crlf %}<pre>
{{ minutes }}
</pre>{% endfilter %}
<h3>1. Administrivia<br>1.4 List of Remaining Action Items from Last Telechat</h3>
{{ section.text }}
</pre>
{% endfilter %}
{% endif %}
{% if num == "1.4" %}
{% filter linebreaks_crlf %}<pre>
{{ action_items }}
</pre>{% endfilter %}
{{ section.text }}
</pre>
{% endfilter %}
{% endif %}
<!-- ===================================================================== -->
<!-- SECTIONS 2+3 -->
<!-- ===================================================================== -->
{% if num >= "2" and num < "5" %}
{% if "doc" in section %}
{% with section.doc as doc %}
{% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/moderator_doc.html" %}{% endif %}
{% if doc.type_id == "conflrev" %}{% include "iesg/moderator_conflict_doc.html" %}{% endif %}
{% if doc.type_id == "charter" %}{% include "iesg/moderator_charter.html" %}{% endif %}
{% endwith %}
{% else %}
<p>NONE</p>
{% endif %}
{% endif %}
{% with "iesg/moderator_doc.html" as doc_template %}
{% with "iesg/moderator_conflict_doc.html" as doc_conflict_template %}
{% include "iesg/agenda_outline_23.html" %}
{% endwith %}
{% endwith %}
{% if num >= "6" and num < "7" %}
{% if num == "6" %}
<p>NONE</p>
{% else %}
<p>Is there anything that you would like the Secretariat to record in the minutes for this management issue?</p>
<!-- ===================================================================== -->
<!-- SECTION 4 -->
<!-- ===================================================================== -->
<p>Decision:</p>
{% with "iesg/moderator_wg.html" as wg_template %}
{% include "iesg/agenda_outline_4.html" %}
{% endwith %}
<p>The management issue was discussed.</p>
<!-- ===================================================================== -->
<!-- SECTION 5 -->
<!-- ===================================================================== -->
<h3>5. IAB News We Can Use</h3>
<!-- ===================================================================== -->
<!-- SECTION 6 -->
<!-- ===================================================================== -->
{% for m in mgmt %}
<h3>6. Management Items<br>
6.{{forloop.counter}} {{m.title}}</h3>
<p>Is there anything that you would like the Secretariat to record in the minutes for this management issue?</p>
<p>Decision:</p>
<p>The management issue was discussed.</p>
<p>Action Item (if applicable):</p>
{% empty %}
<h3>6. Management Items</h3>
<p>NONE</p>
{% endfor %}
<!-- ===================================================================== -->
<!-- SECTION 7 -->
<!-- ===================================================================== -->
<h3>7. Working Group News</h3>
<p>Action Item (if applicable):</p>
{% endif %}
{% endif %}
{% if num == "7" %}
{% filter linebreaks_crlf %}<pre>
{% for ad in ads %}[ ] {{ ad.plain_name }}
{% for ad in section.ads %}[ ] {{ ad.plain_name }}
{% endfor %}
</pre>{% endfilter %}
{% endif %}
</body></html>
{% endfor %}
</body>
</html>

View file

@ -1,98 +1,23 @@
{% comment %}
Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
<li>
{{ doc.title }}
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
<br><a href="{% url doc_view name=doc.canonical_name %}">{{doc.canonical_name}}</a>
<a href="http://www.ietf.org/id/{{doc.canonical_name}}-{{doc.rev}}.txt">[txt]</a>
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
<div style="padding-left:20px">
{{ doc.conflictdoc.title }} ({{ doc.conflictdoc.stream }}: {{ doc.conflictdoc.intended_std_level }})
<br><a href="{% url doc_view name=doc.conflictdoc.canonical_name %}">{{ doc.conflictdoc.canonical_name }}</a>
<a href="http://www.ietf.org/id/{{ doc.conflictdoc.canonical_name }}-{{ doc.conflictdoc.rev }}.txt">[txt]</a>
{% if doc.conflictdoc.note %}
<br>Note: {{ doc.conflictdoc.note|linebreaksbr }}
{% endif %}
{% for ipr in doc.conflictdoc.ipr %}
{% if ipr.ipr.status == 1 %}
<br>IPR: <a href="http://datatracker.ietf.org/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title }}</a>
{% endif %}
{% endfor %}
</div>
Token: {{ doc.ad }}
* 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 %}{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% if title2_first %}
{% if title1_first %}
<p><b>{{ title1 }}</b></p>
{% endif %}
<p><b>{{ title2 }}</b></p>
{% endif %}<p><b>{{ title3 }}</b></p>
<ul>
{% for doc in section_docs %}
<li>
{{ doc.title|escape }}
<br><a href="{% url doc_view name=doc.canonical_name %}">{{doc.canonical_name}}</a>
<a href="http://www.ietf.org/id/{{doc.canonical_name}}-{{doc.rev}}.txt">[txt]</a>
<div style="padding-left:20px">
{{ doc.conflictdoc.title|escape }} ({{doc.conflictdoc.stream}}: {{ doc.conflictdoc.intended_std_level }})
<br><a href="{% url doc_view name=doc.conflictdoc.canonical_name %}">{{doc.conflictdoc.canonical_name}}</a>
<a href="http://www.ietf.org/id/{{doc.conflictdoc.canonical_name}}-{{doc.conflictdoc.rev}}.txt">[txt]</a>
{% if doc.conflictdoc.note %}
<br>Note: {{ doc.conflictdoc.note|linebreaksbr }}
{% endif %}
{% for ipr in doc.conflictdoc.ipr %}
{% ifequal ipr.ipr.status 1 %}
<br>IPR: <a href="http://datatracker.ietf.org/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a>
{% endifequal %}
{% endfor %}
</div>
Token: {{ doc.ad.plain_name|escape }}
{% if doc.active_ballot %}
<br><b>Discusses/comments</b> <a href="http://datatracker.ietf.org/idtracker/ballot/{{doc.canonical_name}}/">[ballot]</a>:
<ul>
{% for p in doc.active_ballot.active_ad_positions.values %}
{% if p.pos %}
{% if p.discuss %}
<li>
<a href="#{{doc.name}}+{{p.ad|slugify}}+discuss">{{ p.ad }}: Discuss [{{ p.discuss_time }}]</a>:
<br>{{ p.discuss }}
</li>
{% endif %}
{% if p.comment %}
<li>
<a href="#{{doc.name}}+{{p.ad|slugify}}+comment">{{ p.ad }}: Comment [{{ p.comment_time }}]</a>:
<br>{{ p.comment }}
</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
{% endif %}
<p><b>Telechat:</b></p>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
{% include "iesg/scribe_doc_ballot.html" %}
</li>
{% empty %}
<li>(none)</li>
{% endfor %}
</ul>

View file

@ -1,99 +1,25 @@
{% comment %}<!--
Copyright (C) 2008-2009 Nokia Corporation and/or its subsidiary(-ies).
All rights reserved. Contact: Pasi Eronen <pasi.eronen@nokia.com>
<li>
{{ doc.title }} ({{ doc.intended_std_level }})
<br><a href="{% url doc_view name=doc.canonical_name %}">{{ doc.canonical_name }}</a>
{% with doc.rfc_number as rfc_number %}
{% if rfc_number %}
<a href="http://www.rfc-editor.org/rfc/rfc{{ rfc_number }}/">[txt]</a>
{% else %}
<a href="http://www.ietf.org/id/{{ doc.canonical_name }}-{{ doc.rev }}.txt">[txt]</a>
{% endif %}
{% endwith %}
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
<br>Token: {{ doc.ad }} ({{ doc.area_acronym }} area)
* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
{% if doc.note %}
<br>Note: {{ doc.note|linebreaksbr }}
{% endif %}
* 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.
{% for ipr in doc.ipr %}
{% if ipr.ipr.status == 1 %}
<br>IPR: <a href="http://datatracker.ietf.org/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title }}</a>
{% endif %}
{% endfor %}
* 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 %}{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
{% if title2_first %}
{% if title1_first %}
<p><b>{{ title1 }}</b></p>
{% endif %}
<p><b>{{ title2 }}</b></p>
{% endif %}<p><b>{{ title3 }}</b></p>
<ul>
{% for doc in section_docs %}
<li>
{{ doc.title|escape }} ({{ doc.intended_std_level }})
<br><a href="{% url doc_view name=doc.canonical_name %}">{{doc.canonical_name}}</a>
{% with doc.rfc_number as rfc_number %}
{% if rfc_number %}
<a href="http://www.rfc-editor.org/rfc/rfc{{rfc_number}}/">[txt]</a>
{% else %}
<a href="http://www.ietf.org/id/{{doc.canonical_name}}-{{doc.rev}}.txt">[txt]</a>
{% endif %}
{% endwith %}
<br>Token: {{ doc.ad.plain_name|escape }} ({{doc.area_acronym}} area)
{% if doc.note %}
<br>Note: {{ doc.note|linebreaksbr }}
{% endif %}
{% for ipr in doc.ipr %}
{% ifequal ipr.ipr.status 1 %}
<br>IPR: <a href="http://datatracker.ietf.org/ipr/{{ ipr.ipr.ipr_id }}/">{{ ipr.ipr.title|escape }}</a>
{% endifequal %}
{% endfor %}
{% if doc.active_ballot %}
<br><b>Discusses/comments</b> <a href="http://datatracker.ietf.org/doc/{{doc.canonical_name}}/ballot/">[ballot]</a>:
<ul>
{% for p in doc.active_ballot.active_ad_positions.values %}
{% if p.pos %}
{% if p.discuss %}
<li>
<a href="#{{doc.name}}+{{p.ad|slugify}}+discuss">{{ p.ad }}: Discuss [{{ p.discuss_time }}]</a>:
<br>{{ p.discuss|escape }}
</li>
{% endif %}
{% if p.comment %}
<li>
<a href="#{{doc.name}}+{{p.ad|slugify}}+comment">{{ p.ad }}: Comment [{{ p.comment_time }}]</a>:
<br>{{ p.comment|escape }}
</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
{% endif %}
<p><b>Telechat:</b></p>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
{% include "iesg/scribe_doc_ballot.html" %}
</li>
{% empty %}
<li>(none)</li>
{% endfor %}
</ul>

View file

@ -1,57 +0,0 @@
{% comment %}<!--
Copyright (C) 2008-2009 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 %}{% comment %}
Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
{% endcomment %}
{% load ietf_filters %}
<!-- ============================================================ -->
<p><b>{{ doc.name }}</b></p>
{% autoescape off %}
{% if doc.active_ballot %}
<ul>
{% for p in doc.active_ballot.active_ad_positions.values %}
{% if p.pos and p.discuss %}
<li>
<a name="{{doc.name}}+{{p.ad.plain_name|slugify}}+discuss">{{ p.ad.plain_name }}: Discuss [{{ p.discuss_time }}]</a>:
<br><pre>{{ p.discuss|wrap_text:80|escape }}</pre>
{% endif %}
{% if p.pos and p.comment %}
<li>
<a name="{{doc.name}}+{{p.ad.plain_name|slugify}}+comment">{{ p.ad.plain_name }}: Comment [{{ p.comment_time }}]</a>:
<br><pre>{{ p.comment|wrap_text:80|escape }}</pre>
{% endif %}
{% endfor %}
</ul>
{% endif%}
{% endautoescape %}

View file

@ -0,0 +1,33 @@
{% with doc.active_ballot as ballot %}
{% if ballot %}
<br><b>Discusses/comments</b> <a href="http://datatracker.ietf.org/doc/{{doc.canonical_name}}/ballot/">[ballot]</a>:
<ul>
{% for p in ballot.active_ad_positions.values %}
{% if p.pos %}
{% if p.discuss %}
<li>
<a href="#{{ doc.name }}+{{ p.ad|slugify }}+discuss">{{ p.ad }}: Discuss [{{ p.discuss_time }}]</a>:
<br>{{ p.discuss|escape }}
</li>
{% endif %}
{% if p.comment %}
<li>
<a href="#{{ doc.name }}+{{ p.ad|slugify }}+comment">{{ p.ad }}: Comment [{{ p.comment_time }}]</a>:
<br>{{ p.comment|escape }}
</li>
{% endif %}
{% endif %}
{% endfor %}
</ul>
{% endif %}
{% endwith %}
<p><b>Telechat:</b></p>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>

View file

@ -41,40 +41,50 @@ Some parts Copyright (c) 2009 The IETF Trust, all rights reserved.
</head>
<body>
{% load ietf_filters %}{% filter compress_empty_lines %}
<h1>Scribe template for IESG Narrative Minutes, {{date}}</h1>
<h1>Scribe template for IESG Narrative Minutes, {{ date }}</h1>
{% with "iesg/scribe_doc.html" as doc_template %}
{% with "iesg/scribe_conflict_doc.html" as doc_conflict_template %}
{% include "iesg/agenda_outline_23.html" %}
{% endwith %}
{% endwith %}
{% for num, section in sections %}
<p><b>{{ num }}{% if num|sectionlevel == 1 %}.{% endif %} {{ section.title|safe }}</b></p>
{% if "docs" in section %}
<ul>{% for doc in section.docs %}
{% if doc.type_id == "draft" or doc.type_id == "statchg" %}{% include "iesg/scribe_doc.html" %}{% endif %}
{% if doc.type_id == "conflrev" %}{% include "iesg/scribe_conflict_doc.html" %}{% endif %}
{% empty %}
<li>(none)</li>{% endfor %}
</ul>
{% endif %}
{% endfor %}
<hr>
<h2>Appendix: Snapshot of discusses/comments</h2>
<p>(at {% now "Y-m-d H:i:s T" %})</p>
{% for doc in docs.s211 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s212 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s213 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s221 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s222 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s223 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s231 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s232 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s233 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s311 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s312 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s313 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s321 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s322 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s323 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s331 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s332 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s333 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s341 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s342 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in docs.s343 %}{% include "iesg/scribe_doc2.html" %}{%endfor%}
{% for doc in appendix_docs %}
<!-- ============================================================ -->
<p><b>{{ doc.name }}</b></p>
{% with doc.active_ballot as ballot %}
{% if ballot %}
<ul>{% for p in ballot.active_ad_positions.values %}
{% if p.pos and p.discuss %}
<li>
<a name="{{ doc.name }}+{{ p.ad.plain_name|slugify }}+discuss">{{ p.ad.plain_name }}: Discuss [{{ p.discuss_time }}]</a>:
<br><pre>{{ p.discuss|wrap_text:80 }}</pre>
</li>
{% endif %}
{% if p.pos and p.comment %}
<li>
<a name="{{ doc.name }}+{{ p.ad.plain_name|slugify }}+comment">{{ p.ad.plain_name }}: Comment [{{ p.comment_time }}]</a>:
<br><pre>{{ p.comment|wrap_text:80 }}</pre>
</li>
{% endif %}{% endfor %}
</ul>
{% endif %}
{% endwith %}
{% endfor %}
{% endfilter %}
</body>