From 52282c98cbaf1f94812aa96192d55df211588cc6 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Mon, 10 Jul 2023 13:58:16 +0200 Subject: [PATCH 1/2] Fix for SQLAlchemy 2 --- app/models/but_refcomp.py | 10 +++++++--- app/scodoc/sco_formsemestre_status.py | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/models/but_refcomp.py b/app/models/but_refcomp.py index b33e2f2bb..2cb1145d7 100644 --- a/app/models/but_refcomp.py +++ b/app/models/but_refcomp.py @@ -397,7 +397,9 @@ class ApcNiveau(db.Model, XMLModel): return ( ApcParcours.query.join(ApcAnneeParcours) .filter_by(ordre=annee) - .join(ApcParcoursNiveauCompetence, ApcCompetence, ApcNiveau) + .join(ApcParcoursNiveauCompetence) + .join(ApcCompetence) + .join(ApcNiveau) .filter_by(id=self.id) .order_by(ApcParcours.numero, ApcParcours.code) .all() @@ -614,7 +616,8 @@ class ApcParcours(db.Model, XMLModel): def query_competences(self) -> Query: "Les compétences associées à ce parcours" return ( - ApcCompetence.query.join(ApcParcoursNiveauCompetence, ApcAnneeParcours) + ApcCompetence.query.join(ApcParcoursNiveauCompetence) + .join(ApcAnneeParcours) .filter_by(parcours_id=self.id) .order_by(ApcCompetence.numero) ) @@ -623,7 +626,8 @@ class ApcParcours(db.Model, XMLModel): "La compétence de titre donné dans ce parcours, ou None" return ( ApcCompetence.query.filter_by(titre=titre) - .join(ApcParcoursNiveauCompetence, ApcAnneeParcours) + .join(ApcParcoursNiveauCompetence) + .join(ApcAnneeParcours) .filter_by(parcours_id=self.id) .order_by(ApcCompetence.numero) .first() diff --git a/app/scodoc/sco_formsemestre_status.py b/app/scodoc/sco_formsemestre_status.py index 817d818ff..94bbd766d 100644 --- a/app/scodoc/sco_formsemestre_status.py +++ b/app/scodoc/sco_formsemestre_status.py @@ -254,7 +254,7 @@ def formsemestre_status_menubar(formsemestre: FormSemestre) -> str: }, ] # debug : - if current_app.config["ENV"] == "development": + if current_app.config["DEBUG"]: menu_semestre.append( { "title": "Vérifier l'intégrité", From 2e5add1c48b98a0272f1427c590d60d70824de96 Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Mon, 10 Jul 2023 14:32:16 +0200 Subject: [PATCH 2/2] Fix: creation matieres sans numeros --- app/models/modules.py | 1 - app/scodoc/sco_edit_matiere.py | 22 +++++++++++++++------- app/scodoc/sco_edit_module.py | 1 + sco_version.py | 2 +- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/app/models/modules.py b/app/models/modules.py index 85503f278..8295eedad 100644 --- a/app/models/modules.py +++ b/app/models/modules.py @@ -1,6 +1,5 @@ """ScoDoc 9 models : Modules """ -from operator import attrgetter from flask import current_app from app import db diff --git a/app/scodoc/sco_edit_matiere.py b/app/scodoc/sco_edit_matiere.py index ef425b493..360e02fc2 100644 --- a/app/scodoc/sco_edit_matiere.py +++ b/app/scodoc/sco_edit_matiere.py @@ -32,6 +32,7 @@ import flask from flask import g, url_for, request from app.models.events import ScolarNews from app.models.formations import Matiere +from app.models.ues import UniteEns import app.scodoc.notesdb as ndb import app.scodoc.sco_utils as scu @@ -100,13 +101,12 @@ def do_matiere_create(args): def matiere_create(ue_id=None): """Creation d'une matiere""" - from app.scodoc import sco_edit_ue - - UE = sco_edit_ue.ue_list(args={"ue_id": ue_id})[0] + ue: UniteEns = UniteEns.query.get_or_404(ue_id) + default_numero = max([mat.numero for mat in ue.matieres] or [9]) + 1 H = [ html_sco_header.sco_header(page_title="Création d'une matière"), - """

Création d'une matière dans l'UE %(titre)s (%(acronyme)s)

""" % UE, - """

Les matières sont des groupes de modules dans une UE + f"""

Création d'une matière dans l'UE {ue.titre} ({ue.acronyme})

+

Les matières sont des groupes de modules dans une UE d'une formation donnée. Les matières servent surtout pour la présentation (bulletins, etc) mais n'ont pas de rôle dans le calcul des notes. @@ -126,13 +126,21 @@ associé. scu.get_request_args(), ( ("ue_id", {"input_type": "hidden", "default": ue_id}), - ("titre", {"size": 30, "explanation": "nom de la matière."}), + ( + "titre", + { + "size": 30, + "explanation": "nom de la matière.", + }, + ), ( "numero", { "size": 2, "explanation": "numéro (1,2,3,4...) pour affichage", "type": "int", + "default": default_numero, + "allow_null": False, }, ), ), @@ -140,7 +148,7 @@ associé. ) dest_url = url_for( - "notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=UE["formation_id"] + "notes.ue_table", scodoc_dept=g.scodoc_dept, formation_id=ue.formation_id ) if tf[0] == 0: diff --git a/app/scodoc/sco_edit_module.py b/app/scodoc/sco_edit_module.py index 139afa841..83476eb10 100644 --- a/app/scodoc/sco_edit_module.py +++ b/app/scodoc/sco_edit_module.py @@ -659,6 +659,7 @@ def module_edit( "explanation": "numéro (1, 2, 3, 4, ...) pour ordre d'affichage", "type": "int", "default": default_num, + "allow_null": False, }, ), ] diff --git a/sco_version.py b/sco_version.py index 6ef51420b..786c89873 100644 --- a/sco_version.py +++ b/sco_version.py @@ -1,7 +1,7 @@ # -*- mode: python -*- # -*- coding: utf-8 -*- -SCOVERSION = "9.4.99" +SCOVERSION = "9.5.0" SCONAME = "ScoDoc"