Merge branch 'table' of https://scodoc.org/git/ScoDoc/ScoDoc into bac_a_sable_prod
This commit is contained in:
commit
0c6a21425a
@ -110,17 +110,19 @@ class UniteEns(db.Model):
|
|||||||
# ScoDoc7 output_formators
|
# ScoDoc7 output_formators
|
||||||
e["ue_id"] = self.id
|
e["ue_id"] = self.id
|
||||||
e["numero"] = e["numero"] if e["numero"] else 0
|
e["numero"] = e["numero"] if e["numero"] else 0
|
||||||
e["ects"] = e["ects"] # legacy
|
|
||||||
e["ects_by_parcours"] = {}
|
|
||||||
for up in UEParcours.query.filter_by(ue_id=self.id):
|
|
||||||
p = ApcParcours.query.get(up.parcours_id)
|
|
||||||
e["ects_by_parcours"][p.code] = self.get_ects(p)
|
|
||||||
|
|
||||||
e["coefficient"] = e["coefficient"] if e["coefficient"] else 0.0
|
e["coefficient"] = e["coefficient"] if e["coefficient"] else 0.0
|
||||||
e["code_apogee"] = e["code_apogee"] or "" # pas de None
|
e["code_apogee"] = e["code_apogee"] or "" # pas de None
|
||||||
e["parcours"] = [
|
e["ects_by_parcours"] = {
|
||||||
parcour.to_dict(with_annees=False) for parcour in self.parcours
|
parcour.code: self.get_ects(parcour) for parcour in self.parcours
|
||||||
]
|
}
|
||||||
|
e["parcours"] = []
|
||||||
|
for parcour in self.parcours:
|
||||||
|
p_dict = parcour.to_dict(with_annees=False)
|
||||||
|
ects = self.get_ects(parcour, only_parcours=True)
|
||||||
|
if ects is not None:
|
||||||
|
p_dict["ects"] = ects
|
||||||
|
e["parcours"].append(p_dict)
|
||||||
|
|
||||||
if with_module_ue_coefs:
|
if with_module_ue_coefs:
|
||||||
if convert_objects:
|
if convert_objects:
|
||||||
e["module_ue_coefs"] = [
|
e["module_ue_coefs"] = [
|
||||||
|
@ -127,11 +127,7 @@ def formation_export_dict(
|
|||||||
ue_dict["apc_niveau_libelle"] = ue.niveau_competence.libelle
|
ue_dict["apc_niveau_libelle"] = ue.niveau_competence.libelle
|
||||||
ue_dict["apc_niveau_annee"] = ue.niveau_competence.annee
|
ue_dict["apc_niveau_annee"] = ue.niveau_competence.annee
|
||||||
ue_dict["apc_niveau_ordre"] = ue.niveau_competence.ordre
|
ue_dict["apc_niveau_ordre"] = ue.niveau_competence.ordre
|
||||||
# Et les parcours:
|
|
||||||
if ue.parcours:
|
|
||||||
ue_dict["parcours"] = [
|
|
||||||
parcour.to_dict(with_annees=False) for parcour in ue.parcours
|
|
||||||
]
|
|
||||||
# pour les coefficients:
|
# pour les coefficients:
|
||||||
ue_dict["reference"] = ue.id if ue_reference_style == "id" else ue.acronyme
|
ue_dict["reference"] = ue.id if ue_reference_style == "id" else ue.acronyme
|
||||||
if not export_ids:
|
if not export_ids:
|
||||||
@ -367,14 +363,13 @@ def formation_import_xml(doc: str, import_tags=True, use_local_refcomp=False):
|
|||||||
assert ue
|
assert ue
|
||||||
if xml_ue_id:
|
if xml_ue_id:
|
||||||
ues_old2new[xml_ue_id] = ue_id
|
ues_old2new[xml_ue_id] = ue_id
|
||||||
# parcours BUT
|
|
||||||
# TODO XXX
|
|
||||||
# élément optionnel présent dans les exports BUT:
|
# élément optionnel présent dans les exports BUT:
|
||||||
ue_reference = ue_info[1].get("reference")
|
ue_reference = ue_info[1].get("reference")
|
||||||
if ue_reference:
|
if ue_reference:
|
||||||
ue_reference_to_id[int(ue_reference)] = ue_id
|
ue_reference_to_id[int(ue_reference)] = ue_id
|
||||||
|
|
||||||
# -- create matieres
|
# -- Create matieres
|
||||||
for mat_info in ue_info[2]:
|
for mat_info in ue_info[2]:
|
||||||
# Backward compat: un seul parcours par UE (ScoDoc < 9.4.71)
|
# Backward compat: un seul parcours par UE (ScoDoc < 9.4.71)
|
||||||
if mat_info[0] == "parcour":
|
if mat_info[0] == "parcour":
|
||||||
@ -392,18 +387,20 @@ def formation_import_xml(doc: str, import_tags=True, use_local_refcomp=False):
|
|||||||
log(f"Warning: parcours {code_parcours} inexistant !")
|
log(f"Warning: parcours {code_parcours} inexistant !")
|
||||||
continue
|
continue
|
||||||
elif mat_info[0] == "parcours":
|
elif mat_info[0] == "parcours":
|
||||||
# Parcours (BUT), liste (ScoDoc > 9.4.70)
|
# Parcours (BUT), liste (ScoDoc > 9.4.70), avec ECTS en option
|
||||||
codes_parcours = mat_info[1]["code"]
|
code_parcours = mat_info[1]["code"]
|
||||||
for code_parcours in codes_parcours:
|
ue_parcour_ects = mat_info[1].get("ects")
|
||||||
parcour = ApcParcours.query.filter_by(
|
parcour = ApcParcours.query.filter_by(
|
||||||
code=code_parcours,
|
code=code_parcours,
|
||||||
referentiel_id=referentiel_competence_id,
|
referentiel_id=referentiel_competence_id,
|
||||||
).first()
|
).first()
|
||||||
if parcour:
|
if parcour:
|
||||||
ue.parcours.append(parcour)
|
ue.parcours.append(parcour)
|
||||||
else:
|
else:
|
||||||
flash(f"Attention: parcours {code_parcours} inexistant !")
|
flash(f"Attention: parcours {code_parcours} inexistant !")
|
||||||
log(f"Warning: parcours {code_parcours} inexistant !")
|
log(f"Warning: parcours {code_parcours} inexistant !")
|
||||||
|
if ue_parcour_ects is not None:
|
||||||
|
ue.set_ects(ue_parcour_ects, parcour)
|
||||||
db.session.add(ue)
|
db.session.add(ue)
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
@ -85,7 +85,14 @@ def table_modules_ue_coefs(formation_id, semestre_idx=None, parcours_id: int = N
|
|||||||
modules = [
|
modules = [
|
||||||
mod
|
mod
|
||||||
for mod in modules
|
for mod in modules
|
||||||
if (parcours_id in (p.id for p in mod.parcours)) or (mod.parcours is None)
|
if ((parcours_id in (p.id for p in mod.parcours)) or (mod.parcours is None))
|
||||||
|
and mod.module_type in (scu.ModuleType.RESSOURCE, scu.ModuleType.SAE)
|
||||||
|
]
|
||||||
|
else: # ne montre que les ressources et SAE (pas le bonus...)
|
||||||
|
modules = [
|
||||||
|
mod
|
||||||
|
for mod in modules
|
||||||
|
if mod.module_type in (scu.ModuleType.RESSOURCE, scu.ModuleType.SAE)
|
||||||
]
|
]
|
||||||
# Titre des modules, en ligne
|
# Titre des modules, en ligne
|
||||||
col_titres_mods = [
|
col_titres_mods = [
|
||||||
@ -119,8 +126,8 @@ def table_modules_ue_coefs(formation_id, semestre_idx=None, parcours_id: int = N
|
|||||||
# met en gris les coefs qui devraient être nuls
|
# met en gris les coefs qui devraient être nuls
|
||||||
# car le module n'est pas dans le parcours de l'UE:
|
# car le module n'est pas dans le parcours de l'UE:
|
||||||
if (
|
if (
|
||||||
(mod.parcours is not None)
|
mod.parcours
|
||||||
and (ue.parcours)
|
and ue.parcours
|
||||||
and not {p.id for p in ue.parcours}.intersection(mod_parcours_ids)
|
and not {p.id for p in ue.parcours}.intersection(mod_parcours_ids)
|
||||||
):
|
):
|
||||||
cell_style = style + " champs_coef_hors_parcours"
|
cell_style = style + " champs_coef_hors_parcours"
|
||||||
|
Loading…
Reference in New Issue
Block a user