2525
2626from ietf .doc .models import ( Document , DocAlias , RelatedDocument , State ,
2727 StateType , DocEvent , ConsensusDocEvent , TelechatDocEvent , WriteupDocEvent , StateDocEvent ,
28- IESG_SUBSTATE_TAGS )
28+ IanaExpertDocEvent , IESG_SUBSTATE_TAGS )
2929from ietf .doc .mails import ( email_pulled_from_rfc_queue , email_resurrect_requested ,
3030 email_resurrection_completed , email_state_changed , email_stream_changed ,
3131 email_stream_state_changed , email_stream_tags_changed , extra_automation_headers ,
@@ -188,6 +188,23 @@ def change_state(request, name):
188188 next_states = next_states ,
189189 to_iesg_eval = to_iesg_eval ))
190190
191+ class AddIanaExpertsCommentForm (forms .Form ):
192+ comment = forms .CharField (required = True , widget = forms .Textarea , strip = False )
193+
194+ @role_required ('Secretariat' , 'IANA' )
195+ def add_iana_experts_comment (request , name ):
196+ doc = get_object_or_404 (Document , docalias__name = name )
197+ if request .method == 'POST' :
198+ form = AddIanaExpertsCommentForm (request .POST )
199+ if form .is_valid ():
200+ IanaExpertDocEvent .objects .create (doc = doc , rev = doc .rev , by = request .user .person , type = "comment" , desc = form .cleaned_data ['comment' ])
201+ return HttpResponseRedirect (doc .get_absolute_url ())
202+ else :
203+ form = AddIanaExpertsCommentForm ()
204+
205+ return render (request , 'doc/draft/add_iana_experts_comment.html' , dict (form = form , doc = doc ))
206+
207+
191208class ChangeIanaStateForm (forms .Form ):
192209 state = forms .ModelChoiceField (State .objects .all (), required = False )
193210
@@ -197,6 +214,7 @@ def __init__(self, state_type, *args, **kwargs):
197214 choices = State .objects .filter (used = True , type = state_type ).order_by ("order" ).values_list ("pk" , "name" )
198215 self .fields ['state' ].choices = [("" , "-------" )] + list (choices )
199216
217+
200218@role_required ('Secretariat' , 'IANA' )
201219def change_iana_state (request , name , state_type ):
202220 """Change IANA review state of Internet Draft. Normally, this is done via
0 commit comments