Files
gh-christianlouis-docuelevate/app/views/help.py
T
copilot-swe-agent[bot] 209e82f7e5 feat(support): auto-fill Zammad chat and ticket widgets with user context
Pass authenticated user's name, email, and username to Zammad form
and chat widgets. For the ticket form: pre-fill name/email fields
and append a User Context metadata block to the ticket body via
$.ajaxPrefilter. For the chat widget: pass name/email to the
ZammadChat constructor.

Co-authored-by: christianlouis <361235+christianlouis@users.noreply.github.com>
2026-03-08 18:27:14 +00:00

60 lines
2.0 KiB
Python

"""
Help Center view routes.
Renders a user-facing, SEO-optimised Help Center page at ``/help``.
The page is designed for SaaS end-users and includes guidance on
features, integrations, workflows, and optional Zammad support widgets
(live-chat and feedback form).
The developer-oriented MkDocs documentation is served separately at
``/docs`` and is intentionally **not** cross-linked from this page.
"""
import logging
import pathlib
from fastapi import Request
from app.config import settings
from app.views.base import APIRouter, templates
logger = logging.getLogger(__name__)
router = APIRouter()
# Path to the built MkDocs documentation (kept for reference / backwards compat)
_DOCS_BUILD_DIR = pathlib.Path(__file__).parents[2] / "docs_build"
@router.get("/help", include_in_schema=False)
async def help_center(request: Request):
"""Render the end-user Help Center page."""
# Extract user context for Zammad widget pre-fill ----------------------
session_user = None
if hasattr(request, "session"):
session_user = request.session.get("user")
user_name = ""
user_email = ""
user_id = ""
if session_user and isinstance(session_user, dict):
user_name = session_user.get("name") or session_user.get("display_name") or ""
user_email = session_user.get("email") or ""
user_id = session_user.get("preferred_username") or session_user.get("email") or session_user.get("id") or ""
return templates.TemplateResponse(
"help.html",
{
"request": request,
"external_hostname": settings.external_hostname,
"zammad_url": settings.zammad_url,
"zammad_chat_enabled": settings.zammad_chat_enabled,
"zammad_chat_id": settings.zammad_chat_id,
"zammad_form_enabled": settings.zammad_form_enabled,
"support_email": settings.support_email,
"user_name": user_name,
"user_email": user_email,
"user_id": user_id,
},
)