Skip to content

Commit a8b90f7

Browse files
authored
Merge pull request #111 from mxmeinhold/off-floor-req
Adds all active members as required signatures
2 parents 69080a3 + 22cfee9 commit a8b90f7

File tree

2 files changed

+15
-17
lines changed

2 files changed

+15
-17
lines changed

packet/commands.py

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99

1010
from . import app, db
1111
from .models import Freshman, Packet, FreshSignature, UpperSignature, MiscSignature
12-
from .ldap import ldap_get_eboard, ldap_get_live_onfloor
12+
from .ldap import ldap_get_active_members, ldap_is_eboard, ldap_is_intromember
1313

1414

1515
@app.cli.command("create-secret")
@@ -113,9 +113,7 @@ def create_packets(freshmen_csv):
113113
end = datetime.combine(base_date, packet_end_time) + timedelta(days=14)
114114

115115
print("Fetching data from LDAP...")
116-
eboard = set(member.uid for member in ldap_get_eboard())
117-
onfloor = set(member.uid for member in ldap_get_live_onfloor())
118-
all_upper = eboard.union(onfloor)
116+
all_upper = list(filter(lambda member: not ldap_is_intromember(member), ldap_get_active_members()))
119117

120118
# Create the new packets and the signatures for each freshman in the given CSV
121119
freshmen_in_csv = parse_csv(freshmen_csv)
@@ -125,7 +123,7 @@ def create_packets(freshmen_csv):
125123
db.session.add(packet)
126124

127125
for member in all_upper:
128-
db.session.add(UpperSignature(packet=packet, member=member, eboard=member in eboard))
126+
db.session.add(UpperSignature(packet=packet, member=member.uid, eboard=ldap_is_eboard(member)))
129127

130128
for onfloor_freshman in Freshman.query.filter_by(onfloor=True).filter(Freshman.rit_username !=
131129
freshman.rit_username).all():
@@ -141,32 +139,32 @@ def ldap_sync():
141139
Updates the upper and misc sigs in the DB to match ldap.
142140
"""
143141
print("Fetching data from LDAP...")
144-
eboard = set(member.uid for member in ldap_get_eboard())
145-
onfloor = set(member.uid for member in ldap_get_live_onfloor())
146-
all_upper = eboard.union(onfloor)
142+
all_upper = {member.uid: member for member in filter(lambda member: not ldap_is_intromember(member),
143+
ldap_get_active_members())}
147144

148145
print("Applying updates to the DB...")
149146
for packet in Packet.query.filter(Packet.end > datetime.now()).all():
150147
# Update the eboard state of all UpperSignatures
151-
for sig in packet.upper_signatures:
152-
sig.eboard = sig.member in eboard
148+
for sig in filter(lambda sig: sig.member in all_upper, packet.upper_signatures):
149+
sig.eboard = ldap_is_eboard(all_upper[sig.member])
153150

154-
# Migrate UpperSignatures that are from accounts that are not eboard or onfloor anymore
151+
# Migrate UpperSignatures that are from accounts that are not active anymore
155152
for sig in filter(lambda sig: sig.member not in all_upper, packet.upper_signatures):
156153
UpperSignature.query.filter_by(packet_id=packet.id, member=sig.member).delete()
157154
if sig.signed:
158155
db.session.add(MiscSignature(packet=packet, member=sig.member))
159156

160-
# Migrate MiscSignatures that are from accounts that are now eboard or onfloor members
157+
# Migrate MiscSignatures that are from accounts that are now active members
161158
for sig in filter(lambda sig: sig.member in all_upper, packet.misc_signatures):
162159
MiscSignature.query.filter_by(packet_id=packet.id, member=sig.member).delete()
163-
db.session.add(UpperSignature(packet=packet, member=sig.member, eboard=sig.member in eboard, signed=True))
160+
db.session.add(UpperSignature(packet=packet, member=sig.member,
161+
eboard=ldap_is_eboard(all_upper[sig.member]), signed=True))
164162

165-
# Create UpperSignatures for any new eboard or onfloor members
163+
# Create UpperSignatures for any new active members
166164
# pylint: disable=cell-var-from-loop
167165
upper_sigs = set(map(lambda sig: sig.member, packet.upper_signatures))
168166
for member in filter(lambda member: member not in upper_sigs, all_upper):
169-
db.session.add(UpperSignature(packet=packet, member=member, eboard=member in eboard))
167+
db.session.add(UpperSignature(packet=packet, member=member, eboard=ldap_is_eboard(all_upper[member])))
170168

171169
db.session.commit()
172170
print("Done!")

packet/models.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,8 @@
1010

1111
from . import db
1212

13-
# The required number of off-floor and alumni signatures
14-
REQUIRED_MISC_SIGNATURES = 15
13+
# The required number of honorary member, advisor, and alumni signatures
14+
REQUIRED_MISC_SIGNATURES = 10
1515

1616

1717
class SigCounts:

0 commit comments

Comments
 (0)