From 659156b749b898a5164bb12254b5b914ad66bdef Mon Sep 17 00:00:00 2001 From: Mo8it Date: Mon, 16 May 2022 18:57:21 +0200 Subject: [PATCH] highestGroupNumber --- advlabdb/models.py | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/advlabdb/models.py b/advlabdb/models.py index f30fa2a..3c5b877 100644 --- a/advlabdb/models.py +++ b/advlabdb/models.py @@ -11,6 +11,7 @@ from decimal import ROUND_HALF_UP, Decimal from flask import flash from flask_security import current_user from flask_security.models.fsqla_v2 import FsRoleMixin, FsUserMixin +from sqlalchemy import select from . import db from .configUtils import getConfig @@ -170,14 +171,19 @@ class Group(db.Model): semester = part_students[0].part.semester program = part_students[0].part.program - groupWithHighestNumber = ( - Group.query.filter(Group.semester == semester, Group.program == program) - .order_by(Group.number.desc()) + highestGroupNumber = ( + db.session.execute( + select(Group.number) + .where(Group.semester == semester, Group.program == program) + .order_by(Group.number.desc()) + .limit(1) + ) + .scalars() .first() ) - if groupWithHighestNumber is not None: - number = groupWithHighestNumber.number + 1 + if highestGroupNumber is not None: + number = highestGroupNumber + 1 else: number = 1