diff --git a/aula/Group/routes.py b/aula/Group/routes.py index 9fa0be1..7375e96 100644 --- a/aula/Group/routes.py +++ b/aula/Group/routes.py @@ -29,6 +29,9 @@ def show(group_id): @login_required def create(): form = CreateGroupForm() - insert_group(form.title.data, form.hidden.data) - flash('Gruppen blev oprettet', 'success') + + if insert_group(form.title.data, form.hidden.data): + flash('Gruppen blev oprettet', 'success') + else: + flash('En gruppe med det navn findes allerede', 'danger') return redirect(f"/groups") \ No newline at end of file diff --git a/aula/models.py b/aula/models.py index 7e38b1a..ee14ce1 100644 --- a/aula/models.py +++ b/aula/models.py @@ -331,13 +331,23 @@ def insert_thread(group_id, title): cur.close() def insert_group(name, hidden): + # Make sure we dont try to create group with same name as others + # Since name has UNIQUE constraint. cur = conn.cursor() sql = """ + SELECT COUNT(*) FROM groups WHERE name = %s + """ + cur.execute(sql, (name,)) + if cur.fetchone()[0] > 0: return False + + # Do insertion + sql = """ INSERT INTO groups(name, hidden) VALUES (%s, %s) """ cur.execute(sql, (name, hidden)) conn.commit() cur.close() + return True def insert_post(group_id, author_id, title, content): cur = conn.cursor()