forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -591,9 +591,9 @@ def get_justifs_from_date(
|
|||||||
def get_formsemestre_from_data(data: dict[str, datetime | int]) -> FormSemestre:
|
def get_formsemestre_from_data(data: dict[str, datetime | int]) -> FormSemestre:
|
||||||
"""
|
"""
|
||||||
get_formsemestre_from_data récupère un formsemestre en fonction des données passées
|
get_formsemestre_from_data récupère un formsemestre en fonction des données passées
|
||||||
|
Si l'étudiant est inscrit à plusieurs formsemestre, prend le premier.
|
||||||
Args:
|
Args:
|
||||||
data (dict[str, datetime | int]): Une réprésentation simplifiée d'une assiduité ou d'un justificatif
|
data (dict[str, datetime | int]): Une représentation simplifiée d'une assiduité ou d'un justificatif
|
||||||
|
|
||||||
data = {
|
data = {
|
||||||
"etudid" : int,
|
"etudid" : int,
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
{% block app_content %}
|
{% block app_content %}
|
||||||
|
|
||||||
{% if action == "modifier" %}
|
{% if action == "modifier" %}
|
||||||
{% include "assiduites/widgets/tableau_actions/modifier.j2" %}
|
{% include "assiduites/widgets/tableau_actions/modifier.j2" %}
|
||||||
{% else%}
|
{% else%}
|
||||||
{% include "assiduites/widgets/tableau_actions/details.j2" %}
|
{% include "assiduites/widgets/tableau_actions/details.j2" %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<br>
|
<br>
|
||||||
<hr>
|
<hr>
|
||||||
@ -24,4 +24,4 @@
|
|||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
@ -1,4 +1,8 @@
|
|||||||
<h1>Modifier {{type}} </h1>
|
<h2>Modifier {{objet_name}} de {{ etud.html_link_fiche() | safe }}</h2>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
Actuellement noté{{etud.e}} en <b>{{objet_name|lower()}}</b> du {{objet.date_debut}} au {{objet.date_fin}}
|
||||||
|
</div>
|
||||||
|
|
||||||
<form action="" method="post" enctype="multipart/form-data">
|
<form action="" method="post" enctype="multipart/form-data">
|
||||||
<input type="hidden" name="obj_id" value="{{obj_id}}">
|
<input type="hidden" name="obj_id" value="{{obj_id}}">
|
||||||
@ -104,4 +108,4 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
user-select: none;
|
user-select: none;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@ -1256,30 +1256,37 @@ def _prepare_tableau(
|
|||||||
@scodoc
|
@scodoc
|
||||||
@permission_required(Permission.AbsChange)
|
@permission_required(Permission.AbsChange)
|
||||||
def tableau_assiduite_actions():
|
def tableau_assiduite_actions():
|
||||||
|
"""Edition/suppression/information sur une assiduité ou un justificatif
|
||||||
|
type = "assiduite" | "justificatif"
|
||||||
|
action = "supprimer" | "
|
||||||
|
"""
|
||||||
obj_type: str = request.args.get("type", "assiduite")
|
obj_type: str = request.args.get("type", "assiduite")
|
||||||
action: str = request.args.get("action", "details")
|
action: str = request.args.get("action", "details")
|
||||||
obj_id: str = int(request.args.get("obj_id", -1))
|
obj_id: str = int(request.args.get("obj_id", -1))
|
||||||
|
|
||||||
objet: Assiduite | Justificatif
|
objet: Assiduite | Justificatif
|
||||||
|
objet_name = ""
|
||||||
if obj_type == "assiduite":
|
if obj_type == "assiduite":
|
||||||
objet: Assiduite = Assiduite.query.get_or_404(obj_id)
|
objet: Assiduite = Assiduite.query.get_or_404(obj_id)
|
||||||
|
objet_name = scu.EtatAssiduite(objet.etat).version_lisible()
|
||||||
else:
|
else:
|
||||||
objet: Justificatif = Justificatif.query.get_or_404(obj_id)
|
objet: Justificatif = Justificatif.query.get_or_404(obj_id)
|
||||||
|
objet_name = "Justificatif"
|
||||||
|
|
||||||
|
# Suppression : attention, POST ou GET !
|
||||||
if action == "supprimer":
|
if action == "supprimer":
|
||||||
objet.supprimer()
|
objet.supprimer()
|
||||||
if obj_type == "assiduite":
|
flash(f"{objet_name} supprimé")
|
||||||
flash("L'assiduité a bien été supprimée")
|
|
||||||
else:
|
|
||||||
flash("Le justificatif a bien été supprimé")
|
|
||||||
|
|
||||||
return redirect(request.referrer)
|
return redirect(request.referrer)
|
||||||
|
|
||||||
if request.method == "GET":
|
if request.method == "GET":
|
||||||
module = ""
|
module: str | int = "" # moduleimpl_id ou chaine libre
|
||||||
|
|
||||||
if obj_type == "assiduite":
|
if obj_type == "assiduite":
|
||||||
|
# Construction du menu module
|
||||||
|
# XXX ca ne va pas car cela ne prend qu'un semestre
|
||||||
|
# TODO reprendre le menu de la page ajout_assiduite_etud
|
||||||
formsemestre = objet.get_formsemestre()
|
formsemestre = objet.get_formsemestre()
|
||||||
if objet.moduleimpl_id is not None:
|
if objet.moduleimpl_id is not None:
|
||||||
module = objet.moduleimpl_id
|
module = objet.moduleimpl_id
|
||||||
@ -1291,13 +1298,16 @@ def tableau_assiduite_actions():
|
|||||||
return render_template(
|
return render_template(
|
||||||
"assiduites/pages/tableau_actions.j2",
|
"assiduites/pages/tableau_actions.j2",
|
||||||
sco=ScoData(etud=objet.etudiant),
|
sco=ScoData(etud=objet.etudiant),
|
||||||
|
# XXX type semble être utilisé qq part, ne pas changer
|
||||||
type="Justificatif" if obj_type == "justificatif" else "Assiduité",
|
type="Justificatif" if obj_type == "justificatif" else "Assiduité",
|
||||||
action=action,
|
action=action,
|
||||||
|
etud=objet.etudiant,
|
||||||
objet=_preparer_objet(obj_type, objet),
|
objet=_preparer_objet(obj_type, objet),
|
||||||
|
objet_name=objet_name,
|
||||||
obj_id=obj_id,
|
obj_id=obj_id,
|
||||||
moduleimpl=module,
|
moduleimpl=module,
|
||||||
)
|
)
|
||||||
# Cas des POSTS
|
# ----- Cas POST
|
||||||
if obj_type == "assiduite":
|
if obj_type == "assiduite":
|
||||||
try:
|
try:
|
||||||
_action_modifier_assiduite(objet)
|
_action_modifier_assiduite(objet)
|
||||||
@ -1396,7 +1406,7 @@ def _action_modifier_justificatif(justi: Justificatif):
|
|||||||
def _preparer_objet(
|
def _preparer_objet(
|
||||||
obj_type: str, objet: Assiduite | Justificatif, sans_gros_objet: bool = False
|
obj_type: str, objet: Assiduite | Justificatif, sans_gros_objet: bool = False
|
||||||
) -> dict:
|
) -> dict:
|
||||||
# Préparation d'un objet pour simplifier l'affichage jinja
|
"Préparation d'un objet pour simplifier l'affichage jinja"
|
||||||
objet_prepare: dict = objet.to_dict()
|
objet_prepare: dict = objet.to_dict()
|
||||||
if obj_type == "assiduite":
|
if obj_type == "assiduite":
|
||||||
objet_prepare["etat"] = (
|
objet_prepare["etat"] = (
|
||||||
|
Loading…
Reference in New Issue
Block a user