debianmemberportfolio/debianmemberportfolio/views.py

59 lines
1.6 KiB
Python
Raw Normal View History

2015-11-11 00:49:12 +01:00
import json
import logging
2015-11-10 22:31:14 +01:00
from debianmemberportfolio import app, babel
2015-11-11 00:49:12 +01:00
from flask import g, make_response, request, render_template, abort
2015-11-10 22:31:14 +01:00
from config import LANGUAGES
2015-11-11 00:49:12 +01:00
from .forms import DeveloperData, DeveloperDataRequest
from .model import dddatabuilder
log = logging.getLogger(__name__)
2015-11-10 22:31:14 +01:00
@babel.localeselector
def get_locale():
return request.accept_languages.best_match(LANGUAGES.keys())
@app.before_request
def before_request():
g.locale = get_locale()
@app.route('/')
def index():
form = DeveloperData()
# TODO: replicate behavior of
# debianmemberportfolio.controllers.portfolio.PortfolioController.index
return render_template('showform.html', form=form)
@app.route('/result')
def urllist():
form = DeveloperData(request.values)
if form.validate():
return render_template('showurls.html')
return render_template('showform.html', form=form)
@app.route('/htmlformhelper.js')
def formhelper_js():
response = make_response(render_template('showformscript.js'))
response.headers['Content-Type'] = 'text/javascript; charset=utf-8'
return response
@app.route('/showformscripts/fetchdddata/')
def fetchdddata():
2015-11-11 00:49:12 +01:00
form = DeveloperDataRequest(request.values)
if form.validate():
fields = dddatabuilder.build_data(form.data['email'])
log.debug(fields)
response = make_response(json.dumps(fields))
response.headers['Content-Type'] = 'application/json'
return response
abort(
400,
"\n".join(["%s: %s" % (key, form.errors[key]) for key in form.errors])
)