Skip to content

Commit 2029fb7

Browse files
committed
Add private bit to time slot types so that it can be configured in the
admin instead of hardcoding the list of private sessions types in the code. - Legacy-Id: 18402
1 parent a39fa7f commit 2029fb7

File tree

5 files changed

+48
-10
lines changed

5 files changed

+48
-10
lines changed

ietf/meeting/views.py

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1344,9 +1344,8 @@ def agenda(request, num=None, name=None, base=None, ext=None, owner=None, utc=""
13441344

13451345
updated = meeting.updated()
13461346
filtered_assignments = SchedTimeSessAssignment.objects.filter(
1347-
schedule__in=[schedule, schedule.base]
1348-
).exclude(
1349-
timeslot__type__in=['lead', 'offagenda']
1347+
schedule__in=[schedule, schedule.base],
1348+
timeslot__type__private=False,
13501349
)
13511350
filtered_assignments = preprocess_assignments_for_agenda(filtered_assignments, meeting)
13521351

@@ -1641,9 +1640,8 @@ def week_view(request, num=None, name=None, owner=None):
16411640
raise Http404
16421641

16431642
filtered_assignments = SchedTimeSessAssignment.objects.filter(
1644-
schedule__in=[schedule, schedule.base]
1645-
).exclude(
1646-
timeslot__type__in=['lead','offagenda']
1643+
schedule__in=[schedule, schedule.base],
1644+
timeslot__type__private=False,
16471645
)
16481646
# Only show assignments from the traditional meeting "week" (Sat-Fri).
16491647
# We'll determine this using the saturday before the first scheduled regular session.
@@ -1815,7 +1813,10 @@ def agenda_ical(request, num=None, name=None, acronym=None, session_id=None):
18151813
elif len(item) > 1 and item[0] == '~':
18161814
include_types |= set([item[1:]])
18171815

1818-
assignments = SchedTimeSessAssignment.objects.filter(schedule__in=[schedule, schedule.base]).exclude(timeslot__type__in=['lead','offagenda'])
1816+
assignments = SchedTimeSessAssignment.objects.filter(
1817+
schedule__in=[schedule, schedule.base],
1818+
timeslot__type__private=False,
1819+
)
18191820
assignments = preprocess_assignments_for_agenda(assignments, meeting)
18201821

18211822
if q:
@@ -1848,9 +1849,10 @@ def agenda_json(request, num=None):
18481849
locations = set()
18491850
parent_acronyms = set()
18501851
assignments = SchedTimeSessAssignment.objects.filter(
1851-
schedule__in=[meeting.schedule, meeting.schedule.base if meeting.schedule else None]
1852+
schedule__in=[meeting.schedule, meeting.schedule.base if meeting.schedule else None],
1853+
timeslot__type__private=False,
18521854
).exclude(
1853-
session__type__in=['lead','offagenda','break','reg']
1855+
session__type__in=['break', 'reg']
18541856
)
18551857
# Update the assignments with historic information, i.e., valid at the
18561858
# time of the meeting

ietf/name/fixtures/names.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12372,6 +12372,7 @@
1237212372
"desc": "",
1237312373
"name": "Break",
1237412374
"order": 0,
12375+
"private": false,
1237512376
"used": true
1237612377
},
1237712378
"model": "name.timeslottypename",
@@ -12382,6 +12383,7 @@
1238212383
"desc": "Leadership Meetings",
1238312384
"name": "Leadership",
1238412385
"order": 0,
12386+
"private": true,
1238512387
"used": true
1238612388
},
1238712389
"model": "name.timeslottypename",
@@ -12392,6 +12394,7 @@
1239212394
"desc": "Other Meetings Not Published on Agenda",
1239312395
"name": "Off Agenda",
1239412396
"order": 0,
12397+
"private": true,
1239512398
"used": true
1239612399
},
1239712400
"model": "name.timeslottypename",
@@ -12402,6 +12405,7 @@
1240212405
"desc": "",
1240312406
"name": "Other",
1240412407
"order": 0,
12408+
"private": false,
1240512409
"used": true
1240612410
},
1240712411
"model": "name.timeslottypename",
@@ -12412,6 +12416,7 @@
1241212416
"desc": "",
1241312417
"name": "Plenary",
1241412418
"order": 0,
12419+
"private": false,
1241512420
"used": true
1241612421
},
1241712422
"model": "name.timeslottypename",
@@ -12422,6 +12427,7 @@
1242212427
"desc": "",
1242312428
"name": "Registration",
1242412429
"order": 0,
12430+
"private": false,
1242512431
"used": true
1242612432
},
1242712433
"model": "name.timeslottypename",
@@ -12432,6 +12438,7 @@
1243212438
"desc": "",
1243312439
"name": "Regular",
1243412440
"order": 0,
12441+
"private": false,
1243512442
"used": true
1243612443
},
1243712444
"model": "name.timeslottypename",
@@ -12442,6 +12449,7 @@
1244212449
"desc": "A room has been reserved for use by another body the timeslot indicated",
1244312450
"name": "Room Reserved",
1244412451
"order": 0,
12452+
"private": false,
1244512453
"used": true
1244612454
},
1244712455
"model": "name.timeslottypename",
@@ -12452,6 +12460,7 @@
1245212460
"desc": "A room was not booked for the timeslot indicated",
1245312461
"name": "Room Unavailable",
1245412462
"order": 0,
12463+
"private": false,
1245512464
"used": true
1245612465
},
1245712466
"model": "name.timeslottypename",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Generated by Django 2.2.15 on 2020-08-20 02:40
2+
3+
from django.db import migrations, models
4+
5+
def set_private_bit_on_timeslottypename(apps, schema_editor):
6+
TimeSlotTypeName = apps.get_model('name', 'TimeSlotTypeName')
7+
8+
TimeSlotTypeName.objects.filter(slug__in=['lead', 'offagenda']).update(private=True)
9+
10+
def noop(apps, schema_editor):
11+
pass
12+
13+
class Migration(migrations.Migration):
14+
15+
dependencies = [
16+
('name', '0017_update_constraintname_order_and_label'),
17+
]
18+
19+
operations = [
20+
migrations.AddField(
21+
model_name='timeslottypename',
22+
name='private',
23+
field=models.BooleanField(default=False, help_text='Whether sessions of this type should be kept off the public agenda'),
24+
),
25+
migrations.RunPython(set_private_bit_on_timeslottypename, noop),
26+
]

ietf/name/migrations/0018_add_rescheduled_session_name.py renamed to ietf/name/migrations/0019_add_rescheduled_session_name.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
class Migration(migrations.Migration):
77

88
dependencies = [
9-
('name', '0017_update_constraintname_order_and_label'),
9+
('name', '0018_add_timeslottypename_private'),
1010
]
1111

1212
def add_rescheduled_session_status_name(apps, schema_editor):

ietf/name/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ class SessionStatusName(NameModel):
6666
"""Waiting for Approval, Approved, Waiting for Scheduling, Scheduled, Cancelled, Disapproved"""
6767
class TimeSlotTypeName(NameModel):
6868
"""Session, Break, Registration, Other, Reserved, unavail"""
69+
private = models.BooleanField(default=False, help_text="Whether sessions of this type should be kept off the public agenda")
6970
class ConstraintName(NameModel):
7071
"""conflict, conflic2, conflic3, bethere, timerange, time_relation, wg_adjacent"""
7172
penalty = models.IntegerField(default=0, help_text="The penalty for violating this kind of constraint; for instance 10 (small penalty) or 10000 (large penalty)")

0 commit comments

Comments
 (0)