rough new admin panel, more changes pending
This commit is contained in:
@ -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 module‐load 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
|
||||
|
Reference in New Issue
Block a user