feat: adds Sync statistics.
This commit is contained in:
35
app.py
35
app.py
@@ -195,12 +195,37 @@ def require_password_reset():
|
||||
return render_template("require_password_reset.html")
|
||||
|
||||
|
||||
@app.route("/reset-password-submit", methods=["POST"])
|
||||
@app.route("/sync-stats")
|
||||
@login_required
|
||||
def reset_password_submit():
|
||||
"""Handle password reset form submission"""
|
||||
uid = session.get("uid")
|
||||
profile = get_user_profile(uid)
|
||||
def sync_stats():
|
||||
"""Display sync statistics as a stacked bar chart"""
|
||||
from datetime import datetime, timedelta
|
||||
import pytz
|
||||
|
||||
profile = get_user_profile(session['uid'])
|
||||
if not profile.get("is_admin"):
|
||||
abort(403, "Access denied. Admin privileges required.")
|
||||
|
||||
pacific = pytz.timezone('America/Los_Angeles')
|
||||
today = datetime.now(pacific)
|
||||
dates = [(today - timedelta(days=i)).strftime('%Y-%m-%d') for i in range(13, -1, -1)]
|
||||
|
||||
stats = []
|
||||
for date in dates:
|
||||
doc_id = f"sync_{date}"
|
||||
doc = db.collection("sync_stats").document(doc_id).get()
|
||||
if doc.exists:
|
||||
d = doc.to_dict()
|
||||
stats.append({
|
||||
"date": date,
|
||||
"recent_successes": d.get("recent_successes", 0),
|
||||
"oldest_successes": d.get("oldest_successes", 0),
|
||||
"failures": d.get("failures", 0)
|
||||
})
|
||||
else:
|
||||
stats.append({"date": date, "recent_successes": 0, "oldest_successes": 0, "failures": 0})
|
||||
|
||||
return render_template("sync_stats.html", stats=stats)
|
||||
|
||||
new_password = request.form.get("new_password")
|
||||
confirm_password = request.form.get("confirm_password")
|
||||
|
||||
Reference in New Issue
Block a user