Skip to content

Commit 99e8a1c

Browse files
committed
Implemented the remove sig commands
1 parent c11599f commit 99e8a1c

File tree

1 file changed

+40
-7
lines changed

1 file changed

+40
-7
lines changed

packet/commands.py

Lines changed: 40 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -222,18 +222,51 @@ def extend_packet(packet_id):
222222

223223

224224
def 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

Comments
 (0)