forked from ScoDoc/ScoDoc
Option pour faire passer les étudiants même sans décision de jury
This commit is contained in:
parent
01dcd8cccd
commit
b53969dbdd
@ -49,9 +49,11 @@ from app.scodoc import sco_etud
|
|||||||
from app.scodoc.sco_exceptions import ScoValueError
|
from app.scodoc.sco_exceptions import ScoValueError
|
||||||
|
|
||||||
|
|
||||||
def list_authorized_etuds_by_sem(sem, delai=274):
|
def list_authorized_etuds_by_sem(sem, delai=274, ignore_jury=False):
|
||||||
"""Liste des etudiants autorisés à s'inscrire dans sem.
|
"""Liste des etudiants autorisés à s'inscrire dans sem.
|
||||||
delai = nb de jours max entre la date de l'autorisation et celle de debut du semestre cible.
|
delai = nb de jours max entre la date de l'autorisation et celle de debut du semestre cible.
|
||||||
|
ignore_jury: si vrai, considère tous les étudiants comem autorisés, même
|
||||||
|
s'ils n'ont pas de décision de jury.
|
||||||
"""
|
"""
|
||||||
src_sems = list_source_sems(sem, delai=delai)
|
src_sems = list_source_sems(sem, delai=delai)
|
||||||
inscrits = list_inscrits(sem["formsemestre_id"])
|
inscrits = list_inscrits(sem["formsemestre_id"])
|
||||||
@ -59,7 +61,12 @@ def list_authorized_etuds_by_sem(sem, delai=274):
|
|||||||
candidats = {} # etudid : etud (tous les etudiants candidats)
|
candidats = {} # etudid : etud (tous les etudiants candidats)
|
||||||
nb = 0 # debug
|
nb = 0 # debug
|
||||||
for src in src_sems:
|
for src in src_sems:
|
||||||
liste = list_etuds_from_sem(src, sem)
|
if ignore_jury:
|
||||||
|
# liste de tous les inscrits au semestre (sans dems)
|
||||||
|
liste = list_inscrits(src["formsemestre_id"]).values()
|
||||||
|
else:
|
||||||
|
# liste des étudiants autorisés par le jury à s'inscrire ici
|
||||||
|
liste = list_etuds_from_sem(src, sem)
|
||||||
liste_filtree = []
|
liste_filtree = []
|
||||||
for e in liste:
|
for e in liste:
|
||||||
# Filtre ceux qui se sont déjà inscrit dans un semestre APRES le semestre src
|
# Filtre ceux qui se sont déjà inscrit dans un semestre APRES le semestre src
|
||||||
@ -125,7 +132,7 @@ def list_inscrits(formsemestre_id, with_dems=False):
|
|||||||
return inscr
|
return inscr
|
||||||
|
|
||||||
|
|
||||||
def list_etuds_from_sem(src, dst):
|
def list_etuds_from_sem(src, dst) -> list[dict]:
|
||||||
"""Liste des etudiants du semestre src qui sont autorisés à passer dans le semestre dst."""
|
"""Liste des etudiants du semestre src qui sont autorisés à passer dans le semestre dst."""
|
||||||
target = dst["semestre_id"]
|
target = dst["semestre_id"]
|
||||||
dpv = sco_pvjury.dict_pvjury(src["formsemestre_id"])
|
dpv = sco_pvjury.dict_pvjury(src["formsemestre_id"])
|
||||||
@ -224,7 +231,7 @@ def do_desinscrit(sem, etudids):
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
def list_source_sems(sem, delai=None):
|
def list_source_sems(sem, delai=None) -> list[dict]:
|
||||||
"""Liste des semestres sources
|
"""Liste des semestres sources
|
||||||
sem est le semestre destination
|
sem est le semestre destination
|
||||||
"""
|
"""
|
||||||
@ -265,6 +272,7 @@ def formsemestre_inscr_passage(
|
|||||||
inscrit_groupes=False,
|
inscrit_groupes=False,
|
||||||
submitted=False,
|
submitted=False,
|
||||||
dialog_confirmed=False,
|
dialog_confirmed=False,
|
||||||
|
ignore_jury=False,
|
||||||
):
|
):
|
||||||
"""Form. pour inscription des etudiants d'un semestre dans un autre
|
"""Form. pour inscription des etudiants d'un semestre dans un autre
|
||||||
(donné par formsemestre_id).
|
(donné par formsemestre_id).
|
||||||
@ -280,6 +288,7 @@ def formsemestre_inscr_passage(
|
|||||||
|
|
||||||
"""
|
"""
|
||||||
inscrit_groupes = int(inscrit_groupes)
|
inscrit_groupes = int(inscrit_groupes)
|
||||||
|
ignore_jury = int(ignore_jury)
|
||||||
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
sem = sco_formsemestre.get_formsemestre(formsemestre_id)
|
||||||
# -- check lock
|
# -- check lock
|
||||||
if not sem["etat"]:
|
if not sem["etat"]:
|
||||||
@ -295,7 +304,9 @@ def formsemestre_inscr_passage(
|
|||||||
elif etuds and isinstance(etuds[0], str):
|
elif etuds and isinstance(etuds[0], str):
|
||||||
etuds = [int(x) for x in etuds]
|
etuds = [int(x) for x in etuds]
|
||||||
|
|
||||||
auth_etuds_by_sem, inscrits, candidats = list_authorized_etuds_by_sem(sem)
|
auth_etuds_by_sem, inscrits, candidats = list_authorized_etuds_by_sem(
|
||||||
|
sem, ignore_jury=ignore_jury
|
||||||
|
)
|
||||||
etuds_set = set(etuds)
|
etuds_set = set(etuds)
|
||||||
candidats_set = set(candidats)
|
candidats_set = set(candidats)
|
||||||
inscrits_set = set(inscrits)
|
inscrits_set = set(inscrits)
|
||||||
@ -323,6 +334,7 @@ def formsemestre_inscr_passage(
|
|||||||
candidats_non_inscrits,
|
candidats_non_inscrits,
|
||||||
inscrits_ailleurs,
|
inscrits_ailleurs,
|
||||||
inscrit_groupes=inscrit_groupes,
|
inscrit_groupes=inscrit_groupes,
|
||||||
|
ignore_jury=ignore_jury,
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
if not dialog_confirmed:
|
if not dialog_confirmed:
|
||||||
@ -411,18 +423,23 @@ def build_page(
|
|||||||
candidats_non_inscrits,
|
candidats_non_inscrits,
|
||||||
inscrits_ailleurs,
|
inscrits_ailleurs,
|
||||||
inscrit_groupes=False,
|
inscrit_groupes=False,
|
||||||
|
ignore_jury=False,
|
||||||
):
|
):
|
||||||
inscrit_groupes = int(inscrit_groupes)
|
inscrit_groupes = int(inscrit_groupes)
|
||||||
|
ignore_jury = int(ignore_jury)
|
||||||
if inscrit_groupes:
|
if inscrit_groupes:
|
||||||
inscrit_groupes_checked = " checked"
|
inscrit_groupes_checked = " checked"
|
||||||
else:
|
else:
|
||||||
inscrit_groupes_checked = ""
|
inscrit_groupes_checked = ""
|
||||||
|
if ignore_jury:
|
||||||
|
ignore_jury_checked = " checked"
|
||||||
|
else:
|
||||||
|
ignore_jury_checked = ""
|
||||||
H = [
|
H = [
|
||||||
html_sco_header.html_sem_header(
|
html_sco_header.html_sem_header(
|
||||||
"Passages dans le semestre", sem, with_page_header=False
|
"Passages dans le semestre", sem, with_page_header=False
|
||||||
),
|
),
|
||||||
"""<form method="post" action="%s">""" % request.base_url,
|
"""<form name="f" method="post" action="%s">""" % request.base_url,
|
||||||
"""<input type="hidden" name="formsemestre_id" value="%(formsemestre_id)s"/>
|
"""<input type="hidden" name="formsemestre_id" value="%(formsemestre_id)s"/>
|
||||||
<input type="submit" name="submitted" value="Appliquer les modifications"/>
|
<input type="submit" name="submitted" value="Appliquer les modifications"/>
|
||||||
<a href="#help">aide</a>
|
<a href="#help">aide</a>
|
||||||
@ -430,6 +447,8 @@ def build_page(
|
|||||||
% sem, # "
|
% sem, # "
|
||||||
"""<input name="inscrit_groupes" type="checkbox" value="1" %s>inscrire aux mêmes groupes</input>"""
|
"""<input name="inscrit_groupes" type="checkbox" value="1" %s>inscrire aux mêmes groupes</input>"""
|
||||||
% inscrit_groupes_checked,
|
% inscrit_groupes_checked,
|
||||||
|
"""<input name="ignore_jury" type="checkbox" value="1" onchange="document.f.submit()" %s>inclure tous les étudiants (même sans décision de jury)</input>"""
|
||||||
|
% ignore_jury_checked,
|
||||||
"""<div class="pas_recap">Actuellement <span id="nbinscrits">%s</span> inscrits
|
"""<div class="pas_recap">Actuellement <span id="nbinscrits">%s</span> inscrits
|
||||||
et %d candidats supplémentaires
|
et %d candidats supplémentaires
|
||||||
</div>"""
|
</div>"""
|
||||||
|
Loading…
Reference in New Issue
Block a user