@@ -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
2935class 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
8685class UpperSignature (db .Model ):
0 commit comments