From 511006fe8e4afcb0086a750234786fb4d14e680e Mon Sep 17 00:00:00 2001 From: Ryan Cross Date: Tue, 1 Jun 2021 22:32:45 +0000 Subject: [PATCH] Fix error on Telechat doc detail page when conflict review doc has no ballot. Fixes #3245. Commit ready for merge. - Legacy-Id: 19054 --- ietf/secr/telechat/tests.py | 15 ++++++++++++++- ietf/secr/telechat/views.py | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ietf/secr/telechat/tests.py b/ietf/secr/telechat/tests.py index f515187b6..f621ca64e 100644 --- a/ietf/secr/telechat/tests.py +++ b/ietf/secr/telechat/tests.py @@ -9,7 +9,8 @@ import debug # pyflakes:ignore from django.urls import reverse -from ietf.doc.factories import WgDraftFactory, IndividualRfcFactory, CharterFactory +from ietf.doc.factories import (WgDraftFactory, IndividualRfcFactory, CharterFactory, + IndividualDraftFactory, ConflictReviewFactory) from ietf.doc.models import BallotDocEvent, BallotType, BallotPositionDocEvent, State, Document from ietf.doc.utils import update_telechat, create_ballot_if_not_open from ietf.utils.test_utils import TestCase @@ -92,6 +93,18 @@ class SecrTelechatTestCase(TestCase): self.assertRedirects(response, reverse('ietf.secr.telechat.views.doc', kwargs={'date':date})) self.assertContains(response, 'not on the Telechat agenda') + def test_doc_detail_conflict_review_no_ballot(self): + IndividualDraftFactory(name='draft-imaginary-independent-submission') + review = ConflictReviewFactory(name='conflict-review-imaginary-irtf-submission',review_of=IndividualDraftFactory(name='draft-imaginary-irtf-submission',stream_id='irtf'),notify='notifyme@example.net') + by=Person.objects.get(name="(System)") + d = get_next_telechat_date() + date = d.strftime('%Y-%m-%d') + update_telechat(None, review, by, d) + url = reverse('ietf.secr.telechat.views.doc_detail', kwargs={'date':date, 'name':review.name}) + self.client.login(username="secretary", password="secretary+password") + response = self.client.get(url) + self.assertEqual(response.status_code, 200) + def test_doc_detail_charter(self): by=Person.objects.get(name="(System)") charter = CharterFactory(states=[('charter','intrev')]) diff --git a/ietf/secr/telechat/views.py b/ietf/secr/telechat/views.py index 3c0e9a198..d724dc44c 100644 --- a/ietf/secr/telechat/views.py +++ b/ietf/secr/telechat/views.py @@ -217,7 +217,7 @@ def doc_detail(request, date, name): if doc.active_ballot(): ballot_type = doc.active_ballot().ballot_type else: - ballot_type = BallotType.objects.get(doc_type='draft') + ballot_type = BallotType.objects.get(doc_type=doc.type) BallotFormset = formset_factory(BallotForm, extra=0) BallotFormset.form.__init__ = curry(BallotForm.__init__, ballot_type=ballot_type)