def signup_base(): errors = {} try: email = request.form['email'] password = request.form['password'] try: confirm = request.form['confirm'] except KeyError: confirm = password if not password == confirm: errors['password'] = _(u"Inconsistent password twice.") if not validate_email(email): errors['email'] = _(u"please check your email address again") if len(password) < 6: errors['password'] = _(u"Your password is too short. At least 6 characters.") except KeyError: errors['KeyError'] = _(u'key error') if not errors: user = User.query.filter_by(email=email).first() if user: errors['email'] = _(u'this email has been used') else: user = User(email,pack_password(password)) user.commit() detail = UserDetail(user) detail.commit() login_user(user) refresh() return errors
def user_account_page(): # Initialize form form = UserProfileForm(request.form, current_user) # Process valid POST if request.method=='POST' and form.validate(): # Copy form fields to user_profile fields form.populate_obj(current_user) # Save user_profile db.session.commit() # set default locale if session.get('language', settings.BABEL_DEFAULT_LOCALE) != current_user.locale: session['language'] = current_user.locale l = Locale.parse( session['language']) refresh() flash(_('Your language has been set to: %s'% l.language_name)) # Redirect to home page return redirect(url_for('user_account_page') ) # Process GET or invalid POST return render_template('users/user_account_page.html', form=form)
def force_locale(self, _from, _to): from flask.ext.babel import refresh pair_settings, orig_pair_opts = current_app.config.resolve_original_pair( _from, _to) opts = orig_pair_opts.get('variant_options') current_locale = get_locale() if opts and ('force_locale' in opts): layout_forces = opts.get('force_locale', {}) if current_locale in layout_forces: session['force_locale'] = session['locale'] = layout_forces[ current_locale] # Refresh the localization infos, and send the user back whence they # came. refresh() else: try: del session['force_locale'] except: pass return False
def before_request(): if request.method == 'GET': if request.args.get( 'lang') is not None and request.args.get('lang') != '': current_user.locale = request.args.get('lang') g.current_locale = request.args.get('lang') @after_this_request def remember_locale(response): response.set_cookie('locale', current_user.locale, expires=datetime.datetime.utcnow() + datetime.timedelta(days=365)) return response if request.args.get('tz') is not None and \ request.args.get('tz') in pytz.common_timezones: current_user.timezone = request.args.get('tz') g.current_timezone = request.args.get('tz') @after_this_request def remember_timezone(response): response.set_cookie('timezone', current_user.timezone) return response refresh() request.current_locale = get_locale() request.current_timezone = str(get_timezone())
def set_lang(lang_code, url): session['lang'] = lang_code refresh() if not url: url = quote_plus(url_for("index.index")) current_app.logger.info("set_lang: lang = %s, url = %s" % (session['lang'], unquote_plus(url))) return redirect(unquote_plus(url))
def check_lang_change(): """ Check if ?lang= is present in the URL, and change the language accordingly """ if request.args.has_key('lang'): session['lang'] = request.args['lang'] refresh()
def detect_language(): if 'lang' in request.args: requested_locale = request.args['lang'] locales = [unicode(l) for l in babel.list_translations()] locale = negotiate_locale([requested_locale,], locales) session['locale'] = locale flask_babel.refresh()
def set_lang(lang): if lang not in LANGUAGES.keys(): return redirect('page.index') rv = make_response(redirect(redirect_url())) rv.set_cookie('lang', lang) refresh() return rv
def set_lang(lang_code, url): session['lang'] = lang_code refresh() if not url: url = quote_plus(url_for("index.index")) current_app.logger.info("set_lang: lang = %s, url = %s" % (session['lang'], unquote_plus(url))) return redirect(unquote_plus(url))
def set_language(lang='english'): if lang in ('english', 'french', 'spanish'): iso = _LANGUAGES_MAP.get(lang, 'en') g.language_verbose = lang if lang in ('en', 'fr', 'es'): iso = lang g.language_verbose = _LANGUAGES_ISO_MAP.get(lang, 'english') g.language = iso refresh()
def index(locale): # get iframe URL from query string iframe_url = request.args.get('url', settings.default_iframe_url) refresh() try: width = int(request.args.get("width")) except Exception, e: width = settings.default_size[0]
def create_app(option): app = Flask(__name__) config = config_factory.get(option) app.config.from_object(config) # Initialize extensions from models import User, Role from webapp.forms import ExtendedRegisterForm user_datastore = SQLAlchemyUserDatastore(db, User, Role) security.init_app(app, user_datastore, register_form=ExtendedRegisterForm) csrf.init_app(app) db.init_app(app) admin.init_app(app) babel.init_app(app) migrate.init_app(app, db) socketio.init_app(app) gravatar.init_app(app) gmap.init_app(app) configure_uploads(app, (user_images,)) patch_request_class(app, Constants.MAX_FILE_SIZE) # Set up API via Flask-Restless import webapp.api.views with app.app_context(): api_manager.init_app(app, flask_sqlalchemy_db=db) @app.before_request def before_request(): request.x_remote_addr = request.remote_addr if 'X-Real-Ip' in request.headers: request.x_remote_addr = request.headers.get('X-Real-Ip') g.constants = Constants g.config = app.config g.mode = app.config.get('MODE') # Set up client blueprint from webapp.client import client app.register_blueprint(client) from webapp.media import media app.register_blueprint(media, url_prefix=Constants.MEDIA_URL_PREFIX) from util.common import create_jinja_helpers create_jinja_helpers(app) from flask.ext.babel import refresh; refresh() return app
def edit_preferences(): form = EditPreferencesForm() if form.validate_on_submit(): current_user.language = form.language.data db.session.add(current_user) db.session.commit() flash(gettext('Saved')) refresh() redirect(url_for('.edit_preferences')) form.language.data = current_user.language return render_template('user/preferences.html', user=current_user, form=form)
def set_locale(iso): from flask.ext.babel import refresh session['locale'] = iso app.jinja_env.globals['session_locale'] = iso # Refresh the localization infos, and send the user back whence they # came. refresh() ref = request.referrer if ref is not None: return redirect(request.referrer) else: return redirect('/')
def index_en(): app.config['BABEL_DEFAULT_LOCALE'] = 'en' refresh() with open('sources/descripcion_en.md') as fh: description = markdown.markdown(fh.read()) with open('donations/btc.txt') as fh: btc_donations = fh.read() with open('donations/wire.txt') as fh: wire_donations = fh.read() return render_template('index.html', description=description, btc_donations=btc_donations, wire_donations=wire_donations, lang='en_US', current_url="https://joac.github.io/donations/en/", )
def set_locale(iso): from flask.ext.babel import refresh session['locale'] = iso try: del session['force_locale'] except: pass # Refresh the localization infos, and send the user back whence they # came. refresh() ref = request.referrer if ref is not None: return redirect(request.referrer) else: return redirect('/')
def notebook_settings(): updated = {} if 'form' in request.values: updated = g.notebook.conf().update_from_form(request.values) #Make changes to the default language used if 'default_language' in request.values: from flask.ext.babel import refresh refresh() current_app.config['BABEL_DEFAULT_LOCALE'] = request.values['default_language'] template_dict = {} template_dict['auto_table'] = g.notebook.conf().html_table(updated) template_dict['admin'] = g.notebook.user_manager().user(g.username).is_admin() template_dict['username'] = g.username return render_template(os.path.join('html', 'settings', 'notebook_settings.html'), **template_dict)
def config() : """ Edit app config from form """ # get config config = current_app.config # populate form with config form = ConfigForm( sitename = config.get('SITENAME'), subtitle = config.get('SUBTITLE'), author = config.get('AUTHOR'), language = config.get('LANGUAGE'), pagination = config.get('PAGINATION'), summary_length = config.get('SUMMARY_LENGTH'), comments = config.get('COMMENTS'), rss = config.get('RSS'), recaptcha_public_key = config.get('RECAPTCHA_PUBLIC_KEY'), recaptcha_private_key = config.get('RECAPTCHA_PRIVATE_KEY') ) if form.validate_on_submit() : # refresh babel path = current_app.config['SHELVE_FILENAME'] db = shelve.open(path) if config.get('LANGUAGE') != db.get('LANGUAGE') : refresh() db['SITENAME'] = form.sitename.data db['SUBTITLE'] = form.subtitle.data db['AUTHOR'] = form.author.data db['LANGUAGE'] = form.language.data db['PAGINATION'] = form.pagination.data db['SUMMARY_LENGTH'] = form.summary_length.data db['COMMENTS'] = form.comments.data db['RSS'] = form.rss.data db['RECAPTCHA_PUBLIC_KEY'] = form.recaptcha_public_key.data db['RECAPTCHA_PRIVATE_KEY'] = form.recaptcha_private_key.data db.close() return redirect(url_for('admin.index')) return render_template('admin/model.html', form = form, title = lazy_gettext(u'Configuration of ') + config.get('SITENAME'), url = url_for('admin.config'))
def before_request(): if request.method == 'GET': if request.args.get('lang') is not None and request.args.get('lang') != '': current_user.locale = request.args.get('lang') g.current_locale = request.args.get('lang') @after_this_request def remember_locale(response): response.set_cookie('locale', current_user.locale, expires=datetime.datetime.utcnow()+datetime.timedelta(days=365)) return response if request.args.get('tz') is not None and\ request.args.get('tz') in pytz.common_timezones: current_user.timezone = request.args.get('tz') g.current_timezone = request.args.get('tz') @after_this_request def remember_timezone(response): response.set_cookie('timezone', current_user.timezone) return response refresh() request.current_locale = get_locale() request.current_timezone = str(get_timezone())
def index(locale): # check if locale is registered in settings try: settings.languages[locale] except KeyError: abort(404) # get iframe URL from query string iframe_url, width, height = parse_querystring(request) refresh() return render_template(settings.template_file, iframe_url=iframe_url, dimensions=(width, height), sizes=sizes.sizes, frequent=sizes.frequent, current_locale=locale, settings=settings, bookmarklet_url=url_for('index_no_locale', _external=True))
def notebook_settings(): updated = {} if 'form' in request.values: updated = g.notebook.conf().update_from_form(request.values) #Make changes to the default language used if 'default_language' in request.values: from flask.ext.babel import refresh refresh() current_app.config['BABEL_DEFAULT_LOCALE'] = request.values[ 'default_language'] template_dict = {} template_dict['auto_table'] = g.notebook.conf().html_table(updated) template_dict['admin'] = g.notebook.user_manager().user( g.username).is_admin() template_dict['username'] = g.username return render_template( os.path.join('html', 'settings', 'notebook_settings.html'), **template_dict)
def put(self, id): if not current_user.is_admin() and current_user.id != id: abort(401) user = User.get_by_id(id) if user is None: flash(gettext('The user was not found'), 'error') return redirect(url_for('UsersView:index')) if request.method in ['POST','PUT']: form = UserForm() if form.validate_on_submit(): try: if form.role.data != u'None': user.role = int(form.role.data) del form.role if form.password.data: user.set_password(form.password.data) del form.password form.populate_obj(user) user.save() refresh() flash(gettext('User was succesfully saved')) if request.method == 'POST': return redirect(url_for('UsersView:get',id=user.id)) except: flash(gettext('Error while updating the user'), 'error') else: flash(gettext('Invalid submission, please check the messages below'), 'error') if request.method == 'PUT': return jsonify(redirect_to=url_for('UsersView:index')) else: form = EditUserForm(user) return render_template('admin/users/edit.html', title = gettext('Edit User\'s Profile | %(name)s', name=user.name), form = form, user = user)
def index(locale): # check if locale is registered in settings try: settings.languages[locale] except KeyError: abort(404) # get iframe URL from query string iframe_url, width, height = parse_querystring(request) refresh() return render_template( settings.template_file, iframe_url=iframe_url, dimensions=(width, height), sizes=sizes.sizes, frequent=sizes.frequent, current_locale=locale, settings=settings, bookmarklet_url= url_for('index_no_locale', _external=True) )
def set_language(): session['lang'] = request.args.get('lang', 'en') refresh() return redirect(url_for('index'))
def set_language(): session['lang'] = request.args.get('lang', 'en') refresh() return redirect(url_for('index'))
def change_locales(locale): babel.app.config['BABEL_DEFAULT_LOCALE'] = locale refresh() return redirect('/', 302)
def change_locales(locale): babel.app.config['BABEL_DEFAULT_LOCALE'] = locale refresh() return redirect('/', 302)
def language(lang): app.config["BABEL_DEFAULT_LOCALE"] = lang refresh() return redirect(url_for("index"))
def set_locale_selector_func(fn): current_app.babel.locale_selector_func = None current_app.babel.localeselector(fn) refresh()
def set_locale_selector_func(fn): current_app.babel.locale_selector_func = None current_app.babel.localeselector(fn) refresh()
def index(self, locale): session['locale'] = locale refresh() return redirect(self._get_redirect())