summaryrefslogtreecommitdiff
path: root/app/views/__init__.py
blob: 38771aee4bac09588684dbc6ea951919f9eb3b09 (plain)
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)