Jun 27 MT-7
This commit is contained in:
@@ -97,6 +97,17 @@ def create_app(config_name='default'):
|
||||
from flask_wtf.csrf import generate_csrf
|
||||
app.jinja_env.globals['csrf_token'] = generate_csrf
|
||||
app.jinja_env.globals['enumerate'] = enumerate
|
||||
|
||||
def _hex_to_rgb(hex_color):
|
||||
"""Convert #rrggbb → 'r,g,b' string for CSS rgb() / Bootstrap var."""
|
||||
h = hex_color.lstrip('#')
|
||||
if len(h) != 6:
|
||||
return '26,86,219'
|
||||
try:
|
||||
return ','.join(str(int(h[i:i+2], 16)) for i in (0, 2, 4))
|
||||
except ValueError:
|
||||
return '26,86,219'
|
||||
app.jinja_env.filters['hex_to_rgb'] = _hex_to_rgb
|
||||
|
||||
# SLA helpers available in all templates
|
||||
from app.utils.sla import sla_status, sla_deadline, sla_hours_remaining, SLA_HOURS
|
||||
@@ -138,6 +149,17 @@ def create_app(config_name='default'):
|
||||
except Exception:
|
||||
pass
|
||||
return {'unread_notification_count': 0, 'pending_verification_count': 0, 'open_support_tickets_count': 0}
|
||||
|
||||
@app.context_processor
|
||||
def inject_tenant_branding():
|
||||
"""MT-7: push tenant branding into every template as `tenant_branding`."""
|
||||
try:
|
||||
from app.models.tenant_settings import TenantSettings
|
||||
settings = TenantSettings.get_or_default()
|
||||
return {'tenant_branding': settings}
|
||||
except Exception:
|
||||
pass
|
||||
return {'tenant_branding': None}
|
||||
|
||||
os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True)
|
||||
|
||||
@@ -151,6 +173,7 @@ def create_app(config_name='default'):
|
||||
from app.routes import support # Support chat + admin tickets
|
||||
from app.routes import broadcast # Admin broadcast messages
|
||||
from app.routes import devices # Admin device management
|
||||
from app.routes import tenant_settings # MT-7 — tenant self-service
|
||||
|
||||
app.register_blueprint(auth.bp)
|
||||
app.register_blueprint(dashboard.bp)
|
||||
@@ -167,6 +190,7 @@ def create_app(config_name='default'):
|
||||
app.register_blueprint(support.bp)
|
||||
app.register_blueprint(broadcast.bp)
|
||||
app.register_blueprint(devices.bp)
|
||||
app.register_blueprint(tenant_settings.bp)
|
||||
|
||||
# ── Mobile API (Phase 7 / Phase A / Phase B / Phase C) ───────────────────
|
||||
# The /api/v1 blueprint group uses JWT Bearer tokens — no CSRF cookies needed.
|
||||
|
||||
Reference in New Issue
Block a user