forked from ScoDoc/ScoDoc
Validations auto classic et BUT: accélération via DeferredSemCacheManager.
This commit is contained in:
parent
b698196a09
commit
60f5bdfc60
@ -4,15 +4,14 @@
|
||||
# See LICENSE
|
||||
##############################################################################
|
||||
|
||||
"""Jury BUT: clacul des décisions de jury annuelles "automatiques"
|
||||
"""Jury BUT: calcul des décisions de jury annuelles "automatiques"
|
||||
"""
|
||||
|
||||
from flask import g, url_for
|
||||
|
||||
from app import db
|
||||
from app.but import jury_but
|
||||
from app.models.etudiants import Identite
|
||||
from app.models.formsemestre import FormSemestre
|
||||
from app.scodoc import sco_cache
|
||||
from app.scodoc.sco_exceptions import ScoValueError
|
||||
|
||||
|
||||
@ -23,6 +22,7 @@ def formsemestre_validation_auto_but(formsemestre: FormSemestre) -> int:
|
||||
if not formsemestre.formation.is_apc():
|
||||
raise ScoValueError("fonction réservée aux formations BUT")
|
||||
nb_admis = 0
|
||||
with sco_cache.DeferredSemCacheManager():
|
||||
for etudid in formsemestre.etuds_inscriptions:
|
||||
etud: Identite = Identite.query.get(etudid)
|
||||
deca = jury_but.DecisionsProposeesAnnee(etud, formsemestre)
|
||||
|
@ -871,10 +871,9 @@ def form_decision_manuelle(Se, formsemestre_id, etudid, desturl="", sortcol=None
|
||||
# -----------
|
||||
def formsemestre_validation_auto(formsemestre_id):
|
||||
"Formulaire saisie automatisee des decisions d'un semestre"
|
||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||
H = [
|
||||
html_sco_header.html_sem_header("Saisie automatique des décisions du semestre"),
|
||||
"""
|
||||
f"""
|
||||
<ul>
|
||||
<li>Seuls les étudiants qui obtiennent le semestre seront affectés (code ADM, moyenne générale et
|
||||
toutes les barres, semestre précédent validé);</li>
|
||||
@ -886,12 +885,11 @@ def formsemestre_validation_auto(formsemestre_id):
|
||||
<p>Il est donc vivement conseillé de relire soigneusement les décisions à l'issue
|
||||
de cette procédure !</p>
|
||||
<form action="do_formsemestre_validation_auto">
|
||||
<input type="hidden" name="formsemestre_id" value="%s"/>
|
||||
<input type="hidden" name="formsemestre_id" value="{formsemestre_id}"/>
|
||||
<input type="submit" value="Calculer automatiquement ces décisions"/>
|
||||
<p><em>Le calcul prend quelques minutes, soyez patients !</em></p>
|
||||
</form>
|
||||
"""
|
||||
% formsemestre_id,
|
||||
""",
|
||||
html_sco_header.sco_footer(),
|
||||
]
|
||||
return "\n".join(H)
|
||||
@ -906,6 +904,7 @@ def do_formsemestre_validation_auto(formsemestre_id):
|
||||
etudids = nt.get_etudids()
|
||||
nb_valid = 0
|
||||
conflicts = [] # liste des etudiants avec decision differente déjà saisie
|
||||
with sco_cache.DeferredSemCacheManager():
|
||||
for etudid in etudids:
|
||||
etud = sco_etud.get_etud_info(etudid=etudid, filled=True)[0]
|
||||
Se = sco_cursus.get_situation_etud_cursus(etud, formsemestre_id)
|
||||
@ -917,7 +916,9 @@ def do_formsemestre_validation_auto(formsemestre_id):
|
||||
if ins["etat"] == "I" and (
|
||||
(
|
||||
(not Se.prev)
|
||||
or (Se.prev_decision and Se.prev_decision["code"] in (ADM, ADC, ADJ))
|
||||
or (
|
||||
Se.prev_decision and Se.prev_decision["code"] in (ADM, ADC, ADJ)
|
||||
)
|
||||
)
|
||||
and Se.barre_moy_ok
|
||||
and Se.barres_ue_ok
|
||||
|
Loading…
Reference in New Issue
Block a user