forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -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,
|
||||||
|
@ -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:
|
||||||
|
@ -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]
|
||||||
|
@ -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}
|
||||||
|
@ -367,7 +367,7 @@ def formsemestre_validation_etud_form(
|
|||||||
|
|
||||||
H.append(
|
H.append(
|
||||||
f"""<div class="link_defaillance">Ou <a class="stdlink" href="{
|
f"""<div class="link_defaillance">Ou <a class="stdlink" href="{
|
||||||
url_for("scolar.form_def", scodoc_dept=g.scodoc_dept, etudid=etudid,
|
url_for("scolar.form_def", scodoc_dept=g.scodoc_dept, etudid=etudid,
|
||||||
formsemestre_id=formsemestre_id)
|
formsemestre_id=formsemestre_id)
|
||||||
}">déclarer l'étudiant comme défaillant dans ce semestre</a></div>"""
|
}">déclarer l'étudiant comme défaillant dans ce semestre</a></div>"""
|
||||||
)
|
)
|
||||||
@ -683,7 +683,7 @@ def formsemestre_recap_parcours_table(
|
|||||||
# 2eme ligne: notes
|
# 2eme ligne: notes
|
||||||
H.append(f"""<tr class="{class_sem} rcp_l2 sem_{sem["formsemestre_id"]}">""")
|
H.append(f"""<tr class="{class_sem} rcp_l2 sem_{sem["formsemestre_id"]}">""")
|
||||||
H.append(
|
H.append(
|
||||||
f"""<td class="rcp_type_sem"
|
f"""<td class="rcp_type_sem"
|
||||||
style="background-color:{bgcolor};"> </td>"""
|
style="background-color:{bgcolor};"> </td>"""
|
||||||
)
|
)
|
||||||
if is_prev:
|
if is_prev:
|
||||||
@ -808,7 +808,7 @@ def form_decision_manuelle(Se, formsemestre_id, etudid, desturl="", sortcol=None
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<form method="get" action="formsemestre_validation_etud_manu" name="formvalidmanu" id="formvalidmanu" class="sfv_decisions sfv_decisions_manuelles" onsubmit="return check_sfv_form()">
|
<form method="get" action="formsemestre_validation_etud_manu" name="formvalidmanu" id="formvalidmanu" class="sfv_decisions sfv_decisions_manuelles" onsubmit="return check_sfv_form()">
|
||||||
<input type="hidden" name="etudid" value="%s"/>
|
<input type="hidden" name="etudid" value="%s"/>
|
||||||
<input type="hidden" name="formsemestre_id" value="%s"/>
|
<input type="hidden" name="formsemestre_id" value="%s"/>
|
||||||
@ -1028,7 +1028,7 @@ def do_formsemestre_validation_auto(formsemestre_id):
|
|||||||
]
|
]
|
||||||
if conflicts:
|
if conflicts:
|
||||||
H.append(
|
H.append(
|
||||||
f"""<p><b>Attention:</b> {len(conflicts)} étudiants non modifiés
|
f"""<p><b>Attention:</b> {len(conflicts)} étudiants non modifiés
|
||||||
car décisions différentes déja saisies :
|
car décisions différentes déja saisies :
|
||||||
<ul>"""
|
<ul>"""
|
||||||
)
|
)
|
||||||
@ -1190,12 +1190,16 @@ def formsemestre_validate_previous_ue(formsemestre: FormSemestre, etud: Identite
|
|||||||
|
|
||||||
<p class="help">Utiliser cette page pour enregistrer des UEs validées antérieurement,
|
<p class="help">Utiliser cette page pour enregistrer des UEs validées antérieurement,
|
||||||
<em>dans un semestre hors ScoDoc</em>.</p>
|
<em>dans un semestre hors ScoDoc</em>.</p>
|
||||||
<p class="expl"><b>Les UE validées dans ScoDoc sont
|
<p class="expl"><b>Les UE validées dans ScoDoc sont
|
||||||
automatiquement prises en compte</b>.
|
automatiquement prises en compte</b>.
|
||||||
</p>
|
</p>
|
||||||
<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>
|
||||||
@ -1277,7 +1281,7 @@ def _get_etud_ue_cap_html(etud: Identite, formsemestre: FormSemestre) -> str:
|
|||||||
H = [
|
H = [
|
||||||
f"""<div class="sco_box sco_lightgreen_bg ue_list_etud_validations">
|
f"""<div class="sco_box sco_lightgreen_bg ue_list_etud_validations">
|
||||||
<div class="sco_box_title">Validations d'UEs dans cette formation</div>
|
<div class="sco_box_title">Validations d'UEs dans cette formation</div>
|
||||||
<div class="help">Liste de toutes les UEs validées par {etud.html_link_fiche()},
|
<div class="help">Liste de toutes les UEs validées par {etud.html_link_fiche()},
|
||||||
sur des semestres ou déclarées comme "antérieures" (externes).
|
sur des semestres ou déclarées comme "antérieures" (externes).
|
||||||
</div>
|
</div>
|
||||||
<ul class="liste_validations">"""
|
<ul class="liste_validations">"""
|
||||||
@ -1296,7 +1300,7 @@ def _get_etud_ue_cap_html(etud: Identite, formsemestre: FormSemestre) -> str:
|
|||||||
H.append(
|
H.append(
|
||||||
f"""
|
f"""
|
||||||
<form class="inline-form">
|
<form class="inline-form">
|
||||||
<button
|
<button
|
||||||
data-v_id="{validation.id}" data-type="validation_ue" data-etudid="{etud.id}"
|
data-v_id="{validation.id}" data-type="validation_ue" data-etudid="{etud.id}"
|
||||||
>effacer</button>
|
>effacer</button>
|
||||||
</form>
|
</form>
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
<div class="scoplement">
|
<div class="scoplement">
|
||||||
{% if validation %}
|
{% if validation %}
|
||||||
<div>Validation de {{niv['ue_'+sem].acronyme}}</div>
|
<div>Validation de {{niv['ue_'+sem].acronyme}}</div>
|
||||||
<div>Jury de {{validation.formsemestre.titre_annee()
|
<div>Jury de {{validation.formsemestre.titre_annee()
|
||||||
if validation.formsemestre else "-"}}</div>
|
if validation.formsemestre else "-"}}</div>
|
||||||
<div>enregistrée le {{
|
<div>enregistrée le {{
|
||||||
validation.event_date.strftime("%d/%m/%Y à %H:%M")
|
validation.event_date.strftime("%d/%m/%Y à %H:%M")
|
||||||
@ -48,9 +48,9 @@
|
|||||||
<div class="parcour_formation">
|
<div class="parcour_formation">
|
||||||
|
|
||||||
<div class="titre_parcours">
|
<div class="titre_parcours">
|
||||||
Validations de {{sco.etud.html_link_fiche()|safe}}
|
Validations de {{sco.etud.html_link_fiche()|safe}}
|
||||||
{% if parcour %}
|
{% if parcour %}
|
||||||
parcours {{parcour.code}} « {{parcour.libelle}} »
|
parcours {{parcour.code}} « {{parcour.libelle}} »
|
||||||
{% else %}
|
{% else %}
|
||||||
non inscrit{{sco.etud.e}} à un parcours de la spécialité
|
non inscrit{{sco.etud.e}} à un parcours de la spécialité
|
||||||
{% endif %}
|
{% endif %}
|
||||||
@ -64,7 +64,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="niveaux">
|
<div class="niveaux">
|
||||||
{% for annee, niv in comp['niveaux'].items() %}
|
{% for annee, niv in comp['niveaux'].items() %}
|
||||||
<div class="niveau comp-c{{color_idx}}-{{annee}}"
|
<div class="niveau comp-c{{color_idx}}-{{annee}}"
|
||||||
style="--color: var(--col-c{{color_idx}}-{{annee}});">
|
style="--color: var(--col-c{{color_idx}}-{{annee}});">
|
||||||
<div class="titre_niveau n{{annee}}">
|
<div class="titre_niveau n{{annee}}">
|
||||||
<span class="parcs">
|
<span class="parcs">
|
||||||
@ -120,10 +120,10 @@
|
|||||||
if validation.date else "-"
|
if validation.date else "-"
|
||||||
}}
|
}}
|
||||||
</div>
|
</div>
|
||||||
<div>par le jury de {{validation.formsemestre.titre_annee()
|
<div>par le jury de {{validation.formsemestre.titre_annee()
|
||||||
if validation.formsemestre else "-"}}
|
if validation.formsemestre else "-"}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -164,7 +164,7 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
<div class="help">
|
<div class="help">
|
||||||
|
|
||||||
<p>Cette page montre les validations d'UEs et de niveaux de compétences (RCUEs)
|
<p>Cette page montre les validations d'UEs et de niveaux de compétences (RCUEs)
|
||||||
de {{sco.etud.html_link_fiche()|safe}}
|
de {{sco.etud.html_link_fiche()|safe}}
|
||||||
@ -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,
|
||||||
@ -216,7 +224,7 @@ function record_rcue_validation(event, niveau_id) {
|
|||||||
etudid=sco.etud.id
|
etudid=sco.etud.id
|
||||||
)
|
)
|
||||||
}}';
|
}}';
|
||||||
|
|
||||||
fetch(record_url, {
|
fetch(record_url, {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
@ -244,4 +252,4 @@ function record_rcue_validation(event, niveau_id) {
|
|||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -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..."
|
||||||
|
Loading…
Reference in New Issue
Block a user