# -*- mode: python -*- # -*- coding: utf-8 -*- ############################################################################## # # Gestion scolarite IUT # ############################################################################## """Rapports suivi: - statistiques decisions - suivi cohortes """ from notesdb import * from sco_utils import * from notes_log import log from gen_tables import GenTable import sco_excel, sco_pdf import sco_codes_parcours from sco_codes_parcours import code_semestre_validant from mx.DateTime import DateTime as mxDateTime import mx.DateTime import tempfile, urllib, re #import sco_formsemestre_status from sco_pdf import SU import sco_evaluations #utile import sco_groups #utile from sco_saisie_notes import _displayNote import sco_formsemestre def description_evaluation (context, moduleimpl_id=None, partition_id=None, REQUEST=None): """liste des evaluations etc)""" ModEvals = context.do_evaluation_list( args={ 'moduleimpl_id' : moduleimpl_id } ) eval_index = len(ModEvals) - 1 H=[] nb_abs_tot=0 nb_att_tot=0 nb_exc_tot=0 nb_pas_note_tot=0 for eval in ModEvals: H.append('') H.append('    %(description)s' % eval) H.append('') evaluation_id=eval['evaluation_id'] evals = context.do_evaluation_list( {'evaluation_id' : evaluation_id}) """Donne la liste des groupes dans lesquels figurent des etudiants inscrits au module/semestre auquel appartient cette evaluation. Si include_default, inclue aussi le groupe par defaut ('tous') [ group ] """ etudids = sco_groups.do_evaluation_listeetuds_groups( context, evaluation_id, groups=None, getallstudents=True, include_dems=False) # Notes existantes NotesDB = context._notes_getall(evaluation_id) H.append('
') nb_abs=0 nb_att=0 nb_exc=0 nb_pas_note=0 for etudid in etudids: if NotesDB.has_key(etudid): val = _displayNote(NotesDB[etudid]['value']) if (val =='ABS'): nb_abs=nb_abs+1 nb_abs_tot=nb_abs_tot+1 if (val =='ATT'): nb_att=nb_att+1 nb_att_tot=nb_att_tot+1 if (val =='EXC'): nb_exc=nb_exc+1 nb_exc_tot=nb_exc_tot+1 else : nb_pas_note=nb_pas_note+1 nb_pas_note_tot=nb_pas_note_tot+1 if (nb_pas_note==0): H.append(' OUI - Sans note : %3s'%(nb_pas_note)) else: H.append(' NON - Sans note : %3s '%(nb_pas_note)) H.append('
') #mise en rouge du nombre de note en attente si différent de 0 if (nb_att<>0): nb_att=' %s '%nb_att #mise en bleu du nombre de note excusé si différent de 0 if (nb_exc<>0): nb_exc=' %s '%nb_exc H.append('
%s
%s
%s
'%(nb_abs,nb_att,nb_exc)) H.append('') H.append('') return ''.join(H) def AC_synthese_evaluations(context, formsemestre_id, format='html', REQUEST=None): """Tableau de bord semestre HTML""" # porté du DTML cnx = context.GetDBConnexion() sem = sco_formsemestre.get_formsemestre(context, formsemestre_id) Mlist = context.do_moduleimpl_withmodule_list( args={ 'formsemestre_id' : formsemestre_id } ) prev_ue_id = None H = [ context.sco_header(REQUEST, page_title='Semestre %s' % sem['titreannee'] ), '
', """

Tableau de synthèse des évaluations.

""" ] nt = context._getNotesCache().get_NotesTable(context, formsemestre_id) H.append("""

""") for M in Mlist: Mod = M['module'] ModDescr = 'Module ' + M['module']['titre'] + ', coef. ' + str(M['module']['coefficient']) ModEns = context.Users.user_info(M['responsable_id'],REQUEST)['nomcomplet'] ModInscrits = context.do_moduleimpl_inscription_list( args={ 'moduleimpl_id' : M['moduleimpl_id'] } ) if prev_ue_id != M['ue']['ue_id']: prev_ue_id = M['ue']['ue_id'] H.append("""""" % M['ue'] ) H.append('') if M['ue']['type'] != 0: fontorange = ' fontorange' # style css additionnel else: fontorange = '' etat = sco_evaluations.do_evaluation_etat_in_mod(context, nt, M['moduleimpl_id']) if etat['nb_evals_completes'] > 0 and etat['nb_evals_en_cours'] == 0 and etat['nb_evals_vides'] == 0: H.append('' % fontorange) else: H.append('' % fontorange) #affichage du module "MA11" avec lien, informations sur le module H.append('' % (M['moduleimpl_id'],ModDescr,Mod['code'])) #affichage de l'intitule du module "Mathematiques : algebre et trigo" avec lien, informations sur le module H.append('' % (M['moduleimpl_id'], ModDescr, Mod['abbrev'] or Mod['titre'],len( ModInscrits ))) #affichage du nombre d'inscrits H.append('') #affichage des evaluations H.append(description_evaluation(context, moduleimpl_id=M['moduleimpl_id'], partition_id=None, REQUEST=REQUEST)) H.append('
%(acronyme)s %(titre)s
Visible sur le buletin ?
ABS
ATT
EXC
%s%s (%s étudiants inscrits)

') return ''.join(H) + context.sco_footer(REQUEST)