def register():
    form = RegisterForm(request.form, csrf_enabled=False)
    if form.validate_on_submit():
        new_user = User.create(username=form.username.data,
                               email=form.email.data,
                               password=form.password.data,
                               active=True)
        flash("Thank you for registering. You can now log in.", 'success')
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)
    return render_template('public/register.html', form=form)
Example #2
0
def register():
    form = RegisterForm(request.form, csrf_enabled=False)
    if form.validate_on_submit():
        new_user = User.create(username=form.username.data,
                        email=form.email.data,
                        password=form.password.data,
                        active=True)
        flash("Thank you for registering. You can now log in.", 'success')
        return redirect(url_for('public.home'))
    else:
        flash_errors(form)
    return render_template('public/register.html', form=form)
Example #3
0
def selector():
    form = SelectorForm()
    if request.method == "POST":
        if form.validate_on_submit():
            if form.action == "report":
                return redirect("/reports/" + form.project + "/" + form.filename + "/edit", 302)
            if form.action == "rerender":
                reports = Report.query.all()
                for report in reports:
                    report.save_render_html()
        else:
            flash_errors(form)
    return render_template("selector.html", form=form)
def selector():
    form = SelectorForm()
    if request.method == 'POST':
        if form.validate_on_submit():
            if form.action == "report":
                return redirect(
                    '/reports/' + form.project + '/' + form.filename + '/edit',
                    302)
            if form.action == "rerender":
                reports = Report.query.all()
                for report in reports:
                    report.save_render_html()
        else:
            flash_errors(form)
    return render_template('selector.html', form=form)
Example #5
0
def login():
    form = LoginForm(request.form)
    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash("You are logged in.", 'success')
            redirect_url = request.args.get("next") or url_for("public.home")
            return redirect(redirect_url)
        else:
            flash_errors(form)
    if (request.referrer or request.args.get("next")):
        next_url = request.args.get("next") or request.referrer
        return render_template('public/login.html', login_form=form, 
            next_url=next_url)
    else:
        return render_template('public/login.html', login_form=form)
def login():
    form = LoginForm(request.form)
    # Handle logging in
    if request.method == 'POST':
        if form.validate_on_submit():
            login_user(form.user)
            flash("You are logged in.", 'success')
            redirect_url = request.args.get("next") or url_for("public.home")
            return redirect(redirect_url)
        else:
            flash_errors(form)
    if (request.referrer or request.args.get("next")):
        next_url = request.args.get("next") or request.referrer
        return render_template('public/login.html',
                               login_form=form,
                               next_url=next_url)
    else:
        return render_template('public/login.html', login_form=form)
Example #7
0
def edit(project, filename):
    template_name = request.args.get("template", "default")
    report = Report.query.filter_by(project=project, filename=filename).first()
    default_template = Template.query.filter_by(name=template_name).first()
    form = None
    if report:
        form = EditorForm(
            project_field=project,
            filename_field=filename,
            template_field=report.template,
            markdown_field=report.md_content,
            published_field=report.published,
            listed_field=report.listed,
        )
    else:
        form = EditorForm(
            project_field=project,
            filename_field=filename,
            template_field=default_template,
            markdown_field=default_template.md_content,
        )
    if request.method == "POST":
        if form.validate_on_submit():
            save_user = None
            if current_user.is_anonymous():
                save_user = User.query.filter_by(username="******").first()
            else:
                save_user = current_user
            if form.savemode is "save":
                report = Report.query.filter_by(filename=form.filename, project=form.project).first()
                if report:
                    report.update(
                        template_id=form.template.id,
                        md_content=form.md_content,
                        listed=form.listed,
                        published=form.published,
                    )
                    flash("Report saved.", "success")
                else:
                    report = Report.create(
                        filename=form.filename,
                        project=form.project,
                        template=form.template,
                        md_content=form.md_content,
                        author=save_user,
                        listed=form.listed,
                        published=form.published,
                    )
                    flash("New report created and saved!", "success")
                report.save_render_html()
                form = EditorForm(
                    project_field=form.project,
                    filename_field=form.filename,
                    template_field=form.template,
                    markdown_field=form.md_content,
                    listed_field=form.listed,
                    published_field=form.published,
                )
            elif form.savemode is "saveas":
                report = Report.create(
                    filename=form.filename,
                    project=form.project,
                    template=form.template,
                    md_content=form.md_content,
                    author=save_user,
                    listed=form.listed,
                    published=form.published,
                )
                report.save_render_html()
                old_path = os.path.join(upload_path(), form.old_project, form.old_filename)
                new_path = os.path.join(upload_path(), form.project, form.filename)
                # Move files along with copying data
                try:
                    files = os.listdir(old_path)
                except OSError:
                    pass
                else:
                    if os.path.exists(new_path):
                        flash("Files not copied!", "error")
                    else:
                        shutil.copytree(old_path, new_path)
                        flash("Files copied!", "success")
                flash("New report created and saved!", "success")
                return redirect("/reports/" + form.project + "/" + form.filename + "/edit", 303)
            else:
                assert False
        else:
            flash_errors(form)
    preview_form = PreviewForm(markdown_preview_field="", template_preview_field="")
    return render_template("editor.html", form=form, project=project, filename=filename, preview_form=preview_form)
def edit(project, filename):
    template_name = request.args.get('template', 'default')
    report = Report.query.filter_by(project=project, filename=filename).first()
    default_template = Template.query.filter_by(name=template_name).first()
    form = None
    if report:
        form = EditorForm(project_field=project,
                          filename_field=filename,
                          template_field=report.template,
                          markdown_field=report.md_content,
                          published_field=report.published,
                          listed_field=report.listed)
    else:
        form = EditorForm(project_field=project,
                          filename_field=filename,
                          template_field=default_template,
                          markdown_field=default_template.md_content)
    if request.method == 'POST':
        if form.validate_on_submit():
            save_user = None
            if current_user.is_anonymous():
                save_user = User.query.filter_by(username="******").first()
            else:
                save_user = current_user
            if form.savemode is 'save':
                report = Report.query.filter_by(filename=form.filename,
                                                project=form.project).first()
                if report:
                    report.update(template_id=form.template.id,
                                  md_content=form.md_content,
                                  listed=form.listed,
                                  published=form.published)
                    flash("Report saved.", 'success')
                else:
                    report = Report.create(filename=form.filename,
                                           project=form.project,
                                           template=form.template,
                                           md_content=form.md_content,
                                           author=save_user,
                                           listed=form.listed,
                                           published=form.published)
                    flash("New report created and saved!", 'success')
                report.save_render_html()
                form = EditorForm(project_field=form.project,
                                  filename_field=form.filename,
                                  template_field=form.template,
                                  markdown_field=form.md_content,
                                  listed_field=form.listed,
                                  published_field=form.published)
            elif form.savemode is "saveas":
                report = Report.create(filename=form.filename,
                                       project=form.project,
                                       template=form.template,
                                       md_content=form.md_content,
                                       author=save_user,
                                       listed=form.listed,
                                       published=form.published)
                report.save_render_html()
                old_path = os.path.join(upload_path(), form.old_project,
                                        form.old_filename)
                new_path = os.path.join(upload_path(), form.project,
                                        form.filename)
                # Move files along with copying data
                try:
                    files = os.listdir(old_path)
                except OSError:
                    pass
                else:
                    if os.path.exists(new_path):
                        flash("Files not copied!", 'error')
                    else:
                        shutil.copytree(old_path, new_path)
                        flash("Files copied!", 'success')
                flash("New report created and saved!", 'success')
                return redirect(
                    "/reports/" + form.project + "/" + form.filename + "/edit",
                    303)
            else:
                assert False
        else:
            flash_errors(form)
    preview_form = PreviewForm(markdown_preview_field='',
                               template_preview_field='')
    return render_template('editor.html',
                           form=form,
                           project=project,
                           filename=filename,
                           preview_form=preview_form)