1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
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)
@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 (u'%s EUR' % s)
@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)
|