1616import debug # pyflakes:ignore
1717
1818from ietf .doc .models import ( Document , State , DocEvent , BallotDocEvent , BallotPositionDocEvent ,
19- LastCallDocEvent , WriteupDocEvent , IESG_SUBSTATE_TAGS )
19+ BallotCommentDocEvent , LastCallDocEvent , WriteupDocEvent , IESG_SUBSTATE_TAGS )
2020from ietf .doc .utils import ( add_state_change_event , close_ballot , close_open_ballots ,
2121 create_ballot_if_not_open , update_telechat )
2222from ietf .doc .mails import ( email_ballot_deferred , email_ballot_undeferred ,
@@ -112,7 +112,7 @@ def clean_discuss(self):
112112 raise forms .ValidationError ("You must enter a non-empty discuss" )
113113 return entered_discuss
114114
115- def save_position (form , doc , ballot , ad , login = None ):
115+ def save_position (form , doc , ballot , ad , login = None , send_email = False ):
116116 # save the vote
117117 if login is None :
118118 login = ad
@@ -141,10 +141,10 @@ def save_position(form, doc, ballot, ad, login=None):
141141 changes .append ("comment" )
142142
143143 if pos .comment :
144- e = DocEvent (doc = doc , rev = doc .rev )
145- e .by = ad # otherwise we can't see who's saying it
144+ e = BallotCommentDocEvent (doc = doc , rev = doc .rev , by = ad , send_email = send_email )
146145 e .type = "added_comment"
147146 e .desc = "[Ballot comment]\n " + pos .comment
147+
148148 added_events .append (e )
149149
150150 old_discuss = old_pos .discuss if old_pos else ""
@@ -153,8 +153,7 @@ def save_position(form, doc, ballot, ad, login=None):
153153 changes .append ("discuss" )
154154
155155 if pos .pos .blocking :
156- e = DocEvent (doc = doc , rev = doc .rev , by = login )
157- e .by = ad # otherwise we can't see who's saying it
156+ e = BallotCommentDocEvent (doc = doc , rev = doc .rev , by = ad , send_email = send_email )
158157 e .type = "added_comment"
159158 e .desc = "[Ballot %s]\n " % pos .pos .name .lower ()
160159 e .desc += pos .discuss
@@ -209,9 +208,10 @@ def edit_position(request, name, ballot_id):
209208
210209 form = EditPositionForm (request .POST , ballot_type = ballot .ballot_type )
211210 if form .is_valid ():
212- save_position (form , doc , ballot , ad , login )
211+ send_mail = request .POST .get ("send_mail" ) or False
212+ save_position (form , doc , ballot , ad , login , send_mail )
213213
214- if request . POST . get ( " send_mail" ) :
214+ if send_mail :
215215 qstr = ""
216216 if request .GET .get ('ad' ):
217217 qstr += "?ad=%s" % request .GET .get ('ad' )
@@ -274,7 +274,7 @@ def err(code, text):
274274 return err (400 , "No open ballot found" )
275275 form = EditPositionForm (request .POST , ballot_type = ballot .ballot_type )
276276 if form .is_valid ():
277- pos = save_position (form , doc , ballot , ad )
277+ pos = save_position (form , doc , ballot , ad , send_email = True )
278278 else :
279279 errors = form .errors
280280 summary = ',' .join ([ "%s: %s" % (f , striptags (errors [f ])) for f in errors ])
0 commit comments