@@ -173,9 +173,27 @@ def chartering_wgs(request):
173173
174174def construct_group_menu_context (request , group , selected , others ):
175175 """Return context with info for the group menu filled in."""
176+ actions = []
177+
178+ is_chair = group .has_role (request .user , "chair" )
179+ is_ad_or_secretariat = has_role (request .user , ("Area Director" , "Secretariat" ))
180+
181+ if group .state_id != "proposed" and (is_chair or is_ad_or_secretariat ):
182+ actions .append ((u"Add or edit milestones" , urlreverse ("wg_edit_milestones" , kwargs = dict (acronym = group .acronym ))))
183+
184+ if group .state_id != "conclude" and is_ad_or_secretariat :
185+ actions .append ((u"Edit group" , urlreverse ("group_edit" , kwargs = dict (acronym = group .acronym ))))
186+
187+ if is_chair or is_ad_or_secretariat :
188+ actions .append ((u"Customize workflow" , urlreverse ("ietf.wginfo.edit.customize_workflow" , kwargs = dict (acronym = group .acronym ))))
189+
190+ if group .state_id in ("active" , "dormant" ) and is_ad_or_secretariat :
191+ actions .append ((u"Request closing group" , urlreverse ("wg_conclude" , kwargs = dict (acronym = group .acronym ))))
192+
176193 d = {
177194 "group" : group ,
178195 "selected" : selected ,
196+ "menu_actions" : actions ,
179197 }
180198
181199 d .update (others )
@@ -259,25 +277,11 @@ def group_charter(request, acronym):
259277 fill_in_charter_info (group , include_drafts = False )
260278 group .delegates = Email .objects .filter (role__group = group , role__name = "delegate" )
261279
262- actions = []
263- if group .state_id != "conclude" :
264- actions .append ((u"Edit %s" % group .type .name , urlreverse ("group_edit" , kwargs = dict (acronym = group .acronym ))))
265-
266280 e = group .latest_event (type__in = ("changed_state" , "requested_close" ,))
267281 requested_close = group .state_id != "conclude" and e and e .type == "requested_close"
268282
269- if group .state_id in ("active" , "dormant" ):
270- actions .append ((u"Request closing %s" % group .type .name , urlreverse ("wg_conclude" , kwargs = dict (acronym = group .acronym ))))
271-
272- is_chair = request .user .is_authenticated () and group .role_set .filter (name = "chair" , person__user = request .user )
273-
274- if is_chair or has_role (request .user , "Secretariat" ):
275- actions .append ((u"Customize workflow" , urlreverse ("ietf.wginfo.edit.customize_workflow" , kwargs = dict (acronym = group .acronym ))))
276-
277283 return render_to_response ('wginfo/group_charter.html' ,
278284 construct_group_menu_context (request , group , "charter" , {
279- "actions" : actions ,
280- "is_chair" : is_chair ,
281285 "milestones_in_review" : group .groupmilestone_set .filter (state = "review" ),
282286 "requested_close" : requested_close ,
283287 }), RequestContext (request ))
0 commit comments