mirror of
https://gitlab.archlinux.org/archlinux/aurweb.git
synced 2025-02-03 10:43:03 +01:00
aurweb.templates: add make_variable_context
A new make_context wrapper which additionally includes either query parameters (get) or form data (post) in the context. Use this to simplify setting context variables for form data in particular. Signed-off-by: Kevin Morris <kevr@0cost.org>
This commit is contained in:
parent
9052688ed2
commit
a5be6fc9be
2 changed files with 17 additions and 10 deletions
|
@ -9,7 +9,7 @@ from aurweb.auth import auth_required
|
||||||
from aurweb.l10n import get_translator_for_request
|
from aurweb.l10n import get_translator_for_request
|
||||||
from aurweb.models.user import User
|
from aurweb.models.user import User
|
||||||
from aurweb.scripts.notify import ResetKeyNotification
|
from aurweb.scripts.notify import ResetKeyNotification
|
||||||
from aurweb.templates import make_context, render_template
|
from aurweb.templates import make_variable_context, render_template
|
||||||
|
|
||||||
router = APIRouter()
|
router = APIRouter()
|
||||||
|
|
||||||
|
@ -17,11 +17,7 @@ router = APIRouter()
|
||||||
@router.get("/passreset", response_class=HTMLResponse)
|
@router.get("/passreset", response_class=HTMLResponse)
|
||||||
@auth_required(False)
|
@auth_required(False)
|
||||||
async def passreset(request: Request):
|
async def passreset(request: Request):
|
||||||
context = make_context(request, "Password Reset")
|
context = await make_variable_context(request, "Password Reset")
|
||||||
|
|
||||||
for k, v in request.query_params.items():
|
|
||||||
context[k] = v
|
|
||||||
|
|
||||||
return render_template(request, "passreset.html", context)
|
return render_template(request, "passreset.html", context)
|
||||||
|
|
||||||
|
|
||||||
|
@ -34,10 +30,7 @@ async def passreset_post(request: Request,
|
||||||
confirm: str = Form(default=None)):
|
confirm: str = Form(default=None)):
|
||||||
from aurweb.db import session
|
from aurweb.db import session
|
||||||
|
|
||||||
context = make_context(request, "Password Reset")
|
context = await make_variable_context(request, "Password Reset")
|
||||||
|
|
||||||
for k, v in dict(await request.form()).items():
|
|
||||||
context[k] = v
|
|
||||||
|
|
||||||
# The user parameter being required, we can match against
|
# The user parameter being required, we can match against
|
||||||
user = db.query(User, or_(User.Username == user,
|
user = db.query(User, or_(User.Username == user,
|
||||||
|
|
|
@ -41,6 +41,20 @@ def make_context(request: Request, title: str, next: str = None):
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
async def make_variable_context(request: Request, title: str, next: str = None):
|
||||||
|
""" Make a context with variables provided by the user
|
||||||
|
(query params via GET or form data via POST). """
|
||||||
|
context = make_context(request, title, next)
|
||||||
|
to_copy = dict(request.query_params) \
|
||||||
|
if request.method.lower() == "get" \
|
||||||
|
else dict(await request.form())
|
||||||
|
|
||||||
|
for k, v in to_copy.items():
|
||||||
|
context[k] = v
|
||||||
|
|
||||||
|
return context
|
||||||
|
|
||||||
|
|
||||||
def render_template(request: Request,
|
def render_template(request: Request,
|
||||||
path: str,
|
path: str,
|
||||||
context: dict,
|
context: dict,
|
||||||
|
|
Loading…
Add table
Reference in a new issue