import json from datetime import date from jinja2 import Environment import urllib.parse from django.urls import reverse from django.conf import settings from django.utils import translation def get_app_config(request): info_dict = { 'debug': settings.DEBUG, 'isAuthenticated': False, 'user': None, 'urlPrefix': '{}://{}'.format(request.scheme, request.get_host()), } if request.user and request.user.is_authenticated: info_dict['isAuthenticated'] = True info_dict['user'] = { 'username': request.user.username, 'email': request.user.email, 'isSuperUser': request.user.is_superuser, 'isStaff': request.user.is_staff, 'lastLogin': request.user.last_login.strftime('%Y-%m-%d') } return json.dumps(info_dict, separators=(',', ':')) def copyright(): return '©{} - PingCAP University'.format(date.today().strftime('%Y')) def environment(**options): env = Environment(**options) env.install_gettext_translations(translation) env.globals.update({ 'json_loads': json.loads, 'json_dumps': json.dumps, 'reverse': reverse, 'get_app_config': get_app_config, 'url_quote': urllib.parse.quote, 'copyright': copyright }) return env