From 0818e58ddfaa07fd782bf90daeb99c51668b8885 Mon Sep 17 00:00:00 2001 From: Henrik Levkowetz Date: Thu, 19 Aug 2010 15:31:24 +0000 Subject: [PATCH] Merged [2490] from olau@. Fixes issue #364. - Legacy-Id: 2493 Note: SVN reference [2490] has been migrated to Git commit 860041df216ae6b11e059e37c96b64eae45de0ff --- ietf/idrfc/tests.py | 9 +++++++++ ietf/idrfc/views_ballot.py | 7 +++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/ietf/idrfc/tests.py b/ietf/idrfc/tests.py index 10fb9e2f2..0c2ff292f 100644 --- a/ietf/idrfc/tests.py +++ b/ietf/idrfc/tests.py @@ -365,7 +365,16 @@ class EditPositionTestCase(django.test.TestCase): self.assertTrue(pos.discuss == -1) self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) self.assertTrue("Position" in draft.idinternal.comments()[0].comment_text) + + # clear vote + comments_before = draft.idinternal.comments().count() + r = self.client.post(url, dict(position="")) + self.assertEquals(r.status_code, 302) + pos = Position.objects.filter(ballot=draft.idinternal.ballot, ad__login_name="rhousley") + self.assertEquals(len(pos), 0) + self.assertEquals(draft.idinternal.comments().count(), comments_before + 1) + self.assertTrue("Position" in draft.idinternal.comments()[0].comment_text) def test_edit_position_as_secretary(self): draft = InternetDraft.objects.get(filename="draft-ietf-mipshop-pfmipv6") url = urlreverse('doc_edit_position', kwargs=dict(name=draft.filename)) diff --git a/ietf/idrfc/views_ballot.py b/ietf/idrfc/views_ballot.py index 58d8982cb..aed547775 100644 --- a/ietf/idrfc/views_ballot.py +++ b/ietf/idrfc/views_ballot.py @@ -52,7 +52,7 @@ def get_ballot_info(ballot, area_director): return (pos, discuss, comment) class EditPositionForm(forms.Form): - position = forms.ChoiceField(choices=BALLOT_CHOICES, widget=forms.RadioSelect) + position = forms.ChoiceField(choices=BALLOT_CHOICES, widget=forms.RadioSelect, required=False) discuss_text = forms.CharField(required=False, widget=forms.Textarea) comment_text = forms.CharField(required=False, widget=forms.Textarea) @@ -95,7 +95,10 @@ def edit_position(request, name): setattr(pos, vote, 1) if pos.id: - pos.save() + if vote: + pos.save() + else: + pos.delete() if vote != old_vote: add_document_comment(request, doc, "[Ballot Position Update] Position for %s has been changed to %s from %s" % (pos.ad, position_label(vote), position_label(old_vote))) elif vote: