changes to support IAB group types, including requesting a session and uploading materials. Commit ready for merge
- Legacy-Id: 7734
This commit is contained in:
parent
90c9e3e256
commit
ed53dfdf78
|
@ -41,19 +41,20 @@ def has_role(user, role_names, *args, **kwargs):
|
|||
return False
|
||||
|
||||
role_qs = {
|
||||
"Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
|
||||
"Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
|
||||
"IANA": Q(person=person, name="auth", group__acronym="iana"),
|
||||
"Area Director": Q(person=person, name__in=("pre-ad", "ad"), group__type="area", group__state="active"),
|
||||
"Secretariat": Q(person=person, name="secr", group__acronym="secretariat"),
|
||||
"IANA": Q(person=person, name="auth", group__acronym="iana"),
|
||||
"RFC Editor": Q(person=person, name="auth", group__acronym="rfceditor"),
|
||||
"ISE" : Q(person=person, name="chair", group__acronym="ise"),
|
||||
"IAD": Q(person=person, name="admdir", group__acronym="ietf"),
|
||||
"IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
|
||||
"IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
|
||||
"IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
|
||||
"WG Chair": Q(person=person,name="chair", group__type="wg", group__state="active"),
|
||||
"WG Secretary": Q(person=person,name="secr", group__type="wg", group__state="active"),
|
||||
"RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
|
||||
"RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
|
||||
"IAD": Q(person=person, name="admdir", group__acronym="ietf"),
|
||||
"IETF Chair": Q(person=person, name="chair", group__acronym="ietf"),
|
||||
"IRTF Chair": Q(person=person, name="chair", group__acronym="irtf"),
|
||||
"IAB Chair": Q(person=person, name="chair", group__acronym="iab"),
|
||||
"IAB Group Chair": Q(person=person, name="chair", group__type="iab", group__state="active"),
|
||||
"WG Chair": Q(person=person,name="chair", group__type="wg", group__state="active"),
|
||||
"WG Secretary": Q(person=person,name="secr", group__type="wg", group__state="active"),
|
||||
"RG Chair": Q(person=person,name="chair", group__type="rg", group__state="active"),
|
||||
"RG Secretary": Q(person=person,name="secr", group__type="rg", group__state="active"),
|
||||
"Nomcom Chair": Q(person=person, name="chair", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
|
||||
"Nomcom Advisor": Q(person=person, name="advisor", group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
|
||||
"Nomcom": Q(person=person, group__type="nomcom", group__state="active", group__acronym__icontains=kwargs.get('year', '0000')),
|
||||
|
|
|
@ -45,8 +45,8 @@ class SecAuthMiddleware(object):
|
|||
if request.path.startswith('/secr/announcement/'):
|
||||
return login_required(view_func)(request,*view_args,**view_kwargs)
|
||||
elif self.is_unrestricted_url(request.path):
|
||||
return role_required('WG Chair','WG Secretary','RG Chair','Area Director',
|
||||
'Secretariat')(view_func)(request,*view_args,**view_kwargs)
|
||||
return role_required('WG Chair','WG Secretary','RG Chair','IAB Group Chair',
|
||||
'Area Director','Secretariat')(view_func)(request,*view_args,**view_kwargs)
|
||||
else:
|
||||
return role_required('Secretariat')(view_func)(request,*view_args,**view_kwargs)
|
||||
else:
|
||||
|
|
|
@ -671,11 +671,21 @@ def select(request, meeting_num):
|
|||
else:
|
||||
irtf_form = None
|
||||
|
||||
# initialize Training form, this select widget needs to have a session id, because it's
|
||||
# utilmately the session that we associate material with
|
||||
if has_role(user,'Secretariat'):
|
||||
ss = ScheduledSession.objects.filter(schedule=meeting.agenda,timeslot__type='other')
|
||||
choices = [ (i.session.id, i.session.name) for i in sorted(ss,key=lambda x: x.session.name) ]
|
||||
# initialize Training form, this select widget needs to have a session id, because
|
||||
# it's utilmately the session that we associate material with
|
||||
other_groups = filter(lambda x: x.type_id not in ('wg','ag','rg'),groups_session)
|
||||
if other_groups:
|
||||
add_choices = []
|
||||
sessions = Session.objects.filter(meeting=meeting,group__in=other_groups)
|
||||
for session in sessions:
|
||||
if session.name.lower().find('plenary') != -1:
|
||||
continue
|
||||
if session.name:
|
||||
name = (session.name[:75] + '..') if len(session.name) > 75 else session.name
|
||||
add_choices.append((session.id,name))
|
||||
else:
|
||||
add_choices.append((session.id,session.group.name))
|
||||
choices = sorted(add_choices,key=lambda x: x[1])
|
||||
training_form = GroupSelectForm(choices=choices)
|
||||
else:
|
||||
training_form = None
|
||||
|
|
|
@ -49,8 +49,9 @@ def get_my_groups(user,conclude=False):
|
|||
states = ['bof','proposed','active']
|
||||
if conclude:
|
||||
states.extend(['conclude','bof-conc'])
|
||||
all_groups = Group.objects.filter(type__in=('wg','rg','ag','team'),state__in=states).order_by('acronym')
|
||||
types = ['wg','rg','ag','team','iab']
|
||||
|
||||
all_groups = Group.objects.filter(type__in=types,state__in=states).order_by('acronym')
|
||||
if user == None or has_role(user,'Secretariat'):
|
||||
return all_groups
|
||||
|
||||
|
|
Loading…
Reference in a new issue