Use BOF consistently.
- Legacy-Id: 19212
This commit is contained in:
parent
885fe35d48
commit
805d1f4a7e
|
@ -8,12 +8,12 @@ def forward(apps, schema_editor):
|
|||
StateType = apps.get_model('doc', 'StateType')
|
||||
State = apps.get_model('doc', 'State')
|
||||
|
||||
StateType.objects.create(slug='bofreq', label='Bof Request State')
|
||||
proposed = State.objects.create(type_id='bofreq', slug='proposed', name='Proposed', used=True, desc='The bof request is proposed', order=0)
|
||||
approved = State.objects.create(type_id='bofreq', slug='approved', name='Approved', used=True, desc='The bof request is approved', order=1)
|
||||
declined = State.objects.create(type_id='bofreq', slug='declined', name='Declined', used=True, desc='The bof request is declined', order=2)
|
||||
replaced = State.objects.create(type_id='bofreq', slug='replaced', name='Replaced', used=True, desc='The bof request is proposed', order=3)
|
||||
abandoned = State.objects.create(type_id='bofreq', slug='abandoned', name='Abandoned', used=True, desc='The bof request is abandoned', order=4)
|
||||
StateType.objects.create(slug='bofreq', label='BOF Request State')
|
||||
proposed = State.objects.create(type_id='bofreq', slug='proposed', name='Proposed', used=True, desc='The BOF request is proposed', order=0)
|
||||
approved = State.objects.create(type_id='bofreq', slug='approved', name='Approved', used=True, desc='The BOF request is approved', order=1)
|
||||
declined = State.objects.create(type_id='bofreq', slug='declined', name='Declined', used=True, desc='The BOF request is declined', order=2)
|
||||
replaced = State.objects.create(type_id='bofreq', slug='replaced', name='Replaced', used=True, desc='The BOF request is proposed', order=3)
|
||||
abandoned = State.objects.create(type_id='bofreq', slug='abandoned', name='Abandoned', used=True, desc='The BOF request is abandoned', order=4)
|
||||
|
||||
proposed.next_states.set([approved,declined,replaced,abandoned])
|
||||
|
||||
|
|
|
@ -1349,9 +1349,9 @@ class EditedAuthorsDocEvent(DocEvent):
|
|||
basis = models.CharField(help_text="What is the source or reasoning for the changes to the author list",max_length=255)
|
||||
|
||||
class BofreqEditorDocEvent(DocEvent):
|
||||
""" Capture the proponents of a Bof Request."""
|
||||
""" Capture the proponents of a BOF Request."""
|
||||
editors = models.ManyToManyField('person.Person', blank=True)
|
||||
|
||||
class BofreqResponsibleDocEvent(DocEvent):
|
||||
""" Capture the responsible leadership (IAB and IESG members) for a BoF Request """
|
||||
""" Capture the responsible leadership (IAB and IESG members) for a BOF Request """
|
||||
responsible = models.ManyToManyField('person.Person', blank=True)
|
|
@ -46,7 +46,7 @@ This test section has some text.
|
|||
def test_show_bof_requests(self):
|
||||
url = urlreverse('ietf.doc.views_bofreq.bof_requests')
|
||||
r = self.client.get(url)
|
||||
self.assertContains(r, 'There are currently no BoF Requests', status_code=200)
|
||||
self.assertContains(r, 'There are currently no BOF Requests', status_code=200)
|
||||
states = State.objects.filter(type_id='bofreq')
|
||||
self.assertTrue(states.count()>0)
|
||||
reqs = BofreqFactory.create_batch(states.count())
|
||||
|
|
|
@ -275,7 +275,7 @@ class EditCharterTests(TestCase):
|
|||
login_testing_unauthorized(self, "secretary", url)
|
||||
response=self.client.get(url)
|
||||
self.assertEqual(response.status_code,200)
|
||||
response = self.client.post(url,{'comment':'Testing Abandoning a Bof Charter'})
|
||||
response = self.client.post(url,{'comment':'Testing Abandoning a BOF Charter'})
|
||||
self.assertEqual(response.status_code,302)
|
||||
charter = Document.objects.get(pk=charter.pk)
|
||||
self.assertEqual(charter.group.state_id,'abandon')
|
||||
|
|
|
@ -46,7 +46,7 @@ class BofreqUploadForm(forms.Form):
|
|||
content = self.cleaned_data["bofreq_content"].replace("\r", "")
|
||||
default_content = render_to_string('doc/bofreq/bofreq_template.md',{})
|
||||
if content==default_content:
|
||||
raise forms.ValidationError('The example content may not be saved. Edit it as instructed to document this BoF request.')
|
||||
raise forms.ValidationError('The example content may not be saved. Edit it as instructed to document this BOF request.')
|
||||
try:
|
||||
_ = markdown.markdown(content, extensions=['extra'])
|
||||
except Exception as e:
|
||||
|
@ -126,7 +126,7 @@ class NewBofreqForm(BofreqUploadForm):
|
|||
if name == 'bofreq-':
|
||||
raise forms.ValidationError('The filename derived from this title is empty. Please include a few descriptive words using ascii or numeric characters')
|
||||
if Document.objects.filter(name=name).exists():
|
||||
raise forms.ValidationError('This title produces a filename already used by an existing BoF request')
|
||||
raise forms.ValidationError('This title produces a filename already used by an existing BOF request')
|
||||
return title
|
||||
|
||||
@login_required
|
||||
|
|
|
@ -188,11 +188,11 @@ class GroupForm(forms.Form):
|
|||
|
||||
if existing and existing.type_id == self.group_type:
|
||||
if existing.state_id == "bof":
|
||||
#insert_confirm_field(label="Turn BoF %s into proposed %s and start chartering it" % (existing.acronym, existing.type.name), initial=True)
|
||||
#insert_confirm_field(label="Turn BOF %s into proposed %s and start chartering it" % (existing.acronym, existing.type.name), initial=True)
|
||||
if confirmed:
|
||||
return acronym
|
||||
else:
|
||||
raise forms.ValidationError("Warning: Acronym used for an existing BoF (%s)." % existing.acronym)
|
||||
raise forms.ValidationError("Warning: Acronym used for an existing BOF (%s)." % existing.acronym)
|
||||
else:
|
||||
#insert_confirm_field(label="Set state of %s %s to proposed and start chartering it" % (existing.acronym, existing.type.name), initial=False)
|
||||
if confirmed:
|
||||
|
@ -265,7 +265,7 @@ class GroupForm(forms.Form):
|
|||
state = cleaned_data.get('state', None)
|
||||
parent = cleaned_data.get('parent', None)
|
||||
if state and (state.slug in ['bof', ] and 'parent' in self.fields and not parent):
|
||||
raise forms.ValidationError("You requested the creation of a BoF, but specified no parent area. A parent is required when creating a bof.")
|
||||
raise forms.ValidationError("You requested the creation of a BOF, but specified no parent area. A parent is required when creating a bof.")
|
||||
return cleaned_data
|
||||
|
||||
|
||||
|
|
|
@ -561,7 +561,7 @@ class GroupEditTests(TestCase):
|
|||
q = PyQuery(r.content)
|
||||
self.assertTrue(len(q('form .has-error')) > 0)
|
||||
|
||||
# try elevating BoF to WG
|
||||
# try elevating BOF to WG
|
||||
group.state_id = "bof"
|
||||
group.save()
|
||||
|
||||
|
|
|
@ -180,6 +180,8 @@ class IprTests(TestCase):
|
|||
|
||||
# find by patent info
|
||||
r = self.client.get(url + "?submit=patent&patent=%s" % ipr.patent_info)
|
||||
debug.show('ipr.patent_info')
|
||||
debug.show('r.content')
|
||||
self.assertContains(r, ipr.title)
|
||||
|
||||
r = self.client.get(url + "?submit=patent&patent=US12345")
|
||||
|
|
|
@ -366,7 +366,7 @@ class Command(BaseCommand):
|
|||
attendees=100,
|
||||
agenda_note="",
|
||||
requested_duration=datetime.timedelta(seconds=7200), # 2:00:00
|
||||
comments="""Must not conflict with Transport Area BoFs. """, # this is implicit
|
||||
comments="""Must not conflict with Transport Area BOFs. """, # this is implicit
|
||||
remote_instructions="",
|
||||
)
|
||||
## session for tsvwg ##
|
||||
|
@ -377,7 +377,7 @@ class Command(BaseCommand):
|
|||
attendees=100,
|
||||
agenda_note="",
|
||||
requested_duration=datetime.timedelta(seconds=7200), # 2:00:00
|
||||
comments="""Must not conflict with Transport Area BoFs. """, # this is implicit
|
||||
comments="""Must not conflict with Transport Area BOFs. """, # this is implicit
|
||||
remote_instructions="",
|
||||
)
|
||||
c = Constraint.objects.create(meeting=m, source=s.group, name_id='conflict', target_id=1665, ) # intarea
|
||||
|
@ -440,7 +440,7 @@ class Command(BaseCommand):
|
|||
attendees=80,
|
||||
agenda_note="Joint with ARTAREA",
|
||||
requested_duration=datetime.timedelta(seconds=7200), # 2:00:00
|
||||
comments=""" and avoid the same kind of conflicts with other area meetings and any Bofs and potential new ART WGs.""", # this is implicit
|
||||
comments=""" and avoid the same kind of conflicts with other area meetings and any BOFs and potential new ART WGs.""", # this is implicit
|
||||
remote_instructions="",
|
||||
)
|
||||
s.joint_with_groups.set(Group.objects.filter(acronym='artarea'))
|
||||
|
@ -2598,7 +2598,7 @@ class Command(BaseCommand):
|
|||
attendees=50,
|
||||
agenda_note="",
|
||||
requested_duration=datetime.timedelta(seconds=5400), # 1:30:00
|
||||
comments="""Please avoid collision with any Sec and IoT-related BoFs.""",
|
||||
comments="""Please avoid collision with any Sec and IoT-related BOFs.""",
|
||||
remote_instructions="",
|
||||
)
|
||||
c = Constraint.objects.create(meeting=m, source=s.group, name_id='conflict', target_id=1187, ) # saag
|
||||
|
|
|
@ -705,24 +705,24 @@ class Session(object):
|
|||
for other in overlapping_sessions:
|
||||
if not other:
|
||||
continue
|
||||
# BoFs cannot conflict with PRGs
|
||||
# BOFs cannot conflict with PRGs
|
||||
if self.is_bof and other.is_prg:
|
||||
violations.append('{}: BoF overlaps with PRG: {}'
|
||||
violations.append('{}: BOF overlaps with PRG: {}'
|
||||
.format(self.group, other.group))
|
||||
cost += self.business_constraint_costs['bof_overlapping_prg']
|
||||
# BoFs cannot conflict with any other BoFs
|
||||
# BOFs cannot conflict with any other BOFs
|
||||
if self.is_bof and other.is_bof:
|
||||
violations.append('{}: BoF overlaps with other BoF: {}'
|
||||
violations.append('{}: BOF overlaps with other BOF: {}'
|
||||
.format(self.group, other.group))
|
||||
cost += self.business_constraint_costs['bof_overlapping_bof']
|
||||
# BoFs cannot conflict with any other WGs in their area
|
||||
# BOFs cannot conflict with any other WGs in their area
|
||||
if self.is_bof and self.parent == other.parent:
|
||||
violations.append('{}: BoF overlaps with other session from same area: {}'
|
||||
violations.append('{}: BOF overlaps with other session from same area: {}'
|
||||
.format(self.group, other.group))
|
||||
cost += self.business_constraint_costs['bof_overlapping_area_wg']
|
||||
# BoFs cannot conflict with any area-wide meetings (of any area)
|
||||
# BOFs cannot conflict with any area-wide meetings (of any area)
|
||||
if self.is_bof and other.is_area_meeting:
|
||||
violations.append('{}: BoF overlaps with area meeting {}'
|
||||
violations.append('{}: BOF overlaps with area meeting {}'
|
||||
.format(self.group, other.group))
|
||||
cost += self.business_constraint_costs['bof_overlapping_area_meeting']
|
||||
# Area meetings cannot conflict with anything else in their area
|
||||
|
|
|
@ -9,22 +9,22 @@ def forward(apps, schema_editor):
|
|||
BusinessConstraint = apps.get_model("meeting", "BusinessConstraint")
|
||||
BusinessConstraint.objects.create(
|
||||
slug="bof_overlapping_prg",
|
||||
name="BoFs cannot conflict with PRGs",
|
||||
name="BOFs cannot conflict with PRGs",
|
||||
penalty=100000,
|
||||
)
|
||||
BusinessConstraint.objects.create(
|
||||
slug="bof_overlapping_bof",
|
||||
name="BoFs cannot conflict with any other BoFs",
|
||||
name="BOFs cannot conflict with any other BOFs",
|
||||
penalty=100000,
|
||||
)
|
||||
BusinessConstraint.objects.create(
|
||||
slug="bof_overlapping_area_wg",
|
||||
name="BoFs cannot conflict with any other WGs in their area",
|
||||
name="BOFs cannot conflict with any other WGs in their area",
|
||||
penalty=100000,
|
||||
)
|
||||
BusinessConstraint.objects.create(
|
||||
slug="bof_overlapping_area_meeting",
|
||||
name="BoFs cannot conflict with any area-wide meetings (of any area)",
|
||||
name="BOFs cannot conflict with any area-wide meetings (of any area)",
|
||||
penalty=10000,
|
||||
)
|
||||
BusinessConstraint.objects.create(
|
||||
|
|
|
@ -752,7 +752,7 @@ class MeetingTests(TestCase):
|
|||
|
||||
# Should be a 'non-area events' link showing appropriate types
|
||||
non_area_labels = [
|
||||
'BoF', 'EDU', 'Hackathon', 'IEPG', 'IESG', 'IETF', 'Plenary', 'Secretariat', 'Tools',
|
||||
'BOF', 'EDU', 'Hackathon', 'IEPG', 'IESG', 'IETF', 'Plenary', 'Secretariat', 'Tools',
|
||||
]
|
||||
self.assertIn('%s?show=%s' % (ical_url, ','.join(non_area_labels).lower()), content)
|
||||
|
||||
|
@ -1029,7 +1029,7 @@ class EditMeetingScheduleTests(TestCase):
|
|||
self.assertEqual(time_labels, time_header_labels)
|
||||
|
||||
def test_bof_session_tag(self):
|
||||
"""Sessions for BoF groups should be marked as such"""
|
||||
"""Sessions for BOF groups should be marked as such"""
|
||||
meeting = MeetingFactory(type_id='ietf')
|
||||
|
||||
non_bof_session = SessionFactory(meeting=meeting)
|
||||
|
@ -1044,13 +1044,13 @@ class EditMeetingScheduleTests(TestCase):
|
|||
|
||||
q = PyQuery(r.content)
|
||||
self.assertEqual(len(q('#session{} .bof-tag'.format(non_bof_session.pk))), 0,
|
||||
'Non-BoF session should not be tagged as a BoF session')
|
||||
'Non-BOF session should not be tagged as a BOF session')
|
||||
|
||||
bof_tags = q('#session{} .bof-tag'.format(bof_session.pk))
|
||||
self.assertEqual(len(bof_tags), 1,
|
||||
'BoF session should have one BoF session tag')
|
||||
self.assertIn('BoF', bof_tags.eq(0).text(),
|
||||
'BoF tag should contain text "BoF"')
|
||||
'BOF session should have one BOF session tag')
|
||||
self.assertIn('BOF', bof_tags.eq(0).text(),
|
||||
'BOF tag should contain text "BOF"')
|
||||
|
||||
def _setup_for_swap_timeslots(self):
|
||||
"""Create a meeting, rooms, and schedule for swap_timeslots testing
|
||||
|
|
|
@ -1552,7 +1552,7 @@ def prepare_filter_keywords(tagged_assignments, group_parents):
|
|||
|
||||
# Keywords that should appear in 'non-area' column
|
||||
non_area_labels = [
|
||||
'BoF', 'EDU', 'Hackathon', 'IEPG', 'IESG', 'IETF', 'Plenary', 'Secretariat', 'Tools',
|
||||
'BOF', 'EDU', 'Hackathon', 'IEPG', 'IESG', 'IETF', 'Plenary', 'Secretariat', 'Tools',
|
||||
]
|
||||
# Remove any unused non-area keywords
|
||||
non_area_filters = [
|
||||
|
@ -4102,7 +4102,7 @@ def request_minutes(request, num=None):
|
|||
body = render_to_string('meeting/request_minutes.txt', body_context)
|
||||
initial = {'to': 'wgchairs@ietf.org',
|
||||
'cc': 'irsg@irtf.org',
|
||||
'subject': 'Request for IETF WG and Bof Session Minutes',
|
||||
'subject': 'Request for IETF WG and BOF Session Minutes',
|
||||
'body': body,
|
||||
}
|
||||
form = RequestMinutesForm(initial=initial)
|
||||
|
|
|
@ -2307,7 +2307,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"desc": "The bof request is proposed",
|
||||
"desc": "The BOF request is proposed",
|
||||
"name": "Proposed",
|
||||
"next_states": [
|
||||
159,
|
||||
|
@ -2325,7 +2325,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"desc": "The bof request is approved",
|
||||
"desc": "The BOF request is approved",
|
||||
"name": "Approved",
|
||||
"next_states": [],
|
||||
"order": 1,
|
||||
|
@ -2338,7 +2338,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"desc": "The bof request is declined",
|
||||
"desc": "The BOF request is declined",
|
||||
"name": "Declined",
|
||||
"next_states": [],
|
||||
"order": 2,
|
||||
|
@ -2351,7 +2351,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"desc": "The bof request is proposed",
|
||||
"desc": "The BOF request is proposed",
|
||||
"name": "Replaced",
|
||||
"next_states": [],
|
||||
"order": 3,
|
||||
|
@ -2364,7 +2364,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"desc": "The bof request is abandoned",
|
||||
"desc": "The BOF request is abandoned",
|
||||
"name": "Abandoned",
|
||||
"next_states": [],
|
||||
"order": 4,
|
||||
|
@ -2391,7 +2391,7 @@
|
|||
},
|
||||
{
|
||||
"fields": {
|
||||
"label": "Bof Request State"
|
||||
"label": "BOF Request State"
|
||||
},
|
||||
"model": "doc.statetype",
|
||||
"pk": "bofreq"
|
||||
|
@ -2702,20 +2702,20 @@
|
|||
"about_page": "ietf.group.views.group_about",
|
||||
"acts_like_wg": false,
|
||||
"admin_roles": "[\n \"chair\",\n \"secr\"\n]",
|
||||
"agenda_type": null,
|
||||
"agenda_type": "ad",
|
||||
"create_wiki": true,
|
||||
"custom_group_roles": true,
|
||||
"customize_workflow": false,
|
||||
"default_parent": "",
|
||||
"default_tab": "ietf.group.views.group_about",
|
||||
"default_used_roles": "[\n \"ad\",\n \"chair\",\n \"reviewer\",\n \"secr\"\n]",
|
||||
"docman_roles": "[]",
|
||||
"docman_roles": "[\n \"chair\"\n]",
|
||||
"groupman_authroles": "[\n \"Secretariat\"\n]",
|
||||
"groupman_roles": "[\n \"ad\",\n \"secr\"\n]",
|
||||
"has_chartering_process": false,
|
||||
"has_default_jabber": false,
|
||||
"has_documents": false,
|
||||
"has_meetings": false,
|
||||
"has_meetings": true,
|
||||
"has_milestones": false,
|
||||
"has_nonsession_materials": false,
|
||||
"has_reviews": false,
|
||||
|
@ -3862,6 +3862,8 @@
|
|||
"cc": [],
|
||||
"desc": "Recipients when a document's state is manually edited",
|
||||
"to": [
|
||||
"bofreq_editors",
|
||||
"bofreq_responsible",
|
||||
"doc_ad",
|
||||
"doc_affecteddoc_authors",
|
||||
"doc_affecteddoc_group_chairs",
|
||||
|
@ -9917,7 +9919,7 @@
|
|||
{
|
||||
"fields": {
|
||||
"desc": "",
|
||||
"name": "Bof Request",
|
||||
"name": "BOF Request",
|
||||
"order": 0,
|
||||
"prefix": "bofreq",
|
||||
"used": true
|
||||
|
@ -15483,7 +15485,7 @@
|
|||
"fields": {
|
||||
"command": "xym",
|
||||
"switch": "--version",
|
||||
"time": "2021-07-05T00:12:20.968",
|
||||
"time": "2021-07-13T00:12:25.184",
|
||||
"used": true,
|
||||
"version": "xym 0.5"
|
||||
},
|
||||
|
@ -15494,7 +15496,7 @@
|
|||
"fields": {
|
||||
"command": "pyang",
|
||||
"switch": "--version",
|
||||
"time": "2021-07-05T00:12:22.309",
|
||||
"time": "2021-07-13T00:12:26.721",
|
||||
"used": true,
|
||||
"version": "pyang 2.5.0"
|
||||
},
|
||||
|
@ -15505,7 +15507,7 @@
|
|||
"fields": {
|
||||
"command": "yanglint",
|
||||
"switch": "--version",
|
||||
"time": "2021-07-05T00:12:22.603",
|
||||
"time": "2021-07-13T00:12:27.015",
|
||||
"used": true,
|
||||
"version": "yanglint SO 1.6.7"
|
||||
},
|
||||
|
@ -15516,7 +15518,7 @@
|
|||
"fields": {
|
||||
"command": "xml2rfc",
|
||||
"switch": "--version",
|
||||
"time": "2021-07-05T00:12:25.333",
|
||||
"time": "2021-07-13T00:12:29.814",
|
||||
"used": true,
|
||||
"version": "xml2rfc 3.9.1"
|
||||
},
|
||||
|
|
|
@ -6,7 +6,7 @@ from django.db import migrations
|
|||
|
||||
def forward(apps,schema_editor):
|
||||
DocTypeName = apps.get_model('name','DocTypeName')
|
||||
DocTypeName.objects.create(prefix='bofreq', slug='bofreq', name="Bof Request", desc="", used=True, order=0)
|
||||
DocTypeName.objects.create(prefix='bofreq', slug='bofreq', name="BOF Request", desc="", used=True, order=0)
|
||||
|
||||
def reverse(apps,schema_editor):
|
||||
DocTypeName = apps.get_model('name','DocTypeName')
|
||||
|
|
|
@ -19,7 +19,7 @@ TO_LIST = ('IETF Announcement List <ietf-announce@ietf.org>',
|
|||
'RFP Announcement List <rfp-announce@ietf.org>',
|
||||
'The IESG <iesg@ietf.org>',
|
||||
'Working Group Chairs <wgchairs@ietf.org>',
|
||||
'BoF Chairs <bofchairs@ietf.org>',
|
||||
'BOF Chairs <bofchairs@ietf.org>',
|
||||
'Other...')
|
||||
|
||||
# ---------------------------------------------
|
||||
|
|
|
@ -9,8 +9,11 @@
|
|||
|
||||
<h1>BOF Requests</h1>
|
||||
|
||||
{% if request.user.is_authenticated %}
|
||||
<a id="start_button" class="btn btn-primary" href="{% url 'ietf.doc.views_bofreq.new_bof_request' %}">Start New BOF Request</a>
|
||||
{% endif %}
|
||||
{% if not reqs %}
|
||||
<p>There are currently no BoF Requests</p>
|
||||
<p>There are currently no BOF Requests</p>
|
||||
{% else %}
|
||||
{% regroup reqs by get_state_slug as grouped_reqs %}
|
||||
{% for req_group in grouped_reqs %}
|
||||
|
@ -36,7 +39,4 @@
|
|||
</div>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% if request.user.is_authenticated %}
|
||||
<a id="start_button" class="btn btn-primary" href="{% url 'ietf.doc.views_bofreq.new_bof_request' %}">Start New Bof Request</a>
|
||||
{% endif %}
|
||||
{% endblock %}
|
|
@ -1,14 +1,14 @@
|
|||
# Name: Exact MPLS Edges (EXAMPLE) (There's an acronym for anything if you really want one ;-)
|
||||
## Description
|
||||
Replace this with a few paragraphs describing the BoF request.
|
||||
Replace this with a few paragraphs describing the BOF request.
|
||||
|
||||
Fill in the details below. Keep items in the order they appear here.
|
||||
|
||||
## Required Details
|
||||
- Status: (not) WG Forming
|
||||
- Responsible AD: name
|
||||
- BoF proponents: name <email>, name <email> (1-3 people - who are requesting and coordinating discussion for proposal)
|
||||
- BoF chairs: TBD
|
||||
- BOF proponents: name <email>, name <email> (1-3 people - who are requesting and coordinating discussion for proposal)
|
||||
- BOF chairs: TBD
|
||||
- Number of people expected to attend: 100
|
||||
- Length of session (1 or 2 hours): 2 hours
|
||||
- Conflicts (whole Areas and/or WGs)
|
||||
|
|
|
@ -2,11 +2,11 @@
|
|||
{# Copyright The IETF Trust 2021, All Rights Reserved #}
|
||||
{% load origin bootstrap3 static %}
|
||||
|
||||
{% block title %}Start a new BoF Request{% endblock %}
|
||||
{% block title %}Start a new BOF Request{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
{% origin %}
|
||||
<h1>Start a new BoF Request</h1>
|
||||
<h1>Start a new BOF Request</h1>
|
||||
|
||||
<p>Choose a short descriptive title for your request. Take time to choose a good initial title - it will be used to make the filename for your request's content. The title can be changed later, but the filename will not change.</p>
|
||||
<p>For example, a request with a title of "A new important bit" will be saved as "bofreq-a-new-important-bit-00.md".</p>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<div id="session{{ session.pk }}" class="session {% if not session.group.parent.scheduling_color %}untoggleable{% endif %} {% if session.parent_acronym %}parent-{{ session.parent_acronym }}{% endif %} {% if session.readonly %}readonly{% endif %}" style="width:{{ session.layout_width }}em;" data-duration="{{ session.requested_duration.total_seconds }}" {% if session.attendees != None %}data-attendees="{{ session.attendees }}"{% endif %}>
|
||||
<div class="session-label {% if session.group and session.group.is_bof %}bof-session{% endif %}">
|
||||
{{ session.scheduling_label }}
|
||||
{% if session.group and session.group.is_bof %}<span class="bof-tag">BoF</span>{% endif %}
|
||||
{% if session.group and session.group.is_bof %}<span class="bof-tag">BOF</span>{% endif %}
|
||||
</div>
|
||||
|
||||
<div>
|
||||
|
@ -32,7 +32,7 @@
|
|||
{{ session.scheduling_label }}
|
||||
· {{ session.requested_duration_in_hours }}h
|
||||
{% if session.group %}
|
||||
· {% if session.group.is_bof %}BoF{% else %}{{ session.group.type.name }}{% endif %}
|
||||
· {% if session.group.is_bof %}BOF{% else %}{{ session.group.type.name }}{% endif %}
|
||||
{% endif %}
|
||||
{% if session.attendees != None %}
|
||||
· {{ session.attendees }} <i class="fa fa-user-o"></i>
|
||||
|
|
|
@ -27,7 +27,7 @@
|
|||
{% if d.name.slug == 'opensched' %}
|
||||
To request a Working Group session, use the
|
||||
<a href="{% url 'ietf.secr.sreq.views.main' %}">IETF Meeting Session Request Tool</a>.
|
||||
If you are working on a BoF request, it is highly recommended
|
||||
If you are working on a BOF request, it is highly recommended
|
||||
to tell the IESG now by sending an email to
|
||||
<a href="mailto:iesg@ietf.org">iesg@ietf.org</a> to get advance help with the request.
|
||||
{% endif %}
|
||||
|
|
|
@ -9,7 +9,7 @@ DESCRIPTION:{{ d.name.desc }}{% if first and d.name.slug == 'openreg' or first a
|
|||
Register here: https://www.ietf.org/how/meetings/register/{% endif %}{% if d.name.slug == 'opensched' %}\n
|
||||
To request a Working Group session, use the IETF Meeting Session Request Tool:\n
|
||||
{{ request.scheme }}://{{ request.get_host}}{% url 'ietf.secr.sreq.views.main' %}\n
|
||||
If you are working on a BoF request, it is highly recommended to tell the IESG\n
|
||||
If you are working on a BOF request, it is highly recommended to tell the IESG\n
|
||||
now by sending an email to iesg@ietf.org to get advance help with the request.{% endif %}{% if d.name.slug == 'cutoffwgreq' %}\n
|
||||
To request a Working Group session, use the IETF Meeting Session Request Tool:\n
|
||||
{{ request.scheme }}://{{ request.get_host }}{% url 'ietf.secr.sreq.views.main' %}{% endif %}{% if d.name.slug == 'cutoffbofreq' %}\n
|
||||
|
|
|
@ -16,6 +16,6 @@ manual posting.
|
|||
Groups that are missing minutes:{% for group in needs_minutes %}{% ifchanged group.parent %}
|
||||
|
||||
{{group.parent.name}}:{% endifchanged %}
|
||||
{{ group.acronym | upper }}{% if group.state_id == 'bof' %} (BoF){% endif %}{% endfor %}
|
||||
{{ group.acronym | upper }}{% if group.state_id == 'bof' %} (BOF){% endif %}{% endfor %}
|
||||
|
||||
{% endautoescape %}
|
||||
|
|
Loading…
Reference in a new issue