[gepi-users] Suite Problèmes détectés sur la version Gepi-1.5.0 : affectation des élèves à une classe (classes/classes_ajout.php) et impression pdf des bulletins par le professeur principal (bulletin/index.php)

Hervé SEROL hserol at groupe-balzac.org
Lun 5 Nov 20:15:31 CET 2007


Une version 100% debuger, c'est pour quand??

Merci pour tout
herve

-----Message d'origine-----
De : gepi-users-bounces+hserol=groupe-balzac.org at lists.adullact.net
[mailto:gepi-users-bounces+hserol=groupe-balzac.org at lists.adullact.net] De
la part de Eric ABGRALL
Envoyé : lundi 5 novembre 2007 20:39
À : Liste des utilisateurs de gepi
Objet : Re: [gepi-users] Suite Problèmes détectés sur la version Gepi-1.5.0
: affectation des élèves à une classe (classes/classes_ajout.php) et
impression pdf des bulletins par le professeur principal
(bulletin/index.php)

Bonsoir,

Je confirme le Bug 1.

Je transmets sur la liste Devel le message.


Cordialement,

Eric ABGRALL
hugues MALHERBE a écrit :
> Bonsoir,
> 
> Ne sachant pas comment reprendre le fil d'un message déjà ouvert sur 
> cette liste, je crée un nouveau message. (Désolé !!).
> 
> Je remercie la personne qui a répondu rapidement à mon premier message.
> Mais les réponses données ne me satisfont pas.
> 
> Je pense avoir sincérement avoir trouver des problèmes à corriger dans 
> le logiciel.
> 
> Je reprends notamment le deuxième point :
> 
> Pas d'impression possible des bulletins au format pdf à partir du compte
du professeur principal de la classe.
> 
> Je suis reparti d'une nouvelle installation de Gepi 1.5.0 et j'ai créé
manuellement (sans import) les données suivantes :
> 
> Un professeur de mathématiques, un compte scolarité, un élève, une classe
> (le professeur principal de la classe est le professeur de mathématiques)
> J'ai saisi une évaluation notée sur la première période.
> J'ai enregistré la moyenne pour l'élève.
> J'ai paramétré à partir du compte admin les droits d'accès en cochant tous
les droits possibles pour le professeur principal.
> J'ai clos la première période à partir du compte scolarité.
> 
> Si je me connecte avec le compte scolarite, je peux générer le fichier pdf
des bulletins.
> Si je me connecte avec le compte professeur, je ne peux pas générer le
fichier pdf des bulletins.
> 
> 
> Je suis quasiment certain que le problème vient du fichier
bulletin/index.php entres les lignes 153 et 162.
> 
> En effet pour un compte professeur, la requête sql exécutée est : 
> 
> $requete_classe = mysql_query('SELECT c.* FROM '.$prefix_base.'classes 
> c, '.$prefix_base.'j_eleves_professeurs jep, 
> '.$prefix_base.'j_eleves_classes jec, '.
> $prefix_base.'periodes p WHERE ( jep.professeur = 
> "'.$_SESSION['login'].'" AND jep.login = jec.login AND jec.id_classe = 
> c.id AND p.id_classe = c.id ) GROUP
> BY p.id_classe ORDER BY c.classe');
> 
> while ($donner_classe = mysql_fetch_array($requete_classe))
> {
>  $sql_cpt_nb_eleve_1 = "SELECT count(eleves.login) FROM eleves, classes, 
> j_eleves_classes WHERE classes.id = ".$donner_classe['id_classe']." AND 
> j_eleves_cla
> sses.id_classe=classes.id AND j_eleves_classes.login=eleves.login GROUP 
> BY eleves.login";
>  $requete_cpt_nb_eleve_1 =  mysql_query($sql_cpt_nb_eleve_1);
>  $requete_cpt_nb_eleve = mysql_num_rows($requete_cpt_nb_eleve_1);
>   ?><option value="<?php echo $donner_classe['id_classe']; ?>" <?php 
> if(!empty($classe) and in_array($donner_classe['id_classe'], $classe)) { 
> ?>selected="sel
> ected"<?php } ?>><?php echo $donner_classe['nom_complet']." 
> (".$donner_classe['classe'].") "; ?>&nbsp;;&nbsp; Eff : <?php echo 
> $requete_cpt_nb_eleve; ?></opt
> ion>
> 
> Or le champ $donner_classe['id_classe'] n'existe pas car la table 
> "classes" n' a pas de colonne nommée 'id_classe'. La bonne colonne étant 
> 'id'.
> 
> Si le niveau de debuggage de php permet d'afficher les warning, un 
> warning (visible en affichant le source de la page html générée par le 
> php) est effectivement affichée sur la ligne 159 :
> 
> <b>Warning</b>:  mysql_num_rows(): supplied argument is not a valid MySQL
result resource in <b>/var/www/html/gepibis/bulletin/index.php</b> on line
<b>159</b><br />
> 
> Une correction est donc nécessaire.
> Et la correction que j'ai proposée dans le post précédent fonctionne, je
l'ai testée.
> 
> 
> Concernant les droits d'accès présents dans la table "droits", je ne crois
pas qu'ils sont positionnés à partir de la commande 
> "droits d'accès" du compte admin. 
> Les droits d'accès du compte admin mettent à jour la table "setting".
> Les accès aux différents fichiers de l'application selon le statut de
l'utilisateur issus de la table "droits" sont initialisés 
> uniquement lors de l'installation de la base. (à partir du fichier
sql/data_gepi.sql)
> Et je pense donc que 2 modifications sont nécessaires dans ce fichier :
> lignes 467 et 468 :
> 
> INSERT INTO `droits` VALUES ('/bulletin/param_bull_pdf.php', 'V', 'F',
'F', 'V', 'F', 'F', 'F', 'page de gestion des parametres du bulletin pdf',
'');
> INSERT INTO `droits` VALUES
('/bulletin/bulletin_pdf_avec_modele_classe.php', 'V', 'F', 'F', 'V', 'F',
'F', 'F', 'page generant le bulletin pdf en fonction d
> u modele affecte a la classe ', '');
> 
> Il faut changer la troisième colonne à la valeur 'V' si l'on souhaite que
le professeur principal puisse imprimer les bulletins en pdf ainsi
qu'accéder 
> au paramètrage pdf.
> 
> (Remarque : la confusion vient peut être du fait qu'il n'y a pas de champ
spécifique pour le professeur principal dans la table droits)
> 
> 
> Dernier point :
> J'ai détecté également un autre problème : lors de l'impression des
bulletins au format pdf avec le modèle d'impression "affiche_tout".
> Il y a un problème au niveau du paramètre "Graphique de niveau". 
> Si ce paramètre est positionné (ce qui est le cas dans l'état initial du
modèle "affiche tout"), et sous certaines conditions
> que je n'ai pas élucidées, on obtient des divisions par 0 dans le fichier
bulletin/bulletin_pdf_avec_modele_classe.php en lignes 413 et 428, qui
> conduisent à un fichier pdf vide (sans aucun bulletin).
> 
> J'ai remarqué que le problème provient d'un test manquant en ligne 2656 :
> $pdf->DiagBarre($X_note_moy_app+$largeur_utilise, $Y_note_moy_app,
$largeur_niveau[$classe_id], $hauteur_entete_moyenne_general[$classe_id],
$data_g
> rap_classe[$id_periode][$id_classe_selection], $place_eleve);
> 
> Pour éviter la division par zéro dans la fonction DiagBarre, il faut
tester au préalable que le paramètre 
> rap_classe[$id_periode][$id_classe_selection] est convenable.
> C'est à dire,effectuer le test suivant :
> 
> if (array_sum($data_grap[$id_periode][$id_groupe_graph]) != 0) {
>   $pdf->DiagBarre($X_note_moy_app+$largeur_utilise,
$Y_decal-($espace_entre_matier/2), $largeur_niveau[$classe_id],
$espace_entre_matier, $data_grap[$id_peri
> ode][$id_groupe_graph], $place_eleve);
> }
> 
> Un test similaire est bien effectué  lors d'un précédent appel à la
fonction DiagBarre dans le même fichier (en ligne 2456).
> 
> En espérant que vous prendrez en compte ces différentes remarques.
> 
> Je suis certain de mes tests. Ils sont facilement reproductibles.
> Et les corrections que j'ai apportées fonctionnent.
> 
> Amicalement.
> Hugues MALHERBE.
>

_______________________________________________
gepi-users mailing list
gepi-users at lists.adullact.net
https://lists.adullact.net/mailman/listinfo/gepi-users




Plus d'informations sur la liste de diffusion gepi-users