Compare commits

..

No commits in common. "0eb3bb6b918fd7567ff83b18262123ae6f4dbbbb" and "ddbb5e350593a170a6e20fb4a8807e1a43af7d26" have entirely different histories.

3 changed files with 22 additions and 17 deletions

View File

@ -1,8 +1,8 @@
main { .container {
display: flex; display: flex;
flex-flow: row wrap; flex-flow: row wrap;
justify-content: space-around; justify-content: space-around;
gap: 1em; gap: 15px;
align-items: flex-start; align-items: flex-start;
} }
@ -15,13 +15,16 @@ a {
color: black; color: black;
} }
img {
max-width: 600px;
}
.dataframe { .dataframe {
border-collapse: collapse; border-collapse: collapse;
font-size: 0.9em; font-size: 0.9em;
font-family: sans-serif; font-family: sans-serif;
min-width: 400px; min-width: 400px;
box-shadow: 0 0 20px rgba(0, 0, 0, 0.15); box-shadow: 0 0 20px rgba(0, 0, 0, 0.15);
flex-grow: 1;
} }
.dataframe thead tr { .dataframe thead tr {

View File

@ -6,14 +6,11 @@
<title>Digitale Beschäftigtenbefragung</title> <title>Digitale Beschäftigtenbefragung</title>
<article>
<header>
<p>Daten abgerufen: {{ timestamp }}</p> <p>Daten abgerufen: {{ timestamp }}</p>
<p><i>Hinweis:</i> Die Daten entstammen der <a href="https://zusammen-geht-mehr.verdi.de/beschaeftigtenbefragung">Karte der digitalen Beschäftigtenbefragung</a> und sind dort nur für die ver.di-Bezirke auf Bezirksebene aufgelöst, bei denen TVStud auch als Schwerpunkt angegeben ist.</p>
</header>
<main> <p><i>Hinweis:</i> Die Daten entstammen der <a href="https://zusammen-geht-mehr.verdi.de/beschaeftigtenbefragung">Karte der digitalen Beschäftigtenbefragung</a> und sind dort nur für die ver.di-Bezirke auf Bezirksebene aufgelöst, bei denen TVStud auch als Schwerpunkt angegeben ist.</p>
{{ image|safe }}
<div class="container">
<img src="{{ image }}"/>
{{ tables|safe }} {{ tables|safe }}
</main> </div>
</article>

17
wsgi.py
View File

@ -1,3 +1,4 @@
import base64
import datetime import datetime
import io import io
from itertools import chain from itertools import chain
@ -10,6 +11,7 @@ import numpy as np
import pandas as pd import pandas as pd
from flask import Flask, render_template, request from flask import Flask, render_template, request
from flask_caching import Cache from flask_caching import Cache
from matplotlib.backends.backend_agg import FigureCanvasAgg as FigureCanvas
from download_digital import construct_dataframe, get_bez_data from download_digital import construct_dataframe, get_bez_data
@ -82,7 +84,7 @@ def plot(
sum_val = current_df[["Digitale Befragung"]].sum().iloc[0] sum_val = current_df[["Digitale Befragung"]].sum().iloc[0]
df.loc[datetime.datetime.now()] = sum_val df.loc[datetime.datetime.now()] = sum_val
fig = plt.figure(dpi=300) plt.figure(dpi=300)
# fill weekends # fill weekends
max_date = max(data_dict.keys()) max_date = max(data_dict.keys())
@ -153,12 +155,15 @@ def plot(
plt.axhline(y=total_target, color="#48a9be", linestyle="--") plt.axhline(y=total_target, color="#48a9be", linestyle="--")
plt.tight_layout() plt.tight_layout()
# Convert plot to SVG image # Convert plot to PNG image
imgdata = io.StringIO() pngImage = io.BytesIO()
fig.savefig(imgdata, format="svg") FigureCanvas(plt.gcf()).print_png(pngImage)
svgImage.seek(0) # rewind the data
return svgImage.read() # Encode PNG image to base64 string
pngImageB64String = "data:image/png;base64,"
pngImageB64String += base64.b64encode(pngImage.getvalue()).decode("utf8")
return pngImageB64String
@app.route("/") @app.route("/")