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)
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)
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 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)