2525from ietf .iesg .models import TelechatDate
2626from ietf .group .models import Role , Group
2727
28+ from ietf .doc .forms import TelechatForm , AdForm , NotifyForm
29+
2830class ChangeStateForm (forms .Form ):
2931 review_state = forms .ModelChoiceField (State .objects .filter (type = "conflrev" , used = True ), label = "Conflict review state" , empty_label = None , required = True )
3032 comment = forms .CharField (widget = forms .Textarea , help_text = "Optional comment for the review history" , required = False )
31- def __init__ (self , * args , ** kwargs ):
32- self .hide = kwargs .pop ('hide' , None )
33- super (ChangeStateForm , self ).__init__ (* args , ** kwargs )
34- # hide requested fields
35- if self .hide :
36- for f in self .hide :
37- self .fields [f ].widget = forms .HiddenInput
3833
3934@role_required ("Area Director" , "Secretariat" )
4035def change_state (request , name , option = None ):
41- """Change state of and IESG review for IETF conflicts in other stream's documents, notifying parties as necessary
36+ """Change state of an IESG review for IETF conflicts in other stream's documents, notifying parties as necessary
4237 and logging the change as a comment."""
4338 review = get_object_or_404 (Document , type = "conflrev" , name = name )
4439
@@ -86,22 +81,22 @@ def change_state(request, name, option=None):
8681
8782 return redirect ('doc_view' , name = review .name )
8883 else :
89- hide = []
9084 s = review .get_state ()
9185 init = dict (review_state = s .pk if s else None )
92- form = ChangeStateForm (hide = hide , initial = init )
86+ form = ChangeStateForm (initial = init )
9387
94- return render_to_response ('doc/conflict_review/ change_state.html' ,
88+ return render_to_response ('doc/change_state.html' ,
9589 dict (form = form ,
9690 doc = review ,
9791 login = login ,
92+ help_url = reverse ('help_conflict_review_states' ),
9893 ),
9994 context_instance = RequestContext (request ))
10095
10196def send_conflict_eval_email (request ,review ):
102- msg = render_to_string ("doc/conflict_review/ eval_email.txt" ,
103- dict (review = review ,
104- review_url = settings .IDTRACKER_BASE_URL + review .get_absolute_url (),
97+ msg = render_to_string ("doc/eval_email.txt" ,
98+ dict (doc = review ,
99+ doc_url = settings .IDTRACKER_BASE_URL + review .get_absolute_url (),
105100 )
106101 )
107102 send_mail_preformatted (request ,msg )
@@ -202,9 +197,6 @@ def submit(request, name):
202197 },
203198 context_instance = RequestContext (request ))
204199
205- class NotifyForm (forms .Form ):
206- notify = forms .CharField (max_length = 255 , label = "Notice emails" , help_text = "Separate email addresses with commas" , required = False )
207-
208200
209201@role_required ("Area Director" , "Secretariat" )
210202def edit_notices (request , name ):
@@ -231,28 +223,15 @@ def edit_notices(request, name):
231223 init = { "notify" : review .notify }
232224 form = NotifyForm (initial = init )
233225
234- return render_to_response ('doc/conflict_review/notify.html' ,
235- {'form' : form ,
236- 'review' : review ,
237- 'conflictdoc' : review .relateddocument_set .get (relationship__slug = 'conflrev' ).target .document ,
226+ conflictdoc = review .relateddocument_set .get (relationship__slug = 'conflrev' ).target .document
227+ titletext = 'the conflict review of %s-%s' % (conflictdoc .canonical_name (),conflictdoc .rev )
228+ return render_to_response ('doc/notify.html' ,
229+ {'form' : form ,
230+ 'doc' : review ,
231+ 'titletext' : titletext
238232 },
239233 context_instance = RequestContext (request ))
240234
241- class AdForm (forms .Form ):
242- ad = forms .ModelChoiceField (Person .objects .filter (role__name = "ad" , role__group__state = "active" ).order_by ('name' ),
243- label = "Shepherding AD" , empty_label = "(None)" , required = True )
244-
245- def __init__ (self , * args , ** kwargs ):
246- super (self .__class__ , self ).__init__ (* args , ** kwargs )
247-
248- # if previous AD is now ex-AD, append that person to the list
249- ad_pk = self .initial .get ('ad' )
250- choices = self .fields ['ad' ].choices
251- if ad_pk and ad_pk not in [pk for pk , name in choices ]:
252- self .fields ['ad' ].choices = list (choices ) + [("" , "-------" ), (ad_pk , Person .objects .get (pk = ad_pk ).plain_name ())]
253-
254-
255-
256235@role_required ("Area Director" , "Secretariat" )
257236def edit_ad (request , name ):
258237 """Change the shepherding Area Director for this review."""
@@ -277,10 +256,13 @@ def edit_ad(request, name):
277256 init = { "ad" : review .ad_id }
278257 form = AdForm (initial = init )
279258
280- return render_to_response ('doc/conflict_review/change_ad.html' ,
281- {'form' : form ,
282- 'review' : review ,
283- 'conflictdoc' : review .relateddocument_set .get (relationship__slug = 'conflrev' ).target .document ,
259+
260+ conflictdoc = review .relateddocument_set .get (relationship__slug = 'conflrev' ).target .document
261+ titletext = 'the conflict review of %s-%s' % (conflictdoc .canonical_name (),conflictdoc .rev )
262+ return render_to_response ('doc/change_ad.html' ,
263+ {'form' : form ,
264+ 'doc' : review ,
265+ 'titletext' : titletext
284266 },
285267 context_instance = RequestContext (request ))
286268
@@ -318,7 +300,7 @@ def approve(request, name):
318300 review = get_object_or_404 (Document , type = "conflrev" , name = name )
319301
320302 if review .get_state ('conflrev' ).slug not in ('appr-reqnopub-pend' ,'appr-noprob-pend' ):
321- return Http404 ()
303+ raise Http404
322304
323305 login = request .user .get_profile ()
324306
@@ -465,22 +447,6 @@ def start_review(request, name):
465447 context_instance = RequestContext (request ))
466448
467449
468- # There should really only be one of these living in Doc instead of it being spread between idrfc,charter, and here
469- class TelechatForm (forms .Form ):
470- telechat_date = forms .TypedChoiceField (coerce = lambda x : datetime .datetime .strptime (x , '%Y-%m-%d' ).date (), empty_value = None , required = False )
471- returning_item = forms .BooleanField (required = False )
472-
473- def __init__ (self , * args , ** kwargs ):
474- super (self .__class__ , self ).__init__ (* args , ** kwargs )
475-
476- dates = [d .date for d in TelechatDate .objects .active ().order_by ('date' )]
477- init = kwargs ['initial' ].get ("telechat_date" )
478- if init and init not in dates :
479- dates .insert (0 , init )
480-
481- self .fields ['telechat_date' ].choices = [("" , "(not on agenda)" )] + [(d , d .strftime ("%Y-%m-%d" )) for d in dates ]
482-
483-
484450@role_required ("Area Director" , "Secretariat" )
485451def telechat_date (request , name ):
486452 doc = get_object_or_404 (Document , type = "conflrev" , name = name )
@@ -501,7 +467,7 @@ def telechat_date(request, name):
501467 else :
502468 form = TelechatForm (initial = initial )
503469
504- return render_to_response ('doc/conflict_review/ edit_telechat_date.html' ,
470+ return render_to_response ('doc/edit_telechat_date.html' ,
505471 dict (doc = doc ,
506472 form = form ,
507473 user = request .user ,
0 commit comments