4646from .forms import InterimRequestForm , InterimSessionForm
4747
4848
49+ def get_menu_entries (request ):
50+ '''Setup menu entries for interim meeting view tabs'''
51+ entries = []
52+ if has_role (request .user , ('Area Director' ,'Secretariat' ,'IRTF Chair' ,'WG Chair' , 'RG Chair' )):
53+ entries .append (("Upcoming" , reverse ("ietf.meeting.views.upcoming" )))
54+ entries .append (("Pending" , reverse ("ietf.meeting.views.interim_pending" )))
55+ if has_role (request .user , "Secretariat" ):
56+ entries .append (("Announce" , reverse ("ietf.meeting.views.interim_announce" )))
57+ return entries
58+
4959# -------------------------------------------------
5060# View Functions
5161# -------------------------------------------------
@@ -908,8 +918,13 @@ def ajax_get_utc(request):
908918def interim_announce (request ):
909919 '''View which shows interim meeting requests awaiting announcement'''
910920 meetings = Meeting .objects .filter (type = 'interim' ,session__status = 'scheda' )
921+ menu_entries = get_menu_entries (request )
922+ selected_menu_entry = 'announce'
911923
912- return render (request , "meeting/interim_announce.html" , {"meetings" :meetings })
924+ return render (request , "meeting/interim_announce.html" , {
925+ 'menu_entries' : menu_entries ,
926+ 'selected_menu_entry' : selected_menu_entry ,
927+ 'meetings' :meetings })
913928
914929@role_required ('Secretariat' ,)
915930def interim_send_announcement (request ,number ):
@@ -922,13 +937,19 @@ def interim_send_announcement(request,number):
922937def interim_pending (request ):
923938 '''View which shows interim meeting requests pending approval'''
924939 meetings = Meeting .objects .filter (type = 'interim' ,session__status = 'apprw' )
940+ menu_entries = get_menu_entries (request )
941+ selected_menu_entry = 'pending'
942+
925943
926944 meetings = [ m for m in meetings if can_view_interim_request (m ,request .user )]
927945 for meeting in meetings :
928946 if can_approve_interim_request (meeting ,request .user ):
929947 meeting .can_approve = True
930948
931- return render (request , "meeting/interim_pending.html" , {"meetings" :meetings })
949+ return render (request , "meeting/interim_pending.html" , {
950+ 'menu_entries' : menu_entries ,
951+ 'selected_menu_entry' :selected_menu_entry ,
952+ 'meetings' : meetings })
932953
933954@role_required ('Area Director' ,'Secretariat' ,'IRTF Chair' ,'WG Chair' , 'RG Chair' )
934955def interim_request (request ):
@@ -1004,7 +1025,7 @@ def upcoming(request):
10041025 today = datetime .datetime .today ()
10051026 meetings = Meeting .objects .filter (date__gte = today ,session__status__in = ('sched' ,'canceled' )).order_by ('date' )
10061027
1007- # extract groups hierarchy
1028+ # extract groups hierarchy for display filter
10081029 seen = set ()
10091030 groups = [ m .session_set .first ().group for m in meetings .filter (type = 'interim' ) ]
10101031 group_parents = []
@@ -1023,6 +1044,10 @@ def upcoming(request):
10231044
10241045 p .group_list .sort (key = lambda g : g .acronym )
10251046
1047+ # add menu entries
1048+ menu_entries = get_menu_entries (request )
1049+ selected_menu_entry = 'upcoming'
1050+
10261051 # add menu actions
10271052 actions = []
10281053 if can_request_interim_meeting (request .user ):
@@ -1031,5 +1056,7 @@ def upcoming(request):
10311056 return render (request , "meeting/upcoming.html" ,
10321057 { 'meetings' :meetings ,
10331058 'menu_actions' : actions ,
1059+ 'menu_entries' : menu_entries ,
1060+ 'selected_menu_entry' :selected_menu_entry ,
10341061 'group_parents' :group_parents ,
10351062 })
0 commit comments