Skip to content
Snippets Groups Projects
Commit 20c7ad7c authored by Benjamin Iorns's avatar Benjamin Iorns
Browse files

Modals are not working.

parent ac62c867
No related branches found
No related tags found
No related merge requests found
......@@ -30,7 +30,6 @@ app.config['MAIL_USE_TLS'] = True
app.config['MAIL_USE_SSL'] = False
mail = Mail(app)
# recaptcha
app.config['RECAPTCHA_USE_SSL']= False
app.config['RECAPTCHA_PUBLIC_KEY']= os.getenv("SITE_KEY")
......
......@@ -31,7 +31,6 @@ class RegisterForm(FlaskForm):
def validate_username(self, username):
existing_user_username = UserDAO.checkUnique(db, username.data)
print(existing_user_username)
if existing_user_username:
raise ValidationError(
'Username taken. Please choose another.'
......
......@@ -87,7 +87,7 @@ class UserORM(Base, UserMixin):
id: Mapped[int] = mapped_column(primary_key=True)
username: Mapped[str] = mapped_column(String, unique=True, nullable=False)
email: Mapped[str] = mapped_column(String, nullable=False)
email: Mapped[str] = mapped_column(String, nullable=False, unique= True)
password: Mapped[str] = mapped_column(String, nullable=False)
class PasswordORM(Base):
......@@ -207,7 +207,6 @@ class PasswordDAO():
db.session.commit()
def deleteRowByUUID(db, uuid):
print("deleterowbyuuid")
stm = db.session.execute(select(PasswordORM).where(PasswordORM.uuid == uuid)).scalar_one_or_none()
db.session.delete(stm)
db.session.commit()
......
No preview for this file type
from portfolio import app, db, mail, bcrypt, login_manager, uuid
from flask import render_template, url_for, redirect, flash
from flask import render_template, url_for, redirect, flash, session, request
from portfolio.models import *
from flask_mail import Message, Mail
import os
......@@ -136,19 +136,31 @@ def addComment(post_id):
redirect(url_for('login'))
return render_template('newComment.html', form=form)
@app.before_request
def login():
if '_flashes' in session:
print('flashes cleared')
session['_flashes'].clear()
@app.route('/login', methods=['GET', 'POST'])
# Flashed messages modals needed here.
# The base page needs to show users their logged-in status
def login():
form = LoginForm()
print(session.get('_flashes'))
error = None
#session['_flashes'].clear()
if form.validate_on_submit():
user = UserDAO.getUser(db, form.username.data)
if user:
if bcrypt.check_password_hash(user.password, form.password.data):
login_user(user)
print(current_user.is_active)
return redirect(url_for('blog'))
return redirect('/')
else:
error = 'incorrect password'
else:
flash("Unknown user. Do you need to sign up?")
error = 'username not found'
if error:
flash(error)
return render_template('login.html', form=form)
@app.route('/register', methods=['GET', 'POST'])
......@@ -157,13 +169,16 @@ def register():
url = uuid.uuid4()
form = RegisterForm()
if form.validate_on_submit():
user = UserORM(
password = bcrypt.generate_password_hash(form.password.data),
username = form.username.data,
email = form.email.data
)
UserDAO.addUser(db, user)
return render_template('thanks.html')
if UserDAO.checkEmail(db, form.email.data):
flash('Email address is already in use.')
else:
user = UserORM(
password = bcrypt.generate_password_hash(form.password.data),
username = form.username.data,
email = form.email.data
)
UserDAO.addUser(db, user)
return render_template('thanks.html')
else:
if form.errors:
for key, value in form.errors.items():
......
<a href="{{ url_for('experience')}}">Experience</a>
<a href="{{ url_for('projects')}}">Projects</a>
<a href="{{ url_for('blog')}}">Blog</a>
\ No newline at end of file
<a href="{{ url_for('blog')}}">Blog</a>
<a href="{{ url_for('login')}}">log in</a>
\ No newline at end of file
{% import 'modal.html' as modal %}
{% extends 'layouts/base.html' %}
{% block content%}
<h2>Log in</h2>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<p> {{ message }} </p>
{% endfor %}
{% endif %}
{% endwith %}
<a href="{{url_for('register')}}">New user? Create an account here.</a>
<a href="{{url_for('forgottenDetails')}}">Forgotten your username or password? Reset it here.</a>
<form method="POST">
{{ form.hidden_tag() }}
<label for="username">username:</label>
......@@ -18,8 +15,10 @@
{{ form.password(size=50)}}
<br>
{{ form.submit}}
</form>
<a href="{{url_for('forgottenDetails')}}">Forgotten your username or password? Reset it here.</a>
{{ modal }}
{% endblock %}
{% endblock %}
\ No newline at end of file
<section>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages %}
<p>
<p> {{ message }}
<button onclick="toggleDialog()">dismiss</button>
</p>
</p>
{% endfor %}
{% endif %}
{% endwith %}
</section>
<script>
const dialog = document.querySelector("dialog");
dialog.showModal();
let toggle_dialog = false;
function toggleDialog() {
if (toggle_dialog) {
toggle_dialog = false;
} else {
toggle_dialog = true;
dialog.close();
}
}
</script>
\ No newline at end of file
{% import 'modal.html' as modal %}
{% extends 'layouts/base.html' %}
{% block content%}
<h2>Register</h2>
<a href="{{url_for('login')}}">Already have an account? Log in here.</a>
{% with messages = get_flashed_messages() %}
{% if messages %}
{% for message in messages%}
<p> {{ message }} </p>
{% endfor %}
{% endif %}
{% endwith %}
{{ modal }}
<form method="POST">
{{ form.hidden_tag() }}
<label for="username">username:</label>
......
{% extends 'layouts/base.html' %}
{% block content %}
<h1>Thanks</h1>
{% endblock}
\ No newline at end of file
{% endblock %}
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment