forked from ScoDoc/ScoDoc
Update opolka/ScoDoc from ScoDoc/ScoDoc #2
@ -777,7 +777,7 @@ class FormSemestre(db.Model):
|
||||
"""
|
||||
partitions = [p for p in self.partitions if p.partition_name is not None]
|
||||
if with_default:
|
||||
partitions += [p for p in partitions if p.partition_name is None]
|
||||
partitions += [p for p in self.partitions if p.partition_name is None]
|
||||
return partitions
|
||||
|
||||
@cached_property
|
||||
|
@ -825,7 +825,7 @@ def tab_absences_html(groups_infos, etat=None):
|
||||
|
||||
H.extend(
|
||||
[
|
||||
"<h3>Assiduités</h3>",
|
||||
"<h3>Assiduité</h3>",
|
||||
'<ul class="ul_abs">',
|
||||
"<li>",
|
||||
form_choix_saisie_semaine(groups_infos), # Ajout Le Havre
|
||||
@ -835,7 +835,7 @@ def tab_absences_html(groups_infos, etat=None):
|
||||
"</li>",
|
||||
f"""<li><a class="stdlink" href="{
|
||||
url_for("assiduites.visu_assi_group", scodoc_dept=g.scodoc_dept, group_ids=group_ids, date_debut=formsemestre.date_debut.isoformat(), date_fin=formsemestre.date_fin.isoformat())
|
||||
}">État des assiduités du groupe</a></li>""",
|
||||
}">État de l'assiduité du groupe</a></li>""",
|
||||
"</ul>",
|
||||
"<h3>Feuilles</h3>",
|
||||
'<ul class="ul_feuilles">',
|
||||
|
@ -614,8 +614,8 @@ class BasePreferences:
|
||||
"assi_limit_annee",
|
||||
{
|
||||
"initvalue": 1,
|
||||
"title": "Ne lister que les assiduités de l'année",
|
||||
"explanation": "Limite l'affichage des listes d'assiduités et de justificatifs à l'année en cours",
|
||||
"title": "Ne lister que l'assiduités de l'année",
|
||||
"explanation": "Limite l'affichage des listes d'assiduité et de justificatifs à l'année en cours",
|
||||
"input_type": "boolcheckbox",
|
||||
"labels": ["non", "oui"],
|
||||
"category": "assi",
|
||||
|
@ -3206,6 +3206,9 @@ table.abs_form_table tr:hover td {
|
||||
border: 1px solid red;
|
||||
}
|
||||
|
||||
.ul_abs button {
|
||||
margin-bottom: 6px;
|
||||
}
|
||||
|
||||
/* ----- Formulator ------- */
|
||||
ul.tf-msg {
|
||||
|
@ -162,6 +162,7 @@ function uniqueCheckBox(box) {
|
||||
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
|
||||
*/
|
||||
function sync_get(path, success, errors) {
|
||||
console.log("sync_get " + path);
|
||||
$.ajax({
|
||||
async: false,
|
||||
type: "GET",
|
||||
@ -177,6 +178,7 @@ function sync_get(path, success, errors) {
|
||||
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
|
||||
*/
|
||||
function async_get(path, success, errors) {
|
||||
console.log("async_get " + path);
|
||||
$.ajax({
|
||||
async: true,
|
||||
type: "GET",
|
||||
@ -193,6 +195,7 @@ function async_get(path, success, errors) {
|
||||
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
|
||||
*/
|
||||
function sync_post(path, data, success, errors) {
|
||||
console.log("sync_post " + path);
|
||||
$.ajax({
|
||||
async: false,
|
||||
type: "POST",
|
||||
@ -210,6 +213,7 @@ function sync_post(path, data, success, errors) {
|
||||
* @param {CallableFunction} errors fonction à effectuer en cas d'échec
|
||||
*/
|
||||
function async_post(path, data, success, errors) {
|
||||
console.log("sync_post " + path);
|
||||
return $.ajax({
|
||||
async: true,
|
||||
type: "POST",
|
||||
|
@ -1,7 +1,7 @@
|
||||
{% include "assiduites/widgets/toast.j2" %}
|
||||
{% block pageContent %}
|
||||
<div class="pageContent">
|
||||
<h3>Justifier des assiduités</h3>
|
||||
<h3>Justifier des absences ou retards</h3>
|
||||
{% include "assiduites/widgets/tableau_base.j2" %}
|
||||
<section class="liste">
|
||||
<a class="icon filter" onclick="filterJusti()"></a>
|
||||
|
@ -181,9 +181,9 @@
|
||||
function removeAllAssiduites() {
|
||||
|
||||
openPromptModal(
|
||||
"Suppression des assiduités",
|
||||
"Suppression de l'assiduité",
|
||||
document.createTextNode(
|
||||
'Souhaitez vous réelement supprimer toutes les assiduités de cet étudiant ? Cette supression est irréversible.')
|
||||
'Souhaitez vous réellement supprimer toutes les informations sur l\'assiduité de cet étudiant ? Cette suppression est irréversible.')
|
||||
,
|
||||
() => {
|
||||
getAllAssiduitesFromEtud(etudid, (data) => {
|
||||
|
@ -3,7 +3,7 @@
|
||||
|
||||
<div class="pageContent">
|
||||
{{minitimeline | safe }}
|
||||
<h2>Assiduités de {{sco.etud.nomprenom}}</h2>
|
||||
<h2>Assiduité de {{sco.etud.nomprenom}}</h2>
|
||||
<div class="calendrier">
|
||||
|
||||
</div>
|
||||
@ -13,22 +13,22 @@
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="legende">
|
||||
<div class="help">
|
||||
<h3>Calendrier</h3>
|
||||
<p>Les jours non travaillés sont affiché en violet</p>
|
||||
<p>Les jours possèdant une bordure "bleu" sont des jours où des assiduités ont été justifiées par un
|
||||
<p>Les jours possèdant une bordure "bleu" sont des jours où des absences/retards ont été justifiées par un
|
||||
justificatif valide</p>
|
||||
<p>Les jours possèdant une bordure "rouge" sont des jours où des assiduités ont été justifiées par un
|
||||
<p>Les jours possèdant une bordure "rouge" sont des jours où des absences/retards ont été justifiées par un
|
||||
justificatif non valide</p>
|
||||
<p>Le jour sera affiché en : </p>
|
||||
<ul>
|
||||
<li>Rouge : S'il y a une assiduité "Absent"</li>
|
||||
<li>Orange : S'il y a une assiduité "Retard" et pas d'assiduité "Absent"</li>
|
||||
<li>Vert : S'il y a une assiduité "Present" et pas d'assiduité "Absent" ni "Retard"</li>
|
||||
<li>Blanc : S'il n'y a pas d'assiduité</li>
|
||||
<li>Rouge : s'il y a une absence enregistrée</li>
|
||||
<li>Orange : s'il y a un retard et pas d'absence</li>
|
||||
<li>Vert : s'il y a une présence enregistrée mais pas d'absence ni de retard</li>
|
||||
<li>Blanc : s'il n'y a rien d'enregistré</li>
|
||||
</ul>
|
||||
|
||||
<p>Vous pouvez passer votre curseur sur les jours colorés afin de voir les assiduités de cette journée.</p>
|
||||
<p>Vous pouvez passer le curseur sur les jours colorés afin de voir les informations de cette journée.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
@ -1,16 +1,16 @@
|
||||
<h2>Signalement différé des assiduités {{gr |safe}}</h2>
|
||||
<div class="legende">
|
||||
<h2>Signalement différé de l'assiduité {{gr |safe}}</h2>
|
||||
<div class="help">
|
||||
<h3>Explication de la saisie différée</h3>
|
||||
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez votre curseur sur la colonne pour afficher
|
||||
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez le curseur sur la colonne pour afficher
|
||||
le message d'erreur</p>
|
||||
<p>Sélectionner la date de début de la colonne mettra automatiquement la date de fin à la durée d'une séance
|
||||
(préférence de département)</p>
|
||||
<p>Modifier le module alors que des assiduités sont déjà enregistrées pour la période changera leur
|
||||
<p>Modifier le module alors que des informations d'assiduité sont déjà enregistrées pour la période changera leur
|
||||
module.</p>
|
||||
<p>Il y a 4 boutons d'assiduités sur la colonne permettant de mettre l'assiduités à tous les étudiants</p>
|
||||
<p>Le dernier des boutons retire l'assiduité.</p>
|
||||
<p>Il y a 4 boutons sur la colonne permettant d'enregistrer l'information pour tous les étudiants</p>
|
||||
<p>Le dernier des boutons retire l'information présente.</p>
|
||||
<p>Vous pouvez ajouter des colonnes en appuyant sur le bouton + </p>
|
||||
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne
|
||||
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne.
|
||||
</p>
|
||||
</div>
|
||||
<h3>{{sem | safe }}</h3>
|
||||
|
@ -74,16 +74,16 @@
|
||||
<p>Vous pouvez justifier rapidement une assiduité en saisisant l'assiduité puis en appuyant sur "Justifier"</p>
|
||||
|
||||
<h3>Explication de la saisie différée</h3>
|
||||
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez votre curseur sur la colonne pour afficher
|
||||
<p>Si la colonne n'est pas valide elle sera affichée en rouge, passez le curseur sur la colonne pour afficher
|
||||
le message d'erreur</p>
|
||||
<p>Sélectionner la date de début de la colonne mettra automatiquement la date de fin à la durée d'une séance
|
||||
(préférence de département)</p>
|
||||
<p>Modifier le module alors que des assiduités sont déjà enregistrées pour la période changera leur
|
||||
<p>Modifier le module alors que des informations sont déjà enregistrées pour la période changera leur
|
||||
module.</p>
|
||||
<p>Il y a 4 boutons d'assiduités sur la colonne permettant de mettre l'assiduités à tous les étudiants</p>
|
||||
<p>Le dernier des boutons retire l'assiduité.</p>
|
||||
<p>Il y a 4 boutons sur la colonne permettant d'enregistrer l'information pour tous les étudiants</p>
|
||||
<p>Le dernier des boutons retire l'information présente.</p>
|
||||
<p>Vous pouvez ajouter des colonnes en appuyant sur le bouton + </p>
|
||||
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne
|
||||
<p>Vous pouvez supprimer une colonne en appuyant sur la croix qui se situe dans le coin haut droit de la colonne.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
@ -137,7 +137,7 @@ def bilan_dept():
|
||||
"""Gestionnaire assiduités, page principale"""
|
||||
H = [
|
||||
html_sco_header.sco_header(
|
||||
page_title="Saisie des assiduités",
|
||||
page_title="Saisie de l'assiduité",
|
||||
javascripts=[
|
||||
"js/assiduites.js",
|
||||
"libjs/moment.new.min.js",
|
||||
@ -147,16 +147,16 @@ def bilan_dept():
|
||||
"css/assiduites.css",
|
||||
],
|
||||
),
|
||||
"""<h2>Traitement des assiduités</h2>
|
||||
"""<h2>Traitement de l'assiduité</h2>
|
||||
<p class="help">
|
||||
Pour saisir des assiduités ou consulter les états, il est recommandé de passer par
|
||||
Pour saisir l'assiduité ou consulter les états, il est recommandé de passer par
|
||||
le semestre concerné (saisie par jour ou saisie différée).
|
||||
</p>
|
||||
""",
|
||||
]
|
||||
H.append(
|
||||
"""<p class="help">Pour signaler, annuler ou justifier une assiduité pour un seul étudiant,
|
||||
choisissez d'abord le concerné:</p>"""
|
||||
"""<p class="help">Pour signaler, annuler ou justifier l'assiduité d'un seul étudiant,
|
||||
choisissez d'abord la personne concernée :</p>"""
|
||||
)
|
||||
H.append(sco_find_etud.form_search_etud(dest_url="assiduites.bilan_etud"))
|
||||
if current_user.has_permission(
|
||||
@ -364,7 +364,7 @@ def liste_assiduites_etud():
|
||||
assiduite_id: int = request.args.get("assiduite_id", -1)
|
||||
|
||||
header: str = html_sco_header.sco_header(
|
||||
page_title="Liste des assiduités",
|
||||
page_title=f"Assiduité de {etud.nomprenom}",
|
||||
init_qtip=True,
|
||||
javascripts=[
|
||||
"js/assiduites.js",
|
||||
@ -411,7 +411,7 @@ def bilan_etud():
|
||||
abort(404, "étudiant inexistant dans ce département")
|
||||
|
||||
header: str = html_sco_header.sco_header(
|
||||
page_title="Bilan de l'assiduité étudiante",
|
||||
page_title=f"Bilan de l'assiduité de {etud.nomprenom}",
|
||||
init_qtip=True,
|
||||
javascripts=[
|
||||
"js/assiduites.js",
|
||||
@ -621,7 +621,7 @@ def signal_assiduites_group():
|
||||
form_deb = formsemestre.date_debut.strftime("%d/%m/%Y")
|
||||
form_fin = formsemestre.date_fin.strftime("%d/%m/%Y")
|
||||
raise ScoValueError(
|
||||
f"Impossible de saisir les assiduités pour le {real_str}"
|
||||
f"Impossible de saisir l'assiduité pour le {real_str}"
|
||||
+ f" : Jour en dehors du semestre ( {form_deb} → {form_fin}) "
|
||||
)
|
||||
|
||||
@ -802,7 +802,7 @@ def visu_assiduites_group():
|
||||
)
|
||||
|
||||
header: str = html_sco_header.sco_header(
|
||||
page_title="Saisie journalière des assiduités",
|
||||
page_title="Saisie journalière de l'assiduité",
|
||||
init_qtip=True,
|
||||
javascripts=html_sco_header.BOOTSTRAP_MULTISELECT_JS
|
||||
+ [
|
||||
@ -1041,7 +1041,7 @@ def signal_assiduites_diff():
|
||||
|
||||
if not groups_infos.members:
|
||||
return (
|
||||
html_sco_header.sco_header(page_title="Assiduités Différées")
|
||||
html_sco_header.sco_header(page_title="Assiduité: saisie différée")
|
||||
+ "<h3>Aucun étudiant ! </h3>"
|
||||
+ html_sco_header.sco_footer()
|
||||
)
|
||||
@ -1056,7 +1056,7 @@ def signal_assiduites_diff():
|
||||
etudiants = list(sorted(etudiants, key=lambda x: x["nom"]))
|
||||
|
||||
header: str = html_sco_header.sco_header(
|
||||
page_title="Assiduités Différées",
|
||||
page_title="Assiduité: saisie différée",
|
||||
init_qtip=True,
|
||||
cssstyles=[
|
||||
"css/assiduites.css",
|
||||
|
Loading…
Reference in New Issue
Block a user