eskp.py
author Reimar Bauer <rb.proj AT googlemail DOT com>
Mon, 05 May 2014 14:37:13 +0200
changeset 239 e1e0ddbc8c98
parent 238 c89b73e1a53a
child 241 9bfd98868419
permissions -rwxr-xr-x
imprint text added
rb@217
     1
# -*- coding: utf-8 -*-
rb@217
     2
rb@186
     3
import os
rb@186
     4
import codecs
rb@186
     5
rb@186
     6
from docutils.core import publish_parts
peter@1
     7
from flask import Flask
peter@1
     8
from flask import render_template
peter@1
     9
from flask import request
rb@95
    10
from flask.ext.babel import gettext as _
peter@1
    11
from flask.ext.babel import Babel
rb@95
    12
from config import LANGUAGES
peter@141
    13
from sayings import get_saying
rb@161
    14
rb@161
    15
rb@122
    16
LANGUAGE_SELECTED = "de"
rb@122
    17
#ToDo after engelish is implemented set LANGUAGE_SELECTED = None
rb@95
    18
peter@1
    19
app = Flask(__name__)
peter@1
    20
babel = Babel(app)
peter@1
    21
peter@145
    22
app.config['BABEL_DEFAULT_LOCALE'] = 'de'
peter@145
    23
rb@186
    24
rb@214
    25
def get_content(filename, overrides=None):
rb@162
    26
    content = u""
rb@162
    27
    if os.path.isfile(filename):
rb@162
    28
        with codecs.open(filename, 'r', 'utf-8') as f:
rb@162
    29
            rst_data = f.read()
rb@162
    30
        f.close()
rb@214
    31
        content = publish_parts(rst_data, writer_name='html', settings_overrides=overrides)['html_body']
rb@162
    32
    return content
rb@162
    33
peter@142
    34
def get_topmenue():
rb@238
    35
    menue = [
rb@238
    36
             ('/ozoneloss', _(u'Ozoneloss')),
rb@238
    37
             ('/eskp', _(u'ESKP')),
rb@238
    38
             ('/iek-7', _(u'IEK-7')),
rb@186
    39
            ]
peter@145
    40
    return menue
peter@142
    41
peter@142
    42
app.jinja_env.globals.update(get_topmenue=get_topmenue)
peter@142
    43
peter@142
    44
peter@1
    45
@babel.localeselector
peter@1
    46
def get_locale():
peter@109
    47
    """ToDo: if translation is completed, switch to en """
rb@118
    48
    return LANGUAGE_SELECTED or request.accept_languages.best_match(LANGUAGES.keys()) or 'de'
peter@1
    49
rb@100
    50
peter@1
    51
@app.route("/")
rb@100
    52
@app.route("/index")
peter@1
    53
def index():
peter@141
    54
    saying, author = get_saying()
rb@213
    55
    return render_template("/index.html",
rb@186
    56
                           saying=saying,
rb@186
    57
                           author=author,
rb@233
    58
                           eskp_info=_(u'About ESKP'),
rb@233
    59
                           )
peter@1
    60
rb@118
    61
@app.route('/de')
rb@118
    62
def de():
rb@118
    63
    global LANGUAGE_SELECTED
rb@118
    64
    LANGUAGE_SELECTED = "de"
peter@146
    65
    saying, author = get_saying()
peter@160
    66
    return render_template("/index.html",
rb@186
    67
                           saying=saying,
rb@186
    68
                           author=author,
rb@233
    69
                           eskp_info=_(u'About ESKP'),
rb@233
    70
                           )
rb@118
    71
rb@118
    72
@app.route('/en')
rb@118
    73
def en():
peter@146
    74
    saying, author = get_saying()
rb@118
    75
    global LANGUAGE_SELECTED
rb@118
    76
    LANGUAGE_SELECTED = "en"
peter@160
    77
    return render_template("/index.html",
rb@186
    78
                           saying=saying,
rb@186
    79
                           author=author,
rb@233
    80
                           eskp_info=_(u'About ESKP'),
rb@233
    81
                           )
rb@118
    82
rb@233
    83
@app.route("/eskp")
rb@233
    84
def eskp():
rb@233
    85
    filename = os.path.join("templates", get_locale(), "rst", "eskp.rst")
rb@162
    86
    content = get_content(filename)
rb@233
    87
    return render_template("/content.html", act="eskp", content=content)
peter@1
    88
rb@233
    89
@app.route("/ozoneloss")
peter@1
    90
def task():
rb@233
    91
    filename = os.path.join("templates", get_locale(), "rst", "ozoneloss.rst")
rb@165
    92
    content = get_content(filename)
rb@233
    93
    print content
rb@233
    94
    print filename
rb@233
    95
    return render_template("/content.html", act="ozoneloss", content=content)
peter@1
    96
rb@233
    97
@app.route("/iek-7")
peter@1
    98
def submission():
rb@233
    99
    filename = os.path.join("templates", get_locale(), "rst", "iek-7.rst")
rb@167
   100
    content = get_content(filename)
rb@170
   101
    return render_template("/content.html", act="submission", content=content)
peter@1
   102
peter@1
   103
rb@100
   104
@app.route("/imprint")
peter@88
   105
def imprint():
rb@163
   106
    filename = os.path.join("templates", get_locale(), "rst", "imprint.rst")
rb@163
   107
    content = get_content(filename)
rb@170
   108
    return render_template("/content.html", act="imprint", content=content)
peter@88
   109
peter@109
   110
peter@88
   111
peter@1
   112
@app.errorhandler(404)
peter@1
   113
def page_not_found(e):
rb@213
   114
    msg = _(u"Url: %(url)s not found", url=request.url)
rb@157
   115
    info = _(u"This information is not available!")
rb@157
   116
    return render_template("404.html", msg=msg, info=info)
peter@1
   117
peter@1
   118
if __name__ == "__main__":
peter@1
   119
    app.run(host='localhost', port=5014, debug=True)
Impressum Datenschutzerklärung