@@ -58,7 +58,7 @@ def set_essays(freshman_username, eboard=None, events=None, achieve=None):
5858 return True
5959
6060
61- @lru_cache (maxsize = 2048 )
61+ @lru_cache (maxsize = 512 )
6262def get_signatures (freshman_username ):
6363 """
6464 Gets a list of all signatures for the given member
@@ -75,17 +75,17 @@ def get_signatures(freshman_username):
7575
7676 upper_signatures = db .session .query (UpperSignature .member , UpperSignature .signed , Freshman .rit_username ) \
7777 .select_from (UpperSignature ).join (Packet ).join (Freshman ) \
78- .filter (UpperSignature .packet_id == packet .id , UpperSignature .eboard .is_ (False ))\
79- .order_by (UpperSignature .signed .desc ())\
78+ .filter (UpperSignature .packet_id == packet .id , UpperSignature .eboard .is_ (False )) \
79+ .order_by (UpperSignature .signed .desc ()) \
8080 .distinct ().all ()
81- fresh_signatures = \
82- db . session . query ( FreshSignature .freshman_username , FreshSignature .signed , Freshman .rit_username , Freshman .name ) \
81+ fresh_signatures = db . session . query (
82+ FreshSignature .freshman_username , FreshSignature .signed , Freshman .rit_username , Freshman .name ) \
8383 .select_from (Packet ).join (FreshSignature ).join (Freshman ) \
8484 .filter (FreshSignature .packet_id == packet .id ) \
8585 .order_by (FreshSignature .signed .desc ()) \
8686 .distinct ().all ()
8787
88- misc_signatures = db .session .query (MiscSignature .member , Freshman .rit_username )\
88+ misc_signatures = db .session .query (MiscSignature .member , Freshman .rit_username ) \
8989 .select_from (MiscSignature ).join (Packet ).join (Freshman ) \
9090 .filter (MiscSignature .packet_id == packet .id ) \
9191 .distinct ().all ()
@@ -96,6 +96,7 @@ def get_signatures(freshman_username):
9696 'misc' : misc_signatures }
9797
9898
99+ @lru_cache (maxsize = 512 )
99100def get_misc_signatures ():
100101 packet_misc_sigs = {}
101102 try :
@@ -111,7 +112,7 @@ def get_misc_signatures():
111112 return packet_misc_sigs
112113
113114
114- @lru_cache (maxsize = 2048 )
115+ @lru_cache (maxsize = 512 )
115116def valid_signature (signer_username , freshman_username ):
116117 if signer_username == freshman_username :
117118 return False
@@ -127,17 +128,15 @@ def valid_signature(signer_username, freshman_username):
127128 return True
128129
129130
130- @lru_cache (maxsize = 512 )
131131def get_freshman (freshman_username ):
132132 return Freshman .query .filter_by (rit_username = freshman_username ).first ()
133133
134134
135- @lru_cache (maxsize = 512 )
136135def get_current_packet (freshman_username ):
137136 return get_freshman (freshman_username ).current_packet ()
138137
139138
140- @lru_cache (maxsize = 2048 )
139+ @lru_cache (maxsize = 512 )
141140def get_number_signed (freshman_username , separated = False ):
142141 """
143142 Gets the raw number of signatures for the user
@@ -151,7 +150,7 @@ def get_number_signed(freshman_username, separated=False):
151150 .first ().signatures_received (not separated )
152151
153152
154- @lru_cache (maxsize = 2048 )
153+ @lru_cache (maxsize = 512 )
155154def get_number_required (separated = False ):
156155 """
157156 Get the number of required signatures for Packet (not counting on/off-floor status)
@@ -162,7 +161,7 @@ def get_number_required(separated=False):
162161 .filter (Packet .start < datetime .now (), Packet .end > datetime .now ()).first ().signatures_required (not separated )
163162
164163
165- @lru_cache (maxsize = 2048 )
164+ @lru_cache (maxsize = 512 )
166165def get_upperclassmen_percent (username , onfloor = False ):
167166 required = get_number_required (True )
168167 upperclassmen_required = required ['upperclassmen' ] + required ['eboard' ] + required ['miscellaneous' ]
@@ -186,14 +185,29 @@ def signed_packets(member):
186185 return MiscSignature .query .filter_by (member = member ).all ()
187186
188187
188+ @lru_cache (maxsize = 512 )
189+ def signed_packet (signer , freshman ):
190+ packet = get_current_packet (freshman )
191+ freshman_signature = FreshSignature .query .filter_by (packet = packet , freshman_username = signer , signed = True ).first ()
192+ upper_signature = UpperSignature .query .filter_by (packet = packet , member = signer , signed = True ).first ()
193+ misc_signature = MiscSignature .query .filter_by (packet = packet , member = signer ).first ()
194+
195+ if freshman_signature is not None :
196+ return freshman_signature .signed
197+ if upper_signature is not None :
198+ return upper_signature .signed
199+ if misc_signature is not None :
200+ return misc_signature
201+ return False
202+
203+
189204def clear_cache ():
190205 """
191206 Clear cache of all frequently changing data
192207 """
208+ get_upperclassmen_percent .cache_clear ()
193209 get_number_signed .cache_clear ()
194- get_signatures .cache_clear ()
195210 get_number_required .cache_clear ()
196- get_upperclassmen_percent .cache_clear ()
197- get_freshman .cache_clear ()
198- get_current_packet .cache_clear ()
199211 signed_packets .cache_clear ()
212+ get_signatures .cache_clear ()
213+ get_misc_signatures .cache_clear ()
0 commit comments