rough new admin panel, more changes pending

This commit is contained in:
2025-06-28 04:45:36 -05:00
parent adbb3250ad
commit 72e060d783
33 changed files with 1550 additions and 24 deletions

View File

@ -5,13 +5,16 @@ import json
import glob
import importlib
import importlib.util
import time
from flask import Flask
from flask import Flask,request
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate
from flask_login import LoginManager
from flask_wtf.csrf import CSRFProtect
from dotenv import load_dotenv
from datetime import datetime
# Load environment variables from .env or system
load_dotenv()
@ -113,7 +116,36 @@ def create_app():
def inject_current_year():
from datetime import datetime
return {'current_year': datetime.now().year}
@app.context_processor
def inject_now():
return {'utcnow': datetime.utcnow()}
@app.before_request
def start_timer():
request._start_time = time.time()
@app.after_request
def log_analytics(response):
# import here to avoid circular at moduleload time
from plugins.admin.models import AnalyticsEvent
try:
duration = time.time() - getattr(request, '_start_time', time.time())
ev = AnalyticsEvent(
method=request.method,
path=request.path,
status_code=response.status_code,
response_time=duration,
user_agent=request.headers.get('User-Agent'),
referer=request.headers.get('Referer'),
accept_language=request.headers.get('Accept-Language'),
)
db.session.add(ev)
db.session.commit()
except Exception:
db.session.rollback()
return response
app.jinja_env.globals['generate_image_url'] = generate_image_url
return app