@@ -36,6 +36,12 @@ class ChangeStateForm(forms.Form):
3636 review_state = forms .ModelChoiceField (State .objects .filter (used = True , type = "conflrev" ), label = "Conflict review state" , empty_label = None , required = True )
3737 comment = forms .CharField (widget = forms .Textarea , help_text = "Optional comment for the review history." , required = False , strip = False )
3838
39+ def __init__ (self , * args , ** kwargs ):
40+ user = kwargs .pop ("user" )
41+ super (ChangeStateForm , self ).__init__ (* args , ** kwargs )
42+ if not has_role (user , "Secretariat" ):
43+ self .fields ["review_state" ].queryset = self .fields ["review_state" ].queryset .exclude (slug__in = ("appr-reqnopub-sent" ,"appr-noprob-sent" ))
44+
3945@role_required ("Area Director" , "Secretariat" )
4046def change_state (request , name , option = None ):
4147 """Change state of an IESG review for IETF conflicts in other stream's documents, notifying parties as necessary
@@ -45,7 +51,7 @@ def change_state(request, name, option=None):
4551 login = request .user .person
4652
4753 if request .method == 'POST' :
48- form = ChangeStateForm (request .POST )
54+ form = ChangeStateForm (request .POST , user = request . user )
4955 if form .is_valid ():
5056 clean = form .cleaned_data
5157 new_state = clean ['review_state' ]
@@ -100,7 +106,7 @@ def change_state(request, name, option=None):
100106 else :
101107 s = review .get_state ()
102108 init = dict (review_state = s .pk if s else None )
103- form = ChangeStateForm (initial = init )
109+ form = ChangeStateForm (initial = init , user = request . user )
104110
105111 return render (request , 'doc/change_state.html' ,
106112 dict (form = form ,
0 commit comments