From 9d02b2529a298ffe5c6f311fee6e1c2965cb827d Mon Sep 17 00:00:00 2001 From: Mikkel <4072916+Mikk3@users.noreply.github.com> Date: Thu, 2 Jun 2022 09:23:32 +0200 Subject: [PATCH] =?UTF-8?q?Tilf=C3=B8j=20group=5Fexist,=20=C3=A6ndre=20ins?= =?UTF-8?q?ert=5Fgroup=20i=20models.py?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit insert_group returnere den tilføjet gruppe. Så man kan tilføje brugeren til den nyoprettet gruppe --- aula/Group/routes.py | 13 +++++++++---- aula/models.py | 16 +++++++++------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/aula/Group/routes.py b/aula/Group/routes.py index a5b6104..7646b2f 100644 --- a/aula/Group/routes.py +++ b/aula/Group/routes.py @@ -1,6 +1,6 @@ from flask import render_template, Blueprint, flash, redirect from flask_login import current_user, login_required -from aula.models import get_group, insert_group +from aula.models import get_group, insert_group, group_exist from aula.forms import CreateThreadForm, CreateGroupForm, CreatePostForm Group = Blueprint('Group', __name__) @@ -30,10 +30,15 @@ def show(group_id): def create(): form = CreateGroupForm() - if insert_group(form.title.data, form.mandatory.data): - flash('Gruppen blev oprettet', 'success') - else: + # Make sure we dont try to create group with same name as others + # Since name has UNIQUE constraint. + if group_exist(form.title.data): flash('En gruppe med det navn findes allerede', 'danger') + return redirect(f"/groups") + + group = insert_group(form.title.data, form.mandatory.data) + current_user.join_group(group.group_id) + flash('Gruppen blev oprettet', 'success') return redirect(f"/groups") @Group.route("/groups/join/", methods=['GET']) diff --git a/aula/models.py b/aula/models.py index 0777cf0..b5ac744 100644 --- a/aula/models.py +++ b/aula/models.py @@ -332,24 +332,26 @@ def insert_thread(group_id, title): conn.commit() cur.close() -def insert_group(name, mandatory): - # Make sure we dont try to create group with same name as others - # Since name has UNIQUE constraint. +def group_exist(name): cur = conn.cursor() sql = """ SELECT COUNT(*) FROM groups WHERE name = %s """ cur.execute(sql, (name,)) - if cur.fetchone()[0] > 0: return False + return cur.fetchone()[0] > 0 - # Do insertion +def insert_group(name, mandatory): + cur = conn.cursor() sql = """ - INSERT INTO groups(name, mandatory) VALUES (%s, %s) + INSERT INTO groups(name, mandatory) VALUES (%s, %s) RETURNING * """ cur.execute(sql, (name, mandatory)) + + result = Group(cur.fetchone()) if cur.rowcount > 0 else None + conn.commit() cur.close() - return True + return result def insert_post(group_id, author_id, title, content): cur = conn.cursor()