Skip to content

Commit d628b73

Browse files
committed
Further improvements to the sig counting functions
1 parent 3c2bb48 commit d628b73

File tree

2 files changed

+11
-17
lines changed

2 files changed

+11
-17
lines changed

packet/commands.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -186,19 +186,14 @@ def fetch_results():
186186
received = packet.signatures_received()
187187
required = packet.signatures_required()
188188

189-
upper_ratio = received.member_total / required.member_total
190-
print("\tUpperclassmen score: {}%".format(round(upper_ratio * 100, 2)))
191-
192-
total_ratio = received.total / required.total
193-
print("\tTotal score: {}%".format(round(total_ratio * 100, 2)))
194-
189+
print("\tUpperclassmen score: {:0.2f}%".format(received.member_total / required.member_total * 100))
190+
print("\tTotal score: {:0.2f}%".format(received.total / required.total * 100))
195191
print()
196192

197193
print("\tEboard: {}/{}".format(received.eboard, required.eboard))
198194
print("\tUpperclassmen: {}/{}".format(received.upper, required.upper))
199195
print("\tFreshmen: {}/{}".format(received.fresh, required.fresh))
200196
print("\tMiscellaneous: {}/{}".format(received.misc, required.misc))
201-
202197
print()
203198

204199
print("\tTotal missed:", required.total - received.total)

packet/models.py

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,18 @@ class SigCounts:
1818
Utility class for returning counts of signatures broken out by type
1919
"""
2020
def __init__(self, eboard, upper, fresh, misc):
21+
# Base fields
2122
self.eboard = eboard
2223
self.upper = upper # Upperclassmen excluding eboard
2324
self.fresh = fresh
2425
self.misc = misc
25-
self.member_total = eboard + upper + misc
26-
self.total = eboard + upper + fresh + misc
26+
27+
# Capped version of misc so it will never be greater than REQUIRED_MISC_SIGNATURES
28+
self.misc_capped = misc if misc <= REQUIRED_MISC_SIGNATURES else REQUIRED_MISC_SIGNATURES
29+
30+
# Totals (calculated using misc_capped)
31+
self.member_total = eboard + upper + self.misc_capped
32+
self.total = eboard + upper + fresh + self.misc_capped
2733

2834

2935
class Freshman(db.Model):
@@ -69,18 +75,11 @@ def signatures_required(self):
6975
return SigCounts(eboard, upper, fresh, REQUIRED_MISC_SIGNATURES)
7076

7177
def signatures_received(self):
72-
"""
73-
Result capped so it will never be greater than that of signatures_required()
74-
"""
7578
eboard = sum(map(lambda sig: 1 if sig.eboard and sig.signed else 0, self.upper_signatures))
7679
upper = sum(map(lambda sig: 1 if not sig.eboard and sig.signed else 0, self.upper_signatures))
7780
fresh = sum(map(lambda sig: 1 if sig.signed else 0, self.fresh_signatures))
7881

79-
misc = len(self.misc_signatures)
80-
if misc > REQUIRED_MISC_SIGNATURES:
81-
misc = REQUIRED_MISC_SIGNATURES
82-
83-
return SigCounts(eboard, upper, fresh, misc)
82+
return SigCounts(eboard, upper, fresh, len(self.misc_signatures))
8483

8584

8685
class UpperSignature(db.Model):

0 commit comments

Comments
 (0)