Fix: traitement des défaillants (bug empechant accès aux bulletins antérieurs)
This commit is contained in:
parent
13a8184601
commit
545c04968f
@ -302,22 +302,46 @@ class Identite(db.Model):
|
|||||||
else:
|
else:
|
||||||
date_ins = events[0].event_date
|
date_ins = events[0].event_date
|
||||||
situation += date_ins.strftime(" le %d/%m/%Y")
|
situation += date_ins.strftime(" le %d/%m/%Y")
|
||||||
|
elif inscr.etat == scu.DEF:
|
||||||
|
situation = f"défaillant en {inscr.formsemestre.titre_mois()}"
|
||||||
|
event = (
|
||||||
|
models.ScolarEvent.query.filter_by(
|
||||||
|
etudid=self.id,
|
||||||
|
formsemestre_id=inscr.formsemestre.id,
|
||||||
|
event_type="DEFAILLANCE",
|
||||||
|
)
|
||||||
|
.order_by(models.ScolarEvent.event_date)
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
if not event:
|
||||||
|
log(
|
||||||
|
f"*** situation inconsistante pour {self} (def mais pas d'event)"
|
||||||
|
)
|
||||||
|
situation += "???" # ???
|
||||||
|
else:
|
||||||
|
date_def = event.event_date
|
||||||
|
situation += date_def.strftime(" le %d/%m/%Y")
|
||||||
|
|
||||||
else:
|
else:
|
||||||
situation = f"démission de {inscr.formsemestre.titre_mois()}"
|
situation = f"démission de {inscr.formsemestre.titre_mois()}"
|
||||||
# Cherche la date de demission dans scolar_events:
|
# Cherche la date de demission dans scolar_events:
|
||||||
events = models.ScolarEvent.query.filter_by(
|
event = (
|
||||||
etudid=self.id,
|
models.ScolarEvent.query.filter_by(
|
||||||
formsemestre_id=inscr.formsemestre.id,
|
etudid=self.id,
|
||||||
event_type="DEMISSION",
|
formsemestre_id=inscr.formsemestre.id,
|
||||||
).all()
|
event_type="DEMISSION",
|
||||||
if not events:
|
)
|
||||||
|
.order_by(models.ScolarEvent.event_date)
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
if not event:
|
||||||
log(
|
log(
|
||||||
f"*** situation inconsistante pour {self} (demission mais pas d'event)"
|
f"*** situation inconsistante pour {self} (demission mais pas d'event)"
|
||||||
)
|
)
|
||||||
date_dem = "???" # ???
|
situation += "???" # ???
|
||||||
else:
|
else:
|
||||||
date_dem = events[0].event_date
|
date_dem = event.event_date
|
||||||
situation += date_dem.strftime(" le %d/%m/%Y")
|
situation += date_dem.strftime(" le %d/%m/%Y")
|
||||||
else:
|
else:
|
||||||
situation = "non inscrit" + self.e
|
situation = "non inscrit" + self.e
|
||||||
|
|
||||||
|
@ -95,9 +95,12 @@ _formsemestreEditor = ndb.EditableTable(
|
|||||||
|
|
||||||
def get_formsemestre(formsemestre_id, raise_soft_exc=False):
|
def get_formsemestre(formsemestre_id, raise_soft_exc=False):
|
||||||
"list ONE formsemestre"
|
"list ONE formsemestre"
|
||||||
|
if formsemestre_id is None:
|
||||||
|
raise ValueError(f"get_formsemestre: id manquant")
|
||||||
if formsemestre_id in g.stored_get_formsemestre:
|
if formsemestre_id in g.stored_get_formsemestre:
|
||||||
return g.stored_get_formsemestre[formsemestre_id]
|
return g.stored_get_formsemestre[formsemestre_id]
|
||||||
if not isinstance(formsemestre_id, int):
|
if not isinstance(formsemestre_id, int):
|
||||||
|
log(f"get_formsemestre: invalid id '{formsemestre_id}'")
|
||||||
raise ScoInvalidIdType("formsemestre_id must be an integer !")
|
raise ScoInvalidIdType("formsemestre_id must be an integer !")
|
||||||
sems = do_formsemestre_list(args={"formsemestre_id": formsemestre_id})
|
sems = do_formsemestre_list(args={"formsemestre_id": formsemestre_id})
|
||||||
if not sems:
|
if not sems:
|
||||||
|
@ -966,6 +966,7 @@ Il y a des notes en attente ! Le classement des étudiants n'a qu'une valeur ind
|
|||||||
def formsemestre_status(formsemestre_id=None):
|
def formsemestre_status(formsemestre_id=None):
|
||||||
"""Tableau de bord semestre HTML"""
|
"""Tableau de bord semestre HTML"""
|
||||||
# porté du DTML
|
# porté du DTML
|
||||||
|
|
||||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id, raise_soft_exc=True)
|
sem = sco_formsemestre.get_formsemestre(formsemestre_id, raise_soft_exc=True)
|
||||||
modimpls = sco_moduleimpl.moduleimpl_withmodule_list(
|
modimpls = sco_moduleimpl.moduleimpl_withmodule_list(
|
||||||
formsemestre_id=formsemestre_id
|
formsemestre_id=formsemestre_id
|
||||||
@ -987,7 +988,9 @@ def formsemestre_status(formsemestre_id=None):
|
|||||||
use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id)
|
use_ue_coefs = sco_preferences.get_preference("use_ue_coefs", formsemestre_id)
|
||||||
|
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.sco_header(page_title="Semestre %s" % sem["titreannee"]),
|
html_sco_header.sco_header(
|
||||||
|
page_title=f"{formsemestre.sem_modalite()} {formsemestre.titre_annee()}"
|
||||||
|
),
|
||||||
'<div class="formsemestre_status">',
|
'<div class="formsemestre_status">',
|
||||||
formsemestre_status_head(
|
formsemestre_status_head(
|
||||||
formsemestre_id=formsemestre_id, page_title="Tableau de bord"
|
formsemestre_id=formsemestre_id, page_title="Tableau de bord"
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
{# -*- mode: jinja-html -*- #}
|
{# -*- mode: jinja-html -*- #}
|
||||||
{% extends 'base.html' %}
|
{% extends 'base.html' %}
|
||||||
{% import 'bootstrap/wtf.html' as wtf %}
|
|
||||||
|
|
||||||
{% block app_content %}
|
{% block app_content %}
|
||||||
|
|
||||||
|
@ -290,10 +290,9 @@ def formsemestre_bulletinetud(
|
|||||||
code_ine=None,
|
code_ine=None,
|
||||||
):
|
):
|
||||||
format = format or "html"
|
format = format or "html"
|
||||||
if not formsemestre_id:
|
|
||||||
flask.abort(404, "argument manquant: formsemestre_id")
|
|
||||||
if not isinstance(formsemestre_id, int):
|
if not isinstance(formsemestre_id, int):
|
||||||
raise ScoInvalidIdType("formsemestre_id must be an integer !")
|
raise ValueError("formsemestre_id must be an integer !")
|
||||||
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
formsemestre = FormSemestre.query.get_or_404(formsemestre_id)
|
||||||
if etudid:
|
if etudid:
|
||||||
etud = models.Identite.query.get_or_404(etudid)
|
etud = models.Identite.query.get_or_404(etudid)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.2.6"
|
SCOVERSION = "9.2.7"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user