@@ -58,7 +58,6 @@ def set_essays(freshman_username, eboard=None, events=None, achieve=None):
5858 return True
5959
6060
61- @lru_cache (maxsize = 2048 )
6261def get_signatures (freshman_username ):
6362 """
6463 Gets a list of all signatures for the given member
@@ -75,17 +74,17 @@ def get_signatures(freshman_username):
7574
7675 upper_signatures = db .session .query (UpperSignature .member , UpperSignature .signed , Freshman .rit_username ) \
7776 .select_from (UpperSignature ).join (Packet ).join (Freshman ) \
78- .filter (UpperSignature .packet_id == packet .id , UpperSignature .eboard .is_ (False ))\
79- .order_by (UpperSignature .signed .desc ())\
77+ .filter (UpperSignature .packet_id == packet .id , UpperSignature .eboard .is_ (False )) \
78+ .order_by (UpperSignature .signed .desc ()) \
8079 .distinct ().all ()
81- fresh_signatures = \
82- db . session . query ( FreshSignature .freshman_username , FreshSignature .signed , Freshman .rit_username , Freshman .name ) \
80+ fresh_signatures = db . session . query (
81+ FreshSignature .freshman_username , FreshSignature .signed , Freshman .rit_username , Freshman .name ) \
8382 .select_from (Packet ).join (FreshSignature ).join (Freshman ) \
8483 .filter (FreshSignature .packet_id == packet .id ) \
8584 .order_by (FreshSignature .signed .desc ()) \
8685 .distinct ().all ()
8786
88- misc_signatures = db .session .query (MiscSignature .member , Freshman .rit_username )\
87+ misc_signatures = db .session .query (MiscSignature .member , Freshman .rit_username ) \
8988 .select_from (MiscSignature ).join (Packet ).join (Freshman ) \
9089 .filter (MiscSignature .packet_id == packet .id ) \
9190 .distinct ().all ()
@@ -111,7 +110,7 @@ def get_misc_signatures():
111110 return packet_misc_sigs
112111
113112
114- @lru_cache (maxsize = 2048 )
113+ @lru_cache (maxsize = 512 )
115114def valid_signature (signer_username , freshman_username ):
116115 if signer_username == freshman_username :
117116 return False
@@ -127,17 +126,15 @@ def valid_signature(signer_username, freshman_username):
127126 return True
128127
129128
130- @lru_cache (maxsize = 512 )
131129def get_freshman (freshman_username ):
132130 return Freshman .query .filter_by (rit_username = freshman_username ).first ()
133131
134132
135- @lru_cache (maxsize = 512 )
136133def get_current_packet (freshman_username ):
137134 return get_freshman (freshman_username ).current_packet ()
138135
139136
140- @lru_cache (maxsize = 2048 )
137+ @lru_cache (maxsize = 512 )
141138def get_number_signed (freshman_username , separated = False ):
142139 """
143140 Gets the raw number of signatures for the user
@@ -151,7 +148,7 @@ def get_number_signed(freshman_username, separated=False):
151148 .first ().signatures_received (not separated )
152149
153150
154- @lru_cache (maxsize = 2048 )
151+ @lru_cache (maxsize = 512 )
155152def get_number_required (separated = False ):
156153 """
157154 Get the number of required signatures for Packet (not counting on/off-floor status)
@@ -162,7 +159,6 @@ def get_number_required(separated=False):
162159 .filter (Packet .start < datetime .now (), Packet .end > datetime .now ()).first ().signatures_required (not separated )
163160
164161
165- @lru_cache (maxsize = 2048 )
166162def get_upperclassmen_percent (username , onfloor = False ):
167163 required = get_number_required (True )
168164 upperclassmen_required = required ['upperclassmen' ] + required ['eboard' ] + required ['miscellaneous' ]
@@ -186,14 +182,26 @@ def signed_packets(member):
186182 return MiscSignature .query .filter_by (member = member ).all ()
187183
188184
185+ @lru_cache (maxsize = 512 )
186+ def signed_packet (signer , freshman ):
187+ packet = get_current_packet (freshman )
188+ freshman_signature = FreshSignature .query .filter_by (packet = packet , freshman_username = signer , signed = True ).first ()
189+ upper_signature = UpperSignature .query .filter_by (packet = packet , member = signer , signed = True ).first ()
190+ misc_signature = MiscSignature .query .filter_by (packet = packet , member = signer ).first ()
191+
192+ if freshman_signature is not None :
193+ return freshman_signature .signed
194+ if upper_signature is not None :
195+ return upper_signature .signed
196+ if misc_signature is not None :
197+ return misc_signature
198+ return False
199+
200+
189201def clear_cache ():
190202 """
191203 Clear cache of all frequently changing data
192204 """
193205 get_number_signed .cache_clear ()
194- get_signatures .cache_clear ()
195206 get_number_required .cache_clear ()
196- get_upperclassmen_percent .cache_clear ()
197- get_freshman .cache_clear ()
198- get_current_packet .cache_clear ()
199207 signed_packets .cache_clear ()
0 commit comments