Update opolka/ScoDoc from ScoDoc/ScoDoc #2

Merged
opolka merged 1272 commits from ScoDoc/ScoDoc:master into master 2024-05-27 09:11:04 +02:00
7 changed files with 51 additions and 34 deletions
Showing only changes of commit 85005419ae - Show all commits

View File

@ -83,7 +83,6 @@ from app.models.but_validations import (
ApcValidationRCUE, ApcValidationRCUE,
) )
from app.models.etudiants import Identite from app.models.etudiants import Identite
from app.models.formations import Formation
from app.models.formsemestre import FormSemestre from app.models.formsemestre import FormSemestre
from app.models.ues import UniteEns from app.models.ues import UniteEns
from app.models.validations import ScolarFormSemestreValidation from app.models.validations import ScolarFormSemestreValidation
@ -93,7 +92,6 @@ from app.scodoc.codes_cursus import (
code_rcue_validant, code_rcue_validant,
BUT_CODES_ORDER, BUT_CODES_ORDER,
CODES_RCUE_VALIDES, CODES_RCUE_VALIDES,
CODES_UE_CAPITALISANTS,
CODES_UE_VALIDES, CODES_UE_VALIDES,
RED, RED,
UE_STANDARD, UE_STANDARD,

View File

@ -304,9 +304,16 @@ class NotesTableCompat(ResultatsSemestre):
) )
def get_etud_decisions_ue(self, etudid: int) -> dict: def get_etud_decisions_ue(self, etudid: int) -> dict:
"""Decisions du jury pour les UE de cet etudiant, ou None s'il n'y en pas eu. """Decisions du jury pour les UE de cet etudiant dans ce formsemestre,
Ne tient pas compte des UE capitalisées. ou None s'il n'y en pas eu.
{ ue_id : { 'code' : ADM|CMP|AJ, 'event_date' : "d/m/y", 'ects' : x } Ne tient pas compte des UE capitalisées ou externes.
{ ue_id : {
'code' : ADM|CMP|AJ|ADSUP|...,
'event_date' : "d/m/y",
'ects' : float, nb d'ects validées dans l'UE de ce semestre.
}
...
}
Ne renvoie aucune decision d'UE pour les défaillants Ne renvoie aucune decision d'UE pour les défaillants
""" """
if self.get_etud_etat(etudid) == DEF: if self.get_etud_etat(etudid) == DEF:

View File

@ -50,7 +50,7 @@ def load_formsemestre_validations(formsemestre: FormSemestre) -> ValidationsSeme
If not in cache, build it and cache it (in g). If not in cache, build it and cache it (in g).
""" """
if not hasattr(g, "formsemestre_validation_cache"): if not hasattr(g, "formsemestre_validation_cache"):
g.formsemestre_validations_cache = {} # pylint: disable=C0237 g.formsemestre_validations_cache = {}
else: else:
if formsemestre.id in g.formsemestre_validations_cache: if formsemestre.id in g.formsemestre_validations_cache:
return g.formsemestre_validations_cache[formsemestre.id] return g.formsemestre_validations_cache[formsemestre.id]

View File

@ -201,8 +201,8 @@ CODES_SEM_REO = {NAR} # reorientation
CODES_JURY_UE = {ADM, CMP, ADJ, ADJR, ADSUP, AJ, ATJ, RAT, DEF, ABAN, DEM, UEBSL} CODES_JURY_UE = {ADM, CMP, ADJ, ADJR, ADSUP, AJ, ATJ, RAT, DEF, ABAN, DEM, UEBSL}
CODES_UE_VALIDES_DE_DROIT = {ADM, CMP} # validation "de droit" CODES_UE_VALIDES_DE_DROIT = {ADM, CMP} # validation "de droit"
CODES_UE_VALIDES = CODES_UE_VALIDES_DE_DROIT | {ADJ, ADJR, ADSUP} CODES_UE_VALIDES = CODES_UE_VALIDES_DE_DROIT | {ADJ, ADJR, ADSUP}
"UE validée" "UE validée (attribution des ECTS)"
CODES_UE_CAPITALISANTS = {ADM} CODES_UE_CAPITALISANTS = {ADM} # XXX non utilisé
"UE capitalisée" "UE capitalisée"
CODES_JURY_RCUE = {ADM, ADJ, ADSUP, CMP, AJ, ATJ, RAT, DEF, ABAN} CODES_JURY_RCUE = {ADM, ADJ, ADSUP, CMP, AJ, ATJ, RAT, DEF, ABAN}

View File

@ -1196,6 +1196,10 @@ def formsemestre_validate_previous_ue(formsemestre: FormSemestre, etud: Identite
<p>Cette page est surtout utile pour les étudiants ayant <p>Cette page est surtout utile pour les étudiants ayant
suivi un début de cursus dans <b>un autre établissement</b>, ou qui suivi un début de cursus dans <b>un autre établissement</b>, ou qui
ont suivi une UE à l'étranger ou dans un semestre géré <b>sans ScoDoc</b>. ont suivi une UE à l'étranger ou dans un semestre géré <b>sans ScoDoc</b>.
</>
<p>Il est aussi nécessaire de valider les UEs antérieures en cas de changement
de référentiel de compétence en cours de cursus (par exemple si un étudiant redouble et
que le programme change de référentiel entre temps).
</p> </p>
<p>Pour les semestres précédents gérés avec ScoDoc, passer par la page jury normale. <p>Pour les semestres précédents gérés avec ScoDoc, passer par la page jury normale.
</p> </p>

View File

@ -182,18 +182,26 @@ du référentiel de compétence <a class="stdlink" href="{{
</p> </p>
<p>Seuls les UEs et niveaux de ce référentiel sont montrés. Si le référentiel a <p>Seuls les UEs et niveaux de ce référentiel sont montrés. Si le référentiel a
changé, enregistrer des validations "antérieures". changé, <a class="stdlink" href="{{
url_for( 'notes.formsemestre_validate_previous_ue',
scodoc_dept=g.scodoc_dept,
etudid=sco.etud.id,
formsemestre_id=sco.formsemestre.id)
}}">enregistrer des validations "antérieures"</a>.
</p> </p>
<p>Le symbole <span class="parc">TC</span> désigne un niveau du tronc commun <p>Le symbole <span class="parc">TC</span> désigne un niveau du tronc commun
(c'est à dire présent dans tous les parcours de la spécialité). </p> (c'est à dire présent dans tous les parcours de la spécialité). </p>
{% if edit %} {% if edit %}
<p>Les validations sont enregistrées au fur et à mesure. <p>Les validations sont enregistrées au fur et à mesure.</p>
Attention, cette page permet une saisie "manuelle", la cohérence des décisions <p>
n'est pas vérifiée (ni avec les notes, ni avec les décisions d'UEs, ni entre ⚠️ Attention, cette page permet une saisie "manuelle", la cohérence des décisions
années), et les <tt>ADSUP</tt> ne sont pas automatiquement générés. Privilégiez n'est pas vérifiée: ni avec les notes, ni avec les décisions d'UEs
lorsque c'est possible la saisie par (qu'il vous faudra probablement saisir aussi), ni entre années.
Les <tt>ADSUP</tt> ne sont pas automatiquement générés.
<br>
Privilégiez lorsque c'est possible la saisie par
<a class="stdlink" href="{{url_for('notes.formsemestre_validation_but', <a class="stdlink" href="{{url_for('notes.formsemestre_validation_but',
scodoc_dept=g.scodoc_dept, scodoc_dept=g.scodoc_dept,
etudid=sco.etud.id, etudid=sco.etud.id,

View File

@ -129,7 +129,7 @@ cp -p "$SCODOC_DIR"/tools/etc/scodoc9.service "$slash"/etc/systemd/system/ || di
# Répertoire DEBIAN # Répertoire DEBIAN
mv "$SCODOC_DIR"/tools/debian "$slash"/DEBIAN || die "can't install DEBIAN dir" mv "$SCODOC_DIR"/tools/debian "$slash"/DEBIAN || die "can't install DEBIAN dir"
chmod 755 "$slash"/DEBIAN/*inst || die "can't chmod debian scripts" chmod 750 "$slash"/DEBIAN/*inst || die "can't chmod debian scripts"
# ------------ CREATION DU VIRTUALENV # ------------ CREATION DU VIRTUALENV
#echo "Creating python3 virtualenv..." #echo "Creating python3 virtualenv..."