Implement "Send me an email" button on final extension onboarding

This commit is contained in:
Carlos Quintana 2022-05-13 08:51:58 +02:00
parent 3872626747
commit 933237e73b
No known key found for this signature in database
GPG key ID: 15E73DCC410679F8
2 changed files with 33 additions and 3 deletions

View file

@ -1,9 +1,26 @@
from app.extensions import limiter
from app.onboarding.base import onboarding_bp
from flask import render_template
from app.email_utils import send_test_email_alias
from flask import render_template, request, flash
from flask_login import current_user, login_required
from flask_wtf import FlaskForm
from wtforms import StringField, validators
@onboarding_bp.route("/final", methods=["GET"])
class SendEmailForm(FlaskForm):
email = StringField("Email", validators=[validators.DataRequired()])
@onboarding_bp.route("/final", methods=["GET", "POST"])
@login_required
@limiter.limit("10/minute")
def final():
form = SendEmailForm(request.form)
if form.validate_on_submit():
send_test_email_alias(form.email.data, current_user.name)
flash("We have sent a test e-mail to your alias", "success")
return render_template(
"onboarding/final.html",
form=form,
)

View file

@ -15,7 +15,20 @@
<!-- Text container -->
<div class="mt-8 mb-4 text-center">
<h2 class="text-red" style="font-size:2rem">All set!</h2>
<h2 class="text-black-50" style="font-size:2rem">Quickly create an alias every time you need an email</h2>
</div>
<!-- Input + button container -->
<div class="mt-8" style="display: grid; place-items: center;">
<div style="width: 25rem; display: block">
<form method="post">
{{ form.csrf_token }}
{{ form.email(class="p-3", type="email", autofocus="true", placeholder="email", style="border: 2px solid black; border-radius: 2px; width:100%") }}
{{ render_field_errors(form.email) }}
<button type="submit" class="p-4 mt-2 text-decoration-none" style="background:black;color:white; width:10rem">Send me an email</button>
</form>
</div>
</div>
</div>