@@ -43,12 +43,6 @@ class Freshman(db.Model):
4343 # One freshman can have multiple packets if they repeat the intro process
4444 packets = relationship ("Packet" , order_by = "desc(Packet.id)" )
4545
46- def current_packet (self ):
47- """
48- :return: The most recent packet for this freshman
49- """
50- return next (iter (self .packets ), None )
51-
5246
5347class Packet (db .Model ):
5448 __tablename__ = "packet"
@@ -61,23 +55,29 @@ class Packet(db.Model):
6155 info_achieve = Column (Text , nullable = True ) # Used to fulfil the technical achievements list requirement
6256
6357 freshman = relationship ("Freshman" , back_populates = "packets" )
64- upper_signatures = relationship ("UpperSignature" , order_by = "UpperSignature.signed.desc(), UpperSignature.updated " ,
65- lazy = "subquery " )
66- fresh_signatures = relationship ("FreshSignature" , order_by = "FreshSignature.signed.desc(), FreshSignature.updated " ,
67- lazy = "subquery " )
68- misc_signatures = relationship ("MiscSignature" , order_by = "MiscSignature.updated " , lazy = "subquery " )
58+ upper_signatures = relationship ("UpperSignature" , lazy = "subquery " ,
59+ order_by = "UpperSignature.signed.desc(), UpperSignature.updated " )
60+ fresh_signatures = relationship ("FreshSignature" , lazy = "subquery " ,
61+ order_by = "FreshSignature.signed.desc(), FreshSignature.updated " )
62+ misc_signatures = relationship ("MiscSignature" , lazy = "subquery " , order_by = "MiscSignature.updated " )
6963
7064 def is_open (self ):
7165 return self .start < datetime .now () < self .end
7266
7367 def signatures_required (self ):
68+ """
69+ :return: A SigCounts instance with the fields set to the number of signatures received by this packet
70+ """
7471 eboard = sum (map (lambda sig : 1 if sig .eboard else 0 , self .upper_signatures ))
7572 upper = len (self .upper_signatures ) - eboard
7673 fresh = len (self .fresh_signatures )
7774
7875 return SigCounts (eboard , upper , fresh , REQUIRED_MISC_SIGNATURES )
7976
8077 def signatures_received (self ):
78+ """
79+ :return: A SigCounts instance with the fields set to the number of required signatures for this packet
80+ """
8181 eboard = sum (map (lambda sig : 1 if sig .eboard and sig .signed else 0 , self .upper_signatures ))
8282 upper = sum (map (lambda sig : 1 if not sig .eboard and sig .signed else 0 , self .upper_signatures ))
8383 fresh = sum (map (lambda sig : 1 if sig .signed else 0 , self .fresh_signatures ))
@@ -86,7 +86,9 @@ def signatures_received(self):
8686
8787 def did_sign (self , username , is_csh ):
8888 """
89+ :param username: The CSH or RIT username to check for
8990 :param is_csh: Set to True for CSH accounts and False for freshmen
91+ :return: Boolean value for if the given account signed this packet
9092 """
9193 if is_csh :
9294 for sig in filter (lambda sig : sig .member == username , chain (self .upper_signatures , self .misc_signatures )):
0 commit comments