forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -148,7 +148,7 @@ def evaluation_notes(evaluation_id: int):
|
||||
@scodoc
|
||||
@permission_required(Permission.EnsView)
|
||||
@as_json
|
||||
def evaluation_set_notes(evaluation_id: int):
|
||||
def evaluation_set_notes(evaluation_id: int): # evaluation-notes-set
|
||||
"""Écriture de notes dans une évaluation.
|
||||
The request content type should be "application/json",
|
||||
and contains:
|
||||
|
@ -400,6 +400,7 @@ class FormSemestre(db.Model):
|
||||
"""Liste des modimpls du semestre (y compris bonus)
|
||||
- triée par type/numéro/code en APC
|
||||
- triée par numéros d'UE/matières/modules pour les formations standard.
|
||||
Hors APC, élimine les modules de type ressources et SAEs.
|
||||
"""
|
||||
modimpls = self.modimpls.all()
|
||||
if self.formation.is_apc():
|
||||
@ -411,6 +412,14 @@ class FormSemestre(db.Model):
|
||||
)
|
||||
)
|
||||
else:
|
||||
modimpls = [
|
||||
mi
|
||||
for mi in modimpls
|
||||
if (
|
||||
mi.module.module_type
|
||||
not in (scu.ModuleType.RESSOURCE, scu.ModuleType.SAE)
|
||||
)
|
||||
]
|
||||
modimpls.sort(
|
||||
key=lambda m: (
|
||||
m.module.ue.numero or 0,
|
||||
|
@ -1314,6 +1314,10 @@ def _ue_table_modules(
|
||||
'<a class="discretelink" title="Modifier le module numéro %(numero)s, utilisé par %(nb_moduleimpls)d sessions" href="module_edit?module_id=%(module_id)s">'
|
||||
% mod
|
||||
)
|
||||
if mod["module_type"] not in (scu.ModuleType.STANDARD, scu.ModuleType.MALUS):
|
||||
H.append(
|
||||
f"""<span class="invalid-module-type">{scu.EMO_WARNING} type incompatible </span>"""
|
||||
)
|
||||
H.append(
|
||||
'<span class="formation_module_tit">%s</span>'
|
||||
% scu.join_words(mod["code"], mod["titre"])
|
||||
|
@ -257,6 +257,13 @@ def do_formsemestre_createwithmodules(edit=False, formsemestre: FormSemestre = N
|
||||
.order_by(Module.module_type, UniteEns.numero, Module.numero)
|
||||
.all()
|
||||
)
|
||||
# Elimine les ressources et SAE sauf si déjà dans le semestre
|
||||
modules = [
|
||||
m
|
||||
for m in modules
|
||||
if (m.module_type not in (scu.ModuleType.RESSOURCE, scu.ModuleType.SAE))
|
||||
or m.id in module_ids_set
|
||||
]
|
||||
# Pour regroupement des modules par semestres:
|
||||
semestre_ids = {}
|
||||
for mod in modules:
|
||||
|
@ -1176,11 +1176,18 @@ def formsemestre_status(formsemestre_id=None, check_parcours=True):
|
||||
H += [_TABLEAU_MODULES_FOOT, "</div>"]
|
||||
else:
|
||||
# formations classiques: groupe par UE
|
||||
# élimine les modules BUT qui aurait pu se glisser là suite à un
|
||||
# changement de type de formation par exemple
|
||||
modimpls_classic = [
|
||||
m
|
||||
for m in modimpls
|
||||
if m["module"]["module_type"] not in (ModuleType.RESSOURCE, ModuleType.SAE)
|
||||
]
|
||||
H += [
|
||||
"<p>",
|
||||
_TABLEAU_MODULES_HEAD,
|
||||
formsemestre_tableau_modules(
|
||||
modimpls,
|
||||
modimpls_classic,
|
||||
nt,
|
||||
formsemestre,
|
||||
can_edit=can_edit,
|
||||
|
@ -2464,6 +2464,11 @@ li.module_malus span.formation_module_tit {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
span.invalid-module-type {
|
||||
color: red;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
span.formation_module_ue {
|
||||
color: #6e7d92;
|
||||
font-size: 75%;
|
||||
|
Loading…
Reference in New Issue
Block a user