aboutsummaryrefslogtreecommitdiffstats
path: root/app.py
diff options
context:
space:
mode:
authorjwansek <eddie.atten.ea29@gmail.com>2023-05-11 18:54:10 +0100
committerjwansek <eddie.atten.ea29@gmail.com>2023-05-11 18:54:10 +0100
commit469de094098c5cf149b9aeab9c2a7d23aa22c11d (patch)
treebe9bd0e6c1a4bbfcc9fe878420dd7569deec0f77 /app.py
parentb0f2c84d0ab4112040a4db49541eab504d1ec2c0 (diff)
downloadUKGenderPayGap-469de094098c5cf149b9aeab9c2a7d23aa22c11d.tar.gz
UKGenderPayGap-469de094098c5cf149b9aeab9c2a7d23aa22c11d.zip
Finished filtering of new visualisation, started work on map char
Diffstat (limited to 'app.py')
-rw-r--r--app.py27
1 files changed, 23 insertions, 4 deletions
diff --git a/app.py b/app.py
index a4a3f0d..4f354f7 100644
--- a/app.py
+++ b/app.py
@@ -13,6 +13,9 @@ if not os.path.exists(".docker"):
else:
host = "db"
+with open(os.path.join(os.path.dirname(__file__), "static", "ukcounties.json"), "r") as f:
+ UK_GEOJSON = json.load(f)
+
@app.route("/")
def serve_index():
return flask.render_template(
@@ -37,10 +40,21 @@ def search_redirect():
@app.route("/plot/<name>/apply_click", methods = ["POST"])
def apply_redirect(name):
new_args = {}
- for k, v in flask.request.form.items():
- if v != "No filter":
+ res = dict(flask.request.form)
+ for k, v in res.items():
+ if k == "allyears":
+ continue
+ if k == "yearslider":
+ with database.PayGapDatabase(host = host) as db:
+ new_args["year"] = db.get_years()[int(v) - 1]
+ elif v != "No filter":
new_args[k] = v
+
+ if "allyears" in res.keys():
+ if res["allyears"] == "allyears":
+ del new_args["year"]
+
# print("/" + "/".join(flask.request.full_path.split("/")[1:-1]) + "?" + urllib.parse.urlencode(new_args))
return flask.redirect("/" + "/".join(flask.request.full_path.split("/")[1:-1]) + "?" + urllib.parse.urlencode(new_args))
@@ -62,6 +76,7 @@ def api_get_years():
def api_get_sic_section_pay():
pay_type = flask.request.args.get("Pay Type")
year = flask.request.args.get("year")
+ # print("year: '%s'" % year)
if pay_type is None or pay_type.lower() not in {'hourly', 'bonuses'}:
return flask.abort(400, "The key `pay type` must be equal to 'hourly' or 'bonuses'")
with database.PayGapDatabase(host = host) as db:
@@ -71,6 +86,10 @@ def api_get_sic_section_pay():
return flask.jsonify(db.get_pay_by_sic_section(pay_type, year))
+@app.route("/api/getyears")
+def api_get_year_options():
+ with database.PayGapDatabase(host = host) as db:
+ return flask.jsonify(db.get_years())
@app.route("/search")
def search():
@@ -108,12 +127,12 @@ def serve_large_plot(name):
if v == "<CompanySize>":
filters[k] = {"options": db.get_company_sizes()}
if v == "<Years>":
- filters[k] = {"options": db.get_years()}
+ filters[k] = {"yearslider": db.get_years()}
elem["url"] = flask.request.full_path
# print("elem", elem)
current_filters = dict(flask.request.args)
- # print("current_filters", current_filters)
+ print("current_filters", current_filters)
return flask.render_template(
"plot.html.j2",
title = elem["title"],