Beispiel #1
0
def index():
    """
    Generates the main page and the automatic form using a generic AppItem object

    :return: the template to be served to the client
    """

    params = {'title': 'Main'}
    app_item = AppItem()
    # crates a model class from the application item
    app_item_form = model_form(AppItem, db.session, base_class=Form, field_args=app_item.field_args)

    login_form = LoginForm(request.form)
    if helpers.validate_form_on_submit(login_form):
        user = login_form.get_user()
        login.login_user(user)
        params['retry_login'] = False

        # redirect to prevent form double submit
        return redirect(request.url)
    else:
        if login_form.errors:
            params['retry_login'] = True

    params['is_authenticated'] = login.current_user.is_authenticated()

    check_errors()

    return render_template('index.html',
                           params=params,
                           form=app_item_form(obj=app_item),
                           login_form=login_form,
                           app_config=ActiveConfig)
Beispiel #2
0
    def login_view(self):
        form = LoginForm(request.form)

        if helpers.validate_form_on_submit(form):
            user = form.get_user()
            if user is not None:
                login.login_user(user)

        if login.current_user.is_authenticated:
            return redirect(url_for('.index'))
        self._template_args['form'] = form
        return super(AdminIndexView, self).index()
Beispiel #3
0
    def login_view(self):
        req_form = LoginForm(request.form)
        if helpers.validate_form_on_submit(req_form):
            user = req_form.get_user()
            login.login_user(user)

        if login.current_user.is_authenticated():
            return redirect(request.args.get('next') or '/admin')

        check_errors()

        self._template_args['form'] = req_form
        return super(AdminMainView, self).index()