Skip to content

Commit 3f89cc8

Browse files
authored
Merge pull request #93 from ComputerScienceHouse/develop
Version 3.0.6
2 parents e573249 + 3513117 commit 3f89cc8

File tree

5 files changed

+40
-16
lines changed

5 files changed

+40
-16
lines changed

packet/_version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__version__ = "3.0.5"
1+
__version__ = "3.0.6"

packet/member.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from sqlalchemy import exc, text
55

66
from .models import db, REQUIRED_MISC_SIGNATURES
7-
from .packet import get_number_required, get_misc_signatures
7+
from .packet import get_misc_signatures, get_number_required_off_floor
88

99
LOGGER = getLogger(__name__)
1010

@@ -22,7 +22,7 @@ def current_packets(member, intro=False, onfloor=False):
2222
SPacket = namedtuple('spacket', ['rit_username', 'name', 'did_sign', 'total_signatures', 'required_signatures'])
2323

2424
packets = []
25-
base_required = get_number_required()
25+
base_required = get_number_required_off_floor()
2626

2727
signed_packets = get_signed_packets(member, intro, onfloor)
2828
misc_signatures = get_misc_signatures()

packet/packet.py

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
from datetime import datetime
22
from functools import lru_cache
33

4-
from sqlalchemy import exc
4+
from sqlalchemy import exc, false, true
55

66
from packet.ldap import ldap_get_member, ldap_is_intromember
77
from .models import Freshman, UpperSignature, FreshSignature, MiscSignature, db, Packet
@@ -88,6 +88,7 @@ def get_signatures(freshman_username):
8888
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) \
91+
.order_by(MiscSignature.updated.asc()) \
9192
.distinct().all()
9293

9394
return {'eboard': eboard,
@@ -150,23 +151,41 @@ def get_number_signed(freshman_username, separated=False):
150151
.first().signatures_received(not separated)
151152

152153

153-
@lru_cache(maxsize=512)
154-
def get_number_required(separated=False):
154+
@lru_cache(maxsize=256)
155+
def get_number_required_on_floor(separated=False):
155156
"""
156157
Get the number of required signatures for Packet (not counting on/off-floor status)
157158
:param separated: whether or not to separate those by category
158159
:return: a map or an integer of total signatures required
159160
"""
160-
return db.session.query(Packet) \
161-
.filter(Packet.start < datetime.now(), Packet.end > datetime.now()).first().signatures_required(not separated)
161+
return db.session.query(Packet).join(Freshman).filter(
162+
Packet.start < datetime.now(),
163+
Packet.end > datetime.now(),
164+
Freshman.onfloor == true()
165+
).first().signatures_required(not separated)
166+
167+
168+
@lru_cache(maxsize=256)
169+
def get_number_required_off_floor(separated=False):
170+
"""
171+
Get the number of required signatures for Packet (not counting on/off-floor status)
172+
:param separated: whether or not to separate those by category
173+
:return: a map or an integer of total signatures required
174+
"""
175+
return db.session.query(Packet).join(Freshman).filter(
176+
Packet.start < datetime.now(),
177+
Packet.end > datetime.now(),
178+
Freshman.onfloor == false()
179+
).first().signatures_required(not separated)
162180

163181

164182
@lru_cache(maxsize=512)
165183
def get_upperclassmen_percent(username, onfloor=False):
166-
required = get_number_required(True)
167-
upperclassmen_required = required['upperclassmen'] + required['eboard'] + required['miscellaneous']
168184
if onfloor:
169-
upperclassmen_required -= 1
185+
required = get_number_required_on_floor(True)
186+
else:
187+
required = get_number_required_off_floor(True)
188+
upperclassmen_required = required['upperclassmen'] + required['eboard'] + required['miscellaneous']
170189

171190
signatures = get_number_signed(username, True)
172191
upperclassmen_signature = signatures['upperclassmen'] + signatures['eboard'] + signatures['miscellaneous']
@@ -207,7 +226,8 @@ def clear_cache():
207226
"""
208227
get_upperclassmen_percent.cache_clear()
209228
get_number_signed.cache_clear()
210-
get_number_required.cache_clear()
229+
get_number_required_on_floor.cache_clear()
230+
get_number_required_off_floor.cache_clear()
211231
signed_packets.cache_clear()
212232
get_signatures.cache_clear()
213233
get_misc_signatures.cache_clear()

packet/routes/shared.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
from flask import render_template, redirect
22

3-
from packet import auth, app, ldap
3+
from packet import auth, app
44
from packet.ldap import ldap_is_eboard
55
from packet.member import current_packets
6-
from packet.packet import get_number_required, get_number_signed, signed_packet, get_freshman
6+
from packet.packet import get_number_signed, signed_packet, get_freshman, \
7+
get_number_required_off_floor, get_number_required_on_floor
78
from packet.packet import get_signatures, get_upperclassmen_percent
89
from packet.utils import before_request
910

@@ -22,7 +23,10 @@ def freshman_packet(uid, info=None):
2223
upperclassmen_percent = get_upperclassmen_percent(uid)
2324
signatures = get_signatures(uid)
2425
signed_dict = get_number_signed(uid, True)
25-
required = get_number_required()
26+
if freshman.onfloor:
27+
required = get_number_required_on_floor()
28+
else:
29+
required = get_number_required_off_floor()
2630
signed = get_number_signed(uid)
2731

2832
packet_signed = signed_packet(info['uid'], uid)

packet/templates/packet.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,7 @@ <h5>Upperclassmen Score - {{ '%0.2f' % upperclassmen_percent }}%</h5>
179179
data-length-changable="true" data-paginated="false">
180180
<tbody>
181181
{% for m in signatures.misc %}
182-
<tr {% if m.signed %}style="background-color: #4caf505e" {% endif %}>
182+
<tr style="background-color: #4caf505e">
183183
<td width="3%">
184184
{{ loop.index }}.
185185
</td>

0 commit comments

Comments
 (0)