forked from ScoDoc/DocScoDoc
Ajout lien saisie absence sur tableau bord module, et lien affichage notes tous
This commit is contained in:
parent
44dde2e678
commit
e9e9e1c6e1
@ -936,7 +936,7 @@ class ZAbsences(
|
|||||||
moduleimpl_id = None
|
moduleimpl_id = None
|
||||||
|
|
||||||
groups_infos = sco_groups_view.DisplayedGroupsInfos(
|
groups_infos = sco_groups_view.DisplayedGroupsInfos(
|
||||||
self, group_ids, REQUEST=REQUEST
|
self, group_ids, moduleimpl_id=moduleimpl_id, REQUEST=REQUEST
|
||||||
)
|
)
|
||||||
if not groups_infos.members:
|
if not groups_infos.members:
|
||||||
return (
|
return (
|
||||||
|
@ -764,14 +764,11 @@ UE11 Découverte métiers <span class="ue_code">(code UCOD46, 16 ECTS, Apo <span
|
|||||||
# Semestres dans lesquel il est inscrit
|
# Semestres dans lesquel il est inscrit
|
||||||
ins = self.Notes.do_formsemestre_inscription_list({"etudid": etudid})
|
ins = self.Notes.do_formsemestre_inscription_list({"etudid": etudid})
|
||||||
etud["ins"] = ins
|
etud["ins"] = ins
|
||||||
now = time.strftime("%Y-%m-%d")
|
|
||||||
sems = []
|
sems = []
|
||||||
cursem = None # semestre "courant" ou il est inscrit
|
cursem = None # semestre "courant" ou il est inscrit
|
||||||
for i in ins:
|
for i in ins:
|
||||||
sem = sco_formsemestre.get_formsemestre(self, i["formsemestre_id"])
|
sem = sco_formsemestre.get_formsemestre(self, i["formsemestre_id"])
|
||||||
debut = DateDMYtoISO(sem["date_debut"])
|
if sco_formsemestre.sem_est_courant(self, sem):
|
||||||
fin = DateDMYtoISO(sem["date_fin"])
|
|
||||||
if debut <= now and now <= fin:
|
|
||||||
cursem = sem
|
cursem = sem
|
||||||
curi = i
|
curi = i
|
||||||
sem["ins"] = i
|
sem["ins"] = i
|
||||||
|
@ -374,8 +374,8 @@ def sem_in_semestre_scolaire(context, sem, year=False, saison=0, REQUEST=None):
|
|||||||
si saison non spécifiée: année complète
|
si saison non spécifiée: année complète
|
||||||
pivot de saison au 1er décembre
|
pivot de saison au 1er décembre
|
||||||
XXX TODO: la période (ici appelée "saison" devrait être éditable
|
XXX TODO: la période (ici appelée "saison" devrait être éditable
|
||||||
manuellement dans le formsemestre_edit afin de couvrir els cas particulier
|
manuellement dans le formsemestre_edit afin de couvrir les cas particulier
|
||||||
comme un semestre S2 qui commecerait en décembre... voire novembre.
|
comme un semestre S2 qui commencerait en décembre... voire novembre.
|
||||||
)
|
)
|
||||||
"""
|
"""
|
||||||
if not year:
|
if not year:
|
||||||
@ -429,6 +429,14 @@ def sem_une_annee(context, sem):
|
|||||||
return debut == fin
|
return debut == fin
|
||||||
|
|
||||||
|
|
||||||
|
def sem_est_courant(context, sem):
|
||||||
|
"""Vrai si la date actuelle (now) est dans le semestre (les dates de début et fin sont incluses)"""
|
||||||
|
now = time.strftime("%Y-%m-%d")
|
||||||
|
debut = DateDMYtoISO(sem["date_debut"])
|
||||||
|
fin = DateDMYtoISO(sem["date_fin"])
|
||||||
|
return (debut <= now) and (now <= fin)
|
||||||
|
|
||||||
|
|
||||||
def scodoc_get_all_unlocked_sems(context):
|
def scodoc_get_all_unlocked_sems(context):
|
||||||
"""Liste de tous les semestres non verrouillés de tous les départements"""
|
"""Liste de tous les semestres non verrouillés de tous les départements"""
|
||||||
depts = context.list_depts()
|
depts = context.list_depts()
|
||||||
|
@ -298,6 +298,7 @@ class DisplayedGroupsInfos:
|
|||||||
formsemestre_id=None,
|
formsemestre_id=None,
|
||||||
etat=None,
|
etat=None,
|
||||||
select_all_when_unspecified=False,
|
select_all_when_unspecified=False,
|
||||||
|
moduleimpl_id=None, # used to find formsemestre when unspecified
|
||||||
REQUEST=None,
|
REQUEST=None,
|
||||||
):
|
):
|
||||||
# log('DisplayedGroupsInfos %s' % group_ids)
|
# log('DisplayedGroupsInfos %s' % group_ids)
|
||||||
@ -306,10 +307,15 @@ class DisplayedGroupsInfos:
|
|||||||
group_ids = [group_ids] # cas ou un seul parametre, pas de liste
|
group_ids = [group_ids] # cas ou un seul parametre, pas de liste
|
||||||
else:
|
else:
|
||||||
group_ids = []
|
group_ids = []
|
||||||
|
if not formsemestre_id and moduleimpl_id:
|
||||||
|
mods = context.Notes.do_moduleimpl_list(moduleimpl_id=moduleimpl_id)
|
||||||
|
if len(mods) != 1:
|
||||||
|
raise ValueError("invalid moduleimpl_id")
|
||||||
|
formsemestre_id = mods[0]["formsemestre_id"]
|
||||||
|
|
||||||
if not group_ids: # appel sans groupe (eg page accueil)
|
if not group_ids: # appel sans groupe (eg page accueil)
|
||||||
if not formsemestre_id:
|
if not formsemestre_id:
|
||||||
raise Exception("missing parameter") # formsemestre_id or group_ids
|
raise Exception("missing parameter formsemestre_id or group_ids")
|
||||||
if select_all_when_unspecified:
|
if select_all_when_unspecified:
|
||||||
group_ids = [sco_groups.get_default_group(context, formsemestre_id)]
|
group_ids = [sco_groups.get_default_group(context, formsemestre_id)]
|
||||||
else:
|
else:
|
||||||
@ -856,7 +862,9 @@ def tab_photos_html(context, groups_infos, etat=None, REQUEST=None):
|
|||||||
return sco_trombino.trombino_html(context, groups_infos, REQUEST=REQUEST)
|
return sco_trombino.trombino_html(context, groups_infos, REQUEST=REQUEST)
|
||||||
|
|
||||||
|
|
||||||
def form_choix_jour_saisie_hebdo(context, groups_infos, REQUEST=None):
|
def form_choix_jour_saisie_hebdo(
|
||||||
|
context, groups_infos, moduleimpl_id=None, REQUEST=None
|
||||||
|
):
|
||||||
"""Formulaire choix jour semaine pour saisie."""
|
"""Formulaire choix jour semaine pour saisie."""
|
||||||
authuser = REQUEST.AUTHENTICATED_USER
|
authuser = REQUEST.AUTHENTICATED_USER
|
||||||
if not authuser.has_permission(ScoAbsChange, context):
|
if not authuser.has_permission(ScoAbsChange, context):
|
||||||
@ -871,7 +879,10 @@ def form_choix_jour_saisie_hebdo(context, groups_infos, REQUEST=None):
|
|||||||
)
|
)
|
||||||
FA.append('<input type="hidden" name="datefin" value="%(date_fin)s"/>' % sem)
|
FA.append('<input type="hidden" name="datefin" value="%(date_fin)s"/>' % sem)
|
||||||
FA.append(groups_infos.get_form_elem())
|
FA.append(groups_infos.get_form_elem())
|
||||||
|
if moduleimpl_id:
|
||||||
|
FA.append(
|
||||||
|
'<input type="hidden" name="moduleimpl_id" value="%s"/>' % moduleimpl_id
|
||||||
|
)
|
||||||
FA.append('<input type="hidden" name="destination" value=""/>')
|
FA.append('<input type="hidden" name="destination" value=""/>')
|
||||||
|
|
||||||
FA.append(
|
FA.append(
|
||||||
|
@ -43,7 +43,7 @@ import sco_formsemestre
|
|||||||
import sco_formsemestre_status
|
import sco_formsemestre_status
|
||||||
from sco_formsemestre_status import makeMenu
|
from sco_formsemestre_status import makeMenu
|
||||||
import sco_compute_moy
|
import sco_compute_moy
|
||||||
|
import ZAbsences
|
||||||
|
|
||||||
# ported from old DTML code in oct 2009
|
# ported from old DTML code in oct 2009
|
||||||
|
|
||||||
@ -224,7 +224,6 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
)
|
)
|
||||||
H.append("</td></tr>")
|
H.append("</td></tr>")
|
||||||
else:
|
else:
|
||||||
t0, t1 = "<em>règle de calcul standard</em>", ""
|
|
||||||
H.append(
|
H.append(
|
||||||
'<tr><td colspan="4"><em title="mode de calcul de la moyenne du module">règle de calcul standard</em>'
|
'<tr><td colspan="4"><em title="mode de calcul de la moyenne du module">règle de calcul standard</em>'
|
||||||
)
|
)
|
||||||
@ -235,10 +234,21 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
)
|
)
|
||||||
H.append("</td></tr>")
|
H.append("</td></tr>")
|
||||||
H.append(
|
H.append(
|
||||||
'<tr><td colspan="2"><a class="stdlink" href="view_module_abs?moduleimpl_id=%s">Absences</a> '
|
'<tr><td colspan="4"><span class="moduleimpl_abs_link"><a class="stdlink" href="view_module_abs?moduleimpl_id=%s">Absences dans ce module</a></span>'
|
||||||
% moduleimpl_id
|
% moduleimpl_id
|
||||||
)
|
)
|
||||||
H.append("</table>")
|
# Adapté à partir d'une suggestion de DS (Le Havre)
|
||||||
|
# Liens saisies absences seulement si permission et date courante dans le semestre
|
||||||
|
if authuser.has_permission(
|
||||||
|
ScoAbsChange, context
|
||||||
|
) and sco_formsemestre.sem_est_courant(context, sem):
|
||||||
|
datelundi = ZAbsences.ddmmyyyy(time.strftime("%d/%m/%Y")).prev_monday()
|
||||||
|
H.append(
|
||||||
|
'<span class="moduleimpl_abs_link"><a class="stdlink" href="Absences/SignaleAbsenceGrHebdo?formsemestre_id=%s&moduleimpl_id=%s&datelundi=%s">Saisie Absences hebdo.</a></span>'
|
||||||
|
% (formsemestre_id, moduleimpl_id, datelundi)
|
||||||
|
)
|
||||||
|
|
||||||
|
H.append("</td></tr></table>")
|
||||||
#
|
#
|
||||||
if has_expression and nt.expr_diagnostics:
|
if has_expression and nt.expr_diagnostics:
|
||||||
H.append(
|
H.append(
|
||||||
@ -478,7 +488,11 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
% etat
|
% etat
|
||||||
)
|
)
|
||||||
if etat["moy"]:
|
if etat["moy"]:
|
||||||
H.append("%s / %g" % (etat["moy"], eval["note_max"]))
|
H.append("<b>%s / %g</b>" % (etat["moy"], eval["note_max"]))
|
||||||
|
H.append(
|
||||||
|
""" (<a href="evaluation_listenotes?evaluation_id=%s">afficher</a>)"""
|
||||||
|
% (eval["evaluation_id"],)
|
||||||
|
)
|
||||||
else:
|
else:
|
||||||
H.append(
|
H.append(
|
||||||
"""<a class="redlink" href="saisie_notes?evaluation_id=%s">saisir notes</a>"""
|
"""<a class="redlink" href="saisie_notes?evaluation_id=%s">saisir notes</a>"""
|
||||||
@ -488,7 +502,6 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
#
|
#
|
||||||
if etat["nb_notes"] == 0:
|
if etat["nb_notes"] == 0:
|
||||||
H.append("""<tr class="%s"><td colspan="8"> """ % tr_class)
|
H.append("""<tr class="%s"><td colspan="8"> """ % tr_class)
|
||||||
# XXX
|
|
||||||
H.append("""</td></tr>""")
|
H.append("""</td></tr>""")
|
||||||
else: # il y a deja des notes saisies
|
else: # il y a deja des notes saisies
|
||||||
gr_moyennes = etat["gr_moyennes"]
|
gr_moyennes = etat["gr_moyennes"]
|
||||||
@ -505,7 +518,7 @@ def moduleimpl_status(context, moduleimpl_id=None, partition_id=None, REQUEST=No
|
|||||||
if gr_moyenne["gr_nb_notes"] > 0:
|
if gr_moyenne["gr_nb_notes"] > 0:
|
||||||
H.append("%(gr_moy)s" % gr_moyenne)
|
H.append("%(gr_moy)s" % gr_moyenne)
|
||||||
H.append(
|
H.append(
|
||||||
""" (<a href="evaluation_listenotes?tf-submitted=1&evaluation_id=%s&group_ids%%3Alist=%s">%s</a> notes"""
|
""" (<a href="evaluation_listenotes?tf-submitted=1&evaluation_id=%s&group_ids%%3Alist=%s">%s notes</a>"""
|
||||||
% (
|
% (
|
||||||
eval["evaluation_id"],
|
eval["evaluation_id"],
|
||||||
gr_moyenne["group_id"],
|
gr_moyenne["group_id"],
|
||||||
|
@ -1223,7 +1223,7 @@ ul.ue_inscr_list li.etud {
|
|||||||
}
|
}
|
||||||
|
|
||||||
#grouplists table {
|
#grouplists table {
|
||||||
//border: 1px solid black;
|
/*border: 1px solid black;*/
|
||||||
border-spacing: 1px;
|
border-spacing: 1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1236,7 +1236,9 @@ div.moduleimpl_tableaubord {
|
|||||||
padding: 7px;
|
padding: 7px;
|
||||||
border: 2px solid gray;
|
border: 2px solid gray;
|
||||||
}
|
}
|
||||||
|
span.moduleimpl_abs_link {
|
||||||
|
padding-right: 2em;
|
||||||
|
}
|
||||||
.moduleimpl_evaluations_top_links {
|
.moduleimpl_evaluations_top_links {
|
||||||
font-size: 80%;
|
font-size: 80%;
|
||||||
margin-bottom: 3px;
|
margin-bottom: 3px;
|
||||||
|
Loading…
Reference in New Issue
Block a user