contentdb/app/template_filters.py

67 lines
1.8 KiB
Python
Raw Normal View History

2020-12-05 11:15:33 -08:00
from . import app, utils
2020-09-19 11:30:33 -07:00
from .models import Permission, Package, PackageState, PackageRelease
2022-01-20 15:30:56 -08:00
from .utils import abs_url_for, url_set_query, url_set_anchor, url_current
from flask_login import current_user
2020-12-31 10:21:34 -08:00
from flask_babel import format_timedelta, gettext
from urllib.parse import urlparse
2020-12-22 04:22:52 -08:00
from datetime import datetime as dt
from app.markdown import get_headings
2021-02-02 12:05:24 -08:00
@app.context_processor
def inject_debug():
2020-07-15 11:54:33 -07:00
return dict(debug=app.debug)
2020-03-28 12:01:39 -07:00
@app.context_processor
def inject_functions():
2020-07-15 11:54:33 -07:00
check_global_perm = Permission.checkPerm
2021-08-18 14:09:41 -07:00
return dict(abs_url_for=abs_url_for, url_set_query=url_set_query, url_set_anchor=url_set_anchor,
2022-01-20 15:30:56 -08:00
check_global_perm=check_global_perm, get_headings=get_headings, url_current=url_current)
2020-03-28 12:01:39 -07:00
2020-09-19 11:30:33 -07:00
@app.context_processor
def inject_todo():
todo_list_count = None
2020-10-19 07:30:45 -07:00
if current_user and current_user.is_authenticated and current_user.canAccessTodoList():
2020-09-19 11:30:33 -07:00
todo_list_count = Package.query.filter_by(state=PackageState.READY_FOR_REVIEW).count()
todo_list_count += PackageRelease.query.filter_by(approved=False, task_id=None).count()
return dict(todo_list_count=todo_list_count)
@app.template_filter()
def throw(err):
raise Exception(err)
@app.template_filter()
def domain(url):
return urlparse(url).netloc
@app.template_filter()
def date(value):
2020-07-15 11:54:33 -07:00
return value.strftime("%Y-%m-%d")
@app.template_filter()
def full_datetime(value):
return value.strftime("%Y-%m-%d %H:%M") + " UTC"
@app.template_filter()
def datetime(value):
2020-12-22 04:22:52 -08:00
delta = dt.utcnow() - value
if delta.days == 0:
2020-12-31 10:21:34 -08:00
return gettext("%(delta)s ago", delta=format_timedelta(value))
2020-12-22 04:22:52 -08:00
else:
return full_datetime(value)
@app.template_filter()
def isodate(value):
return value.strftime("%Y-%m-%d")
2020-12-03 19:59:02 -08:00
@app.template_filter()
def timedelta(value):
return format_timedelta(value)
2020-12-05 11:15:33 -08:00
@app.template_filter()
def abs_url(url):
return utils.abs_url(url)