Exemplo n.º 1
0
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
Exemplo n.º 2
0
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)
Exemplo n.º 3
0
    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
Exemplo n.º 4
0
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))
Exemplo n.º 6
0
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()
Exemplo n.º 7
0
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()
Exemplo n.º 8
0
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))
Exemplo n.º 10
0
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()
Exemplo n.º 11
0
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]
Exemplo n.º 12
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
Exemplo n.º 13
0
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)
Exemplo n.º 14
0
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('/')
Exemplo n.º 15
0
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/",
                          )
Exemplo n.º 16
0
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('/')
Exemplo n.º 17
0
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)
Exemplo n.º 18
0
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'))
Exemplo n.º 19
0
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())
Exemplo n.º 20
0
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))
Exemplo n.º 21
0
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)
Exemplo n.º 22
0
    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)
Exemplo n.º 23
0
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)
    )
Exemplo n.º 24
0
def set_language():
    session['lang'] = request.args.get('lang', 'en')
    refresh()
    return redirect(url_for('index'))
Exemplo n.º 25
0
def set_language():
    session['lang'] = request.args.get('lang', 'en')
    refresh()
    return redirect(url_for('index'))
Exemplo n.º 26
0
def change_locales(locale):
    babel.app.config['BABEL_DEFAULT_LOCALE'] = locale
    refresh()
    return redirect('/', 302)
Exemplo n.º 27
0
def change_locales(locale):
    babel.app.config['BABEL_DEFAULT_LOCALE'] = locale
    refresh()
    return redirect('/', 302)
Exemplo n.º 28
0
def language(lang):
    app.config["BABEL_DEFAULT_LOCALE"] = lang
    refresh()
    return redirect(url_for("index"))
Exemplo n.º 29
0
 def set_locale_selector_func(fn):
     current_app.babel.locale_selector_func = None
     current_app.babel.localeselector(fn)
     refresh()
Exemplo n.º 30
0
 def set_locale_selector_func(fn):
     current_app.babel.locale_selector_func = None
     current_app.babel.localeselector(fn)
     refresh()
Exemplo n.º 31
0
 def index(self, locale):
     session['locale'] = locale
     refresh()
     return redirect(self._get_redirect())