4646 ("" , "No Record" ),
4747 )
4848
49+ # -------------------------------------------------
50+ # Helper Functions
51+ # -------------------------------------------------
52+ def do_undefer_ballot (request , doc ):
53+ '''
54+ Helper function to perform undefer of ballot. Takes the Request object, for use in
55+ logging, and the Document object.
56+ '''
57+ login = request .user .get_profile ()
58+ telechat_date = TelechatDates .objects .all ()[0 ].date1
59+ save_document_in_history (doc )
60+
61+ prev_state = doc .friendly_state ()
62+ if doc .type_id == 'draft' :
63+ doc .set_state (State .objects .get (used = True , type = "draft-iesg" , slug = 'iesg-eva' ))
64+ prev_tag = doc .tags .filter (slug__in = ('point' , 'ad-f-up' , 'need-rev' , 'extpty' ))
65+ prev_tag = prev_tag [0 ] if prev_tag else None
66+ if prev_tag :
67+ doc .tags .remove (prev_tag )
68+ elif doc .type_id == 'conflrev' :
69+ doc .set_state (State .objects .get (used = True , type = 'conflrev' ,slug = 'iesgeval' ))
70+
71+ e = docutil_log_state_changed (request , doc , login , doc .friendly_state (), prev_state )
72+
73+ doc .time = e .time
74+ doc .save ()
75+
76+ update_telechat (request , doc , login , telechat_date )
77+ email_state_changed (request , doc , e .desc )
78+
4979def position_to_ballot_choice (position ):
5080 for v , label in BALLOT_CHOICES :
5181 if v and getattr (position , v ):
@@ -70,6 +100,7 @@ def get_ballot_info(ballot, area_director):
70100class EditPositionForm (forms .Form ):
71101 pass
72102
103+ # -------------------------------------------------
73104@group_required ('Area_Director' ,'Secretariat' )
74105def edit_position (request , name ):
75106 pass
@@ -392,6 +423,8 @@ def clear_ballot(request, name):
392423 for t in BallotType .objects .filter (doc_type = doc .type_id ):
393424 close_ballot (doc , by , t .slug )
394425 create_ballot_if_not_open (doc , by , t .slug )
426+ if doc .get_state ('draft-iesg' ).slug == 'defer' :
427+ do_undefer_ballot (request ,doc )
395428 return HttpResponseRedirect (urlreverse ("doc_view" , kwargs = dict (name = doc .name )))
396429
397430 return render_to_response ('idrfc/clear_ballot.html' ,
@@ -462,30 +495,10 @@ def undefer_ballotREDESIGN(request, name):
462495 if doc .type_id == 'draft' and not doc .get_state ("draft-iesg" ):
463496 raise Http404 ()
464497
465- login = request .user .get_profile ()
466498 telechat_date = TelechatDates .objects .all ()[0 ].date1
467499
468500 if request .method == 'POST' :
469- save_document_in_history (doc )
470-
471- prev_state = doc .friendly_state ()
472- if doc .type_id == 'draft' :
473- doc .set_state (State .objects .get (used = True , type = "draft-iesg" , slug = 'iesg-eva' ))
474- prev_tag = doc .tags .filter (slug__in = ('point' , 'ad-f-up' , 'need-rev' , 'extpty' ))
475- prev_tag = prev_tag [0 ] if prev_tag else None
476- if prev_tag :
477- doc .tags .remove (prev_tag )
478- elif doc .type_id == 'conflrev' :
479- doc .set_state (State .objects .get (used = True , type = 'conflrev' ,slug = 'iesgeval' ))
480-
481- e = docutil_log_state_changed (request , doc , login , doc .friendly_state (), prev_state )
482-
483- doc .time = e .time
484- doc .save ()
485-
486- update_telechat (request , doc , login , telechat_date )
487- email_state_changed (request , doc , e .desc )
488-
501+ do_undefer_ballot (request ,doc )
489502 return HttpResponseRedirect (doc .get_absolute_url ())
490503
491504 return render_to_response ('idrfc/undefer_ballot.html' ,
@@ -497,7 +510,6 @@ def undefer_ballotREDESIGN(request, name):
497510if settings .USE_DB_REDESIGN_PROXY_CLASSES :
498511 undefer_ballot = undefer_ballotREDESIGN
499512
500-
501513class LastCallTextForm (forms .ModelForm ):
502514 def clean_last_call_text (self ):
503515 lines = self .cleaned_data ["last_call_text" ].split ("\r \n " )
0 commit comments