Merge branch 'refactor_nt' of https://scodoc.org/git/ScoDoc/ScoDoc into entreprises

This commit is contained in:
Arthur ZHU 2022-02-10 21:36:01 +01:00
commit c7bd3b19c8
4 changed files with 18 additions and 7 deletions

View File

@ -153,7 +153,12 @@ class BulletinBUT:
self.etud_eval_results(etud, e) self.etud_eval_results(etud, e)
for e in modimpl.evaluations for e in modimpl.evaluations
if e.visibulletin if e.visibulletin
and modimpl_results.evaluations_etat[e.id].is_complete and (
modimpl_results.evaluations_etat[e.id].is_complete
or sco_preferences.get_preference(
"bul_show_all_evals", res.formsemestre.id
)
)
], ],
} }
return d return d

View File

@ -119,9 +119,9 @@ class AddLogoForm(FlaskForm):
label="Nom", label="Nom",
validators=[ validators=[
validators.regexp( validators.regexp(
r"^[a-zA-Z0-9-]*$", r"^[a-zA-Z0-9-_]*$",
re.IGNORECASE, re.IGNORECASE,
"Ne doit comporter que lettres, chiffres ou -", "Ne doit comporter que lettres, chiffres, _ ou -",
), ),
validators.Length( validators.Length(
max=20, message="Un nom ne doit pas dépasser 20 caractères" max=20, message="Un nom ne doit pas dépasser 20 caractères"

View File

@ -171,7 +171,7 @@ class NotesTable:
def __init__(self, formsemestre_id): def __init__(self, formsemestre_id):
# log(f"NotesTable( formsemestre_id={formsemestre_id} )") # log(f"NotesTable( formsemestre_id={formsemestre_id} )")
raise NotImplementedError() # XXX # raise NotImplementedError() # XXX
if not formsemestre_id: if not formsemestre_id:
raise ValueError("invalid formsemestre_id (%s)" % formsemestre_id) raise ValueError("invalid formsemestre_id (%s)" % formsemestre_id)
self.formsemestre_id = formsemestre_id self.formsemestre_id = formsemestre_id

View File

@ -139,6 +139,7 @@ def evaluation_create_form(
initvalues["visibulletinlist"] = ["X"] initvalues["visibulletinlist"] = ["X"]
else: else:
initvalues["visibulletinlist"] = [] initvalues["visibulletinlist"] = []
initvalues["coefficient"] = initvalues.get("coefficient", 1.0)
vals = scu.get_request_args() vals = scu.get_request_args()
if vals.get("tf_submitted", False) and "visibulletinlist" not in vals: if vals.get("tf_submitted", False) and "visibulletinlist" not in vals:
vals["visibulletinlist"] = [] vals["visibulletinlist"] = []
@ -158,7 +159,7 @@ def evaluation_create_form(
else: else:
coef_ue = ue_coef_dict.get(ue.id, 0.0) or 0.0 coef_ue = ue_coef_dict.get(ue.id, 0.0) or 0.0
if coef_ue > 0: if coef_ue > 0:
poids = 1.0 # par defaut au départ poids = 1.0 # par défaut au départ
else: else:
poids = 0.0 poids = 0.0
initvalues[f"poids_{ue.id}"] = poids initvalues[f"poids_{ue.id}"] = poids
@ -284,6 +285,7 @@ def evaluation_create_form(
] ]
# Liste des UE utilisées dans des modules de ce semestre: # Liste des UE utilisées dans des modules de ce semestre:
for ue in sem_ues: for ue in sem_ues:
coef_ue = ue_coef_dict.get(ue.id, 0.0)
form.append( form.append(
( (
f"poids_{ue.id}", f"poids_{ue.id}",
@ -292,10 +294,14 @@ def evaluation_create_form(
"size": 2, "size": 2,
"type": "float", "type": "float",
"explanation": f""" "explanation": f"""
<span class="eval_coef_ue" title="coef. du module dans cette UE">{ue_coef_dict.get(ue.id, 0.)}</span> <span class="eval_coef_ue" title="coef. du module dans cette UE">({"coef. mod.:" +str(coef_ue) if coef_ue else "ce module n'a pas de coef. dans cette UE"})</span>
<span class="eval_coef_ue_titre">{ue.titre}</span> <span class="eval_coef_ue_titre">{ue.titre}</span>
""", """,
"allow_null": False, "allow_null": False,
# ok si poids nul ou coef vers l'UE nul:
"validator": lambda val, field: (not val)
or ue_coef_dict.get(int(field[len("poids_") :]), 0.0) != 0,
"enabled": coef_ue != 0 or initvalues[f"poids_{ue.id}"] != 0.0,
}, },
), ),
) )
@ -331,7 +337,7 @@ def evaluation_create_form(
if edit: if edit:
sco_evaluation_db.do_evaluation_edit(tf[2]) sco_evaluation_db.do_evaluation_edit(tf[2])
else: else:
# creation d'une evaluation # création d'une evaluation
evaluation_id = sco_evaluation_db.do_evaluation_create(**tf[2]) evaluation_id = sco_evaluation_db.do_evaluation_create(**tf[2])
if is_apc: if is_apc:
# Set poids # Set poids