from flask import render_template, request, url_for import flask from .. import app, db # # Some general imports # from ..login import current_user, login_required from ..utils import today, templated, redirect, assert_authorisation from flask import Blueprint, flash __all__ = [ 'db', 'app', 'current_user', 'login_required', 'assert_authorisation', 'templated', 'today', 'redirect', 'Blueprint', 'flash', 'request', 'url_for' ] # check for mobile visitors mobile_checks = ['J2ME', 'Opera Mini'] app.add_template_global(zip) app.add_template_global(current_user, 'current_user') @app.before_request def handle_mobile(): ua = request.environ.get('HTTP_USER_AGENT', '') flask.g.is_mobile = any((x in ua) for x in mobile_checks) @app.template_filter('static_url') def static_url(s, **kwargs): return url_for('static', filename=s, **kwargs) @app.template_filter('eur') def eur(s): return f'{s} EUR' @app.template_filter('date') def format_date(s, format='%Y/%m'): if hasattr(s, 'date'): return s.date.strftime(format) else: return s.strftime(format) @app.errorhandler(404) def page_not_found (error): return render_template('404.jinja', page = request.path), 404 # Now import the views from . import categories, consts, expenses, user, stats app.register_blueprint(expenses.mod) app.register_blueprint(user.mod, url_prefix='/user') app.register_blueprint(consts.mod, url_prefix='/const') app.register_blueprint(categories.mod, url_prefix='/cat') app.register_blueprint(stats.mod, url_prefix='/stats') app.add_url_rule('/', endpoint = 'index', build_only = True)