validation_rcues: affiche ECTS et améliore menu

This commit is contained in:
Emmanuel Viennet 2023-07-17 10:37:12 +02:00
parent 5cdfb360fa
commit 8614a29f9b
5 changed files with 68 additions and 34 deletions

View File

@ -47,10 +47,12 @@ def validation_rcues(etud: Identite, formsemestre: FormSemestre, edit: bool = Fa
ue_validation_by_niveau = get_ue_validation_by_niveau(refcomp, etud) ue_validation_by_niveau = get_ue_validation_by_niveau(refcomp, etud)
rcue_validation_by_niveau = get_rcue_validation_by_niveau(refcomp, etud) rcue_validation_by_niveau = get_rcue_validation_by_niveau(refcomp, etud)
ects_total = sum((v.ects() for v in ue_validation_by_niveau.values()))
return render_template( return render_template(
"but/validation_rcues.j2", "but/validation_rcues.j2",
competences_parcour=competences_parcour, competences_parcour=competences_parcour,
edit=edit, edit=edit,
ects_total=ects_total,
formation=formation, formation=formation,
parcour=parcour, parcour=parcour,
rcue_validation_by_niveau=rcue_validation_by_niveau, rcue_validation_by_niveau=rcue_validation_by_niveau,

View File

@ -10,6 +10,7 @@ from app.models import CODE_STR_LEN
from app.models.events import Scolog from app.models.events import Scolog
from app.scodoc import sco_cache from app.scodoc import sco_cache
from app.scodoc import sco_utils as scu from app.scodoc import sco_utils as scu
from app.scodoc.codes_cursus import CODES_UE_VALIDES
class ScolarFormSemestreValidation(db.Model): class ScolarFormSemestreValidation(db.Model):
@ -122,6 +123,14 @@ class ScolarFormSemestreValidation(db.Model):
le {self.event_date.strftime("%d/%m/%Y")} à {self.event_date.strftime("%Hh%M")} le {self.event_date.strftime("%d/%m/%Y")} à {self.event_date.strftime("%Hh%M")}
""" """
def ects(self) -> float:
"Les ECTS acquis par cette validation. (0 si ce n'est pas une validation d'UE)"
return (
self.ue.ects
if (self.ue is not None) and (self.code in CODES_UE_VALIDES)
else 0.0
)
class ScolarAutorisationInscription(db.Model): class ScolarAutorisationInscription(db.Model):
"""Autorisation d'inscription dans un semestre""" """Autorisation d'inscription dans un semestre"""

View File

@ -169,3 +169,11 @@ select.validation_rcue {
display: inline-block; display: inline-block;
margin-left: 32px; margin-left: 32px;
} }
div.recap_ects, div.link_edit {
margin-left: 16px;
margin-right: 16px;
margin-bottom: 16px;
}
.link_edit a {
padding-right: 48px;
}

View File

@ -29,6 +29,7 @@
validation.event_date.strftime("%d/%m/%Y à %H:%M") validation.event_date.strftime("%d/%m/%Y à %H:%M")
if validation.event_date else "-" if validation.event_date else "-"
}}</div> }}</div>
<div>{{"%g"|format(validation.ects())}} ECTS</div>
{% else %} {% else %}
pas de décision de jury enregistrée pour cette UE pas de décision de jury enregistrée pour cette UE
{% endif %} {% endif %}
@ -83,33 +84,34 @@
<div class="rcue" style="position: relative;"> <div class="rcue" style="position: relative;">
<div class="rcue_validation_code with_scoplement"> <div class="rcue_validation_code with_scoplement">
{% set validation = rcue_validation_by_niveau.get(niv['niveau'].id) %} {% set validation = rcue_validation_by_niveau.get(niv['niveau'].id) %}
{% if validation %} <div>
<div> {% if validation or niv['niveau'] %}
RCUE enregistré <b>{{validation.code}}</b> RCUE : <b>{{validation.code if validation else ""}}</b>
{% if niv['niveau'] and edit %} {% endif %}
{% if not (niv['ue_pair'] and niv['ue_impair']) %} {% if niv['niveau'] and edit %}
<span title="UEs manquantes">⛔</span> {% if not (niv['ue_pair'] and niv['ue_impair']) %}
{% else %} <span title="UEs manquantes">⛔</span>
<select class="validation_rcue" name="ue_niv_{{niv['niveau'].id}}" id="ue_niv_{{niv['niveau'].id}}" {% else %}
onchange="record_rcue_validation(event, <select class="validation_rcue" name="ue_niv_{{niv['niveau'].id}}" id="ue_niv_{{niv['niveau'].id}}"
{{niv['niveau'].id}}, onchange="record_rcue_validation(event,
);" {{niv['niveau'].id}},
);"
data-ue1_id="{{niv['ue_impair'].id}}" data-ue1_id="{{niv['ue_impair'].id}}"
data-ue2_id="{{niv['ue_pair'].id}}" data-ue2_id="{{niv['ue_pair'].id}}"
data-code="{{validation.code if validation else ''}}" data-code="{{validation.code if validation else ''}}"
> >
{% for code in rcue_codes %} {% for code in rcue_codes %}
<option value="{{code}}" <option value="{{code}}"
{% if validation and validation.code == code -%} {% if validation and validation.code == code -%}
selected selected
{%- endif %} {%- endif %}
>{{code}}</option> >{{code}}</option>
{% endfor %} {% endfor %}
</select> </select>
{% endif %}
{% endif %} {% endif %}
</div> {% endif %}
</div>
{% if validation %}
<div class="scoplement"> <div class="scoplement">
<div>Validation du RCUE</div> <div>Validation du RCUE</div>
<div>enregistrée le {{ <div>enregistrée le {{
@ -137,18 +139,27 @@
{% endfor %} {% endfor %}
</div> </div>
<div class="recap_ects">
{{"%g"|format(ects_total)}} ECTS validés.
</div>
{% if sco.formsemestre.can_edit_jury() %} {% if sco.formsemestre.can_edit_jury() %}
<div style="padding-bottom: 16px;"> <div class="link_edit">
{% if edit %} {% if edit %}
<a class="stdlink" href="{{url_for('notes.validation_rcues', <a class="stdlink" href="{{url_for('notes.validation_rcues',
scodoc_dept=g.scodoc_dept, formsemestre_id=sco.formsemestre.id, etudid=sco.etud.id scodoc_dept=g.scodoc_dept, formsemestre_id=sco.formsemestre.id, etudid=sco.etud.id)
)}}">quitter le mode édition des RCUEs</a> }}">Quitter le mode édition des RCUEs</a>
{% else %} {% else %}
<a class="stdlink" href="{{url_for('notes.validation_rcues_edit', <a class="stdlink" href="{{url_for('notes.validation_rcues_edit',
scodoc_dept=g.scodoc_dept, formsemestre_id=sco.formsemestre.id, etudid=sco.etud.id scodoc_dept=g.scodoc_dept, formsemestre_id=sco.formsemestre.id, etudid=sco.etud.id)
)}}">éditer les décisions d'RCUE antérieurs</a> }}">Éditer les décisions d'RCUE antérieurs</a>
{% endif %} {% endif %}
</a>
<a class="stdlink" href="{{url_for('notes.formsemestre_validation_but',
scodoc_dept=g.scodoc_dept,
etudid=sco.etud.id,
formsemestre_id=sco.formsemestre.id)
}}">Page saisie jury</a>
</div> </div>
{% endif %} {% endif %}
@ -162,7 +173,11 @@ parcours <span class="parc">{{parcour.code}}</span>
{% else %} {% else %}
tronc commun tronc commun
{% endif %} {% endif %}
du référentiel de compétence {{formation.referentiel_competence.specialite}} du référentiel de compétence <a class="stdlink" href="{{
url_for('notes.refcomp_show',
scodoc_dept=g.scodoc_dept, refcomp_id=formation.referentiel_competence.id
)}}">{{formation.referentiel_competence.specialite}}
(version {{formation.referentiel_competence.version_orebut}})</a>.
</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

View File

@ -1,7 +1,7 @@
# -*- mode: python -*- # -*- mode: python -*-
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
SCOVERSION = "9.5.4" SCOVERSION = "9.5.5"
SCONAME = "ScoDoc" SCONAME = "ScoDoc"