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 <kevr@0cost.org>
This commit is contained in:
Kevin Morris 2021-06-19 10:46:44 -07:00
parent d606ebc0f1
commit a6bba601a9
2 changed files with 8 additions and 0 deletions

View file

@ -29,6 +29,7 @@ env.filters["dt"] = util.timestamp_to_datetime
env.filters["as_timezone"] = util.as_timezone env.filters["as_timezone"] = util.as_timezone
env.filters["dedupe_qs"] = util.dedupe_qs env.filters["dedupe_qs"] = util.dedupe_qs
env.filters["urlencode"] = quote_plus env.filters["urlencode"] = quote_plus
env.filters["get_vote"] = util.get_vote
# Add captcha filters. # Add captcha filters.
env.filters["captcha_salt"] = captcha.captcha_salt_filter env.filters["captcha_salt"] = captcha.captcha_salt_filter

View file

@ -10,6 +10,8 @@ from datetime import datetime
from urllib.parse import quote_plus, urlparse from urllib.parse import quote_plus, urlparse
from zoneinfo import ZoneInfo from zoneinfo import ZoneInfo
import fastapi
from email_validator import EmailNotValidError, EmailUndeliverableError, validate_email from email_validator import EmailNotValidError, EmailUndeliverableError, validate_email
from fastapi.responses import Response from fastapi.responses import Response
from jinja2 import pass_context 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())]) 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): def jsonify(obj):
""" Perform a conversion on obj if it's needed. """ """ Perform a conversion on obj if it's needed. """
if isinstance(obj, datetime): if isinstance(obj, datetime):