critical errors handler (xp)

This commit is contained in:
Emmanuel Viennet 2023-01-23 19:03:20 -03:00
parent c215d56461
commit 4566817094
2 changed files with 22 additions and 1 deletions

View File

@ -550,3 +550,22 @@ def scodoc_flash_status_messages():
f"Mode test: mails redirigés vers {email_test_mode_address}", f"Mode test: mails redirigés vers {email_test_mode_address}",
category="warning", category="warning",
) )
def critical_error(msg):
"""Handle a critical error: flush all caches, display message to the user"""
import app.scodoc.sco_utils as scu
log(f"\n*** CRITICAL ERROR: {msg}")
send_scodoc_alarm(f"CRITICAL ERROR: {msg}", msg)
clear_scodoc_cache()
raise ScoValueError(
f"""
Une erreur est survenue.
Si le problème persiste, merci de contacter le support ScoDoc via
{scu.SCO_DISCORD_ASSISTANCE}
{msg}
"""
)

View File

@ -39,6 +39,7 @@ from dataclasses import dataclass
import numpy as np import numpy as np
import pandas as pd import pandas as pd
import app
from app import db from app import db
from app.models import Evaluation, EvaluationUEPoids, ModuleImpl from app.models import Evaluation, EvaluationUEPoids, ModuleImpl
from app.scodoc import sco_cache from app.scodoc import sco_cache
@ -484,7 +485,8 @@ class ModuleImplResultsClassic(ModuleImplResults):
if nb_etuds == 0: if nb_etuds == 0:
return pd.Series() return pd.Series()
evals_coefs = self.get_evaluations_coefs(modimpl).reshape(-1) evals_coefs = self.get_evaluations_coefs(modimpl).reshape(-1)
assert evals_coefs.shape == (nb_evals,) if evals_coefs.shape != (nb_evals,):
app.critical_error("compute_module_moy: vals_coefs.shape != nb_evals")
evals_notes_20 = self.get_eval_notes_sur_20(modimpl) evals_notes_20 = self.get_eval_notes_sur_20(modimpl)
# Les coefs des évals pour chaque étudiant: là où il a des notes # Les coefs des évals pour chaque étudiant: là où il a des notes
# non neutralisées # non neutralisées