Coverage for modules/box__bizhelp/contact/view.py : 46%

Hot-keys on this page
r m x p toggle line displays
j k next/prev highlighted chunk
0 (zero) top of page
1 (one) first highlighted chunk
1from flask import Blueprint
2from flask import flash
3from flask import redirect
4from flask import render_template
5from flask import request
6from flask import url_for
7from flask_login import login_required
9from .forms import ContactForm
10from .models import ContactMessage
11from shopyo.api.forms import flash_errors
12from shopyo.api.html import notify_success
14contact_blueprint = Blueprint(
15 "contact",
16 __name__,
17 url_prefix="/contact",
18 template_folder="templates",
19)
22@contact_blueprint.route("/")
23def index():
24 context = {}
25 form = ContactForm()
27 context.update({"form": form})
28 return render_template("contact/contact_form.html", **context)
31@contact_blueprint.route("/validate_message", methods=["GET", "POST"])
32@login_required
33def validate_message():
34 if request.method == "POST":
35 form = ContactForm()
36 if not form.validate_on_submit():
37 flash_errors(form)
38 return redirect(url_for("contact.index"))
40 name = form.name.data
41 email = form.email.data
42 message = form.message.data
44 contact_message = ContactMessage(name=name, email=email, message=message)
45 contact_message.insert()
46 flash(notify_success("Message submitted!"))
47 return redirect(url_for("contact.index"))
50@contact_blueprint.route("/dashboard", methods=["GET"], defaults={"page": 1})
51@contact_blueprint.route("/dashboard/<int:page>", methods=["GET"])
52@login_required
53def dashboard(page):
54 context = {}
56 per_page = 10
57 messages = ContactMessage.query.paginate(page, per_page, error_out=False)
58 context.update({"messages": messages})
59 return render_template("contact/dashboard.html", **context)