forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -28,13 +28,14 @@
|
||||
"""Table recap formation (avec champs éditables)
|
||||
"""
|
||||
import io
|
||||
from zipfile import ZipFile, BadZipfile
|
||||
from zipfile import ZipFile
|
||||
|
||||
from flask import Response
|
||||
from flask import send_file, url_for
|
||||
from flask import g, request
|
||||
from flask_login import current_user
|
||||
|
||||
from app import db
|
||||
from app.models import Formation, FormSemestre, Matiere, Module, UniteEns
|
||||
|
||||
from app.scodoc.gen_tables import GenTable
|
||||
|
@ -200,7 +200,7 @@ def do_formsemestres_associate_new_version(
|
||||
|
||||
# New formation:
|
||||
(
|
||||
formation_id,
|
||||
new_formation_id,
|
||||
modules_old2new,
|
||||
ues_old2new,
|
||||
) = sco_formations.formation_create_new_version(formation_id, redirect=False)
|
||||
@ -219,7 +219,7 @@ def do_formsemestres_associate_new_version(
|
||||
# re-associate
|
||||
for formsemestre_id in formsemestre_ids:
|
||||
formsemestre = FormSemestre.get_formsemestre(formsemestre_id)
|
||||
formsemestre.formation_id = formation_id
|
||||
formsemestre.formation_id = new_formation_id
|
||||
db.session.add(formsemestre)
|
||||
_reassociate_moduleimpls(formsemestre, ues_old2new, modules_old2new)
|
||||
|
||||
@ -246,8 +246,12 @@ def _reassociate_moduleimpls(
|
||||
Evaluation.moduleimpl_id == ModuleImpl.id,
|
||||
ModuleImpl.formsemestre_id == formsemestre.id,
|
||||
):
|
||||
poids.ue_id = ues_old2new[poids.ue_id]
|
||||
db.session.add(poids)
|
||||
if poids.ue_id in ues_old2new:
|
||||
poids.ue_id = ues_old2new[poids.ue_id]
|
||||
db.session.add(poids)
|
||||
else:
|
||||
# poids vers une UE qui n'est pas ou plus dans notre formation
|
||||
db.session.delete(poids)
|
||||
|
||||
# update decisions:
|
||||
for event in ScolarEvent.query.filter_by(formsemestre_id=formsemestre.id):
|
||||
@ -258,8 +262,9 @@ def _reassociate_moduleimpls(
|
||||
for validation in ScolarFormSemestreValidation.query.filter_by(
|
||||
formsemestre_id=formsemestre.id
|
||||
):
|
||||
if validation.ue_id is not None:
|
||||
if (validation.ue_id is not None) and validation.ue_id in ues_old2new:
|
||||
validation.ue_id = ues_old2new[validation.ue_id]
|
||||
# si l'UE n'est pas ou plus dans notre formation, laisse.
|
||||
db.session.add(validation)
|
||||
|
||||
db.session.commit()
|
||||
|
@ -241,7 +241,7 @@ def get_default_group(formsemestre_id, fix_if_missing=False):
|
||||
return group.id
|
||||
# debug check
|
||||
if len(r) != 1:
|
||||
raise ScoException(f"invalid group structure for {formsemestre_id}")
|
||||
log(f"invalid group structure for {formsemestre_id}: {len(r)}")
|
||||
group_id = r[0]["group_id"]
|
||||
return group_id
|
||||
|
||||
@ -587,7 +587,7 @@ def XMLgetGroupsInPartition(partition_id): # was XMLgetGroupesTD
|
||||
x_group = Element(
|
||||
"group",
|
||||
partition_id=str(partition_id),
|
||||
partition_name=partition["partition_name"],
|
||||
partition_name=partition["partition_name"] or "",
|
||||
groups_editable=str(int(partition["groups_editable"])),
|
||||
group_id="_none_",
|
||||
group_name="",
|
||||
@ -599,9 +599,9 @@ def XMLgetGroupsInPartition(partition_id): # was XMLgetGroupesTD
|
||||
Element(
|
||||
"etud",
|
||||
etudid=str(etud["etudid"]),
|
||||
sexe=etud["civilite_str"],
|
||||
nom=sco_etud.format_nom(etud["nom"]),
|
||||
prenom=sco_etud.format_prenom(etud["prenom"]),
|
||||
sexe=etud["civilite_str"] or "",
|
||||
nom=sco_etud.format_nom(etud["nom"] or ""),
|
||||
prenom=sco_etud.format_prenom(etud["prenom"] or ""),
|
||||
origin=_comp_etud_origin(etud, formsemestre),
|
||||
)
|
||||
)
|
||||
|
@ -1,7 +1,11 @@
|
||||
# -*- mode: python -*-
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
<<<<<<< HEAD
|
||||
SCOVERSION = "9.6.0"
|
||||
=======
|
||||
SCOVERSION = "9.5.3"
|
||||
>>>>>>> 2c93c35aa7972b502ddbda69b35cb40773317647
|
||||
|
||||
SCONAME = "ScoDoc"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user