From a6bba601a98aef9b19a4a2b5114557b21706c1d5 Mon Sep 17 00:00:00 2001 From: Kevin Morris Date: Sat, 19 Jun 2021 10:46:44 -0700 Subject: [PATCH] add util.get_vote -> `get_vote` Jinja2 filter This filter gets a vote of a request's user toward a voteinfo. Example: {% set vote = (voteinfo | get_vote(request)) %} Signed-off-by: Kevin Morris --- aurweb/templates.py | 1 + aurweb/util.py | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/aurweb/templates.py b/aurweb/templates.py index bb4047f4..b8853593 100644 --- a/aurweb/templates.py +++ b/aurweb/templates.py @@ -29,6 +29,7 @@ env.filters["dt"] = util.timestamp_to_datetime env.filters["as_timezone"] = util.as_timezone env.filters["dedupe_qs"] = util.dedupe_qs env.filters["urlencode"] = quote_plus +env.filters["get_vote"] = util.get_vote # Add captcha filters. env.filters["captcha_salt"] = captcha.captcha_salt_filter diff --git a/aurweb/util.py b/aurweb/util.py index e5f510ce..adbff755 100644 --- a/aurweb/util.py +++ b/aurweb/util.py @@ -10,6 +10,8 @@ from datetime import datetime from urllib.parse import quote_plus, urlparse from zoneinfo import ZoneInfo +import fastapi + from email_validator import EmailNotValidError, EmailUndeliverableError, validate_email from fastapi.responses import Response from jinja2 import pass_context @@ -143,6 +145,11 @@ def dedupe_qs(query_string: str, *additions): return '&'.join([f"{k}={quote_plus(v)}" for k, v in reversed(qs.items())]) +def get_vote(voteinfo, request: fastapi.Request): + from aurweb.models.tu_vote import TUVote + return voteinfo.tu_votes.filter(TUVote.User == request.user).first() + + def jsonify(obj): """ Perform a conversion on obj if it's needed. """ if isinstance(obj, datetime):