Skip to content

Commit ed53dfd

Browse files
committed
changes to support IAB group types, including requesting a session and uploading materials. Commit ready for merge
- Legacy-Id: 7734
1 parent 90c9e3e commit ed53dfd

4 files changed

Lines changed: 31 additions & 19 deletions

File tree

ietf/ietfauth/utils.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,20 @@ def has_role(user, role_names, *args, **kwargs):
4141
return False
4242

4343
role_qs = {
44-
"Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
45-
"Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
46-
"IANA": Q(person=person, name="auth", group__acronym="iana"),
44+
"Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
45+
"Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
46+
"IANA": Q(person=person, name="auth", group__acronym="iana"),
4747
"RFC Editor": Q(person=person, name="auth", group__acronym="rfceditor"),
4848
"ISE" : Q(person=person, name="chair", group__acronym="ise"),
49-
"IAD": Q(person=person, name="admdir", group__acronym="ietf"),
50-
"IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
51-
"IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
52-
"IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
53-
"WG Chair": Q(person=person,name="chair", group__type="wg", group__state="active"),
54-
"WG Secretary": Q(person=person,name="secr", group__type="wg", group__state="active"),
55-
"RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
56-
"RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
49+
"IAD": Q(person=person, name="admdir", group__acronym="ietf"),
50+
"IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
51+
"IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
52+
"IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
53+
"IAB Group Chair": Q(person=person, name="chair", group__type="iab", group__state="active"),
54+
"WG Chair": Q(person=person,name="chair", group__type="wg", group__state="active"),
55+
"WG Secretary": Q(person=person,name="secr", group__type="wg", group__state="active"),
56+
"RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
57+
"RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
5758
"Nomcom Chair": Q(person=person, name="chair", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
5859
"Nomcom Advisor": Q(person=person, name="advisor", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
5960
"Nomcom": Q(person=person, group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),

ietf/secr/middleware/secauth.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ def process_view(self, request, view_func, view_args, view_kwargs):
4545
if request.path.startswith('/secr/announcement/'):
4646
return login_required(view_func)(request,*view_args,**view_kwargs)
4747
elif self.is_unrestricted_url(request.path):
48-
return role_required('WG Chair','WG Secretary','RG Chair','Area Director',
49-
'Secretariat')(view_func)(request,*view_args,**view_kwargs)
48+
return role_required('WG Chair','WG Secretary','RG Chair','IAB Group Chair',
49+
'Area Director','Secretariat')(view_func)(request,*view_args,**view_kwargs)
5050
else:
5151
return role_required('Secretariat')(view_func)(request,*view_args,**view_kwargs)
5252
else:

ietf/secr/proceedings/views.py

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -671,11 +671,21 @@ def select(request, meeting_num):
671671
else:
672672
irtf_form = None
673673

674-
# initialize Training form, this select widget needs to have a session id, because it's
675-
# utilmately the session that we associate material with
676-
if has_role(user,'Secretariat'):
677-
ss = ScheduledSession.objects.filter(schedule=meeting.agenda,timeslot__type='other')
678-
choices = [ (i.session.id, i.session.name) for i in sorted(ss,key=lambda x: x.session.name) ]
674+
# initialize Training form, this select widget needs to have a session id, because
675+
# it's utilmately the session that we associate material with
676+
other_groups = filter(lambda x: x.type_id not in ('wg','ag','rg'),groups_session)
677+
if other_groups:
678+
add_choices = []
679+
sessions = Session.objects.filter(meeting=meeting,group__in=other_groups)
680+
for session in sessions:
681+
if session.name.lower().find('plenary') != -1:
682+
continue
683+
if session.name:
684+
name = (session.name[:75] + '..') if len(session.name) > 75 else session.name
685+
add_choices.append((session.id,name))
686+
else:
687+
add_choices.append((session.id,session.group.name))
688+
choices = sorted(add_choices,key=lambda x: x[1])
679689
training_form = GroupSelectForm(choices=choices)
680690
else:
681691
training_form = None

ietf/secr/utils/group.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,9 @@ def get_my_groups(user,conclude=False):
4949
states = ['bof','proposed','active']
5050
if conclude:
5151
states.extend(['conclude','bof-conc'])
52-
all_groups = Group.objects.filter(type__in=('wg','rg','ag','team'),state__in=states).order_by('acronym')
52+
types = ['wg','rg','ag','team','iab']
5353

54+
all_groups = Group.objects.filter(type__in=types,state__in=states).order_by('acronym')
5455
if user == None or has_role(user,'Secretariat'):
5556
return all_groups
5657

0 commit comments

Comments
 (0)