Merged in [11858] from rjsparks@nostrum.com:

Merge forward Ryan's IETF Overview pages.
 - Legacy-Id: 11874
Note: SVN reference [11858] has been migrated to Git commit cb3af1a2d9
This commit is contained in:
Henrik Levkowetz 2016-08-25 13:36:48 +00:00
commit 7e6ed23f70
14 changed files with 323 additions and 5 deletions

View file

@ -32,7 +32,7 @@
</dl>
<h2>Edit template content</h2>
<form role="form" method="post">
<form id="dbtemplate-edit" role="form" method="post">
{% csrf_token %}
{% bootstrap_form form %}

View file

@ -0,0 +1,93 @@
<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0"><object pk="179" model="dbtemplate.dbtemplate"><field type="CharField" name="path">/meeting/proceedings/defaults/overview.rst</field><field type="CharField" name="title">Proceedings Overview Template</field><field type="TextField" name="variables"><None></None></field><field to="name.dbtemplatetypename" name="type" rel="ManyToOneRel">rst</field><field type="TextField" name="content">The Internet Engineering Task Force (IETF) provides a forum for working groups to coordinate technical development of new protocols. Its most important function is the development and selection of standards within the Internet protocol suite.
The IETF began in January 1986 as a forum for technical coordination by contractors for the then US Defense Advanced Research Projects Agency (DARPA), working on the ARPANET, US Defense Data Network (DDN), and the Internet core gateway system. Since that time, the IETF has grown into a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet.
The IETF mission includes:
* Identifying and proposing solutions to pressing operational and technical problems in the Internet
* Specifying the development or usage of protocols and the near-term architecture, to solve technical problems for the Internet
* Facilitating technology transfer from the Internet Research Task Force (IRTF) to the wider Internet community;and
* Providing a forum for the exchange of relevant information within the Internet community between vendors, users, researchers, agency contractors, and network managers.
Technical activities in the IETF are addressed within working groups. All working groups are organized roughly by function into seven areas. Each area is led by one or more Area Directors who have primary responsibility for that one area of IETF activity. Together with the Chair of the IETF/IESG, these Area Directors comprise the Internet Engineering Steering Group (IESG).
=================== =================================== ========================
Name Area Email
=================== =================================== ========================
Jari Arkko IETF Chair chair@ietf.org
Jari Arkko General Area jari.arkko@piuha.net
Alia Atlas Routing Area akatlas@gmail.com
Deborah Brungard Routing Areas db3546@att.com
Ben Campbell Applications and Real-Time Area ben@nostrum.com
Benoit Claise Operations and Management Area bclaise@cisco.com
Alissa Cooper Applications and Real-Time Area alissa@cooperw.in
Spencer Dawkins Transport Area spencerdawkins.ietf@gmail.com
Stephen Farrell Security Area stephen.farrell@cs.tcd.ie
Brian Haberman Internet Area brian@innovationslab.net
Joel Jaeggli Operations and Management Area joelja@bogus.com
Barry Leiba Applications and Real-Time Area barryleiba@computer.org
Terry Manderson Internet Area terry.manderson@icann.org
Kathleen Moriarty Security Area Kathleen.Moriarty.ietf@gmail.com
Alvaro Retana Routing Area aretana@cisco.com
Martin Stiemerling Transport Area mls.ietf@gmail.com
=================== =================================== ========================
Liaison and ex-officio members include:
=================== =================================== ========================
Olaf Kolkman IAB Chair iab-chair@iab.org
Danny McPherson IAB Liaison danny@tcb.net
Michelle Cotton IANA Liaison iana@iana.org
Sandy Ginoza RFC Editor Liaison rfc-editor@rfc-editor.org
Alexa Morris IETF Secretariat Liaison exec-director@ietf.org
=================== =================================== ========================
The IETF has a Secretariat, which is managed by Association Management Solutions, LLC (AMS) in Fremont, California.The IETF Executive Director is Alexa Morris (exec-director@ietf.org).
Other personnel that provide full-time support to the Secretariat include:
========================= ===================================
Senior Meeting Planner Marcia Beaulieu
Project Manager Stephanie McCammon
Meeting Regsitrar Maddy Conner
Project Manager Cindy Morgan
Project Manager Amy Vezza
========================= ===================================
To contact the Secretariat, please refer to the addresses and URLs provided on the IETF Secretariat Web page.
The IETF also has a general Administrative Support Activity headed by the IETF Administrative Director, Ray Pelletier iad@ietf.org
The working groups conduct their business during the tri-annual IETF meetings, at interim working group meetings, and via electronic mail on mailing lists established for each group. The tri-annual IETF meetings are 4.5 days in duration, and consist of working group sessions, training sessions, and plenary sessions. The plenary sessions include technical presentations, status reports, and an open IESG meeting.
Following each meeting, the IETF Secretariat publishes meeting proceedings, which contain reports from all of the groups that met, as well as presentation slides, where available. The proceedings also include a summary of the standards-related activities that took place since the previous IETF meeting.
Meeting minutes, working group charters (including information about the working group mailing lists), and general information on current IETF activities are available on the IETF Web site at https://www.ietf.org.</field><field to="group.group" name="group" rel="ManyToOneRel">1</field></object></django-objects>

View file

@ -0,0 +1,27 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models, migrations
class Migration(migrations.Migration):
dependencies = [
('dbtemplate', '0002_auto_20141222_1749'),
('meeting', '0033_add_meeting_acknowlegements'),
]
operations = [
migrations.AddField(
model_name='meeting',
name='overview',
field=models.ForeignKey(related_name='overview', editable=False, to='dbtemplate.DBTemplate', null=True),
preserve_default=True,
),
migrations.AlterField(
model_name='meeting',
name='acknowledgements',
field=models.TextField(help_text=b'Acknowledgements for use in meeting proceedings. Use ReStructuredText markup.', blank=True),
preserve_default=True,
),
]

View file

@ -0,0 +1,119 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import migrations
content ='''The Internet Engineering Task Force (IETF) provides a forum for working groups to coordinate technical development of new protocols. Its most important function is the development and selection of standards within the Internet protocol suite.
The IETF began in January 1986 as a forum for technical coordination by contractors for the then US Defense Advanced Research Projects Agency (DARPA), working on the ARPANET, US Defense Data Network (DDN), and the Internet core gateway system. Since that time, the IETF has grown into a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet.
The IETF mission includes:
* Identifying and proposing solutions to pressing operational and technical problems in the Internet
* Specifying the development or usage of protocols and the near-term architecture, to solve technical problems for the Internet
* Facilitating technology transfer from the Internet Research Task Force (IRTF) to the wider Internet community;and
* Providing a forum for the exchange of relevant information within the Internet community between vendors, users, researchers, agency contractors, and network managers.
Technical activities in the IETF are addressed within working groups. All working groups are organized roughly by function into seven areas. Each area is led by one or more Area Directors who have primary responsibility for that one area of IETF activity. Together with the Chair of the IETF/IESG, these Area Directors comprise the Internet Engineering Steering Group (IESG).
=================== =================================== ========================
Name Area Email
=================== =================================== ========================
Jari Arkko IETF Chair chair@ietf.org
Jari Arkko General Area jari.arkko@piuha.net
Alia Atlas Routing Area akatlas@gmail.com
Deborah Brungard Routing Areas db3546@att.com
Ben Campbell Applications and Real-Time Area ben@nostrum.com
Benoit Claise Operations and Management Area bclaise@cisco.com
Alissa Cooper Applications and Real-Time Area alissa@cooperw.in
Spencer Dawkins Transport Area spencerdawkins.ietf@gmail.com
Stephen Farrell Security Area stephen.farrell@cs.tcd.ie
Joel Jaeggli Operations and Management Area joelja@bogus.com
Suresh Krishnan Internet Area suresh.krishnan@ericsson.com
Mirja Kühlewind Transport Area ietf@kuehlewind.net
Terry Manderson Internet Area terry.manderson@icann.org
Alexey Melnikov Applications and Real-Time Area aamelnikov@fastmail.fm
Kathleen Moriarty Security Area Kathleen.Moriarty.ietf@gmail.com
Alvaro Retana Routing Area aretana@cisco.com
=================== =================================== ========================
Liaison and ex-officio members include:
=================== =================================== ========================
Olaf Kolkman IAB Chair iab-chair@iab.org
Danny McPherson IAB Liaison danny@tcb.net
Michelle Cotton IANA Liaison iana@iana.org
Sandy Ginoza RFC Editor Liaison rfc-editor@rfc-editor.org
Alexa Morris IETF Secretariat Liaison exec-director@ietf.org
=================== =================================== ========================
The IETF has a Secretariat, which is managed by Association Management Solutions, LLC (AMS) in Fremont, California.The IETF Executive Director is Alexa Morris (exec-director@ietf.org).
Other personnel that provide full-time support to the Secretariat include:
========================= ===================================
Senior Meeting Planner Marcia Beaulieu
Project Manager Stephanie McCammon
Meeting Regsitrar Maddy Conner
Project Manager Cindy Morgan
Project Manager Amy Vezza
========================= ===================================
To contact the Secretariat, please refer to the addresses and URLs provided on the IETF Secretariat Web page.
The IETF also has a general Administrative Support Activity headed by the IETF Administrative Director, Ray Pelletier iad@ietf.org
The working groups conduct their business during the tri-annual IETF meetings, at interim working group meetings, and via electronic mail on mailing lists established for each group. The tri-annual IETF meetings are 4.5 days in duration, and consist of working group sessions, training sessions, and plenary sessions. The plenary sessions include technical presentations, status reports, and an open IESG meeting.
Following each meeting, the IETF Secretariat publishes meeting proceedings, which contain reports from all of the groups that met, as well as presentation slides, where available. The proceedings also include a summary of the standards-related activities that took place since the previous IETF meeting.
Meeting minutes, working group charters (including information about the working group mailing lists), and general information on current IETF activities are available on the IETF Web site at https://www.ietf.org.
'''
def forward(apps, schema_editor):
DBTemplate = apps.get_model("dbtemplate", "DBTemplate")
Group = apps.get_model("group", "Group")
Meeting = apps.get_model("meeting", "Meeting")
group = Group.objects.get(acronym='ietf')
template = DBTemplate.objects.create(
content=content,
group=group,
path='/meeting/proceedings/defaults/overview.rst',
title='Proceedings Overview Template',
type_id='rst')
# make copies for 95-97
for n in (95,96,97):
template.id = None
template.path = '/meeting/proceedings/%s/overview.rst' % (n)
template.title = 'IETF %s Proceedings Overview' % (n)
template.save()
meeting = Meeting.objects.get(number=n)
meeting.overview = template
meeting.save()
def reverse(apps, schema_editor):
DBTemplate = apps.get_model("dbtemplate", "DBTemplate")
Meeting = apps.get_model("meeting", "Meeting")
DBTemplate.objects.get(path='/meeting/proceedings/defaults/overview.rst').delete()
for n in (95,96,97):
meeting = Meeting.objects.get(number=n)
meeting.overview = None
meeting.save()
DBTemplate.objects.get(path='/meeting/proceedings/95/overview.rst').delete()
DBTemplate.objects.get(path='/meeting/proceedings/96/overview.rst').delete()
DBTemplate.objects.get(path='/meeting/proceedings/97/overview.rst').delete()
class Migration(migrations.Migration):
dependencies = [
('meeting', '0034_auto_20160818_1555'),
]
operations = [
migrations.RunPython(forward,reverse),
]

View file

@ -20,6 +20,7 @@ from django.conf import settings
from django.template.defaultfilters import date as date_format
from django.utils.text import slugify
from ietf.dbtemplate.models import DBTemplate
from ietf.doc.models import Document
from ietf.group.models import Group
from ietf.group.utils import can_manage_materials
@ -90,7 +91,8 @@ class Meeting(models.Model):
session_request_lock_message = models.CharField(blank=True,max_length=255) # locked if not empty
proceedings_final = models.BooleanField(default=False, help_text=u"Are the proceedings for this meeting complete?")
acknowledgements = models.TextField(blank=True, help_text="Acknowledgements for use in meeting proceedings. Use ReStructuredText markup.")
overview = models.ForeignKey(DBTemplate, related_name='overview', null=True, editable=False)
def __unicode__(self):
if self.type_id == "ietf":
return "IETF-%s" % (self.number)

View file

@ -271,6 +271,35 @@ class MeetingTests(TestCase):
r = self.client.get(url)
self.assertEqual(r.status_code, 200)
def test_proceedings_overview(self):
'''Test proceedings IETF Overview page.
Note: old meetings aren't supported so need to add a new meeting then test.
'''
make_meeting_test_data()
# add meeting requires a previous meeting to work
date = datetime.date(2016,7,14)
Meeting.objects.create(type_id='ietf',date=date,number=96)
url = urlreverse('ietf.secr.meetings.views.add')
post_data = dict(number='97',city='Seoul',date='2016-11-13',country='KR',
time_zone='Asia/Seoul',venue_name='Conrad Seoul',
venue_addr='10 Gukjegeumyung-ro',
idsubmit_cutoff_day_offset_00=13,
idsubmit_cutoff_day_offset_01=20,
idsubmit_cutoff_time_utc =datetime.timedelta(hours=23, minutes=59, seconds=59),
idsubmit_cutoff_warning_days =datetime.timedelta(days=21),
submission_start_day_offset=90,
submission_cutoff_day_offset=26,
submission_correction_day_offset=50,
)
self.client.login(username='secretary', password='secretary+password')
response = self.client.post(url, post_data)
self.assertRedirects(response,urlreverse('ietf.secr.meetings.views.main'))
url = urlreverse('ietf.meeting.views.proceedings_overview',kwargs={'num':97})
response = self.client.get(url)
self.assertEqual(response.status_code, 200)
self.assertTrue('The Internet Engineering Task Force' in response.content)
def test_feed(self):
meeting = make_meeting_test_data()
session = Session.objects.filter(meeting=meeting, group__acronym="mars").first()

View file

@ -73,6 +73,7 @@ type_ietf_only_patterns_id_optional = [
url(r'^proceedings(?:.html)?/?$', views.proceedings),
url(r'^proceedings(?:.html)?/finalize/?$', views.finalize_proceedings),
url(r'^proceedings/acknowledgements/$', views.proceedings_acknowledgements),
url(r'^proceedings/overview/$', views.proceedings_overview),
]
urlpatterns = [

View file

@ -1638,6 +1638,22 @@ def finalize_proceedings(request, num=None):
def proceedings_acknowledgements(request, num=None):
meeting = get_meeting(num)
if meeting.number < 95:
return HttpResponseRedirect( 'https://www.ietf.org/proceedings/%s/acknowledgement.html' % num )
return render(request, "meeting/proceedings_acknowledgements.html", {
'meeting': meeting,
})
@role_required('Secretariat')
def proceedings_overview(request, num=None):
'''Display Overview for given meeting'''
meeting = get_meeting(num)
if meeting.number < 95:
return HttpResponseRedirect( 'https://www.ietf.org/proceedings/%s/overview.html' % num )
overview_template = '/meeting/proceedings/%s/overview.rst' % meeting.number
template = render_to_string(overview_template, {})
return render(request, "meeting/proceedings_overview.html", {
'meeting': meeting,
'template': template,
})

View file

@ -85,6 +85,8 @@ class SecrMeetingTestCase(TestCase):
response = self.client.post(url, post_data, follow=True)
self.assertEqual(response.status_code, 200)
self.assertEqual(Meeting.objects.count(),count + 1)
meeting = Meeting.objects.order_by('id').last()
self.assertEqual(meeting.overview.path,'/meeting/proceedings/%s/overview.rst' % meeting.number)
def test_edit_meeting(self):
"Edit Meeting"

View file

@ -14,6 +14,7 @@ from django.shortcuts import render_to_response, get_object_or_404, redirect
from django.template import RequestContext
from django.utils.functional import curry
from ietf.dbtemplate.models import DBTemplate
from ietf.ietfauth.utils import role_required
from ietf.utils.mail import send_mail
from ietf.meeting.helpers import get_meeting, make_materials_directories
@ -313,9 +314,18 @@ def add(request):
meeting.session_request_lock_message = previous_meeting.session_request_lock_message
meeting.save()
#Create Physical new meeting directory and subdirectories
# Create Physical new meeting directory and subdirectories
make_materials_directories(meeting)
# Make copy of IETF Overview template
template = DBTemplate.objects.get(path='/meeting/proceedings/defaults/overview.rst')
template.id = None
template.path = '/meeting/proceedings/%s/overview.rst' % (meeting.number)
template.title = 'IETF %s Proceedings Overview' % (meeting.number)
template.save()
meeting.overview = template
meeting.save()
messages.success(request, 'The Meeting was created successfully!')
return redirect('meetings')
else:

View file

@ -368,7 +368,8 @@ RFCDIFF_BASE_URL = "https://www.ietf.org/rfcdiff"
TEST_RUNNER = 'ietf.utils.test_runner.IetfTestRunner'
# Fixtures which will be loaded before testing starts
GLOBAL_TEST_FIXTURES = [ 'names','ietf.utils.test_data.make_immutable_base_data','nomcom_templates' ]
GLOBAL_TEST_FIXTURES = [ 'names','ietf.utils.test_data.make_immutable_base_data',
'nomcom_templates','proceedings_templates' ]
TEST_DIFF_FAILURE_DIR = "/tmp/test/failure/"

View file

@ -313,6 +313,10 @@ pre {
/* misc pages */
#dbtemplate-edit textarea {
font-family: monospace;
}
.liaison-group-col {
min-width: 10em;
}

View file

@ -39,7 +39,7 @@
<h2 class="anchor-target" id="introduction">Introduction</h2>
<div>
<a href="{% url 'ietf.meeting.views.proceedings_acknowledgements' num=meeting.number %}">Acknowledgements</a><br>
<a href="#">IETF Overview</a><br>
<a href="{% url 'ietf.meeting.views.proceedings_overview' num=meeting.number %}">IETF Overview</a><br>
<a href="#">Progress Report</a><br>
<a href="#">Attendees</a><br>
</div>

View file

@ -0,0 +1,14 @@
{% extends "base.html" %}
{# Copyright The IETF Trust 2015, All Rights Reserved #}
{% load origin markup_tags %}
{% block title %}IETF {{ meeting.number }} Proceedings {% endblock %}
{% block content %}
{% origin %}
<h1><a href="{% url 'ietf.meeting.views.proceedings' num=meeting.number %}">IETF {{ meeting.number }} Proceedings</a></h1>
<h2>IETF Overview</h2>
{{ template|safe }}
{% endblock %}