import json import logging from debianmemberportfolio import app, babel from flask import g, make_response, request, render_template, abort from config import LANGUAGES from .forms import DeveloperData, DeveloperDataRequest from .model import dddatabuilder log = logging.getLogger(__name__) @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(): 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]) )