forked from ScoDoc/ScoDoc
WIP: assiduités
This commit is contained in:
parent
b24280b30a
commit
4c7f65f0b4
@ -847,10 +847,14 @@ def _make_listes_sem(formsemestre: FormSemestre, with_absences=True):
|
|||||||
form_abs_tmpl += f"""
|
form_abs_tmpl += f"""
|
||||||
<a class="btn" href="{
|
<a class="btn" href="{
|
||||||
url_for("assiduites.signal_assiduites_group", scodoc_dept=g.scodoc_dept)
|
url_for("assiduites.signal_assiduites_group", scodoc_dept=g.scodoc_dept)
|
||||||
}?group_ids=%(group_id)s&jour={datetime.date.today().isoformat()}&formsemestre_id={formsemestre.id}"><button>Saisie Journalière</button></a>
|
}?group_ids=%(group_id)s&jour={
|
||||||
|
datetime.date.today().isoformat()
|
||||||
|
}&formsemestre_id={formsemestre.id}"><button>Saisie journalière</button></a>
|
||||||
<a class="btn" href="{
|
<a class="btn" href="{
|
||||||
url_for("assiduites.signal_assiduites_diff", scodoc_dept=g.scodoc_dept)
|
url_for("assiduites.signal_assiduites_diff", scodoc_dept=g.scodoc_dept)
|
||||||
}?group_ids=%(group_id)s&formsemestre_id={formsemestre.formsemestre_id}"><button>Saisie Différée</button></a>
|
}?group_ids=%(group_id)s&formsemestre_id={
|
||||||
|
formsemestre.formsemestre_id
|
||||||
|
}"><button>Saisie différée</button></a>
|
||||||
</td>
|
</td>
|
||||||
"""
|
"""
|
||||||
else:
|
else:
|
||||||
|
@ -162,7 +162,7 @@ def _convert_pref_type(p, pref_spec):
|
|||||||
# special case for float values (where NULL means 0)
|
# special case for float values (where NULL means 0)
|
||||||
p["value"] = float(p["value"] or 0)
|
p["value"] = float(p["value"] or 0)
|
||||||
elif typ == "int":
|
elif typ == "int":
|
||||||
p["value"] = int(p["value"] or 0)
|
p["value"] = int(float(p["value"] or 0))
|
||||||
else:
|
else:
|
||||||
raise ValueError("invalid preference type")
|
raise ValueError("invalid preference type")
|
||||||
|
|
||||||
@ -198,6 +198,13 @@ def _get_pref_default_value_from_config(name, pref_spec):
|
|||||||
|
|
||||||
_INSTALLED_FONTS = ", ".join(sco_pdf.get_available_font_names())
|
_INSTALLED_FONTS = ", ".join(sco_pdf.get_available_font_names())
|
||||||
|
|
||||||
|
ASSIDUITES_METRIC_LABEL = {
|
||||||
|
# l'ordre est important, c'est celui-du menu. Le defaut en 1er donc.
|
||||||
|
"1/2 J.": "demi-journée",
|
||||||
|
"J.": "journee",
|
||||||
|
"H.": "heure",
|
||||||
|
}
|
||||||
|
|
||||||
PREF_CATEGORIES = (
|
PREF_CATEGORIES = (
|
||||||
# sur page "Paramètres"
|
# sur page "Paramètres"
|
||||||
("general", {"title": ""}), # voir paramètre titlr de TrivialFormulator
|
("general", {"title": ""}), # voir paramètre titlr de TrivialFormulator
|
||||||
@ -658,10 +665,10 @@ class BasePreferences(object):
|
|||||||
{
|
{
|
||||||
"initvalue": "1/2 J.",
|
"initvalue": "1/2 J.",
|
||||||
"input_type": "menu",
|
"input_type": "menu",
|
||||||
"labels": ["1/2 J.", "J.", "H."],
|
"labels": list(ASSIDUITES_METRIC_LABEL.values()),
|
||||||
"allowed_values": ["1/2 J.", "J.", "H."],
|
"allowed_values": list(ASSIDUITES_METRIC_LABEL.keys()),
|
||||||
"title": "Métrique de l'assiduité",
|
"title": "Métrique de l'assiduité",
|
||||||
"explanation": "Unité utilisée dans la fiche étudiante, le bilan, et dans les calculs (J. = journée, H. = heure)",
|
"explanation": "Unité utilisée dans la fiche étudiante, les bilans et les calculs",
|
||||||
"category": "assi",
|
"category": "assi",
|
||||||
"only_global": True,
|
"only_global": True,
|
||||||
},
|
},
|
||||||
@ -669,10 +676,10 @@ class BasePreferences(object):
|
|||||||
(
|
(
|
||||||
"assi_seuil",
|
"assi_seuil",
|
||||||
{
|
{
|
||||||
"initvalue": 3.0,
|
"initvalue": 3,
|
||||||
"size": 10,
|
"size": 10,
|
||||||
"title": "Seuil d'alerte des absences",
|
"title": "Seuil d'alerte des absences",
|
||||||
"type": "float",
|
"type": "int",
|
||||||
"explanation": "Nombres d'absences limite avant alerte dans le bilan (utilisation de l'unité métrique ↑ )",
|
"explanation": "Nombres d'absences limite avant alerte dans le bilan (utilisation de l'unité métrique ↑ )",
|
||||||
"category": "assi",
|
"category": "assi",
|
||||||
"only_global": True,
|
"only_global": True,
|
||||||
|
@ -1792,6 +1792,10 @@ td.formsemestre_status_inscrits {
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
div.formsemestre_status button {
|
||||||
|
margin-left: 12px;;
|
||||||
|
}
|
||||||
|
|
||||||
td.rcp_titre_sem a.jury_link {
|
td.rcp_titre_sem a.jury_link {
|
||||||
margin-left: 8px;
|
margin-left: 8px;
|
||||||
color: red;
|
color: red;
|
||||||
|
@ -125,11 +125,9 @@ class RowAssi(tb.Row):
|
|||||||
"absent": ["Absences", 0.0, 0.0],
|
"absent": ["Absences", 0.0, 0.0],
|
||||||
}
|
}
|
||||||
|
|
||||||
assi_metric = {
|
assi_metric = sco_preferences.ASSIDUITES_METRIC_LABEL.get(
|
||||||
"H.": "heure",
|
sco_preferences.get_preference("assi_metrique", dept_id=g.scodoc_dept_id)
|
||||||
"J.": "journee",
|
)
|
||||||
"1/2 J.": "demi",
|
|
||||||
}.get(sco_preferences.get_preference("assi_metrique", dept_id=g.scodoc_dept_id))
|
|
||||||
|
|
||||||
for etat, valeur in retour.items():
|
for etat, valeur in retour.items():
|
||||||
compte_etat = scass.get_assiduites_stats(
|
compte_etat = scass.get_assiduites_stats(
|
||||||
|
@ -2,7 +2,16 @@
|
|||||||
{% import 'bootstrap/wtf.html' as wtf %}
|
{% import 'bootstrap/wtf.html' as wtf %}
|
||||||
|
|
||||||
{% block app_content %}
|
{% block app_content %}
|
||||||
<h1>Configuration du Module d'assiduité</h1>
|
<div class="row">
|
||||||
|
|
||||||
|
<h1>Configuration du suivi de l'assiduité</h1>
|
||||||
|
|
||||||
|
<div class="help"> Ces paramètres seront utilisés par tous les départements et
|
||||||
|
affectent notamment les comptages d'absences de tous les bulletins des
|
||||||
|
étudiants : ne changer que lorsque c'est vraiment nécessaire.
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-8">
|
<div class="col-md-8">
|
||||||
|
@ -40,8 +40,9 @@
|
|||||||
|
|
||||||
{% if readonly == "false" %}
|
{% if readonly == "false" %}
|
||||||
<div style="margin: 1vh 0;">
|
<div style="margin: 1vh 0;">
|
||||||
<div id="forcemodule" style="display: none; margin:10px 0px;">Une préférence du semestre vous impose d'indiquer
|
<div id="forcemodule" style="display: none; margin:10px 0px;">
|
||||||
le module !</div>
|
Vous devez spécifier le module ! (voir réglage préférence du semestre)
|
||||||
|
</div>
|
||||||
<div>Module :{{moduleimpl_select|safe}}</div>
|
<div>Module :{{moduleimpl_select|safe}}</div>
|
||||||
</div>
|
</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -21,6 +21,10 @@
|
|||||||
|
|
||||||
{{tableau | safe}}
|
{{tableau | safe}}
|
||||||
|
|
||||||
|
<div class=""help">
|
||||||
|
Les comptes sont exprimés en {{ assi_metric }}.
|
||||||
|
</div>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
const date_debut = "{{date_debut}}";
|
const date_debut = "{{date_debut}}";
|
||||||
const date_fin = "{{date_fin}}";
|
const date_fin = "{{date_fin}}";
|
||||||
|
@ -57,18 +57,18 @@
|
|||||||
<div class="sco_help">Ces images peuvent être intégrées dans les documents
|
<div class="sco_help">Ces images peuvent être intégrées dans les documents
|
||||||
générés par ScoDoc: bulletins, PV, etc.
|
générés par ScoDoc: bulletins, PV, etc.
|
||||||
</div>
|
</div>
|
||||||
<p><a class="stdlink" href="{{url_for('scodoc.configure_logos')}}">configuration des images et logos</a>
|
<p><a class="stdlink" href="{{url_for('scodoc.configure_logos')}}">Configuration des images et logos</a>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
<section>
|
<section>
|
||||||
<h2>Exports Apogée</h2>
|
<h2>Exports Apogée</h2>
|
||||||
<p><a class="stdlink" href="{{url_for('scodoc.config_codes_decisions')}}">configuration des codes de décision</a>
|
<p><a class="stdlink" href="{{url_for('scodoc.config_codes_decisions')}}">Configuration des codes de décision</a>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
<section>
|
<section>
|
||||||
<h2>Assiduités</h2>
|
<h2>Assiduités</h2>
|
||||||
<p><a class="stdlink" href="{{url_for('scodoc.config_assiduites')}}">configuration du module d'assiduités</a>
|
<p><a class="stdlink" href="{{url_for('scodoc.config_assiduites')}}">Configuration du suivi de l'assiduité</a>
|
||||||
</p>
|
</p>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -807,8 +807,6 @@ def visu_assi_group():
|
|||||||
fmt = request.args.get("format", "html")
|
fmt = request.args.get("format", "html")
|
||||||
|
|
||||||
group_ids: list[int] = request.args.get("group_ids", None)
|
group_ids: list[int] = request.args.get("group_ids", None)
|
||||||
etudiants: list[dict] = []
|
|
||||||
|
|
||||||
if group_ids is None:
|
if group_ids is None:
|
||||||
group_ids = []
|
group_ids = []
|
||||||
else:
|
else:
|
||||||
@ -842,16 +840,17 @@ def visu_assi_group():
|
|||||||
grp + ' <span class="fontred">' + groups_infos.groups_titles + "</span>"
|
grp + ' <span class="fontred">' + groups_infos.groups_titles + "</span>"
|
||||||
)
|
)
|
||||||
|
|
||||||
print()
|
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
"assiduites/pages/visu_assi.j2",
|
"assiduites/pages/visu_assi.j2",
|
||||||
tableau=table.html(),
|
assi_metric=sco_preferences.ASSIDUITES_METRIC_LABEL.get(
|
||||||
gr_tit=gr_tit,
|
sco_preferences.get_preference("assi_metrique", dept_id=g.scodoc_dept_id)
|
||||||
|
),
|
||||||
date_debut=dates["debut"],
|
date_debut=dates["debut"],
|
||||||
date_fin=dates["fin"],
|
date_fin=dates["fin"],
|
||||||
|
gr_tit=gr_tit,
|
||||||
group_ids=request.args.get("group_ids", None),
|
group_ids=request.args.get("group_ids", None),
|
||||||
sco=ScoData(formsemestre=groups_infos.get_formsemestre()),
|
sco=ScoData(formsemestre=groups_infos.get_formsemestre()),
|
||||||
|
tableau=table.html(),
|
||||||
title=f"Assiduité {grp} {groups_infos.groups_titles}",
|
title=f"Assiduité {grp} {groups_infos.groups_titles}",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
# -*- mode: python -*-
|
# -*- mode: python -*-
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
SCOVERSION = "9.6.8"
|
SCOVERSION = "9.6.9"
|
||||||
|
|
||||||
SCONAME = "ScoDoc"
|
SCONAME = "ScoDoc"
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user