#!/usr/bin/env python3 import re from flask import Flask, render_template app = Flask(__name__) from common import * def parse_list(member, regex): data_list = [] for key, value in member.items(): match = re.match(regex, key) if match is not None and value != '': data_list.append(match.group(1)) return ", ".join(data_list) def parse_members(members): data = [] for member in members: props = { 'Name': member['Account Name'], 'Renewal Date': member['Renewal Date'], 'Card Number': member['Access Card Facility Code'] + '-' \ + member['Access Card Number'], 'Account on Hold': "Yes" if member['Account on Hold'] != '' else "No" } certifications = [] access = [] levels = [] props['Certifications'] = parse_list(member, 'Certified: (.*)') props['Door Access'] = parse_list(member, 'Access (.*)\?') props['Memebership Level'] = parse_list(member, 'CMS (.*)') data.append(props) return data @app.route("/") def main(): # maybe not now: membership agreement signed # TODO: renewal date members = getMembershipworksData( ['members', 'staff'], "lvl,xws,xms,xsc,xas,xfd,xac,phn,eml,lbl,xcf,nam,end") data = parse_members(members) headers = ['Name', 'Certifications', 'Door Access', 'Memebership Level', 'Card Number', 'Renewal Date', 'Account on Hold'] return render_template("members.html", headers=headers, members=data) if __name__ == "__main__": app.run(debug=True, host='0.0.0.0')