
  NOTES EN VRAC / Brouillon / Trucs obsoletes


#do_moduleimpl_list\(\{"([a-z_]*)"\s*:\s*(.*)\}\)
#do_moduleimpl_list( $1 = $2 )

#do_moduleimpl_list\([\s\n]*args[\s\n]*=[\s\n]*\{"([a-z_]*)"[\s\n]*:[\s\n]*(.*)[\s\n]*\}[\s\n]*\)

Upgrade JavaScript
 - jquery-ui-1.12.1  introduit un problème d'affichage de la barre de menu.
    Il faudrait la revoir entièrement pour upgrader.
    On reste donc à jquery-ui-1.10.4.custom
    Or cette version est incompatible avec jQuery 3 (messages d'erreur dans la console)
    On reste donc avec jQuery 1.12.14


Suivi des requêtes utilisateurs:
 table sql: id, ip, authuser, request


* Optim:
porcodeb4, avant memorisation des moy_ue:
S1 SEM14133 cold start: min 9s, max 12s, avg > 11s
            inval (add note): 1.33s (pas de recalcul des autres)
            inval (add abs) : min8s, max 12s (recalcule tout :-()
LP SEM14946 cold start: 0.7s - 0.86s



----------------- LISTE OBSOLETE (très ancienne, à trier) -----------------------
BUGS
----

 - formsemestre_inscription_with_modules
     si inscription 'un etud deja inscrit, IntegrityError

FEATURES REQUESTS
-----------------

* Bulletins:
  . logos IUT et Univ sur bull PDF
  . nom departement: nom abbrégé (CJ) ou complet (Carrière Juridiques)
  . bulletin: deplacer la barre indicateur (cf OLDGEA S2: gêne)
  . bulletin: click nom titre -> ficheEtud

  . formsemestre_pagebulletin_dialog: marges en mm: accepter "2,5" et "2.5"
    et valider correctement le form !

* Jury
  . recapcomplet: revenir avec qq lignes au dessus de l'étudiant en cours


* Divers
  . formsemestre_editwithmodules: confirmer suppression modules
      (et pour l'instant impossible si evaluations dans le module)

* Modules et UE optionnelles:
  . UE capitalisées: donc dispense possible dans semestre redoublé.
      traitable en n'inscrivant pas l'etudiant au modules
      de cette UE: faire interface utilisateur

  . page pour inscription d'un etudiant a un module
  . page pour visualiser les modules auquel un etudiant est inscrit,
    et le desinscrire si besoin.

  . ficheEtud  indiquer si inscrit au module sport

* Absences
  . EtatAbsences : verifier dates (en JS)
  . Listes absences pdf et listes groupes pdf + emargements (cf mail Nathalie)
  . absences par demi-journées sur EtatAbsencesDate (? à vérifier)
  . formChoixSemestreGroupe: utilisé par Absences/index_html
       a améliorer


* Notes et évaluations:
  . Exception "Not an OLE file": generer page erreur plus explicite
  . Dates evaluation: utiliser JS pour calendrier
  . Saisie des notes: si une note invalide, l'indiquer dans le listing (JS ?)
  . et/ou: notes invalides: afficher les noms des etudiants concernes
    dans le message d'erreur.
  . upload excel: message erreur peu explicite:
          * Feuille "Saisie notes", 17 lignes
          * Erreur: la feuille contient 1 notes invalides
          * Notes invalides pour les id: ['10500494']
          (pas de notes modifiées)
          Notes chargées. <<< CONTRADICTOIRE !!

  . recap complet semestre:
       Options:
           - choix groupes
           - critère de tri (moy ou alphab)
           - nb de chiffres a afficher

       + definir des "catégories" d'évaluations (eg "théorie","pratique")
         afin de n'afficher que des moyennes "de catégorie" dans
         le bulletin.

  . liste des absents à une eval et croisement avec BD absences

  . notes_evaluation_listenotes
    - afficher groupes, moyenne, #inscrits, #absents, #manquantes dans l'en-tete.
    - lien vers modif notes (selon role)

  . Export excel des notes d'evaluation: indiquer date, et autres infos en haut.
  . Génération PDF listes notes
  . Page recap notes moyennes par groupes (choisir type de groupe?)

  . (GEA) edition tableau notes avec tous les evals d'un module
        (comme notes_evaluation_listenotes mais avec tt les evals)


* Non prioritaire:
 . optimiser scolar_news_summary
 . recapitulatif des "nouvelles"
     - dernieres notes
     - changement de statuts (demissions,inscriptions)
     - annotations
     - entreprises

 . notes_table: pouvoir changer decision sans invalider tout le cache
 . navigation: utiliser Session pour montrer historique pages vues ?



------------------------------------------------------------------------


A faire:
 - fiche etud: code dec jury sur ligne 1
               si ancien, indiquer autorisation inscription sous le parcours

 - saisie notes: undo
 - saisie notes: validation
- ticket #18:
UE capitalisées: donc dispense possible dans semestre redoublé. Traitable en n'inscrivant pas l'etudiant aux modules de cette UE: faire interface utilisateur.

Prévoir d'entrer une UE capitalisée avec sa note, date d'obtention et un commentaire. Coupler avec la désincription aux modules (si l'étudiant a été inscrit avec ses condisciples).


 - Ticket #4: Afin d'éviter les doublons, vérifier qu'il n'existe pas d'homonyme proche lors de la création manuelle d'un étudiant.  (confirmé en ScoDoc 6, vérifier aussi les imports Excel)

 - Ticket #74: Il est possible d'inscrire un étudiant sans prénom par un import excel !!!

 - Ticket #64: saisir les absences pour la promo entiere (et pas par groupe). Des fois, je fais signer une feuille de presence en amphi a partir de la liste de tous les etudiants. Ensuite pour reporter les absents par groupe, c'est galere.

 - Ticket #62: Lors des exports Excel, le format des cellules n'est pas reconnu comme numérique sous Windows (pas de problèmes avec Macintosh et Linux).

A confirmer et corriger.

 - Ticket #75: On peut modifier une décision de jury (et les autorisations de passage associées), mais pas la supprimer purement et simplement.
Ajoute ce choix dans les "décisions manuelles".

 - Ticket #37: Page recap notes moyennes par groupes
Construire une page avec les moyennes dans chaque UE ou module par groupe d'étudiants.
Et aussi pourquoi pas ventiler par type de bac, sexe, parcours (nombre de semestre de parcours) ?
redemandé par CJ: à faire avant mai 2008 !

 - Ticket #75: Synchro Apogée: choisir les etudiants
Sur la page de syncho Apogée (formsemestre_synchro_etuds), on peut choisir (cocher) les étudiants Apogée à importer. mais on ne peut pas le faire s'ils sont déjà dans ScoDoc: il faudrait ajouter des checkboxes dans toutes les listes.

 - Ticket #9: Format des valeurs de marges des bulletins.
formsemestre_pagebulletin_dialog: marges en mm: accepter "2,5" et "2.5" et valider correctement le form !

 - Ticket #17: Suppression modules dans semestres
formsemestre_editwithmodules: confirmer suppression modules

 - Ticket #29: changer le stoquage des photos, garder une version HD.

 - bencher NotesTable sans calcul de moyennes. Etudier un cache des moyennes de modules.
 - listes d'utilisateurs (modules): remplacer menus par champs texte + completions javascript
 - documenter archives sur Wiki
 - verifier paquet Debian pour font pdf (reportab: helvetica ... plante si font indisponible)
 - chercher comment obtenir une page d'erreur correcte pour les pages POST
    (eg: si le font n'existe pas, archive semestre echoue sans page d'erreur)
    ? je ne crois pas que le POST soit en cause. HTTP status=500
     ne se produit pas avec Safari
 - essayer avec IE / Win98
 - faire apparaitre les diplômés sur le graphe des parcours
 - démission: formulaire: vérifier que la date est bien dans le semestre

 + graphe parcours: aligner en colonnes selon les dates (de fin), placer les diplomes
   dans la même colone que le semestre terminal.

 - modif gestion utilisateurs (donner droits en fct du dept. d'appartenance, bug #57)
 - modif form def. utilisateur (dept appartenance)
 - utilisateurs: source externe
 - archivage des semestres


        o-------------------------------------o

* Nouvelle gestion utilisateurs:
  objectif: dissocier l'authentification de la notion "d'enseignant"
  On a une source externe "d'utilisateurs" (annuaire LDAP ou base SQL)
  qui permet seulement de:
     - authentifier un utilisateur (login, passwd)
     - lister un utilisateur: login => firstname, lastname, email
     - lister les utilisateurs

  et une base interne ScoDoc "d'acteurs" (enseignants, administratifs).
  Chaque acteur est défini par:
     - actor_id, firstname, lastname
       date_creation, date_expiration,
       roles, departement,
       email (+flag indiquant s'il faut utiliser ce mail ou celui de
       l'utilisateur ?)
       state (on, off) (pour desactiver avant expiration ?)
       user_id (login)  => lien avec base utilisateur

  On offrira une source d'utilisateurs SQL (base partagée par tous les dept.
  d'une instance ScoDoc), mais dans la plupart des cas les gens utiliseront
  un annuaire LDAP.

  La base d'acteurs remplace ScoUsers. Les objets ScoDoc (semestres,
  modules etc) font référence à des acteurs (eg responsable_id est un actor_id).

  Le lien entre les deux ?
  Loger un utilisateur => authentification utilisateur + association d'un acteur
  Cela doit se faire au niveau d'un UserFolder Zope, pour avoir les
  bons rôles et le contrôle d'accès adéquat.
  (Il faut donc coder notre propre UserFolder).
  On ne peut associer qu'un acteur à l'état 'on' et non expiré.

  Opérations ScoDoc:
   - paramétrage: choisir et paramétrer source utilisateurs
   - ajouter utilisateur: choisir un utilisateur dans la liste
     et lui associer un nouvel acteur (choix des rôles, des dates)
     + éventuellement: synchro d'un ensemble d'utilisateurs, basé sur
     une requête (eg LDAP) précise (quelle interface utilisateur proposer ?)

   - régulièrement (cron) aviser quelqu'un (le chef) de l'expiration des acteurs.
   - changer etat d'un acteur (on/off)


        o-------------------------------------o

