forked from ScoDoc/ScoDoc
Compare commits
No commits in common. "79b5530813f0dc40442293067a4e573c7753a97c" and "2e1dcce69d961c5cb9d32ce0c9e748a2c2d97efb" have entirely different histories.
79b5530813
...
2e1dcce69d
@ -110,7 +110,7 @@ def liste_etudiants(dept: str, *args, sem_id): # XXX TODO A REVOIR
|
|||||||
return error_response(501, message="Not implemented")
|
return error_response(501, message="Not implemented")
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/departements/<string:dept>/semestres_courant", methods=["GET"])
|
@bp.route("/departements/<string:dept>/semestres_actifs", methods=["GET"])
|
||||||
@token_auth.login_required
|
@token_auth.login_required
|
||||||
def liste_semestres_courant(dept: str):
|
def liste_semestres_courant(dept: str):
|
||||||
"""
|
"""
|
||||||
@ -126,7 +126,6 @@ def liste_semestres_courant(dept: str):
|
|||||||
|
|
||||||
return jsonify(data)
|
return jsonify(data)
|
||||||
|
|
||||||
|
|
||||||
@bp.route(
|
@bp.route(
|
||||||
"/departements/<string:dept>/formations/<int:formation_id>/referentiel_competences",
|
"/departements/<string:dept>/formations/<int:formation_id>/referentiel_competences",
|
||||||
methods=["GET"],
|
methods=["GET"],
|
||||||
@ -192,7 +191,6 @@ def etudiants_courant():
|
|||||||
return jsonify(data)
|
return jsonify(data)
|
||||||
# return error_response(501, message="Not implemented")
|
# return error_response(501, message="Not implemented")
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/etudiant/etudid/<int:etudid>", methods=["GET"])
|
@bp.route("/etudiant/etudid/<int:etudid>", methods=["GET"])
|
||||||
@bp.route("/etudiant/nip/<int:nip>", methods=["GET"])
|
@bp.route("/etudiant/nip/<int:nip>", methods=["GET"])
|
||||||
@bp.route("/etudiant/ine/<int:ine>", methods=["GET"])
|
@bp.route("/etudiant/ine/<int:ine>", methods=["GET"])
|
||||||
@ -212,7 +210,6 @@ def etudiant(etudid=None, nip=None, ine=None):
|
|||||||
|
|
||||||
return jsonify(data)
|
return jsonify(data)
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/etudiant/etudid/<int:etudid>/formsemestres")
|
@bp.route("/etudiant/etudid/<int:etudid>/formsemestres")
|
||||||
@bp.route("/etudiant/nip/<int:nip>/formsemestres")
|
@bp.route("/etudiant/nip/<int:nip>/formsemestres")
|
||||||
@bp.route("/etudiant/ine/<int:ine>/formsemestres")
|
@bp.route("/etudiant/ine/<int:ine>/formsemestres")
|
||||||
@ -306,7 +303,6 @@ def etudiant_groups(formsemestre_id: int, etudid=None, nip=None, ine=None):
|
|||||||
|
|
||||||
return jsonify(data)
|
return jsonify(data)
|
||||||
|
|
||||||
|
|
||||||
##############################################" Formations ############################################################
|
##############################################" Formations ############################################################
|
||||||
|
|
||||||
|
|
||||||
@ -494,7 +490,7 @@ def set_groups(
|
|||||||
return error_response(409, message="La requête ne peut être traitée en l’état actuel")
|
return error_response(409, message="La requête ne peut être traitée en l’état actuel")
|
||||||
|
|
||||||
|
|
||||||
############################################### Evaluations ###########################################################
|
################################################### Evaluations #######################################################
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/evaluations/<int:moduleimpl_id>", methods=["GET"])
|
@bp.route("/evaluations/<int:moduleimpl_id>", methods=["GET"])
|
||||||
@ -534,47 +530,6 @@ def evaluation_set_notes(eval_id: int, etudid: int, note: float):
|
|||||||
return error_response(501, message="Not implemented")
|
return error_response(501, message="Not implemented")
|
||||||
|
|
||||||
|
|
||||||
#################################################### Jury #############################################################
|
|
||||||
@bp.route("/jury/formsemestre/<int:formsemestre_id>/preparation_jury", methods=["GET"])
|
|
||||||
def jury_preparation(formsemestre_id: int):
|
|
||||||
"""
|
|
||||||
Feuille de préparation du jury
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/jury/formsemestre/<int:formsemestre_id>/decisions_jury", methods=["GET"])
|
|
||||||
def jury_decisions(formsemestre_id: int):
|
|
||||||
"""
|
|
||||||
Retourne les décisions du jury suivant un formsemestre donné
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/jury/set_decision/etudid?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>&jury=<string"
|
|
||||||
":decision_jury>&devenir=<string:devenir_jury>&assiduite=<bool>", methods=["POST"])
|
|
||||||
@bp.route("/jury/set_decision/nip?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>&jury=<string:decision_jury"
|
|
||||||
">&devenir=<string:devenir_jury>&assiduite=<bool>", methods=["POST"])
|
|
||||||
@bp.route("/jury/set_decision/ine?etudid=<int:etudid>&formsemestre_id=<int:formesemestre_id>&jury=<string:decision_jury"
|
|
||||||
">&devenir=<string:devenir_jury>&assiduite=<bool>", methods=["POST"])
|
|
||||||
def set_decision_jury(formsemestre_id: int, decision_jury: str, devenir_jury: str, assiduite: bool, etudid=None,
|
|
||||||
nip=None, ine=None):
|
|
||||||
"""
|
|
||||||
Attribuer la décision du jury et le devenir à un etudiant
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
|
||||||
|
|
||||||
@bp.route("/jury/etudid/<int:etudid>/formsemestre/<int:formsemestre_id>/annule_decision", methods=["DELETE"])
|
|
||||||
@bp.route("/jury/nip/<int:nip>/formsemestre/<int:formsemestre_id>/annule_decision", methods=["DELETE"])
|
|
||||||
@bp.route("/jury/ine/<int:ine>/formsemestre/<int:formsemestre_id>/annule_decision", methods=["DELETE"])
|
|
||||||
def annule_decision_jury(formsemestre_id: int, etudid=None, nip=None, ine=None):
|
|
||||||
"""
|
|
||||||
Supprime la déciosion du jury pour un étudiant donné
|
|
||||||
"""
|
|
||||||
return error_response(501, message="Not implemented")
|
|
||||||
|
|
||||||
|
|
||||||
#################################################### Absences #########################################################
|
#################################################### Absences #########################################################
|
||||||
|
|
||||||
|
|
||||||
|
@ -53,7 +53,7 @@ class BonusSport:
|
|||||||
etud_moy_gen et etud_moy_ue ne sont PAS modifiés (mais utilisés par certains bonus non additifs).
|
etud_moy_gen et etud_moy_ue ne sont PAS modifiés (mais utilisés par certains bonus non additifs).
|
||||||
"""
|
"""
|
||||||
|
|
||||||
# En classique, active un bonus sur les UEs: (dans ce cas bonus_moy_gen est ajusté pour le prendre en compte)
|
# En classique, active un bonus sur les UEs: (dans ce cas bonus_moy_gen reste None)
|
||||||
classic_use_bonus_ues = False
|
classic_use_bonus_ues = False
|
||||||
|
|
||||||
# Attributs virtuels:
|
# Attributs virtuels:
|
||||||
|
@ -60,7 +60,7 @@ class ResultatsSemestreClassic(NotesTableCompat):
|
|||||||
)
|
)
|
||||||
self.modimpl_inscr_df = inscr_mod.df_load_modimpl_inscr(self.formsemestre)
|
self.modimpl_inscr_df = inscr_mod.df_load_modimpl_inscr(self.formsemestre)
|
||||||
self.modimpl_coefs = np.array(
|
self.modimpl_coefs = np.array(
|
||||||
[m.module.coefficient or 0.0 for m in self.formsemestre.modimpls_sorted]
|
[m.module.coefficient for m in self.formsemestre.modimpls_sorted]
|
||||||
)
|
)
|
||||||
self.modimpl_idx = {
|
self.modimpl_idx = {
|
||||||
m.id: i for i, m in enumerate(self.formsemestre.modimpls_sorted)
|
m.id: i for i, m in enumerate(self.formsemestre.modimpls_sorted)
|
||||||
@ -113,20 +113,11 @@ class ResultatsSemestreClassic(NotesTableCompat):
|
|||||||
self.etud_moy_ue += self.bonus_ues # somme les dataframes
|
self.etud_moy_ue += self.bonus_ues # somme les dataframes
|
||||||
self.etud_moy_ue.clip(lower=0.0, upper=20.0, inplace=True)
|
self.etud_moy_ue.clip(lower=0.0, upper=20.0, inplace=True)
|
||||||
bonus_mg = bonus.get_bonus_moy_gen()
|
bonus_mg = bonus.get_bonus_moy_gen()
|
||||||
if bonus_mg is None and self.bonus_ues is not None:
|
if bonus_mg is not None:
|
||||||
# pas de bonus explicite sur la moyenne générale
|
|
||||||
# on l'ajuste pour refléter les modifs d'UE, à l'aide des coefs d'UE.
|
|
||||||
bonus_mg = (self.etud_coef_ue_df * self.bonus_ues).sum(
|
|
||||||
axis=1
|
|
||||||
) / self.etud_coef_ue_df.sum(axis=1)
|
|
||||||
self.etud_moy_gen += bonus_mg
|
self.etud_moy_gen += bonus_mg
|
||||||
elif bonus_mg is not None:
|
self.etud_moy_gen.clip(lower=0.0, upper=20.0, inplace=True)
|
||||||
# Applique le bonus moyenne générale renvoyé
|
# compat nt, utilisé pour l'afficher sur les bulletins:
|
||||||
self.etud_moy_gen += bonus_mg
|
self.bonus = bonus_mg
|
||||||
|
|
||||||
self.etud_moy_gen.clip(lower=0.0, upper=20.0, inplace=True)
|
|
||||||
# compat nt, utilisé pour l'afficher sur les bulletins:
|
|
||||||
self.bonus = bonus_mg
|
|
||||||
# --- UE capitalisées
|
# --- UE capitalisées
|
||||||
self.apply_capitalisation()
|
self.apply_capitalisation()
|
||||||
|
|
||||||
|
@ -315,8 +315,6 @@ def formsemestre_bulletinetud_dict(formsemestre_id, etudid, version="long"):
|
|||||||
u["cur_moy_ue_txt"] = "bonus appliqué sur les UEs"
|
u["cur_moy_ue_txt"] = "bonus appliqué sur les UEs"
|
||||||
else:
|
else:
|
||||||
u["cur_moy_ue_txt"] = "bonus de %.3g points" % x
|
u["cur_moy_ue_txt"] = "bonus de %.3g points" % x
|
||||||
if nt.bonus_ues is not None:
|
|
||||||
u["cur_moy_ue_txt"] += " (+ues)"
|
|
||||||
u["moy_ue_txt"] = scu.fmt_note(ue_status["moy"])
|
u["moy_ue_txt"] = scu.fmt_note(ue_status["moy"])
|
||||||
if ue_status["coef_ue"] != None:
|
if ue_status["coef_ue"] != None:
|
||||||
u["coef_ue_txt"] = scu.fmt_coef(ue_status["coef_ue"])
|
u["coef_ue_txt"] = scu.fmt_coef(ue_status["coef_ue"])
|
||||||
|
Loading…
Reference in New Issue
Block a user