@@ -222,18 +222,51 @@ def extend_packet(packet_id):
222222
223223
224224def remove_sig (packet_id , username , is_member ):
225- pass
225+ packet = Packet .by_id (packet_id )
226+
227+ if not packet .is_open ():
228+ print ("Packet is already closed so its signatures cannot be modified" )
229+ return
230+ elif is_member :
231+ sig = UpperSignature .query .filter_by (packet_id = packet_id , member = username ).first ()
232+ if sig is not None :
233+ sig .signed = False
234+ db .session .commit ()
235+ print ("Successfully unsigned packet" )
236+ else :
237+ result = MiscSignature .query .filter_by (packet_id = packet_id , member = username ).delete ()
238+ if result == 1 :
239+ db .session .commit ()
240+ print ("Successfully unsigned packet" )
241+ else :
242+ print ("Failed to unsign packet; could not find signature" )
243+ else :
244+ sig = FreshSignature .query .filter_by (packet_id = packet_id , freshman_username = username ).first ()
245+ if sig is not None :
246+ sig .signed = False
247+ db .session .commit ()
248+ print ("Successfully unsigned packet" )
249+ else :
250+ print ("Failed to unsign packet; {} is not an onfloor" .format (username ))
226251
227252
228253@app .cli .command ("remove-member-sig" )
229254@click .argument ("packet_id" )
230- @click .argument ("username" )
231- def remove_member_sig (packet_id , username ):
232- remove_sig (packet_id , username , True )
255+ @click .argument ("member" )
256+ def remove_member_sig (packet_id , member ):
257+ """
258+ Removes the given member's signature from the given packet
259+ :param member: The member's CSH username
260+ """
261+ remove_sig (packet_id , member , True )
233262
234263
235264@app .cli .command ("remove-freshman-sig" )
236265@click .argument ("packet_id" )
237- @click .argument ("username" )
238- def remove_freshman_sig (packet_id , username ):
239- remove_sig (packet_id , username , False )
266+ @click .argument ("freshman" )
267+ def remove_freshman_sig (packet_id , freshman ):
268+ """
269+ Removes the given freshman's signature from the given packet
270+ :param freshman: The freshman's RIT username
271+ """
272+ remove_sig (packet_id , freshman , False )
0 commit comments