diff --git a/package.json b/package.json index ec881a39..6cc93f51 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "title": "CSH Packet", "name": "csh-packet", - "version": "3.3.0", + "version": "3.3.1", "description": "A web app implementation of the CSH introductory packet.", "bugs": { "url": "https://github.com/ComputerScienceHouse/packet/issues", diff --git a/packet/commands.py b/packet/commands.py index ccfc8e3a..5b290cfd 100644 --- a/packet/commands.py +++ b/packet/commands.py @@ -205,7 +205,7 @@ def ldap_sync(): # pylint: disable=cell-var-from-loop upper_sigs = set(map(lambda sig: sig.member, packet.upper_signatures)) for member in filter(lambda member: member not in upper_sigs, all_upper): - UpperSignature(packet=packet, member=member) + sig = UpperSignature(packet=packet, member=member) sig.eboard = ldap_get_eboard_role(all_upper[sig.member]) sig.active_rtp = sig.member in rtp sig.three_da = sig.member in three_da diff --git a/packet/context_processors.py b/packet/context_processors.py index 52347203..8aade420 100644 --- a/packet/context_processors.py +++ b/packet/context_processors.py @@ -1,7 +1,8 @@ """ Context processors used by the jinja templates """ - +import hashlib +import urllib from functools import lru_cache from datetime import datetime @@ -18,6 +19,7 @@ def get_csh_name(username): except: return username + def get_roles(sig): """ Converts a signature's role fields to a dict for ease of access. @@ -49,6 +51,22 @@ def get_rit_name(username): return username +# pylint: disable=bare-except +@lru_cache(maxsize=128) +def get_rit_image(username): + if username: + addresses = [username + "@rit.edu", username + "@g.rit.edu"] + for addr in addresses: + url = "https://gravatar.com/avatar/" + hashlib.md5(addr.encode("utf8")).hexdigest() + ".jpg?d=404&s=250" + try: + gravatar = urllib.request.urlopen(url) + if gravatar.getcode() == 200: + return url + except: + continue + return "https://www.gravatar.com/avatar/freshmen?d=mp&f=y" + + def log_time(label): """ Used during debugging to log timestamps while rendering templates @@ -58,4 +76,7 @@ def log_time(label): @app.context_processor def utility_processor(): - return dict(get_csh_name=get_csh_name, get_rit_name=get_rit_name, log_time=log_time, get_roles=get_roles) + return dict( + get_csh_name=get_csh_name, get_rit_name=get_rit_name, get_rit_image=get_rit_image, log_time=log_time, + get_roles=get_roles + ) diff --git a/packet/static/js/tables.js b/packet/static/js/tables.js index 44169a9a..5c9fa8f7 100644 --- a/packet/static/js/tables.js +++ b/packet/static/js/tables.js @@ -3,6 +3,7 @@ $(document).ready(function () { $('#active_packets_table').DataTable({ "searching": true, "order": [], + "scrollX": false, "paging": false, "info": false, "columnDefs": [ diff --git a/packet/templates/active_packets.html b/packet/templates/active_packets.html index fd5fdf20..ad3c9889 100644 --- a/packet/templates/active_packets.html +++ b/packet/templates/active_packets.html @@ -42,7 +42,7 @@