Skip to content

Commit fe13ee8

Browse files
committed
Repair the ballot requirements string
- Legacy-Id: 5516
1 parent d8c765e commit fe13ee8

3 files changed

Lines changed: 44 additions & 13 deletions

File tree

ietf/doc/proxy.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -592,18 +592,32 @@ def needed(self, standardsTrack=True):
592592
needed = int((len(ads) - recuse) * 2 / 3)
593593
else:
594594
# Info and experimental only need one position.
595-
needed = 1
596-
have = yes + noobj + discuss
595+
# Info and experimental without Yes have their full spec now.
596+
if yes < 1:
597+
return answer.rstrip()
598+
else:
599+
needed = 1
600+
have = yes + noobj
597601
if have < needed:
598602
more = needed - have
599603
if more == 1:
600-
answer += "Needs %d more position. " % more
604+
answer += "Needs one more YES or NO OBJECTION position "
605+
else:
606+
answer += "Needs %d more YES or NO OBJECTION positions " % more
607+
if discuss:
608+
if discuss == 1:
609+
answer += "once the DISCUSS is resolved."
610+
else:
611+
answer += "once %d DISCUSSes are resolved." % discuss
601612
else:
602-
answer += "Needs %d more positions. " % more
613+
answer += ". "
603614
else:
604615
answer += "Has enough positions to pass"
605616
if discuss:
606-
answer += " once DISCUSSes are resolved"
617+
if discuss == 1:
618+
answer += "once the DISCUSS is resolved"
619+
else:
620+
answer += "once %d DISCUSSes are resolved" % discuss
607621
answer += ". "
608622

609623
return answer.rstrip()

ietf/doc/utils.py

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,14 +59,17 @@ def needed_ballot_positions(doc, active_positions):
5959
# For standards-track, need positions from 2/3 of the
6060
# non-recused current IESG.
6161
needed = (len(active_positions) - len(recuse)) * 2 // 3
62+
else:
63+
if len(yes) < 1:
64+
return " ".join(answer)
6265

63-
have = len(yes) + len(noobj) + len(blocking)
66+
have = len(yes) + len(noobj)
6467
if have < needed:
6568
more = needed - have
6669
if more == 1:
67-
answer.append("Needs %d more position." % more)
70+
answer.append("Needs one more YES or NO OBJECTION position to pass.")
6871
else:
69-
answer.append("Needs %d more positions." % more)
72+
answer.append("Needs %d more YES or NO OBJECTION positions to pass." % more)
7073
else:
7174
if blocking:
7275
answer.append("Has enough positions to pass once %s positions are resolved." % blocking[0].pos.name.upper())

ietf/idtracker/models.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -516,18 +516,32 @@ def needed(self, standardsTrack=True):
516516
needed = ( active_iesg.count() - recuse ) * 2 / 3
517517
else:
518518
# Info and experimental only need one position.
519-
needed = 1
520-
have = yes + noobj + discuss
519+
# Info and experimental without Yes have their full spec now.
520+
if yes < 1:
521+
return answer.rstrip()
522+
else:
523+
needed = 1
524+
have = yes + noobj
521525
if have < needed:
522526
more = needed - have
523527
if more == 1:
524-
answer += "Needs %d more position. " % more
528+
answer += "Needs one more position "
529+
else:
530+
answer += "Needs %d more positions " % more
531+
if discuss:
532+
if discuss == 1:
533+
answer += "once the DISCUSS is resolved."
534+
else:
535+
answer += "once %d DISCUSSES are resolved." % discuss
525536
else:
526-
answer += "Needs %d more positions. " % more
537+
answer += ". "
527538
else:
528539
answer += "Has enough positions to pass"
529540
if discuss:
530-
answer += " once DISCUSSes are resolved"
541+
if discuss == 1:
542+
answer += " once the DISCUSS is resolved"
543+
else:
544+
answer += " once %d DISCUSSES are resolved" % discuss
531545
answer += ". "
532546

533547
return answer.rstrip()

0 commit comments

Comments
 (0)