From b3a93ebcbdbfd4965b9c4412a3d4726a30444f56 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Jun 2012 21:34:31 +0200 Subject: [PATCH 0001/1150] =?UTF-8?q?Affichage=20des=20coefficients=20pour?= =?UTF-8?q?=20chaque=20enseignement=20afin=20de=20ne=20pas=20imprimer=20av?= =?UTF-8?q?ec=20des=20coef=20incorrects=20ou=20avec=20des=20enseignements?= =?UTF-8?q?=20oubli=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_index.php | 52 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 51 insertions(+), 1 deletion(-) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index 5640d498b..817983c83 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -868,7 +868,57 @@ function ToutDeCocher() { echo "\n"; - echo "

Classe de ".get_class_from_id($tab_id_classe[$i])."

\n"; + $classe_courante=get_class_from_id($tab_id_classe[$i]); + echo "

Classe de ".$classe_courante."

\n"; + + echo "
\n"; + echo "
\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $alt=1; + $tmp_groups = get_groups_for_class($tab_id_classe[$i],"","n"); + foreach($tmp_groups as $tmp_current_group) { + $sql="SELECT * FROM j_groupes_visibilite WHERE id_groupe='".$tmp_current_group['id']."' AND domaine='bulletins' AND visible='n';"; + $test_visu=mysql_query($sql); + if(mysql_num_rows($test_visu)==0) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "\n"; + } + } + unset($tmp_groups); + echo "
EnseignementClassesEnseignant(s)Coefficient
\n"; + echo $tmp_current_group['name']."\n"; + echo "\n"; + $tab_champs=array('profs'); + $tmp_current_group_complement=get_group($tmp_current_group['id'] ,$tab_champs); + echo $tmp_current_group_complement['profs']['proflist_string']."\n"; + echo "\n"; + echo $tmp_current_group['classlist_string']."\n"; + echo "\n"; + $sql="SELECT coef FROM j_groupes_classes WHERE id_classe='".$tab_id_classe[$i]."' AND id_groupe='".$tmp_current_group['id']."';"; + $res_coef=mysql_query($sql); + if(mysql_num_rows($res_coef)>0) { + $tmp_coef=mysql_result($res_coef, 0, 'coef'); + echo $tmp_coef; + } + echo "
\n"; + + echo "
\n"; + echo "
\n"; echo "\n"; echo "\n"; From 164b6b968502bbcd566dc2757b5e48f594c3c3d4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Jun 2012 21:39:52 +0200 Subject: [PATCH 0002/1150] =?UTF-8?q?Acc=C3=A8s=20=C3=A0=20la=20modif=20de?= =?UTF-8?q?s=20coeff=20pour=20les=20statuts=20admin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_index.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index 817983c83..386c29ac3 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -908,7 +908,12 @@ function ToutDeCocher() { $res_coef=mysql_query($sql); if(mysql_num_rows($res_coef)>0) { $tmp_coef=mysql_result($res_coef, 0, 'coef'); - echo $tmp_coef; + if($_SESSION['statut']=='administrateur') { + echo "".$tmp_coef.""; + } + else { + echo $tmp_coef; + } } echo "\n"; echo "\n"; From c3d07c0c3fbd5a6e99c4aa126f22e89cae0873c2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Jun 2012 17:37:27 +0200 Subject: [PATCH 0003/1150] =?UTF-8?q?Ajout=20de=20types=20d'absences=20li?= =?UTF-8?q?=C3=A9s=20aux=20r=C3=A9gimes=20des=20=C3=A9l=C3=A8ves=20pour=20?= =?UTF-8?q?la=20cantine.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/admin/admin_types_absences.php | 1 + mod_abs2/saisir_groupe.php | 289 +++++++++++++----- .../classes/gepi/AbsenceEleveType.php | 2 + 3 files changed, 217 insertions(+), 75 deletions(-) diff --git a/mod_abs2/admin/admin_types_absences.php b/mod_abs2/admin/admin_types_absences.php index 0bf76d0dd..a7a5d1d53 100644 --- a/mod_abs2/admin/admin_types_absences.php +++ b/mod_abs2/admin/admin_types_absences.php @@ -220,6 +220,7 @@ --> + \n"; + echo "\n"; + + // - modèle de couleurs //if($temoin_imageps=='oui') {$checked=" checked='yes'";}else{$checked="";} diff --git a/visualisation/draw_graphe.php b/visualisation/draw_graphe.php index 90a4e352e..583820a85 100644 --- a/visualisation/draw_graphe.php +++ b/visualisation/draw_graphe.php @@ -695,10 +695,42 @@ function writinfo($chemin,$type,$chaine){ //===================================================================== //Tracé des courbes: + $afficher_pointille=mb_substr(getPref($_SESSION['login'], 'graphe_pointille',''),0,1); + if($afficher_pointille=='') { + $afficher_pointille=mb_substr(getSettingValue('graphe_pointille'),0,1); + } + + //$white = imagecolorallocate($img, 255, 255, 255); //for($k=1;$k<=$nb_series;$k++){ $epaisseur = $epaisseur_traits; for($k=1;$k<=$nb_series_bis;$k++){ + + $style_pointille = Array( + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + $couleureleve[$k], + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT, + IMG_COLOR_TRANSPARENT + ); + + $style_plein = Array( + $couleureleve[$k], + $couleureleve[$k] + ); + + //Placement des points de la courbe: for($i=1;$i<$nbMat+1;$i++){ $x1=$x[$i]; @@ -716,13 +748,28 @@ function writinfo($chemin,$type,$chaine){ } //Tracé de la courbe: + //$x_prec[0]=-1; + //$y_prec[0]=-1; imagesetthickness($img,$epaisseur); for($i=1;$i<$nbMat;$i++){ $x1=$x[$i]; $x2=$x[$i+1]; if(($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+1]!=-1)){ + //$x_prec[$y+1]=$x2; + //$y_prec[$y+1]=$ycourbe[$k][$i+1]; imageLine($img,$x1,$ycourbe[$k][$i],$x2,$ycourbe[$k][$i+1],$couleureleve[$k]); } + elseif(($afficher_pointille!='n')&&($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+2]!=-1)) { + /* + // imageDashedLine() est bugguée... on peut récupérer des hachures de 8mm de hauteur pour 2mm de large + imagesetthickness($img,1); + imageDashedLine($img,$x[$i+2],$ycourbe[$k][$i+2],$x1,$ycourbe[$k][$i],$couleureleve[$k]); + imagesetthickness($img,$epaisseur); + */ + imagesetstyle($img, $style_pointille); + imageLine($img,$x1,$ycourbe[$k][$i],$x[$i+2],$ycourbe[$k][$i+2],IMG_COLOR_STYLED); + imagesetstyle($img, $style_plein); + } } if($epaisseur_croissante_traits_periodes=='oui') { $epaisseur+=1; diff --git a/visualisation/draw_graphe_svg.php b/visualisation/draw_graphe_svg.php index 6c2f2fbd8..215d5ebba 100644 --- a/visualisation/draw_graphe_svg.php +++ b/visualisation/draw_graphe_svg.php @@ -876,6 +876,12 @@ function rvb2hexa($composante){ //Tracé des courbes: + + $afficher_pointille=mb_substr(getPref($_SESSION['login'], 'graphe_pointille',''),0,1); + if($afficher_pointille=='') { + $afficher_pointille=mb_substr(getSettingValue('graphe_pointille'),0,1); + } + echo "\n\n"; //for($k=1;$k<=$nb_series;$k++){ @@ -915,7 +921,9 @@ function rvb2hexa($composante){ $xtmp2=$x2; $ytmp2=$ycourbe[$k][$i+1]; echo "\n"; - + } + elseif(($afficher_pointille!='n')&&($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+2]!=-1)) { + echo "\n"; } } } From 3e164b807e10d53b4d59a3f3e3ef9467ae4762f4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 1 Jul 2012 16:00:57 +0200 Subject: [PATCH 0029/1150] =?UTF-8?q?Prise=20en=20compte=20d'une=20nouvell?= =?UTF-8?q?e=20branche=20pour=20les=20m=C3=A0j.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilitaires/maj.php | 5 +++++ utilitaires/maj.sh | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/utilitaires/maj.php b/utilitaires/maj.php index e14bc97c8..6f9f343fe 100644 --- a/utilitaires/maj.php +++ b/utilitaires/maj.php @@ -241,6 +241,11 @@ require 'updates/160_to_161.inc.php'; } + if (($force_maj == 'yes') or (quelle_maj("1.6.2"))) { + require 'updates/161_to_dev.inc.php'; + //require 'updates/161_to_162.inc.php'; + } + // Mise à jour du numéro de version saveSetting("version", $gepiVersion); saveSetting("versionRc", $gepiRcVersion); diff --git a/utilitaires/maj.sh b/utilitaires/maj.sh index d8db570db..bebca9ea9 100644 --- a/utilitaires/maj.sh +++ b/utilitaires/maj.sh @@ -146,6 +146,11 @@ Exemples d'utilisation : } + if ($force || $start_from == '1.6.1') { + require './updates/161_to_dev.inc.php'; + + } + // Nettoyage pour envoyer le résultat dans la console $result = str_replace('
',"\n",$result); $result = str_replace('
',"\n",$result); From 7f3812aafb89982f7ecfb95158ead88a6b6e0330 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 1 Jul 2012 16:01:03 +0200 Subject: [PATCH 0030/1150] =?UTF-8?q?Prise=20en=20compte=20des=20num=C3=A9?= =?UTF-8?q?ros=20de=20tel=20des=20=C3=A9l=C3=A8ves.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backup/donnees_test/data_test.sql | 2 +- eleves/modify_eleve.php | 60 ++++- gestion/param_gen.php | 105 ++++++++- responsables/maj_import.php | 2 +- responsables/maj_import3.php | 264 +++++++++++++++++++++- sql/data_gepi.sql | 2 +- sql/structure_gepi.sql | 8 +- utilitaires/updates/access_rights.inc.php | 2 +- 8 files changed, 425 insertions(+), 20 deletions(-) diff --git a/backup/donnees_test/data_test.sql b/backup/donnees_test/data_test.sql index 3a7c1ecf0..f54420475 100644 --- a/backup/donnees_test/data_test.sql +++ b/backup/donnees_test/data_test.sql @@ -608,7 +608,7 @@ INSERT INTO droits values ('/mod_annees_anterieures/admin.php', 'V', 'F', 'F', INSERT INTO droits values ('/mod_annees_anterieures/nettoyer_annee_anterieure.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Suppression de données antérieures', ''); INSERT INTO droits values ('/mod_annees_anterieures/archivage_aid.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Fiches projets', '1'); INSERT INTO droits values ('/responsables/maj_import1.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); -INSERT INTO droits values ('/responsables/maj_import2.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); +INSERT INTO droits values ('/responsables/maj_import2.php', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); INSERT INTO droits values ('/mod_annees_anterieures/corriger_ine.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Correction d INE dans la table annees_anterieures', ''); INSERT INTO droits values ('/mod_annees_anterieures/liste_eleves_ajax.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Recherche d élèves', ''); INSERT INTO droits values ('/mod_absences/lib/graph_double_ligne_fiche.php', 'V', 'V', 'V', 'F', 'F', 'F', 'V', 'F', 'Graphique de la fiche élève', '1'); diff --git a/eleves/modify_eleve.php b/eleves/modify_eleve.php index ad1e4e1db..4c4d7860e 100644 --- a/eleves/modify_eleve.php +++ b/eleves/modify_eleve.php @@ -44,6 +44,13 @@ unset($birth_day); $birth_day = isset($_POST["birth_day"]) ? $_POST["birth_day"] : NULL; +unset($reg_tel_pers); +$reg_tel_pers = isset($_POST["reg_tel_pers"]) ? $_POST["reg_tel_pers"] : NULL; +unset($reg_tel_port); +$reg_tel_port = isset($_POST["reg_tel_port"]) ? $_POST["reg_tel_port"] : NULL; +unset($reg_tel_prof); +$reg_tel_prof = isset($_POST["reg_tel_prof"]) ? $_POST["reg_tel_prof"] : NULL; + //Gestion de la date de sortie de l'établissement unset($date_sortie_jour); $date_sortie_jour = isset($_POST["date_sortie_jour"]) ? $_POST["date_sortie_jour"] : "00"; @@ -460,7 +467,7 @@ ele_id = '".$ele_id."' "); */ - $reg_data1 = mysql_query("INSERT INTO eleves SET + $sql="INSERT INTO eleves SET no_gep = '".$reg_no_nat."', nom='".$reg_nom."', prenom='".$reg_prenom."', @@ -469,8 +476,11 @@ sexe='".$reg_sexe."', naissance='".$reg_naissance."', elenoet = '".$reg_no_gep."', - ele_id = '".$ele_id."' - "); + ele_id = '".$ele_id."'"; + if(isset($reg_tel_pers)) {$sql.=",tel_pers='".$reg_tel_pers."'";} + if(isset($reg_tel_port)) {$sql.=",tel_port='".$reg_tel_port."'";} + if(isset($reg_tel_prof)) {$sql.=",tel_prof='".$reg_tel_prof."'";} + $reg_data1 = mysql_query(); // Régime: $reg_data3 = mysql_query("INSERT INTO j_eleves_regime SET login='$reg_login', doublant='-', regime='d/p'"); @@ -496,6 +506,10 @@ // C'est une mise à jour pour un élève qui existait déjà dans la table 'eleves'. $sql="UPDATE eleves SET date_sortie = '$date_de_sortie_eleve', no_gep = '$reg_no_nat', nom='$reg_nom',prenom='$reg_prenom',sexe='$reg_sexe',naissance='".$reg_naissance."', ereno='".$reg_resp1."', elenoet = '".$reg_no_gep."'"; + if(isset($reg_tel_pers)) {$sql.=",tel_pers='".$reg_tel_pers."'";} + if(isset($reg_tel_port)) {$sql.=",tel_port='".$reg_tel_port."'";} + if(isset($reg_tel_prof)) {$sql.=",tel_prof='".$reg_tel_prof."'";} + $temoin_mon_compte_mais_pas_de_compte_pour_cet_eleve="n"; $sql_test="SELECT email FROM utilisateurs WHERE login='$eleve_login' AND statut='eleve';"; $res_email_utilisateur_ele=mysql_query($sql_test); @@ -953,6 +967,10 @@ $reg_no_gep = mysql_result($call_eleve_info, "0", "elenoet"); $reg_ele_id = mysql_result($call_eleve_info, "0", "ele_id"); + $reg_tel_pers = mysql_result($call_eleve_info, "0", "tel_pers"); + $reg_tel_port = mysql_result($call_eleve_info, "0", "tel_port"); + $reg_tel_prof = mysql_result($call_eleve_info, "0", "tel_prof"); + //$call_etab = mysql_query("SELECT e.* FROM etablissements e, j_eleves_etablissements j WHERE (j.id_eleve='$eleve_login' and e.id = j.id_etablissement)"); $id_etab=0; if($reg_no_gep!="") { @@ -1671,6 +1689,36 @@ function redimensionne_image($photo){ echo "\n"; echo "\n"; + if(getSettingAOui('ele_tel_pers')) { + echo "
\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + if(!getSettingAOui('ele_tel_port')) { + // Par défaut, si on n'a pas enregistré la préférence dans Configuration générale, on affiche le tel port. + } + else { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + if(getSettingAOui('ele_tel_prof')) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; echo "\n"; //Date de sortie de l'établissement - echo ""; + echo ""; echo "\n"; } + if(((getSettingValue('ele_tel_pers')=='yes')&&(getSettingAOui('ele_tel_pers_signaler_modif')))|| + ((getSettingValue('ele_tel_port')=='yes')&&(getSettingAOui('ele_tel_port_signaler_modif')))|| + ((getSettingValue('ele_tel_prof')=='yes')&&(getSettingAOui('ele_tel_prof_signaler_modif'))) + ) { + echo "\n"; + } + echo "\n"; echo "\n"; echo "\n"; @@ -2460,6 +2562,9 @@ function modifcase(mode){ $affiche[12]=nettoyer_caracteres_nom($lig->MEL, "an", " @._-", ""); + $affiche[13]=nettoyer_caracteres_nom($lig->TEL_PERS, "an", " @._-", ""); + $affiche[14]=nettoyer_caracteres_nom($lig->TEL_PORT, "an", " @._-", ""); + $affiche[15]=nettoyer_caracteres_nom($lig->TEL_PROF, "an", " @._-", ""); //$sql="SELECT * FROM eleves WHERE elenoet='$affiche[4]'"; $sql="SELECT * FROM eleves WHERE (elenoet='$affiche[4]' OR elenoet='".sprintf("%05d",$affiche[4])."')"; @@ -2505,7 +2610,10 @@ function modifcase(mode){ //($lig_ele->lieu_naissance!=$affiche[11])|| ($lig_ele->lieu_naissance!=stripslashes($affiche[11]))|| ($lig_ele->no_gep!=$affiche[7])|| - (($test_diff_email=="y")&&($lig_ele->email!=$affiche[12])) + (($test_diff_email=="y")&&($lig_ele->email!=$affiche[12]))|| + ((getSettingAOui('ele_tel_pers_signaler_modif'))&&($lig_ele->tel_pers!=$affiche[13]))|| + ((getSettingAOui('ele_tel_port_signaler_modif'))&&($lig_ele->tel_port!=$affiche[14]))|| + ((getSettingAOui('ele_tel_prof_signaler_modif'))&&($lig_ele->tel_prof!=$affiche[15])) ){ $temoin_modif='y'; $cpt_modif++; @@ -2522,7 +2630,10 @@ function modifcase(mode){ ($lig_ele->sexe!=$affiche[2])|| ($lig_ele->naissance!=$new_date)|| ($lig_ele->no_gep!=$affiche[7])|| - (($test_diff_email=="y")&&($lig_ele->email!=$affiche[12])) + (($test_diff_email=="y")&&($lig_ele->email!=$affiche[12]))|| + ((getSettingAOui('ele_tel_pers_signaler_modif'))&&($lig_ele->tel_pers!=$affiche[13]))|| + ((getSettingAOui('ele_tel_port_signaler_modif'))&&($lig_ele->tel_port!=$affiche[14]))|| + ((getSettingAOui('ele_tel_prof_signaler_modif'))&&($lig_ele->tel_prof!=$affiche[15])) ){ $temoin_modif='y'; $cpt_modif++; @@ -2921,6 +3032,86 @@ function modifcase(mode){ echo "\n"; } + + // 20120630 + + if(((getSettingValue('ele_tel_pers')=='yes')&&(getSettingAOui('ele_tel_pers_signaler_modif')))|| + ((getSettingValue('ele_tel_port')=='yes')&&(getSettingAOui('ele_tel_port_signaler_modif')))|| + ((getSettingValue('ele_tel_prof')=='yes')&&(getSettingAOui('ele_tel_prof_signaler_modif'))) + ) { + + echo "\n"; + } + + // Classe //echo "\n"; + } + + echo "\n"; @@ -3264,6 +3493,17 @@ function modifcase(mode){ $sql.=", email='".mysql_real_escape_string($lig->MEL)."'"; } + // 20120630 + if((getSettingAOui('ele_tel_pers'))&&(getSettingAOui('ele_tel_pers_signaler_modif'))) { + $sql.=", tel_pers='".mysql_real_escape_string($lig->TEL_PERS)."'"; + } + if((getSettingAOui('ele_tel_port'))&&(getSettingAOui('ele_tel_port_signaler_modif'))) { + $sql.=", tel_port='".mysql_real_escape_string($lig->TEL_PORT)."'"; + } + if((getSettingAOui('ele_tel_prof'))&&(getSettingAOui('ele_tel_prof_signaler_modif'))) { + $sql.=", tel_prof='".mysql_real_escape_string($lig->TEL_PROF)."'"; + } + // Je ne pense pas qu'on puisse corriger un ELENOET manquant... // Si on fait des imports avec Sconet, l'ELENOET n'est pas vide. // Et l'interface ne permet pas actuellement de saisir/corriger un ELE_ID @@ -3282,7 +3522,7 @@ function modifcase(mode){ $sql.=" WHERE ele_id='".$lig->ELE_ID."';"; //echo "============
"; - //echo "$sql
"; + echo "$sql
"; info_debug($sql); $update=mysql_query($sql); if($update){ @@ -3340,7 +3580,7 @@ function modifcase(mode){ $sql.=" WHERE elenoet='".$lig->ELENOET."';"; //echo "============
"; - //echo "$sql
"; + echo "$sql
"; info_debug($sql); $update=mysql_query($sql); if($update){ @@ -3622,6 +3862,18 @@ function modifcase(mode){ $sql.=", lieu_naissance='".$lig->LIEU_NAISSANCE."'"; } $sql.=", email='".$lig->MEL."'"; + + // 20120630 + if((getSettingAOui('ele_tel_pers'))&&(getSettingAOui('ele_tel_pers_signaler_modif'))) { + $sql.=", tel_pers='".mysql_real_escape_string($lig->TEL_PERS)."'"; + } + if((getSettingAOui('ele_tel_port'))&&(getSettingAOui('ele_tel_port_signaler_modif'))) { + $sql.=", tel_port='".mysql_real_escape_string($lig->TEL_PORT)."'"; + } + if((getSettingAOui('ele_tel_prof'))&&(getSettingAOui('ele_tel_prof_signaler_modif'))) { + $sql.=", tel_prof='".mysql_real_escape_string($lig->TEL_PROF)."'"; + } + $sql.=";"; info_debug($sql); $insert=mysql_query($sql); diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 190d3d190..d0e97d1c4 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -504,7 +504,7 @@ INSERT INTO droits VALUES ('/mod_annees_anterieures/popup_annee_anterieure.php', INSERT INTO droits VALUES ('/mod_annees_anterieures/admin.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Activation/désactivation du module données antérieures', ''); INSERT INTO droits VALUES ('/mod_annees_anterieures/nettoyer_annee_anterieure.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Suppression de données antérieures', ''); INSERT INTO droits VALUES ('/responsables/maj_import1.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); -INSERT INTO droits VALUES ('/responsables/maj_import2.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); +INSERT INTO droits VALUES ('/responsables/maj_import2.php', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', ''); INSERT INTO droits VALUES ('/mod_annees_anterieures/corriger_ine.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Correction d INE dans la table annees_anterieures', ''); INSERT INTO droits VALUES ('/mod_annees_anterieures/liste_eleves_ajax.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Recherche d élèves', ''); INSERT INTO droits VALUES ('/mod_absences/lib/graph_double_ligne_fiche.php', 'V', 'V', 'V', 'F', 'F', 'F', 'V', 'F', 'Graphique de la fiche élève', '1'); diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index 568ab2069..1053ed740 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -56,6 +56,9 @@ CREATE TABLE eleves ereno VARCHAR(50) NOT NULL COMMENT 'Plus utilise', ele_id VARCHAR(10) DEFAULT '' NOT NULL COMMENT 'cle utilise par Sconet dans ses fichiers xml', email VARCHAR(255) DEFAULT '' NOT NULL COMMENT 'Courriel de l\'eleve', + tel_pers varchar(255) DEFAULT '' NOT NULL COMMENT 'Telephone personnel de l\'eleve', + tel_port varchar(255) DEFAULT '' NOT NULL COMMENT 'Telephone portable de l\'eleve', + tel_prof varchar(255) DEFAULT '' NOT NULL COMMENT 'Telephone professionnel (?) de l\'eleve', id_eleve INTEGER(11) NOT NULL AUTO_INCREMENT COMMENT 'cle primaire autoincremente', date_sortie DATETIME COMMENT 'Timestamp de sortie de l\'élève de l\'établissement (fin d\'inscription)', mef_code BIGINT(20) COMMENT 'code mef de la formation de l\'eleve', @@ -732,7 +735,10 @@ ELEOPT10 varchar(40) NOT NULL default '', ELEOPT11 varchar(40) NOT NULL default '', ELEOPT12 varchar(40) NOT NULL default '', LIEU_NAISSANCE varchar(50) NOT NULL default '', -MEL varchar(255) NOT NULL default '' +MEL varchar(255) NOT NULL default '', +TEL_PERS varchar(255) NOT NULL default '', +TEL_PORT varchar(255) NOT NULL default '', +TEL_PROF varchar(255) NOT NULL default '' ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci ; DROP TABLE IF EXISTS temp_abs_import; diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index efa696fa6..3c5fc2a24 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -432,7 +432,7 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits VALUES ('/mod_annees_anterieures/archivage_aid.php', 'V', 'F', 'F', 'F', 'F', 'F','F', 'F', 'Fiches projets', '1');"; $tab_req[] = "INSERT INTO droits VALUES ('/responsables/maj_import1.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', '');"; -$tab_req[] = "INSERT INTO droits VALUES ('/responsables/maj_import2.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', '');"; +$tab_req[] = "INSERT INTO droits VALUES ('/responsables/maj_import2.php', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Mise à jour depuis Sconet', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_annees_anterieures/corriger_ine.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Correction d INE dans la table annees_anterieures', '');"; $tab_req[] = "INSERT INTO `droits` VALUES ('/mod_annees_anterieures/liste_eleves_ajax.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Recherche d élèves', '');"; From 098fee05b830576cdd5a4cb26a6bfbaac07f340d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 1 Jul 2012 17:06:55 +0200 Subject: [PATCH 0031/1150] Suppression d'affichages de debug --- responsables/maj_import3.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index 1174da5bc..e9b8d3ed0 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -3522,7 +3522,7 @@ function modifcase(mode){ $sql.=" WHERE ele_id='".$lig->ELE_ID."';"; //echo "============
"; - echo "$sql
"; + //echo "$sql
"; info_debug($sql); $update=mysql_query($sql); if($update){ @@ -3580,7 +3580,7 @@ function modifcase(mode){ $sql.=" WHERE elenoet='".$lig->ELENOET."';"; //echo "============
"; - echo "$sql
"; + //echo "$sql
"; info_debug($sql); $update=mysql_query($sql); if($update){ From 4506c044bdad307f2c55e0c87da39732e8601956 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Jul 2012 14:07:33 +0200 Subject: [PATCH 0032/1150] =?UTF-8?q?Ajout=20de=20fonctions=20pour=20r?= =?UTF-8?q?=C3=A9cup=C3=A9rer=20la=20liste=20des=20tel=20resp=20et=20?= =?UTF-8?q?=C3=A9l=C3=A8ve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 135 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 135 insertions(+) diff --git a/lib/share.inc.php b/lib/share.inc.php index 998e33cb7..2935d596b 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -5543,4 +5543,139 @@ function correction_notices_cdt_formules_maths($eff_parcours) { } echo "

$nb_corr corrections effectuées sur 'ct_devoirs_entry'.

"; } + + +/** Fonction destinée à retourner un tableau PHP des numéros de téléphone responsable (et élève) + * + * @param string $ele_login Login de l'élève + * + * @return array Tableau PHP des numéros de tel. + */ +function get_tel_resp_ele($ele_login) { + $tab_tel=array(); + + $cpt_resp=0; + + $sql="SELECT rp.*, r.resp_legal, e.tel_pers AS ele_tel_pers, e.tel_port AS ele_tel_port, e.tel_prof AS ele_tel_prof FROM resp_pers rp, responsables2 r, eleves e WHERE e.login='$ele_login' AND e.ele_id=r.ele_id AND r.pers_id=rp.pers_id AND (resp_legal='1' OR resp_legal='2') ORDER BY r.resp_legal;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + $tab_tel['responsable'][$cpt_resp]=array(); + $tab_tel['responsable'][$cpt_resp]['resp_legal']=$lig->resp_legal; + $tab_tel['responsable'][$cpt_resp]['civ_nom_prenom']=$lig->civilite." ".casse_mot($lig->nom,'maj')." ".casse_mot($lig->prenom,'majf2'); + if($lig->tel_pers!='') { + $tab_tel['responsable'][$cpt_resp]['tel_pers']=$lig->tel_pers; + } + if($lig->tel_port!='') { + $tab_tel['responsable'][$cpt_resp]['tel_port']=$lig->tel_port; + } + if($lig->tel_prof!='') { + $tab_tel['responsable'][$cpt_resp]['tel_prof']=$lig->tel_prof; + } + + // On va remplir plusieurs fois les champs suivants (mais avec les mêmes valeurs) s'il y a plusieurs responsables + if((getSettingAOui('ele_tel_pers'))&&($lig->ele_tel_pers!='')) { + $tab_tel['eleve']['tel_pers']=$lig->ele_tel_pers; + } + if((getSettingAOui('ele_tel_port'))&&($lig->ele_tel_port!='')) { + $tab_tel['eleve']['tel_port']=$lig->ele_tel_port; + } + if((getSettingAOui('ele_tel_prof'))&&($lig->ele_tel_prof!='')) { + $tab_tel['eleve']['tel_prof']=$lig->ele_tel_prof; + } + $cpt_resp++; + } + } + + $sql="SELECT rp.*, r.resp_legal FROM resp_pers rp, responsables2 r, eleves e WHERE e.login='$ele_login' AND e.ele_id=r.ele_id AND r.pers_id=rp.pers_id AND resp_legal='0' ORDER BY rp.civilite, rp.nom, rp.prenom;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + $tab_tel['responsable'][$cpt_resp]=array(); + $tab_tel['responsable'][$cpt_resp]['resp_legal']=$lig->resp_legal; + $tab_tel['responsable'][$cpt_resp]['civ_nom_prenom']=$lig->civilite." ".casse_mot($lig->nom,'maj')." ".casse_mot($lig->prenom,'majf2'); + if($lig->tel_pers!='') { + $tab_tel['responsable'][$cpt_resp]['tel_pers']=$lig->tel_pers; + } + if($lig->tel_port!='') { + $tab_tel['responsable'][$cpt_resp]['tel_port']=$lig->tel_port; + } + if($lig->tel_prof!='') { + $tab_tel['responsable'][$cpt_resp]['tel_prof']=$lig->tel_prof; + } + $cpt_resp++; + } + } + + return $tab_tel; +} + +/** Fonction destinée à retourner un tableau HTML des numéros de téléphone responsable (et élève) + * + * @param string $ele_login Login de l'élève + * + * @return array Tableau HTML des numéros de tel. + */ +function tableau_tel_resp_ele($ele_login) { + $retour=""; + $tab_tel=get_tel_resp_ele($ele_login); + + $tab_style[1]="impair"; + $tab_style[-1]="pair"; + + if((count($tab_tel['responsable'])>0)||(count($tab_tel['eleve'])>0)) { + $retour.="
diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index ae9e6ca81..4d0085cf4 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -479,8 +479,10 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev //**************** TABLEAU DES ELEVES ***************** +// 20120618 $tab_regimes=array(); $tab_regimes_eleves=array(); +$tab_types_abs_regimes=array(); $afficheEleve = array(); $elv = 0; foreach($eleve_col as $eleve) { @@ -673,31 +675,16 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } // 20120618 -$chaine_coche_decoche_regime=""; -$js_var_coche_decoche_regime="var etat_cocher_regime=new Array();\n"; -$js_var_coche_decoche_regime.="var nom_regime=new Array();\n"; +$chaine_effectifs_regimes=""; +$indice_tab_regime=array(); if(count($tab_regimes)>0) { - - $chaine_coche_decoche_regime.=""; } //============================================== @@ -974,6 +961,66 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev

+ + \n"; + //echo "\n"; + echo "
\n"; + echo "\n"; + echo " \n"; + for($loop=0;$loop".count($tab_regimes_eleves[$tab_regimes[$loop]])." ".$tab_regimes[$loop]."\n"; + } + echo " \n"; + echo "\n"; + $alt=1; + foreach ($afficheEleve['0']['type_autorises'][$indice_creneau_courant] as $type) { + if($type['modeInterface'] == AbsenceEleveType::MODE_INTERFACE_CHECKBOX_HIDDEN_REGIME) { + if(!in_array($type['type'], $tab_types_abs_regimes)) { + $tab_types_abs_regimes[]=$type['type']; + if($js_chaine_tab_types_abs_regimes!="") { + $js_chaine_tab_types_abs_regimes.=", "; + } + $js_chaine_tab_types_abs_regimes.=$type['type']; + } + $alt=$alt*(-1); + //echo "\n"; + if($alt==1) { + echo "\n"; + } + else { + echo "\n"; + } + echo " \n"; + for($loop=0;$loop\n"; + echo " \n"; + echo " \n"; + echo " \n"; + } + echo " \n"; + echo "\n"; + } + } + echo "\n"; + echo " \n"; + for($loop=0;$loop\n"; + echo " \n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
Tot.
".$type['nom']."
Décocher
\n"; + echo "\n"; + //echo "
\n"; + } + ?> +

Saisie des absences du format('U')); ?> @@ -1034,7 +1081,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev id ="bouton_changer_horaire"> Changer - +
(les élèves non cochés seront considérés présents)

@@ -1051,9 +1100,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev -

count(); ?> élèves ().

+

count(); ?> élèves ().

+
@@ -1083,9 +1132,7 @@ class="th_abs_suivi" abbr="Créneaux">Suivi sur la journée".$edt_creneau->getNomDefiniePeriode().""; echo "".$edt_creneau->getNomDefiniePeriode().""; - //echo $chaine_coche_decoche_regime; } else { echo $edt_creneau->getNomDefiniePeriode(); @@ -1122,14 +1169,6 @@ class="th_abs_suivi" abbr="Créneaux">Suivi sur la journée&onglet=responsables&quitter_la_page=y' target='_blank' > (voir fiche) - "; - echo print_r($eleve); - echo ""; - */ - ?> ">Type d'absence + onchange="this.form.elements['liste_type_absence_eleve_'].selectedIndex = 0; this.form.elements['active_absence_eleve_'].checked = true;" + id="radio_type_absence_eleve__" name="check[]" + value=""/> - "; - echo ""; + echo ""; echo ""; } echo "\n\n"; From 2325ed75b347320cdfdb608b926051b72f59e2c4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 24 Jun 2012 15:35:37 +0200 Subject: [PATCH 0005/1150] =?UTF-8?q?Possibilit=C3=A9=20d'afficher=20tous?= =?UTF-8?q?=20les=20PP=20d'une=20classe=20et=20non=20seulement=20celui=20a?= =?UTF-8?q?ssoci=C3=A9=20=C3=A0=20l'=C3=A9l=C3=A8ve=20sur=20les=20bulletin?= =?UTF-8?q?s=20PDF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_func.lib.php | 14 ++++++++++---- bulletin/bull_index.php | 18 ++++++++++++++++++ bulletin/bulletin_pdf.inc.php | 2 ++ bulletin/param_bull_pdf.php | 16 +++++++++++++++- 4 files changed, 45 insertions(+), 5 deletions(-) diff --git a/bulletin/bull_func.lib.php b/bulletin/bull_func.lib.php index e2c5ebd4b..c89fe9518 100644 --- a/bulletin/bull_func.lib.php +++ b/bulletin/bull_func.lib.php @@ -5392,12 +5392,18 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { // Le nom du professeur principal $pp_classe[$i]=""; //if(isset($tab_bull['eleve'][$i]['pp']['login'])) { - if(isset($tab_bull['eleve'][$i]['pp'][0]['login'])) { + if($tab_modele_pdf["afficher_tous_profprincipaux"][$classe_id]==1) { + $index_pp='pp_classe'; + } + else { + $index_pp='pp'; + } + if(isset($tab_bull['eleve'][$i][$index_pp][0]['login'])) { $pp_classe[$i]="".ucfirst($gepi_prof_suivi)." : "; - $pp_classe[$i].="".affiche_utilisateur($tab_bull['eleve'][$i]['pp'][0]['login'],$tab_bull['eleve'][$i]['id_classe']).""; - for($i_pp=1;$i_pp"; + for($i_pp=1;$i_pp"; + $pp_classe[$i].="".affiche_utilisateur($tab_bull['eleve'][$i][$index_pp][$i_pp]['login'],$tab_bull['eleve'][$i]['id_classe']).""; } } else { diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index 386c29ac3..7f612c02a 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -2544,6 +2544,24 @@ function display_param_b_adr_pg() { } } + // Récup infos des profs principaux (éventuellement multiples) associés à la classe: + $sql="SELECT DISTINCT u.login, u.nom, u.prenom, u.civilite FROM j_eleves_professeurs jep, utilisateurs u WHERE jep.id_classe='$id_classe' AND jep.professeur=u.login;"; + $res_pp=mysql_query($sql); + //echo "$sql
"; + if(mysql_num_rows($res_pp)>0) { + $tab_ele['pp_classe']=array(); + + $cpt_pp=0; + while($lig_pp=mysql_fetch_object($res_pp)) { + $tab_ele['pp_classe'][$cpt_pp]=array(); + $tab_ele['pp_classe'][$cpt_pp]['login']=$lig_pp->login; + $tab_ele['pp_classe'][$cpt_pp]['nom']=$lig_pp->nom; + $tab_ele['pp_classe'][$cpt_pp]['prenom']=$lig_pp->prenom; + $tab_ele['pp_classe'][$cpt_pp]['civilite']=$lig_pp->civilite; + $cpt_pp++; + } + } + // Récup infos responsables $sql="SELECT rp.*,ra.adr1,ra.adr2,ra.adr3,ra.adr3,ra.adr4,ra.cp,ra.pays,ra.commune,r.resp_legal FROM resp_pers rp, resp_adr ra, diff --git a/bulletin/bulletin_pdf.inc.php b/bulletin/bulletin_pdf.inc.php index e57ec6d9e..14988ee0a 100644 --- a/bulletin/bulletin_pdf.inc.php +++ b/bulletin/bulletin_pdf.inc.php @@ -136,6 +136,7 @@ $champ_bull_pdf[]="titre_bloc_avis_conseil"; $champ_bull_pdf[]="taille_titre_bloc_avis_conseil"; $champ_bull_pdf[]="taille_profprincipal_bloc_avis_conseil"; + $champ_bull_pdf[]="afficher_tous_profprincipaux"; $champ_bull_pdf[]="affiche_fonction_chef"; $champ_bull_pdf[]="taille_texte_fonction_chef"; $champ_bull_pdf[]="taille_texte_identitee_chef"; @@ -333,6 +334,7 @@ $val_defaut_champ_bull_pdf["titre_bloc_avis_conseil"]=""; $val_defaut_champ_bull_pdf["taille_titre_bloc_avis_conseil"]=0; $val_defaut_champ_bull_pdf["taille_profprincipal_bloc_avis_conseil"]=0; + $val_defaut_champ_bull_pdf["afficher_tous_profprincipaux"]=0; $val_defaut_champ_bull_pdf["affiche_fonction_chef"]=0; $val_defaut_champ_bull_pdf["taille_texte_fonction_chef"]=0; $val_defaut_champ_bull_pdf["taille_texte_identitee_chef"]=0; diff --git a/bulletin/param_bull_pdf.php b/bulletin/param_bull_pdf.php index 74e6cf9d7..e7ee53525 100644 --- a/bulletin/param_bull_pdf.php +++ b/bulletin/param_bull_pdf.php @@ -354,6 +354,14 @@ else { if (isset($_GET['taille_titre_bloc_avis_conseil'])) { $taille_titre_bloc_avis_conseil = $_GET['taille_titre_bloc_avis_conseil']; } if (isset($_POST['taille_titre_bloc_avis_conseil'])) { $taille_titre_bloc_avis_conseil = $_POST['taille_titre_bloc_avis_conseil']; } } if (empty($_GET['taille_profprincipal_bloc_avis_conseil']) and empty($_POST['taille_profprincipal_bloc_avis_conseil'])) { $taille_profprincipal_bloc_avis_conseil = ''; } else { if (isset($_GET['taille_profprincipal_bloc_avis_conseil'])) { $taille_profprincipal_bloc_avis_conseil = $_GET['taille_profprincipal_bloc_avis_conseil']; } if (isset($_POST['taille_profprincipal_bloc_avis_conseil'])) { $taille_profprincipal_bloc_avis_conseil = $_POST['taille_profprincipal_bloc_avis_conseil']; } } + + + if (empty($_GET['afficher_tous_profprincipaux']) and empty($_POST['afficher_tous_profprincipaux'])) { $afficher_tous_profprincipaux = ''; } + else { + if (isset($_GET['afficher_tous_profprincipaux'])) { $afficher_tous_profprincipaux = $_GET['afficher_tous_profprincipaux']; } + if (isset($_POST['afficher_tous_profprincipaux'])) { $afficher_tous_profprincipaux = $_POST['afficher_tous_profprincipaux']; } + } + if (empty($_GET['affiche_fonction_chef']) and empty($_POST['affiche_fonction_chef'])) { $affiche_fonction_chef = ''; } else { if (isset($_GET['affiche_fonction_chef'])) { $affiche_fonction_chef = $_GET['affiche_fonction_chef']; } if (isset($_POST['affiche_fonction_chef'])) { $affiche_fonction_chef = $_POST['affiche_fonction_chef']; } } if (empty($_GET['taille_texte_fonction_chef']) and empty($_POST['taille_texte_fonction_chef'])) { $taille_texte_fonction_chef = ''; } @@ -442,6 +450,7 @@ //============================== // Initialisation d'un tableau des champs de model_bulletin include('bulletin_pdf.inc.php'); +// Pour ajouter un paramètre, il faut ajouter la case à cocher dans la présente page (param_bull_pdf.php), mais il faut aussi déclarer le champ correspondant et sa valeur par défaut dans la page bulletin_pdf.inc.php //============================== //=================================================== @@ -1525,7 +1534,12 @@ function DecocheCheckbox() { Largeur du bloc value="" />mm / Hauteur du bloc value="" />mm 
Titre du bloc avis conseil de classe : value="" />
      Taille du texte value="" />pixel
- Taille du texte du professeur principal" value="" />pixel
+ Taille du texte du  value="" />pixel
+ + checked="checked" />
checked="checked" />
From c10d74a1ce0b8104c5ec61692460cee220263031 Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Sun, 24 Jun 2012 15:58:34 +0200 Subject: [PATCH 0006/1150] =?UTF-8?q?orm=20et=20abs2,=20pr=C3=A9cisions=20?= =?UTF-8?q?sur=20les=20recherches=20de=20p=C3=A9riodes=20de=20notes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe.php | 10 ++-- orm/propel-build/classes/gepi/Classe.php | 64 ++++++++++++++++++++++++ orm/propel-build/classes/gepi/Groupe.php | 21 +++++++- test/testsuite/orm/base/ClasseTest.php | 52 +++++++++++++++++++ 4 files changed, 142 insertions(+), 5 deletions(-) create mode 100644 test/testsuite/orm/base/ClasseTest.php diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 4d0085cf4..9fb24fdae 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -388,8 +388,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $eleve_col = new PropelCollection(); if (isset($current_groupe) && $current_groupe != null) { $query = EleveQuery::create(); - if ($current_groupe->getPeriodeNoteOuverte() != null) { - $query->useJEleveGroupeQuery()->filterByGroupe($current_groupe)->filterByPeriode($current_groupe->getPeriodeNoteOuverte()->getNumPeriode())->endUse(); + $periode_cur = $current_groupe->getPeriodeNote($dt_date_absence_eleve); + if ($periode_cur != null) { + $query->useJEleveGroupeQuery()->filterByGroupe($current_groupe)->filterByPeriode($periode_cur->getNumPeriode())->endUse(); } else { $query->useJEleveGroupeQuery()->filterByGroupe($current_groupe)->endUse(); } @@ -414,8 +415,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev ->find(); } else if (isset($current_classe) && $current_classe != null) { $query = EleveQuery::create(); - if ($current_classe->getPeriodeNoteOuverte() != null) { - $query->useJEleveClasseQuery()->filterByClasse($current_classe)->filterByPeriode($current_classe->getPeriodeNoteOuverte()->getNumPeriode())->endUse(); + $periode_cur = $current_classe->getPeriodeNote($dt_date_absence_eleve); + if ($periode_cur != null) { + $query->useJEleveClasseQuery()->filterByClasse($current_classe)->filterByPeriode($periode_cur->getNumPeriode())->endUse(); } else { $query->useJEleveClasseQuery()->filterByClasse($current_classe)->endUse(); } diff --git a/orm/propel-build/classes/gepi/Classe.php b/orm/propel-build/classes/gepi/Classe.php index b217b5939..7282a44a6 100644 --- a/orm/propel-build/classes/gepi/Classe.php +++ b/orm/propel-build/classes/gepi/Classe.php @@ -248,6 +248,70 @@ public function getPeriodeNoteOuverte() { return null; } + + /** + * Retourne la periode de note correspondante à la date donnée en paramètre. + * On regarde proritairement les dates de fin des périodes de notes, + * puis les renseignements de l'edt. + * Si aucune période n'est trouvée on retourne la dernière période ouverte pour l'ordre chronologique, + * null sinon + * + * @return PeriodeNote $periode la periode de la date précisée, ou null si non trouvé + */ + public function getPeriodeNote($v = 'now') { + // we treat '' as NULL for temporal objects because DateTime('') == DateTime('now') + // -- which is unexpected, to say the least. + //$dt = new DateTime(); + if ($v === null || $v === '') { + $dt = null; + } elseif ($v instanceof DateTime) { + $dt = clone $v; + } else { + // some string/numeric value passed; we normalize that so that we can + // validate it. + try { + if (is_numeric($v)) { // if it's a unix timestamp + $dt = new DateTime('@'.$v, new DateTimeZone('UTC')); + // We have to explicitly specify and then change the time zone because of a + // DateTime bug: http://bugs.php.net/bug.php?id=43003 + $dt->setTimeZone(new DateTimeZone(date_default_timezone_get())); + } else { + $dt = new DateTime($v); + } + } catch (Exception $x) { + throw new PropelException('Error parsing date/time value: ' . var_export($v, true), $x); + } + } + + foreach ($this->getPeriodeNotes() as $periode) { + if ($periode->getDateDebut('U') <= $dt->format('U') + && $periode->getDateFin(null) != null && $periode->getDateFin('U') > $dt->format('U')) { + return $periode; + } + } + + //si on est là on a trouvé aucune période renseignée qui convienne. On va regarder l'edt + //on verifie si il y a une periode du calendrier avec une periode de note precisee + $calendrier_periode = EdtCalendrierPeriodePeer::retrieveEdtCalendrierPeriodeActuelle($dt); + if ($calendrier_periode != null && $calendrier_periode->getNumeroPeriode() != null && $calendrier_periode->getNumeroPeriode() != 0) { + $criteria = new Criteria(); + $criteria->add(PeriodeNotePeer::NUM_PERIODE,$calendrier_periode->getNumeroPeriode()); + $periodes = $this->getPeriodeNotes($criteria); + return $periodes->getFirst(); + } + + //si on est là on a toujours trouvé aucune période. On renvoi la première période qui peut convenir + //et qui n'est pas encore achevée + foreach ($this->getPeriodeNotes() as $periode) { + if ($periode->getDateDebut('U') <= $dt->format('U') + && ($periode->getDateFin(null) === null || $periode->getDateFin('U') > $dt->format('U'))) { + return $periode; + } + } + + return null; + } + /** * Retourne la collection de periode de note privée a des fins d'optimisation * diff --git a/orm/propel-build/classes/gepi/Groupe.php b/orm/propel-build/classes/gepi/Groupe.php index 05a59192d..b06a85c8c 100644 --- a/orm/propel-build/classes/gepi/Groupe.php +++ b/orm/propel-build/classes/gepi/Groupe.php @@ -314,7 +314,7 @@ public function getEdtEmplacementCours($v = 'now'){ } /** - * Retourne la periode de note actuelle pour une classe donnee. + * Retourne la periode de note actuelle * * @return PeriodeNote $periode la periode actuellement ouverte */ @@ -327,6 +327,25 @@ public function getPeriodeNoteOuverte() { } } + /** + * Retourne la periode de note correspondante à la date donnée en paramètre. + * La recherche est faite sur un classe arbitraire associée au groupe + * On regarde proritairement les dates de fin des périodes de notes, + * puis les renseignements de l'edt. + * Si aucune période n'est trouvée on retourne la dernière période ouverte pour l'ordre chronologique, + * null sinon + * + * @return PeriodeNote $periode la periode de la date précisée, ou null si non trouvé + */ + public function getPeriodeNote($v = 'now') { + $classes = $this->getClasses(); + if ($classes->isEmpty()) { + return null; + } else { + return $classes->getFirst()->getPeriodeNote($v); + } + } + /** * diff --git a/test/testsuite/orm/base/ClasseTest.php b/test/testsuite/orm/base/ClasseTest.php new file mode 100644 index 000000000..b4f4c5590 --- /dev/null +++ b/test/testsuite/orm/base/ClasseTest.php @@ -0,0 +1,52 @@ +findOneByNom('6ieme A'); + $periode_col = $sixieme_A->getPeriodeNotes(); + $this->assertEquals('2',$periode_col->count()); + $this->assertEquals('1',$periode_col->getFirst()->getNumPeriode()); + $this->assertEquals('2',$periode_col->getLast()->getNumPeriode()); + + $periode = $sixieme_A->getPeriodeNote('2009-12-01'); + $this->assertNull($periode,'à la date du 2009-12-01, il ne doit y avoir aucune période d assignée, donc on doit retourner null'); + + $periode = $sixieme_A->getPeriodeNote('2010-10-01'); + $this->assertNotNull($periode,'à la date du 2010-10-01, il ne doit y avoir la première période d assignée, donc on doit retourner null'); + $this->assertEquals('1',$periode->getNumPeriode()); + + $periode = $sixieme_A->getPeriodeNote('2010-12-10'); + $this->assertNotNull($periode,'à la date du 2010-12-10, il ne doit y avoir la deuxième période d assignée, donc on doit retourner null'); + $this->assertEquals('2',$periode->getNumPeriode()); + + $periode = $sixieme_A->getPeriodeNote('2011-05-10'); + $this->assertNull($periode,'à la date du 2011-05-10, il ne doit y avoir la deuxième période d assignée meme si elle est terminée car c est la dernière période, donc on doit retourner null'); + + //on rajoute une autre période, dont la date de fin est non renseignée + $periode_6A_3 = new PeriodeNote(); + $periode_6A_3->setClasse($sixieme_A); + $periode_6A_3->setNumPeriode(3); + $periode_6A_3->setVerouiller('O'); + $periode_6A_3->setNomPeriode('troisième trimestre'); + $periode_6A_3->save(); + + $periode = $sixieme_A->getPeriodeNote('2011-05-10'); + $this->assertNotNull($periode,'à la date du 2011-05-10, il ne doit y avoir la troisième période d assignée meme si elle n est pas terminée'); + $this->assertEquals('3',$periode->getNumPeriode()); + } + +} From cf6dce997f8a3581d163d93b97e4b9987d0825ef Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 24 Jun 2012 17:18:34 +0200 Subject: [PATCH 0007/1150] =?UTF-8?q?Pr=C3=A9cisions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index 6f6af1456..443f76f5b 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,6 +5,8 @@ Gepi-1.6.2 (Version de développement) =========================== +- Bulletins: - Affichage (à des fins de contrôle) des coef et profs associés aux enseignements avant génération des bulletins. + - Possibilité d'afficher tous les PP d'une classe et non seulement celui associé à l'élève sur les bulletins PDF. - ... Gepi-1.6.1 (10/06/2012) From 48b9036eb3fa9e7da2283c924efb9c542ea940fa Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 24 Jun 2012 17:19:18 +0200 Subject: [PATCH 0008/1150] =?UTF-8?q?Liens=20vers=20l'impression=20PDF=20e?= =?UTF-8?q?t=20r=C3=A9capitulatif=20des=20mentions.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_avis1.php | 24 ++++++++++++++++-- saisie/saisie_avis2.php | 54 ++++++++++++++++++++++++++++++++++++++--- 2 files changed, 72 insertions(+), 6 deletions(-) diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index edbd25f34..37ea9cd38 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -354,6 +354,10 @@ function confirm_changement_classe(thechange, themessage) if($id_class_suiv!=0){echo " | Classe suivante";} } //fin ajout lien classe précédente / classe suivante + +if((acces('/impression/avis_pdf.php', $_SESSION['statut']))&&(acces('/saisie/impression_avis.php', $_SESSION['statut']))) { + echo "| Impression PDF des avis"; +} echo "

\n"; echo "\n"; @@ -543,10 +547,26 @@ function vider_tous_les_avis() { while ($k < $nb_periode) { $alt=$alt*(-1); if ($ver_periode[$k] != "N") { - echo "
\n\n"; + echo "\n\n"; } else { echo "\n\n"; } diff --git a/saisie/saisie_avis2.php b/saisie/saisie_avis2.php index 985feb3ba..b96d33ae0 100644 --- a/saisie/saisie_avis2.php +++ b/saisie/saisie_avis2.php @@ -331,13 +331,17 @@ function confirm_changement_classe(thechange, themessage) if($id_class_suiv!=0){echo " | Classe suivante";} } //fin ajout lien classe précédente / classe suivante + +if(acces('/impression/avis_pdf.php', $_SESSION['statut'])) { + echo "| Impression PDF des avis"; +} echo "

\n"; echo "\n"; ?> -

Classe :

+

Classe :

Cliquez sur le nom de l'élève pour lequel vous voulez entrer ou modifier l'appréciation.



$entete_section[$i]





$entete_section[$i]"; + if($lien_wiki[$i] != "") {echo " ";} + echo "



$nom_periode[$k]
"; + if(acces('/impression/avis_pdf.php', $_SESSION['statut'])) { + echo ""; + echo $nom_periode[$k]; + echo ""; + } + else { + echo $nom_periode[$k]; + } + echo "
"; - echo $nom_periode[$k]; + if(acces('/impression/avis_pdf.php', $_SESSION['statut'])) { + echo ""; + echo $nom_periode[$k]; + echo ""; + } + else { + echo $nom_periode[$k]; + } echo "
@@ -354,7 +358,19 @@ function confirm_changement_classe(thechange, themessage) if($avec_mentions=="y") { echo " width='60%'"; } - ?>> : avis du conseil de classe + ?>> + 1) { + echo " "; + } + ?> + : avis du conseil de classe + "; + } + ?> + ".ucfirst($gepi_denom_mention)."\n"; @@ -392,6 +408,7 @@ function confirm_changement_classe(thechange, themessage) $nombre_lignes = mysql_num_rows($appel_donnees_eleves); $i = "0"; $alt=1; + $tab_mentions_distribuees=array(); while($i < $nombre_lignes) { $current_eleve_login = mysql_result($appel_donnees_eleves, $i, "login"); $ind_eleve_login_suiv = 0; @@ -406,10 +423,19 @@ function confirm_changement_classe(thechange, themessage) $alt=$alt*(-1); echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; if($avec_mentions=="y") { // *** AJOUT POUR LES MENTIONS - echo "\n"; + echo "\n"; // *** FIN D'AJOUT POUR LES MENTIONS **** } echo "\n"; @@ -417,11 +443,31 @@ function confirm_changement_classe(thechange, themessage) } echo "
\n$current_eleve_nom $current_eleve_prenom$current_eleve_avis ".nl2br($current_eleve_avis)." ".traduction_mention($current_eleve_mention).""; + $tmp_mention_courante=traduction_mention($current_eleve_mention); + echo $tmp_mention_courante; + + if(($tmp_mention_courante!='')&&($tmp_mention_courante!='-')) { + $tab_mentions_distribuees[$current_eleve_mention]['mention']=$tmp_mention_courante; + if(!isset($tab_mentions_distribuees[$current_eleve_mention]['effectif'])) {$tab_mentions_distribuees[$current_eleve_mention]['effectif']=0;} + $tab_mentions_distribuees[$current_eleve_mention]['effectif']++; + } + echo "
\n"; + if(count($tab_mentions_distribuees)>0) { + echo "
\n"; + echo "

Récapitulatif des mentions distribuées :

\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $alt=1; + foreach($tab_mentions_distribuees as $tab_mention) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "
MentionEffectif
".$tab_mention['mention']."".$tab_mention['effectif']."
\n"; + } + $sql="SELECT * FROM synthese_app_classe WHERE (id_classe='$id_classe' AND periode='$periode_num');"; $res_current_synthese=mysql_query($sql); $current_synthese= @mysql_result($res_current_synthese, 0, "synthese"); if ($current_synthese=='') {$current_synthese='-';} + echo "
\n"; echo "

Synthèse des avis sur le groupe classe :

\n"; echo ""; $alt=$alt*(-1); From 67b642f7743d93379f5633063b6526d6b37d847e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 24 Jun 2012 17:20:11 +0200 Subject: [PATCH 0009/1150] =?UTF-8?q?Acc=C3=A8s=20CPE=20=C3=A0=20la=20sais?= =?UTF-8?q?ie=20de=20l'avis=20du=20conseil.=20Possibilit=C3=A9=20en=20arri?= =?UTF-8?q?vant=20au=20dernier=20=C3=A9l=C3=A8ve=20de=20passer=20au=20r?= =?UTF-8?q?=C3=A9capitulatif=20des=20avis.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- visualisation/affiche_eleve.php | 130 +++++++++++++++++++++++++++----- 1 file changed, 113 insertions(+), 17 deletions(-) diff --git a/visualisation/affiche_eleve.php b/visualisation/affiche_eleve.php index 724d72e2e..8168537b4 100644 --- a/visualisation/affiche_eleve.php +++ b/visualisation/affiche_eleve.php @@ -250,13 +250,15 @@ function save_params_graphe($nom,$valeur) { if( ( (($_SESSION['statut']=='professeur')&&(getSettingValue('GepiRubConseilProf')=="yes"))|| - (($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiRubConseilScol')=="yes")) + (($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiRubConseilScol')=="yes"))|| + (($_SESSION['statut']=='cpe')&&((getSettingValue('GepiRubConseilCpe')=="yes")||(getSettingValue('GepiRubConseilCpeTous')=="yes"))) )&&(isset($_POST['enregistrer_avis']))&&($_POST['enregistrer_avis']=="y") ) { check_token(); $eleve_saisie_avis = isset($_POST['eleve_saisie_avis']) ? $_POST['eleve_saisie_avis'] : NULL; // Contrôler les caractères utilisés... + $eleve_saisie_avis=preg_replace("/[^A-Za-z0-9_.-]/","",$eleve_saisie_avis); $num_periode_saisie = isset($_POST['num_periode_saisie']) ? $_POST['num_periode_saisie'] : NULL; @@ -283,13 +285,27 @@ function save_params_graphe($nom,$valeur) { jgp.login ='".$_SESSION['login']."';"; $verif=mysql_query($sql); if (mysql_num_rows($verif)==0) { - tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour un élève dont vous n'êtes pas professeur principal."); - $mess=rawurlencode("Tentative de saisie d'avis du conseil de classe pour un élève non inscrit dans la classe."); + tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour un élève ($eleve_saisie_avis) dont vous n'êtes pas ".getSettingValue('gepi_prof_suivi')."."); + $mess=rawurlencode("Tentative de saisie d'avis du conseil de classe pour un élève dont vous n'êtes pas ".getSettingValue('gepi_prof_suivi')."."); header("Location: ../accueil.php?msg=$mess"); die(); } } - else { + elseif($_SESSION['statut']=='cpe') { + if(getSettingValue('GepiRubConseilCpeTous')!="yes") { + $sql="SELECT 1=1 FROM j_eleves_cpe + WHERE e_login='$eleve_saisie_avis' AND + cpe_login ='".$_SESSION['login']."';"; + $verif=mysql_query($sql); + if (mysql_num_rows($verif)==0) { + tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour un élève ($eleve_saisie_avis) dont vous n'êtes pas CPE."); + $mess=rawurlencode("Tentative de saisie d'avis du conseil de classe pour un élève non inscrit dans la classe."); + header("Location: ../accueil.php?msg=$mess"); + die(); + } + } + } + elseif($_SESSION['statut']=='scolarite') { // Compte scolarité $sql="SELECT 1=1 FROM j_scol_classes jsc, j_eleves_classes jec @@ -299,12 +315,18 @@ function save_params_graphe($nom,$valeur) { jsc.login='".$_SESSION['login']."';"; $verif=mysql_query($sql); if (mysql_num_rows($verif)==0) { - tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour un élève d'une classe dont le compte scolarité n'est pas responsable."); + tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour un élève ($eleve_saisie_avis) d'une classe dont le compte scolarité n'est pas responsable."); $mess=rawurlencode("Tentative de saisie d'avis du conseil de classe pour un élève d'une classe dont vous n'êtes pas responsable."); header("Location: ../accueil.php?msg=$mess"); die(); } } + else { + tentative_intrusion(2, "Tentative de saisie d'avis du conseil de classe pour ".$eleve_saisie_avis."."); + $mess=rawurlencode("Tentative non autorisée de saisie d'avis du conseil de classe."); + header("Location: ../accueil.php?msg=$mess"); + die(); + } $sql="SELECT verouiller FROM periodes WHERE id_classe='$id_classe' AND num_periode='$num_periode_saisie';"; //echo "$sql
"; @@ -345,6 +367,41 @@ function save_params_graphe($nom,$valeur) { else { $msg = "La période sur laquelle vous voulez enregistrer est verrouillée"; } + + if((isset($_POST['passer_a_recapitulatif_avis']))&&($_POST['passer_a_recapitulatif_avis']=='y')&&(acces('/saisie/saisie_avis2.php', $_SESSION['statut']))) { + + if( + (($_SESSION['statut']=='professeur')&&(getSettingValue('GepiRubConseilProf')=="yes"))|| + (($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiRubConseilScol')=="yes"))|| + (($_SESSION['statut']=='cpe')&&((getSettingValue('GepiRubConseilCpe')=="yes")||(getSettingValue('GepiRubConseilCpeTous')=="yes"))) + ) { + + $droit_saisie_avis="y"; + // Contrôler si le prof est PP de l'élève + if($_SESSION['statut']=='professeur') { + $droit_saisie_avis="n"; + $sql="SELECT 1=1 FROM j_eleves_professeurs WHERE professeur='".$_SESSION['login']."' AND id_classe='$id_classe';"; + $verif_pp=mysql_query($sql); + if(mysql_num_rows($verif_pp)>0) { + $droit_saisie_avis="y"; + } + } + elseif(($_SESSION['statut']=='cpe')&&(getSettingValue('GepiRubConseilCpeTous')!="yes")) { + $droit_saisie_avis="n"; + $sql="SELECT 1=1 FROM j_eleves_cpe jecpe, j_eleves_classes jec WHERE jecpe.cpe_login='".$_SESSION['login']."' AND jecpe.e_login=jec.login AND jec.id_classe='".$id_classe."';"; + $verif_cpe=mysql_query($sql); + if(mysql_num_rows($verif_cpe)>0) { + $droit_saisie_avis="y"; + } + } + + if($droit_saisie_avis=="y") { + header("Location: ../saisie/saisie_avis2.php?id_classe=$id_classe&periode_num=$num_periode_saisie&msg=".rawurlencode($msg)); + die(); + } + } + } + } else {echo "Periode non numérique: $num_periode_saisie
";} unset($eleve_saisie_avis); @@ -1782,11 +1839,11 @@ function fct_desactivation_infobulle() { echo "\n"; } - + echo ""; + //echo ""; //echo "\n"; - //================ // Déplacement: boireaus 20090727 // Initialisation: @@ -1796,7 +1853,8 @@ function fct_desactivation_infobulle() { //if(($_SESSION['statut']=='professeur')&&(getSettingValue('GepiRubConseilProf')=="yes")) { if( (($_SESSION['statut']=='professeur')&&(getSettingValue('GepiRubConseilProf')=="yes"))|| - (($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiRubConseilScol')=="yes")) + (($_SESSION['statut']=='scolarite')&&(getSettingValue('GepiRubConseilScol')=="yes"))|| + (($_SESSION['statut']=='cpe')&&((getSettingValue('GepiRubConseilCpe')=="yes")||(getSettingValue('GepiRubConseilCpeTous')=="yes"))) ) { $droit_saisie_avis="y"; @@ -1809,6 +1867,14 @@ function fct_desactivation_infobulle() { $droit_saisie_avis="y"; } } + elseif(($_SESSION['statut']=='cpe')&&(getSettingValue('GepiRubConseilCpeTous')!="yes")) { + $droit_saisie_avis="n"; + $sql="SELECT 1=1 FROM j_eleves_cpe WHERE cpe_login='".$_SESSION['login']."' AND e_login='".$eleve1."';"; + $verif_cpe=mysql_query($sql); + if(mysql_num_rows($verif_cpe)>0) { + $droit_saisie_avis="y"; + } + } //================ // Ajout: boireaus 20090115 @@ -1869,6 +1935,13 @@ function save_avis(mode) { } //alert('La mention actuelle est : '+document.getElementById('current_eleve_login_me').value+'.'); + if(mode=='recap') { + document.getElementById('passer_a_recapitulatif_avis').value='y'; + } + else { + document.getElementById('passer_a_recapitulatif_avis').value='n'; + } + if(mode=='suivant') { eleve_suivant(); } @@ -1930,13 +2003,17 @@ function save_avis(mode) { //$texte.="\n"; $texte.="\n"; if($suivant<$nombreligne+1) { - $texte.=" \n"; + $texte.=" \n"; + } + elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { + $texte.=" \n"; } // METTRE AUSSI UN BOUTON POUR Enregistrer puis lancer eleve_suivant(); //require("insere_cmnt_type.php"); if((($_SESSION['statut'] == 'professeur')&&(getSettingValue("GepiRubConseilProf")=='yes')&&(getSettingValue('CommentairesTypesPP')=='yes')) - ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes'))) { + ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes')) + ||(($_SESSION['statut'] == 'cpe')&&((getSettingValue("GepiRubConseilCpe")=='yes')||(getSettingValue("GepiRubConseilCpeTous")=='yes'))&&(getSettingValue('CommentairesTypesCpe')=='yes'))) { $texte.=div_cmnt_type(); } @@ -1987,13 +2064,17 @@ function save_avis(mode) { //$texte_saisie_avis_fixe.="\n"; $texte_saisie_avis_fixe.="
\n"; if($suivant<$nombreligne+1) { - $texte_saisie_avis_fixe.=" \n"; + $texte_saisie_avis_fixe.=" \n"; } - + elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { + $texte_saisie_avis_fixe.=" \n"; + } + // METTRE AUSSI UN BOUTON POUR Enregistrer puis lancer eleve_suivant(); //require("insere_cmnt_type.php"); if((($_SESSION['statut'] == 'professeur')&&(getSettingValue("GepiRubConseilProf")=='yes')&&(getSettingValue('CommentairesTypesPP')=='yes')) - ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes'))) { + ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes')) + ||(($_SESSION['statut'] == 'cpe')&&((getSettingValue("GepiRubConseilCpe")=='yes')||(getSettingValue("GepiRubConseilCpeTous")=='yes'))&&(getSettingValue('CommentairesTypesCpe')=='yes'))) { $texte_saisie_avis_fixe.=div_cmnt_type(); } @@ -2059,6 +2140,13 @@ function save_avis(mode) { } //alert('La mention actuelle est : '+document.getElementById('current_eleve_login_me').value+'.'); + if(mode=='recap') { + document.getElementById('passer_a_recapitulatif_avis').value='y'; + } + else { + document.getElementById('passer_a_recapitulatif_avis').value='n'; + } + if(mode=='suivant') { eleve_suivant(); } @@ -2115,13 +2203,17 @@ function save_avis(mode) { //$texte.="\n"; $texte.="\n"; if($suivant<$nombreligne+1) { - $texte.=" \n"; + $texte.=" \n"; + } + elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { + $texte.=" \n"; } // METTRE AUSSI UN BOUTON POUR Enregistrer puis lancer eleve_suivant(); //require("insere_cmnt_type.php"); if((($_SESSION['statut'] == 'professeur')&&(getSettingValue("GepiRubConseilProf")=='yes')&&(getSettingValue('CommentairesTypesPP')=='yes')) - ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes'))) { + ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes')) + ||(($_SESSION['statut'] == 'cpe')&&((getSettingValue("GepiRubConseilCpe")=='yes')||(getSettingValue("GepiRubConseilCpeTous")=='yes')))) { $texte.=div_cmnt_type(); } @@ -2172,13 +2264,17 @@ function save_avis(mode) { //$texte_saisie_avis_fixe.="\n"; $texte_saisie_avis_fixe.="
\n"; if($suivant<$nombreligne+1) { - $texte_saisie_avis_fixe.=" \n"; + $texte_saisie_avis_fixe.=" \n"; + } + elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { + $texte_saisie_avis_fixe.=" \n"; } // METTRE AUSSI UN BOUTON POUR Enregistrer puis lancer eleve_suivant(); //require("insere_cmnt_type.php"); if((($_SESSION['statut'] == 'professeur')&&(getSettingValue("GepiRubConseilProf")=='yes')&&(getSettingValue('CommentairesTypesPP')=='yes')) - ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes'))) { + ||(($_SESSION['statut'] == 'scolarite')&&(getSettingValue("GepiRubConseilScol")=='yes')&&(getSettingValue('CommentairesTypesScol')=='yes')) + ||(($_SESSION['statut'] == 'cpe')&&((getSettingValue("GepiRubConseilCpe")=='yes')||(getSettingValue("GepiRubConseilCpeTous")=='yes'))&&(getSettingValue('CommentairesTypesCpe')=='yes'))) { $texte_saisie_avis_fixe.=div_cmnt_type(); } From 29dea3ecfcaf053f73af3ff32090a35c6c65c7d0 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 24 Jun 2012 17:21:47 +0200 Subject: [PATCH 0010/1150] =?UTF-8?q?Indication=20que=20le=20type=20cantin?= =?UTF-8?q?e=20est=20li=C3=A9=20au=20r=C3=A9gime=20de=20l'=C3=A9l=C3=A8ve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/admin/function.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod_abs2/admin/function.php b/mod_abs2/admin/function.php index e7a7df645..1e601ebeb 100644 --- a/mod_abs2/admin/function.php +++ b/mod_abs2/admin/function.php @@ -335,7 +335,7 @@ function ajoutTypesParDefaut() { $type->setJustificationExigible(false); $type->setSousResponsabiliteEtablissement(AbsenceEleveType::SOUS_RESP_ETAB_NON_PRECISE); $type->setManquementObligationPresence(AbsenceEleveType::MANQU_OBLIG_PRESE_NON_PRECISE); - $type->setModeInterface(AbsenceEleveType::MODE_INTERFACE_CHECKBOX_HIDDEN); + $type->setModeInterface(AbsenceEleveType::MODE_INTERFACE_CHECKBOX_HIDDEN_REGIME); $type->setIdLieu($id_lieu_etab); $statut = new AbsenceEleveTypeStatutAutorise(); From d2b645b3fe1108a5e5822331a119e55ca3ac20e5 Mon Sep 17 00:00:00 2001 From: Thomas Belliard Date: Tue, 26 Jun 2012 12:40:20 +0300 Subject: [PATCH 0011/1150] =?UTF-8?q?Utilisation=20du=20plugin=20opentbs?= =?UTF-8?q?=20pour=20les=20documents=20ECTS=20(compatibilit=C3=A9=20format?= =?UTF-8?q?s=20ODT=20r=C3=A9cents).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ooo/documents_ects.php | 187 +++++++++++++----------- mod_ooo/modeles_gepi/documents_ects.odt | Bin 28761 -> 30485 bytes 2 files changed, 105 insertions(+), 82 deletions(-) diff --git a/mod_ooo/documents_ects.php b/mod_ooo/documents_ects.php index de1e9d5b3..02cd74341 100644 --- a/mod_ooo/documents_ects.php +++ b/mod_ooo/documents_ects.php @@ -30,13 +30,14 @@ //include_once('./lib/tbs_class.php'); //include_once('./lib/tbsooo_class.php'); -include_once('./lib/tinyButStrong.class.php'); -include_once('./lib/tinyDoc.class.php'); +//include_once('./lib/tinyButStrong.class.php'); +//include_once('./lib/tinyDoc.class.php'); +include_once('../tbs/tbs_class.php'); +include_once('../tbs/plugins/tbs_plugin_opentbs.php'); - -define( 'PCLZIP_TEMPORARY_DIR', '../mod_ooo/tmp/' ); -include_once('../lib/pclzip.lib.php'); +//~ define( 'PCLZIP_TEMPORARY_DIR', '../mod_ooo/tmp/' ); +//~ include_once('../lib/pclzip.lib.php'); // Resume session @@ -419,120 +420,142 @@ include_once ("./lib/chemin.inc.php"); -// instantiate a TBS OOo class -$OOo = new tinyDoc(); -$OOo->setZipMethod('shell'); -$OOo->setZipBinary('zip'); -$OOo->setUnzipBinary('unzip'); +//~ // instantiate a TBS OOo class +//~ $OOo = new tinyDoc(); +//~ $OOo->setZipMethod('shell'); +//~ $OOo->setZipBinary('zip'); +//~ $OOo->setUnzipBinary('unzip'); +//~ +//~ // setting the object +//~ $OOo->SetProcessDir($nom_dossier_temporaire ); //dossier où se fait le traitement (décompression / traitement / compression) +//~ // create a new openoffice document from the template with an unique id +//~ $OOo->createFrom($nom_dossier_modele_a_utiliser.$nom_fichier_modele_ooo); // le chemin du fichier est indiqué à partir de l'emplacement de ce fichier +//~ // merge data with openoffice file named 'content.xml' +//~ $OOo->loadXml($nom_fichier_xml_a_traiter); //Le fichier qui contient les variables et doit être parsé (il sera extrait) + +$OOo = new clsTinyButStrong; // new instance of TBS +$OOo->Plugin(TBS_INSTALL, OPENTBS_PLUGIN); // load OpenTBS plugin -// setting the object -$OOo->SetProcessDir($nom_dossier_temporaire ); //dossier où se fait le traitement (décompression / traitement / compression) -// create a new openoffice document from the template with an unique id -$OOo->createFrom($nom_dossier_modele_a_utiliser.$nom_fichier_modele_ooo); // le chemin du fichier est indiqué à partir de l'emplacement de ce fichier -// merge data with openoffice file named 'content.xml' -$OOo->loadXml($nom_fichier_xml_a_traiter); //Le fichier qui contient les variables et doit être parsé (il sera extrait) +$OOo->LoadTemplate($nom_dossier_modele_a_utiliser.$nom_fichier_modele_ooo, OPENTBS_ALREADY_UTF8); // Traitement des tableaux // On insère ici les lignes concernant la gestion des tableaux if (!$page_garde) { - $OOo->mergeXml( - array( - 'name' => 'page_garde', - 'type' => 'clear')); + //~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'page_garde', + //~ 'type' => 'clear')); + $OOo->MergeBlock('page_garde','clear'); } else { - $OOo->mergeXmlBlock('page_garde',array('fake')); // Juste pour que le bloc s'initialise correctement + //~ $OOo->mergeXmlBlock('page_garde',array('fake')); // Juste pour que le bloc s'initialise correctement + $OOo->MergeBlock('page_garde',array('fake')); } + if (!$releve) { - $OOo->mergeXml( - array( - 'name' => 'releve', - 'type' => 'clear')); + //~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'releve', + //~ 'type' => 'clear')); + $OOo->MergeBlock('releve','clear'); } else { - $OOo->mergeXmlBlock('releve',array('fake')); // Juste pour que le bloc s'initialise correctement + //~ $OOo->mergeXmlBlock('releve',array('fake')); // Juste pour que le bloc s'initialise correctement + $OOo->MergeBlock('releve',array('fake')); } if (!$attestation) { - $OOo->mergeXml( - array( - 'name' => 'attestation', - 'type' => 'clear')); + //~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'attestation', + //~ 'type' => 'clear')); + $OOo->MergeBlock('attestation','clear'); } else { - $OOo->mergeXmlBlock('attestation',array('fake')); // Juste pour que le bloc s'initialise correctement + //~ $OOo->mergeXmlBlock('attestation',array('fake')); // Juste pour que le bloc s'initialise correctement + $OOo->MergeBlock('attestation',array('fake')); } if (!$description) { - $OOo->mergeXml( - array( - 'name' => 'description', - 'type' => 'clear')); + //~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'description', + //~ 'type' => 'clear')); + $OOo->MergeBlock('description','clear'); } else { - $OOo->mergeXmlBlock('description',array('fake')); // Juste pour que le bloc s'initialise correctement + //~ $OOo->mergeXmlBlock('description',array('fake')); // Juste pour que le bloc s'initialise correctement + $OOo->MergeBlock('description',array('fake')); } - -$OOo->mergeXml( - array( - 'name' => 'eleves', - 'type' => 'block', - 'data_type' => 'array', - 'charset' => 'UTF-8' - ),$eleves); - +//~ +//~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'eleves', + //~ 'type' => 'block', + //~ 'data_type' => 'array', + //~ 'charset' => 'UTF-8' + //~ ),$eleves); +$OOo->MergeBlock('eleves',$eleves); // On insère les résultats -$OOo->mergeXml( - array( - 'name' => 'resultats', - 'type' => 'block', - 'data_type' => 'array', - 'charset' => 'UTF-8' - ),'resultats[%p1%]'); +//~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'resultats', + //~ 'type' => 'block', + //~ 'data_type' => 'array', + //~ 'charset' => 'UTF-8' + //~ ),'resultats[%p1%]'); + +$OOo->MergeBlock('resultats','array','resultats[%p1%]'); // On insère le récapitulatif des années -$OOo->mergeXml( - array( - 'name' => 'recap_annees', - 'type' => 'block', - 'data_type' => 'array', - 'charset' => 'UTF-8' - ),'recap_annees[%p1%]'); +//~ $OOo->mergeXml( + //~ array( + //~ 'name' => 'recap_annees', + //~ 'type' => 'block', + //~ 'data_type' => 'array', + //~ 'charset' => 'UTF-8' + //~ ),'recap_annees[%p1%]'); + +$OOo->MergeBlock('recap_annees','array','recap_annees[%p1%]'); $nom_fic_logo = getSettingValue("logo_etab"); $nom_fic_logo_c = "../images/".$nom_fic_logo; if (($nom_fic_logo != '') and (file_exists($nom_fic_logo_c))) { - $OOo->mergeXmlField('logo',$nom_fic_logo_c); + $OOo->MergeField('logo',$nom_fic_logo_c); } else { - $OOo->mergeXmlField('logo','../images/blank.gif'); + $OOo->MergeField('logo','../images/blank.gif'); } - // Fin de traitement des tableaux -$OOo->saveXml(); //traitement du fichier extrait -$OOo->close(); +//~ $OOo->saveXml(); //traitement du fichier extrait +//~ $OOo->close(); +//~ //Génération du nom du fichier $now = gmdate('d_M_Y_H:i:s'); $nom_fichier_modele = explode('.',$nom_fichier_modele_ooo); $nom_fic = $nom_fichier_modele[0]."_généré_le_".$now.".".$nom_fichier_modele[1]; -header('Expires: ' . $now); -if (my_ereg('MSIE', $_SERVER['HTTP_USER_AGENT'])) { - header('Content-Disposition: inline; filename="' . $nom_fic . '"'); - header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); - header('Pragma: public'); -} else { - header('Content-Disposition: attachment; filename="' . $nom_fic . '"'); - header('Pragma: no-cache'); -} -// display -header('Content-type: '.$OOo->getMimetype()); -header('Content-Length: '.filesize($OOo->getPathname())); +//~ header('Expires: ' . $now); +//~ if (my_ereg('MSIE', $_SERVER['HTTP_USER_AGENT'])) { + //~ header('Content-Disposition: inline; filename="' . $nom_fic . '"'); + //~ header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); + //~ header('Pragma: public'); +//~ } else { + //~ header('Content-Disposition: attachment; filename="' . $nom_fic . '"'); + //~ header('Pragma: no-cache'); +//~ } +//~ +//~ // display +//~ header('Content-type: '.$OOo->getMimetype()); +//~ header('Content-Length: '.filesize($OOo->getPathname())); +//~ +//~ +//~ +//~ // send and remove the document +//~ $OOo->sendResponse(); +//~ $OOo->remove(); +//~ // Fin de traitement des tableaux + +$OOo->Show(OPENTBS_DOWNLOAD, $nom_fic); - - -// send and remove the document -$OOo->sendResponse(); -$OOo->remove(); -// Fin de traitement des tableaux ?> diff --git a/mod_ooo/modeles_gepi/documents_ects.odt b/mod_ooo/modeles_gepi/documents_ects.odt index 2c90318f45e9f580cf3c024023638f30700cdc85..b0cc84d82b3502ff6a323eebfd09cb7d6fff3150 100644 GIT binary patch delta 18350 zcmcG#WmM)`kSL0FU#xYM}1ySuwP1ZdpdoyOfA8gJa8ad&rz*JozVeY4)ZKkoZ6 zS(QrdRkFXYlI)~XRm)qT$rqpq3ew;ZXdoa^ARsl;D+2KdVqgD@tka&O_?K>Aqr?G4 z`B!Mu76IH20tCbkqTy9p1{BuA*2d16%iPJt#3nIb1&xB4k&%VLoWaD<#gNX;($t-l zgvj2^%+lDD%gxlu+0x#QmxPI)IZ;cMkWa?a$jMaxKbQ#NUVk-%VT29^>=1d zK4wNHW;#Z8I%akiCT1???_4a5JPiLb|B*6wGBtFucj8mAu(vgICK58Wv9UCCGWido z|KcTHsD)rMlMvaOx)^e~+dG-i8QZ(sx$u&(voI${s^idcF#Z?Q&fbpB-NMqv)Y-w% z*p$xL!qCak*u~W8UjOUL~^4~VNzqGTdi;Jb5xikG= zr*>(rI_+>G`EJ%oJo6Gi!X}%H#uo_9ibfZCcgNhg56y*Jw!H260}*`A{Y zGps9B$mh<%x9A_lb9#I&`aa5ixp(x38wA_n_x|3bH+C~ZO&7x>umCEi(y_a)YrIXSy~dg@H^eMCr!d_&4m zzVt&6U3j>(PerJY6$b2x>g&F1=rv1s-2OIw&+fOuXR}}O{`5Pf{r08&O%L@V;5KvomBot6|+4@x1x3{i`QMHbUBzYlUu^cSI zBuw_s{kBrbY!(uguq;^i*k3!0COv^@gfX4r!@?+I3sw)NKcGJP6yBT4X+rUcBz=`~ zQHvZFT2$*4wey_I-eR=yUbm`dnR zrH^W>=gc&E{w>@Q^*j^$@<;9N03;6chES8_u&RbVg%mOxVVWUnpE+t_*a)7e#wrT| zJlA{+h7^zp8;$}?AR-e+5$TGkB0xjAr>oaq)+X{hkBX!Y%$9p#G+7#_iULw9-$8*- z>2}i-E3i?+*#XP;9ZKpYgJoIT!~o?%GyGeq2`q?$8);3%;Pt1!x%xwoSe+(kK@{fq zdbZWk1lM(E(Ej@X7jZzbRPAi;Lw1()QP?_fwqELH6OvvP*qON47ytrgme%xT57EB>%8X1QkdCU(opA|IMVdIl; zItEP1r*5#qVMf~`?F_GRrm)Ndtiu^ZS=S@}Yfw)Cq?oF~Znv&-KWWmBKw$aHD9GJG zM+<;8ghc2QP48S5$V{ai!UPb3_&;Fk!v z#Wd6!6Xry8azqiNM}Qc45O5Glr%&wapE`5zt+s)gr=R4XIKs$GEmtT*&MeP`ewP9c zvlh6IiC|w{Qm6*iW@^4oZrYgn_2~|(Z`M1DrS59#D+Eh$2-a7On1B>`QL^v$K;zZj zWBrN1z*OmBa;nb-mr+r`13xvJXU^gNGFrO89@!0t8>r~90_gF68OHkRTweq#z*w`N)L&Kdj)ee^+p0dpj3XJC}bJ z@N?ZU`@P?uJ%=?!E8%sgGRm?K!d4SfA!4(CfFI*FUue!rei;!Z{XW6qwW&`PJ*lJA ze@u|3XNm*q9yBHr@ZUR1yw82ws`w1{(Z8NCxm6vc@cxNiwViHRPoV#P;=S}k|NX|z zkY;J#IOP=Yj@5NqxzxC|cz+zxYcr?k?DF2v^T}Pmts&iX+INmE5YqLndz*{ztxCW) z6gUsHNAwCfJnIP3wAmzv9ewaM-qcm1tZvGs@0xmr$z}YU#HgNxEwO&RTg0r2GG%cc zDe{==bZBorj>nxD)xZ#tRnKiJNVZR3&u#O6F_QGLj*ie?b=n}jtM&ofdK#RaoeMYM zRF^U@E#{70LVIMP*b|(_el>Vf&;7|~2L>nq#1va`J1#@shg11#u*)W(($bev!ogol z+Nmwy>!guZACgaFsSltY!0T~xcL^)|c!ip^Uj#m>lRMY9+jQK0`CII0i#E6j3(nKErnCtXa@Je0iwhC;f7sIbXZHt)BlOML@G{|MNA^ z{Q&jy%+B$+Z@|AgLYj{DmHz!E{l>Z8W%te?!id5IEd}fjNc5 z53)Zw>2X+p6pyigM~Vw%ueYC@*n0iQ;$mbXIv_yNSz5?s*^l1GQnwQn-!@1@*`C5m z>v=!!`Ftq(RQ-6l{CrvZe42tvi7wL=)}|pZ_t0X$_@t}rwfkOugY$89nbMf#uOn%Q zGE1J4V()L-PLVS>r~#2f0#rxjxUb*CTrExzg@=SG6 z2b1YafW$_Jd*NfHNG7rDFz#y)2R;R)z$yuD+fHL0_bNfQ+4`>x9mYJn)O{Bay`>0@ zQ+VVyJz(*Y10&?Rp(~tPl|1|Q=^U+LkpR*Eb2x1NHwQE!JyB(z9so!lG!m+v4$|E? zy^}w|&)?Eb6K?O~j*0Z>t|||UF=y2Jq0JJ7^O_!9=zAq~Ug|43a9Uh2r9W5n8Lmm# zSR?oi26{L<;O#cgXol3*_V{b^9WCo^_Us814e25VdZ|ExLx{T7IxG(1@r@($dJzya zD!Egxz<|ZByxV}<0`(l&?**V$4DETYjoQK$i(!kqihE0I{)KB>h9we<|yu3 zxQ@KuVpSX)R){&Gn%*INjSwl>3ix6#@CwF@U*G0uzuO6!YrkmV%eb>JV=!@cVlnsz zw>6u7<(|zyv{ntUfNTuFO8XN(-|v<5si;r2b)0$zqpl7&%Q;;T>)J< zc~V17_+#LO^f7P*5SKOlQIxH<6JM+vck^o!KaoSd-W)@|ku7E;_}-yCfk;*RZRb7{YUy9+D8QW@zo?(^RZtX-7s8FfP01-su@(aBJV{I!`>$Xk>i=dPU zDi>yBiL(K?@I)~^%vd9ds667Y? zBpZ75$><^dwXh3g^yrT-o0BG^#hA;O_=v?lP&r_nB}a%{pna>-%!@d8{L>BA{;M~T zO}N^Lcg}Z=X36^&l-~K~9;TW9hAXz}^)#3C*+r?BlJfcYH$2zO@6A=K&3GASQFC8^09!x$ z$I6UK;ZLr-7y8`%P#HHf*6*?5puB(%P&5QD7NZ6-QLIIHpHw>NjY%xRZi%i5S%#i8 zQs-fKq+UYiQ}GCKxs;ESWm%DnBI``Y8ut6^vl;J`?^)PB3=&jQT9>G1$R%%j)MvEx zsBYgf>#P68crs7P1S^6n8qFZiHMJplQjWh>JQL{1uj)B>_|bq;B-!kwmWB1 z8JLii0(T`ryX_7UaoL|k31evCQNi3Gm@iv9oSm(yuA~8(Qp1&H^yRoh}m{ zlNt&x5YYv3RZ#|{xAbPjIM35y#UfyzV!g7&AM0)X(ZcZ1csPS7Vc@_5x0BK6QnEQq zfNB7V(ZIF^nwUhm=>b^V6O`M-4X19l+)m<}C0v;?4A^gL%^2t;vFxA)#^O_Ry=Kw} z!XM7KqLRbaEhe1m6fMP^Iv=syh1nd6tvHbMeal(!(}sN4Z!uTLJo=5MIreCMZy6}# zE2NoAr)M$=TB}r&y2$|Jj>MIBp=14@z&~!AMA8&CG!-N{JE;|aA6MgrY_MKjtnnyq z7iPU7Jm-Pm=t&xx1&O&DhnNJ`r&q}8>oPZqFT>iaQ2K4oWcmFK)%IIGaD&G{lCd%P ze%rX|^NgV{%IQhhARHl17S*sp5}tay7&nk8d+gf95`%S5?nlxs+pmZ)Z+>M_0`39v8#bDG`*Hl>3b+BU zKQxjSa62Y-4OWdTP?N8Y)^;ARb}-UBNM*(vS}lJjX{8-heVuL?&X-VeZk+g5myz@ zbOy?=Rav6*I>8i77^j7WyQ3fsBV(a>gWW|xKqSrEwd1j!xovKd9(IQQGU`|{Hm?&4 z4@&yfB$RQPGSfBlf;1ivk~E3Zg{PU%XxB1}YjHiN)3*as@lSkfDJd+YC2=SNxy(^i zVfh)GpbLE>CfnJm>kKs?sNMFS1HuwWX0m^6t8>Fhi_DNvhJ0!->ZNer1wPc%L^<8U=BzTLDSF0wXgq@z1lVzN}nN|y1L9~ zlVpP$lav8Kw63nN@Y^IITki~uhq!4NnW>gppKQi7C+L*j5iJx=oFH?}{0@L*N z#^i{jRm*=8R%C6@EHW))=R+Y*CahDLL{6aSqQ-RV@4sG8>zX~MjPVw#R;0CZ9y!h` zOO&iw8Ds92E?57U7=K~?u&A_vsO8HIP6vPP(yIb0t*e*iWKU}I1h)Px6Zf%$PuITR z?_a42&np)4h}||~FdlClQKw!%Ibj#l9WwLLi6KLJT6b)=L}oyMO@QshhWKZ_YGdJt zlQdk%B(!RL%r#YoKxgkG-foU23)CpCy~;WqYw|-hqF{OgE^*;+D-XQ5kgY8M1joZ^~j{>$F2Ua^ZKv8gZ5FQfKG{^`{~62Y0u_1 z&u4z3tN=A+o>>$w0trCv2g~wmaWVXTN?)|QYulZ(@(r@j7QQ0F&++93Gs{gt|FPt3 z@-|hwnK9#PbdU~^Ar)$=3gS93@k1vy~q{kb|CY3nAF$Cs|?Ec3H7bm%zd_KlpF zPG+)^8#1SZ$dptxwP&NSaAxUe?>BK(m6kXrvZ3{0aW(gvXb8{q7qR2Fz2a{~sqK>` zq~t@(;jd&Fp|+-PgxvbxIXx1EkZ>)H50re2V1!)bs?9{1j*G8mYvFHtlocAGN#f2!n}G2P7h*;{H2 z>=MmO@oiv3rQts#1L{1AO+KFLOVSA1mRo)V?<0M!QR#)?2FyV42@L&C;>9QCYud!i z5?_2RzaGCh*K5Rani4iaMU>lr2SM4DY^9=`(!a6g^2KbM?4c>e(1V!VLH`0k+l_uV zwslfYL468JsTZc-q@F-5!+>cK><#)(izmM(Qa*iB6;Jf$=_vdDQ2Qnl$)Yt`WfwYg zqg@)JHS#6AYXbnNG~UKiJw=#&?=a(mfx`1v}uhi8Avkd3VTDUix6 zaFgdOmzmjM4t~g&*U4Lo7h%{r{EW|-I!jzvy;VwP&2%U}Y!!`1Lu%|Tp_iZpB zGzNN+0L9@hI(1-@PJ81Jh__S%7s171P2d3$u9kr5+fM<9UVHlT#BHnR1fJB(VD7E; zi=iQHoxNEqp#v1?ji?2ThTTznLf^X?Me) zSqgVwj;rTM*i5}bxvzr&PT=78*JRtTuqU{nLy*9tnTBG49_zy~(I{i^HP|#J_IR9K3&x!^H$M zkylkE&PfOH`kn#~RJ~t#XHgjFXO+@YhE&l?21FUc>|N1ZAWiUip!~hJQFwfR<%aaM z@edfaL3qP_Sn;oQ%l{&}g38pLdNeL9L>PLD)Oey@b}zm-ev0CFC2iqov0xyT^1vLW zleu|)r-_|3_>;2zm9dw5h3Gz)Jw4=;bD5VHyUWLul~*+t$g?jfCsrKqJ5zXz(rx4T z%G=)h)9fuwU~V8Zq55`(+>ojhj7(7%WHbNQn?+YYM~X4i=LaIe;Bu_V(Yzs=r!#26 z&n(EXSHv7qaQS>b29YHDQb$qVrydDP@2>uN8yd4b|4c-?(BWD(liDj$JuQoweq+`p z6;Ifxh?$T}Kudrd+73Oe#K11i=@V507=@6SqZurIq5C~=orKpfZld-F`GMt}`9s=L`Sr_TBzO})QAfLB7 z$44!x926&UXpW>ePz`CGn#vO;uag+vMd!Qqt!B8OVo@p9Ft?k1ou#+Exd5nr~&jx#kkeY`p#F31Aq&mL^o( z(*FA6hpq09gaQjZ#sx#{8QiNJ#`@T1S7&9*&;6Dj(zJ;X&CUL@;FCNX-$7*c?~GOs z0AX=qH~aL^pAbG3yhofhhbxw*V;7aJM0%aM3{51#0CHhD+4kU+yIzA9{`8YS^9q_s zk^Cbq#B$sI9XX7C{S7JIY>`Q zk)N8fWR&BPKil{9+szT{swnJ}S>qWios%g77ZQY7AU_awO}}edlLkJ4 zoZPCtvh-LtfWQ1UI$*v=*G_I0faW+F0PE;Y@`Xn9Q^C-p3XbuGSM@AxJm`nzU{8t= zCel)t%6f%eO9=8?!8G0YOdWiXiMco7Jp7v;I_YwyM}!_@@q3Z1BF9(Pn63Lsjz6Y7 zTh~dBkEx}UZi&Uwl8of|6E&-n+_xKBbXe1IJu7V&J}mracS4GmDP6cOP{l>SjyI*^ z6Aqu6{;R|^0KS?&jpansuHL4Oz4K5ViAvG_f(~)VY5B}wLx5F}j+0$QYeJ@M?~E0a z&^Q^b0I3Fh5d~fby0n0W4fGGQLu7vR!phC2z&V?!DFZkRn-9kF`GWwc+qa^L;_`TfLiU13Zm01tXxF^ZK^uN{hJO^s|sNOK{~51s_p-=v;Dct&weB*O`9 zk;3JyNM{TwP<(^)a|ckW*s(BZXXGfJkDRXJmMl2XuVsrZYNK5@iCgctwdls^7wbbR znuK-8VOcc8gY@R^_tZJ0q;iYdu~cn9XCs?I$gj6l<6l-I%PY_2fC%zFBVSyza>91p zYXT-&RlV;OL4^Gf&-#9^9j}Of20L8~$S~^Y__0kpG4~lU`PN~2$yU0ZsR+kP-vb&6 z{(i{R-S0g3jhr^2?IOFYpeiT8Pqa%Ry~R9_!I0xFdk@8l;I5_BpbEw}=1gKNp>}YJ zv04!_En{*A7C&+t4Lsz}8HZD=si>=JiDSmyRpJw&Fz(*}YPbSNOC=Su*SX8r z!Uhg6Tw-}T4pZ4c*+666UOze3>6$aV_$(anYKO`+P4mc~4?IKqVj#d{-WycHJ4PO6 z6|c$^A@WjcA$=-6kJ*3P(!pLZkLTYkjbvJ{aZq=M@SWlNfy!hMD6FB-=Rx|-dxyrw zsP3~l9)M0<5UkXwPjBUOJ$^zKo6_KTYUIWDQUofC2jbW+6X*z6=ZL=0E~kVLuJM8g z43k?~fSa)D0GSAE=*s?(amm~0P|4U*EKg?!?F(Lh5!_)=on#?5u@Tj0R2h7~FBZ-8rgAj>=|feD9+wVR`p{UK0;cF`T+5U8bisAs-BcB*c=&0faSz(`%9j?$Gno4 zCn~eSufsLi_C^a=J~!)HJbn;nkQ7oVXuwCHHjD3{K}!&mjYR|e*Q!y2IbOc7lgI}J zTbVC#Pofnz&Co=Yi2iUo(N5XcP(!C!w$`?;P>m9k5KJsc=k zF;#;!LNp5NW-(8N#qJhMm@`lAl}>rf0cdgTPtiJV_j$E^ZbghoKt}=YS!nYv)W0Rq ze;DVoC-f+gaBt0~BABzF>YtXq==*D&=7Z z?A=frIOi_5DcprwQi(gB6^%Y44T4WVdXJ1;Z^Rx`e2eGarly@mg5ew^dwoCES40!n zRIrTF44ox(PW%!QgJQCXK#z@g!fUdYdMI`KIA|M;LkNx5;`j+@5W-ua^m?|~u(msQ za#fK9%2YMGqqm9cmTR{J`esgXYZnFyA~gq@u2qv}K#h_^RLL|=M5r!5B3b^1@@tFP z==G|8_7IfEK1u3v9Q05`ZmJo80!dia6MJ>;ebl(ChZOZz+{i#=a3GO>Dv{@~VjXATQArM)%Hg z3fbbZ!%LUvx9l8#aV7nIk!~q^X^nKdY4SOEuiLW``YRP_#XU1XC95^$((5NzU=r~` zYeRp02NnWF%Y_SI1oy{$K22o?+*p_Su<`qJN7Z$IBz&nw?ssl(o|l2FRpZGKRA)Y> zLt)d&>mLS_9BS%h3y*G1pJq_|ffP9Y4;^g3CnBs5 z*H+9n-k4k-M;~}#m_t;8ka8}V25MB%Yw6KA1>#*2rI`pi`mzet%OSp)7xa&<-0$UQ z&Ci9F!`v^M*781|1CP1Hn}`Gun>|Eg-aPE*Cocu-XSS*^g(0VDt-o6}KSZxq^3E`7 zj#Lahsstft7B)|@F3|Pr`|Qysd>YBTNpG|cuS?voj!)EipSrT2Qjc*!3l1`FA4+%E>luOP{kwbeBIL_(UoBM`cQKAz#^m3(kqqy=ODpd zy+r<3DhwS+&F@Lb>Y8eQl3}VDNlvPNaGerVaz#;fRNsVFG{6+fsnX-O5INCKrwCa_ z3Q!l(CF!-@0zb**Z)|4A)V4C~XX({O-078J zb%j7vO!Z3m%RSdt{pY|K_At;kwfS^sGW6s0fO1UZ^D7C~L$@!h@qX7#fi*nWEOJZZ zlutS19Yq&=A+^Gb0U7aZ@%rkw{u>t*<$ZH|;5pxO=0vD>-VRP0w&wkyvYNBk!)5Fg zes`g7&~_Cv@jItlVVE>VQ*u}9!RlSs_*+|W{YADsnqBAn{(W$2ECEnzoPesME2gJl zK0&Q8h7$~4W4l48DnH$1vwYB|OPI;aHc*}3Y#`?37U!to38q!{aHhK$!bmbmAUUs#PX_^@G@HThBbj$+K`rM_=L2Tu2laRgHHZ zUP)?0SGOjswNq@{yAW`j9GLsH$qJPeQ5}lKDXFe+xqS@UFn$DDF^9!ftb|Mqb?x1^ z(4=$Y7)EK6-TFGA%&_uWAWiGoZA=(lNHtoMU)_#(+oZ5SC)lv@o4$L(la?i?=168nr7~=2G!_w9G2#ZjjOT&orntbzoIAosMnm-@30q4; zWO$g;)5cVKKS4@|q2Z_d_8?6zwchc%qW1H0K?0hr+uy{`hB?C%pT3vOVdkI4eZ)=F zZ9D0hDMMwH`di@8LetsUHafaRFM|4;Bz|r-|79I!$i+&(>z84SbvB=A(b!MFD}=vR z39fY~v$L*dh~55#X+Mo;zMMp52pkLZ+D-(X+M`pG6pFP|O4^Jh1oP{d?vLE+``CT3 zwUpndFKv;Gv5EP7^ZXggJp@*Sh=qFuPW2A}|9SZTi;W@H@V)u1em{#2mG#(j zqw3%M?nI;BJ+nC4N#80(v%RD_>as$DX!%C2$9IR9Nn~@E>%=* zlJcOle1H$w2x`68A*6CLuiq?tXD1%+i8`=L{zlisC2hv4(sk2IzP~DOoLfcY$ZYqL zZ$9Nkx3A3o{R!gxw9ACgZy-Oi)UBwde#U4mlEPwsuHMJ#DG^sNyrH#98$=;`r4}yZ z;G|Z;#43l|hfS7WEyrDBZO_T?P@l~z00ibC0wRE+=VLI__<*|Kd6&}G`)rjq$5cyx ztNrWfDL<>K({A_Eh_v_3B7X|46}5MX>p^)S?neWE^<1VJ@OgCb zm9_tI^?tn=zR7biC9%CkegC)p%JqiMQ9pl~nBwzN(`9QxV+3@y`jT2};|g%Kreitx zJO+O#0_|8#;q7q&VS+t*^HU_UW1dZD8`xyN;RPEpZ* z^0y45d-~az=bxrUJsGG0R6kMbio7@ADk?rGl!`Ta7%vOgvY~k>5KK-5y6LiAfK2&dL3>56$kSt((nXz^sU|jnmF({$=~hmayx6t z<{2f<_td%ZXLhDgkTAeD>40!dT?Pd}N~+pr`h;>RWc-A(eDOG!GdxJ}SSn)jG4jht z{1mhQ=xyz~jh$<`!9(|r`eiZB4_^Ao_{Tck zI}kSgRpI{#Z}-GlJ-)7_4Myn=1tlJC<$dm`o4yAw_c@6a#Fa-JKTe~#xN&GRJ`$6m zeXV`OoZ-7@eCxrb{p!0AE>=b4qFz+>@>^mcmng>Yx5rj&{)Z-V+`g*#qUVUhf6 z)JBxv&d(`(*Qw6L8q3I$CGIMvqW7(yZz7I93Q`dd51|JqKPFx|{OCqaWFq>~MWJU2 z@h`8y9kTe>Dzg*HS-r$_YZ>cls3gKk$HEr>Gvm@e2^GB7Pj^pJjH8gy~0-#Qsyka#P zjY-d{G5^wPke<-C6B7$^bLvN>|I zO`9zPmgeqX598|ywAB}KlrjdFwVk6YuV?VgPoS#2^;wd((HudbB zTwsny;|hx`qu=+rBG1-=^ctti3Lfs1>Vuc+jgcIFGU_&ZdNzh1yNxtqLj@ z984on@UYNilmRc@iqobNZIP<_mrPs`h}N-TaQm4nKGJ?SYHH<9p6=5fZe##%vTJ->}ta4Y6A$h@};z=!c7j zNBj2>D1OiOvNdt`8S92TU|fPqh}soij@#@PVN|={c?~04SH7s}p0hh8r2W1^`XN!J zo++;x$Vsn3jr!HPpGyme+n3>|)!pV~rX9pBqU26rQ_smK-)GBQwR24Y8%;!Y`%H_J z@g(l!qaOf#wySnWo+)+T9wAg*T!h}LsMD!uHy#{+G~|@X;bA#Cu+0spGJ?ZqU?6BJ z)=#$#kR@iaJKUEKQk2wOu5WLl{B-_Q;c{t6Z%IRy{$w+_MMna-;BGp0$f&Y8WZz6>lCvXL^BbT>^i&2{4kY;3`hw?XS`U*A3346-) zS6AZi{=e(}WA&fypKcFZLpw_|Q)d@?Clj-Y#0k3}j7UM3Ji(@ue*_pHA)Tm3+pKbb zv4vHn+WYD`3GW@G=i+vs1`|EVaPGLhIAHL=+iGqK$W z>#x9nHvS|=i{S$ayUo`*H3lR5S$+8f>C4&aXO&}agR$kB!%f`PyzN9N32EfeI6-2C z?_pWa5`4cxvz+cHK6fer;%H3h1R}`r3~YNN`(*cEyFA=zznxyp+%@wu_fX69xHm6m z?sPexEO9cqoBjK}j#Y-Y$Pr40&#ORM49TDxBa|wZEEb^0WECxyz-4lb2D&q+($Y^< zAw5a``>2EGU;&NNmX3Qnb6pJt^)ks9=X3hFi4C|-mZeF&mKn^6b!u3X26vg6p(d7L z$n=bL%z>s`-}D#Q9dR-mBxx<3wGzpX3$J>k%2t@b2{Y&V@4Un=*yHpJ4B((uSTWx^ zjbxPr(8U2zIVMWAFAa&Bd5$dOaWnwlk_olGxwA~R=nt%uN-NJ6m&LFS(^!iF^n%HD z;<(H)Z=4Q>OG}%F2_)_N$`R2k82=rh#?DGNFP(-iW)(?QB(cvk17-D09;!@ZAOB|n zj9dTl9c^3>{MiK2O9%y=GB_`eNUQ>mDhg$~tOelD0SnSU?5-or#=f6;f&a{t*GiP6 z8b!N?k0wD`Ic_~z-?-VysZvO9iKnd?kUa+?1CO@eBYkyH81jjo@@YyG_br)zOxdi^ z@s(?fF}H)0(P-Zkeu_X&&x)g)XsZvCs?RT~u+isPC_{hYY-CeMVkwaWZiZvkM$RC| zzzV>jk)ExBeoK55SBblsYJrwmeEnkIxkM)1W|IZc&uTXV6DJG{3cbAW$s)Ajo6)cr z%2ppW6O_^K(AqQby%^epdLQnRPY8VO z=YA>~VNb|PuQcctpN%nRe6&zOwq&ASegQs)n;|bu^L`wU2Zk$>(Si+og<6nQ_KEVa zS1Fw%%C=)X&0v~ASm%OeOr*Jb^B+4UChc3yZg7Mt)gPmWhwl-^&d97+7Lti=;3lPR zxO;*vGhA?x!QL2OmA)C&{P3{>#npJwAjq+@ij zsV`qlS)ynLX{Rj^_Gdh_9OTtBfTUFN4LyIvI}KIpyOjr1n9uNYWP53xSX<1BU{h4t zUUDA~JGAz5{it?cBP(mZ02=g6dLWQU6mwa~Mw<1dR2;>aL{U+z@|!J^%{aA~f?zV7 zOMoSmyzzH?Y^tk!vLe1rjyuv3<8fzkJ^0MT85t`AVsCJCBGD1_(%f^H?A!J9iS_}a zkgS?=B7*oN0pGzR95`fFQPz|Z?=2S$44K9vD*fsilne|NRuPkI7MPQ(!Bb#J#)F@* z-YDsGLyFxB1l}6}Y6PvQ;7255I)raBXa^s8f2b*p)uPM5>A+SSD$%>CNqRAtG81Jj zG;3_*Icnc3qYbCM1mYTcSSFA!z~Qk~XdEJIkAb#r3r!*@e}!DG^3pPW;{*jC|BfuN zIc46Y`zMJ7D_>}6_TGfSI2njStXLQ%kRwnbhJ2Q)I?=cm_-1W|wn&g)Wrk)>HR9WS zndeG(MudLqv>=3Sh*+P*s-qksD;v+P<1Ezn;=B$P3+I(kP_P%lol-lM*iGSRVTrxN z9R-^kPi{uj9XtSUi)ol>pxSW2RB-)siSTG&T2T|s+klx{H;DC(RTDT^GeE9F+p|AS zAdjq?3WjiA@qZgTGR>^w%krm|4^ynSzK_^#8HsHr$T$VH2FV53@$Pw}X`|b2NC%BH)xV0>7sfD&r=Q zuFUtdFvRsOl4UoSRFRm#G2dS~;-Rr`W&TA?I;(3Wkyw#2IT^4=MXHN>*|J!%Pv<2T zZoVc!!p=Vk+F4odk&dS-Eo!j!6&eOHKq}pe2)cy<;8hRak(W4-cj2oq<1tPxr2H}& zt%ApP4w2Yb1I@*!BE8 zOulK4j|u5FWfh~aKtNjd9N4G7rbB`yqjy@1T`6$8!U>2=O`8_r-myG;@s^Ar4h{7Y zxY!ET?6Pztm(PSpTct);rYq#3ZC+Qk!uUCq1~L`T#mWZDT?e`bVkU1CEtK0Bxp^%c zqnc$&4~&FaB~@Na>~Z)H!#Nh9i(aNARo-gYi}(iRUh{)#<)tx5SdX?hv6-(|Qto-dcBsoV{@OdQz;R-3#g-AnbC#0eZ3Qm&$WCVn9QmvQho7%N9~~>uHBat+vWr_8 z%3)-`B-@ej+VJJK7-T>X4hjg(gq*h(IXi94FRZQ7uMJv)scd0k7>|`v3T>3GUty| zp!D*6xBbfgk%@ALp|T(w-Ch1kJ`dff8`&`f57ahUO*`6P>G`#yX=%07xqyzp(ki^N zk+=Uz(-jU2_HS;!?9{NX$0n)d86biJ_V%OnRKR}oC6+nGw@L?=;)h7qZsRkEn@7X&okg^HgPXb8xt^)HFu00@w=MO$|0VKBs~$wh8E3{) zucK~WO&iVVKFWwa;vWkO+9?r7SNIp3&|E(q8QeNc_}+}sL(a}?FOnE3FF=7^a$Ns- zY?qWKq(DXAcH`EkftMxJU7tjX$j>wMWmYir`ozxDwdNM>>9IM!;rHnV9)42KEDm}k zXYH>#{b)6}nzYET=5LkBm6kL&r<7WJ5U3i&N-iKtm*-3QLio#8jW29zc=_oexYId? zS^FPFXqLkVgu-_R4=>$dxBxYkJLvoU0mJ8GJ#xd$uo4EcE8_@Nif z|B}y%3SAy3<*D*QuI#+*%Xz18=nO`T+Q&q1BLf4>Vk!&g0R&D50B15mx%ZU|p89v? z!lOGiIK7NiJOVEQW1nM>6Jwu~f6(ba=QnjRM>56 z<_1DJV_&gk&fvZ*aP7Aq{1Pj6hgI{#9OT41N{zw!nF7YIrcg^3Tl!>2;x4=p64rf7 zVb>re;NPlckEt%Z{$3m~6zHC!({B7r8wSGkd+We(c3tY{Lp9ARR@!X*C6a~Xbc~+PW2#Qw{6v7sTKGjJF z;rhFlqv}eylJ5GL@nShW&4!rj-leFp?gKVhQpi(6xDGL+TAWp{coYP>Q!Q*c_~K4h zDXZDY2b}wajy5(|X%a#Y;10=Wa0X$})NG|2BbxKy#ovq(Czf6@Ag&|uMHS9c&wazofmkyjh99`E;&K%?>DxBT==Mr_prD+p<45WTpoFVKPJa5}C-gu91nBC^D zZ)DrNyYsI8EmjDFndfQ?WwU6lX96BOP04DW?U{||p7S^mzWIBZ%tgfvjb(;JH%>*$ zK4V|A{9&6^Z+Xl71#TRaSlp?~rQ%|(>H4&uB6&Y&ke?!EJsa@evB~fW`%llxx^|<1fVKu)h zs}`}A9^9_}EP)rx^EFVdh^}~W6rN>l{8RRck~Td z{!k-=N9?n~k*zM~C4ZwmpJrKGvU?Z){W^0I+nTjv^_Oj8XJ}@=4t=@qclY<(dry~7 zDoX6w+roe2&Ye%P(?h1ewQ%%)y5_vb?Zfs0R-W)apk(Wt?0dfAxP{fMiq01s4LU(o0QXU~taQOUq0zElMl_o)=SWq>ns? z0|{3YgXbnpUX`zc7|gkwE5&p*Ve-#hb-2mD^Q4&g6DN!3E29XxCQiPXhbmN^IN3Q* zNd@L-P_TiPG=P9Qgo2VA6DLnh(wuxYmjkXCxeNfUj6eX6q{$z0MBoaMlOd=`K!8vA TlXVK@`9R4s0hmVT7lNb!8MAGV delta 16709 zcmZv@19WA}wm%%(w%xI9J007$ogLddw%whMjgD=zW841Dx!=9_o%hDS#@MxL&-%?- zYphzUYSu*RCFtrOP$XqJa0m>LzsoLvJ%19CB=oF-!U}2xnfsz>!EJ11@102 z=R8GpecLu9Jipl7*r?zVTYSLsU9;m{-*Yq#jBDMbySCdJV}GnraAs{TuUs=&@R0E* zgC}lQ2;PSnmphdKhCfp@RGs^fPNFWyfX(4(4ge1kx464H#Z&{lBP{B#lAkppZCN*c z0pLt8#Eu5F-oJInro!x1OIZ1BDdWnla?h{Y9T4a|P{781FG7dR<~`?H`KzwI4>kCm zQfA?oP9mD%vkY#U6U`RnHbXPK-s7#ZTli5xd^;|W6YKKO}*1|FFT%SX-Lu*4U= z@Jmay8CxhLg!ghfO5}}-!_MQr6s7#Rjx2zjCZdZi-^f%@1S+|gf-`QK>er!@eHh=(X z`w4piR0n+78^&o-&2cJ)E6r4|jRzgpY!7SKQaq#Q7vHVN@^Y!ZMb@}UgI+0#i ztU<*72TH}e`Kr%n%K#L|Y3rEnbAONStSAU8L#c>#vzB%@X!LEC7nY7D?d`s^`g7-5 z!IAz`on>pO)m$JxZmazT&QT&Trn?TU*l0vxX_xUT#%;{?$Sig*smRLbz>gMYA zX+$GqX*7gATrp+u5flNv;B>jJ&uDrpL$@;t@>`D&%vP|4JBAtJ-J3Y`A^?7+!eSk& zDfw#z5oar$>(igP;(h9ix|oYuGSz(?S%BXh@pf1^jkZ3C?84fLbFTHz6+P-_*TFZv-=pR zUxHU)OS1uxH9F*4N;(nlRe&iAAKV%-d)_Tau)XLz!v zfD#`1dGW#U64If!up_AWsEs|aBtK-k!Dug(^ZTkwT!nm`VV&S;U4UsOyq5pVNg~w6 z?Kt;#wDcOB0E7t5Q@6sAUhI8cTELD3SXqL_bD8Zp^JOpVc?eW?s`al~6nQa!M9#km zDK2~g`N?&Ozjp>fNHjBSb<1uWK)CHSD6QhQ^ zJCcw6PF@Ae%Ce#w06w?EiM4hu=r(r7u`ZL7)5j2B7wR)rFm;qwnM*6cYSW1ol?;+9g>JY_V>0`pbe&!a}}sdHM~nsbo{INPkYB_B~P{R z(?I#4tngcTi=i>+4noLAr`QrX81`I>omxhtbf9y%mD@V>0mLat8`dPd6{z&(xrq|C z5aZ*F$3KqS+1G3y+! zQLZ}g$!@gE+oArIB8Ri`g}eUsMFRUHSt8K3GjB{$i}n_m7a+=(461eMD8BRuBJ?}$>Mx&%L3xpIY}MrV(IAoI+u6b z%V|Qk(wRYv1JJjc!c>uQjQQ|-dXMVXfz_mdg4g5JBbVNG9eJK_v&B~#chEy3pu8iO z594LYs{I?R(5MoOM-y5r5-CT%hDkrq#)T{bRM`y$0R2US3E=xRtJ9@Vb3Zz@IAZr$ zVb#udxcMMEVF4V=-Bk4WO}ssKe&uD2Q0z|nBA$L|_K36bOo(o{hR`_~8ue{ADNIU3 z^Nhimo)bfT?c+HGXo@x+dxGz|wt~~h5HW;H6~C3rj>uy8)7eue5D*MLYEl;n$zYRSYrq&%*iCjfx}jMNa*Tvq>le`v@? z*^pc2EY`L^-Mf7CJ>|(E7U#7wy%#jba*kF~-Z4|bXEEO`&EW9K&G8iw%4=M!X-6OdT9aBpOG}0j=$6qy3Y~Kk+2#iC+#9hGF+SlY2 zXgzc0hzA(6qAm>|7!|DY;>ppO@+7Cv%I8sKYL%lZxG2l@^3j5FJ?YmJQ#Cn_wsy0& zIuZX7CDzM{#7EcSLTmkzf>>1}mxc=UP$QOgE77$F)!FmDX6CmI-N}y!l>9W2U%yww-fXvNi+`I>6(#MAgi&<5O?FIaDPx65s*ETyuZ(q$Yez~7Hiptx zihN1_R$%<-aE-u^z~eZcp-B_wRqi4OP?vG53+BsF%-seiQA-sw7o};HDauJUg`NPD z+j+CaDWhcYz7MBRkX)JbPzmEHlC>MlFDrG~Nu3Kp9dSk{E9yB8I{lD$P(aoHOy4Qi z=hAlJfYU2!;L%l%cp13kD^faoDI&b{D@Hk7PBGdgTJ6-aEKgoo(~vo>4@E5pK=hD8 zV#hE<**_uHo6I%W)9;P~+7w|IV!RtIM3f?^>Lq`6X#Y|n_K?BE2GhwZNR;^DjG!E* zlP%2YamTk$sNK>8l@-@@0v%|f9UqgB)Pbm+WxOL@*6?<#%{a>!pzrG`3~*xfFC~3e zquHkMp>dIMzfc`Pi#R)O-C|t@)T`WbH?_}3Mm;qF$2roPRT`77JBJwd;cWuf?Xt;G zhj+iim^Q<&ghp=OY|SCs;bZSD*1;Ge-f6*_P+Nr}6|}qR&Nd+JbrJ0Qu!!`v-pgR= zgJg2XZCo*1;!@D?=l$+MEFQUOO%@53v`aBu<9!rZ`?MB^OJ7!sJ}VgjH}wobPJws_ zba5uRoNNU6N~-0N{g&Agk)CBJ-Z~ua-mqH^b67_QdWW5b>i09WFfqf-sOXsJNW-Ko zHVY8Px{DAP_YUoZ9Oumr*GaBhVn%iT7j+F<#p0rUUo}Wn?UoIUY+cDL784ZivHFnT z)Uw)TEh-$(*4Dc>82HoxZ$?V;b9g{@MF{sPiYh7x)y;4fK?zI!Y>bs(>~H&gx9`H@ zBEV}0cxMiMhZts^{od=I<)(B#8aU|FwQ&plm!@xvM4p$Xt;Mo?7^$z|?pg{J z4%eG14-UD))sh&7x%iIt(7Ba*M-}6TGiU0}$oQ1&CFG@4pqCB+xwnWoRuhHy=b0HK z_=y^wv-Z-K;#>+%SpjK|TCaWb^i+HDxkc!Udd}uUkv2qp-IidD^MoSK~7@vijIlfLF@-K%~O-z-Cx5ZO3J(}8u;q5#TM$&>zNPQ_hAsLFh;Hd zu58c`wp}`_%M$?r0wzabNiUHcM0_qGnH?Jl=ANTNL!zWL&%%?L3X!CvWS0%@z0>mHM2O8Iw=y z{TNi`bGbcojY`fpi60T+*2RGuSxk5=Z{Xy!t=i}30-_E897g~%n_b#Rs9g1E=#&TU z_wCq9Z&KICG#!wVOA*7Dllt^@&J2h7O~3soz8p)T%0@&LI9TPNy)arJ>-nai9qj+qX^(G>p+4JBHRW2?!r8%3 zBGS@UeK>vtFg0(o1f7~m4zeWe;^LL_O*N#4HvZynxWw=}3{Lrhq5tTU5dW)IIwaL3 zb(t%j#pciEU(3CFtpeip+CyCO%c#A&FqM0*g49xP1NxH;C-OSnCo!L)Z(f&lF(lrl z74Vbaw@IA#`VQJ@;gH|AM@)+ONWEy`*L5kS>ALPEfH33G=dut&hOTan=#bM-;NaWt zPI(R7xsCCne~<&P4W~8DKg$=lCCD;j=~6-Q^hC30(5IH~JehJBv6K7UJ81r?mY+*& z0G1)?{ABM9ljF@l!QR$-P@ZV}XP1liGf!9?Hc=Dl8g;CR1)Y!YfzJ}MaCXJs zhHLrYKMYq~s55vo;D9Dn1%@`hRSICI+F(`WpXP~f%T9hM563uT%G>$p zU%{S790VsWSYEP8EX9^pf^a>Mh61PT0M7-d(20@CA2TS^Q_Fzq+-U}}g)@3%Be7#o zE9~xG`bujrfWNA4U zx#*mH{}IkQK#U|;SQFrX&wxn3UM55%=mq!3pC)|qE6$du8!T;Htm0A#WDujj;|ruY zgtnae$g=8|&?W;UYvap+twf_XINt6q|mbL@^tJimpW*{Q%=iM458Jqz+g@(RxH+j?p z=*8WT3;p5t*YD!i*FuC`-dHk6Mv>%{1|#>c-wjrOXcvy+B5yf3epWz#jmooL5K?OB zvVcS8_&M?MhZmEEL}6=N7kVQr&FHBfFfh{%;dR@Bo>R1{lVk-q83V>X5{y1*fglP@ znAx{2B&xM4E(pZ54P}HZFfe0tyZ5mJgv8&y9xpRpT*4f3?N!bPQhMvW=>Kd3jHc^H z;QCY`^ z_ZBoVcJ?6%PMAzZQKw`z>h#STaW^dkhef~{Xp-wX(BPwUBz1HeA9l&Hd;n7%(~NGw zMY+tbnXkI9uI+Y%Q*h*A_Zj+I-!-$~dV#kOD|0ep`S<-yA^-&|ndjy~t;Y%1HNdAyDWRnB`v>1l z!e}^MJZ15CbeV9Em9IL`h|?q(yYCqCVbmP{6+g{Qk)Bxpw-pq#>2JteR(j|aPG9>Q z<^J)BsOXj)NPv&jw;9Afg@d8TO#TS)HwvSy4kYAJM&|ESf}q1YgjKk2Q>|aZXR^Hk zJWWJrXK{C4-*srI*%_=V)oGc3eUloNalH8qvDXhtF0vwEUNpwt!N1O9u1Aj9X{&7f zx?SH!oiOjOQgXH~{9ko1ry)gXN!;5c33; z0kb(wqvPKywo#BI4n{c$wdIfA3ot#{ucsWYjI+NJ+X6Mwf5s;S#R~HkEYl`4EbvPMw%n5sKW^mm^kbbgJ{uFs(pmf$TXtQ)i@#p) zA5L1Hgy@(QQ){mP{BMU3FDzc8`CV~2Cw@X-uDH5txsOWf)K0q;7_kG*afMz==G5Zl40d@C&Qcj}y?cXP#IM$(66)+51E4*yr$Vcb$IL2phjc%;{{< zf?n=ws6KqXPHY1Ty|PM6wD!cpqZ*&GbQ%p)oRUM(#~@CL0NLQ6vd4PGy!f3a87Ahz zUaPX(iK~c=SwY=^=PZ_}AK}?B;0@66h8$qD8@51-`BRpP2>F(J=^IseC8>}4nEMSo z?i{5Hn2f*%q*MEt_hcos5wGJcN358-H|Q%UF4xxHPjLIsORr_+guuODDRWu1Z0FW_ zz~7`>KDBEKOk#zZBgZ^sz(xEEpke|Am7$7$sx_g$paIy!PwR~**V6v45v`|=-iG_zexEZzj0*oH3WJZ zS;3aAs#&W0oQ0mSMhY93=l?wdw3}Oxi_~?Z{%oL=L38 z?FrB(A1ayC^}kOcCcS z*dw1aAsZcXZ=6$q>lZjs>d(Rr&-3|bNZe0BadL>16JnfOmYP%%yI>f!ndOS!BiHCU z(o^p4Cq+!~7^mlrATdA^6cjzJ!xUdmnilpTC|i1g!k-|B@jp_934&~gRW1i_)gfJ7 z+1dCUL?F}0FCbaGPiAV$Y`=*PU^!J00#?0xXH0e+3*<8_;bM9?Wwy6$5|qcjR&`OB ztIl2%mBkOR-+#o-UCbXu3+x?xJ$*$~!vGp`Kz@{3zC`Aop>_cHwg?NQ^R{&07s%)- z1)55jRCwv^7?+LVm?~VD0OSPl^I;k5dj=xsr>4fNMP1^{J8-m&?Z{P3P5S_#ki2d=yv7v;0or(zViv!I;Y!?J@YBM|WFi5V8 z^PY%*>Sw>{pKAl2X;e@sTH|YS33D(L7)VN5s*2(yc}M@`sMj8uf$H#hTl>tRwdak*nj@ z()(LZBalA8(FS~bqm{Ryhou>hH;564c04J?`wnQ*!98dosF}AMPJdAIH*PC+sO+U@ z67~ERsl}nc*rs*O8|-0jcR>S#I#hnTBL4QmEWU`PXCel{5l+)Yf-hjwb;P%?^Ij@D z;|d2MR82Wyh>(QMazx8h*W!Lg*d>^z=1)Jh_X-4zvRN9RPZ2h`A1kIDd=RH&hzagw z2M}MQVq9w#gZV}>K3nq#RB*VJnDYbPKP5j3eD!|ykRmmOmh4U0icd`yU9d>55A$aR zi^Jq_S7KXUYm+6%(QAzp@MeJj?vJ^`YTqCGlg90GK=tN0V ze=!0Sr#!Kb<5-}bhS0)WUS0fA3+2rcrSQa ztD@ErQ`~thAcWRb!E?2092r=?vx@}qBKZL}K!g9xvGpNx*(%gM%*tn~;Zh|j+f|sD z1K)2(Yua3HA2rKSF)OfLt3%HnWXdhxJCG$|nch}6pp*!LPGiHKlES<%dPQc9#~7(3 zB>EG?i&W%N-6;}eWg8?%Px_E_8f792t2$%PPee}IW=|Kj0C(krH2Qxyzo)v^>wy9+ z913tCI`M?IE-Q^iJvv&66T+@_wH{K3-TJ}8)|k6TNY)-kdBk*f%|^~+6F8GKytPHU zDC9DD4AhgT=Fg6#80m}dapev3@ zBdagkUyEEv`B2-oN`7AhPeLNy#QZSb0L9oxFT1712Z^_n^(qWW#AOy|pmWE2%zl%| z30m#7T0!el0mShwvI|0aTYAm)H!)R1N*P1%P8RQbdqThVPfEcG^bb~ja^b3n!CCUJ z<1bKUIcONA_(g|gLJ*K_C{SdO|KC^qA2%>i&43>O1HG$Quz`!+O;#h$87X}*U zQF)$@az zN&~N8*6P0FCIg#T$PWFANEHisZ&9ByMNOnAhBkQeYH>TcdGvX(zn9+QE22@&J+O=l z8^fUJnt$*H!G;V~ey-!OB@dTnfIeX2kz2%IvFz=oz?yR^vP^Z~lp)&;WA?Kj@)r;9 zFml_O5dcXSKPK&x4c^GrO?-CBojC$BFRNd3!2KFr?j7?+tbS6Nh^xX&diVZg(hPXC z`e4_*eo@xZKwEgWx_f$RL**kE+>gfi&5Ep`$SE9sg4(oU(2ZsOmu?QZ<|}uN%y%8T z^bFnxsDlbhb&np8rN}pTXxl!-qN#S$z_VR}7{JD$FIJ{$3(dCM$iB-X9Pc2Y*5R9e zf$nk}w_Th%X&l>;xvZ5dKWPa?Dsmze-3a30-CgFpo$!^DoQuh}D z9RP~a0dRpi<#q1W>|DV8XCQ0eryDl7Y1gvXQ5UIh%Gl6o4IrMc5%f&i9rAwcbD z>@^%_R24Y8g~VJ|ksW#jI%2ip8*bRM(j5*z*mQX9DwKrT5qLnj>(`D2YkppsaCxcg z_Hk%$&RgQDNxnHvXy@8C3LXGtPNh#IWZdA7ucG7%RG8T)rY-zJuxcG;ko)a zc^H}n48Ir#EK=rsl0Lzfl!W3l0iXcVIW!7FLZ+EEjB!Nkdu#!m5l0`D+Pyfwr@ddm2ufFwd)sXCT;&?t~L-;4#35i3=HCB>Cf zGz?+Zor2ahHMV&1)Fc5f0Z^4_^7{QpRpPZYovjVV5>a8L1%{(a&TFT~Qae^-V12MX z9trumh+TiiPukyQWh44ol!ba9Z4Nhalj z?hWo9pkYlZn-44~+?ap77)p1UWC6V_*jYFFyhs**GevNYp`l^tj*6v@JqnV>seYs! zb?wH5YTGAM*6*v16bGir6@>4D^n-Eao{D1e-i}~{hNRGF{;Tz1To;wVf-8hw>~Z*a0G^f zdSPbjQ@>vPK?iDmADtTt#5B0xP+^CDr?z0skGs&%G^kdyn;LCtH07OfsuH!Hm;vv@ zF_h?z#zefAN4ryH6yoT%kH`@t)H5aWY>b6_Q&~Yb62IUAcY0~RR~7QxqUjPcX-yFE zJs~3rJLK8eA8~-f082Femf3kETMlMqe-R@4Hym>{z0~uf&LkV3 z97mNwiD7+M@xk!(ldAN8$hbv0g~WHoEh;Hr8AY=$ud7Bp#<%J)9- z1j93ab8++^G=4p0CDPNu)QkP(t zE6JuR*et-LPcV-cazYYCd}qSpZa%E}gaznAJ?9d!V^HpJF0(ZkITCwY#tIf?6md~( z)4PNwD{sC5dsoOwmRU=K?JsN0{Ntx_7i!wsqC>vW=E3@DqY#@i~U=^322hA|QR)aMGluGDKnO^X(+b)(QX*=J|$mb_`7c|y=b z4&yuvB}XSZKBt2?a>(^QsT^K6RxudhVIm$ zVU6)DV>2t3(GN-UDy3aU-KUN$L?6YzUA>LQo=~%`*8cul-gHF^52yRx%o@nk{xB*$ zKh}zqNdW>j$r1L}%M!EoLV;bk`E#P9dS5{2V6KK)%xCUwjH;H3ZNBM5(zP>7+uQyi8->kA`K%|R{sDs_+`=H? z1hiwpI4Si+`hx-X7lWyEOKK!}KrNDcQCAab`A2(>U{CugVxw4f$E?WR1g%A0?f{^_ zwL)lL`_fXfAEUFbxZ#+`z^=!ruDV%xx0_U6`g4HA&uCYWf8S6cBxaBN^PrLA*?I4y z!!te6iAk`rsBQjbF|mG7`&&0vA`F~vXc#Q~$ITliP17bbWg~Qf0r=16 zEID!50mn6ELtZO3gU#AnVz)dnz?CgeOlS7wZ;=*f+@!2 zxCc`OJsY1dUwK?69IvsXOH_cV+=T}8%$5_?o3ScCjT#M>8ebdETT=`OTKN10Sn~o_ zF}4pobA|HkOS^^RJC$N4$+!ScoBO|8QgPjQ96l^pc!FmOrrnhKz8vcF)lsnK^3`xa za*hC%pCgc0)(ZiJzmCsENi0vbquCffICp{zw;A=A@7KfO!vo%&0KaD($r*88F9smR zdVX+QpZjHuP2ph`m&wY+<4y}{+_V?$z5q2no^8a8B&4T=o=(dAZUPdL!D6U=id2xz z0@QQw-sGBC%+W4g{a&*}WG%Q=BIhe&dRG*U2G1}wF;>b>HVzWE(T&b~++C$eD_eU# zFVzfl!qxn+vA7cI0f#f5;sfqX%s$tE#d!JE1;!JfyzOdITRbU2)rVif=m{X}wGy_# zX*|QR0>RrpuqC*tluIiW?YpVfrA{|X{is%+dPcc)qeA3Bw_(YP3<%Bnquf|c)j&O0 z;$$i#=I?mYR*EV)EmI`MdGK#6W*z1HyPaBEEe3={dAb8dfS7KlDS#b{Eb=tC?h#sD zG*2A(cl3Cyaeqk5h@_M(SbO+>H0pQXHXF(mSPHN0`PyA=6{glBW2x#&3uLb&u=D zot)!{=Ne~bbv>0p^<2Ebs%mE^$j+ZUc`Pk><|{vrYtc+kShoJ`D|A#f0oA@Bxc8hKEFqlJaFsX4EQxr?i{qk{k$ z3nL4eApgIq_U3NJg8YBiyq4w;<}Su=jxK^qPUa3u|KehFbg^V&Wn`yNcd+&%`QLOy zCl^N>b5l1aPHtv<7A^`=cWXN{1|BvRW`3rB2n6cUiGi{J3+NcZ)tFU*GjzDXWO_27 z5WNqO>su%r3mM73z@CmSW(=l|?hbAOWSsw{npzpV7@NA8yZon%gPDy7*hJ5S`Tq!0 z#sL8ux#9sX(!JTUPl$%yc~#lit6J1l*45QHtYVrMSZ%5)RZ3YNtLhXO)J+V_76%y1 zY|=~W!bl4xXcQV3T&kNW#VIR`M8zv8$w)Umr#{Z|e5XH-KKYLProHo@5}v#R&W@f0 zGr35cNnjyiSy)&SHxa9Kdm9ww&l6XkqyjOOKHvcQ^5<6Vxv62cdXVXv8OWRb{J*-x z1vLG-j`~dPUckNM*5G+~1bUczO)cpw>DrLOLt|3n2}euwBF0x4#@TiWEIdeM#e3d)v8AqPaI2+?DD^jmB-t)p~qf*qL7RNb@n7 zeBJ|uf1CRv4XNQJfGGXdG0A{^F+ol~O!uQM>RsJ4C}{U!CN`}AmG(PXe!(=xE%zrg zj$Kr+YjBo#tu^#_758@@(E+Ln0VuL;9*g$70+r-uO+#`ZRlB$V=;p3TFeFSNeS45E0Cnbv#;t+j-JEN4}l{0D3$HzcLk zXbaK7$;=9OY`s!dq$jCWt4Y;t7iHm!ai}&tV^7Z(wUlcQLCV{cxwieWsrh{9sZnN< zMbB1Vr)@Rmjx9Q(L$O2-Y1d`(i7X3%(iMHSfq~p2*=yQ^HVRr_uL%4rBRW$CN0sN~ zESs0p79vDsSdp`Rnv*^0A~*HBhlQmOl(Dc^0%sKRfo8nEt}iC0Jh>Ng^N}fdc=WHP zCd=Q5wLu$Bo-~Sw9QR}bhV0d{@){6rL+%eSmaoZOOVWPC340D+$gAWekeO2et4Cmz zM{TI&5^s5>@2#N+-*I>2tzF8??J=Ls+vAFPmB#IUNpZ^P^0I2`(kc|qt`nu;BjukU zSS=w7a~oTR0HAqXI#!Nb8xBrrut?=yJwWej3)_W87cxuHdp`9&HR08WpzB!b3ER~8 zy6f3aM5`KmP9BGzU1oLtr9c-D+szr`XRoVN1}#2OypGHp_glAO?Lg zPP=Wj#i_AKf5wHwzJSwJmLukW(nlsY(X;ZFiLuw;3Ys) z)mLX{+h3|ZTu~mEAa-m3MsT}3n*N$%2wCoUbv*WT--CHt{kf&*sT865L**h7_o$!b zwT3LabuYa$U8TD+i?LIV!P5fJx979EZ~!1xd_NM_i5C{B8_hJFpQ;2iB)*iAVdD26 z+ldpJ3i5O4p>z_w1x$c1ha)_?M&9YCGGD>6I>d!U;`NDSfw` z$5;}~ENh{}Wn?!B(kl)Nnt}Ih-X7zPD@cj&XF02yYPs^>KdJmA7k)Pn!m5@qI@D}I zrU&kTY#kbXf7(kgTgMyue&2E2C*{6Yn`@s62Mdnha6%{5nGFW`D=6ea11=P78pp8% zeKWNv_^9(|q-E+<5xV9@G~a2mC*i%clDl^j2rqXXP^b7kQ*C?qckJfk&qyT3q%Cj) z7ag9DqDX1Hcf>Bj3((1DDGuvci3(=dJ#J|elfP>S{yH<_e9cJY*$E5kMMOwd4FjM zQQ}>UQ|JiL@5ZXHX4QC1NQKB26Kib8<&H0iTS}iVrA4f(_LipG=!}zF?zjYj!S*!w z0aHWaE16@j<$};5Dj%dBI}AAaGg-eIm-OTuY+GL$I4wy51mo2_lp`|wO6iT~huIvx z-%%7sxItI^f7vf_cJ8j`ikgTDJo*iNchqswr|_)gYi7lQmWA(7_nZOP;wAk6Oe>uQdQS3*#vC;@1x1%oUj-D6eU_2U|5S}qesvVxX$S@8p|+iJ@@z}h zZ6z4v?)mWdccqr=Fz#u+(lx|T!AN(t*0WZ=-AN2HU!K?U6BXJvA<&`+eyepAn4vkjN+dmZmI%o^h!nX<=$w^>k8MM&!0&sH- zV%RtHY|0`$e=7<9tO}Ym9#;#Qt>Ql!N6k0zFM3J-CMo}7@NMF!N976$GXBgI2FTbA zG zWMOJQz$4`Idkm&Z;&_0-c9Ba;5*2>Pw3@RbPVnctGaq?`$!1ioz1{fzNO*WSJB+to z8qyziA*s~`uhpvE9b;#FwI_e7SSY2f&x#YwRqC@G4VN^* z06WHA2vWyNU$VEo7zHB)&(?cY$iz=SIogg$Kk0JRgwr`JBkYt+1dLom!!-K07=Gy= zqkQwPN{lo+W%%{jK7WpC^`#``*+I&cj?H9v~c-u}_QP|P% zEAW2yxz~`1L)HafPONY<@`~F+a~zmxfX&>i(P*80Ji9rd|~FOzh`iO^WavC`Go{Zz_j|y>)`|wOPiK zP=z(%XXmJlp*{Eh1~FOKsj3-Q_c=-cHus6{Moz`K&A$HLp2yl<@3Z&=my!z&08IVk3;S)Qr9ewI1{3C@%+AvsuL!>9c+DFyViPaD7?{MlX*Sc zK<}+^Qx3<9@X!}MS0GnYZtN@DH*)=n|V8g{3;qG@L z5`7LB<)*wF!XXueE5^1r=pPeJKoa)Wa5z0*7Wkk;?7|JMQDlPndx2{Ea=~iUXLY7FfBP4YtI8rjOFEN(JZFh7fG}{Qj)oN%4s(JQIo5fTLNVe|b?}FbcVh;6TtpdJ+DklK z(qpUy^B?^jxM#%npPV}&p)m=t(irJ~IzJ6r{@ICTZ|>l3V(h~7zf<`B;$!+RjMIqo zzwJ*$65zNI3e0~;KBFf9G-~f>{Z`Vq{MaZDHEvAOkz4Xl&wBHWUmw4YtEP+$m@NQx%--3l94pE-C>O7KZak=of z|8$ON&^{I;7Z!>VK8^kE(sI=)9u38cS@qXTR}uaQz{d$$;a__8YBx?T z)zsj}sP)_uJ!@6@!I(bIG=9fKbF{cNIjOL?wMp=xGST-^ST#3KtWLVyL3Sr>6RYmw z;iFSq_SFTP7(p(q^qy28;JoB=WP?0WqFg}9T*)y@kF)k9s=T-VZ8yv(u**r7QzxVwF?H|Y3r8O@{TMr^^W=}{UGpsjc>hjT3P^St5i>@3Em z?<>@)d!(gPqobRK#=o=o00xYX$90G6GgIhmg|?L zI3g_6ec~VqpaZR#<=CtvIwolCN=HWoZ|%38WHS$l`C0hM1*t38tHvh`LQjUaQNmqpsr%PpAZ63koBSboWGyS%KYc{`W~AD~N=_zjrDejhc$TWpi@ zjyD-yfZx+@9R!g`QtmmaMlIxS-)1wGQt+9&U2|9i^6j^v7WCc1E;`asDj3Kv^Kl^G z+7sw;RJ@D+@TI!O%3m`(RCXn10-!`b3NCQ0VIeAl+l&9aSFdp3M-U4A4O{o_E?n+gThAj!5j^o^EGN zfD6;_p;w4L@?EAt+cc7M1h(cr#?1LVlB!VI__{VLs9;9(r7e)|0qt~<936Jg9`<}ONVdT< zzL!4Jk@>fqjBDMT9bIB#xQ`o~?dF1UIDl&i_fBHO>3j2#*?R4y?>QugM_9AOepKBF z4Mil@Oyn%groP~4V;=@bm})wHBcgsb+t*@BEAT+0rUK3H84}I<+j~OTuX|;ZP6r^D z>$p{p>o)yG7_KlD`dyhgNOT(s-63`6zS>V zzf30KUTtPC5Fj9jME`evPIjUMG^I^C^f4m@Uin7TJ#hx2m|~g-gB}q!Lo@$oNSdRN z&57#%(0K%3pJ~=;OsD#O>#uRqnz>0Vi`i9hH+LM12n3B$hHn72kF4CyQ{~may-e0X zFu2~Q1RxaoZ+!d(V1wG>K#kM4mqQUKJV5d7Ld{=fl zesOYoM41u67y%5YNzZ`#;664YA83TA z<;@TO5@Y#|ueMG1ztUw4|#VJIKAPLMdTeR4G^wm*o7L zk7>w{Y};e#?L^-G3(lhO{Xb^f3I@W5H^ zzx$!Ei>kzb_QHRJIe`3~(*8e1hUR}Ixc^7`e;EG`bpXb@V)0{0f`Hf=dpo+jF_;>g zTABY};6IIWe@8z2PXR~*e|cc&{7v}ZHad{M3|apyd#WHHe;dU94wv}9;{UB-{7b>W z`6m;|wB}!?FLLOA8^wS^9(Z8xCcsH!TKfOU_#6KB$p2&`_~##x2@~Lr5ed-H9s0jd z&)yvm49XOU=|T1n1;rH)jNkMxC_0eX2p;MG%){RtZl*wEV}k!zPn9V!$OsFV?~X|R z|F|9E|8+ZmOo8G?vEM*M%g<#VwB From cab38535cd2c65aa55dd5208c4e7119b656058a0 Mon Sep 17 00:00:00 2001 From: Thomas Belliard Date: Tue, 26 Jun 2012 14:45:52 +0300 Subject: [PATCH 0012/1150] =?UTF-8?q?Retrait=20des=20tags=20
,=20les=20?= =?UTF-8?q?retour=20=C3=A0=20la=20ligne=20fonctionnent=20correctement=20se?= =?UTF-8?q?uls.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ooo/documents_ects.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mod_ooo/documents_ects.php b/mod_ooo/documents_ects.php index 02cd74341..c085b4f02 100644 --- a/mod_ooo/documents_ects.php +++ b/mod_ooo/documents_ects.php @@ -210,7 +210,7 @@ if(($nom_resp[1]!=$nom_resp[2])&&($nom_resp[2]!="")) { // Les deux responsables légaux n'ont pas le même nom $ligne1=$civilite_resp[1]." ".$nom_resp[1]." ".$prenom_resp[1]; - $ligne1.="
\n"; + $ligne1.="\n"; $ligne1.="et "; $ligne1.=$civilite_resp[2]." ".$nom_resp[2]." ".$prenom_resp[2]; } else { @@ -235,18 +235,18 @@ } $ligne2=$adr1_resp[1]; if($adr2_resp[1]!=""){ - $ligne2.="
\n".$adr2_resp[1]; + $ligne2.="\n".$adr2_resp[1]; } if($adr3_resp[1]!=""){ - $ligne2.="
\n".$adr3_resp[1]; + $ligne2.="\n".$adr3_resp[1]; } if($adr4_resp[1]!=""){ - $ligne2.="
\n".$adr4_resp[1]; + $ligne2.="\n".$adr4_resp[1]; } $ligne3=$cp_resp[1]." ".$commune_resp[1]; if(($pays_resp[1]!="")&&(mb_strtolower($pays_resp[1])!=mb_strtolower($gepiSettings['gepiSchoolPays']))) { if($ligne3!=" "){ - $ligne3.="
"; + $ligne3.="\n"; } $ligne3.="$pays_resp[1]"; } From 788ef509e8b5b4c4fa2bd9e4c28c075c9358ebe9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 28 Jun 2012 19:36:35 +0200 Subject: [PATCH 0013/1150] =?UTF-8?q?T=C3=A9l=C3=A9chargement=20et=20corre?= =?UTF-8?q?ction=20des=20URL=20d'images=20de=20formules=20math=C3=A9matiqu?= =?UTF-8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../correction_notices_cdt_formules_maths.php | 140 ++++++++++++++++++ lib/share.inc.php | 69 +++++++++ sql/data_gepi.sql | 2 + .../cahier_texte_admin/index_template.php | 1 + utilitaires/updates/access_rights.inc.php | 24 +++ 5 files changed, 236 insertions(+) create mode 100644 cahier_texte_2/correction_notices_cdt_formules_maths.php diff --git a/cahier_texte_2/correction_notices_cdt_formules_maths.php b/cahier_texte_2/correction_notices_cdt_formules_maths.php new file mode 100644 index 000000000..64c906857 --- /dev/null +++ b/cahier_texte_2/correction_notices_cdt_formules_maths.php @@ -0,0 +1,140 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +$sql="SELECT 1=1 FROM droits WHERE id='/cahier_texte_2/correction_notices_cdt_formules_maths.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/cahier_texte_2/correction_notices_cdt_formules_maths.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Correction des notices CDT', +statut='';"; +$insert=mysql_query($sql); +} + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +//On vérifie si le module est activé +if (getSettingValue("active_cahiers_texte")!='y') { + die("Le module n'est pas activé."); +} + +$step=isset($_POST['step']) ? $_POST['step'] : (isset($_GET['step']) ? $_GET['step'] : NULL); +$mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); + +$telecharger_et_corriger=isset($_POST['telecharger_et_corriger']) ? $_POST['telecharger_et_corriger'] : (isset($_GET['telecharger_et_corriger']) ? $_GET['telecharger_et_corriger'] : NULL); + +//**************** EN-TETE ***************** +$titre_page = "Cahier de textes - Notices avec images math"; +require_once("../lib/header.inc.php"); +//**************** FIN EN-TETE ************* + +//debug_var(); + +$eff_parcours=5; + +echo "

Retour Retour"; + +echo "

Pendant un temps, la génération d'images de formule mathématiques dans le CDT2 fonctionnait en dynamique (sans téléchargement des images dans l'arborescence des documents Gepi).
Cela ne permet pas une consultation hors ligne d'un Export CDT et cela surcharge inutilement le serveur générant les images.

\n"; +echo "
\n"; + +$sql="SELECT * FROM ct_entry WHERE contenu LIKE '%http://latex.codecogs.com/%';"; +$res=mysql_query($sql); +$nb_ct_entry=mysql_num_rows($res); + +$sql="SELECT * FROM ct_devoirs_entry WHERE contenu LIKE '%http://latex.codecogs.com/%';"; +$res=mysql_query($sql); +$nb_ct_devoirs_entry=mysql_num_rows($res); + +if(!isset($telecharger_et_corriger)) { + if(($nb_ct_entry>0)||($nb_ct_devoirs_entry>0)) { + echo "

$nb_ct_entry compte-rendus et $nb_ct_devoirs_entry notices de devoirs comportent des images pointant vers http://latex.codecogs.com/

\n"; + echo "

Procéder à la correction

\n"; + echo "

Les notices vont être parcourues par tranches de $eff_parcours.

\n"; + } + else { + echo "

Aucune image ne pointe vers http://latex.codecogs.com/
Aucune correction n'est nécessaire.

\n"; + } +} +else { + check_token(false); + + correction_notices_cdt_formules_maths($eff_parcours); + + $sql="SELECT * FROM ct_entry WHERE contenu LIKE '%http://latex.codecogs.com/%';"; + $res=mysql_query($sql); + $nb_ct_entry=mysql_num_rows($res); + + $sql="SELECT * FROM ct_devoirs_entry WHERE contenu LIKE '%http://latex.codecogs.com/%';"; + $res=mysql_query($sql); + $nb_ct_devoirs_entry=mysql_num_rows($res); + + if(($nb_ct_entry>0)||($nb_ct_devoirs_entry>0)) { + echo "
\n"; + echo "

Il reste $nb_ct_entry compte-rendus et $nb_ct_devoirs_entry notices de devoirs à traiter.

\n"; + echo add_token_field(); + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + } + else { + echo "
\n"; + echo "

Téléchargements et corrections terminés.

\n"; + } +} + +require("../lib/footer.inc.php"); +die(); + +?> diff --git a/lib/share.inc.php b/lib/share.inc.php index cbfc3fce1..998e33cb7 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -5474,4 +5474,73 @@ function $nom_js_func() { \n"; } +/** Fonction destinée à télécharger les images générées sur http://latex.codecogs.com/ + * et à corriger les notices en conséquence pour pointer sur uneURL locale + * + * @param integer $eff_parcours + * + * @return string le code HTML relatant le nombre de notices corrigées. + */ + +function correction_notices_cdt_formules_maths($eff_parcours) { + $tab_grp=array(); + + $nb_corr=0; + $sql="SELECT * FROM ct_entry WHERE contenu LIKE '%http://latex.codecogs.com/%' LIMIT $eff_parcours;"; + $res=mysql_query($sql); + while($lig=mysql_fetch_object($res)) { + $id_ct=$lig->id_ct; + $id_groupe=$lig->id_groupe; + $contenu=$lig->contenu; + $type_notice="c"; + + if(!isset($tab_grp[$id_groupe])) { + $tab_grp[$id_groupe]=get_group($id_groupe); + } + + $contenu_corrige=get_img_formules_math($contenu, $id_groupe, $type_notice); + $sql="UPDATE ct_entry SET contenu='".mysql_real_escape_string($contenu_corrige)."' WHERE id_ct='$id_ct';"; + $res_ct=mysql_query($sql); + if(!$res_ct) { + echo "
"; + echo "

ERREUR sur
$sql"; + echo "

\n"; + } + else { + echo "

Correction sur une notice de compte-rendu en ".$tab_grp[$id_groupe]['name']." en ".$tab_grp[$id_groupe]['classlist_string']." : ".strftime("%d/%m/%Y", $lig->date_ct)."
\n"; + $nb_corr++; + } + flush(); + } + echo "

$nb_corr corrections effectuées sur 'ct_entry'.

"; + + $nb_corr=0; + $sql="SELECT * FROM ct_devoirs_entry WHERE contenu LIKE '%http://latex.codecogs.com/%' LIMIT $eff_parcours;"; + $res=mysql_query($sql); + while($lig=mysql_fetch_object($res)) { + $id_ct=$lig->id_ct; + $id_groupe=$lig->id_groupe; + $contenu=$lig->contenu; + $type_notice="t"; + + if(!isset($tab_grp[$id_groupe])) { + $tab_grp[$id_groupe]=get_group($id_groupe); + } + + $contenu_corrige=get_img_formules_math($contenu, $id_groupe, $type_notice); + $sql="UPDATE ct_devoirs_entry SET contenu='".mysql_real_escape_string($contenu_corrige)."' WHERE id_ct='$id_ct';"; + $res_ct=mysql_query($sql); + if(!$res_ct) { + echo "
"; + echo "

ERREUR sur
$sql"; + echo "

\n"; + } + else { + echo "

Correction sur une notice de devoir en ".$tab_grp[$id_groupe]['name']." en ".$tab_grp[$id_groupe]['classlist_string']." : ".strftime("%d/%m/%Y", $lig->date_ct)."
\n"; + $nb_corr++; + } + flush(); + } + echo "

$nb_corr corrections effectuées sur 'ct_devoirs_entry'.

"; +} ?> diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 3e70b0070..190d3d190 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1176,3 +1176,5 @@ INSERT INTO lettres_types VALUES (10,'retenue','sanction',''); INSERT INTO droits SET id='/mod_notanet/OOo/imprime_ooo.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Imprime fiches brevet OpenOffice',statut=''; INSERT INTO droits SET id='/mod_notanet/OOo/fiches_brevet.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Fiches brevet OpenOffice',statut=''; INSERT INTO droits SET id='/mod_notanet/verif_saisies.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Notanet: Verification avant impression des fiches brevet',statut=''; +INSERT INTO droits SET id='/eleves/modif_sexe.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Eleves: Modification ajax du sexe d un eleve',statut=''; +INSERT INTO droits SET id='/cahier_texte_2/correction_notices_cdt_formules_maths.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Correction des notices CDT',statut=''; diff --git a/templates/origine/cahier_texte_admin/index_template.php b/templates/origine/cahier_texte_admin/index_template.php index a2ceeef33..cde2040ec 100644 --- a/templates/origine/cahier_texte_admin/index_template.php +++ b/templates/origine/cahier_texte_admin/index_template.php @@ -449,6 +449,7 @@ function ajout_index_sous_dossiers($dossier) {
  • Protéger les sous-dossiers de 'documents/' contre des accès anormaux
  • Archivage des cahiers de textes en fin d'année scolaire
  • Export de cahiers de textes et accès inspecteur (sans authentification)
  • +
  • Téléchargement des images de formules mathématiques et correction des notices en conséquence

  • diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 54b32f5d0..efa696fa6 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -875,6 +875,30 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits SET id='/mod_notanet/OOo/imprime_ooo.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Imprime fiches brevet OpenOffice',statut='';"; $tab_req[] = "INSERT INTO droits SET id='/mod_notanet/OOo/fiches_brevet.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Fiches brevet OpenOffice',statut='';"; +$tab_req[] = "INSERT INTO droits SET id='/eleves/modif_sexe.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Eleves: Modification ajax du sexe d un eleve', +statut='';"; + +$tab_req[] = "INSERT INTO droits SET id='/cahier_texte_2/correction_notices_cdt_formules_maths.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Correction des notices CDT', +statut='';"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From dbdf380714d8a9f89f466dc601ef37dc1f79d64f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 28 Jun 2012 19:40:12 +0200 Subject: [PATCH 0014/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20le?= =?UTF-8?q?=20sexe=20d'un=20=C3=A9l=C3=A8ve.=20Facilit=C3=A9=20de=20passag?= =?UTF-8?q?e=20=C3=A0=20une=20autre=20requ=C3=AAte.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/modif_sexe.php | 98 +++++++++++++ mod_genese_classes/affect_eleves_classes.php | 137 +++++++++++++++---- mod_genese_classes/affiche_listes.php | 23 +++- mod_genese_classes/lib_gc.php | 1 + mod_genese_classes/select_eleves_options.php | 90 ++++++------ 5 files changed, 276 insertions(+), 73 deletions(-) create mode 100644 eleves/modif_sexe.php diff --git a/eleves/modif_sexe.php b/eleves/modif_sexe.php new file mode 100644 index 000000000..dbf182db9 --- /dev/null +++ b/eleves/modif_sexe.php @@ -0,0 +1,98 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +//====================================================================================== + +$sql="SELECT 1=1 FROM droits WHERE id='/eleves/modif_sexe.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/eleves/modif_sexe.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Eleves: Modification ajax du sexe d un eleve', +statut='';"; +$insert=mysql_query($sql); +} + +//====================================================================================== +// Section checkAccess() à décommenter en prenant soin d'ajouter le droit correspondant: +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} +//====================================================================================== + +check_token(); + +$login_eleve=isset($_POST['login_eleve']) ? $_POST['login_eleve'] : (isset($_GET['login_eleve']) ? $_GET['login_eleve'] : ''); +$sexe=isset($_POST['sexe']) ? $_POST['sexe'] : (isset($_GET['sexe']) ? $_GET['sexe'] : ''); +$mode_retour=isset($_POST['mode_retour']) ? $_POST['mode_retour'] : (isset($_GET['mode_retour']) ? $_GET['mode_retour'] : ''); + +$login_eleve_corr=preg_replace("/[^A-Za-z0-9_.-]/","",$login_eleve); +if($login_eleve_corr!=$login_eleve) {$login_eleve="";} + +if(($login_eleve=='')||(($sexe!='M')&&($sexe!='F'))) { + echo "ERREUR"; +} +else { + $sql="UPDATE eleves SET sexe='$sexe' WHERE login='$login_eleve';"; + $update=mysql_query($sql); + if($update) { + if($mode_retour=="image") { + echo ""; + } + else { + echo $sexe; + } + } + else { + echo "ERREUR"; + } +} + +?> diff --git a/mod_genese_classes/affect_eleves_classes.php b/mod_genese_classes/affect_eleves_classes.php index a185306a3..f36c58e8e 100644 --- a/mod_genese_classes/affect_eleves_classes.php +++ b/mod_genese_classes/affect_eleves_classes.php @@ -110,10 +110,10 @@ } if($nb_err==0) { - $msg="$nb_reg enregistrements effectués."; + $msg="$nb_reg enregistrements effectués (".strftime("%d/%m/%Y à %H:%M:%S").")."; } else { - $msg="ERREUR: $nb_err erreurs lors de l'enregistrement des classes futures,..."; + $msg="ERREUR: $nb_err erreurs lors de l'enregistrement des classes futures,... (".strftime("%d/%m/%Y à %H:%M:%S").")"; } $msg.=$complement_msg; } @@ -859,8 +859,16 @@ function change_display(id) { echo "\n"; } else { + + // Pour utiliser des listes d'affichage + $requete_definie=isset($_POST['requete_definie']) ? $_POST['requete_definie'] : (isset($_GET['requete_definie']) ? $_GET['requete_definie'] : 'n'); + $id_aff=isset($_POST['id_aff']) ? $_POST['id_aff'] : (isset($_GET['id_aff']) ? $_GET['id_aff'] : NULL); + $id_req=isset($_POST['id_req']) ? $_POST['id_req'] : (isset($_GET['id_req']) ? $_GET['id_req'] : NULL); + echo "
    \n"; // Debut de l'entête à ne pas imprimer + echo "
    \n"; + echo "

    Retour"; @@ -868,37 +876,71 @@ function change_display(id) { echo " | Autre sélection"; - echo "

    \n"; - echo "

    Projet $projet

    \n"; + $num_requete=0; + $indice_requete=0; + if(isset($id_aff)) { + $sql="SELECT DISTINCT id_req, nom_requete FROM gc_affichages WHERE projet='$projet' AND id_aff='$id_aff' AND nom_requete!='' ORDER BY nom_requete;"; + $res_req_nommees=mysql_query($sql); + if(mysql_num_rows($res_req_nommees)>0) { + echo " | \n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } - //echo "

    A FAIRE ENCORE: rappeler la requete.

    \n"; + $sql="SELECT DISTINCT login FROM gc_eleves_options WHERE projet='$projet' AND classe_future!='Dep' AND classe_future!='Red' AND (classe_future='');"; + //echo "$sql
    "; + $res_na=mysql_query($sql); + if(mysql_num_rows($res_na)>0) { + echo " | Non affectés (".mysql_num_rows($res_na).")"; + } - // Affichage... - //Construire la requête SQL et l'afficher + echo "

    \n"; + echo "\n"; - /* - $id_clas_act=isset($_POST['id_clas_act']) ? $_POST['id_clas_act'] : (isset($_GET['id_clas_act']) ? $_GET['id_clas_act'] : array()); - $clas_fut=isset($_POST['clas_fut']) ? $_POST['clas_fut'] : (isset($_GET['clas_fut']) ? $_GET['clas_fut'] : array()); - $avec_lv1=isset($_POST['avec_lv1']) ? $_POST['avec_lv1'] : (isset($_GET['avec_lv1']) ? $_GET['avec_lv1'] : array()); - $sans_lv1=isset($_POST['sans_lv1']) ? $_POST['sans_lv1'] : (isset($_GET['sans_lv1']) ? $_GET['sans_lv1'] : array()); - $avec_lv2=isset($_POST['avec_lv2']) ? $_POST['avec_lv2'] : (isset($_GET['avec_lv2']) ? $_GET['avec_lv2'] : array()); - $sans_lv2=isset($_POST['sans_lv2']) ? $_POST['sans_lv2'] : (isset($_GET['sans_lv2']) ? $_GET['sans_lv2'] : array()); - $avec_lv3=isset($_POST['avec_lv3']) ? $_POST['avec_lv3'] : (isset($_GET['avec_lv3']) ? $_GET['avec_lv3'] : array()); - $sans_lv3=isset($_POST['sans_lv3']) ? $_POST['sans_lv3'] : (isset($_GET['sans_lv3']) ? $_GET['sans_lv3'] : array()); - $avec_autre=isset($_POST['avec_autre']) ? $_POST['avec_autre'] : (isset($_GET['avec_autre']) ? $_GET['avec_autre'] : array()); - $sans_autre=isset($_POST['sans_autre']) ? $_POST['sans_autre'] : (isset($_GET['sans_autre']) ? $_GET['sans_autre'] : array()); - - $avec_profil=isset($_POST['avec_profil']) ? $_POST['avec_profil'] : (isset($_GET['avec_profil']) ? $_GET['avec_profil'] : array()); - $sans_profil=isset($_POST['sans_profil']) ? $_POST['sans_profil'] : (isset($_GET['sans_profil']) ? $_GET['sans_profil'] : array()); - */ + echo "\n"; + + echo "

    Projet $projet

    \n"; - // Pour utiliser des listes d'affichage - $requete_definie=isset($_POST['requete_definie']) ? $_POST['requete_definie'] : (isset($_GET['requete_definie']) ? $_GET['requete_definie'] : 'n'); - $id_aff=isset($_POST['id_aff']) ? $_POST['id_aff'] : (isset($_GET['id_aff']) ? $_GET['id_aff'] : NULL); - $id_req=isset($_POST['id_req']) ? $_POST['id_req'] : (isset($_GET['id_req']) ? $_GET['id_req'] : NULL); if(($requete_definie=='y')&&(isset($id_aff))&&(isset($id_req))) { $sql="SELECT * FROM gc_affichages WHERE projet='$projet' AND id_aff='$id_aff' AND id_req='$id_req' ORDER BY type;"; //echo "$sql
    "; @@ -1598,7 +1640,8 @@ function change_display(id) { echo "\n"; echo "
    \n"; echo "\n"; @@ -1697,7 +1740,7 @@ function change_display(id) { //=================================== for($i=0;$i\n"; + echo "\n"; + echo "\n"; } else { + echo ">\n"; echo "_"; } @@ -1973,7 +2020,18 @@ function test_aff_classe3(login,classe_fut) { $texte.="

    \n"; $tabdiv_infobulle[]=creer_div_infobulle('div_set_profil',$titre,"",$texte,"",14,0,'y','y','n','n'); + $titre="Sélection du sexe"; + $texte="

    "; + for($loop=0;$loop0) {$texte.=" - ";} + $texte.="$tab_sexe[$loop]"; + } + $texte.="

    \n"; + $tabdiv_infobulle[]=creer_div_infobulle('div_set_sexe',$titre,"",$texte,"",14,0,'y','y','n','n'); + echo "\n"; + echo "\n"; + echo "\n"; echo " \n"; From 21ac5568439406c0e86aa126cafe708be8d0eb69 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 29 Jun 2012 16:41:09 +0200 Subject: [PATCH 0015/1150] =?UTF-8?q?Correctif=20sur=20le=20passage=20?= =?UTF-8?q?=C3=A0=20une=20autre=20requ=C3=AAte.=20Mise=20en=20infobulle=20?= =?UTF-8?q?(title)=20sur=20le=20survol=20de=20la=20cellule=20plut=C3=B4t?= =?UTF-8?q?=20que=20de=20la=20croix=20dans=20la=20cellule.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/affect_eleves_classes.php | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/mod_genese_classes/affect_eleves_classes.php b/mod_genese_classes/affect_eleves_classes.php index f36c58e8e..5a5f1cfcd 100644 --- a/mod_genese_classes/affect_eleves_classes.php +++ b/mod_genese_classes/affect_eleves_classes.php @@ -897,8 +897,11 @@ function change_display(id) { $num_requete++; } echo "\n"; + + echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; } } @@ -1783,7 +1786,7 @@ function confirm_changement_requete(thechange, themessage) } for($i=0;$i\n"; + echo "
    \n"; - echo "\n"; + echo "\n"; + //echo "\n"; echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; + //echo "\n"; echo ""; -echo ""; - -echo ""; -echo ""; -echo "
    "; echo ""; - echo image_sexe($lig->sexe); + //echo image_sexe($lig->sexe); + echo "
    login');changement();return false;\">".image_sexe($lig->sexe)."
    \n"; echo "
    $classe_actuelle[$j]\n"; if(in_array(mb_strtoupper($lv1[$i]),$tab_ele_opt)) { echo "
    \n"; echo "X"; @@ -1804,7 +1807,7 @@ function confirm_changement_requete(thechange, themessage) for($i=0;$i\n"; + echo "
    \n"; if(in_array(mb_strtoupper($lv2[$i]),$tab_ele_opt)) { echo "
    \n"; echo "X"; @@ -1824,7 +1827,7 @@ function confirm_changement_requete(thechange, themessage) for($i=0;$i\n"; + echo "
    \n"; if(in_array(mb_strtoupper($lv3[$i]),$tab_ele_opt)) { echo "
    \n"; echo "X"; @@ -1843,7 +1846,7 @@ function confirm_changement_requete(thechange, themessage) } for($i=0;$i\n"; + echo "
    \n"; if(in_array(mb_strtoupper($autre_opt[$i]),$tab_ele_opt)) { echo "
    \n"; echo "X"; From d20e1a6676afc36f544c9efed6d32f97deca2084 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 29 Jun 2012 16:49:46 +0200 Subject: [PATCH 0016/1150] =?UTF-8?q?Affichage=20du=20nombre=20d'=C3=A9l?= =?UTF-8?q?=C3=A8ves=20d=C3=A9j=C3=A0=20plac=C3=A9s=20dans=20chaque=20clas?= =?UTF-8?q?se=20future.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/affect_eleves_classes.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod_genese_classes/affect_eleves_classes.php b/mod_genese_classes/affect_eleves_classes.php index 5a5f1cfcd..01bfabf3e 100644 --- a/mod_genese_classes/affect_eleves_classes.php +++ b/mod_genese_classes/affect_eleves_classes.php @@ -664,7 +664,7 @@ function change_display(id) { if(mysql_num_rows($res_test)>0) { echo "classe,$clas_fut)) {echo "checked ";} - echo "/>
    \n"; + echo "/>
    \n"; } else { echo "_ $lig->classe
    \n"; From 2d8ec90dd04dd0ff6870a5447f168b38278f82a1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 29 Jun 2012 16:57:28 +0200 Subject: [PATCH 0017/1150] =?UTF-8?q?Mise=20en=20infobulle=20(title)=20sur?= =?UTF-8?q?=20le=20survol=20de=20la=20cellule=20plut=C3=B4t=20que=20du=20c?= =?UTF-8?q?hamp=20radio/checkbox=20dans=20la=20cellule.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/select_eleves_options.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mod_genese_classes/select_eleves_options.php b/mod_genese_classes/select_eleves_options.php index 4b5fa7798..6a6eab6c9 100644 --- a/mod_genese_classes/select_eleves_options.php +++ b/mod_genese_classes/select_eleves_options.php @@ -816,6 +816,7 @@ for($i=0;$ilogin/$lv1[$i]\""; echo ">\n"; echo "login/$lv2[$i]\""; echo ">\n"; echo "login/$lv3[$i]\""; echo ">\n"; echo "login/$autre_opt[$i]\""; echo ">\n"; echo " Date: Fri, 29 Jun 2012 17:50:36 +0200 Subject: [PATCH 0018/1150] =?UTF-8?q?Correctif=20sur=20la=20colorisation?= =?UTF-8?q?=20qui=20ne=20fonctionnait=20plus=20=C3=A0=20cause=20de=20l'ajo?= =?UTF-8?q?ut=20d'un=20formulaire=20qui=20avait=20pris=20le=20rang=20forms?= =?UTF-8?q?[0].?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/affect_eleves_classes.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/mod_genese_classes/affect_eleves_classes.php b/mod_genese_classes/affect_eleves_classes.php index 01bfabf3e..66168ad9b 100644 --- a/mod_genese_classes/affect_eleves_classes.php +++ b/mod_genese_classes/affect_eleves_classes.php @@ -1146,7 +1146,7 @@ function confirm_changement_requete(thechange, themessage) $tab_ele[]=$lig_ele->login; } - echo "
    \n"; + echo "\n"; if(!isset($nom_requete)) {$nom_requete="";} echo "

    Nom de la requête :

    \n"; @@ -2205,8 +2205,8 @@ function colorise(mode,n) { function colorise_ligne(cat,cpt,i) { // On ne traite qu'une ligne contrairement à colorise() //alert('couleur_classe_fut[0]='+couleur_classe_fut[0]); - //alert(document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value); - if(document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value==cat) { + //alert(document.forms['form_affect_eleves_classes'].elements['colorisation'].options[document.forms['form_affect_eleves_classes'].elements['colorisation'].selectedIndex].value); + if(document.forms['form_affect_eleves_classes'].elements['colorisation'].options[document.forms['form_affect_eleves_classes'].elements['colorisation'].selectedIndex].value==cat) { if(cat=='classe_fut') { //alert(cat); //alert(i); @@ -2229,7 +2229,7 @@ function colorise_ligne(cat,cpt,i) { } function lance_colorisation() { - cat=document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value; + cat=document.forms['form_affect_eleves_classes'].elements['colorisation'].options[document.forms['form_affect_eleves_classes'].elements['colorisation'].selectedIndex].value; //alert(cat); if(cat=='classe_fut') { colorise(cat,".count($classe_fut)."); @@ -2255,7 +2255,7 @@ function modif_colonne(col,mode) { } } - cat=document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value; + cat=document.forms['form_affect_eleves_classes'].elements['colorisation'].options[document.forms['form_affect_eleves_classes'].elements['colorisation'].selectedIndex].value; if(col.substr(0,cat.length)==cat) {lance_colorisation();} // Lancer un recalcul des effectifs From 90ae22bd94a48c00f5f3b7ac9cd094d7fc7f8829 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 29 Jun 2012 17:51:10 +0200 Subject: [PATCH 0019/1150] =?UTF-8?q?Pr=C3=A9caution=20pour=20ne=20pas=20r?= =?UTF-8?q?encontrer=20le=20bug=20de=20forms[0].?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/select_eleves_options.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mod_genese_classes/select_eleves_options.php b/mod_genese_classes/select_eleves_options.php index c0b2d4323..61c7ad764 100644 --- a/mod_genese_classes/select_eleves_options.php +++ b/mod_genese_classes/select_eleves_options.php @@ -327,7 +327,7 @@ necessaire_bull_simple(); //========================================= -echo "\n"; +echo "\n"; echo add_token_field(); @@ -1180,7 +1180,7 @@ function colorise(mode,n) { colorise('classe_fut',".count($classe_fut)."); function colorise_ligne(cat,cpt,i) { - if(document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value==cat) { + if(document.forms['form_select_eleves_options'].elements['colorisation'].options[document.forms['form_select_eleves_options'].elements['colorisation'].selectedIndex].value==cat) { if(cat=='classe_fut') { document.getElementById('tr_eleve_'+cpt).style.backgroundColor=couleur_classe_fut[i]; } @@ -1200,7 +1200,7 @@ function colorise_ligne(cat,cpt,i) { } function lance_colorisation() { - cat=document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value; + cat=document.forms['form_select_eleves_options'].elements['colorisation'].options[document.forms['form_select_eleves_options'].elements['colorisation'].selectedIndex].value; //alert(cat); if(cat=='classe_fut') { colorise(cat,".count($classe_fut)."); @@ -1277,7 +1277,7 @@ function lance_colorisation() { //alert('PLOP'); - cat=document.forms[0].elements['colorisation'].options[document.forms[0].elements['colorisation'].selectedIndex].value; + cat=document.forms['form_select_eleves_options'].elements['colorisation'].options[document.forms['form_select_eleves_options'].elements['colorisation'].selectedIndex].value; if(col.substr(0,cat.length)==cat) {lance_colorisation();} } \n"; From 0754d6d8cfc34b9393ef249792dbf49754837672 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 29 Jun 2012 17:51:51 +0200 Subject: [PATCH 0020/1150] =?UTF-8?q?G=C3=A9n=C3=A9ration=20de=20fichiers?= =?UTF-8?q?=20d'index=20dans=20l'archive=20Zip=20des=20PDF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_index.php | 4 ++ mod_annees_anterieures/archivage_bull_pdf.php | 72 +++++++++++++++++++ 2 files changed, 76 insertions(+) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index 7f612c02a..e35a31bc2 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -3306,6 +3306,9 @@ function display_param_b_adr_pg() { $id_classe=$tab_id_classe[$loop_classe]; $classe=get_class_from_id($id_classe); + $sql="INSERT INTO tempo4 SET col1='$id_classe', col2='".$tableau_eleve['login'][$j]."', col3='$nom_fichier_bulletin', col4='".mysql_real_escape_string($tableau_eleve['nom_prenom'][$j])."';"; + $res_t4=mysql_query($sql); + for($loop_periode_num=0;$loop_periode_numOutput($dirname."/".$nom_fichier_bulletin,'F'); echo "

    $nom_fichier_bulletin

    \n"; + flush(); } diff --git a/mod_annees_anterieures/archivage_bull_pdf.php b/mod_annees_anterieures/archivage_bull_pdf.php index d179026cd..486409073 100644 --- a/mod_annees_anterieures/archivage_bull_pdf.php +++ b/mod_annees_anterieures/archivage_bull_pdf.php @@ -180,6 +180,68 @@ function zip_bull_pdf($dossier_a_traiter) { } } } + + function index_archive_pdf() { + global $dossier_archivage_pdf; + + $entete=' + + + + + + + + + +'; + + $fich_css=fopen("../temp/".get_user_temp_directory()."/".$dossier_archivage_pdf."/style.css","w+"); + fwrite($fich_css, "#contenu { + text-align:center; +}\n"); + fclose($fich_css); + + $fich_index=fopen("../temp/".get_user_temp_directory()."/".$dossier_archivage_pdf."/index.html","w+"); + fwrite($fich_index, $entete."Index ".getSettingValue('gepiYear')."

    Index ".getSettingValue('gepiYear')."

    \n"); + + $sql="SELECT * FROM tempo4 ORDER BY col4;"; + $res_t4=mysql_query($sql); + if(mysql_num_rows($res_t4)>0) { + fwrite($fich_index, "

    Index alphabétique des élèves

    \n"); + + $fich_index_eleves=fopen("../temp/".get_user_temp_directory()."/".$dossier_archivage_pdf."/index_eleves.html","w+"); + fwrite($fich_index_eleves, $entete."Index alphabétique des élèves".getSettingValue('gepiYear')."

    Index alphabétique des élèves".getSettingValue('gepiYear')."

    \n"); + while($lig_t4=mysql_fetch_object($res_t4)) { + fwrite($fich_index_eleves, "".$lig_t4->col4." (".$lig_t4->col3.")
    \n"); + } + fwrite($fich_index_eleves, "

    Retour

    \n"); + fwrite($fich_index_eleves, "
    \n"); + } + + $sql="SELECT DISTINCT c.id, c.classe FROM classes c, tempo4 t WHERE c.id=t.col1 ORDER BY c.classe;"; + $res_t_c=mysql_query($sql); + if(mysql_num_rows($res_t_c)>0) { + fwrite($fich_index, "

    Classes :

    \n"); + while($lig_t_c=mysql_fetch_object($res_t_c)) { + fwrite($fich_index, "

    ".$lig_t_c->classe."

    \n"); + + $sql="SELECT * FROM tempo4 WHERE col1='".$lig_t_c->id."' ORDER BY col4;"; + $res_t4=mysql_query($sql); + if(mysql_num_rows($res_t4)>0) { + $fich_index_classe=fopen("../temp/".get_user_temp_directory()."/".$dossier_archivage_pdf."/classe_".$lig_t_c->id.".html","w+"); + fwrite($fich_index_classe, $entete."Classe de ".$lig_t_c->classe." ".getSettingValue('gepiYear')."

    Classe de ".$lig_t_c->classe." ".getSettingValue('gepiYear')."

    \n"); + while($lig_t4=mysql_fetch_object($res_t4)) { + fwrite($fich_index_classe, "".$lig_t4->col4." (".$lig_t4->col3.")
    \n"); + } + fwrite($fich_index_classe, "

    Retour

    \n"); + fwrite($fich_index_classe, "
    \n"); + } + } + } + + fwrite($fich_index, "
    \n"); + } echo "

    L'archivage est terminé.

    \n"; + echo "

    Génération de pages d'index.

    \n"; + index_archive_pdf(); + //echo "

    Il reste à réaliser le Zip des fichiers PDF.

    "; echo "

    ".zip_bull_pdf($dossier_archivage_pdf)."

    \n"; @@ -298,6 +363,9 @@ function zip_bull_pdf($dossier_a_traiter) { if(!isset($tab_login_ele_chgt_classe)) { echo "

    Aucun élève n'a changé de classe en cours d'année.

    \n"; + echo "

    Génération de pages d'index.

    \n"; + index_archive_pdf(); + echo "

    Dossier temporaire d'archivage : $dossier_archivage_pdf

    \n"; echo "
    \n"; @@ -344,6 +412,10 @@ function zip_bull_pdf($dossier_a_traiter) { $dossier_archivage_pdf=savePref($_SESSION['login'], 'dossier_archivage_pdf', 'bulletins_pdf_individuels_eleves_'.strftime('%Y%m%d')); @mkdir("../temp/".get_user_temp_directory()."/".$dossier_archivage_pdf); + // On va stocker la liste des id_classe,login,fichiers + $sql="TRUNCATE tempo4;"; + $menage=mysql_query($sql); + // On va faire la liste des élèves: $sql="TRUNCATE tempo2;"; $menage=mysql_query($sql); From d09870cb2ec1731188246f8d3877dec419615cb9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 15:26:32 +0200 Subject: [PATCH 0021/1150] Correctif pour la prise en compte de white_hover --- templates/origine/css/accueil.css | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/templates/origine/css/accueil.css b/templates/origine/css/accueil.css index 68b1467ea..508d5a5cd 100644 --- a/templates/origine/css/accueil.css +++ b/templates/origine/css/accueil.css @@ -69,7 +69,9 @@ table.boireaus { .boireaus .modif { background-color: #eeaaff; } - +tr.white_hover:hover { + background-color:white; +} /* #messagerie { From 4c33301336f119b1df066d23f5a8c10234bd5d3b Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 15:26:38 +0200 Subject: [PATCH 0022/1150] =?UTF-8?q?Modification=20de=20la=20mise=20en=20?= =?UTF-8?q?rouge=20de=20la=20premi=C3=A8re=20colonne=20(sans=20javascript)?= =?UTF-8?q?.=20Patch=20javascript=20pour=20palier=20white=5Fhover.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_genese_classes/affect_eleves_classes.php | 10 ++-- mod_genese_classes/mod_genese_classes.css | 49 ++++++++++++++++++++ mod_genese_classes/select_eleves_options.php | 9 ++-- 3 files changed, 61 insertions(+), 7 deletions(-) create mode 100644 mod_genese_classes/mod_genese_classes.css diff --git a/mod_genese_classes/affect_eleves_classes.php b/mod_genese_classes/affect_eleves_classes.php index 66168ad9b..be0d3e18c 100644 --- a/mod_genese_classes/affect_eleves_classes.php +++ b/mod_genese_classes/affect_eleves_classes.php @@ -118,6 +118,7 @@ $msg.=$complement_msg; } +$style_specifique[]="mod_genese_classes/mod_genese_classes"; $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Genèse classe: affectation des élèves"; @@ -1622,20 +1623,21 @@ function confirm_changement_requete(thechange, themessage) } else { - + //echo "
    \n"; echo "\n"; if(nom_photo($lig->elenoet)) { echo "elenoet)."','".addslashes(mb_strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)))."');afficher_div('div_photo','y',100,100);return false;\">"; - echo ""; + echo ""; echo mb_strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)); echo ""; echo "\n"; } else { - echo ""; + echo ""; echo mb_strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)); echo ""; } diff --git a/mod_genese_classes/mod_genese_classes.css b/mod_genese_classes/mod_genese_classes.css new file mode 100644 index 000000000..560ebb250 --- /dev/null +++ b/mod_genese_classes/mod_genese_classes.css @@ -0,0 +1,49 @@ + +table.boireaus { + margin-top: 1em; + border-style: solid; + border-width: 1px; + border-color: black; + border-collapse: collapse; +} + +.boireaus th { + border-style: solid; + border-width: 1px; + border-color: black; + background-color: #f0e68c; + font-weight:bold; + text-align:center; + vertical-align: middle; +} + +.boireaus td { + text-align:center; + vertical-align: middle; + border-style: solid; + border-width: 1px; + border-color: black; +} +.boireaus .lig-1 { + background-color: #C8FFC8; +} +.boireaus .lig1 { + background-color: #FFE6AA; +} +.boireaus .nouveau { + background-color: #96c8f0; +} +.boireaus .modif { + background-color: #eeaaff; +} +tr.white_hover:hover { + background-color:white; +} + +tr.white_survol:hover { + background-color:white; +} +tr.white_survol:hover .col_nom_eleve { + color:red; +} + diff --git a/mod_genese_classes/select_eleves_options.php b/mod_genese_classes/select_eleves_options.php index 61c7ad764..4d5998b49 100644 --- a/mod_genese_classes/select_eleves_options.php +++ b/mod_genese_classes/select_eleves_options.php @@ -195,6 +195,7 @@ } +$style_specifique[]="mod_genese_classes/mod_genese_classes"; $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; //**************** EN-TETE ***************** $titre_page = "Genèse classe: Choix options élèves"; @@ -588,18 +589,20 @@ if(mb_strtoupper($lig->sexe)=='F') {$eff_tot_classe_F++;$eff_tot_F++;} else {$eff_tot_classe_M++;$eff_tot_M++;} //echo "
    \n"; echo "\n"; if(nom_photo($lig->elenoet)) { echo "elenoet)."','".addslashes(mb_strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)))."');afficher_div('div_photo','y',100,100);return false;\">"; - echo ""; + echo ""; echo strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)); echo ""; echo "\n"; } else { - echo ""; + echo ""; echo mb_strtoupper($lig->nom)." ".ucfirst(mb_strtolower($lig->prenom)); echo ""; } From 0b40cab3611edf339118070ec82aefca64b1c93a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 15:26:39 +0200 Subject: [PATCH 0023/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20passer=20aux?= =?UTF-8?q?=20autres=20groupes=20de=20la=20m=C3=AAme=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_eleves.php | 88 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 84 insertions(+), 4 deletions(-) diff --git a/groupes/edit_eleves.php b/groupes/edit_eleves.php index 4a7f46b3e..fb96979db 100644 --- a/groupes/edit_eleves.php +++ b/groupes/edit_eleves.php @@ -64,6 +64,11 @@ function debug_edit_eleves($texte) { debug_edit_eleves("reg_nom_groupe=$reg_nom_groupe"); $reg_nom_complet = $current_group["description"]; $reg_matiere = $current_group["matiere"]["matiere"]; + +if(!isset($id_classe)) { + $id_classe=$current_group['classes']['list'][0]; +} + $reg_id_classe = $id_classe; $reg_clazz = $current_group["classes"]["list"]; $reg_professeurs = (array)$current_group["profs"]["list"]; @@ -316,13 +321,25 @@ function DecochePeriode() { change='no'; \n"; +echo "
    "; echo "\n"; echo "

    \n"; -echo "Retour Retour\n"; - +if(!$multiclasses) { + echo "Retour Retour\n"; +} +else { + $cpt_tmp_clas=0; + foreach($current_group['classes']['classes'] as $tmp_id_classe => $tmp_tab_clas_grp) { + if( $cpt_tmp_clas>0) {echo " | ";} + echo "Retour Retour ".$tmp_tab_clas_grp['classe']."\n"; + $cpt_tmp_clas++; + } +} //$sql="SELECT DISTINCT jgc.id_groupe FROM groupes g, j_groupes_classes jgc, j_eleves_groupes jeg WHERE jgc.id_classe='$id_classe' AND jeg.id_groupe=jgc.id_groupe AND g.id=jgc.id_groupe AND jgc.id_groupe!='$id_groupe' ORDER BY g.name;"; $sql="SELECT DISTINCT jgc.id_groupe FROM groupes g, j_groupes_classes jgc WHERE jgc.id_classe='$id_classe' AND g.id=jgc.id_groupe ORDER BY g.name;"; @@ -346,11 +363,14 @@ function DecochePeriode() { $cpt_grp++; } echo "\n"; + echo " \n"; echo "\n"; + + echo "

    "; + + echo "\n"; + echo "
    \n"; +} +echo "
    \n"; ?> From b68da8146157866e5508b5c0d79d141710a71fb2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 15:26:39 +0200 Subject: [PATCH 0024/1150] =?UTF-8?q?Retour=20apr=C3=A8s=20Enregistrement?= =?UTF-8?q?=20=C3=A0=20l'onglet=20qui=20vient=20d'=C3=AAtre=20=C3=A9dit?= =?UTF-8?q?=C3=A9.=20Modification=20de=20casse=20sur=20les=20=C3=A9tiquett?= =?UTF-8?q?es=20d'onglets.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../origine/gestion/ordre_item_template.php | 24 +++++++++++++++---- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/templates/origine/gestion/ordre_item_template.php b/templates/origine/gestion/ordre_item_template.php index a0ab803df..7908ee844 100644 --- a/templates/origine/gestion/ordre_item_template.php +++ b/templates/origine/gestion/ordre_item_template.php @@ -81,7 +81,13 @@ - + @@ -90,6 +96,7 @@
    +

    Ce module permet de modifier l'ordre des menus de la page accueil ainsi que les intitulés.
    Remarque : si le nouveau nom du bloc est "bloc_invisible", ce dernier n'apparaitra pas dans le menu (ceci ne fonctionne pas pour les plugins). @@ -110,10 +117,17 @@

    - - statutUtilisateur ;?> + + statutUtilisateur) ;?> - statutUtilisateur ;?> + statutUtilisateur) ;?> // From d82b003a40d0f20336cc4fa98551c3d831f99027 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 15:26:40 +0200 Subject: [PATCH 0025/1150] =?UTF-8?q?Modification=20de=20casse=20sur=20les?= =?UTF-8?q?=20=C3=A9tiquettes=20d'onglets.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- templates/origine/gestion/droit_acces_template.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/templates/origine/gestion/droit_acces_template.php b/templates/origine/gestion/droit_acces_template.php index b3a4786b7..6ca6aff2b 100644 --- a/templates/origine/gestion/droit_acces_template.php +++ b/templates/origine/gestion/droit_acces_template.php @@ -88,9 +88,9 @@ ?> @@ -119,8 +119,8 @@ Date: Sat, 30 Jun 2012 15:26:41 +0200 Subject: [PATCH 0026/1150] =?UTF-8?q?Ajout=20d'une=20=C3=A9tape=20de=20con?= =?UTF-8?q?firmation=20sur=20le=20vidage=20des=20tables?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_notanet/index.php | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/mod_notanet/index.php b/mod_notanet/index.php index 1f5869c06..b20677b35 100644 --- a/mod_notanet/index.php +++ b/mod_notanet/index.php @@ -328,16 +328,32 @@ echo "

    Nettoyage des tables Notanet :

    \n"; - $msg=""; $table_a_vider=array('notanet', 'notanet_avis', 'notanet_app', 'notanet_verrou', 'notanet_socles', 'notanet_ele_type'); - for($i=0;$i\n"; + if(!isset($_GET['confirmer'])) { + echo "

    Vous allez vider les tables : \n"; + echo $table_a_vider[0]; + for($i=1;$i\n"; + echo "

    Cette opération, irréversible, ne devrait être effectuée que pour éliminer des scories éventuelles des saisies et extractions de l'année précédente.

    \n"; + echo "

    Confirmer le nettoyage des tables Notanet.

    \n"; + } + else { + $msg=""; + for($i=0;$iNettoyage effectué.

    \n";} else {echo $msg;} } - if($msg=='') {echo "

    Nettoyage effectué.

    \n";} else {echo $msg;} + echo "


    \n"; + echo "
    \n"; } } @@ -390,7 +406,7 @@ //echo "
  • \n"; echo "\n"; - echo "

    Au changement d'année: Vider les saisies Notanet antérieures.

    \n"; + echo "

    Au changement d'année: Vider les saisies Notanet antérieures.

    \n"; echo "

    NOTES: Pour un bon fonctionnement du dispositif, il faut parcourir les points ci-dessus dans l'ordre.
    Voir https://www.sylogix.org/projects/gepi/wiki/Module_notanet

    \n"; From 7f1ebb58fd024d047e475605d79b0b05fe5fb31f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 30 Jun 2012 19:15:26 +0200 Subject: [PATCH 0027/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20g=C3=A9n?= =?UTF-8?q?=C3=A9rer=20un=20PDF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/visu_toutes_notes2.php | 312 ++++++++++++++++++++++- prepa_conseil/visu_toutes_notes.php | 368 ++++++++++++++++++++++++++-- 2 files changed, 661 insertions(+), 19 deletions(-) diff --git a/cahier_notes/visu_toutes_notes2.php b/cahier_notes/visu_toutes_notes2.php index 9ca803b24..606841005 100644 --- a/cahier_notes/visu_toutes_notes2.php +++ b/cahier_notes/visu_toutes_notes2.php @@ -1537,9 +1537,9 @@ function affiche_tableau_csv2($nombre_lignes, $nb_col, $ligne1, $col, $col_csv) $classe = sql_query1("SELECT classe FROM classes WHERE id = '$id_classe'"); if ($referent == "une_periode") { - $chaine_titre="Classe_".$classe."_Resultats_".$nom_periode[$num_periode]."_Annee_scolaire_".getSettingValue("gepiYear"); + $chaine_titre="Classe_".$classe."_Resultats_CN_".$nom_periode[$num_periode]."_Annee_scolaire_".getSettingValue("gepiYear"); } else { - $chaine_titre="Classe_".$classe."_Resultats_Moyennes_annuelles_Annee_scolaire_".getSettingValue("gepiYear"); + $chaine_titre="Classe_".$classe."_Resultats_CN_Moyennes_annuelles_Annee_scolaire_".getSettingValue("gepiYear"); } $now = gmdate('D, d M Y H:i:s') . ' GMT'; @@ -1558,6 +1558,289 @@ function affiche_tableau_csv2($nombre_lignes, $nb_col, $ligne1, $col, $col_csv) echo echo_csv_encoded($fd); die(); } + elseif($_GET['mode']=="pdf") { + $classe = sql_query1("SELECT classe FROM classes WHERE id = '$id_classe'"); + + if ($referent == "une_periode") { + $chaine_titre="Classe_".$classe."_Resultats_CN_".$nom_periode[$num_periode]."_Annee_scolaire_".getSettingValue("gepiYear"); + } else { + $chaine_titre="Classe_".$classe."_Resultats_CN_Moyennes_annuelles_Annee_scolaire_".getSettingValue("gepiYear"); + } + + $now = gmdate('D, d M Y H:i:s') . ' GMT'; + + $nom_fic=$chaine_titre."_".$now; + + // Filtrer les caractères dans le nom de fichier: + $nom_fic=preg_replace("/[^a-zA-Z0-9_.-]/","",remplace_accents($nom_fic,'all')); + $nom_fic.=".pdf"; + + require_once('../fpdf/fpdf.php'); + require_once("../fpdf/class.multicelltag.php"); + + // Fichier d'extension de fpdf pour le bulletin + require_once("../class_php/gepi_pdf.class.php"); + + // Fonctions php des bulletins pdf + require_once("../bulletin/bulletin_fonctions.php"); + // Ensemble des données communes + require_once("../bulletin/bulletin_donnees.php"); + + session_cache_limiter('private'); + + $X1 = 0; $Y1 = 0; $X2 = 0; $Y2 = 0; + $X3 = 0; $Y3 = 0; $X4 = 0; $Y4 = 0; + $X5 = 0; $Y5 = 0; $X6 = 0; $Y6 = 0; + + $largeur_page=210; + $hauteur_page=297; + + $pref_marge=7; + /* + $pref_marge=isset($_POST['marge_pdf_mes_moyennes']) ? $_POST['marge_pdf_mes_moyennes'] : getPref($_SESSION['login'],'marge_pdf_mes_moyennes',7); + if(($pref_marge=="")||(!preg_match("/^[0-9]*$/", $pref_marge))||($pref_marge<5)) { + $pref_marge=7; + } + else { + savePref($_SESSION['login'], 'marge_pdf_mes_moyennes', $pref_marge); + } + */ + //marge_pdf_mes_moyennes + $marge_gauche=$pref_marge; + $marge_droite=$pref_marge; + $marge_haute=$pref_marge; + $marge_basse=$pref_marge; + + $hauteur_police=10; + $largeur_col_nom_ele=40; + + // Hauteur de la ligne du titre de la page + $h_ligne_titre_page=10; + + // Hauteur de la première ligne de tableau avec les noms de matières à la verticale. + $h_ligne_titre_tableau=40; + + // Hauteur par defaut des lignes de tableau: + $h_cell=10; + + // Largeur des colonnes + $largeur_col=array(); + $largeur_col[1]=$largeur_col_nom_ele; + $indice_col_app=array(); + + $taille_max_police=$hauteur_police; + $taille_min_police=ceil($taille_max_police/3); + + $x0=$marge_gauche; + $y0=$marge_haute; + + $largeur_nomprenom_classe_et_notes=$marge_gauche+$largeur_col_nom_ele; + + $format_page="P"; + + $pdf=new bul_PDF($format_page, 'mm', 'A4'); + $pdf->SetCreator($gepiSchoolName); + $pdf->SetAuthor($gepiSchoolName); + $pdf->SetKeywords(''); + $pdf->SetSubject('Toutes_notes'); + $pdf->SetTitle('Toutes_notes'); + $pdf->SetDisplayMode('fullwidth', 'single'); + $pdf->SetCompression(TRUE); + $pdf->SetAutoPageBreak(TRUE, 5); + + $pdf->AddPage(); + $fonte='DejaVu'; + + $pdf->SetFont($fonte,'B',8); + + $avec_date_naiss="n"; + for($i=2;$i<=count($ligne1_csv);$i++) { + if(preg_match("/^Date de naiss/", $ligne1_csv[$i])) { + $avec_date_naiss="y"; + break; + } + } + + $largeur_col_notes=floor(10*($largeur_page-$marge_gauche-$marge_droite-$largeur_col_nom_ele-15)/(count($ligne1_csv)-2))/10; + //$info_largeur_col_notes="\$largeur_col_notes=floor(10*($largeur_page-$marge_gauche-$marge_droite-$largeur_col_nom_ele-15)/(".count($ligne1_csv)."-2))/10=$largeur_col_notes"; + + function ajuste_FontSize($texte, $largeur_dispo, $hauteur_caractere_initiale, $graisse='', $hauteur_caractere_minimale, $fonte='DejaVu') { + global $pdf; + + $hauteur_caractere=$hauteur_caractere_initiale; + $pdf->SetFont($fonte,$graisse,$hauteur_caractere); + $val = $pdf->GetStringWidth($texte); + + $etat_grandeur_texte='test'; + while($etat_grandeur_texte != 'ok') { + if(($largeur_dispo < $val)&&($hauteur_caractere>=$hauteur_caractere_minimale-0.3)) { + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont($fonte,$graisse,$hauteur_caractere); + $val = $pdf->GetStringWidth($texte); + } else { + $etat_grandeur_texte = 'ok'; + } + } + + return $hauteur_caractere; + } + + //==================================================== + // Recherche des tailles de polices optimales + + // Une taille sans importance, histoire de tester + $pdf->SetFont($fonte,'',12); + // Recherche du plus long nom_prenom + $texte_test[1]="Edmou Dugenou"; + $longueur_max_nom_prenom=0; + $largeur_col[1]=$largeur_col_nom_ele; + for($i=1;$i<=count($col_csv[1]);$i++) { + $longueur_courante=$pdf->GetStringWidth($col_csv[1][$i]); + if($longueur_courante>$longueur_max_nom_prenom) { + $texte_test[1]=$col_csv[1][$i]; + $longueur_max_nom_prenom=$longueur_courante; + } + } + $taille_police_col[1]=ajuste_FontSize($texte_test[1], $largeur_col[1], 12, 'B', 3); + + for($i=2;$i<=count($ligne1_csv);$i++) { + if(preg_match("/^Date de naiss/", $ligne1_csv[$i])) { + $largeur_col[$i]=15; + $texte_test[$i]="99/99/99"; + } + else { + $largeur_col[$i]=$largeur_col_notes; + $texte_test[$i]="disp"; + } + } + + for($i=2;$i<=count($ligne1_csv);$i++) { + $taille_police_col[$i]=ajuste_FontSize(" ".$texte_test[$i]." ", $largeur_col[$i], 12, '', 3); + } + + $longueur_max_matiere=0; + $chaine_longueur_max_matiere=""; + for($i=2;$i<=count($ligne1_csv);$i++) { + // Texte à mettre à la verticale: + $texte=$ligne1_csv[$i]; + + $longueur_courante=$pdf->GetStringWidth($texte); + if($longueur_courante>$longueur_max_matiere) { + $longueur_max_matiere=$longueur_courante; + $chaine_longueur_max_matiere=$texte; + } + } + $taille_police_matiere=ajuste_FontSize(" ".$chaine_longueur_max_matiere." ", $h_ligne_titre_tableau, 12, 'B', 3); + //==================================================== + + //$texte_titre=$current_group['profs']['proflist_string']." - ".$current_group['description']." en ".$current_group['classlist_string']; + $texte_titre=$chaine_titre; + + $pdf->SetXY($x0,$y0); + + $texte=$texte_titre; + $largeur_dispo=$largeur_page-$marge_gauche-$marge_droite; + $hauteur_caractere=12; + $h_ligne=$h_ligne_titre_page; + $graisse='B'; + $alignement='C'; + $bordure=''; + cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne,$hauteur_caractere,$fonte,$graisse,$alignement,$bordure); + $y2=$y0+$h_ligne_titre_page; + + //=========================== + // Ligne d'entête du tableau + //$pdf->SetXY($x0,$y0); + $pdf->SetXY($x0,$y2); + $largeur_dispo=$largeur_col_nom_ele; + $texte=$ligne1_csv[1]; + + $graisse='B'; + //$alignement='L'; + $alignement='C'; + $bordure='LRBT'; + cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne_titre_tableau,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $pdf->SetFont($fonte,'B',$taille_police_matiere); + $alignement='C'; + $x2=$x0+$largeur_col_nom_ele; + for($i=2;$i<=count($ligne1_csv);$i++) { + $pdf->SetXY($x2, $y2); + $largeur_dispo=$largeur_col[$i]; + + // Cadre de la cellule: + $pdf->Cell($largeur_dispo,$h_ligne_titre_tableau, "",'LRBT',2,''); + + // Texte à la verticale: + $texte=" ".$ligne1_csv[$i]." "; + + //ajuste_FontSize($texte, $h_ligne_titre_tableau, 12, 'B', 5); + + $pdf->TextWithRotation($x2+Ceil($largeur_dispo/2),$y2+$h_ligne_titre_tableau,$texte,90); + + $x2+=$largeur_dispo; + } + //=========================== + + $h_cell=min(10, floor(($hauteur_page-$marge_haute-$marge_basse-$h_ligne_titre_page-$h_ligne_titre_tableau)/(count($col)-1))); + + /* + $pdf->SetXY(10, 110); + $pdf->Cell(190,10, $info_largeur_col_notes,'LRBT',2,''); + */ + + $graisse=''; + $alignement='C'; + $bordure='LRBT'; + $h_ligne=$h_cell; + + $y2=$y2+$h_ligne_titre_tableau; + $k=1; + for($j=1;$jSetFillColor(0,0,0); + } + else { + $pdf->SetFillColor(100,100,100); + } + */ + + for($i=1;$i<=count($ligne1_csv);$i++) { + $pdf->SetXY($x2, $y2); + + $largeur_dispo=$largeur_col[$i]; + + if(isset($col_csv[$i][$j])) { + $texte=" ".$col_csv[$i][$j]." "; + //$texte=$col_csv[$i][$j]." "; + } + else { + $texte=" ".$col[$i][$j]." "; + //$texte=$col[$i][$j]." "; + } + + $pdf->SetFont($fonte,$graisse, $taille_police_col[$i]); + + $pdf->Cell($largeur_dispo,$h_ligne, $texte,'LRBT',2,'C'); + + // On n'obtient pas des notes toutes de la même taille... c'est tout moche: + //cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $x2+=$largeur_dispo; + } + $y2+=$h_ligne; + + $k++; + } + + send_file_download_headers('application/pdf',$nom_fic); + $pdf->Output($nom_fic,'I'); + die(); + + } } //**************** EN-TETE ***************** @@ -1604,6 +1887,31 @@ function affiche_tableau_csv2($nombre_lignes, $nb_col, $ligne1, $col, $col_csv) $classe = sql_query1("SELECT classe FROM classes WHERE id = '$id_classe'"); + +// Lien pour générer un PDF +echo "
    +PDF +
    \n"; + // Lien pour générer un CSV echo "
    "; -echo "
    ";
    -echo print_r($col);
    -echo "
    "; -echo "
    "; -echo "
    ";
    -echo print_r($col_csv);
    -echo "
    "; -echo "
    "; -*/ + + /* + echo ""; + echo ""; + echo ""; + + echo ""; + + echo ""; + echo ""; + echo "
    "; + echo "
    ";
    +		echo print_r($ligne1_csv);
    +		echo "
    "; + echo "
    "; + echo "
    ";
    +		echo print_r($col);
    +		echo "
    "; + echo "
    "; + echo "
    ";
    +		echo print_r($col_csv);
    +		echo "
    "; + echo "
    "; + die(); + */ send_file_download_headers('text/x-csv',$nom_fic); $fd=""; @@ -2212,6 +2220,291 @@ function affiche_tableau_csv2($nombre_lignes, $nb_col, $ligne1, $col, $col_csv) echo echo_csv_encoded($fd); die(); } + elseif($_GET['mode']=="pdf") { + $classe = sql_query1("SELECT classe FROM classes WHERE id = '$id_classe'"); + + if ($referent == "une_periode") { + $chaine_titre="Classe_".$classe."_Resultats_".$nom_periode[$num_periode]."_Annee_scolaire_".getSettingValue("gepiYear"); + } else { + $chaine_titre="Classe_".$classe."_Resultats_Moyennes_annuelles_Annee_scolaire_".getSettingValue("gepiYear"); + } + + $now = gmdate('D, d M Y H:i:s') . ' GMT'; + + $nom_fic=$chaine_titre."_".$now; + + // Filtrer les caractères dans le nom de fichier: + $nom_fic=preg_replace("/[^a-zA-Z0-9_.-]/","",remplace_accents($nom_fic,'all')); + $nom_fic.=".pdf"; + + require_once('../fpdf/fpdf.php'); + require_once("../fpdf/class.multicelltag.php"); + + // Fichier d'extension de fpdf pour le bulletin + require_once("../class_php/gepi_pdf.class.php"); + + // Fonctions php des bulletins pdf + require_once("../bulletin/bulletin_fonctions.php"); + // Ensemble des données communes + require_once("../bulletin/bulletin_donnees.php"); + + + session_cache_limiter('private'); + + $X1 = 0; $Y1 = 0; $X2 = 0; $Y2 = 0; + $X3 = 0; $Y3 = 0; $X4 = 0; $Y4 = 0; + $X5 = 0; $Y5 = 0; $X6 = 0; $Y6 = 0; + + $largeur_page=210; + $hauteur_page=297; + + $pref_marge=7; + /* + $pref_marge=isset($_POST['marge_pdf_mes_moyennes']) ? $_POST['marge_pdf_mes_moyennes'] : getPref($_SESSION['login'],'marge_pdf_mes_moyennes',7); + if(($pref_marge=="")||(!preg_match("/^[0-9]*$/", $pref_marge))||($pref_marge<5)) { + $pref_marge=7; + } + else { + savePref($_SESSION['login'], 'marge_pdf_mes_moyennes', $pref_marge); + } + */ + //marge_pdf_mes_moyennes + $marge_gauche=$pref_marge; + $marge_droite=$pref_marge; + $marge_haute=$pref_marge; + $marge_basse=$pref_marge; + + $hauteur_police=10; + $largeur_col_nom_ele=40; + + // Hauteur de la ligne du titre de la page + $h_ligne_titre_page=10; + + // Hauteur de la première ligne de tableau avec les noms de matières à la verticale. + $h_ligne_titre_tableau=40; + + // Hauteur par defaut des lignes de tableau: + $h_cell=10; + + // Largeur des colonnes + $largeur_col=array(); + $largeur_col[1]=$largeur_col_nom_ele; + $indice_col_app=array(); + + $taille_max_police=$hauteur_police; + $taille_min_police=ceil($taille_max_police/3); + + $x0=$marge_gauche; + $y0=$marge_haute; + + $largeur_nomprenom_classe_et_notes=$marge_gauche+$largeur_col_nom_ele; + + $format_page="P"; + + $pdf=new bul_PDF($format_page, 'mm', 'A4'); + $pdf->SetCreator($gepiSchoolName); + $pdf->SetAuthor($gepiSchoolName); + $pdf->SetKeywords(''); + $pdf->SetSubject('Toutes_notes'); + $pdf->SetTitle('Toutes_notes'); + $pdf->SetDisplayMode('fullwidth', 'single'); + $pdf->SetCompression(TRUE); + $pdf->SetAutoPageBreak(TRUE, 5); + + $pdf->AddPage(); + $fonte='DejaVu'; + + $pdf->SetFont($fonte,'B',8); + + + $avec_date_naiss="n"; + for($i=2;$i<=count($ligne1_csv);$i++) { + if(preg_match("/^Date de naiss/", $ligne1_csv[$i])) { + $avec_date_naiss="y"; + break; + } + } + + $largeur_col_notes=floor(10*($largeur_page-$marge_gauche-$marge_droite-$largeur_col_nom_ele-15)/(count($ligne1_csv)-2))/10; + //$info_largeur_col_notes="\$largeur_col_notes=floor(10*($largeur_page-$marge_gauche-$marge_droite-$largeur_col_nom_ele-15)/(".count($ligne1_csv)."-2))/10=$largeur_col_notes"; + + function ajuste_FontSize($texte, $largeur_dispo, $hauteur_caractere_initiale, $graisse='', $hauteur_caractere_minimale, $fonte='DejaVu') { + global $pdf; + + $hauteur_caractere=$hauteur_caractere_initiale; + $pdf->SetFont($fonte,$graisse,$hauteur_caractere); + $val = $pdf->GetStringWidth($texte); + + $etat_grandeur_texte='test'; + while($etat_grandeur_texte != 'ok') { + if(($largeur_dispo < $val)&&($hauteur_caractere>=$hauteur_caractere_minimale-0.3)) { + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont($fonte,$graisse,$hauteur_caractere); + $val = $pdf->GetStringWidth($texte); + } else { + $etat_grandeur_texte = 'ok'; + } + } + + return $hauteur_caractere; + } + + //==================================================== + // Recherche des tailles de polices optimales + + // Une taille sans importance, histoire de tester + $pdf->SetFont($fonte,'',12); + // Recherche du plus long nom_prenom + $texte_test[1]="Edmou Dugenou"; + $longueur_max_nom_prenom=0; + $largeur_col[1]=$largeur_col_nom_ele; + for($i=1;$i<=count($col_csv[1]);$i++) { + $longueur_courante=$pdf->GetStringWidth($col_csv[1][$i]); + if($longueur_courante>$longueur_max_nom_prenom) { + $texte_test[1]=$col_csv[1][$i]; + $longueur_max_nom_prenom=$longueur_courante; + } + } + $taille_police_col[1]=ajuste_FontSize($texte_test[1], $largeur_col[1], 12, 'B', 3); + + for($i=2;$i<=count($ligne1_csv);$i++) { + if(preg_match("/^Date de naiss/", $ligne1_csv[$i])) { + $largeur_col[$i]=15; + $texte_test[$i]="99/99/99"; + } + else { + $largeur_col[$i]=$largeur_col_notes; + $texte_test[$i]="disp"; + } + } + + for($i=2;$i<=count($ligne1_csv);$i++) { + $taille_police_col[$i]=ajuste_FontSize(" ".$texte_test[$i]." ", $largeur_col[$i], 12, '', 3); + } + + $longueur_max_matiere=0; + $chaine_longueur_max_matiere=""; + for($i=2;$i<=count($ligne1_csv);$i++) { + // Texte à mettre à la verticale: + $texte=$ligne1_csv[$i]; + + $longueur_courante=$pdf->GetStringWidth($texte); + if($longueur_courante>$longueur_max_matiere) { + $longueur_max_matiere=$longueur_courante; + $chaine_longueur_max_matiere=$texte; + } + } + $taille_police_matiere=ajuste_FontSize(" ".$chaine_longueur_max_matiere." ", $h_ligne_titre_tableau, 12, 'B', 3); + //==================================================== + + //$texte_titre=$current_group['profs']['proflist_string']." - ".$current_group['description']." en ".$current_group['classlist_string']; + $texte_titre=$chaine_titre; + + $pdf->SetXY($x0,$y0); + + $texte=$texte_titre; + $largeur_dispo=$largeur_page-$marge_gauche-$marge_droite; + $hauteur_caractere=12; + $h_ligne=$h_ligne_titre_page; + $graisse='B'; + $alignement='C'; + $bordure=''; + cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne,$hauteur_caractere,$fonte,$graisse,$alignement,$bordure); + $y2=$y0+$h_ligne_titre_page; + + //=========================== + // Ligne d'entête du tableau + //$pdf->SetXY($x0,$y0); + $pdf->SetXY($x0,$y2); + $largeur_dispo=$largeur_col_nom_ele; + $texte=$ligne1_csv[1]; + + $graisse='B'; + //$alignement='L'; + $alignement='C'; + $bordure='LRBT'; + cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne_titre_tableau,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $pdf->SetFont($fonte,'B',$taille_police_matiere); + $alignement='C'; + $x2=$x0+$largeur_col_nom_ele; + for($i=2;$i<=count($ligne1_csv);$i++) { + $pdf->SetXY($x2, $y2); + $largeur_dispo=$largeur_col[$i]; + + // Cadre de la cellule: + $pdf->Cell($largeur_dispo,$h_ligne_titre_tableau, "",'LRBT',2,''); + + // Texte à la verticale: + $texte=" ".$ligne1_csv[$i]." "; + + //ajuste_FontSize($texte, $h_ligne_titre_tableau, 12, 'B', 5); + + $pdf->TextWithRotation($x2+Ceil($largeur_dispo/2),$y2+$h_ligne_titre_tableau,$texte,90); + + $x2+=$largeur_dispo; + } + //=========================== + + $h_cell=min(10, floor(($hauteur_page-$marge_haute-$marge_basse-$h_ligne_titre_page-$h_ligne_titre_tableau)/(count($col)-1))); + + /* + $pdf->SetXY(10, 110); + $pdf->Cell(190,10, $info_largeur_col_notes,'LRBT',2,''); + */ + + $graisse=''; + $alignement='C'; + $bordure='LRBT'; + $h_ligne=$h_cell; + + $y2=$y2+$h_ligne_titre_tableau; + $k=1; + for($j=1;$jSetFillColor(0,0,0); + } + else { + $pdf->SetFillColor(100,100,100); + } + */ + + for($i=1;$i<=count($ligne1_csv);$i++) { + $pdf->SetXY($x2, $y2); + + $largeur_dispo=$largeur_col[$i]; + + if(isset($col_csv[$i][$j])) { + $texte=" ".$col_csv[$i][$j]." "; + //$texte=$col_csv[$i][$j]." "; + } + else { + $texte=" ".$col[$i][$j]." "; + //$texte=$col[$i][$j]." "; + } + + $pdf->SetFont($fonte,$graisse, $taille_police_col[$i]); + + $pdf->Cell($largeur_dispo,$h_ligne, $texte,'LRBT',2,'C'); + + // On n'obtient pas des notes toutes de la même taille... c'est tout moche: + //cell_ajustee_une_ligne(($texte),$pdf->GetX(),$pdf->GetY(),$largeur_dispo,$h_ligne,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $x2+=$largeur_dispo; + } + $y2+=$h_ligne; + + $k++; + } + + send_file_download_headers('application/pdf',$nom_fic); + $pdf->Output($nom_fic,'I'); + die(); + + } } //**************** EN-TETE ***************** @@ -2265,6 +2558,47 @@ function affiche_tableau_csv2($nombre_lignes, $nb_col, $ligne1, $col, $col_csv) $classe = sql_query1("SELECT classe FROM classes WHERE id = '$id_classe'"); +// Lien pour générer un PDF +echo "\n"; + // Lien pour générer un CSV echo "
    Utiliser des pointillés quand une note manque :\n"; + if($graphe_pointille!='no') {$checked=" checked='yes'";} else {$checked="";} + echo "/"; + if($graphe_pointille=='no') {$checked=" checked='yes'";} else {$checked="";} + echo ""; + echo "
    Tel personnel :
    Tel portable :
    Tel professionnel :
    Identifiant National : \n"; //echo "
    Numéro GEP : Numéro interne Sconet (elenoet) : Numéro interne Sconet (elenoet) :
    Numéro interne Sconet (ele_id) : "; + echo "
    Numéro interne Sconet (ele_id) : "; if (isset($reg_ele_id)) {echo $reg_ele_id;} echo "
    Date de sortie de l'établissement :
    (respecter format JJ/MM/AAAA)
    Date de sortie de l'établissement :
    (respecter format JJ/MM/AAAA)
    "; echo "Jour "; echo " Mois "; diff --git a/gestion/param_gen.php b/gestion/param_gen.php index 75a759b5e..9c1d8295c 100644 --- a/gestion/param_gen.php +++ b/gestion/param_gen.php @@ -332,7 +332,42 @@ } } } - + + + if (isset($_POST['ele_tel_pers'])) { + if (!saveSetting("ele_tel_pers", $_POST['ele_tel_pers'])) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_pers !"; + } + } + else{ + if (!saveSetting("ele_tel_pers", 'no')) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_pers !"; + } + } + + if (isset($_POST['ele_tel_port'])) { + if (!saveSetting("ele_tel_port", $_POST['ele_tel_port'])) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_port !"; + } + } + else{ + if (!saveSetting("ele_tel_port", 'no')) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_port !"; + } + } + + if (isset($_POST['ele_tel_prof'])) { + if (!saveSetting("ele_tel_prof", $_POST['ele_tel_prof'])) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_prof !"; + } + } + else{ + if (!saveSetting("ele_tel_prof", 'no')) { + $msg .= "Erreur lors de l'enregistrement du paramètre ele_tel_prof !"; + } + } + + if (isset($_POST['type_bulletin_par_defaut'])) { if(($_POST['type_bulletin_par_defaut']=='html')||($_POST['type_bulletin_par_defaut']=='pdf')) { if (!saveSetting("type_bulletin_par_defaut", $_POST['type_bulletin_par_defaut'])) { @@ -1375,7 +1410,7 @@

    - +

    @@ -1406,7 +1441,71 @@ onchange='changement()' />

    - + + +

    + + + + + + + + onchange='changement()' /> + +

    + +

    + + + + + + + + onchange='changement()' /> + +

    + +

    + + + + + + + + onchange='changement()' /> + +

    +

    diff --git a/responsables/maj_import.php b/responsables/maj_import.php index f6717bb71..6722881a5 100644 --- a/responsables/maj_import.php +++ b/responsables/maj_import.php @@ -60,7 +60,7 @@ echo "


    \n"; */ -echo "

    Mise à jour des données élèves/responsables à l'aide des fichiers XML de Sconet/STS.

    \n"; +echo "

    Mise à jour des données élèves/responsables à l'aide des fichiers XML de Sconet/STS.

    \n"; echo "


    \n"; //================================== diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index e10b1a335..1174da5bc 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -68,6 +68,10 @@ $ele_lieu_naissance=getSettingValue("ele_lieu_naissance") ? getSettingValue("ele_lieu_naissance") : "n"; +$ele_tel_pers=getSettingValue("ele_tel_pers") ? getSettingValue("ele_tel_pers") : "no"; +$ele_tel_port=getSettingValue("ele_tel_port") ? getSettingValue("ele_tel_port") : "yes"; +$ele_tel_prof=getSettingValue("ele_tel_prof") ? getSettingValue("ele_tel_prof") : "no"; + $ne_pas_tester_les_changements_de_classes=getSettingValue("no_test_chgt_clas"); if($ne_pas_tester_les_changements_de_classes=="") {$ne_pas_tester_les_changements_de_classes="n";} // INSERT INTO setting SET name='no_test_chgt_clas', value='n'; @@ -153,6 +157,21 @@ function connect_ldap($l_adresse,$l_port,$l_login,$l_pwd) { saveSetting('alert_diff_mail_resp', $alert_diff_mail_resp); saveSetting('alert_diff_etab_origine', $alert_diff_etab_origine); +// ===================================================== +// Test sur les modifications de telephone élève +$ele_tel_prof_signaler_modif=isset($_POST['ele_tel_prof_signaler_modif']) ? $_POST['ele_tel_prof_signaler_modif'] : (isset($_GET['ele_tel_prof_signaler_modif']) ? $_GET['ele_tel_prof_signaler_modif'] : (isset($_SESSION['ele_tel_prof_signaler_modif']) ? $_SESSION['ele_tel_prof_signaler_modif'] : getSettingValue('ele_tel_prof_signaler_modif'))); +if(($ele_tel_prof_signaler_modif!='yes')&&($ele_tel_prof_signaler_modif!='no')) {$ele_tel_prof_signaler_modif="yes";} +saveSetting('ele_tel_prof_signaler_modif', $ele_tel_prof_signaler_modif); + +$ele_tel_pers_signaler_modif=isset($_POST['ele_tel_pers_signaler_modif']) ? $_POST['ele_tel_pers_signaler_modif'] : (isset($_GET['ele_tel_pers_signaler_modif']) ? $_GET['ele_tel_pers_signaler_modif'] : (isset($_SESSION['ele_tel_pers_signaler_modif']) ? $_SESSION['ele_tel_pers_signaler_modif'] : getSettingValue('ele_tel_pers_signaler_modif'))); +if(($ele_tel_pers_signaler_modif!='yes')&&($ele_tel_pers_signaler_modif!='no')) {$ele_tel_pers_signaler_modif="yes";} +saveSetting('ele_tel_pers_signaler_modif', $ele_tel_pers_signaler_modif); + +$ele_tel_port_signaler_modif=isset($_POST['ele_tel_port_signaler_modif']) ? $_POST['ele_tel_port_signaler_modif'] : (isset($_GET['ele_tel_port_signaler_modif']) ? $_GET['ele_tel_port_signaler_modif'] : (isset($_SESSION['ele_tel_port_signaler_modif']) ? $_SESSION['ele_tel_port_signaler_modif'] : getSettingValue('ele_tel_port_signaler_modif'))); +if(($ele_tel_port_signaler_modif!='yes')&&($ele_tel_port_signaler_modif!='no')) {$ele_tel_port_signaler_modif="yes";} +saveSetting('ele_tel_port_signaler_modif', $ele_tel_port_signaler_modif); +// ===================================================== + $stop=isset($_POST['stop']) ? $_POST['stop'] : (isset($_GET['stop']) ? $_GET['stop'] :'n'); //$style_specifique="responsables/maj_import2"; @@ -415,6 +434,49 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ echo "

    \n"; + // 20120630 + $nb_types_tel_ele_utilises=0; + if(getSettingAOui('ele_tel_pers')) {$nb_types_tel_ele_utilises++;} + if(getSettingAOui('ele_tel_port')) {$nb_types_tel_ele_utilises++;} + if(getSettingAOui('ele_tel_prof')) {$nb_types_tel_ele_utilises++;} + if($nb_types_tel_ele_utilises>0) { + echo "
    \n"; + echo "

    \n"; + echo "Téléphone des élèves : Tester les modifications de :\n"; + echo "
    \n"; + + if(getSettingAOui('ele_tel_pers')) { + echo "\n"; + echo "
    \n"; + } + + if(getSettingAOui('ele_tel_port')) { + echo "\n"; + echo "
    \n"; + } + + if(getSettingAOui('ele_tel_prof')) { + echo "\n"; + echo "
    \n"; + } + echo "

    \n"; + } + echo "
    \n"; echo "

    "; echo "\n"; @@ -660,7 +722,10 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ `ELEOPT11` varchar(40) $chaine_mysql_collate NOT NULL default '', `ELEOPT12` varchar(40) $chaine_mysql_collate NOT NULL default '', `LIEU_NAISSANCE` varchar(50) $chaine_mysql_collate NOT NULL default '', - `MEL` varchar(255) $chaine_mysql_collate NOT NULL default '' + `MEL` varchar(255) $chaine_mysql_collate NOT NULL default '', + `TEL_PERS` varchar(255) $chaine_mysql_collate NOT NULL default '', + `TEL_PORT` varchar(255) $chaine_mysql_collate NOT NULL default '', + `TEL_PROF` varchar(255) $chaine_mysql_collate NOT NULL default '' );"; info_debug($sql); $create_table = mysql_query($sql); @@ -916,7 +981,10 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ "CODE_COMMUNE_INSEE_NAISS", "CODE_PAYS", "VILLE_NAISS", - "MEL" + "MEL", + "TEL_PERSONNEL", + "TEL_PORTABLE", + "TEL_PROFESSIONNEL", ); $tab_champs_scol_an_dernier=array("CODE_STRUCTURE", @@ -1118,6 +1186,9 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ if(isset($eleves[$i]['mel'])) {$sql.=", mel='".$eleves[$i]['mel']."'";} + if(isset($eleves[$i]['tel_personnel'])) {$sql.=", tel_pers='".$eleves[$i]['tel_personnel']."'";} + if(isset($eleves[$i]['tel_portable'])) {$sql.=", tel_port='".$eleves[$i]['tel_portable']."'";} + if(isset($eleves[$i]['tel_professionnel'])) {$sql.=", tel_prof='".$eleves[$i]['tel_professionnel']."'";} $sql.=" WHERE ele_id='".$eleves[$i]['eleve_id']."';"; affiche_debug("$sql
    \n"); @@ -1975,6 +2046,15 @@ function modifcase(mode){ e.naissance!=t2.col2 OR e.lieu_naissance!=t.LIEU_NAISSANCE OR e.no_gep!=t.ELENONAT"; + if((getSettingValue('ele_tel_pers')=='yes')) { + $sql.=" OR e.tel_pers!=t.TEL_PERS"; + } + if((getSettingValue('ele_tel_port')=='yes')) { + $sql.=" OR e.tel_port!=t.TEL_PORT"; + } + if((getSettingValue('ele_tel_prof')=='yes')) { + $sql.=" OR e.tel_prof!=t.TEL_PROF"; + } if((getSettingValue('mode_email_ele')=='')||(getSettingValue('mode_email_ele')=='sconet')) { $sql.=" OR e.email!=t.mel"; } @@ -1991,6 +2071,15 @@ function modifcase(mode){ e.sexe!=t.ELESEXE OR e.naissance!=t2.col2 OR e.no_gep!=t.ELENONAT"; + if((getSettingValue('ele_tel_pers')=='yes')) { + $sql.=" OR e.tel_pers!=t.TEL_PERS"; + } + if((getSettingValue('ele_tel_port')=='yes')) { + $sql.=" OR e.tel_port!=t.TEL_PORT"; + } + if((getSettingValue('ele_tel_prof')=='yes')) { + $sql.=" OR e.tel_prof!=t.TEL_PROF"; + } if((getSettingValue('mode_email_ele')=='')||(getSettingValue('mode_email_ele')=='sconet')) { $sql.=" OR e.email!=t.mel"; } @@ -2262,6 +2351,12 @@ function modifcase(mode){ info_debug("=============================================="); info_debug("=============== Phase step $step ================="); + // 20120630 + $nb_types_tel_ele_a_tester=0; + if((getSettingAOui('ele_tel_pers'))&&(getSettingAOui('ele_tel_pers_signaler_modif'))) {$nb_types_tel_ele_a_tester++;} + if((getSettingAOui('ele_tel_port'))&&(getSettingAOui('ele_tel_port_signaler_modif'))) {$nb_types_tel_ele_a_tester++;} + if((getSettingAOui('ele_tel_prof'))&&(getSettingAOui('ele_tel_prof_signaler_modif'))) {$nb_types_tel_ele_a_tester++;} + // 20110913 $sql="SELECT * FROM tempo4 WHERE col1='maj_sconet_eleves' AND (col3='modif' OR col3='new');"; $res=mysql_query($sql); @@ -2407,6 +2502,13 @@ function modifcase(mode){ echo "

    EmailTelClasseEtablissement d'origine
    \n"; + echo "\n"; + if((getSettingValue('ele_tel_pers')=='yes')&&(getSettingAOui('ele_tel_pers_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "tel_pers)!=stripslashes($affiche[13])){ + echo " class='modif'>"; + if($lig_ele->tel_pers!=''){ + echo stripslashes($lig_ele->tel_pers)." ->\n"; + } + } + else{ + //echo "'>"; + echo ">"; + } + echo stripslashes($affiche[13]); + echo "\n"; + echo "\n"; + } + if((getSettingValue('ele_tel_port')=='yes')&&(getSettingAOui('ele_tel_port_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "tel_port)!=stripslashes($affiche[14])){ + echo " class='modif'>"; + if($lig_ele->tel_port!=''){ + echo stripslashes($lig_ele->tel_port)." ->\n"; + } + } + else{ + //echo "'>"; + echo ">"; + } + echo stripslashes($affiche[14]); + echo "\n"; + echo "\n"; + } + if((getSettingValue('ele_tel_prof')=='yes')&&(getSettingAOui('ele_tel_prof_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "tel_prof)!=stripslashes($affiche[15])){ + echo " class='modif'>"; + if($lig_ele->tel_prof!=''){ + echo stripslashes($lig_ele->tel_prof)." ->\n"; + } + } + else{ + //echo "'>"; + echo ">"; + } + echo stripslashes($affiche[15]); + echo "\n"; + echo "\n"; + } + echo "
    Pe
    Po
    Pr
    \n"; + + + /* + if($nb_types_tel_ele_a_tester==1) { + + } + else { + // On va mettre un tableau + + } + */ + echo "
    "; echo "\n"; + echo "\n"; + if((getSettingValue('ele_tel_pers')=='yes')&&(getSettingAOui('ele_tel_pers_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + if((getSettingValue('ele_tel_port')=='yes')&&(getSettingAOui('ele_tel_port_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + if((getSettingValue('ele_tel_prof')=='yes')&&(getSettingAOui('ele_tel_prof_signaler_modif'))) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + echo "
    Pe"; + echo stripslashes($affiche[13]); + echo "
    Po"; + echo stripslashes($affiche[14]); + echo "
    Pr"; + echo stripslashes($affiche[15]); + echo "
    \n"; + echo "
    "; echo "$affiche[9]"; echo "
    \n"; + //$retour.="
    \n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + + $alt=1; + //foreach($tab_tel['responsable'] as $resp_legal => $tab_resp_legal) { + for($i=0;$i\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + } + + if(isset($tab_tel['eleve'])) { + $alt=$alt*(-1); + $retour.="\n"; + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + } + $retour.="
    IdentitéPersonnelPortableProfessionnel
    ".$tab_tel['responsable'][$i]['resp_legal']."".$tab_tel['responsable'][$i]['civ_nom_prenom'].""; + if(isset($tab_tel['responsable'][$i]['tel_pers'])) {$retour.=$tab_tel['responsable'][$i]['tel_pers'];} + $retour.=""; + if(isset($tab_tel['responsable'][$i]['tel_port'])) {$retour.=$tab_tel['responsable'][$i]['tel_port'];} + $retour.=""; + if(isset($tab_tel['responsable'][$i]['tel_prof'])) {$retour.=$tab_tel['responsable'][$i]['tel_prof'];} + $retour.="
    Élève"; + if(isset($tab_tel['eleve']['tel_pers'])) {$retour.=$tab_tel['eleve']['tel_pers'];} + $retour.=""; + if(isset($tab_tel['eleve']['tel_port'])) {$retour.=$tab_tel['eleve']['tel_port'];} + $retour.=""; + if(isset($tab_tel['eleve']['tel_prof'])) {$retour.=$tab_tel['eleve']['tel_prof'];} + $retour.="
    \n"; + } + return $retour; +} + ?> From 9b3def891310094e7418223227c3d3eeed16fdad Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Jul 2012 14:08:05 +0200 Subject: [PATCH 0033/1150] Affichage de la liste des tel resp --- mod_abs2/absences_du_jour.php | 12 +++++++++++- mod_abs2/lib/abs_style.css | 10 +++++++--- mod_abs2/visu_traitement.php | 10 ++++++++++ 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/mod_abs2/absences_du_jour.php b/mod_abs2/absences_du_jour.php index 5427657da..fdd96e949 100644 --- a/mod_abs2/absences_du_jour.php +++ b/mod_abs2/absences_du_jour.php @@ -510,7 +510,17 @@ echo ' (voir fiche)'; echo ""; } - + echo "
    \n"; + echo "
    \n"; + echo "
    \n"; + echo ""; + echo "
    \n"; + + echo "
    \n"; + echo tableau_tel_resp_ele($eleve->getLogin()); + echo "
    \n"; + echo "
    \n"; + echo(""); $col_creneaux = EdtCreneauPeer::retrieveAllEdtCreneauxOrderByTime(); diff --git a/mod_abs2/lib/abs_style.css b/mod_abs2/lib/abs_style.css index 1f70afdd7..ad478f530 100644 --- a/mod_abs2/lib/abs_style.css +++ b/mod_abs2/lib/abs_style.css @@ -144,13 +144,17 @@ table.legende { border-collapse: collapse; border-spacing: 0px; margin:4px; - - } .legende td{ padding:4px; border-spacing: 0px; border: 1px solid black; font: 11px ; - } +.tableau_tel_resp { + display:none; +} +.div_tab_tel_resp:hover .tableau_tel_resp { + display:block; +} + diff --git a/mod_abs2/visu_traitement.php b/mod_abs2/visu_traitement.php index d5116a208..6d369efd6 100644 --- a/mod_abs2/visu_traitement.php +++ b/mod_abs2/visu_traitement.php @@ -426,6 +426,16 @@ echo ''; } +if(($_SESSION['statut']=='cpe')||($_SESSION['statut']=='scolarite')|| +((($_SESSION['statut']=='professeur')&&(getSettingAOui('GepiAccesGestElevesProf'))))) { + echo ''; + echo 'Contact : '; + echo ''; + echo tableau_tel_resp_ele($saisie->getEleve()->getLogin()); + echo ''; + //flush(); +} + echo ''; echo ''; From 8766cf9b39c972006f9e4665dbf6c9bdd86407e0 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Jul 2012 14:27:28 +0200 Subject: [PATCH 0034/1150] =?UTF-8?q?Correctif:=20On=20ne=20coche=20pas=20?= =?UTF-8?q?une=20case=20r=C3=A9gime,=20si=20l'=C3=A9l=C3=A8ve=20est=20d?= =?UTF-8?q?=C3=A9j=C3=A0=20coch=C3=A9=20pour=20autre=20chose.=20Correctif?= =?UTF-8?q?=20sur=20le=20compte=20des=20coches=20r=C3=A9gime.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 9fb24fdae..8c48e1644 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -987,7 +987,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev if($js_chaine_tab_types_abs_regimes!="") { $js_chaine_tab_types_abs_regimes.=", "; } - $js_chaine_tab_types_abs_regimes.=$type['type']; + $js_chaine_tab_types_abs_regimes.="'".$type['type']."'"; } $alt=$alt*(-1); //echo "\n"; @@ -1438,7 +1438,7 @@ function cocher_decocher_regime(indice_type_abs_regime, indice_regime, mode) { //alert(tab.length) for(i=0;i Date: Mon, 2 Jul 2012 14:29:24 +0200 Subject: [PATCH 0035/1150] Ajout d'un fichier pour les modifs de tables depuis la 1.6.1 --- utilitaires/updates/161_to_dev.inc.php | 66 ++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 utilitaires/updates/161_to_dev.inc.php diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_dev.inc.php new file mode 100644 index 000000000..f5135f752 --- /dev/null +++ b/utilitaires/updates/161_to_dev.inc.php @@ -0,0 +1,66 @@ +Mise à jour vers la version 1.6.2(dev) :"; + +$result .= " -> Ajout d'un champ 'tel_pers' à la table 'eleves'
    "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM eleves LIKE 'tel_pers';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE eleves ADD tel_pers varchar(255) NOT NULL default '';"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +$result .= " -> Ajout d'un champ 'tel_port' à la table 'eleves'
    "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM eleves LIKE 'tel_port';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE eleves ADD tel_port varchar(255) NOT NULL default '';"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +$result .= " -> Ajout d'un champ 'tel_prof' à la table 'eleves'
    "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM eleves LIKE 'tel_prof';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE eleves ADD tel_prof varchar(255) NOT NULL default '';"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +?> From 14076022176159a486529191312f9336b686976a Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Mon, 2 Jul 2012 22:17:25 +0200 Subject: [PATCH 0036/1150] abs2 petit refactoring --- mod_abs2/saisir_groupe.php | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 8c48e1644..ca7a208b5 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -519,18 +519,14 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $afficheEleve[$elv]['nom'] = $eleve->getNom(); $afficheEleve[$elv]['prenom'] = $eleve->getPrenom(); $afficheEleve[$elv]['civilite'] = $eleve->getCivilite(); - // 20120618 - //$afficheEleve[$elv]['regime'] = $eleve->getRegime(); - $afficheEleve[$elv]['regime'] = ''; - $sql="SELECT regime FROM j_eleves_regime WHERE login='".$eleve->getLogin()."';"; - $res_regime=mysql_query($sql); - if(mysql_num_rows($res_regime)>0) { - $afficheEleve[$elv]['regime'] = mysql_result($res_regime, 0, 'regime'); - if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { - $tab_regimes[]=$afficheEleve[$elv]['regime']; - } - $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; - } + $afficheEleve[$elv]['regime'] = ''; + if ($eleve->getEleveRegimeDoublant() != null) { + $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); + if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { + $tab_regimes[]=$afficheEleve[$elv]['regime']; + } + $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; + } if ((isset($current_groupe) && $current_groupe != null && $current_groupe->getClasses()->count() == 1) || (isset($current_classe) && $current_classe != null)) { From c20479f693d490ba016cc6db20a2c685196d098b Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 3 Jul 2012 07:54:44 +0200 Subject: [PATCH 0037/1150] Correction sur la version. --- lib/global.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/global.inc.php b/lib/global.inc.php index 2efc15d37..dc7863bef 100644 --- a/lib/global.inc.php +++ b/lib/global.inc.php @@ -152,7 +152,7 @@ //les trois variables suivantes vont être remplies par un script de build avec les données svn ou git //dans le cas ou les variables ne sont pas remplies (donc pas de script de build), on regarde dans header.inc et header_template.inc //si on peut obtenir des informations sur la version dans le répertoire .git -$gepiVersion = "1.6.1"; +$gepiVersion = "master"; $gepiSvnRev = ""; $gepiGitCommit = ""; $gepiGitBranch = ""; From 1241137d032e08cf3c23955c2d4d52b91b70fae8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 3 Jul 2012 14:56:04 +0200 Subject: [PATCH 0038/1150] =?UTF-8?q?Ajout=20de=20champs=20pris=20en=20com?= =?UTF-8?q?pte=20lors=20de=20la=20cr=C3=A9ation/modification=20de=20groupe?= =?UTF-8?q?s=20(coef=20et=20visibilite).=20Ajout=20d'un=20lien=20pour=20as?= =?UTF-8?q?socier=20des=20profs=20=C3=A0=20une=20mati=C3=A8re=20si=20aucun?= =?UTF-8?q?=20prof=20n'est=20d=C3=A9fini.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/add_group.php | 103 ++++++++++++++++++++++++++--------------- groupes/edit_group.php | 73 ++++++++++++++++++++++++++++- 2 files changed, 137 insertions(+), 39 deletions(-) diff --git a/groupes/add_group.php b/groupes/add_group.php index a6e197644..8bd764c87 100644 --- a/groupes/add_group.php +++ b/groupes/add_group.php @@ -1,7 +1,7 @@ "; +echo print_r($reg_clazz); +echo ""; +*/ if (empty($reg_clazz)) { $error = true; @@ -126,6 +137,28 @@ $msg = "L'enseignement a bien été créé. "; $msg = urlencode($msg); + for($loo=0;$loo"; + $insert=mysql_query($sql); + if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$create." sur les ".$tab_domaines_texte[$loo].".
    ";} + } + } + + if(isset($_POST['coef'])) { + foreach($reg_clazz as $tmp_id_classe){ + $sql="update j_groupes_classes set coef = '" . $_POST['coef'] . "' WHERE (id_groupe = '" . $create . "' and id_classe = '" . $tmp_id_classe . "');"; + //echo "$sql
    \n"; + $res_coef=mysql_query($sql); + if(!$res_coef) { + $msg.="Erreur lors de l'enregistrement du coefficient du groupe n°".$create." en classe n°$tmp_id_classe.
    "; + } + } + } + + // On s'occupe des profs, s'il y en a. $reg_professeurs = array(); foreach ($_POST as $key => $value) { @@ -195,11 +228,11 @@
    -

    Nom court :

    +

    Nom court :

    -

    Nom complet :

    +

    Nom complet :

    -

    Matière enseignée à ce groupe : +

    Matière enseignée à ce groupe : \n"; if ($mode == "groupe") { - echo "

    Classe à laquelle appartient le nouvel enseignement :\n"; + echo "

    Classe à laquelle appartient le nouvel enseignement :\n"; echo "\n"; - echo "

    Sélectionnez les classes auxquelles appartient le nouvel enseignement :
    \n"; + echo "

    Sélectionnez les classes auxquelles appartient le nouvel enseignement :
    \n"; echo "Note : n'apparaissent que les classes ayant le même nombre de périodes.\n"; $current_classe_period_num = get_period_number($id_classe); $call_data = mysql_query("SELECT * FROM classes ORDER BY classe"); @@ -289,32 +322,6 @@ echo "
    \n"; } - /* - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; echo "\n"; @@ -323,7 +330,7 @@ echo "

    Aucune classe définie !

    \n"; } } -echo "

    Catégorie de matière à laquelle appartient l'enseignement : "; +echo "

    Catégorie de matière à laquelle appartient l'enseignement : "; echo "\n"; +echo "

    Coefficient de l'enseignement : "; +echo "\n"; + +echo "

    Visibilité de l'enseignement sur :
    \n"; +for($loop=0;$loop
    \n"; +} + echo "\n"; // On affiche une sélection des profs si la matière a été choisie if ($reg_matiere != null) { echo "

    \n"; - echo "

    Cochez les professeurs qui participent à cet enseignement :

    \n"; + echo "

    Cochez les professeurs qui participent à cet enseignement :

    \n"; $sql="SELECT u.login, u.nom, u.prenom, u.civilite,u.statut FROM utilisateurs u, j_professeurs_matieres j WHERE (j.id_matiere = '$reg_matiere' and j.id_professeur = u.login and u.etat!='inactif') ORDER BY u.nom;"; //echo "$sql
    "; @@ -364,7 +387,7 @@ } if (count($prof_list["list"]) == "0") { - echo "

    ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.

    \n"; + echo "

    ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.
    Associer des professeurs à $reg_matiere

    \n"; } else { $total_profs = array_unique($prof_list["list"]); $p = 0; @@ -414,7 +437,9 @@ } // Fin : professeurs -echo "\n"; +} +echo "\n"; echo "
    \n"; @@ -451,4 +480,4 @@ function checkbox_change(cpt) { ?> - \ No newline at end of file + diff --git a/groupes/edit_group.php b/groupes/edit_group.php index bb607f333..fb853d714 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -1,7 +1,7 @@ 0) { + while($lig_jgv=mysql_fetch_object($res_jgv)) { + $invisibilite_groupe=$lig_jgv->domaine; + } +} +//================================ + /* foreach($reg_clazz as $key => $value) { echo "\$reg_clazz[$key]=$value
    "; @@ -218,6 +233,29 @@ $clazz[0] = $id_classe; } + + for($loo=0;$loo"; + $suppr=mysql_query($sql); + if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].".
    ";} + } + } + else { + if($visibilite_groupe_domaine_courant=='n') { + $sql="INSERT j_groupes_visibilite SET id_groupe='".$id_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';"; + //echo "$sql
    "; + $insert=mysql_query($sql); + if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_groupe." sur les ".$tab_domaines_texte[$loo].".
    ";} + } + } + } + + // Professeurs $reg_professeurs = array(); foreach ($_POST as $key => $value) { @@ -551,6 +589,35 @@ echo "\n"; //echo "

    \n"; */ + +/* +// Le coefficient peut différer d'une classe à l'autre. +// On ne va pas l'éditer ici +echo "

    Coefficient de l'enseignement : "; +echo "\n"; +*/ + +echo "

    Visibilité de l'enseignement sur :
    \n"; +for($loop=0;$loop
    \n"; +} + echo "

    \n"; // Edition des professeurs echo "
    \n"; @@ -576,6 +643,7 @@ } echo "\n"; echo "

    \n"; + //================================================= // Mettre un témoin pour repérer le prof principal @@ -616,7 +684,7 @@ } if (count($prof_list["list"]) == "0") { - echo "

    ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.

    \n"; + echo "

    ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.
    Associer des professeurs à $reg_matiere

    \n"; } else { $total_profs = array_merge($prof_list["list"], $reg_professeurs); $total_profs = array_unique($total_profs); @@ -708,6 +776,7 @@ function checkbox_change(cpt) { "; echo js_checkbox_change_style('checkbox_change_classe'); +echo js_checkbox_change_style('checkbox_change_visibilite'); echo " for(i=0;i<$p;i++) { From dff933237135e105771ab43aa816a718cd9410d5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Jul 2012 10:48:38 +0200 Subject: [PATCH 0039/1150] Correctif sur un pb de sortable_rank --- .../admin/admin_justifications_absences.php | 29 +++++++++++++++++-- mod_abs2/admin/admin_lieux_absences.php | 28 +++++++++++++++++- mod_abs2/admin/admin_motifs_absences.php | 28 +++++++++++++++++- mod_abs2/admin/admin_types_absences.php | 27 +++++++++++++++-- mod_abs2/admin/function.php | 16 ++++++++++ 5 files changed, 122 insertions(+), 6 deletions(-) diff --git a/mod_abs2/admin/admin_justifications_absences.php b/mod_abs2/admin/admin_justifications_absences.php index e89f89978..14fcfb006 100644 --- a/mod_abs2/admin/admin_justifications_absences.php +++ b/mod_abs2/admin/admin_justifications_absences.php @@ -90,9 +90,32 @@ } } +if(isset($_GET['corriger'])) { + check_token(); + + $table="a_justifications"; + + $sql="SELECT * FROM $table ORDER BY sortable_rank, nom;"; + //echo "$sql
    "; + $res=mysql_query($sql); + $cpt=1; + while($lig=mysql_fetch_object($res)) { + $sql="UPDATE $table SET sortable_rank='$cpt' WHERE id='$lig->id';"; + //echo "$sql
    "; + $update=mysql_query($sql); + if(!$update) { + $msg="Erreur lors de la correction des rangs.
    "; + break; + } + $cpt++; + } + $msg="Correction effectuée.
    "; +} +//========================================== // header $titre_page = "Gestion des justifications d'absence"; require_once("../../lib/header.inc.php"); +//========================================== echo "

    "; echo ""; @@ -172,5 +195,7 @@

    - - + diff --git a/mod_abs2/admin/admin_lieux_absences.php b/mod_abs2/admin/admin_lieux_absences.php index 116068649..2792b4178 100644 --- a/mod_abs2/admin/admin_lieux_absences.php +++ b/mod_abs2/admin/admin_lieux_absences.php @@ -87,9 +87,32 @@ } } +if(isset($_GET['corriger'])) { + check_token(); + + $table="a_lieux"; + + $sql="SELECT * FROM $table ORDER BY sortable_rank, nom;"; + //echo "$sql
    "; + $res=mysql_query($sql); + $cpt=1; + while($lig=mysql_fetch_object($res)) { + $sql="UPDATE $table SET sortable_rank='$cpt' WHERE id='$lig->id';"; + //echo "$sql
    "; + $update=mysql_query($sql); + if(!$update) { + $msg="Erreur lors de la correction des rangs.
    "; + break; + } + $cpt++; + } + $msg="Correction effectuée.
    "; +} +//========================================== // header $titre_page = "Gestion des lieux d'absence"; require_once("../../lib/header.inc.php"); +//========================================== echo "

    "; echo ""; @@ -175,4 +198,7 @@

    - + diff --git a/mod_abs2/admin/admin_motifs_absences.php b/mod_abs2/admin/admin_motifs_absences.php index e84ea62bd..1c74f03cd 100644 --- a/mod_abs2/admin/admin_motifs_absences.php +++ b/mod_abs2/admin/admin_motifs_absences.php @@ -87,9 +87,32 @@ } } +if(isset($_GET['corriger'])) { + check_token(); + + $table="a_motifs"; + + $sql="SELECT * FROM $table ORDER BY sortable_rank, nom;"; + //echo "$sql
    "; + $res=mysql_query($sql); + $cpt=1; + while($lig=mysql_fetch_object($res)) { + $sql="UPDATE $table SET sortable_rank='$cpt' WHERE id='$lig->id';"; + //echo "$sql
    "; + $update=mysql_query($sql); + if(!$update) { + $msg="Erreur lors de la correction des rangs.
    "; + break; + } + $cpt++; + } + $msg="Correction effectuée.
    "; +} +//========================================== // header $titre_page = "Gestion des motifs d'absence"; require_once("../../lib/header.inc.php"); +//========================================== echo "

    "; echo ""; @@ -171,4 +194,7 @@

    - + diff --git a/mod_abs2/admin/admin_types_absences.php b/mod_abs2/admin/admin_types_absences.php index a7a5d1d53..858771ef9 100644 --- a/mod_abs2/admin/admin_types_absences.php +++ b/mod_abs2/admin/admin_types_absences.php @@ -133,6 +133,27 @@ } } +if(isset($_GET['corriger'])) { + check_token(); + + $table="a_types"; + + $sql="SELECT * FROM $table ORDER BY sortable_rank, nom;"; + //echo "$sql
    "; + $res=mysql_query($sql); + $cpt=1; + while($lig=mysql_fetch_object($res)) { + $sql="UPDATE $table SET sortable_rank='$cpt' WHERE id='$lig->id';"; + //echo "$sql
    "; + $update=mysql_query($sql); + if(!$update) { + $msg="Erreur lors de la correction des rangs.
    "; + break; + } + $cpt++; + } + $msg="Correction effectuée.
    "; +} //========================================== // header $titre_page = "Gestion des types d'absence"; @@ -335,5 +356,7 @@

    - - + diff --git a/mod_abs2/admin/function.php b/mod_abs2/admin/function.php index 1e601ebeb..fbd16202d 100644 --- a/mod_abs2/admin/function.php +++ b/mod_abs2/admin/function.php @@ -453,4 +453,20 @@ function ajoutTypesParDefaut() { } } + +function check_sortable_rank_trouble($table, $type) { + $retour=""; + + $sql="SELECT 1=1 FROM $table;"; + $res_tot=mysql_query($sql); + + $sql="SELECT DISTINCT sortable_rank FROM $table;"; + $res_sr=mysql_query($sql); + + if(mysql_num_rows($res_sr)!=mysql_num_rows($res_tot)) { + $retour="

    Anomalie : L'ordre d'affichage des $type dans la table '$table' est incohérent
    (plusieurs enregistrements ont le même rang)

    \n"; + $retour.="
    Corriger

    \n"; + } + return $retour; +} ?> From 36fa73bfda8f82db7d3892d8aa057ea5e1143edb Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Fri, 6 Jul 2012 18:30:30 +0200 Subject: [PATCH 0040/1150] Modification pour que le bouton "supprimer" des messages du panneau recharge la page courante (accueil ou interface graphique) --- affichage_des_messages.inc.php | 1 - lib/share.inc.php | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/affichage_des_messages.inc.php b/affichage_des_messages.inc.php index 4f8c7bbfe..6cfcf6782 100644 --- a/affichage_des_messages.inc.php +++ b/affichage_des_messages.inc.php @@ -4,7 +4,6 @@ { $r_sql="DELETE FROM `messages` WHERE `id`='".$_POST['supprimer_message']."'"; mysql_query($r_sql); - header("Location: ./accueil.php"); } diff --git a/lib/share.inc.php b/lib/share.inc.php index 2935d596b..da0f61d97 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -4475,7 +4475,7 @@ function message_accueil_utilisateur($login_destinataire,$texte,$date_debut=0,$d { $id_message=mysql_insert_id(); $contenu=' -
    + '.addslashes($texte); From 0b7aedc2bd3daef2d73f4948611ce7689374ce0f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 6 Jul 2012 20:11:33 +0200 Subject: [PATCH 0041/1150] Mise en couleur de la coche d'un absent. --- mod_abs2/lib/abs_style.css | 8 ++++++++ mod_abs2/lib/include.js | 12 +++++++++++- mod_abs2/saisir_groupe.php | 10 +++++++--- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/mod_abs2/lib/abs_style.css b/mod_abs2/lib/abs_style.css index ad478f530..060238649 100644 --- a/mod_abs2/lib/abs_style.css +++ b/mod_abs2/lib/abs_style.css @@ -158,3 +158,11 @@ table.legende { display:block; } +img.bord_rouge { + border: 3px solid red; +} + +img.sans_bord { + border: 0px solid black; +} + diff --git a/mod_abs2/lib/include.js b/mod_abs2/lib/include.js index ee2d9dacd..51df8f986 100644 --- a/mod_abs2/lib/include.js +++ b/mod_abs2/lib/include.js @@ -130,7 +130,17 @@ function postform(the_form){ function click_active_absence(elv) { if (document.getElementById("active_absence_eleve_"+elv).checked) { document.getElementById("label_active_absence_eleve_"+elv).className='policeRouge'; + //document.getElementById("label_nom_prenom_eleve_"+elv).className='policeRouge'; + document.getElementById("label_nom_prenom_eleve_"+elv).style.color='red'; + if(document.getElementById("img_photo_eleve_"+elv)) { + document.getElementById("img_photo_eleve_"+elv).className='trombine bord_rouge'; + } } else { document.getElementById("label_active_absence_eleve_"+elv).className='policeBlack'; + //document.getElementById("label_nom_pren_eleve_"+elv).className='policeBlack'; + document.getElementById("label_nom_prenom_eleve_"+elv).style.color='black'; + if(document.getElementById("img_photo_eleve_"+elv)) { + document.getElementById("img_photo_eleve_"+elv).className='trombine sans_bord'; + } } -} \ No newline at end of file +} diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index ca7a208b5..e38ecf984 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -1083,7 +1083,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } ?>
    - (les élèves non cochés seront considérés présents) + (les élèves non cochés seront considérés présents)

    Suivi sur la journée name="id_eleve_absent[]" value="" /> - + &onglet=responsables&quitter_la_page=y' target='_blank' > @@ -1344,11 +1346,13 @@ class='type_abs_regime_decoche_".$indice_tab_regime[$eleve['regime']]."'"; } ?>

    Date: Fri, 6 Jul 2012 20:12:47 +0200 Subject: [PATCH 0042/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20renommer=20un?= =?UTF-8?q?e=20ann=C3=A9e=20ant=C3=A9rieure.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gerer_annees_anterieures.php | 204 ++++++++++++++++++ mod_annees_anterieures/index.php | 1 + 2 files changed, 205 insertions(+) create mode 100644 mod_annees_anterieures/gerer_annees_anterieures.php diff --git a/mod_annees_anterieures/gerer_annees_anterieures.php b/mod_annees_anterieures/gerer_annees_anterieures.php new file mode 100644 index 000000000..ce1152ea2 --- /dev/null +++ b/mod_annees_anterieures/gerer_annees_anterieures.php @@ -0,0 +1,204 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die();}; + +// INSERT INTO droits VALUES ('/mod_annees_anterieures/gerer_annees_anterieures.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Gérer les années antérieures', ''); +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +$action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : NULL); +$annee=isset($_POST['annee']) ? $_POST['annee'] : (isset($_GET['annee']) ? $_GET['annee'] : NULL); +$annee_nouveau_nom=isset($_POST['annee_nouveau_nom']) ? $_POST['annee_nouveau_nom'] : (isset($_GET['annee_nouveau_nom']) ? $_GET['annee_nouveau_nom'] : NULL); + +// Si le module n'est pas activé... +if($gepiSettings['active_annees_anterieures'] !="y"){ + header("Location: ../logout.php?auto=1"); + die(); +} + +$msg=""; + +// Suppression des données archivées pour une année donnée. +if (isset($_GET['action']) and ($_GET['action']=="supp_annee")) { + check_token(); + + $sql="DELETE FROM archivage_disciplines WHERE annee='".$_GET["annee_supp"]."';"; + $res_suppr1=mysql_query($sql); + + // Maintenant, on regarde si l'année est encore utilisée dans archivage_types_aid + // Sinon, on supprime les entrées correspondantes à l'année dans archivage_eleves2 car elles ne servent plus à rien. + $test = sql_query1("select count(annee) from archivage_types_aid where annee='".$_GET['annee_supp']."'"); + if ($test == 0) { + $sql="DELETE FROM archivage_eleves2 WHERE annee='".$_GET["annee_supp"]."';"; + $res_suppr2=mysql_query($sql); + } else { + $res_suppr2 = 1; + } + + $sql="DELETE FROM archivage_ects WHERE annee='".$_GET["annee_supp"]."';"; + $res_suppr3=mysql_query($sql); + + // Maintenant, il faut supprimer les données élèves qui ne servent plus à rien + suppression_donnees_eleves_inutiles(); + + if (($res_suppr1) and ($res_suppr2) and ($res_suppr3)) { + $msg = "La suppression des données a été correctement effectuée."; + } else { + $msg = "Un ou plusieurs problèmes ont été rencontrés lors de la suppression."; + } + +} +elseif((isset($action))&&($action=="renommer_annee")&&(isset($annee))&&($annee!="")&&(isset($annee_nouveau_nom))&&($annee_nouveau_nom!="")) { + check_token(); + + $sql="SELECT 1=1 FROM archivage_disciplines WHERE annee='".mysql_real_escape_string($annee)."';"; + $res_annee=mysql_query($sql); + if(mysql_num_rows($res_annee)==0) { + $msg="L'année $annee n'est pas enregistrée comme année antérieure.
    \n"; + unset($action); + } + else { + $sql="SELECT 1=1 FROM archivage_disciplines WHERE annee='".mysql_real_escape_string($annee_nouveau_nom)."';"; + $res_annee=mysql_query($sql); + if(mysql_num_rows($res_annee)>0) { + $msg="Le nom $annee_nouveau_nom est déjà pris pour une autre année antérieure.
    \n"; + } + else { + $msg=""; + $table=array('archivage_aids', 'archivage_appreciations_aid', 'archivage_disciplines', 'archivage_ects', 'archivage_eleves2', 'archivage_types_aid'); + for($i=0;$i

    Retour Retour | \n"; + echo "

    \n"; + + $sql="SELECT DISTINCT annee FROM archivage_disciplines ORDER BY annee"; + $res_annee=mysql_query($sql); + if(mysql_num_rows($res_annee)==0){ + echo "

    Concernant les données autres que les AIDs, aucune année n'est encore sauvegardée.

    \n"; + } + else{ + echo "

    Voici la liste des années sauvegardées:

    \n"; + echo "
      \n"; + while($lig_annee=mysql_fetch_object($res_annee)){ + $annee_scolaire=$lig_annee->annee; + echo "
    • Année $annee_scolaire (Supprimer - Renommer) :
      "; + $sql="SELECT DISTINCT classe FROM archivage_disciplines WHERE annee='$annee_scolaire' ORDER BY classe;"; + $res_classes=mysql_query($sql); + if(mysql_num_rows($res_classes)==0){ + echo "Aucune classe???"; + } + else{ + $lig_classe=mysql_fetch_object($res_classes); + echo $lig_classe->classe; + + while($lig_classe=mysql_fetch_object($res_classes)){ + echo ", ".$lig_classe->classe; + } + } + echo "
    • \n"; + } + echo "
    \n"; + echo "


    \n"; + + } + + +} +else { + echo "

    Retour Retour"; + echo "

    \n"; + + $annee=isset($_POST['annee']) ? $_POST['annee'] : (isset($_GET['annee']) ? $_GET['annee'] : NULL); + + $sql="SELECT 1=1 FROM archivage_disciplines WHERE annee='".mysql_real_escape_string($annee)."';"; + $res_annee=mysql_query($sql); + if(mysql_num_rows($res_annee)==0) { + echo "

    L'année $annee n'est pas enregistrée comme année antérieure.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + + $sql="SELECT DISTINCT annee FROM archivage_disciplines WHERE annee!='".mysql_real_escape_string($annee)."' ORDER BY annee"; + $res_annee=mysql_query($sql); + if(mysql_num_rows($res_annee)>0) { + echo "

    Vous souhaitez renommer l'année $annee.

    \n"; + echo "

    Certains noms sont déjà pris : "; + $cpt=0; + while($lig_annee=mysql_fetch_object($res_annee)){ + if($cpt>0) {echo ", ";} + echo $lig_annee->annee; + $cpt++; + } + echo "

    \n"; + } + + echo "\n"; + echo add_token_field(); + echo "\n"; + echo "\n"; + echo "Nouveau nom : \n"; + echo " \n"; + echo "\n"; +} + +echo "
    \n"; +require("../lib/footer.inc.php"); +?> diff --git a/mod_annees_anterieures/index.php b/mod_annees_anterieures/index.php index 1d153db7d..f5eeffa8e 100644 --- a/mod_annees_anterieures/index.php +++ b/mod_annees_anterieures/index.php @@ -85,6 +85,7 @@ echo "
      \n"; echo "
    • Nettoyage des données d'élèves ayant quitté l'établissement.

    • \n"; echo "
    • Correction des INE non renseignés ou mal renseignés lors de la conservation.

    • \n"; +echo "
    • Gérer les années antérieures précédemment archivées.

    • \n"; echo "
    • Conservation des données (*) de l'année qui se termine
      ((*) autres que les AIDs).

    • \n"; echo "
    • Conservation des données des AIDs.

    • \n"; echo "
    • Générer les bulletins PDF par élève.

    • \n"; From 233b745e53502726c8cef19b7e01a484daede9b4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Jul 2012 16:53:34 +0200 Subject: [PATCH 0043/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20saisir=20les?= =?UTF-8?q?=20absences=20depuis=20le=20plan=20de=20classe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe.php | 14 +- mod_abs2/saisir_groupe_plan.php | 1335 +++++++++++++++++++++++++ mod_trombinoscopes/plan_de_classe.php | 8 +- 3 files changed, 1352 insertions(+), 5 deletions(-) create mode 100644 mod_abs2/saisir_groupe_plan.php diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index e38ecf984..21b52f3a8 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -745,7 +745,10 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev - +
      @@ -1081,6 +1084,15 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev 0) { + echo " "; + } + } + ?>
      (les élèves non cochés seront considérés présents) diff --git a/mod_abs2/saisir_groupe_plan.php b/mod_abs2/saisir_groupe_plan.php new file mode 100644 index 000000000..eb9d3845f --- /dev/null +++ b/mod_abs2/saisir_groupe_plan.php @@ -0,0 +1,1335 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +// INSERT INTO droits VALUES ('/mod_abs2/saisir_groupe_plan.php', 'F', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'Saisir les absences avec plan de classe', ''); +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +//recherche de l'utilisateur avec propel +$utilisateur = UtilisateurProfessionnelPeer::getUtilisateursSessionEnCours(); +if ($utilisateur == null) { + header("Location: ../logout.php?auto=1"); + die(); +} + +//On vérifie si le module est activé +if (getSettingValue("active_module_absence")!='2') { + die("Le module n'est pas activé."); +} + +if ($utilisateur->getStatut()=="professeur" && getSettingValue("active_module_absence_professeur")!='y') { + die("Le module n'est pas activé."); +} + + +//**************** FONCTIONS ***************** +//fonction redimensionne les photos petit format +function redimensionne_image_petit($photo) + { + // prendre les informations sur l'image + $info_image = getimagesize($photo); + // largeur et hauteur de l'image d'origine + $largeur = $info_image[0]; + $hauteur = $info_image[1]; + // largeur et/ou hauteur maximum à afficher + $taille_max_largeur = 45; + $taille_max_hauteur = 45; + + // calcule le ratio de redimensionnement + $ratio_l = $largeur / $taille_max_largeur; + $ratio_h = $hauteur / $taille_max_hauteur; + $ratio = ($ratio_l > $ratio_h)?$ratio_l:$ratio_h; + + // définit largeur et hauteur pour la nouvelle image + $nouvelle_largeur = $largeur / $ratio; + $nouvelle_hauteur = $hauteur / $ratio; + + // on renvoit la largeur et la hauteur + return array($nouvelle_largeur, $nouvelle_hauteur); + } + + function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_eleve, $id_box) { + if ($utilisateur->getStatut() != 'professeur' || getSettingValue("abs2_saisie_prof_decale_journee")=='y' || getSettingValue("abs2_saisie_prof_decale")=='y') { +?> + + +getDescription().' '; + echo ''; + } else { + echo "Aucun creneau actuellement. "; + } + } + + if ($utilisateur->getStatut() != 'professeur' || (getSettingValue("abs2_saisie_prof_decale")=='y' && getSettingValue("abs2_saisie_prof_decale_journee")=='y')) { + $rand_id = rand(0,10000000); + echo ''; + echo ' '; + echo ' + '; + } else { + echo ' Le '.$dt_date_absence_eleve->format('d/m/Y').' '; + } + } + +$journeePossible = FALSE; +if ('cpe' == $_SESSION['statut'] || 'scolarite' == $_SESSION['statut']) { + $journeePossible = TRUE; +} + +// $affiche_debug=debug_var(); +// Initialiser la requête +if (isset($_POST["initialise"]) && $_POST["initialise"]==TRUE) { + unset ($_SESSION['id_groupe_abs'], + $_SESSION['id_classe_abs'], + $_SESSION['id_aid'], + $_SESSION['id_creneau'], + $_SESSION['id_cours'], + $_SESSION['type_selection'], + $_SESSION['date_absence_eleve'], + $_SESSION['id_semaine']); +} + +$_SESSION['showJournee'] = isset($_POST["journee"]) ? $_POST["journee"] : (isset($_SESSION['showJournee']) ? $_SESSION['showJournee'] : FALSE); + +//récupération des paramètres de la requète +$id_groupe = isset($_POST["id_groupe"]) ? $_POST["id_groupe"] :(isset($_GET["id_groupe"]) ? $_GET["id_groupe"] :(isset($_SESSION["id_groupe_abs"]) ? $_SESSION["id_groupe_abs"] : NULL)); +$id_classe = isset($_POST["id_classe"]) ? $_POST["id_classe"] :(isset($_GET["id_classe"]) ? $_GET["id_classe"] :(isset($_SESSION["id_classe_abs"]) ? $_SESSION["id_classe_abs"] : NULL)); +$id_aid = isset($_POST["id_aid"]) ? $_POST["id_aid"] :(isset($_GET["id_aid"]) ? $_GET["id_aid"] :(isset($_SESSION["id_aid"]) ? $_SESSION["id_aid"] : NULL)); +$id_creneau = isset($_POST["id_creneau"]) ? $_POST["id_creneau"] :(isset($_GET["id_creneau"]) ? $_GET["id_creneau"] :(isset($_SESSION["id_creneau"]) ? $_SESSION["id_creneau"] : NULL)); +$id_cours = isset($_POST["id_cours"]) ? $_POST["id_cours"] :(isset($_GET["id_cours"]) ? $_GET["id_cours"] :(isset($_SESSION["id_cours"]) ? $_SESSION["id_cours"] : NULL)); +$type_selection = isset($_POST["type_selection"]) ? $_POST["type_selection"] :(isset($_GET["type_selection"]) ? $_GET["type_selection"] :(isset($_SESSION["type_selection"]) ? $_SESSION["type_selection"] : NULL)); +$date_absence_eleve = isset($_POST["date_absence_eleve"]) ? $_POST["date_absence_eleve"] :(isset($_GET["date_absence_eleve"]) ? $_GET["date_absence_eleve"] :(isset($_SESSION["date_absence_eleve"]) ? $_SESSION["date_absence_eleve"] : NULL)); +$id_semaine = isset($_POST["id_semaine"]) ? $_POST["id_semaine"] :(isset($_GET["id_semaine"]) ? $_GET["id_semaine"] :(isset($_SESSION["id_semaine"]) ? $_SESSION["id_semaine"] : NULL)); +$cahier_texte = isset($_POST["cahier_texte"]) ? $_POST["cahier_texte"] :(isset($_GET["cahier_texte"]) ? $_GET["cahier_texte"] :NULL); + +if (isset($id_groupe) && $id_groupe != null) $_SESSION['id_groupe_abs'] = $id_groupe; +if (isset($id_classe) && $id_classe != null) $_SESSION['id_classe_abs'] = $id_classe; +if (isset($id_aid) && $id_aid != null) $_SESSION['id_aid'] = $id_aid; +if (isset($id_creneau) && $id_creneau != null) $_SESSION['id_creneau'] = $id_creneau; +if (isset($id_cours) && $id_cours != null) $_SESSION['id_cours'] = $id_cours; +if (isset($type_selection) && $type_selection != null) $_SESSION['type_selection'] = $type_selection; +if (isset($date_absence_eleve) && $date_absence_eleve != null) $_SESSION['date_absence_eleve'] = $date_absence_eleve; +if (isset($id_semaine) && $id_semaine != null) $_SESSION['id_semaine'] = $id_semaine; + +if (TRUE == $_SESSION['showJournee']) { + $id_creneau = '1'; +} + +//initialisation des variables +$current_cours = null; +$current_classe = null; +$current_groupe = null; +$current_aid = null; +$current_creneau = null; +$current_semaine = null; +if ($id_semaine == null || $id_semaine == -1 || !is_numeric($id_semaine) || $id_semaine > 53 + || ($utilisateur->getStatut() == 'professeur' && (getSettingValue("abs2_saisie_prof_decale")!='y'))) { + $id_semaine = date('W'); +} +$current_semaine = EdtSemaineQuery::create()->findPk($id_semaine); + +if ($utilisateur->getStatut() == 'professeur' && getSettingValue("abs2_saisie_prof_decale")!='y' && getSettingValue("abs2_saisie_prof_decale_journee")!='y') { + $id_creneau = null; + $id_cours = null; +} + +if ($utilisateur->getStatut() == 'professeur' && (getSettingValue("abs2_saisie_prof_decale")!='y')) { + $dt_date_absence_eleve = new DateTime('now'); +} elseif ($date_absence_eleve != null) { + try { + $dt_date_absence_eleve = new DateTime(str_replace("/",".",$date_absence_eleve)); + } catch (Exception $x) { + echo "Erreur : Mauvais format de date d'absence.
      "; + $dt_date_absence_eleve = new DateTime('now'); + } +} else { + $dt_date_absence_eleve = new DateTime('now'); +} + +if ($type_selection == 'id_cours') { + if ($utilisateur->getStatut() == "professeur") { + $current_cours = EdtEmplacementCoursQuery::create()->filterByUtilisateurProfessionnel($utilisateur)->findPk($id_cours); + } else { + $current_cours = EdtEmplacementCoursQuery::create()->findPk($id_cours); + } + $current_creneau = null; + if ($current_cours != null) { + $current_creneau = $current_cours->getEdtCreneau(); + $current_groupe = $current_cours->getGroupe(); + $current_aid = $current_cours->getAidDetails(); + $dt_date_absence_eleve = $current_cours->getDate($id_semaine); + } +} else { + if ($id_creneau == null) { + $current_creneau = EdtCreneauPeer::retrieveEdtCreneauActuel(); + } else { + $current_creneau = EdtCreneauPeer::retrieveByPK($id_creneau); + } +} +if ($type_selection == 'id_groupe') { + if ($utilisateur->getStatut() == "professeur") { + $current_groupe = GroupeQuery::create()->filterByUtilisateurProfessionnel($utilisateur)->findPk($id_groupe); + } else { + $current_groupe = GroupeQuery::create()->findPk($id_groupe); + } +} else if ($type_selection == 'id_aid') { + $current_aid = AidDetailsQuery::create()->findPk($id_aid); +} else if ($type_selection == 'id_classe') { + $current_classe = ClasseQuery::create()->findPk($id_classe); +} else if ($type_selection != 'id_cours' && getSettingValue("autorise_edt_tous") == 'y'){//rien n'as ete selectionner, on va regarder le cours actuel + $current_cours = $utilisateur->getEdtEmplacementCours(); + if ($current_cours != null) { + $current_creneau = $current_cours->getEdtCreneau(); + $current_groupe = $current_cours->getGroupe(); + $current_aid = $current_cours->getAidDetails(); + $type_selection = 'id_cours'; + } else { + if (isset($_SESSION['id_groupe_session'])) { + $id_groupe = $_SESSION['id_groupe_session']; + $current_groupe = GroupeQuery::create()->filterByUtilisateurProfessionnel($utilisateur)->findPk($id_groupe); + $type_selection = 'id_groupe'; + } + } +} +$id_groupe = null; +$id_classe = null; +$id_aid = null; +$id_creneau = null; +$id_cours = null; +if ($current_groupe != null) {$id_groupe = $current_groupe->getId();} +if ($current_classe != null) {$id_classe = $current_classe->getId();} +if ($current_aid != null) {$id_aid = $current_aid->getId();} +if ($current_creneau != null) {$id_creneau = $current_creneau->getIdDefiniePeriode();} +if ($current_cours != null) {$id_cours = $current_cours->getIdCours();} +if ($cahier_texte != null && $cahier_texte != "") { + $location = "Location: ../cahier_texte/index.php"; + if ($id_groupe != null) { + $location .= "?id_groupe=".$id_groupe; + } else if ($current_cours != null) { + $location .= "?id_groupe=".$current_cours->getIdGroupe(); + } + header($location); + die(); +} + + +//**************** GROUPES ET AID ***************** +//on affiche une boite de selection avec les groupes et les creneaux +if (getSettingValue("abs2_saisie_prof_hors_cours")!='y' + && $utilisateur->getStatut() == "professeur") { + //le reglage specifie que le prof n'a pas le droit de saisir autre chose que son cours + //donc on affiche pas de selection, le cours est automatiquement selectionné +} else { + if (getSettingValue("GepiAccesAbsTouteClasseCpe")=='yes' && $utilisateur->getStatut() == "cpe") { + $groupe_col = GroupeQuery::create()->orderByName()->useJGroupesClassesQuery()->useClasseQuery()->orderByNom()->endUse()->endUse() + ->leftJoinWith('Groupe.JGroupesClasses') + ->leftJoinWith('JGroupesClasses.Classe') + ->find(); + $aid_col = AidDetailsQuery::create()->find(); + } else { + $groupe_col = $utilisateur->getGroupes(); + $aid_col = $utilisateur->getAidDetailss(); + } +} + +//**************** COURS SEMAINES ***************** +if (getSettingValue("abs2_saisie_prof_decale_journee")!='y' + && getSettingValue("abs2_saisie_prof_decale")!='y' + && $utilisateur->getStatut() == "professeur") { + //le reglage specifie que le prof n'a pas le droit de saisir autre chose que son cours + //donc on affiche pas de selection, le cours est automatiquement selectionné +} else if (getSettingValue("autorise_edt_tous") != 'y') { + //edt desactivé +} else { + $edt_cours_aff = new PropelCollection(); + //on affiche une boite de selection avec les cours + if (getSettingValue("GepiAccesAbsTouteClasseCpe")=='yes' && $utilisateur->getStatut() == "cpe") { + //la collection entière des cours est trop grosse et inexploitable sous la forme d'une liste. ça consomme de la ressource donc c'est désactivé + $edt_cours_col = new PropelCollection(); + } else { + $edt_cours_col = $utilisateur->getEdtEmplacementCourssPeriodeCalendrierActuelle(); + } + if (!$edt_cours_col->isEmpty()) { + foreach ($edt_cours_col as $edt_cours) { + if ($edt_cours->getEdtCreneau() == NULL) { + //on affiche pas le cours si il n'est associé avec aucun creneau + continue; + } + if (getSettingValue("abs2_saisie_prof_decale") != 'y' && $utilisateur->getStatut() == "professeur") { + if ($edt_cours->getJourSemaineNumeric() != date('w')) { + //on affiche pas ce cours car il n'est pas aujourd'hui + continue; + } + if ($edt_cours->getTypeSemaine() != '' && $edt_cours->getTypeSemaine() != '0' && $edt_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) { + //on affiche pas ce cours car il n'est pas aujourd'hui + continue; + } + } + $edt_cours_aff->append($edt_cours); + } + foreach ($edt_cours_col as $edt_cours) { + if ($edt_cours->getEdtCreneau() == NULL) { + //on affiche pas le cours si il n'est associé avec aucun creneau + continue; + } + if (getSettingValue("abs2_saisie_prof_decale") != 'y' && $utilisateur->getStatut() == "professeur") { + if ($edt_cours->getJourSemaineNumeric() != date('w')) { + //on affiche pas ce cours car il n'est pas aujourd'hui + continue; + } + if ($edt_cours->getTypeSemaine() != '' && $edt_cours->getTypeSemaine() != '0' && $edt_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) { + //on affiche pas ce cours car il n'est pas aujourd'hui + continue; + } + } + } + + if (getSettingValue("abs2_saisie_prof_decale")=='y' || $utilisateur->getStatut() != "professeur") { + $col = EdtSemaineQuery::create()->find(); + $semaineAff = new PropelCollection(); + //on va commencer la liste à la semaine 31 (milieu des vacances d'ete) + for ($i = 0; $i < $col->count(); $i++) { + $pos = ($i + 30) % $col->count(); + $semaine = $col[$pos]; + $semaineAff->append($col[$pos]); + } + } else { + $semaineAff = new PropelCollection(); + $semaineAff->append($current_semaine); + } + + if ($current_cours != null && $current_cours->getTypeSemaine() != '' && $current_cours->getTypeSemaine() != '0' && $current_semaine != null && $current_cours->getTypeSemaine() != $current_semaine->getTypeEdtSemaine()) { + $erreurSemaine=TRUE; + $current_cours = null; + $current_groupe = null; + $current_classe = null; + $current_aid = null; + } + } +} + +//**************** CLASSES ***************** +if (getSettingValue("GepiAccesAbsTouteClasseCpe")=='yes' && $utilisateur->getStatut() == "cpe") { + $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->find(); +} else { + $classe_col = $utilisateur->getClasses(); +} + +//**************** ELEVES ***************** +//affichage des eleves. Il nous faut au moins un groupe ou une aid +$eleve_col = new PropelCollection(); +if (isset($current_groupe) && $current_groupe != null) { + $query = EleveQuery::create(); + $periode_cur = $current_groupe->getPeriodeNote($dt_date_absence_eleve); + if ($periode_cur != null) { + $query->useJEleveGroupeQuery()->filterByGroupe($current_groupe)->filterByPeriode($periode_cur->getNumPeriode())->endUse(); + } else { + $query->useJEleveGroupeQuery()->filterByGroupe($current_groupe)->endUse(); + } + $query->where('Eleve.DateSortieorWhere('Eleve.DateSortie is NULL') + ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) + ->orderBy('Eleve.Nom','asc') + ->orderBy('Eleve.Prenom','asc') + ->distinct(); + $eleve_col = $query->find(); +} else if (isset($current_aid) && $current_aid != null) { + $query = EleveQuery::create(); + $eleve_col = $query->useJAidElevesQuery() + ->filterByIdAid($current_aid->getId()) + ->endUse() + ->where('Eleve.DateSortieorWhere('Eleve.DateSortie is NULL') + ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) + ->orderBy('Eleve.Nom','asc') + ->orderBy('Eleve.Prenom','asc') + ->distinct() + ->find(); +} else if (isset($current_classe) && $current_classe != null) { + $query = EleveQuery::create(); + $periode_cur = $current_classe->getPeriodeNote($dt_date_absence_eleve); + if ($periode_cur != null) { + $query->useJEleveClasseQuery()->filterByClasse($current_classe)->filterByPeriode($periode_cur->getNumPeriode())->endUse(); + } else { + $query->useJEleveClasseQuery()->filterByClasse($current_classe)->endUse(); + } + $query->where('Eleve.DateSortieorWhere('Eleve.DateSortie is NULL') + ->orWhere('Eleve.DateSortie>?', $dt_date_absence_eleve->format('U')) + ->orderBy('Eleve.Nom','asc') + ->orderBy('Eleve.Prenom','asc') + ->distinct(); + $eleve_col = $query->find(); +} + +//l'utilisateurs a-t-il deja saisie ce creneau ? +$deja_saisie = false; +if ($current_cours != null) { + $query = AbsenceEleveSaisieQuery::create(); + if ($current_aid != null) { + $query->filterByIdAid($current_aid->getId()); + } + if ($current_groupe != null) { + $query->filterByIdGroupe($current_groupe->getId()); + } + if ($current_classe != null) { + $query->filterByIdClasse($current_classe->getId()); + } + $query->filterByUtilisateurProfessionnel($utilisateur); + $dt = clone $dt_date_absence_eleve; + $dt->setTime($current_cours->getHeureDebut('H'), $current_cours->getHeureDebut('i')); + $dt_end = clone $dt; + $dt_end->setTime($current_cours->getHeureFin('H'), $current_cours->getHeureFin('i')); + $query->filterByPlageTemps($dt, $dt_end); + if ($query->count() > 0) { + $deja_saisie = true; + } +} elseif ($current_creneau != null) { + $query = AbsenceEleveSaisieQuery::create(); + if ($current_aid != null) { + $query->filterByIdAid($current_aid->getId()); + } + if ($current_groupe != null) { + $query->filterByIdGroupe($current_groupe->getId()); + } + if ($current_classe != null) { + $query->filterByIdClasse($current_classe->getId()); + } + $query->filterByUtilisateurProfessionnel($utilisateur); + $dt = clone $dt_date_absence_eleve; + $dt->setTime($current_creneau->getHeuredebutDefiniePeriode('H'), $current_creneau->getHeuredebutDefiniePeriode('i')); + $dt_end = clone $dt; + $dt_end->setTime($current_creneau->getHeurefinDefiniePeriode('H'), $current_creneau->getHeurefinDefiniePeriode('i')); + $query->filterByPlageTemps($dt, $dt_end); + if ($query->count() > 0) { + $deja_saisie = true; + } +} + +if ($current_creneau == null) { + //on vide la liste des eleves pour eviter de proposer une saisie + $eleve_col = new PropelObjectCollection(); +} + + +//**************** TABLEAU DES ELEVES ***************** +// 20120618 +$tab_regimes=array(); +$tab_regimes_eleves=array(); +$tab_types_abs_regimes=array(); +$afficheEleve = array(); +$elv = 0; +foreach($eleve_col as $eleve) { + $saisie_affiches = array (); + if ($eleve_col->isOdd()) { + $afficheEleve[$elv]['background']="impair"; + } else { + $afficheEleve[$elv]['background']="pair"; + } + + $Yesterday = date("Y-m-d",mktime(0,0,0,$dt_date_absence_eleve->format("m") ,$dt_date_absence_eleve->format("d")-1,$dt_date_absence_eleve->format("Y"))); + $abs_hier = false; + $traitee_hier = true;//les saisies de la veille ont-elle été traitées intégralement + $justifiee_hier = true;//les saisies de la veille ont-elle été justifiées intégralement + $afficheEleve[$elv]['bulle_hier'] = ''; + foreach ($eleve->getAbsenceEleveSaisiesDuJour($Yesterday) as $saisie) { + if (!$saisie->getManquementObligationPresence()) continue; + $abs_hier = true; + $traitee_hier = $traitee_hier && $saisie->getTraitee(); + $justifiee_hier = $justifiee_hier && $saisie->getJustifiee(); + $afficheEleve[$elv]['bulle_hier'] .= $saisie->getTypesDescription(); + } + if ($abs_hier) { + $afficheEleve[$elv]['class_hier'] = $justifiee_hier ? "justifieeHier" : 'absentHier'; + $afficheEleve[$elv]['text_hier'] = $traitee_hier ? 'T' : ''; + } else { + $afficheEleve[$elv]['class_hier'] = ''; + $afficheEleve[$elv]['text_hier'] = ''; + } + $afficheEleve[$elv]['position'] = $eleve_col->getPosition(); + $afficheEleve[$elv]['id'] = $eleve->getId(); + $afficheEleve[$elv]['elenoet'] = $eleve->getElenoet(); + $afficheEleve[$elv]['nom'] = $eleve->getNom(); + $afficheEleve[$elv]['prenom'] = $eleve->getPrenom(); + $afficheEleve[$elv]['civilite'] = $eleve->getCivilite(); + $afficheEleve[$elv]['regime'] = ''; + if ($eleve->getEleveRegimeDoublant() != null) { + $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); + if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { + $tab_regimes[]=$afficheEleve[$elv]['regime']; + } + $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; + } + + if ((isset($current_groupe) && $current_groupe != null && $current_groupe->getClasses()->count() == 1) + || (isset($current_classe) && $current_classe != null)) { + //si le groupe a une seule classe ou si c'est une classe qui est sélectionner pas la peine d'afficher la classe. + } else { + if ($eleve->getClasse() != null) { + $afficheEleve[$elv]['classe'] = $eleve->getClasse()->getNom(); + } + } + + if ($utilisateur->getAccesFicheEleve($eleve)) { + $afficheEleve[$elv]['accesFiche'] = $eleve->getLogin(); + } + + $col_creneaux = EdtCreneauPeer::retrieveAllEdtCreneauxOrderByTime(); + $afficheEleve[$elv]['creneaux_possibles'] = $col_creneaux->count(); + for($i = 0; $i<$col_creneaux->count(); $i++){ + $edt_creneau = $col_creneaux[$i]; + $nb_creneau_a_saisir = 0; //il faut calculer le nombre de creneau a saisir pour faire un colspan + if ($current_creneau != null && $current_creneau->getPrimaryKey() == $edt_creneau->getPrimaryKey()) { + $creneau_courant=$i; + $afficheEleve[$elv]['creneau_courant']=$i; + // on va faire une boucle pour calculer le nombre de creneaux dans ce cours + if ($current_cours == null) { + $nb_creneau_a_saisir = 1; + $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); + } else { + //$nb_creneau_a_saisir = 0; + $dt_fin_cours = $current_cours->getHeureFin(null); + $it_creneau = $edt_creneau; + $absences_du_creneau = new PropelObjectCollection(); + while ($it_creneau != null && $dt_fin_cours->format('U') > $it_creneau->getHeuredebutDefiniePeriode('U')) { + foreach ($eleve->getAbsenceEleveSaisiesDuCreneau($it_creneau, $dt_date_absence_eleve) as $abs) { + if (!$absences_du_creneau->contains($abs)) { + $absences_du_creneau->append($abs); + } + } + $it_creneau = $it_creneau->getNextEdtCreneau(); + $nb_creneau_a_saisir++; + } + } + // pour le creneau en cours on garde uniquement les absences de l'utilisateur pour ne pas l'influencer par d'autres saisies sauf si configuré autrement + if (getSettingValue("abs2_afficher_saisies_creneau_courant")!='y') { + $absences_du_creneau_du_prof = new PropelObjectCollection(); + foreach ($absences_du_creneau as $abs) { + if ($abs->getUtilisateurId() == $utilisateur->getPrimaryKey()) { + $absences_du_creneau_du_prof->append($abs); + } + } + $absences_du_creneau = $absences_du_creneau_du_prof; + } + } else if ($current_creneau != null && $edt_creneau->getHeuredebutDefiniePeriode('U') > $current_creneau->getHeuredebutDefiniePeriode('U')) { + //on n'affiche pas les informations apres le creneau en cours pour ne pas influencer la saisie si c'est un enseignant + if($utilisateur->getStatut() == "professeur"){ + $absences_du_creneau = new PropelCollection(); + }else{ + $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); + } + } else { + //on affiche les informations pour les crenaux avant la saisie sauf si configuré autrement + if (getSettingValue("abs2_montrer_creneaux_precedents")=='y') { + $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); + } else { + $absences_du_creneau = new PropelCollection(); + } + } + $afficheEleve[$elv]['style'][$i] = ""; + if ($deja_saisie && $nb_creneau_a_saisir > 0) { + $afficheEleve[$elv]['style'][$i] = "fondVert"; + } + if (!$absences_du_creneau->isEmpty()) { + foreach ($absences_du_creneau as $abs_saisie) { + if ($abs_saisie->getManquementObligationPresence()) { + $afficheEleve[$elv]['style'][$i] = "fondRouge"; + break; + } + } + } + + if ($nb_creneau_a_saisir>1) { + $afficheEleve[$elv]['nb_creneaux_a_saisir'][$i] = $nb_creneau_a_saisir; + } else { + $afficheEleve[$elv]['nb_creneaux_a_saisir'][$i]= 1; + } + + //si il y a des absences de l'utilisateurs on va proposer de les modifier + if (getSettingValue("abs2_modification_saisie_une_heure")=='y') { + foreach ($absences_du_creneau as $saisie) { + if (in_array($saisie->getPrimaryKey(), $saisie_affiches)) { + // on affiche les saisies une seule fois + $afficheEleve[$elv]['saisie'][$i]=""; + continue; + } + $saisie_affiches[] = $saisie->getPrimaryKey(); + if ($saisie->getUtilisateurId() == $utilisateur->getPrimaryKey() && $saisie->getCreatedAt('U') > (time() - 3600)) { + $afficheEleve[$elv]['saisie'][$i]['primaryKey'] = $saisie->getPrimaryKey(); + $afficheEleve[$elv]['saisie'][$i]['createdAt'] = $saisie->getCreatedAt("H:i"); + $besoin_echo_virgule = false; + foreach ($saisie->getAbsenceEleveTraitements() as $bou_traitement) { + if ($bou_traitement->getAbsenceEleveType() != null) { + $afficheEleve[$elv]['saisie'][$i]['traitements'][] = $bou_traitement->getAbsenceEleveType()->getNom(); + } + } + } + } + } + + //on va afficher des renseignements sur les heures précédentes + foreach ($absences_du_creneau as $abs_saisie) { + if ($abs_saisie->getTraitee() && $abs_saisie->getManquementObligationPresence()) { + $txt = $abs_saisie->getTypesDescription(); + if ($txt != '') { + $afficheEleve[$elv]['saisieDescription'][$i][] = $abs_saisie->getTypesDescription(); + } + } + } + + if ($nb_creneau_a_saisir > 0) { + // le message d'erreur de l'enregistrement precedent provient du fichier enregistrement_saisies_groupe.php + if (isset($message_erreur_eleve[$eleve->getId()]) && $message_erreur_eleve[$eleve->getId()] != '') { + $afficheEleve[$elv]['erreurEnregistre'][$i] = $message_erreur_eleve[$eleve->getId()]; + } + + //la saisie sur ce creneau + $type_autorises = AbsenceEleveTypeQuery::create()->orderByRank()->useAbsenceEleveTypeStatutAutoriseQuery()->filterByStatut($utilisateur->getStatut())->endUse()->find(); + if ($type_autorises->count() != 0) { + $afficheEleve[$elv]['type_autorises'][$i] = array(); + foreach ($type_autorises as $type) { + $afficheEleve[$elv]['type_autorises'][$i][]= array('type'=>$type->getId(), 'nom'=>$type->getNom(), 'modeInterface'=>$type->getModeInterface()); + } + } + } + } + + if ((getSettingValue("active_module_trombinoscopes")=='y')) { + $nom_photo = $eleve->getNomPhoto(1); + $photos = $nom_photo; + if (($photos == NULL) or (!(file_exists($photos)))) { + $photos = "../mod_trombinoscopes/images/trombivide.jpg"; + } + $afficheEleve[$elv]['nom_photo'] = $photos; + } + $elv++; +} + +// 20120618 +$chaine_effectifs_regimes=""; +$indice_tab_regime=array(); +if(count($tab_regimes)>0) { + $chaine_effectifs_regimes.=""; + for($i=0;$i\n"; + } + $chaine_effectifs_regimes.=""; +} + +//============================================== +$style_specifique[] = "templates/origine/css/bandeau"; +$style_specifique[] = "mod_abs2/lib/abs_style"; +$style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; +$style_specifique[] = "mod_abs2/lib/saisie_smart_large"; +$CSS_smartphone = "mod_abs2/lib/saisie_smart_mini"; +$javascript_specifique[] = "lib/DHTMLcalendar/calendar"; +$javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; +$javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; +$javascript_specifique[] = "mod_abs2/lib/include"; +$titre_page = "Les absences"; +$utilisation_jsdivdrag = "non"; +$_SESSION['cacher_header'] = "y"; +$tbs_last_connection = ""; + +//**************** EN-TETE ***************** +require_once("../lib/header_template.inc.php"); +//include("../templates/origine/bandeau_template.php"); +?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + + + +
      + + + + +
      +isEmpty()) { +?> +
      +

      + + + + + +

      + +isEmpty()) { +?> +
      +

      + + + + + +

      + +isEmpty()) { +?> +
      +

      + + + +isEmpty()) { + if (count($semaineAff) > 1) { +?> + + + + + + + + + +
      + Erreur : le cours ne correspond pas au type de semaine. + +

      + +isEmpty()) { +?> +
      +

      + + + + + +

      + + +
      + +

      +isEmpty()) { +?> +

      Aucun créneau selectionné

      + +
      +
      +

      + + + + + + + + + +

      + + \n"; + //echo "
    \n"; - $nb_class_par_colonne=round($nombre_lignes/3); - while ($i < $nombre_lignes){ - if(($i>0)&&(round($i/$nb_class_par_colonne)==$i/$nb_class_par_colonne)){ - echo "\n"; - } - - $_id_classe = mysql_result($call_data, $i, "id"); - $classe = mysql_result($call_data, $i, "classe"); - if (get_period_number($_id_classe) == $current_classe_period_num) { - echo "\n"; - //echo ">$classe\n"; - - echo "
    \n"; - } - $i++; - } - */ //echo "

    \n"; echo "
    +
    \n"; + echo "
    \n"; + echo "\n"; + echo " \n"; + for($loop=0;$loop".count($tab_regimes_eleves[$tab_regimes[$loop]])." ".$tab_regimes[$loop]."\n"; + } + echo " \n"; + echo "\n"; + $alt=1; + foreach ($afficheEleve['0']['type_autorises'][$indice_creneau_courant] as $type) { + if($type['modeInterface'] == AbsenceEleveType::MODE_INTERFACE_CHECKBOX_HIDDEN_REGIME) { + if(!in_array($type['type'], $tab_types_abs_regimes)) { + $tab_types_abs_regimes[]=$type['type']; + if($js_chaine_tab_types_abs_regimes!="") { + $js_chaine_tab_types_abs_regimes.=", "; + } + $js_chaine_tab_types_abs_regimes.="'".$type['type']."'"; + } + $alt=$alt*(-1); + //echo "\n"; + if($alt==1) { + echo "\n"; + } + else { + echo "\n"; + } + echo " \n"; + for($loop=0;$loop\n"; + echo " \n"; + echo " \n"; + echo " \n"; + } + echo " \n"; + echo "\n"; + } + } + echo "\n"; + echo " \n"; + for($loop=0;$loop\n"; + echo " \n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "
    Tot.
    ".$type['nom']."
    Décocher
    \n"; + echo "

    \n"; + //echo "
    \n"; + } + ?> + +

    + Saisie des absences du + format('U')); ?> + pour + + getNameAvecClasses(); + } else if (isset($current_aid) && $current_aid != null) { + echo 'l\'aid '.$current_aid->getNom(); + } else if (isset($current_classe) && $current_classe != null) { + echo 'la classe '.$current_classe->getNom(); + } ?> + + + + + + + + +
    + (les élèves non cochés seront considérés présents) +

    +

    + +

    + getStatut() == 'professeur' && getSettingValue("active_cahiers_texte")=='y') { ?> +

    + +

    + + + +

    count(); ?> élèves ().

    + +
    + + Aucun plan de classe n'a été trouvé pour ce groupe.
    Revenir à la saisie classique
    ou Définir un plan de classe

    \n"; + require_once("../lib/footer.inc.php"); + die(); + } + + $lig_pdc=mysql_fetch_object($test_pdc); + $id_pdc=$lig_pdc->id; + $dim_photo_pdc=$lig_pdc->dim_photo; + + $largeur_div=$dim_photo_pdc; + $hauteur_div=$dim_photo_pdc+20; + + $decalage_vertical=150; + + $tab_coord=array(); + $max_y=0; + $sql="SELECT * FROM t_plan_de_classe_ele WHERE id_plan='$id_pdc' ORDER BY login_ele"; + $res_pdc_ele=mysql_query($sql); + while($lig_pdc_ele=mysql_fetch_object($res_pdc_ele)) { + $tab_coord[$lig_pdc_ele->login_ele]['x']=$lig_pdc_ele->x; + $tab_coord[$lig_pdc_ele->login_ele]['y']=$lig_pdc_ele->y+$decalage_vertical; + if($lig_pdc_ele->y>$max_y) {$max_y=$lig_pdc_ele->y;} + } + + $compteur_eleve=0; + $compteur_nouvel_eleve=0; + foreach($afficheEleve as $eleve) { + $compteur_eleve++; +/* +echo "
    ";
    +echo print_r($eleve);
    +echo "
    "; +*/ + if(isset($tab_coord[$eleve['accesFiche']]['x'])) { + $x=$tab_coord[$eleve['accesFiche']]['x']; + $y=$tab_coord[$eleve['accesFiche']]['y']; + } + else { + $y=$max_y+$hauteur_div+50; + $x=(10+$largeur_div)*$compteur_nouvel_eleve+10; + $compteur_nouvel_eleve++; + } + + echo "
    \n"; + + echo "
    \n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "format('d/m/Y')."\" />\n"; + + echo "format('d/m/Y')."\" />\n"; + + echo "
    \n"; + } + + if($compteur_nouvel_eleve>0) { + $x=10; + $y=$max_y+$hauteur_div+30; + echo "
    \n"; + echo "Un ou des élèves ne sont pas positionnés dans votre trombinoscope"; + echo "
    \n"; + } + ?> + + +getStatut() == 'professeur' && getSettingValue("active_cahiers_texte")=='y') { +?> +

    + +

    + + +
    + + + + + + var etat_tout_cocher=false; + function cocher_div_abs(num) { + id_check_ele='active_absence_eleve_'+num; + if(document.getElementById(id_check_ele)) { + id_div='div_'+num; + id_photo='photo_'+num; + if(document.getElementById(id_div)) { + if(document.getElementById(id_check_ele).checked==false) { + document.getElementById(id_div).style.backgroundColor=''; + if(document.getElementById(id_photo)) { + document.getElementById(id_photo).style.opacity=1; + } + } + else { + document.getElementById(id_div).style.backgroundColor='red'; + if(document.getElementById(id_photo)) { + document.getElementById(id_photo).style.opacity=0.2; + } + } + } + } + } + +\n"; +} + +/* +if (isset($radioButtonType)) { + $javascript_footer_texte_specifique = ''; +} +*/ +require_once("../lib/footer.inc.php"); + +// $affiche_debug=debug_var(); + diff --git a/mod_trombinoscopes/plan_de_classe.php b/mod_trombinoscopes/plan_de_classe.php index da3929f23..d1680c184 100644 --- a/mod_trombinoscopes/plan_de_classe.php +++ b/mod_trombinoscopes/plan_de_classe.php @@ -75,13 +75,13 @@ die("Le module n'est pas activé."); } -$id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : NULL; +$id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : (isset($_GET['id_groupe']) ? $_GET['id_groupe'] : NULL); $sql="CREATE TABLE IF NOT EXISTS t_plan_de_classe ( id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , id_groupe INT(11) NOT NULL , login_prof VARCHAR(50) NOT NULL , -dim_photo INT(11) NOT NULL);"; +dim_photo INT(11) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table=mysql_query($sql); $sql="CREATE TABLE IF NOT EXISTS t_plan_de_classe_ele ( @@ -89,7 +89,7 @@ id_plan INT( 11 ) NOT NULL, login_ele VARCHAR(50) NOT NULL , x INT(11) NOT NULL , -y INT(11) NOT NULL);"; +y INT(11) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; $create_table=mysql_query($sql); // On ne va afficher l'entête que pour le choix du groupe, pas sur la partie réalisation du plan de classe @@ -162,7 +162,7 @@ //debug_var(); -$dim_photo=isset($_POST['dim_photo_'.$id_groupe]) ? $_POST['dim_photo_'.$id_groupe] : 100; +$dim_photo=isset($_POST['dim_photo_'.$id_groupe]) ? $_POST['dim_photo_'.$id_groupe] : (isset($_GET['dim_photo_'.$id_groupe]) ? $_GET['dim_photo_'.$id_groupe] : 100); $dim_photo=preg_replace('/[^0-9]/','',$dim_photo); if(($dim_photo=="")||($dim_photo==0)) {$dim_photo=100;} From 9acecbf52c8436ea8bd8dfd71256529a98dd2b52 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Jul 2012 17:02:55 +0200 Subject: [PATCH 0044/1150] Correctif sur le lien vers la modif du plan de classe. --- mod_abs2/saisir_groupe_plan.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_abs2/saisir_groupe_plan.php b/mod_abs2/saisir_groupe_plan.php index eb9d3845f..7ccf9bbc8 100644 --- a/mod_abs2/saisir_groupe_plan.php +++ b/mod_abs2/saisir_groupe_plan.php @@ -1113,7 +1113,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $sql="SELECT * FROM t_plan_de_classe WHERE id_groupe='".$id_groupe."' AND login_prof='".$_SESSION['login']."';"; $test_pdc=mysql_query($sql); if(mysql_num_rows($test_pdc)==0) { - echo "

    Aucun plan de classe n'a été trouvé pour ce groupe.
    Revenir à la saisie classique
    ou Définir un plan de classe

    \n"; + echo "

    Aucun plan de classe n'a été trouvé pour ce groupe.
    Revenir à la saisie classique
    ou Définir un plan de classe

    \n"; require_once("../lib/footer.inc.php"); die(); } @@ -1233,7 +1233,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $x=10; $y=$max_y+$hauteur_div+30; echo "
    \n"; - echo "Un ou des élèves ne sont pas positionnés dans votre trombinoscope"; + echo "Un ou des élèves ne sont pas positionnés dans votre trombinoscope"; echo "
    \n"; } ?> From b299ca850db5b445fa5f87b715e9e48420856829 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Jul 2012 21:48:24 +0200 Subject: [PATCH 0045/1150] =?UTF-8?q?Facilit=C3=A9=20de=20modif=20au=20cla?= =?UTF-8?q?vier=20Up/Down=20sur=20les=20dates.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/liste_eleves.php | 10 +++++----- mod_abs2/liste_notifications.php | 4 ++-- mod_abs2/liste_saisies_selection_traitement.php | 16 ++++++++-------- mod_abs2/liste_traitements.php | 4 ++-- mod_abs2/saisir_groupe.php | 4 ++-- 5 files changed, 19 insertions(+), 19 deletions(-) diff --git a/mod_abs2/liste_eleves.php b/mod_abs2/liste_eleves.php index 595094c24..826117954 100644 --- a/mod_abs2/liste_eleves.php +++ b/mod_abs2/liste_eleves.php @@ -213,7 +213,7 @@ echo "| "; } echo "Voir "; -echo ''; +echo ''; echo "par page| Nombre d'élèves : "; echo $eleves_col->count(); @@ -330,7 +330,7 @@ echo ' '; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -350,7 +350,7 @@ echo ' '; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -378,7 +378,7 @@ echo ' '; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -398,7 +398,7 @@ echo ' '; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; diff --git a/mod_abs2/liste_notifications.php b/mod_abs2/liste_notifications.php index 6a57301a0..9a25f24c1 100644 --- a/mod_abs2/liste_notifications.php +++ b/mod_abs2/liste_notifications.php @@ -375,7 +375,7 @@ //echo ''; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; echo ''; //echo ''; @@ -395,7 +395,7 @@ //echo ''; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; echo ''; //echo ''; diff --git a/mod_abs2/liste_saisies_selection_traitement.php b/mod_abs2/liste_saisies_selection_traitement.php index 746023c66..5d0336b4b 100644 --- a/mod_abs2/liste_saisies_selection_traitement.php +++ b/mod_abs2/liste_saisies_selection_traitement.php @@ -501,7 +501,7 @@ echo ' '; echo 'Entre :  '; + echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -521,7 +521,7 @@ echo ' '; echo 'Et :  '; + echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -701,7 +701,7 @@ echo ' '; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -721,7 +721,7 @@ echo ' '; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -756,7 +756,7 @@ echo ' '; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -776,7 +776,7 @@ echo ' '; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -863,7 +863,7 @@ echo ' '; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; @@ -883,7 +883,7 @@ echo ' '; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; //echo ''; echo ''; diff --git a/mod_abs2/liste_traitements.php b/mod_abs2/liste_traitements.php index 988dec505..9b960465e 100644 --- a/mod_abs2/liste_traitements.php +++ b/mod_abs2/liste_traitements.php @@ -600,7 +600,7 @@ //echo ''; echo 'Entre :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; echo ''; //echo ''; @@ -620,7 +620,7 @@ //echo ''; echo 'Et :  '; +echo '" onKeyDown="clavier_date(this.id,event);" AutoComplete="off" /> '; echo ''; echo ''; //echo ''; diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 21b52f3a8..a4d08cb03 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -123,7 +123,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev if ($utilisateur->getStatut() != 'professeur' || (getSettingValue("abs2_saisie_prof_decale")=='y' && getSettingValue("abs2_saisie_prof_decale_journee")=='y')) { $rand_id = rand(0,10000000); echo ''; - echo ' '; + echo ' '; echo ' \n"; //================================================================ + + if($action!='export_html') { + $html=html_entete("Index des cahiers de textes",0).$html; + $html.=html_pied_de_page(); - $html=html_entete("Index des cahiers de textes",0).$html; - $html.=html_pied_de_page(); - - $f=fopen($dossier_export."/index.html","w+"); - fwrite($f,$html); - fclose($f); - - $tab_fichiers_a_zipper[]=$dossier_export."/index.html"; + $f=fopen($dossier_export."/index.html","w+"); + fwrite($f,$html); + fclose($f); + $tab_fichiers_a_zipper[]=$dossier_export."/index.html"; + } } else { // C'est une liste de classes/enseignements qui a été choisie @@ -1087,15 +1085,16 @@ function change_style_groupe(num) { \n"; //================================================================ - $html=html_entete("Index des cahiers de textes de ".$nom_classe[$j],0).$html; - $html.=html_pied_de_page(); + if($action!='export_html') { + $html=html_entete("Index des cahiers de textes de ".$nom_classe[$j],0).$html; + $html.=html_pied_de_page(); - $f=fopen($dossier_export."/".$nom_fichier_index[$id_classe[$j]],"w+"); - fwrite($f,$html); - fclose($f); + $f=fopen($dossier_export."/".$nom_fichier_index[$id_classe[$j]],"w+"); + fwrite($f,$html); + fclose($f); - $tab_fichiers_a_zipper[]=$dossier_export."/".$nom_fichier_index[$id_classe[$j]]; - + $tab_fichiers_a_zipper[]=$dossier_export."/".$nom_fichier_index[$id_classe[$j]]; + } } } @@ -1190,26 +1189,27 @@ function change_style_groupe(num) { \n"; //================================================================ - $html=html_entete("CDT: ".$nom_detaille_groupe_non_html[$id_groupe[$i]],1).$html; - $html.=html_pied_de_page(); + if($action!='export_html') { + $html=html_entete("CDT: ".$nom_detaille_groupe_non_html[$id_groupe[$i]],1).$html; + $html.=html_pied_de_page(); - $f=fopen($dossier_export."/cahier_texte/".$nom_fichier[$id_groupe[$i]],"w+"); - fwrite($f,$html); - fclose($f); + $f=fopen($dossier_export."/cahier_texte/".$nom_fichier[$id_groupe[$i]],"w+"); + fwrite($f,$html); + fclose($f); - $tab_fichiers_a_zipper[]=$dossier_export."/cahier_texte/".$nom_fichier[$id_groupe[$i]]; + $tab_fichiers_a_zipper[]=$dossier_export."/cahier_texte/".$nom_fichier[$id_groupe[$i]]; - if(count($tab_chemin_url)) { - $fichier_url=$dossier_export."/url_documents.txt"; - $f=fopen($fichier_url,"a+"); - for($k=0;$k\n"; } @@ -1220,12 +1220,14 @@ function change_style_groupe(num) { $tmp=explode("?",$_SERVER['HTTP_REFERER']); $chemin_site=preg_replace("#/cahier_texte_2#","",dirname($tmp[0])); - $fichier_url_site=$dossier_export."/url_site.txt"; - $f=fopen($fichier_url_site,"a+"); - fwrite($f,$chemin_site."\n"); - fclose($f); + if($action!='export_html') { + $fichier_url_site=$dossier_export."/url_site.txt"; + $f=fopen($fichier_url_site,"a+"); + fwrite($f,$chemin_site."\n"); + fclose($f); - $tab_fichiers_a_zipper[]=$fichier_url_site; + $tab_fichiers_a_zipper[]=$fichier_url_site; + } } if($action=='export_zip') { From 04140129e8695aa3f510f22833896ade60f9e172 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Jul 2012 16:41:30 +0200 Subject: [PATCH 0047/1150] =?UTF-8?q?Possibilit=C3=A9=20d'inclure=20dans?= =?UTF-8?q?=20l'archive=20les=20documents=20joints.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/export_cdt.php | 56 ++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 4 deletions(-) diff --git a/cahier_texte_2/export_cdt.php b/cahier_texte_2/export_cdt.php index 65058fbf6..aeec2d9f2 100644 --- a/cahier_texte_2/export_cdt.php +++ b/cahier_texte_2/export_cdt.php @@ -99,6 +99,8 @@ $action=isset($_POST['action']) ? $_POST['action'] : (isset($_GET['action']) ? $_GET['action'] : "export_zip"); +$inclure_doc_joints=isset($_POST['inclure_doc_joints']) ? $_POST['inclure_doc_joints'] : "n"; + $tab_fichiers_a_zipper=array(); //**************** EN-TETE ***************** @@ -346,6 +348,8 @@ function change_style_classe(num) { echo "

    Action à réaliser :
    \n"; echo "
    \n"; + echo "     \n"; + echo "
    \n"; echo "ou
    \n"; echo "Mettre en place un accès sans authentification aux cahier(s) de textes choisis
    (pour par exemple, permettre à un inspecteur de consulter les cahiers de textes d'un professeur lors d'une inspection)"; echo "
    \n"; @@ -486,6 +490,9 @@ function change_style_groupe(num) { echo "

    Action à réaliser :
    \n"; echo "
    \n"; + echo "     \n"; + echo "
    \n"; + echo "ou
    \n"; echo "
    L'accès mis en place est 'statique', c'est-à-dire que seules les notices saisies à ce jour pourront être consultées."; /* @@ -615,8 +622,10 @@ function change_style_groupe(num) { echo "

    \n"; echo "

    \n"; - echo "
    \n"; echo "\n"; + echo "
    \n"; + echo "\n"; + echo "()\n"; echo "

    \n"; echo "

    \n"; @@ -1101,6 +1110,8 @@ function change_style_groupe(num) { echo "
    \n"; +$tab_chemin_url=array(); + // Dans la page générée, permettre de masquer via JavaScript telle ou telle catégorie Notices ou devoirs,... for($i=0;$i0) { $fichier_url=$dossier_export."/url_documents.txt"; $f=fopen($fichier_url,"a+"); for($k=0;$k\n"; } +if($action!='export_html') { + if(count($tab_chemin_url)>0) { + $fichier_url=$dossier_export."/url_documents.txt"; + $f=fopen($fichier_url,"a+"); + for($k=0;$k\n"; } else { + if($inclure_doc_joints=='y') { + //echo "count(\$tab_chemin_url)=".count($tab_chemin_url)."
    "; + if(count($tab_chemin_url)>0) { + for($k=0;$k"; + if(file_exists($tab_chemin_url[$k])) { + //echo "Ajout de $tab_chemin_url[$k]
    "; + $archive->add($tab_chemin_url[$k],PCLZIP_OPT_REMOVE_PATH, '../', PCLZIP_OPT_ADD_PATH, $nom_export."/"); + } + } + } + } $basename_fichier_archive=basename($fichier_archive); echo "

    Archive des cahiers de textes extraits : $basename_fichier_archive

    \n"; From 48337e8f030792769867730893acbe0084290c92 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Jul 2012 16:59:34 +0200 Subject: [PATCH 0048/1150] Ajouts. --- changelog.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/changelog.txt b/changelog.txt index 443f76f5b..8b2cfd5b1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -5,8 +5,10 @@ Gepi-1.6.2 (Version de développement) =========================== -- Bulletins: - Affichage (à des fins de contrôle) des coef et profs associés aux enseignements avant génération des bulletins. - - Possibilité d'afficher tous les PP d'une classe et non seulement celui associé à l'élève sur les bulletins PDF. +- Bulletins : - Affichage (à des fins de contrôle) des coef et profs associés aux enseignements avant génération des bulletins. + - Possibilité d'afficher tous les PP d'une classe et non seulement celui associé à l'élève sur les bulletins PDF. +- Cahiers de textes : Possibilité d'inclure les documents joints dans l'export ZIP. +- Abs2 : Possibilité de cocher les absences sur le plan de classe. - ... Gepi-1.6.1 (10/06/2012) From e8dd01fe0d897783f7d5a1aae2c9761fe4064b5c Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 10 Jul 2012 15:30:46 +0200 Subject: [PATCH 0049/1150] =?UTF-8?q?Ajout=20d'une=20alerte=20sur=20une=20?= =?UTF-8?q?situation=20sans=20enseignements=20dans=20une=20cat=C3=A9gorie.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_index.php | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index e35a31bc2..63430a36c 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -1998,6 +1998,54 @@ function display_param_b_adr_pg() { } } } + + // Tester si au moins une matière est dans une catégorie autre que AUCUNE... + $sql="SELECT DISTINCT categorie_id FROM j_groupes_classes jgc, matieres_categories mc WHERE mc.id=jgc.categorie_id AND jgc.id_classe='$id_classe' AND jgc.id_groupe NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='bulletins' AND visible='n');"; + $test_cat_auc=mysql_query($sql); + if(mysql_num_rows($test_cat_auc)==0) { + if($mode_bulletin!="pdf") { + echo "

    Erreur

    "; + echo "

    Vous avez demandé à afficher les catégories de matières, mais aucun enseignement n'est dans une catégorie pour la classe n°$id_classe.
    Contrôlez, en compte administrateur, Gestion des classes/<Classe> Enseignements.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + else { + + $pdf=new bul_PDF('p', 'mm', 'A4'); + $pdf->SetCreator($gepiSchoolName); + $pdf->SetAuthor($gepiSchoolName); + $pdf->SetKeywords(''); + $pdf->SetSubject('Bulletin'); + $pdf->SetTitle('Bulletin'); + $pdf->SetDisplayMode('fullwidth', 'single'); + $pdf->SetCompression(TRUE); + $pdf->SetAutoPageBreak(TRUE, 5); + + $pdf->AddPage(); //ajout d'une page au document + $pdf->SetFont('DejaVu'); + $pdf->SetXY(20,20); + $pdf->SetFontSize(14); + $pdf->Cell(90,7, "ERREUR",0,2,''); + + $pdf->SetXY(20,40); + $pdf->SetFontSize(10); + $pdf->Cell(150,7, "Vous avez demandé à afficher les catégories de matières,",0,2,''); + $pdf->SetXY(20,45); + $pdf->Cell(150,7, "mais aucun enseignement n'est dans une catégorie pour la classe ".get_nom_classe($id_classe).".",0,2,''); + $pdf->SetXY(20,50); + $pdf->Cell(150,7, "Contrôlez, en compte administrateur:",0,2,''); + $pdf->SetXY(20,55); + $pdf->Cell(150,7, " Gestion des classes/ Enseignements",0,2,''); + $pdf->SetXY(20,60); + $pdf->Cell(150,7, "Ou bien, modifiez les Paramètres d'impression des bulletins",0,2,''); + $pdf->SetXY(20,65); + $pdf->Cell(150,7, "pour ne pas utiliser les catégories de matières.",0,2,''); + + $nom_bulletin = 'Erreur_bulletin.pdf'; + $pdf->Output($nom_bulletin,'I'); + die(); + } + } } //======================================== From afbdf74a59d574203544e998cdc7d45225edcf8a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 10 Jul 2012 15:31:13 +0200 Subject: [PATCH 0050/1150] Correction sur les dimensions des div de photos --- mod_abs2/saisir_groupe_plan.php | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mod_abs2/saisir_groupe_plan.php b/mod_abs2/saisir_groupe_plan.php index 7ccf9bbc8..6273f692a 100644 --- a/mod_abs2/saisir_groupe_plan.php +++ b/mod_abs2/saisir_groupe_plan.php @@ -1151,12 +1151,13 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $y=$tab_coord[$eleve['accesFiche']]['y']; } else { - $y=$max_y+$hauteur_div+50; + $y=$max_y+$hauteur_div+70; $x=(10+$largeur_div)*$compteur_nouvel_eleve+10; $compteur_nouvel_eleve++; } - echo "
    \n"; + echo "
    \n"; + //overflow: auto; echo "
    \n"; diff --git a/lib/header_template.inc.php b/lib/header_template.inc.php index ad947da69..6ba6239f4 100644 --- a/lib/header_template.inc.php +++ b/lib/header_template.inc.php @@ -310,6 +310,13 @@ function last_connection() { if (getSettingValue("impose_petit_entete_prof") == 'y' AND isset($_SESSION['statut']) AND $_SESSION['statut'] == 'professeur') { $_SESSION['cacher_header']="y"; } + +$petit_entete=getPref($_SESSION['login'], "petit_entete", ""); +//echo "\$petit_entete=$petit_entete
    "; +if(($petit_entete=='y')||($petit_entete=='n')) { + $_SESSION['cacher_header']=$petit_entete; +} + // Taille à récupérer dans la base pour initialiser $_SESSION['cacher_header'] // petit bandeau toute valeur sauf "n" ; // grand bandeau "n"; diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index 3decd91ad..c16e548a0 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -395,6 +395,8 @@ function unhtmlentities($chaineHtml) } //elseif($_SESSION['statut']=='eleve') { elseif(($_SESSION['statut']=='eleve')&&(getSettingValue("active_module_trombinoscopes")=='y')&&(getSettingValue("GepiAccesModifMaPhotoEleve")=='yes')) { + // Upload de la photo en tant qu'élève + // En multisite, on ajoute le répertoire RNE if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') { // On récupère le RNE de l'établissement @@ -623,30 +625,310 @@ function unhtmlentities($chaineHtml) } } + +if (($_SESSION["statut"] == "professeur")&&(isset($_POST['valide_accueil_simpl_prof']))) { + $i=0; + $prof[$i]=$_SESSION['login']; + + $nb_reg=0; + $message_accueil_simpl_prof=""; + + $tab=array('accueil_simpl','accueil_infobulles','accueil_ct','accueil_cn','accueil_bull','accueil_visu','accueil_trombino','accueil_liste_pdf'); + + for($j=0;$j"; + } + + $msg.="$nb_reg enregistrement(s) effectué(s).
    "; + $message_accueil_simpl_prof.="

    $nb_reg enregistrement(s) effectué(s).

    "; +} + +//================================================================================ + + +if ((getSettingValue('active_carnets_notes')!='n')&&($_SESSION["statut"] == "professeur")&&(isset($_POST['valide_form_cn']))) { + $i=0; + $prof[$i]=$_SESSION['login']; + + $nb_reg=0; + $message_cn=""; + + $tab=array('add_modif_dev_simpl','add_modif_dev_nom_court','add_modif_dev_nom_complet','add_modif_dev_description','add_modif_dev_coef','add_modif_dev_note_autre_que_referentiel','add_modif_dev_date','add_modif_dev_date_ele_resp','add_modif_dev_boite'); + for($j=0;$j"; + } + + $msg.="$nb_reg enregistrement(s) effectué(s).
    "; + $message_cn.="

    $nb_reg enregistrement(s) effectué(s).

    "; +} + + +if(($_SESSION['statut']=='professeur')&&(isset($_POST['saisie_app_nb_cols_textarea']))) { + + $aff_photo_saisie_app=isset($_POST['aff_photo_saisie_app']) ? $_POST['aff_photo_saisie_app'] : "n"; + $insert=savePref($_SESSION['login'], 'aff_photo_saisie_app', $aff_photo_saisie_app); + if($insert) { + $msg.="Enregistrement de aff_photo_saisie_app effectué.
    \n"; + } + else { + $msg.="Erreur lors de l'enregistrement de aff_photo_saisie_app à $aff_photo_saisie_app.
    \n"; + $message_cn.="Erreur lors de l'enregistrement de aff_photo_saisie_app à $aff_photo_saisie_app.
    "; + } + + $saisie_app_nb_cols_textarea=isset($_POST['saisie_app_nb_cols_textarea']) ? $_POST['saisie_app_nb_cols_textarea'] : 100; + if((!is_numeric($saisie_app_nb_cols_textarea))||($saisie_app_nb_cols_textarea<=0)) { + $msg.="Valeur invalide sur saisie_app_nb_cols_textarea pour ".$_SESSION['login']."
    \n"; + $message_bulletins="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + elseif(!savePref($_SESSION['login'], 'saisie_app_nb_cols_textarea', $saisie_app_nb_cols_textarea)) { + $msg.="Erreur lors de l'enregistrement de saisie_app_nb_cols_textarea pour ".$_SESSION['login']."
    \n"; + $message_bulletins="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + else { + $msg.="Enregistrement de saisie_app_nb_cols_textarea effectué.
    \n"; + $message_bulletins="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } +} + + +if(($_SESSION['statut']=='professeur')&&(isset($_POST['ouverture_auto_WinDevoirsDeLaClasse']))) { + check_token(); + + if(($_POST['ouverture_auto_WinDevoirsDeLaClasse']=='y')||($_POST['ouverture_auto_WinDevoirsDeLaClasse']=='n')) { + if(!savePref($_SESSION['login'],'ouverture_auto_WinDevoirsDeLaClasse',$_POST['ouverture_auto_WinDevoirsDeLaClasse'])) { + $msg.="Erreur lors de l'enregistrement de ouverture_auto_WinDevoirsDeLaClasse.
    "; + $message_cdt="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + else { + $msg.="Enregistrement de ouverture_auto_WinDevoirsDeLaClasse.
    "; + $message_cdt="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + } +} + +if(isset($_POST['mod_discipline_travail_par_defaut'])) { + check_token(); + + if(!savePref($_SESSION['login'],'mod_discipline_travail_par_defaut',traitement_magic_quotes($_POST['mod_discipline_travail_par_defaut']))) { + $msg.="Erreur lors de l'enregistrement de mod_discipline_travail_par_defaut.
    "; + $message_mod_discipline="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + else { + $msg.="Enregistrement de mod_discipline_travail_par_defaut.
    "; + $message_mod_discipline="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } +} + + + $tab_statuts_barre=array('professeur', 'cpe', 'scolarite', 'administrateur'); $modifier_barre=isset($_POST['modifier_barre']) ? $_POST['modifier_barre'] : NULL; if((isset($modifier_barre))&&(in_array($_SESSION['statut'], $tab_statuts_barre))) { $afficher_menu=isset($_POST['afficher_menu']) ? $_POST['afficher_menu'] : NULL; if(!savePref($_SESSION['login'], 'utiliserMenuBarre', $afficher_menu)) { $msg.="Erreur lors de la sauvegarde de la préférence d'affichage de la barre de menu.
    \n"; + $message_modifier_barre="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; } else { $msg.="Sauvegarde de la préférence d'affichage de la barre de menu effectuée.
    \n"; + $message_modifier_barre="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; } } + + if(isset($_POST['choix_encodage_csv'])) { if(in_array($_POST['choix_encodage_csv'],array("ascii", "utf-8", "windows-1252"))) { if(!savePref($_SESSION['login'], 'choix_encodage_csv', $_POST['choix_encodage_csv'])) { $msg.="Erreur lors de la sauvegarde de la préférence d'encodage des fichiers CSV.
    \n"; + $message_choixEncodageCsv="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; } else { $msg.="Sauvegarde de la préférence d'encodage des fichiers CSV effectuée.
    \n"; + $message_choixEncodageCsv="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; } } } + +if (isset($_POST['modifier_hauteur_entete'])) { + check_token(); + + $reglage = isset($_POST['header_bas']) ? $_POST['header_bas'] : 'n'; + + //echo "savePref(".$_SESSION['login'].", 'petit_entete', $reglage)
    "; + if (savePref($_SESSION['login'], 'petit_entete', $reglage)) { + $message_hauteur_header = "

    Modification enregistrée : ".strftime('%d/%m/%Y à %H:%M:%S')."

    "; + $msg.="Hauteur de l'entête enregistrée.
    "; + }else{ + $message_hauteur_header = "

    Impossible d'enregistrer la modification : ".strftime('%d/%m/%Y à %H:%M:%S')."

    "; + $msg.="Erreur lors de l'enregistrement de la hauteur de l'entête.
    "; + } +} + + + +if (!isset($niveau_arbo)) {$niveau_arbo = 1;} + +if ($niveau_arbo == "0") { + $chemin_sound="./sounds/"; +} elseif ($niveau_arbo == "1") { + $chemin_sound="../sounds/"; +} elseif ($niveau_arbo == "2") { + $chemin_sound="../../sounds/"; +} elseif ($niveau_arbo == "3") { + $chemin_sound="../../../sounds/"; +} +$tab_sound=get_tab_file($chemin_sound); + +if((count($tab_sound)>0)&&(isset($_POST['footer_sound']))&&(((in_array($_POST['footer_sound'],$tab_sound))&&(preg_match('/\.wav/i',$_POST['footer_sound']))&&(file_exists($chemin_sound.$_POST['footer_sound'])))|| $_POST['footer_sound']=='')) { + if(!savePref($_SESSION['login'],'footer_sound',$_POST['footer_sound'])) { + $msg.="Erreur lors de l'enregistrement de l'alerte sonore de fin de session.
    "; + $message_footer_sound = "

    Impossible d'enregistrer la modification : ".strftime('%d/%m/%Y à %H:%M:%S')."

    "; + } + else { + $msg.="Enregistrement de l'alerte sonore de fin de session effectué.
    "; + $message_footer_sound = "

    Modification enregistrée : ".strftime('%d/%m/%Y à %H:%M:%S')."

    "; + } +} + // On appelle les informations de l'utilisateur pour les afficher : $call_user_info = mysql_query("SELECT nom,prenom,statut,email,show_email,civilite FROM utilisateurs WHERE login='" . $_SESSION['login'] . "'"); $user_civilite = mysql_result($call_user_info, "0", "civilite"); @@ -676,6 +958,15 @@ function unhtmlentities($chaineHtml) echo "

    Retour Retour

    \n"; echo "
    \n"; + +echo "
    \n"; +echo "Informations personnelles\n"; + echo add_token_field(); echo "

    Informations personnelles *

    \n"; @@ -912,24 +1203,7 @@ function unhtmlentities($chaineHtml) if ($affiche_bouton_submit=='yes') { echo "

    \n"; } -/* -//Supp ERIC -$tab_class_mat = make_tables_of_classes_matieres(); -if (count($tab_class_mat)!=0) { - echo "

    Vous êtes professeur dans les classes et matières suivantes :"; - $i = 0; - echo "
      "; - while ($i < count($tab_class_mat['id_c'])) { - //echo "
    • ".$tab_class_mat['nom_m'][$i]." dans la classe : ".$tab_class_mat['nom_c'][$i]."
    • "; - echo "
    • ".$tab_class_mat['nom_c'][$i]." : ".$tab_class_mat['nom_m'][$i]."
    • "; - $i++; - } - echo "
    "; -} -*/ -// AJOUT Eric -//$groups = get_groups_for_prof($_SESSION["login"]); $groups = get_groups_for_prof($_SESSION["login"],"classe puis matière"); if (empty($groups)) { echo "

    \n"; @@ -945,11 +1219,6 @@ function unhtmlentities($chaineHtml) echo "\n"; // Matière principale: - /* - $test = mysql_query("SELECT DISTINCT(jgm.id_matiere) FROM j_groupes_professeurs jgp, j_groupes_matieres jgm WHERE (" . - "jgp.login = '".$_SESSION["login"]."' and " . - "jgm.id_groupe = jgp.id_groupe)"); - */ $sql="SELECT DISTINCT jpm.id_matiere, m.nom_complet FROM j_professeurs_matieres jpm, matieres m WHERE (jpm.id_professeur='".$_SESSION["login"]."' AND m.matiere=jpm.id_matiere) ORDER BY m.nom_complet;"; $test=mysql_query($sql); $nb=mysql_num_rows($test); @@ -982,9 +1251,6 @@ function unhtmlentities($chaineHtml) } - - - echo "

    * Toutes les données nominatives présentes dans la base GEPI et vous concernant vous sont communiquées sur cette page. Conformément à la loi française n° 78-17 du 6 janvier 1978 relative à l'informatique, aux fichiers et aux libertés, vous pouvez demander auprès du Chef d'établissement ou auprès de l'administrateur du site, @@ -994,9 +1260,14 @@ function unhtmlentities($chaineHtml) echo "

    ** Votre email sera affichée sur certaines pages seulement si leur affichage a été activé de manière globale par l'administrateur et si vous avez autorisé l'affichage de votre email en cochant la case appropriée. "; echo "Dans l'hypothèse où vous autorisez l'affichage de votre email, celle-ci ne sera accessible que par les élèves que vous avez en classe et/ou leurs responsables légaux disposant d'un identifiant pour se connecter à Gepi.

    \n"; } + +//========================================== + // Changement du mot de passe if ($editable_user) { - echo "

    Changement du mot de passe

    \n"; + //echo "
    \n"; + echo "

    \n"; + echo "

    Changement du mot de passe

    \n"; echo "

    Attention : le mot de passe doit comporter ".getSettingValue("longmin_pwd") ." caractères minimum. "; if ($flag == 1) echo "Il doit comporter au moins une lettre, au moins un chiffre et au moins un caractère spécial (#, *,...)"; @@ -1029,99 +1300,723 @@ function unhtmlentities($chaineHtml) if ($affiche_bouton_submit=='yes') echo "

    \n"; echo "\n"; +echo "
    \n"; echo "\n"; -echo "
    \n"; +//echo "
    \n"; +echo "
    \n"; + +//============================================================================== -// On affiche si c'est autorisé -if (getSettingValue("utiliserMenuBarre") != "no") { - $aff_checked=getPref($_SESSION['login'],"utiliserMenuBarre",""); +function cellule_checkbox($prof_login,$item,$num,$special){ + echo "0){ + $lig_test=mysql_fetch_object($test); + if($lig_test->value=="y"){ + echo " class='coche'"; + $checked=" checked"; + $coche="y"; + } + else{ + echo " class='decoche'"; + $coche="n"; + } + } + echo ">"; + echo ""; + + if($special!=''){ + if($coche=="y"){ + echo "\n"; + } + elseif($coche=="n"){ + echo "\n"; + } + } - echo "
    \n"; + echo "\n"; +} + +//============================================================================== + +if($_SESSION['statut']=='professeur') { + echo "\n"; echo add_token_field(); + echo "
    \n"; + echo "Page d'accueil simplifiée\n"; + + echo "\n"; + + //echo "

    Paramétrage de la page d'accueil simplifiée.

    \n"; + + //echo "
    \n"; + $tabchamps=array('accueil_simpl','accueil_infobulles','accueil_ct','accueil_trombino','accueil_cn','accueil_bull','accueil_visu','accueil_liste_pdf'); + + //echo "\n"; + echo "
    \n"; + + // 1ère ligne + //$lignes_entete="\n"; + $lignes_entete="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + + // 2ème ligne + //$lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + + echo $lignes_entete; + + $i=0; + + echo "\n"; + + echo "\n"; + + $j=0; + cellule_checkbox($_SESSION['login'],$tabchamps[$j],0,'accueil_simpl'); + for($j=1;$j\n"; - echo "Gérer la barre horizontale du menu\n"; - echo "\n"; + echo "\n"; + + echo "
    ".$gepiSettings['denomination_professeur']."Utiliser l'interface simplifiéeAfficher les infobullesAfficher les liens pour
    le Cahier de textesle Trombinoscopele Carnet de notesles notes et appréciations des Bulletinsla Visualisation des graphes et bulletins simplifiésles Listes PDF des élèves
    "; + echo my_strtoupper($_SESSION['nom'])." ".casse_mot($_SESSION['prenom'],'majf2'); + echo "
    \n"; + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + if(isset($message_accueil_simpl_prof)) {echo $message_accueil_simpl_prof;} + + echo "
    \n"; + echo "
    \n"; + //echo "
    \n"; + echo "
    \n"; + + //echo "
    \n"; +} + +//============================================================================== + +if ((getSettingValue('active_carnets_notes')!='n')&&($_SESSION["statut"] == "professeur")) { + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "Carnets de notes\n"; + + echo "\n"; + + //echo "

    Paramètres du carnet de notes :

    \n"; + + //echo "
    \n"; + $aff_quartiles_cn=getPref($_SESSION['login'], 'aff_quartiles_cn', 'n'); + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + $aff_photo_cn=getPref($_SESSION['login'], 'aff_photo_cn', 'n'); + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + echo "

    \n"; + $cn_avec_min_max=getPref($_SESSION['login'], 'cn_avec_min_max', 'y'); + echo "\n"; + echo "

    \n"; + + echo "

    \n"; + $cn_avec_mediane_q1_q3=getPref($_SESSION['login'], 'cn_avec_mediane_q1_q3', 'y'); + echo "\n"; + echo "

    \n"; + + echo "

    Dans la page de saisie des notes de devoirs, trier par défaut
    \n"; + $cn_order_by=getPref($_SESSION['login'], 'cn_order_by', 'classe'); + echo "
    \n"; + echo "
    \n"; + echo "

    \n"; + + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + + echo ""; + echo ""; + echo ""; + echo ""; + + echo "
    "; + echo "Nom court par défaut des évaluations : \n"; + echo ""; + $cn_default_nom_court=getPref($_SESSION['login'], 'cn_default_nom_court', 'Nouvelle évaluation'); + echo "\n"; + echo "
    "; + echo "Nom complet par défaut des évaluations : \n"; + echo ""; + $cn_default_nom_complet=getPref($_SESSION['login'], 'cn_default_nom_complet', 'Nouvelle évaluation'); + echo "\n"; + echo "
    "; + echo "Coefficient par défaut des évaluations : \n"; + $cn_default_coef=getPref($_SESSION['login'], 'cn_default_coef', '1.0'); + echo ""; + echo "\n"; + echo "
    "; + + //=========================================================== + + echo "
    \n"; + + echo "

    Paramétrage de la page de création d'évaluation

    \n"; + echo "
    \n"; + if(getSettingValue("note_autre_que_sur_referentiel")=="V") { + $tabchamps=array( 'add_modif_dev_simpl','add_modif_dev_nom_court','add_modif_dev_nom_complet','add_modif_dev_description','add_modif_dev_coef','add_modif_dev_note_autre_que_referentiel','add_modif_dev_date','add_modif_dev_date_ele_resp','add_modif_dev_boite'); + } else { + $tabchamps=array( 'add_modif_dev_simpl','add_modif_dev_nom_court','add_modif_dev_nom_complet','add_modif_dev_description','add_modif_dev_coef','add_modif_dev_date','add_modif_dev_date_ele_resp','add_modif_dev_boite'); + } + //echo "\n"; + echo "
    \n"; + + // 1ère ligne + $lignes_entete="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + if(getSettingValue("note_autre_que_sur_referentiel")=="V") { + $lignes_entete.="\n"; + } else { + $lignes_entete.="\n"; + } + $lignes_entete.="\n"; + + // 2ème ligne + //$lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + if(getSettingValue("note_autre_que_sur_referentiel")=="V") { + $lignes_entete.="\n"; + } + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + + echo $lignes_entete; + + echo "\n"; + + echo "\n"; + + $j=0; + cellule_checkbox($_SESSION['login'],$tabchamps[$j],0,'add_modif_dev'); + for($j=1;$j\n"; + + echo "
    ".$gepiSettings['denomination_professeur']."Utiliser l'interface simplifiéeAfficher les champsAfficher les champs
    Nom courtNom completDescriptionCoefficientNote autre que sur le referentielDateDate ele/resp".casse_mot(getSettingValue("gepi_denom_boite"),'majf2')."
    "; + echo my_strtoupper($_SESSION['nom'])." ".casse_mot($_SESSION['prenom'],'majf2'); + //echo ""; + echo "
    \n"; + echo "
    \n"; + + //======================================================== + + echo "
    \n"; + + echo "

    Paramétrage de la page de création de ".casse_mot(getSettingValue("gepi_denom_boite"),'majf2')."

    \n"; + echo "
    \n"; + + $tabchamps=array('add_modif_conteneur_simpl','add_modif_conteneur_nom_court','add_modif_conteneur_nom_complet','add_modif_conteneur_description','add_modif_conteneur_coef','add_modif_conteneur_boite','add_modif_conteneur_aff_display_releve_notes','add_modif_conteneur_aff_display_bull'); + + //echo "\n"; + echo "
    \n"; + + // 1ère ligne + //$lignes_entete.="\n"; + $lignes_entete="\n"; + if($_SESSION['statut']!='professeur'){ + $lignes_entete.="\n"; + } + else{ + $lignes_entete.="\n"; + } + $lignes_entete.="\n"; + $lignes_entete.="\n"; + if($_SESSION['statut']!='professeur') {$lignes_entete.="\n";} + $lignes_entete.="\n"; + + // 2ème ligne + //$lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + $lignes_entete.="\n"; + + echo $lignes_entete; + + echo "\n"; + + echo "\n"; + + $j=0; + cellule_checkbox($_SESSION['login'],$tabchamps[$j],0,'add_modif_conteneur'); + for($j=1;$j\n"; + + echo "
    ".$gepiSettings['denomination_professeur']."".$gepiSettings['denomination_professeur']."Utiliser l'interface simplifiéeAfficher les champsTout cocher / décocher
    Nom courtNom completDescriptionCoefficient".casse_mot(getSettingValue("gepi_denom_boite"),'majf2')."Afficher sur le relevé de notesAfficher sur le bulletin
    "; + echo my_strtoupper($_SESSION['nom'])." ".casse_mot($_SESSION['prenom'],'majf2'); + //echo ""; + echo "
    \n"; + echo "
    \n"; + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + if(isset($message_cn)) {echo $message_cn;} + + echo "
    \n"; + echo "
    \n"; + //echo "
    \n"; + echo "
    \n"; +} + +//============================================================================== + +if($_SESSION["statut"] == "professeur") { + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "Bulletins\n"; + + $aff_photo_saisie_app=getPref($_SESSION['login'], 'aff_photo_saisie_app', 'n'); + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + + $saisie_app_nb_cols_textarea=getPref($_SESSION["login"],'saisie_app_nb_cols_textarea',100); + echo "

    \n"; + echo "\n"; + echo ""; + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + if(isset($message_bulletins)) {echo $message_bulletins;} + + echo "
    \n"; + echo "
    \n"; + //echo "
    \n"; + echo "
    \n"; +} + +//============================================================================== + +if ((getSettingValue('active_cahiers_texte')!='n')&&($_SESSION["statut"] == "professeur")) { + $ouverture_auto_WinDevoirsDeLaClasse=getPref($_SESSION['login'], 'ouverture_auto_WinDevoirsDeLaClasse', 'y'); + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "Cahier de textes 2\n"; + echo "

    Lors de la saisie de notices de Travaux à faire dans le CDT2,
    \n"; + echo "
    \n"; + echo "
    \n"; + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + if(isset($message_cdt)) {echo $message_cdt;} + + echo "
    \n"; + echo "
    \n"; + + //echo "
    \n"; + echo "
    \n"; +} + +//============================================================================== + +$tab_statuts_mod_discipline=array('professeur', 'administrateur', 'scolarite', 'cpe'); +if ((getSettingValue('active_mod_discipline')!='n')&&(in_array($_SESSION['statut'], $tab_statuts_mod_discipline))) { + $mod_discipline_travail_par_defaut=getPref($_SESSION['login'], 'mod_discipline_travail_par_defaut', 'Travail : '); + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "Module Discipline et sanctions\n"; + echo "

    Lors de la saisie de travail à faire, le texte par défaut proposé sera :
    \n"; + echo "
    \n"; + + echo "

    \n"; + echo "\n"; + echo "

    \n"; + + if(isset($message_mod_discipline)) {echo $message_mod_discipline;} + + echo "
    \n"; + echo "
    \n"; + + //echo "
    \n"; + echo "
    \n"; +} + +//============================================================================== + +$tab_statuts_barre=array('professeur', 'cpe', 'scolarite', 'administrateur', 'secours'); +if(in_array($_SESSION['statut'], $tab_statuts_barre)) { + // On affiche si c'est autorisé + if (getSettingValue("utiliserMenuBarre") != "no") { + $aff_checked=getPref($_SESSION['login'],"utiliserMenuBarre",""); + + echo "
    \n"; + echo add_token_field(); + + echo "
    \n"; + echo "Gérer la barre horizontale du menu\n"; + echo "\n"; + + if (getSettingValue("utiliserMenuBarre") == "yes") { + echo "

    \n"; + echo "\n"; + echo "\n"; + echo "

    \n"; + } + + echo "

    \n"; + echo "\n"; + echo "\n"; + echo "

    \n"; - if (getSettingValue("utiliserMenuBarre") == "yes") { echo "

    \n"; - echo "\n"; - echo "Ne pas utiliser la barre de menu horizontale.\n"; + echo "\n"; echo "

    \n"; + + echo "

    + La barre de menu horizontale allégée a une arborescence moins profonde pour que les menus 'professeurs' s'affichent plus rapidement au cas où le serveur serait saturé. +

    \n"; + + echo "
    \n"; + + if(isset($message_modifier_barre)) {echo $message_modifier_barre;} + + echo "
    \n"; + echo "
    \n"; + //echo "
    \n"; + echo "
    \n"; + } +} +//============================================================================== + +echo "
    \n"; +echo add_token_field(); +echo "
    + Gérer la hauteur de l'entête + +

    + + +

    +

    + + +

    \n"; + +echo "

    \n"; +echo "

    +\n"; + +if(isset($message_hauteur_header)) {echo $message_hauteur_header;} + +echo "

    NOTE : L'entête basse prend moins de place à l'écran.

    "; +echo " +
    +
    \n"; +//echo "
    \n"; +echo "
    \n"; + +//============================================================================== + +$tab_statuts_barre=array('professeur', 'cpe', 'scolarite', 'administrateur', 'autre', 'secours'); +if(in_array($_SESSION['statut'], $tab_statuts_barre)) { + echo "
    \n"; + echo add_token_field(); + + echo "
    \n"; + echo "Choix de l'encodage des CSV téléchargés\n"; + echo "\n"; + + $choix_encodage_csv=getPref($_SESSION['login'], "choix_encodage_csv", ""); + if($choix_encodage_csv=='') { + if($_SESSION['statut']=='administrateur') { + $choix_encodage_csv="ascii"; + } + else { + $choix_encodage_csv="windows-1252"; + } } echo "

    \n"; - echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; echo "

    \n"; echo "

    \n"; - echo "\n"; - echo "\n"; + echo "\n"; echo "

    \n"; - echo "

    - La barre de menu horizontale allégée a une arborescence moins profonde pour que les menus 'professeurs' s'affichent plus rapidement au cas où le serveur serait saturé. -

    \n"; + echo "

    \n"; + echo "\n"; + echo "\n"; + echo "

    \n"; echo "
    \n"; + + if(isset($message_choixEncodageCsv)) { + echo $message_choixEncodageCsv; + } echo "
    \n"; echo "
    \n"; - echo "
    \n"; + //echo "
    \n"; + echo "
    \n"; } -echo "
    \n"; -echo add_token_field(); +//============================================================================== -echo "
    \n"; -echo "Choix de l'encodage des CSV téléchargés\n"; -echo "\n"; +if(count($tab_sound)>=0) { + $footer_sound_actuel=getPref($_SESSION['login'],'footer_sound',""); -$choix_encodage_csv=getPref($_SESSION['login'], "choix_encodage_csv", ""); -if($choix_encodage_csv=='') { - if($_SESSION['statut']=='administrateur') { - $choix_encodage_csv="ascii"; + echo "\n"; + echo add_token_field(); + + echo "
    + Choix de l'alerte sonore de fin de session +

    + Ecouter le son choisi +

    \n"; + + echo " +

    \n"; + + if(isset($message_footer_sound)) { + echo $message_footer_sound; + } + + echo "
    +\n"; + + for($i=0;$i + +\n"; + } + + echo " +"; -echo "

    \n"; -echo "\n"; -//echo "\n"; -echo "\n"; -echo "

    \n"; - -echo "

    \n"; -echo "\n"; -echo "\n"; -echo "

    \n"; - -echo "

    \n"; -echo "\n"; -echo "\n"; -echo "

    \n"; - -echo "
    \n"; -echo "
    \n"; -echo "\n"; -echo "
    \n"; + //echo "
    \n"; + +} + + +echo js_checkbox_change_style('checkbox_change', 'texte_', 'y'); + +echo " +"; +echo "
    \n"; +//============================================================================== // Journal des connexions echo "\n"; From 887becbf2bb980974f167d3fb595e367cf822731 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 21 Jul 2012 14:42:37 +0200 Subject: [PATCH 0070/1150] =?UTF-8?q?Modification=20pour=20filtrer=20les?= =?UTF-8?q?=20types=20de=20semaines=20=C3=A0=20retenir.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- edt_organisation/edt_xml.php | 65 +++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 4 deletions(-) diff --git a/edt_organisation/edt_xml.php b/edt_organisation/edt_xml.php index 9843a53d2..100eb3e08 100644 --- a/edt_organisation/edt_xml.php +++ b/edt_organisation/edt_xml.php @@ -214,6 +214,7 @@ $i=0; $tab_clas_ou_grp=array(); + $tab_semaine=array(); foreach ($edt_xml->children() as $cours) { //echo("

    Structure
    "); @@ -265,10 +266,15 @@ if((isset($tab_cours[$i]["enfant"]["classe"]))&&($tab_cours[$i]["enfant"]["classe"]!="")) { if(!in_array($tab_cours[$i]["enfant"]["classe"], $tab_clas_ou_grp)) {$tab_clas_ou_grp[]=$tab_cours[$i]["enfant"]["classe"];} } + + if((isset($tab_cours[$i]["enfant"]["frequence"]))&&($tab_cours[$i]["enfant"]["frequence"]!="")) { + if(!in_array($tab_cours[$i]["enfant"]["frequence"], $tab_semaine)) {$tab_semaine[]=$tab_cours[$i]["enfant"]["frequence"];} + } } } sort($tab_clas_ou_grp); + sort($tab_semaine); echo "

    Il y a probablement plus de groupes que de classes.
    Cochez tous les groupes en cliquant sur le lien Tout cocher des groupes, puis cochez une par une les classes dans la colonne classe.

    \n"; @@ -314,8 +320,33 @@ } echo "\n"; + + if(count($tab_semaine)>0) { + + $tab_sem=array(); + $sql="SELECT * FROM tempo5 WHERE info='type_edt_semaine';"; + $res_sem=mysql_query($sql); + if(mysql_num_rows($res_sem)>0) { + while($lig_sem=mysql_fetch_object($res_sem)) { + $tab_sem[]=$lig_sem->texte; + } + } + + echo "
    \n"; + echo "

    Il est également nécessaire pour la suite d'identifier les semaines déclarées dans Définition des types de semaines.

    \n"; + echo "

    Quelles types de semaines particuliers faut-il retenir ?

    \n"; + echo "

    "; + for($j=0;$j
    \n"; + } + echo "

    \n"; + echo "

    Ne pas cocher des codes correspondant à des cours ayant lieu chaque semaine.

    \n"; + } + echo "\n"; - echo "\n"; + echo "

    \n"; echo "\n"; echo "\n"; + echo "


    \n"; } if($step==2) { @@ -377,6 +409,15 @@ function CocheColonne(col) { else {$tab_clas[]=$clas_ou_grp[$i];} } + $sql="DELETE FROM tempo5 WHERE info='type_edt_semaine';"; + $menage=mysql_query($sql); + + $tab_sem=isset($_POST['tab_sem']) ? $_POST['tab_sem'] : array(); + for($i=0;$i0) { echo "

    Recherche des classes associées aux groupes :

    \n"; @@ -422,7 +463,7 @@ function CocheColonne(col) { } echo "\n"; echo "\n"; - echo "\n"; + echo "

    \n"; echo "\n"; echo "\n"; + echo "


    \n"; } else { @@ -487,6 +529,19 @@ function CocheClasses(mode) { echo "

    \n"; echo "Traitement du fichier...
    \n"; + $tab_sem=array(); + $sql="SELECT * FROM tempo5 WHERE info='type_edt_semaine';"; + $res_sem=mysql_query($sql); + if(mysql_num_rows($res_sem)>0) { + while($lig_sem=mysql_fetch_object($res_sem)) { + $tab_sem[]=$lig_sem->texte; + } + } +/* +echo "

    ";
    +echo print_r($tab_sem);
    +echo "
    "; +*/ $nb_cours=0; $nb_lignes=0; $fich=fopen("../temp/".$tempdir."/g_edt_2.csv", "w+"); @@ -612,7 +667,8 @@ function CocheClasses(mode) { $ligne.=";"; // Freq - if(isset($tab_cours[$i]["enfant"]["frequence"])) { + //if(isset($tab_cours[$i]["enfant"]["frequence"])) { + if((isset($tab_cours[$i]["enfant"]["frequence"]))&&(in_array($tab_cours[$i]["enfant"]["frequence"],$tab_sem))) { $ligne.=$tab_cours[$i]["enfant"]["frequence"]; } $ligne.=";"; @@ -676,7 +732,8 @@ function CocheClasses(mode) { $ligne.=";"; // Freq - if(isset($tab_cours[$i]["enfant"]["frequence"])) { + //if(isset($tab_cours[$i]["enfant"]["frequence"])) { + if((isset($tab_cours[$i]["enfant"]["frequence"]))&&(in_array($tab_cours[$i]["enfant"]["frequence"],$tab_sem))) { $ligne.=$tab_cours[$i]["enfant"]["frequence"]; } $ligne.=";"; From 52a09497432297c1991579c10806ed5fd83e31a4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 22 Jul 2012 22:38:59 +0200 Subject: [PATCH 0071/1150] =?UTF-8?q?Amelioration=20JS=20de=20la=20d=C3=A9?= =?UTF-8?q?tection=20des=20associations.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- edt_organisation/edt_xml.php | 216 +++++++++++++++++++++++++++++++++-- 1 file changed, 208 insertions(+), 8 deletions(-) diff --git a/edt_organisation/edt_xml.php b/edt_organisation/edt_xml.php index 100eb3e08..7cd850aed 100644 --- a/edt_organisation/edt_xml.php +++ b/edt_organisation/edt_xml.php @@ -116,6 +116,7 @@ if(!isset($step)) { + echo "

    Uploader un nouveau fichier

    \n"; echo "
    \n"; echo add_token_field(); echo "

    Veuillez fournir le fichier EXP_COURS.xml :
    \n"; @@ -125,6 +126,34 @@ echo "

    \n"; echo "
    \n"; + $dest_file="../temp/".$tempdir."/edt.xml"; + if(file_exists($dest_file)) { + $sql="SELECT texte AS col1 FROM tempo5 WHERE info='groupe' OR info='classe';"; + $res_grp=mysql_query($sql); + if(mysql_num_rows($res_grp)>0) { + echo "
    \n"; + echo "

    Ou repartir du fichier précédemment uploadé.

    \n"; + } + } + + echo "

    NOTES :

    \n"; + echo "

    +Pour générer le fichier EXP_COURS.xml à partir du logiciel EDT de la société Index Education :
    +
    +Conseils préliminaires :
    +- Réaliser l'exportation depuis la version complète d'EDT installée généralement sur le poste du chef d'établissement ou/et de l'adjoint et non depuis la version temporaire ou la version de consultation.
    +- S'assurer que les noms des groupes soient suffisamment explicites quant aux classes des élèves qui les composent afin de faciliter l'établissement des correspondances lors de l'importation dans Gepi (ex : soit un groupe d'ESP2 avec des élèves de 3ème 1 et de 3ème 2 et un autre avec des élèves de 3ème 3 et de 3ème 4 ; EDT va dénommer ces groupes 3ESP2GR.1 et 3ESP2GR.2 par défaut ; une appellation du genre 3_1&2ESP2 et 3_3&4ESP2 sera plus pratique).
    +
    +1. Se placer dans l'onglet Cours et extraire les cours pour lesquels on désire générer une exportation. Si l'on veut exporter l'ensemble de l'emploi du temps, faire une extraction complète (Extraire > Tout extraire).
    +2. Se rendre dans Fichiers > Imports/Exports > Autres > Exporter un fichier texte
    +3. Dans la fenêtre qui apparaît, les paramètres par défaut sont corrects mais s'assurer quand même des suivants :
    +- Type de données à exporter : Cours
    +- Sélection du type d'export : Format XML (*.xml)
    +- Choix de la période : Année complète
    +- Cocher la case Visualiser toutes les données
    +4. Cliquer sur Exporter
    +5. EDT génère le fichier EXP_COURS.xml dont Gepi aura besoin
    +

    \n"; } else { echo " | Retour à l'upload du fichier"; @@ -292,7 +321,7 @@ echo "\n"; $alt=1; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; @@ -300,21 +329,34 @@ echo "Tout cocher"; echo "\n"; echo "\n"; + + echo "\n"; + //echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + for($i=0;$i\n"; echo "\n"; - echo "\n"; - echo "\n"; echo "\n"; @@ -342,7 +384,7 @@ echo "/>
    \n"; } echo "

    \n"; - echo "

    Ne pas cocher des codes correspondant à des cours ayant lieu chaque semaine.

    \n"; + echo "

    Ne pas cocher des codes correspondant à des cours ayant lieu chaque semaine.

    \n"; } echo "\n"; @@ -365,7 +407,53 @@ function CocheColonne(col) { } } } + + calcule_effectifs(); + mise_en_gras_ou_pas(); + } + + function mise_ligne_en_gras_ou_pas(i) { + //alert(1); + if((document.getElementById('ligne_'+i))&&(document.getElementById('type_clas_'+i))) { + //alert(2); + if(document.getElementById('type_clas_'+i).checked==true) { + //alert(3); + document.getElementById('ligne_'+i).style.fontWeight='bold'; + document.getElementById('ligne_'+i).style.backgroundColor='yellow'; + } + else { + document.getElementById('ligne_'+i).style.fontWeight=''; + document.getElementById('ligne_'+i).style.backgroundColor=''; + } + } + calcule_effectifs(); } + + function calcule_effectifs() { + var eff_clas=0; + var eff_grp=0; + var i; + for(i=0;i<$i;i++) { + if((document.getElementById('type_clas_'+i))&&(document.getElementById('type_clas_'+i).checked==true)) { + eff_clas++; + } + else { + eff_grp++; + } + } + document.getElementById('total_clas').innerHTML=eff_clas; + document.getElementById('total_grp').innerHTML=eff_grp; + } + + function mise_en_gras_ou_pas() { + //alert('i='+$i); + for(i=0;i<$i;i++) { + //if(i<10) {alert('i='+i)} + mise_ligne_en_gras_ou_pas(i); + } + } + + mise_en_gras_ou_pas(); \n"; echo "


    \n"; } @@ -396,6 +484,7 @@ function CocheColonne(col) { } } + $chaine_clas=""; $clas_ou_grp=isset($_POST['clas_ou_grp']) ? $_POST['clas_ou_grp'] : array(); $type=isset($_POST['type']) ? $_POST['type'] : array(); //echo "count(\$clas_ou_grp)=".count($clas_ou_grp)."
    "; @@ -406,7 +495,14 @@ function CocheColonne(col) { $sql="INSERT INTO tempo5 SET texte='".mysql_real_escape_string($clas_ou_grp[$i])."', info='".$type[$i]."';"; $insert=mysql_query($sql); if($type[$i]=='groupe') {$tab_grp[]=$clas_ou_grp[$i];} - else {$tab_clas[]=$clas_ou_grp[$i];} + else { + $tab_clas[]=$clas_ou_grp[$i]; + + if($chaine_clas!="") { + $chaine_clas.=", "; + } + $chaine_clas.="'".$clas_ou_grp[$i]."'"; + } } $sql="DELETE FROM tempo5 WHERE info='type_edt_semaine';"; @@ -428,7 +524,10 @@ function CocheColonne(col) { echo "
    Nom trouvéNom trouvéClasse
    "; echo "Tout cocher"; echo "
    Nom trouvé
    ".$tab_clas_ou_grp[$i]; echo "\n"; echo "\n"; + echo "
    \n"; $alt=1; echo "\n"; - echo "\n"; + echo "\n"; + echo ""; echo "\n"; echo "\n"; $cpt=0; + $chaine_clas_num=""; for($i=0;$i\n"; - echo "\n"; + echo "\n"; echo "\n"; } + if($chaine_clas_num!="") {$chaine_clas_num.=", ";} + $chaine_clas_num.="'$cpt'"; echo "
    GroupeGroupe "; + //echo ""; + echo "EffectifClasses associées
    "; echo "Cocher toutes les classes / Décocher toutes les classes"; @@ -436,17 +535,25 @@ function CocheColonne(col) { echo "
    ".$tab_grp[$i]; + echo ""; + echo "".$tab_grp[$i].""; echo "\n"; + echo " "; + echo "\n"; + echo "Effectif calculé dynamiquement"; echo "\n"; + if($chaine_clas_num!="") {$chaine_clas_num.=", ";} + $chaine_clas_num.="'$cpt'"; for($j=0;$j\n"; echo "\n"; echo "
    \n"; echo "\n"; echo "

    \n"; @@ -473,6 +582,7 @@ function CocheColonne(col) { echo "\n"; echo "


    \n"; From bcacd325248c1013a3f430225df33983448e6389 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 24 Jul 2012 10:41:17 +0200 Subject: [PATCH 0072/1150] =?UTF-8?q?Ajout=20d'un=20droit=20pour=20restrei?= =?UTF-8?q?ndre=20l'acc=C3=A8s=20des=20profs=20aux=20EDT=20des=20autres=20?= =?UTF-8?q?profs.=20Ajout=20d'espacements=20dans=20le=20param=C3=A9trage?= =?UTF-8?q?=20des=20droits.=20Nettoyage=20des=20commentaires.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- edt_organisation/voir_edt.php | 9 +- edt_organisation/voir_edt_view.php | 6 +- gestion/droits_acces.php | 1831 ++++------------- .../origine/gestion/droit_acces_template.php | 10 +- 4 files changed, 365 insertions(+), 1491 deletions(-) diff --git a/edt_organisation/voir_edt.php b/edt_organisation/voir_edt.php index 033f404a8..a231c696a 100644 --- a/edt_organisation/voir_edt.php +++ b/edt_organisation/voir_edt.php @@ -110,7 +110,14 @@ $visioedt = "prof1"; } } +elseif (($_SESSION['statut'] == "professeur") AND ($visioedt == "prof1") AND (getSettingValue('AccesProf_EdtProfs')=='no')) { + $login_edt = $_SESSION['login']; + $_GET["login_edt"] = $login_edt; + $_GET["type_edt_2"] = "prof"; + $type_edt_2 = "prof"; + $visioedt = "prof1"; +} // =================== Construire les emplois du temps if(isset($login_edt)){ @@ -237,4 +244,4 @@ require_once("./voir_edt_view.php"); require_once("../lib/footer.inc.php"); -?> \ No newline at end of file +?> diff --git a/edt_organisation/voir_edt_view.php b/edt_organisation/voir_edt_view.php index 09b27146a..bc74d9993 100644 --- a/edt_organisation/voir_edt_view.php +++ b/edt_organisation/voir_edt_view.php @@ -77,7 +77,9 @@ // ======================= AFFICHAGE DU SELECTEUR if (isset($visioedt) AND $visioedt == "prof1") { - require_once("./voir_edt_prof.php"); + if (($_SESSION['statut'] != "professeur") OR (($visioedt == "prof1") AND (getSettingValue('AccesProf_EdtProfs')!='no'))) { + require_once("./voir_edt_prof.php"); + } } elseif (isset($visioedt) AND $visioedt == "salle1") { @@ -106,4 +108,4 @@ } echo ''; -?> \ No newline at end of file +?> diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 71bb62122..ef5e516df 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -86,1023 +86,162 @@ check_token(false); } -/* - -if (isset($_POST['OK'])) { - if (isset($_POST['GepiRubConseilProf'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("GepiRubConseilProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiRubConseilProf !"; - } - - if (isset($_POST['CommentairesTypesPP'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("CommentairesTypesPP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de CommentairesTypesPP !"; - } - - if (isset($_POST['GepiRubConseilScol'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("GepiRubConseilScol", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiRubConseilScol !"; - } - - if (isset($_POST['CommentairesTypesScol'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("CommentairesTypesScol", $temp)) { - $msg .= "Erreur lors de l'enregistrement de CommentairesTypesScol !"; - } - - if (isset($_POST['GepiProfImprBul'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiProfImprBul", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiProfImprBul !"; - } - - if (isset($_POST['GepiProfImprBulSettings'])) { - $temp = "yes"; - } else { - $temp ="no"; - } - if (!saveSetting("GepiProfImprBulSettings", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiProfImprBulSettings !"; - } - - - if (isset($_POST['GepiAccesRestrAccesAppProfP'])) { - $temp = "yes"; - } else { - $temp ="no"; - } - if (!saveSetting("GepiAccesRestrAccesAppProfP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesRestrAccesAppProfP !"; - } - - - if (isset($_POST['GepiAdminImprBulSettings'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAdminImprBulSettings", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAdminImprBulSettings !"; - } - - if (isset($_POST['GepiScolImprBulSettings'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiScolImprBulSettings", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiScolImprBulSettings !"; - } - - if (isset($_POST['GepiAccesReleveScol'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveScol", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveScol !"; - } - - if (isset($_POST['GepiAccesReleveCpe'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveCpe", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveCpe !"; - } - - if (isset($_POST['GepiAccesCdtCpeRestreint'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCdtCpeRestreint", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCdtCpeRestreint !"; - } - - if (isset($_POST['GepiAccesCdtCpe'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCdtCpe", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCdtCpe !"; - } - - if (isset($_POST['GepiAccesCdtScol'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCdtScol", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCdtScol !"; - } - - if (isset($_POST['GepiAccesCdtScolRestreint'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCdtScolRestreint", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCdtScolRestreint !"; - } - - if (isset($_POST['GepiAccesReleveProfP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveProfP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveProfP !"; - } - if (isset($_POST['GepiAccesReleveProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveProf !"; - } - if (isset($_POST['GepiAccesReleveProfTousEleves'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveProfTousEleves", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveProf !"; - } - if (isset($_POST['GepiAccesReleveProfToutesClasses'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveProfToutesClasses", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveProfToutesClasses !"; - } - if (isset($_POST['GepiAccesMoyennesProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesMoyennesProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesMoyennesProf !"; - } - if (isset($_POST['GepiAccesMoyennesProfTousEleves'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesMoyennesProfTousEleves", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesMoyennesProfTousEleves !"; - } - if (isset($_POST['GepiAccesMoyennesProfToutesClasses'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesMoyennesProfToutesClasses", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesMoyennesProfToutesClasses !"; - } - if (isset($_POST['GepiAccesReleveEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveEleve !"; - } - -if (isset($_POST['GepiAccesOptionsReleveEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesOptionsReleveEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesOptionsReleveEleve !"; - } - - if (isset($_POST['GepiAccesCahierTexteEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCahierTexteEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCahierTexteEleve !"; - } - - if (isset($_POST['GepiAccesReleveParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesReleveParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesReleveParent !"; - } - - if (isset($_POST['GepiAccesOptionsReleveParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesOptionsReleveParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesOptionsReleveParent !"; - } - - if (isset($_POST['GepiAccesCahierTexteParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCahierTexteParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCahierTexteParent !"; - } - - if (isset($_POST['GepiPasswordReinitProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitProf !"; - } - - if (isset($_POST['GepiPasswordReinitScolarite'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitScolarite", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitScolarite !"; - } - - if (isset($_POST['GepiPasswordReinitCpe'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitCpe", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitCpe !"; - } - - if (isset($_POST['GepiPasswordReinitAdmin'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitAdmin", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitAdmin !"; - } - - if (isset($_POST['GepiPasswordReinitEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitEleve !"; - } - - if (isset($_POST['GepiPasswordReinitParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiPasswordReinitParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiPasswordReinitParent !"; - } - - if (isset($_POST['GepiAccesEquipePedaEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEquipePedaEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEquipePedaEleve !"; - } - - if (isset($_POST['GepiAccesEquipePedaParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEquipePedaParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEquipePedaParent !"; - } - - if (isset($_POST['GepiAccesEquipePedaEmailEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEquipePedaEmailEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEquipePedaEmailEleve !"; - } - - if (isset($_POST['GepiAccesCpePPEmailEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCpePPEmailEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCpePPEmailEleve !"; - } - - if (isset($_POST['GepiAccesEquipePedaEmailParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEquipePedaEmailParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEquipePedaEmailParent !"; - } - - if (isset($_POST['GepiAccesCpePPEmailParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesCpePPEmailParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesCpePPEmailParent !"; - } - if (isset($_POST['GepiAccesBulletinSimpleProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimpleProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimpleProf !"; - } - if (isset($_POST['GepiAccesBulletinSimpleProfTousEleves'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimpleProfTousEleves", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimpleProfTousEleves !"; - } - if (isset($_POST['GepiAccesBulletinSimpleProfToutesClasses'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimpleProfToutesClasses", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimpleProfToutesClasses !"; - } - if (isset($_POST['GepiAccesBulletinSimpleParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimpleParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimpleParent !"; - } - - if (isset($_POST['GepiAccesBulletinSimpleEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimpleEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimpleEleve !"; - } - - if (isset($_POST['GepiAccesGraphEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesGraphEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesGraphEleve !"; - } - - if (isset($_POST['GepiAccesGraphParent'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesGraphParent", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesGraphParent !"; - } - - - if (isset($_POST['GepiAccesVisuToutesEquipProf'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("GepiAccesVisuToutesEquipProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesVisuToutesEquipProf !"; - } - - if (isset($_POST['GepiAccesVisuToutesEquipScol'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("GepiAccesVisuToutesEquipScol", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesVisuToutesEquipScol !"; - } - - if (isset($_POST['GepiAccesVisuToutesEquipCpe'])) { - $temp = 'yes'; - } else { - $temp = 'no'; - } - if (!saveSetting("GepiAccesVisuToutesEquipCpe", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesVisuToutesEquipCpe !"; - } - - // Années antérieures - if (isset($_POST['AAProfTout'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAProfTout", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAProfTout !"; - } - - if (isset($_POST['AAProfPrinc'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAProfPrinc", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAProfPrinc !"; - } - - if (isset($_POST['AAProfClasses'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAProfClasses", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAProfClasses !"; - } - - if (isset($_POST['AAProfGroupes'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAProfGroupes", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAProfGroupes !"; - } - - if (isset($_POST['AACpeTout'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AACpeTout", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AACpeTout !"; - } - - if (isset($_POST['AACpeResp'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AACpeResp", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AACpeResp !"; - } - - if (isset($_POST['AAScolTout'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAScolTout", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAScolTout !"; - } - - if (isset($_POST['AAScolResp'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAScolResp", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAScolResp !"; - } - - if (isset($_POST['AAResponsable'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAResponsable", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAResponsable !"; - } - - if (isset($_POST['AAEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("AAEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de AAEleve !"; - } - - - if (isset($_POST['GepiAccesModifMaPhotoProfesseur'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesModifMaPhotoProfesseur", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesModifMaPhotoProfesseur !"; - } - - if (isset($_POST['GepiAccesModifMaPhotoAdministrateur'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesModifMaPhotoAdministrateur", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesModifMaPhotoAdministrateur !"; - } - - if (isset($_POST['GepiAccesModifMaPhotoScolarite'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesModifMaPhotoScolarite", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesModifMaPhotoScolarite !"; - } - - if (isset($_POST['GepiAccesModifMaPhotoCpe'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesModifMaPhotoCpe", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesModifMaPhotoCpe !"; - } - - if (isset($_POST['GepiAccesModifMaPhotoEleve'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesModifMaPhotoEleve", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesModifMaPhotoEleve !"; - } - - if (isset($_POST['GepiAccesGestElevesProfP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesGestElevesProfP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesGestElevesProfP !"; - } - - if (isset($_POST['GepiAccesGestPhotoElevesProfP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesGestPhotoElevesProfP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesGestPhotoElevesProfP !"; - } - - - if (isset($_POST['GepiAccesBulletinSimplePP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesBulletinSimplePP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesBulletinSimplePP !"; - } - - - - if (isset($_POST['appreciations_types_profs'])) { - if (!saveSetting("appreciations_types_profs", 'yes')) { - $msg .= "Erreur lors de l'enregistrement de l'autorisation d'utilisation d'appréciations-types pour les ".$gepiSettings['denomination_professeurs']." !"; - } - } - else{ - if (!saveSetting("appreciations_types_profs", 'no')) { - $msg .= "Erreur lors de l'enregistrement de l'interdiction d'utilisation d'appréciations-types pour les ".$gepiSettings['denomination_professeurs']." !"; - } - } - - if (isset($_POST['GepiAccesSaisieEctsProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesSaisieEctsProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesSaisieEctsProf !"; - } - - if (isset($_POST['GepiAccesRecapitulatifEctsProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesRecapitulatifEctsProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesRecapitulatifEctsProf !"; - } - - if (isset($_POST['GepiAccesSaisieEctsPP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesSaisieEctsPP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesSaisieEctsPP !"; - } - - if (isset($_POST['GepiAccesSaisieEctsScolarite'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesSaisieEctsScolarite", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesSaisieEctsScolarite !"; - } - - if (isset($_POST['GepiAccesRecapitulatifEctsScolarite'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesRecapitulatifEctsScolarite", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesRecapitulatifEctsScolarite !"; - } - - - if (isset($_POST['GepiAccesEditionDocsEctsPP'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEditionDocsEctsPP", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEditionDocsEctsPP !"; - } - - if (isset($_POST['GepiAccesEditionDocsEctsScolarite'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesEditionDocsEctsScolarite", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesEditionDocsEctsScolarite !"; - } - - if (isset($_POST['GepiAccesGestElevesProf'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("GepiAccesGestElevesProf", $temp)) { - $msg .= "Erreur lors de l'enregistrement de GepiAccesGestElevesProf !"; - } - - if (isset($_POST['autoriser_correction_bulletin'])) { - $temp = "y"; - } else { - $temp = "n"; - } - if (!saveSetting("autoriser_correction_bulletin", $temp)) { - $msg .= "Erreur lors de l'enregistrement de autoriser_correction_bulletin!"; - } - - if(getSettingValue('active_mod_discipline')=='y') { - if (isset($_POST['visuDiscProfClasses'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("visuDiscProfClasses", $temp)) { - $msg .= "Erreur lors de l'enregistrement de visuDiscProfClasses !"; - } - - if (isset($_POST['visuDiscProfGroupes'])) { - $temp = "yes"; - } else { - $temp = "no"; - } - if (!saveSetting("visuDiscProfGroupes", $temp)) { - $msg .= "Erreur lors de l'enregistrement de visuDiscProfGroupes !"; - } - } - - $tab_droits_ele_trombi=array('GepiAccesEleTrombiTousEleves', -'GepiAccesEleTrombiElevesClasse', -'GepiAccesEleTrombiPersonnels', -'GepiAccesEleTrombiProfsClasse'); - for($i=0;$i -

    >Retour Retour

    +// DROITS ENSEIGNANT -?> -
    - - - - - - - - - */ + $titreItem='GepiAccesRecapitulatifEctsProf'; $texteItem="a accès aux récapitulatifs globaux des crédits ECTS pour ses classes."; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; -if(getSettingValue('active_mod_ooo')=='y') { - $titreItem='OOoUploadProf'; - $texteItem="a accès à l'upload de fichiers modèles OpenOffice personnels."; - if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) - $tbs_message = 'Erreur lors du chargement de '.$titreItem; -} //======================================================================================= -/* - * - * - * - * - - - - - - */ $titreItem='GepiAccesEditionDocsEctsPP'; $texteItem="peut éditer les relevés ECTS pour sa classe"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +//+++++++++++++++++++++++++++ +$titreItem=''; +$texteItem=""; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; $titreItem='modExbPP'; $texteItem="peut créer des examens blancs pour les classes dont il est ".getSettingValue('gepi_prof_suivi'); if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +//======================================================================================= -/* +// DROITS SCOLARITE - * - - - - - - - - */ $titreItem='GepiAccesModifMaPhotoAdministrateur'; $texteItem="a le droit d'envoyer/modifier lui-même sa photo dans 'Gérer mon compte'"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; -/* - - - - - - - - - -

    - - -

    -
    - - * - * - */ +//======================================================================================= $tbs_message = $droitAffiche->get_erreurs(); diff --git a/templates/origine/gestion/droit_acces_template.php b/templates/origine/gestion/droit_acces_template.php index 6ca6aff2b..f6af38f5c 100644 --- a/templates/origine/gestion/droit_acces_template.php +++ b/templates/origine/gestion/droit_acces_template.php @@ -132,8 +132,13 @@
      get_item() as $AfficheItem){ - if(my_strtolower($AfficheItem['statut']) == my_strtolower($StatutItem)){ - + //if(my_strtolower($AfficheItem['statut']) == my_strtolower($StatutItem)){ + if(my_strtolower($AfficheItem['statut']) == my_strtolower($StatutItem)) { + // Pour faire des rubriques/espaces + if($AfficheItem['name']=='') { + echo "
      \n"; + } + else { ?>
    • Date: Tue, 24 Jul 2012 10:43:31 +0200 Subject: [PATCH 0073/1150] =?UTF-8?q?Pr=C3=A9cision=20ajout=20sur=20EDT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 14d8c72aa..d4d009ae0 100644 --- a/changelog.txt +++ b/changelog.txt @@ -19,6 +19,7 @@ Gepi-1.6.2 (Version de développement) (bulletins PDF et HTML). - Cahiers de textes : Possibilité d'inclure les documents joints dans l'export ZIP. - Abs2 : Possibilité de cocher les absences sur le plan de classe. +- Emplois du temps : Possibilité de restreindre l'accès prof aux EDT des autres profs. - ... Gepi-1.6.1 (10/06/2012) From bfe5b182741ff167d25edb659d4d02aa61deeefb Mon Sep 17 00:00:00 2001 From: Thomas Belliard Date: Tue, 24 Jul 2012 16:44:53 +0300 Subject: [PATCH 0074/1150] =?UTF-8?q?Debug=20load=20des=20donn=C3=A9es=20r?= =?UTF-8?q?esponsables=20depuis=20Scribe=20NG.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init_scribe_ng/etape3.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/init_scribe_ng/etape3.php b/init_scribe_ng/etape3.php index 03c3ecf32..8ea873a12 100644 --- a/init_scribe_ng/etape3.php +++ b/init_scribe_ng/etape3.php @@ -117,7 +117,7 @@ $resp->setMel($respemail); - $resp->setAdresseId($pers_id); + $resp->setResponsableEleveId($pers_id); // On créé l'adresse associée @@ -131,7 +131,7 @@ if ($resp_addr && $test_adr == 0) { $adr = new Adresse(); - $adr->setAdresseId($pers_id); + $adr->setId($pers_id); $adr->setAdr1($resp_addr); $adr->setAdr2(''); $adr->setAdr3(''); @@ -255,8 +255,8 @@ else { // Affichage de la page des explications de l'etape 3 (aucune donnee postee) // La troisieme étape consiste a importer les responsables d'eleves, les associer a leur(s) eleve(s) - echo "

      L'étape 3 vous permet d'importer les reponsables d'élève et de les associer à leur(s) élève(s).

      "; - echo "

      Les données concernant les reponsables d'élèves actuellement en base seront remplacées par ces nouvelles données

      "; + echo "

      L'étape 3 vous permet d'importer les responsables d'élève et de les associer à leur(s) élève(s).

      "; + echo "

      Les données concernant les responsables d'élèves actuellement en base seront remplacées par ces nouvelles données

      "; // On test si les tables dans lesquelles on va importer sont vides if ((!is_table_vide("responsables2")) || (!is_table_vide("resp_pers")) || (!is_table_vide("resp_adr"))) { From 5fa54a11714b0c05e9aea02a56389bd688c6dc26 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 24 Jul 2012 17:27:06 +0200 Subject: [PATCH 0075/1150] =?UTF-8?q?Correctif=20sur=20les=20groupes=20ass?= =?UTF-8?q?oci=C3=A9s=20=C3=A0=20aucune=20classe=20(par=20exemple=20AID)?= =?UTF-8?q?=20et=20autres=20modifs=20ergo.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- edt_organisation/edt_xml.php | 217 +++++++++++++++++++++++++---------- 1 file changed, 155 insertions(+), 62 deletions(-) diff --git a/edt_organisation/edt_xml.php b/edt_organisation/edt_xml.php index 7cd850aed..f2456fdf1 100644 --- a/edt_organisation/edt_xml.php +++ b/edt_organisation/edt_xml.php @@ -49,7 +49,7 @@ } //**************** FIN EN-TETE ***************** - $debug_import="n"; + $debug_import="y"; // On va uploader les fichiers XML dans le tempdir de l'utilisateur (administrateur, ou scolarité pour les màj Sconet) $tempdir=get_user_temp_directory(); @@ -317,6 +317,15 @@ } } + $tab_classes_base=array(); + $sql="SELECT classe FROM classes;"; + $res_classes_base=mysql_query($sql); + if(mysql_num_rows($res_classes_base)>0) { + while($lig_classes_base=mysql_fetch_object($res_classes_base)) { + $tab_classes_base[]=$lig_classes_base->classe; + } + } + echo "
      \n"; echo "\n"; $alt=1; @@ -344,15 +353,18 @@ echo "\n"; echo "\n"; echo "\n"; } diff --git a/cahier_texte/index.php b/cahier_texte/index.php index 9a39e01e6..78b4d2465 100644 --- a/cahier_texte/index.php +++ b/cahier_texte/index.php @@ -1,7 +1,7 @@ "; - if ($group["id"] == $current_group["id"]) { - echo "

      " . $group["description"] . " - ("; - $str = null; - foreach ($group["classes"]["classes"] as $classe) { - $str .= $classe["classe"] . ", "; - } - $str = mb_substr($str, 0, -2); - echo $str . ") 

      \n"; - } else { - echo ""; - echo ""; - echo $group["name"] . " - ("; - $str = null; - foreach ($group["classes"]["classes"] as $classe) { - $str .= $classe["classe"] . ", "; - } - $str = mb_substr($str, 0, -2); - echo $str . ") \n"; - } - //echo "\n"; - if ($a == 2) { - echo "
      \n"; - $a = 1; - } else { + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$group['id']."' AND domaine='cahier_texte' AND visible='n';"; + //echo "$sql
      \n"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + //echo ""; + if ($group["id"] == $current_group["id"]) { + echo "

      " . $group["description"] . " - ("; + $str = null; + foreach ($group["classes"]["classes"] as $classe) { + $str .= $classe["classe"] . ", "; + } + $str = mb_substr($str, 0, -2); + echo $str . ") 

      \n"; + } else { + echo ""; + echo ""; + echo $group["name"] . " - ("; + $str = null; + foreach ($group["classes"]["classes"] as $classe) { + $str .= $classe["classe"] . ", "; + } + $str = mb_substr($str, 0, -2); + echo $str . ") \n"; + } + //echo "
      \n"; + if ($a == 2) { + echo "
      \n"; + $a = 1; + } else { $a = 2; } + } } // Fin Affichage des différents groupes du professeur // ********************************************** diff --git a/cahier_texte_2/ajax_affichages_liste_notices.php b/cahier_texte_2/ajax_affichages_liste_notices.php index 30ffb324c..ded3ed7a3 100644 --- a/cahier_texte_2/ajax_affichages_liste_notices.php +++ b/cahier_texte_2/ajax_affichages_liste_notices.php @@ -100,11 +100,15 @@ \">"); echo "\n"; foreach ($utilisateur->getGroupes() as $group) { - echo "\n"; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$group->getId()."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo "\n"; + } } echo " "; echo "
      \"Lier\"
      "; diff --git a/cahier_texte_2/ajax_edition_compte_rendu.php b/cahier_texte_2/ajax_edition_compte_rendu.php index b81e010e6..d786ae145 100644 --- a/cahier_texte_2/ajax_edition_compte_rendu.php +++ b/cahier_texte_2/ajax_edition_compte_rendu.php @@ -180,11 +180,15 @@ echo "\n"; $groups = $utilisateur->getGroupes(); foreach ($groups as $group_iter) { - echo "\n"; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$group_iter->getId()."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo "\n"; + } } echo "  \n"; //fin affichage des groupes diff --git a/cahier_texte_2/ajax_edition_devoir.php b/cahier_texte_2/ajax_edition_devoir.php index 51aa5bdce..63eea570b 100644 --- a/cahier_texte_2/ajax_edition_devoir.php +++ b/cahier_texte_2/ajax_edition_devoir.php @@ -187,11 +187,15 @@ \">"); echo "\n"; foreach ($utilisateur->getGroupes() as $group_iter) { - echo "\n"; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$group_iter->getId()."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo "\n"; + } } echo "  "; diff --git a/cahier_texte_2/ajax_edition_notice_privee.php b/cahier_texte_2/ajax_edition_notice_privee.php index 6892ae30d..dc6f3125e 100644 --- a/cahier_texte_2/ajax_edition_notice_privee.php +++ b/cahier_texte_2/ajax_edition_notice_privee.php @@ -126,11 +126,15 @@ echo "\n"; $groups = $utilisateur->getGroupes(); foreach ($groups as $group_iter) { - echo "\n"; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$group_iter->getId()."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo "\n"; + } } echo "\n  \n"; //fin affichage des groupes diff --git a/cahier_texte_2/ajax_liste_notices_privees.php b/cahier_texte_2/ajax_liste_notices_privees.php index 63fa1b260..089ce01df 100644 --- a/cahier_texte_2/ajax_liste_notices_privees.php +++ b/cahier_texte_2/ajax_liste_notices_privees.php @@ -117,9 +117,13 @@ echo "\">\n"; foreach($groups as $current_group) { - echo "\n"; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$current_group['id']."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo "\n"; + } } echo "\n"; echo "
      \n"; diff --git a/cahier_texte_2/index.php b/cahier_texte_2/index.php index 109739d10..14776c92a 100644 --- a/cahier_texte_2/index.php +++ b/cahier_texte_2/index.php @@ -176,30 +176,34 @@ } $a = 1; - foreach($groups as $group) { - echo "getId()."' AND domaine='cahier_texte' AND visible='n';"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + echo ""; - - echo $group->getNameAvecClasses(); - echo " \n"; - - if ($a == 3) { - $a = 1; - } else { - $a = $a + 1; + ); + return false; + \">"; + + echo $group->getNameAvecClasses(); + echo " \n"; + + if ($a == 3) { + $a = 1; + } else { + $a = $a + 1; + } } } echo "Préparer une séquence entière"; diff --git a/groupes/add_group.php b/groupes/add_group.php index 8bd764c87..b47856598 100644 --- a/groupes/add_group.php +++ b/groupes/add_group.php @@ -39,10 +39,6 @@ die(); } -$tab_domaines=array('bulletins', 'cahier_notes'); -$tab_domaines_sigle=array('B', 'CN'); -$tab_domaines_texte=array('Bulletins', 'Cahiers de Notes'); - // Initialisation des variables utilisées dans le formulaire $reg_nom_groupe = ''; diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 5de13c0c3..da279a9a2 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -111,15 +111,7 @@ $priority_defaut = 5; //================================ -// Liste de domaines à déplacer par la suite dans global.inc ? -/* -$tab_domaines=array('bulletins', 'cahier_notes', 'absences', 'cahier_textes', 'edt'); -$tab_domaines_sigle=array('B', 'CN', 'Abs', 'CDT', 'EDT'); -$tab_domaines_texte=array('Bulletins', 'Cahiers de Notes', 'Absences', 'Cahiers De Textes', 'EDT'); -*/ -$tab_domaines=array('bulletins', 'cahier_notes'); -$tab_domaines_sigle=array('B', 'CN'); -$tab_domaines_texte=array('Bulletins', 'Cahiers de Notes'); +// Liste de domaines de visibilité des groupes déplacé dans global.inc.php //================================ $invisibilite_groupe=array(); for($loop=0;$loop'.$tmp_group['classlist_string'].')'; - $cpt_sous_menu++; + $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='".$tmp_group['id']."' AND domaine='cahier_texte' AND visible='n';"; + //echo "$sql
      \n"; + $test_grp_visib=mysql_query($sql); + if(mysql_num_rows($test_grp_visib)==0) { + $tmp_sous_menu[$cpt_sous_menu]['lien']='/cahier_texte/index.php?id_groupe='.$tmp_group['id'].'&year='.strftime("%Y").'&month='.strftime("%m").'&day='.strftime("%d").'&edit_devoir='; + $tmp_sous_menu[$cpt_sous_menu]['texte']=$tmp_group['name'].' ('.$tmp_group['classlist_string'].')'; + $cpt_sous_menu++; + } } if(getSettingValue('GepiCahierTexteVersion')==2) { $tmp_sous_menu[$cpt_sous_menu]['lien']='/cahier_texte_2/see_all.php'; From 6b5fb03de240f2bad2e686af0177e03f6bbc879d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 25 Jul 2012 14:30:58 +0200 Subject: [PATCH 0078/1150] =?UTF-8?q?Dispositif=20pour=20renommer=20les=20?= =?UTF-8?q?groupes=20qui=20ont=20la=20m=C3=AAme=20description=20(homonymes?= =?UTF-8?q?).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 149 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 148 insertions(+), 1 deletion(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index da279a9a2..1f7f98dd6 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -126,6 +126,119 @@ } //================================ +if (isset($_GET['ajouter_suffixes_noms_groupes'])) { + check_token(); + + $mode=isset($_GET['mode']) ? $_GET['mode'] : NULL; + if(!isset($mode)) { + $msg.="Mode de renommage invalide.
      "; + } + else { + $groups = get_groups_for_class($id_classe,"","n"); + + $alphabet=array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'); + $nb_renommages=0; + + $tab_grp_id_rech_homonyme=array(); + $tab_grp_descr_homonyme=array(); + $tab_grp_name=array(); + + // Récup de la liste des élèves de la classe toutes périodes confondues + $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$id_classe';"; + $res_eff_classe=mysql_query($sql); + $eff_classe=mysql_num_rows($res_eff_classe); + + foreach ($groups as $group) { + if(isset($tab_grp_id_rech_homonyme[$group["description"]])) { + $tab_grp_descr_homonyme[]=$group["description"]; + } + $tab_grp_id_rech_homonyme[$group["description"]][]=$group["id"]; + $tab_grp_name[$group["id"]]=$group["name"]; + } + + for($i=0;$i$max_eff) { + $max_eff=$eff; + $id_grp_max_eff=$id_groupe_courant; + } + $tab_eff_grp[$id_groupe_courant]=$eff; + } + + for($j=0;$j\n"; + } + else { + $nb_renommages++; + } + } + } + + if($nb_renommages>0) { + $msg.="$nb_renommages renommage(s) effectué(s).
      \n"; + } + + unset($tab_grp_id_rech_homonyme); + unset($tab_grp_descr_homonyme); + } +} + if (isset($_POST['is_posted'])) { check_token(); @@ -519,7 +632,7 @@ function modif_mode_infobulle_nav() { echo "\n"; -echo "

      Gestion des enseignements pour la classe :" . $classe["classe"]."

      \n"; +echo "

      Gestion des enseignements pour la classe :" . $classe["classe"]."

      \n"; echo "\n"; echo "
      \n"; echo "0)&&(!in_array($tab_clas_ou_grp[$i], $tab_grp)))||in_array($tab_clas_ou_grp[$i], $tab_classes_base)) { echo "checked "; + $temoin_checked='y'; } //echo " onchange=\"if(document.getElementById('type_clas_$i').checked==true) {document.getElementById('ligne_$i').style.fontWeight='bold';} else {document.getElementById('ligne_$i').style.fontWeight='';}\" "; echo " onchange=\"mise_en_gras_ou_pas($i);\" "; echo "/>"; for($j=0;$j
      \n"; } echo "

      \n"; @@ -515,7 +527,9 @@ function mise_en_gras_ou_pas() { } if(count($tab_grp)>0) { - echo "

      Recherche des classes associées aux groupes :

      \n"; + echo "

      Recherche des classes associées aux groupes :

      \n"; + + echo "

      Il s'agit maintenant de préciser à quelles classes sont associés les groupes.
      Vous pouvez, si les noms des groupes reprennent le nom des classes, obtenir une détection automatique assez fiable.
      Vous n'aurez qu'à contrôler et compléter.

      \n"; sort($tab_grp); sort($tab_clas); @@ -715,6 +729,19 @@ function detection_classes_grp() { } } + if($debug_import=='y') { + echo "
      Tableau \$grp :";
      +					print_r($grp);
      +					echo "
      "; + echo "
      "; + } + + if($debug_import=='y') { + echo "
      Tableau \$tab_clas_grp :";
      +					print_r($tab_clas_grp);
      +					echo "
      "; + } + $step=4; } @@ -814,79 +841,145 @@ function detection_classes_grp() { $duree=1; } } - /* - echo "
      ";
      -							echo print_r($tab_cours[$i]);
      -							echo "
      "; - */ - if(in_array($tab_cours[$i]["enfant"]["classe"], $grp)) { - for($j=0;$j0) { + for($j=0;$j$ligne
      \n"; + } + //echo $ligne."
      "; + $nb_lignes++; + } + } + } + else { + // Le groupe n'a été associé à aucune classe. + // Ce peut être le cas (commode) pour des AID. - $ligne=$tab_cours[$i]["enfant"]["jour"].";"; + $ligne=$tab_cours[$i]["enfant"]["jour"].";"; - $tmp_tab=explode("h", mb_strtolower($tab_cours[$i]["enfant"]["h.debut"])); - $heure=preg_replace("/^0*/","",$tmp_tab[0])+$loop; - if($heure<10) {$heure="0".$heure;} - $minute=$tmp_tab[1]; - $ligne.=$heure."h".$minute.";"; + $tmp_tab=explode("h", mb_strtolower($tab_cours[$i]["enfant"]["h.debut"])); + $heure=preg_replace("/^0*/","",$tmp_tab[0])+$loop; + if($heure<10) {$heure="0".$heure;} + $minute=$tmp_tab[1]; + $ligne.=$heure."h".$minute.";"; - //$ligne.=$tab_cours[$i]["enfant"]["classe"].";"; - $ligne.=$tab_clas_grp[$tab_cours[$i]["enfant"]["classe"]][$j].";"; - $ligne.=$tab_cours[$i]["enfant"]["mat_code"].";"; - if(isset($tab_cours[$i]["enfant"]["prof_nom"])) { - $ligne.=$tab_cours[$i]["enfant"]["prof_nom"]; - } - if(isset($tab_cours[$i]["enfant"]["prof_prenom"])) { - $ligne.=" ".$tab_cours[$i]["enfant"]["prof_prenom"]; - } - $ligne.=";"; - if(isset($tab_cours[$i]["enfant"]["salle"])) { - $ligne.=$tab_cours[$i]["enfant"]["salle"]; - } - $ligne.=";"; + //$ligne.=$tab_cours[$i]["enfant"]["classe"].";"; + //$ligne.=$tab_clas_grp[$tab_cours[$i]["enfant"]["classe"]][$j].";"; + $ligne.=";"; + $ligne.=$tab_cours[$i]["enfant"]["mat_code"].";"; + if(isset($tab_cours[$i]["enfant"]["prof_nom"])) { + $ligne.=$tab_cours[$i]["enfant"]["prof_nom"]; + } + if(isset($tab_cours[$i]["enfant"]["prof_prenom"])) { + $ligne.=" ".$tab_cours[$i]["enfant"]["prof_prenom"]; + } + $ligne.=";"; + if(isset($tab_cours[$i]["enfant"]["salle"])) { + $ligne.=$tab_cours[$i]["enfant"]["salle"]; + } + $ligne.=";"; - // Groupe - $ligne.=";"; + // Groupe + $ligne.=";"; - // Regroup - $ligne.=$tab_cours[$i]["enfant"]["classe"].";"; + // Regroup + $ligne.=$tab_cours[$i]["enfant"]["classe"].";"; - // Eff - if(isset($tab_cours[$i]["enfant"]["effectif"])) { - $ligne.=$tab_cours[$i]["enfant"]["effectif"]; - } - $ligne.=";"; + // Eff + if(isset($tab_cours[$i]["enfant"]["effectif"])) { + $ligne.=$tab_cours[$i]["enfant"]["effectif"]; + } + $ligne.=";"; - // Mo - if(isset($tab_cours[$i]["enfant"]["mod."])) { - $ligne.=$tab_cours[$i]["enfant"]["mod."]; - } - $ligne.=";"; + // Mo + if(isset($tab_cours[$i]["enfant"]["mod."])) { + $ligne.=$tab_cours[$i]["enfant"]["mod."]; + } + $ligne.=";"; - // Freq - //if(isset($tab_cours[$i]["enfant"]["frequence"])) { - if((isset($tab_cours[$i]["enfant"]["frequence"]))&&(in_array($tab_cours[$i]["enfant"]["frequence"],$tab_sem))) { - $ligne.=$tab_cours[$i]["enfant"]["frequence"]; - } - $ligne.=";"; + // Freq + //if(isset($tab_cours[$i]["enfant"]["frequence"])) { + if((isset($tab_cours[$i]["enfant"]["frequence"]))&&(in_array($tab_cours[$i]["enfant"]["frequence"],$tab_sem))) { + $ligne.=$tab_cours[$i]["enfant"]["frequence"]; + } + $ligne.=";"; - // Aire - $ligne.=";"; - $ligne.="\n"; + // Aire + $ligne.=";"; + $ligne.="\n"; - fwrite($fich, $ligne); - if($debug_import=='y') { - echo "$ligne
      \n"; - } - //echo $ligne."
      "; - $nb_lignes++; + fwrite($fich, $ligne); + if($debug_import=='y') { + echo "$ligne
      \n"; } + //echo $ligne."
      "; + $nb_lignes++; + } } else { + // Cours associés à une classe (sans qu'un groupe soit déclaré) for($loop=0;$loop<$duree;$loop++) { From 1a76a910c5dd7dfd6dd768aee464059100873f6d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 24 Jul 2012 17:43:26 +0200 Subject: [PATCH 0076/1150] Suppression d'un affichage de debug. --- edt_organisation/edt_xml.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edt_organisation/edt_xml.php b/edt_organisation/edt_xml.php index f2456fdf1..a7bade5f8 100644 --- a/edt_organisation/edt_xml.php +++ b/edt_organisation/edt_xml.php @@ -49,7 +49,7 @@ } //**************** FIN EN-TETE ***************** - $debug_import="y"; + $debug_import="n"; // On va uploader les fichiers XML dans le tempdir de l'utilisateur (administrateur, ou scolarité pour les màj Sconet) $tempdir=get_user_temp_directory(); From 26c62cccf1ccf9923a211bea85e0d1231dc66127 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 24 Jul 2012 19:16:05 +0200 Subject: [PATCH 0077/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20rendre=20invi?= =?UTF-8?q?sible=20certains=20groupes=20dans=20les=20CDT.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accueil_simpl_prof.php | 43 +++++--------- cahier_texte/index.php | 57 ++++++++++--------- .../ajax_affichages_liste_notices.php | 14 +++-- cahier_texte_2/ajax_edition_compte_rendu.php | 14 +++-- cahier_texte_2/ajax_edition_devoir.php | 14 +++-- cahier_texte_2/ajax_edition_notice_privee.php | 14 +++-- cahier_texte_2/ajax_liste_notices_privees.php | 10 +++- cahier_texte_2/index.php | 50 ++++++++-------- groupes/add_group.php | 4 -- groupes/edit_class.php | 10 +--- groupes/edit_group.php | 4 -- lib/global.inc.php | 5 ++ lib/header_barre_prof_template.php | 11 +++- 13 files changed, 128 insertions(+), 122 deletions(-) diff --git a/accueil_simpl_prof.php b/accueil_simpl_prof.php index bcdfd3ef5..ffa971e4e 100644 --- a/accueil_simpl_prof.php +++ b/accueil_simpl_prof.php @@ -166,6 +166,7 @@ function getPref($login,$item,$default){ $invisibilite_groupe=array(); $invisibilite_groupe['bulletins']=array(); $invisibilite_groupe['cahier_notes']=array(); +$invisibilite_groupe['cahier_texte']=array(); $sql="SELECT jgv.* FROM j_groupes_visibilite jgv, j_groupes_professeurs jgp WHERE jgv.id_groupe=jgp.id_groupe AND jgp.login='".$_SESSION['login']."' AND jgv.visible='n';"; $res_jgv=mysql_query($sql); if(mysql_num_rows($res_jgv)>0) { @@ -767,40 +768,22 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ // https://127.0.0.1/steph/gepi-trunk/cahier_texte/index.php?id_groupe=29&year=2007&month=6&day=30&edit_devoir= // Cahier de textes: echo "
      "; - //echo ""; - //echo ""; - echo ""; - - //if(($accueil_aff_txt_icon==1)||($accueil_aff_txt_icon==3)){ - //echo "Cahier de textes"; + if(!in_array($groups[$i]['id'],$invisibilite_groupe['cahier_texte'])) { + echo ""; echo "Cahier de textes"; - /* - } - if($accueil_aff_txt_icon==3){ - echo "
      "; - } - if($accueil_aff_txt_icon>=2){ - echo "Cahier de textes"; - } - */ - echo "
      "; + echo ""; - if($pref_accueil_infobulles=="y"){ - //echo "
      Cet outil vous permet de constituer un cahier de textes pour le groupe ".htmlspecialchars($groups[$i]['description'])."($liste_classes_du_groupe).
      \n"; - echo "
      Cahier de textes de ".htmlspecialchars($groups[$i]['description'])." ($liste_classes_du_groupe).
      \n"; + if($pref_accueil_infobulles=="y"){ + echo "
      Cahier de textes de ".htmlspecialchars($groups[$i]['description'])." ($liste_classes_du_groupe).
      \n"; - $tab_liste_infobulles[]='info_ct_'.$i; - } + $tab_liste_infobulles[]='info_ct_'.$i; + } - /* - echo "\n"; - */ + } echo "
      \n"; @@ -612,6 +725,12 @@ function modif_mode_infobulle_nav() { //echo "\n"; die(); } + +// Pour repérer des groupes homonymes +$msg_groupes_homonymes=""; +$tab_id_groupe_homonyme=array(); +$tab_description_groupe_homonyme=array(); + ?>
      id]=$row->nom_complet; } + //============================================================================================================ + echo "\n"; echo "\n"; echo "\n"; @@ -761,6 +882,16 @@ function modif_mode_infobulle_nav() { $current_group = get_group($group["id"]); $total = count($group["classes"]); + if(in_array($current_group['description'], $tab_description_groupe_homonyme)) { + $msg_ajout="Plusieurs groupes portent la description ".$current_group['description'].""; + if(!preg_match("#$msg_ajout#", $msg_groupes_homonymes)) { + $msg_groupes_homonymes.=$msg_ajout."
      \n"; + } + } + + $tab_id_groupe_homonyme[]=$current_group['id']; + $tab_description_groupe_homonyme[]=$current_group['description']; + //=============================== unset($result_matiere); // On récupère l'ordre par défaut des matières dans matieres pour permettre de fixer les priorités d'après les priorités par défaut de matières. @@ -1026,6 +1157,22 @@ function visibilite_griser_degriser(num_domaine) { echo "

      \n"; echo "\n"; +if($msg_groupes_homonymes!='') { + echo "


      \n"; + echo "\n"; + echo "

      Attention : $msg_groupes_homonymes"; + echo "Vous devriez renommer ces groupes de façon à ce que vous comme les professeurs,... les distinguent plus facilement.
      "; + echo "Vous pouvez par exemple ajouter des suffixes _1, _2,...
      "; + echo "ou laisser le nom sans suffixe pour un groupe classe et mettre des suffixes _1, _2,... pour des sous-groupes.
      "; + echo "Ajouter automatiquement des suffixes _1, _2,... ou des Ajouter automatiquement des suffixes _A, _B,..."; + echo "

      \n"; + echo "


      \n"; + + echo "\n"; +} + //================================================ // AJOUT:boireaus echo "\n"; - */ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -676,7 +712,7 @@ if(getSettingValue("note_autre_que_sur_referentiel")=="V") { echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -702,7 +738,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -814,7 +850,7 @@ echo "

      Coefficient de l'évaluation

      \n"; echo "
      Supprimer\n"; @@ -335,20 +258,6 @@ function envoi_mail(num) { echo "

      \n"; echo "\n"; -/* - // portion de code issue de verif_bulletin.php ligne 1110 - echo "\n"; -*/ echo envoi_mail_rappel_js(); } @@ -357,10 +266,11 @@ function envoi_mail(num) { //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { - echo "

      Exclusions du jour : $jour_sanction

      \n"; + echo "

      Exclusions (et assimilées) du jour : $jour_sanction

      \n"; echo "
      \n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -375,6 +285,8 @@ function envoi_mail(num) { $alt_b=$alt_b*(-1); echo "\n"; + echo "\n"; + echo "\n
      NatureElèveDate débutHeure début
      ".ucfirst($lig_sanction->nature).""; echo p_nom($lig_sanction->login); echo " ("; @@ -419,29 +331,8 @@ function envoi_mail(num) { echo ">Détails"; } } - /* - if($travail=="") {$travail="Aucun travail.";} - if($details=="y") { - echo nl2br($travail); - } - else { - $texte=nl2br($travail); - $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); - if($tmp_doc_joints!="") { - $texte.="
      "; - $texte.=$tmp_doc_joints; - } - $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n',2); - - echo " id_sanction','y',10,-40,$delais_affichage_infobulle,$largeur_survol_infobulle,$hauteur_survol_infobulle);\""; - echo " onmouseover=\"cacher_toutes_les_infobulles();afficher_div('div_travail_sanction_$lig_sanction->id_sanction','y',20,20);\""; - echo " onclick=\"return confirm_abandon (this, change, '$themessage')\""; - echo ">Détails"; - } - */ - echo "
      \n"; + echo "\n"; echo "effectuee=="O") {echo "checked='checked' ";} echo "onchange='changement();' "; @@ -466,6 +357,7 @@ function envoi_mail(num) { echo "
      \n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -481,6 +373,8 @@ function envoi_mail(num) { echo "\n"; } + echo "\n"; + echo "\n"; echo "
      NatureElèveTravailDonné par (Déclarant)
      ".ucfirst($lig_sanction->nature).""; echo p_nom($lig_sanction->login); echo " ("; @@ -519,27 +413,6 @@ function envoi_mail(num) { echo ">Détails"; } } - /* - if($travail=="") {$travail="Aucun travail.";} - if($details=="y") { - echo nl2br($travail); - } - else { - $texte=nl2br($travail); - $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); - if($tmp_doc_joints!="") { - $texte.="
      "; - $texte.=$tmp_doc_joints; - } - $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n',2); - - echo " id_sanction','y',10,-40,$delais_affichage_infobulle,$largeur_survol_infobulle,$hauteur_survol_infobulle);\""; - echo " onmouseover=\"cacher_toutes_les_infobulles();afficher_div('div_travail_sanction_$lig_sanction->id_sanction','y',20,20);\""; - echo " onclick=\"return confirm_abandon (this, change, '$themessage')\""; - echo ">Détails"; - } - */ echo "
      \n"; @@ -579,11 +452,12 @@ function envoi_mail(num) { //echo "$sql
      "; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { - echo "

      Liste des retenues non effectuées pour une date antérieure au $jour_sanction

      \n"; + echo "

      Liste des retenues (et assimilées) non effectuées pour une date antérieure au $jour_sanction

      \n"; echo "
      \n"; echo "\n"; echo "\n"; //echo "\n"; + echo "\n"; echo "\n"; @@ -600,7 +474,9 @@ function envoi_mail(num) { while($lig_sanction=mysql_fetch_object($res_sanction)) { $alt_b=$alt_b*(-1); echo "\n"; - echo "\n"; + //echo "\n"; echo "\n"; @@ -643,27 +519,6 @@ function envoi_mail(num) { echo ">Détails"; } } - /* - if($travail=="") {$travail="Aucun travail.";} - if($details=="y") { - echo nl2br($travail); - } - else { - $texte=nl2br($travail); - $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); - if($tmp_doc_joints!="") { - $texte.="
      "; - $texte.=$tmp_doc_joints; - } - $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n',2); - - echo " id_sanction','y',10,-40,$delais_affichage_infobulle,$largeur_survol_infobulle,$hauteur_survol_infobulle);\""; - echo " onmouseover=\"cacher_toutes_les_infobulles();afficher_div('div_travail_sanction_$lig_sanction->id_sanction','y',20,20);\""; - echo " onclick=\"return confirm_abandon (this, change, '$themessage')\""; - echo ">Détails"; - } - */ echo "\n"; echo "\n"; echo "\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $alt=$alt*(-1); echo "\n"; echo "\n"; diff --git a/mod_discipline/saisie_sanction.php b/mod_discipline/saisie_sanction.php index 305eae3a1..2dd630480 100644 --- a/mod_discipline/saisie_sanction.php +++ b/mod_discipline/saisie_sanction.php @@ -86,6 +86,7 @@ $heure_debut_main=isset($_POST['heure_debut_main']) ? $_POST['heure_debut_main'] : '00:00'; $duree_retenue=isset($_POST['duree_retenue']) ? $_POST['duree_retenue'] : 1; $lieu_retenue=isset($_POST['lieu_retenue']) ? $_POST['lieu_retenue'] : NULL; + $materiel=isset($_POST['materiel']) ? $_POST['materiel'] : NULL; $report_demande=isset($_POST['report_demande']) ? $_POST['report_demande'] : NULL; $choix_motif_report=isset($_POST['choix_motif_report']) ? $_POST['choix_motif_report'] : NULL; @@ -178,7 +179,7 @@ $heure_debut=$heure_debut_main; } //$sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N' WHERE id_sanction='$id_sanction';"; - $sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue' WHERE id_sanction='$id_sanction';"; + $sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel' WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; $update=mysql_query($sql); if(!$update) { @@ -205,7 +206,7 @@ $heure_debut=$heure_debut_main; } //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; - $sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; + $sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel';"; //echo "$sql
      \n"; $res=mysql_query($sql); } @@ -228,7 +229,7 @@ $heure_debut=$heure_debut_main; } //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; - $sql="INSERT INTO s_retenues SET id_sanction='$tmp_id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; + $sql="INSERT INTO s_retenues SET id_sanction='$tmp_id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', materiel='$materiel';"; //echo "$sql
      \n"; $res=mysql_query($sql); } diff --git a/mod_ooo/retenue.php b/mod_ooo/retenue.php index b5c5d03cc..c4a257612 100644 --- a/mod_ooo/retenue.php +++ b/mod_ooo/retenue.php @@ -91,6 +91,7 @@ $num_incident = ''; $nb_report=''; $texte_report=''; +$materiel=''; //echo "\$mode=$mode
      "; //echo "\$id_incident=$id_incident
      "; @@ -199,6 +200,9 @@ $travail = $lig_sanction->travail; $lieu = $lig_sanction->lieu; + + if ($lig_sanction->materiel) $materiel = $lig_sanction->materiel; + //recherche de l'heure de début. C'est le crénaux qui est enregistré. $sql_heure = "SELECT * FROM `edt_creneaux` WHERE `nom_definie_periode`='$lig_sanction->heure_debut'"; diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index 99de9b4e2..f5d19fedb 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -302,7 +302,7 @@ CREATE TABLE IF NOT EXISTS s_communication (id_communication INT( 11 ) NOT NULL DROP TABLE IF EXISTS s_travail; CREATE TABLE IF NOT EXISTS s_travail (id_travail INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_sanction INT( 11 ) NOT NULL ,date_retour DATE NOT NULL ,heure_retour VARCHAR( 20 ) NOT NULL ,travail TEXT NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_retenues; -CREATE TABLE IF NOT EXISTS s_retenues (id_retenue INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_sanction INT( 11 ) NOT NULL ,date DATE NOT NULL ,heure_debut VARCHAR( 20 ) NOT NULL ,duree FLOAT NOT NULL ,travail TEXT NOT NULL ,lieu VARCHAR( 255 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE IF NOT EXISTS s_retenues (id_retenue INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_sanction INT( 11 ) NOT NULL ,date DATE NOT NULL ,heure_debut VARCHAR( 20 ) NOT NULL ,duree FLOAT NOT NULL ,travail TEXT NOT NULL ,lieu VARCHAR( 255 ) NOT NULL , materiel VARCHAR( 150 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_exclusions; CREATE TABLE s_exclusions (id_exclusion int(11) NOT NULL AUTO_INCREMENT, id_sanction int(11) NOT NULL DEFAULT '0', date_debut date NOT NULL DEFAULT '0000-00-00', heure_debut varchar(20) NOT NULL DEFAULT '', date_fin date NOT NULL DEFAULT '0000-00-00', heure_fin varchar(20) NOT NULL DEFAULT '', travail text NOT NULL, lieu varchar(255) NOT NULL DEFAULT '', nombre_jours varchar(50) NOT NULL, qualification_faits text NOT NULL, num_courrier varchar(50) NOT NULL, type_exclusion varchar(50) NOT NULL, id_signataire INT NOT NULL, PRIMARY KEY (id_exclusion)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_reports; @@ -588,7 +588,7 @@ CREATE TABLE IF NOT EXISTS j_groupes_visibilite (id INT(11) NOT NULL auto_increm DROP TABLE IF EXISTS ct_sequences; CREATE TABLE IF NOT EXISTS ct_sequences (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,titre VARCHAR( 255 ) NOT NULL , description TEXT NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_travail_mesure; -CREATE TABLE IF NOT EXISTS s_travail_mesure (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_incident INT( 11 ) NOT NULL ,login_ele VARCHAR( 50 ) NOT NULL , travail TEXT NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE IF NOT EXISTS s_travail_mesure (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_incident INT( 11 ) NOT NULL ,login_ele VARCHAR( 50 ) NOT NULL , travail TEXT NOT NULL , materiel VARCHAR( 150 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_natures; CREATE TABLE IF NOT EXISTS s_natures ( id INT(11) NOT NULL auto_increment, nature varchar(50) NOT NULL default '', id_categorie int(11) not null default '0', PRIMARY KEY (id)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS udt_lignes; diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_dev.inc.php index 3fec13805..a98a8b5ad 100644 --- a/utilitaires/updates/161_to_dev.inc.php +++ b/utilitaires/updates/161_to_dev.inc.php @@ -221,6 +221,8 @@ $result .= msj_present("La table existe déjà"); } +$result .= "
      "; +$result .= "Module discipline :
      "; $result .= " -> Ajout d'un champ 'primo_declarant' à la table 's_incidents'
      "; $test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM s_incidents LIKE 'primo_declarant';")); if ($test_champ==0) { @@ -234,5 +236,31 @@ $result .= msj_present("Le champ existe déjà"); } +$result .= " -> Ajout d'un champ 'materiel' à la table 's_travail_mesure'
      "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM s_travail_mesure LIKE 'materiel';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE s_travail_mesure ADD materiel varchar(150);"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +$result .= " -> Ajout d'un champ 'materiel' à la table 's_retenues'
      "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM s_retenues LIKE 'materiel';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE s_retenues ADD materiel varchar(150);"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + $result .= "

      Mise à jour vers la version 1.6.2(dev) :

      "; ?> From 2878d422e4e40ca236adea22b9dded6f43960378 Mon Sep 17 00:00:00 2001 From: Regis85 Date: Sun, 14 Oct 2012 21:56:36 +0200 Subject: [PATCH 0238/1150] =?UTF-8?q?discipline=20=E2=86=92=20affichage=20?= =?UTF-8?q?mat=C3=A9riel=20des=20retenus=20+=20correction=20travail=20?= =?UTF-8?q?=C3=A0=20faire?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_incident.php | 4 ++-- mod_discipline/saisie_sanction.php | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index e0b8dc66a..77f1ffaf8 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -2748,7 +2748,7 @@ function comptage_caracteres_textarea() { $texte_travail=$lig_travail_mesure_demandee->travail; } ?> - @@ -2890,7 +2890,7 @@ function verif_details_incident() { function check_coche_mes_demandee(num) { if(document.getElementById('document_joint_'+num)) { temoin_check='n'; - for(i=0;i<".count($tab_mes_demandee).";i++) { + for(i=0;i < ;i++) { if(document.getElementById('mesure_demandee_'+num+'_'+i)) { if(document.getElementById('mesure_demandee_'+num+'_'+i).checked==true) { temoin_check='y'; diff --git a/mod_discipline/saisie_sanction.php b/mod_discipline/saisie_sanction.php index 2dd630480..2c0b5dddb 100644 --- a/mod_discipline/saisie_sanction.php +++ b/mod_discipline/saisie_sanction.php @@ -1041,9 +1041,12 @@ function maj_div_liste_retenues_jour() { $texte=nl2br($lig_sanction->travail); $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); + + $texte.="
      À apporter : ".$lig_sanction->materiel."
      "; + if($tmp_doc_joints!="") { if($texte!="") {$texte.="
      ";} - $texte.="Documents joints :
      "; + $texte.="Documents joints :
      "; $texte.=$tmp_doc_joints; } @@ -1117,7 +1120,7 @@ function maj_div_liste_retenues_jour() { $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); if($tmp_doc_joints!="") { if($texte!="") {$texte.="
      ";} - $texte.="Documents joints :
      "; + $texte.="Documents joints :
      "; $texte.=$tmp_doc_joints; } $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n'); @@ -1167,7 +1170,7 @@ function maj_div_liste_retenues_jour() { $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); if($tmp_doc_joints!="") { if($texte!="") {$texte.="
      ";} - $texte.="Documents joints :
      "; + $texte.="Documents joints :
      "; $texte.=$tmp_doc_joints; } $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n'); From 1c25d268cec6a154b7b46564e919eb78bc3f83e7 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 15 Oct 2012 14:52:03 +0200 Subject: [PATCH 0239/1150] =?UTF-8?q?Correctif=20sur=20la=20refonte=20de?= =?UTF-8?q?=20la=20page:=20Probl=C3=A8me=20de=20if/elseif=20et=20variable?= =?UTF-8?q?=20non=20=C3=A9valu=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_incident.php | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index e0b8dc66a..266bccd5a 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -1121,27 +1121,28 @@ function recherche_utilisateur($rech_nom,$page) { ?>
    • + onclick='return confirm_abandon (this, change, "")'> Ajouter des élèves
    • + onclick='return confirm_abandon (this, change, "")'> Ajouter des personnels
    • + onclick='return confirm_abandon (this, change, "")'> Préciser l'incident
    • @@ -1151,7 +1152,7 @@ function recherche_utilisateur($rech_nom,$page) { ?>
    • + onclick='return confirm_abandon (this, change, "")'> Traitement/sanction
    • From e3b60ec7a188e52f919389fd89ede10bc2c3a13c Mon Sep 17 00:00:00 2001 From: Regis85 Date: Fri, 19 Oct 2012 22:28:22 +0200 Subject: [PATCH 0240/1150] =?UTF-8?q?Saisie=20discipline=20=E2=86=92=20cor?= =?UTF-8?q?rection=20enregistrement?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_incident.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index 77f1ffaf8..7f4019c9b 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -2860,7 +2860,7 @@ function comptage_caracteres_textarea() { - \n"; @@ -91,4 +92,4 @@ function div_comm_type() { //echo " - **\n"; //============================================ -?> \ No newline at end of file +?> From 287dd1fefd8e3ca0006a8d0c31ce383fbe129ce8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 23 Oct 2012 18:42:36 +0200 Subject: [PATCH 0244/1150] =?UTF-8?q?Ajout=20de=20tests=20et=20d'alertes?= =?UTF-8?q?=20sur=20la=20validit=C3=A9=20des=20coef=20et=20r=C3=A9f=C3=A9r?= =?UTF-8?q?entiels.=20Mise=20en=20title=20de=20l'indication=20sur=20la=20m?= =?UTF-8?q?odification=20de=20valeurs=20num=C3=A9riques=20avec=20les=20fl?= =?UTF-8?q?=C3=A8ches=20du=20clavier.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/add_modif_conteneur.php | 25 ++++++++++--- cahier_notes/add_modif_dev.php | 52 +++++++++++++++++++++++----- 2 files changed, 65 insertions(+), 12 deletions(-) diff --git a/cahier_notes/add_modif_conteneur.php b/cahier_notes/add_modif_conteneur.php index 4726125e6..8f1ab2439 100644 --- a/cahier_notes/add_modif_conteneur.php +++ b/cahier_notes/add_modif_conteneur.php @@ -169,7 +169,24 @@ } if (isset($_POST['coef'])) { - $reg = mysql_query("UPDATE cn_conteneurs SET coef = '" . $_POST['coef'] . "' WHERE id = '$id_conteneur'"); + $tmp_coef=$_POST['coef']; + if((preg_match("/^[0-9]*$/", $coef))||(preg_match("/^[0-9]*\.[0-9]$/", $tmp_coef))) { + // Le coef a le bon format + //$msg.="Le coefficient proposé $tmp_coef est valide.
      "; + } + elseif(preg_match("/^[0-9]*\.[0-9]*$/", $tmp_coef)) { + $msg.="Le coefficient ne peut avoir plus d'un chiffre après la virgule. Le coefficient va être tronqué.
      "; + } + elseif(preg_match("/^[0-9]*,[0-9]$/", $tmp_coef)) { + $msg.="Correction du séparateur des décimales dans le coefficient de $tmp_coef en "; + $tmp_coef=preg_replace("/,/", ".", $tmp_coef); + $msg.=$tmp_coef."
      "; + } + else { + $msg.="Le coefficient proposé $tmp_coef est invalide. Mise à 1.0 du coefficient.
      "; + $tmp_coef="1.0"; + } + $reg = mysql_query("UPDATE cn_conteneurs SET coef = '" . $tmp_coef . "' WHERE id = '$id_conteneur'"); if (!$reg) $reg_ok = "no"; } else { $reg = mysql_query("UPDATE cn_conteneurs SET coef = '0' WHERE id = '$id_conteneur'"); @@ -679,7 +696,7 @@ } } echo "
      (si 0, la moyenne de $nom_court n'intervient pas dans le calcul de la moyenne du carnet de note)."; - echo "
      DateNatureDate
      ".ucfirst($lig_sanction->nature)."".formate_date($lig_sanction->date)."$lig_sanction->heure_debut\n"; @@ -702,6 +557,7 @@ function envoi_mail(num) { echo "
      \n"; echo "\n"; echo "\n"; + echo "\n"; echo "\n"; //echo "\n"; echo "\n"; + echo "\n"; echo "\n"; + $chaine_retenues.="\n"; $chaine_retenues.="\n"; @@ -200,6 +201,7 @@ else { echo "
      NatureElèveDate de retour\n"; + echo "".ucfirst($lig_sanction->nature).""; echo p_nom($lig_sanction->login); echo " ("; @@ -758,27 +616,6 @@ function envoi_mail(num) { echo ">Détails"; } } - /* - if($travail=="") {$travail="Aucun travail.";} - if($details=="y") { - echo nl2br($travail); - } - else { - $texte=nl2br($travail); - $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); - if($tmp_doc_joints!="") { - $texte.="
      "; - $texte.=$tmp_doc_joints; - } - $tabdiv_infobulle[]=creer_div_infobulle("div_travail_sanction_$lig_sanction->id_sanction","Travail (sanction n°$lig_sanction->id_sanction)","",$texte,"",20,0,'y','y','n','n',2); - - echo " id_sanction','y',10,-40,$delais_affichage_infobulle,$largeur_survol_infobulle,$hauteur_survol_infobulle);\""; - echo " onmouseover=\"cacher_toutes_les_infobulles();afficher_div('div_travail_sanction_$lig_sanction->id_sanction','y',20,20);\""; - echo " onclick=\"return confirm_abandon (this, change, '$themessage')\""; - echo ">Détails"; - } - */ echo "
      \n"; diff --git a/mod_discipline/mod_discipline_extraction_ooo.php b/mod_discipline/mod_discipline_extraction_ooo.php index 44494ebcb..e6f15d1b2 100644 --- a/mod_discipline/mod_discipline_extraction_ooo.php +++ b/mod_discipline/mod_discipline_extraction_ooo.php @@ -217,7 +217,8 @@ $texte_sanctions.=$designation_eleve; while($lig_sanction=mysql_fetch_object($res_sanction)) { - $texte_sanctions.=" : Retenue "; + //$texte_sanctions.=" : Retenue "; + $texte_sanctions.=" : ".ucfirst($lig->nature)." "; $nombre_de_report=nombre_reports($lig_sanction->id_sanction,0); if($nombre_de_report!=0) {$texte_sanctions.=" ($nombre_de_report reports)";} @@ -252,7 +253,8 @@ $texte_sanctions.=$designation_eleve; while($lig_sanction=mysql_fetch_object($res_sanction)) { - $texte_sanctions.=" : Exclusion "; + //$texte_sanctions.=" : Exclusion "; + $texte_sanctions.=" : ".ucfirst($lig->nature)." "; $texte_sanctions.=" ".formate_date($lig_sanction->date_debut); $texte_sanctions.=" ".$lig_sanction->heure_debut; @@ -283,7 +285,8 @@ $texte_sanctions.=$designation_eleve; while($lig_sanction=mysql_fetch_object($res_sanction)) { - $texte_sanctions.=" : Travail pour le "; + //$texte_sanctions.=" : Travail pour le "; + $texte_sanctions.=" : ".ucfirst($lig->nature)." pour le "; $texte_sanctions.=formate_date($lig_sanction->date_retour); $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); @@ -302,7 +305,7 @@ } // Autres sanctions - $sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions sts WHERE s.id_incident='$id_incident_courant' AND s.login='".$ele_login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; + $sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions2 sts WHERE s.id_incident='$id_incident_courant' AND s.login='".$ele_login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { diff --git a/mod_discipline/occupation_lieu_heure.php b/mod_discipline/occupation_lieu_heure.php index cc067505a..d53b2131b 100644 --- a/mod_discipline/occupation_lieu_heure.php +++ b/mod_discipline/occupation_lieu_heure.php @@ -2,7 +2,7 @@ /* * - * Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun + * Copyright 2001, 2012 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * * This file is part of GEPI. * @@ -127,7 +127,7 @@ } } -echo "

      Liste des retenues en "; +echo "

      Liste des retenues (et assimilées) en "; if($lieu!="") { echo $lieu; } @@ -170,6 +170,7 @@ $alt=$alt*(-1); $chaine_retenues.="

      ".$lig->nature."".$lig->heure_debut; if($lig->duree>1) {$chaine_retenues.=" +";} $chaine_retenues.="
      \n"; echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -213,7 +215,7 @@ echo "

      Remarque :

      \n"; echo "
      \n"; -echo "

      Cette page est destinée à déterminer si certains regroupements d'élèves sont à éviter pour des retenues.

      \n"; +echo "

      Cette page est destinée à déterminer si certains regroupements d'élèves sont à éviter pour des retenues (et sanctions du même type).

      \n"; echo "
      \n"; echo "


      \n"; diff --git a/mod_discipline/saisie_sanction.inc.php b/mod_discipline/saisie_sanction.inc.php index 824e2a187..dc3fe269f 100644 --- a/mod_discipline/saisie_sanction.inc.php +++ b/mod_discipline/saisie_sanction.inc.php @@ -62,571 +62,450 @@ function choix_heure2($champ_heure,$selected,$dernier) { //} } -if($valeur=='travail') { - echo "
      NatureHeureDurée
      (en heures)
      Elève
      \n"; - - $cal = new Calendrier("formulaire", "date_retour"); - - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - $date_retour=$jour."/".$mois."/".$annee; - - $travail=""; - $heure_retour=strftime("%H").":".strftime("%M"); - if(isset($id_sanction)) { - $sql="SELECT * FROM s_travail WHERE id_sanction='$id_sanction';"; - $res_sanction=mysql_query($sql); - if(mysql_num_rows($res_sanction)>0) { - $lig_sanction=mysql_fetch_object($res_sanction); - $date_retour=formate_date($lig_sanction->date_retour); - $heure_retour=$lig_sanction->heure_retour; - $travail=$lig_sanction->travail; - } - } - if(($travail=="")&&(isset($id_incident))&&(isset($ele_login))) { - $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login."';"; - $res_travail_mesure_demandee=mysql_query($sql); - if(mysql_num_rows($res_travail_mesure_demandee)>0) { - $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); - $travail=$lig_travail_mesure_demandee->travail; - } - } +$sql="SELECT * FROM s_types_sanctions2 WHERE id_nature='$valeur';"; +$res=mysql_query($sql); +if(mysql_num_rows($res)==0) { + echo "

      Type de sanction inconnu.

      \n"; +} +else { + $lig=mysql_fetch_object($res); + $nature_sanction=$lig->nature; + $type_sanction=$lig->type; - $alt=1; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; //echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1070,7 +1080,8 @@ function maj_div_liste_retenues_jour() { } // Exclusions - $sql="SELECT * FROM s_sanctions s, s_exclusions se WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND se.id_sanction=s.id_sanction ORDER BY se.date_debut, se.heure_debut;"; + //$sql="SELECT * FROM s_sanctions s, s_exclusions se WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND se.id_sanction=s.id_sanction ORDER BY se.date_debut, se.heure_debut;"; + $sql="SELECT s.*, se.*, sts.nature AS nature_sts FROM s_sanctions s, s_exclusions se, s_types_sanctions2 sts WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND se.id_sanction=s.id_sanction AND sts.id_nature=s.id_nature_sanction AND sts.type='exclusion' ORDER BY sts.nature, se.date_debut, se.heure_debut;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { @@ -1091,7 +1102,8 @@ function maj_div_liste_retenues_jour() { $alt_b=$alt_b*(-1); echo "\n"; //echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -1128,7 +1140,8 @@ function maj_div_liste_retenues_jour() { } // Simple travail - $sql="SELECT * FROM s_sanctions s, s_travail st WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND st.id_sanction=s.id_sanction ORDER BY st.date_retour;"; + //$sql="SELECT * FROM s_sanctions s, s_travail st WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND st.id_sanction=s.id_sanction ORDER BY st.date_retour;"; + $sql="SELECT s.*, st.*, sts.nature AS nature_sts FROM s_sanctions s, s_travail st, s_types_sanctions2 sts WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND st.id_sanction=s.id_sanction AND sts.id_nature=s.id_nature_sanction AND sts.type='travail' ORDER BY sts.nature, st.date_retour;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { @@ -1143,7 +1156,8 @@ function maj_div_liste_retenues_jour() { while($lig_sanction=mysql_fetch_object($res_sanction)) { $alt_b=$alt_b*(-1); echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; echo "\n"; //echo "\n"; echo "\n"; - echo "\n"; + //echo "\n"; + echo "\n"; echo "\n"; //$retour.="\n"; if(($etat_incident!='clos')&&(($_SESSION['statut']!='professeur')&&($_SESSION['statut']!='autre'))) { - $retour.="\n"; + $retour.="\n"; } else { - $retour.="\n"; + $retour.="\n"; } $retour.="\n"; $retour.="\n"; @@ -165,10 +165,10 @@ function liste_sanctions($id_incident,$ele_login) { $retour.="\n"; //$retour.="\n"; if(($etat_incident!='clos')&&(($_SESSION['statut']!='professeur')&&($_SESSION['statut']!='autre'))) { - $retour.="\n"; + $retour.="\n"; } else { - $retour.="\n"; + $retour.="\n"; } $retour.="\n"; $retour.="\n"; @@ -222,10 +222,10 @@ function liste_sanctions($id_incident,$ele_login) { $alt_b=$alt_b*(-1); $retour.="\n"; if (($etat_incident!='clos')&&(($_SESSION['statut']!='professeur')&&($_SESSION['statut']!='autre'))) { - $retour.="\n"; + $retour.="\n"; } else { - $retour.="\n"; + $retour.="\n"; } $retour.="\n"; $retour.=" - \n"; } - echo "\n"; + echo "\n"; + if ($col[$i][7] == "professeur") { echo "\n"; } + + echo "\n"; // Si c'est un professeur : matières si c'est un "autre" alors on affiche son statut personnalisé if ($col[$i][7] == "autre" AND getSettingValue("statuts_prives") == "y") { @@ -738,26 +768,24 @@ function test_ecriture_backup() { // Affichage du téléchargement pour la photo si le module trombi est activé if (getSettingValue("active_module_trombino_pers")=='y') { - - - echo "\n"; + } // Fin de la ligne courante echo "\n"; } From 68097a03c3eecb14a63b85b6995cb75e139397c2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Oct 2012 16:29:37 +0200 Subject: [PATCH 0218/1150] =?UTF-8?q?Acc=C3=A8s=20en=20statut=20autre=20?= =?UTF-8?q?=C3=A0=20la=20visualisation=20des=20=C3=A9quipes=20p=C3=A9da.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/popup.php | 18 ++++++++++++------ groupes/visu_profs_class.php | 8 ++++++++ utilisateurs/creer_statut.php | 3 ++- utilisateurs/creer_statut_autorisation.php | 4 +++- 4 files changed, 25 insertions(+), 8 deletions(-) diff --git a/groupes/popup.php b/groupes/popup.php index b3082a513..862d10c0f 100644 --- a/groupes/popup.php +++ b/groupes/popup.php @@ -181,6 +181,12 @@ ".$msg."

      \n"; } @@ -284,8 +290,8 @@ echo "\n"; } echo "
      \n"; } echo "\n"; } echo "\n"; echo "\n"; */ - + + echo "\n"; + echo "\n"; + echo "\n"; + for($i=0;$i\n"; + } + echo "\n"; + echo "\n"; + // LISTE FOIREUSE UNE FOIS QU'ON A VALIDE UNE FOIS //for($j=0;$j\n"; */ - $ligne_si_desinscription_possible.="\n"; - echo "\n"; - echo "\n"; - echo "\n"; - */ + + + + $nouveauItem = new itemGeneral(); + $nouveauItem->chemin='/mod_discipline/mod_discipline_extraction_ooo.php'; + if ($nouveauItem->acces($nouveauItem->chemin,$_SESSION['statut'])) + { + $nouveauItem->titre="Extraction ODS" ; + $nouveauItem->expli="Extraction ODS des incidents et de leurs suites." ; + $nouveauItem->indexMenu=$a; + $menuPage[]=$nouveauItem; + } + unset($nouveauItem); + + + $nouveauItem = new itemGeneral(); $nouveauItem->chemin='/mod_discipline/stats2/index.php'; if ($nouveauItem->acces($nouveauItem->chemin,$_SESSION['statut'])) From 063cf6f1ca621484425651733ce49c45cebf452b Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 19:57:47 +0200 Subject: [PATCH 0227/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20au?= =?UTF-8?q?=20clavier=20l'heure.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/visu_saisie.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_abs2/visu_saisie.php b/mod_abs2/visu_saisie.php index 4bcafb1e5..bcaf862b4 100644 --- a/mod_abs2/visu_saisie.php +++ b/mod_abs2/visu_saisie.php @@ -247,7 +247,7 @@ if (!$modifiable || $saisie->getDeletedAt() != null ) { echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getDebutAbs('U'))); } else { - echo ' '; + echo ' '; if ($utilisateur->getStatut() == 'professeur') {//on autorise pas au professeur a changer la date echo (strftime(" %a %d/%m/%Y", $saisie->getDebutAbs('U'))); echo ' '; @@ -281,7 +281,7 @@ if (!$modifiable || $saisie->getDeletedAt() != null) { echo (strftime("%a %d/%m/%Y %H:%M", $saisie->getFinAbs('U'))); } else { - echo ' '; + echo ' '; //if ($utilisateur->getStatut() == 'professeur' && getSettingValue("abs2_saisie_prof_decale") != 'y') { if ($utilisateur->getStatut() == 'professeur') { echo (strftime(" %a %d/%m/%Y", $saisie->getFinAbs('U'))); From 3d8beb596b4a411fbd2daf4230882693a728984e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 22:04:10 +0200 Subject: [PATCH 0228/1150] =?UTF-8?q?Affichage=20des=20saisies=20pr=C3=A9c?= =?UTF-8?q?=C3=A9dentes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/lib/saisie_smart_large.css | 14 ++- mod_abs2/lib/saisie_smart_mini.css | 26 +++-- mod_abs2/saisir_groupe.php | 161 ++++++++++++++++++++-------- 3 files changed, 145 insertions(+), 56 deletions(-) diff --git a/mod_abs2/lib/saisie_smart_large.css b/mod_abs2/lib/saisie_smart_large.css index a879d496e..6f39f48c8 100644 --- a/mod_abs2/lib/saisie_smart_large.css +++ b/mod_abs2/lib/saisie_smart_large.css @@ -10,7 +10,19 @@ .fondRouge { background-color: red; } - + +.fondBleu { + background-color: blue; +} + +.fondJaune { + background-color: yellow; +} + +.fondOrange { + background-color: orange; +} + .trombine { max-width: 60px; max-height: 60px; diff --git a/mod_abs2/lib/saisie_smart_mini.css b/mod_abs2/lib/saisie_smart_mini.css index d19b6b29c..0f775e866 100644 --- a/mod_abs2/lib/saisie_smart_mini.css +++ b/mod_abs2/lib/saisie_smart_mini.css @@ -1,7 +1,7 @@ #container form { font-size: 24px; } - + .invisible { display: none; } @@ -23,31 +23,41 @@ font-size: 150%; color :black; } - + .trombine { max-width: 90px; max-height: 90px; } - + .fondVert { background-color: greenyellow; } - + .fondRouge { background-color: pink; } - + +.fondBleu { + background-color: blue; +} + +.fondJaune { + background-color: yellow; +} + +.fondOrange { + background-color: orange; +} + .policeRouge { display: inline; font-size: 150%; color: red; } - + .policeBlack { display: inline; font-size: 150%; color: black; } - - \ No newline at end of file diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index e4c31d497..fd159a9ba 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -385,7 +385,6 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } else { $classe_col = $utilisateur->getClasses(); } - //**************** ELEVES ***************** //affichage des eleves. Il nous faut au moins un groupe ou une aid $eleve_col = new PropelCollection(); @@ -482,7 +481,6 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $eleve_col = new PropelObjectCollection(); } - //**************** TABLEAU DES ELEVES ***************** // 20120618 $tab_regimes=array(); @@ -500,36 +498,36 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $Yesterday = date("Y-m-d",mktime(0,0,0,$dt_date_absence_eleve->format("m") ,$dt_date_absence_eleve->format("d")-1,$dt_date_absence_eleve->format("Y"))); $abs_hier = false; - $traitee_hier = true;//les saisies de la veille ont-elle été traitées intégralement - $justifiee_hier = true;//les saisies de la veille ont-elle été justifiées intégralement - $afficheEleve[$elv]['bulle_hier'] = ''; - foreach ($eleve->getAbsenceEleveSaisiesDuJour($Yesterday) as $saisie) { - if (!$saisie->getManquementObligationPresence()) continue; - $abs_hier = true; - $traitee_hier = $traitee_hier && $saisie->getTraitee(); - $justifiee_hier = $justifiee_hier && $saisie->getJustifiee(); - $afficheEleve[$elv]['bulle_hier'] .= $saisie->getTypesDescription(); - } - if ($abs_hier) { - $afficheEleve[$elv]['class_hier'] = $justifiee_hier ? "justifieeHier" : 'absentHier'; - $afficheEleve[$elv]['text_hier'] = $traitee_hier ? 'T' : ''; - } else { - $afficheEleve[$elv]['class_hier'] = ''; - $afficheEleve[$elv]['text_hier'] = ''; - } + $traitee_hier = true;//les saisies de la veille ont-elle été traitées intégralement + $justifiee_hier = true;//les saisies de la veille ont-elle été justifiées intégralement + $afficheEleve[$elv]['bulle_hier'] = ''; + foreach ($eleve->getAbsenceEleveSaisiesDuJour($Yesterday) as $saisie) { + if (!$saisie->getManquementObligationPresence()) continue; + $abs_hier = true; + $traitee_hier = $traitee_hier && $saisie->getTraitee(); + $justifiee_hier = $justifiee_hier && $saisie->getJustifiee(); + $afficheEleve[$elv]['bulle_hier'] .= $saisie->getTypesDescription(); + } + if ($abs_hier) { + $afficheEleve[$elv]['class_hier'] = $justifiee_hier ? "justifieeHier" : 'absentHier'; + $afficheEleve[$elv]['text_hier'] = $traitee_hier ? 'T' : ''; + } else { + $afficheEleve[$elv]['class_hier'] = ''; + $afficheEleve[$elv]['text_hier'] = ''; + } $afficheEleve[$elv]['position'] = $eleve_col->getPosition(); $afficheEleve[$elv]['id'] = $eleve->getId(); $afficheEleve[$elv]['nom'] = $eleve->getNom(); $afficheEleve[$elv]['prenom'] = $eleve->getPrenom(); $afficheEleve[$elv]['civilite'] = $eleve->getCivilite(); - $afficheEleve[$elv]['regime'] = ''; - if ($eleve->getEleveRegimeDoublant() != null) { - $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); - if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { - $tab_regimes[]=$afficheEleve[$elv]['regime']; - } - $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; - } + $afficheEleve[$elv]['regime'] = ''; + if ($eleve->getEleveRegimeDoublant() != null) { + $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); + if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { + $tab_regimes[]=$afficheEleve[$elv]['regime']; + } + $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; + } if ((isset($current_groupe) && $current_groupe != null && $current_groupe->getClasses()->count() == 1) || (isset($current_classe) && $current_classe != null)) { @@ -575,9 +573,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev if (getSettingValue("abs2_afficher_saisies_creneau_courant")!='y') { $absences_du_creneau_du_prof = new PropelObjectCollection(); foreach ($absences_du_creneau as $abs) { - if ($abs->getUtilisateurId() == $utilisateur->getPrimaryKey()) { - $absences_du_creneau_du_prof->append($abs); - } + if ($abs->getUtilisateurId() == $utilisateur->getPrimaryKey()) { + $absences_du_creneau_du_prof->append($abs); + } } $absences_du_creneau = $absences_du_creneau_du_prof; } @@ -592,12 +590,25 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev //on affiche les informations pour les crenaux avant la saisie sauf si configuré autrement if (getSettingValue("abs2_montrer_creneaux_precedents")=='y') { $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); + +/* +// 20121009 +if(!$absences_du_creneau->isEmpty()) { +echo "

      ".$eleve->getLogin()."
      ". +//$absences_du_creneau->get(). +"

      "; +echo "
      ";
      +print_r($absences_du_creneau);
      +echo "
      "; +} +*/ + } else { $absences_du_creneau = new PropelCollection(); } } $afficheEleve[$elv]['style'][$i] = ""; - if ($deja_saisie && $nb_creneau_a_saisir > 0) { + if ($deja_saisie && $nb_creneau_a_saisir > 0) { $afficheEleve[$elv]['style'][$i] = "fondVert"; } if (!$absences_du_creneau->isEmpty()) { @@ -606,6 +617,10 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $afficheEleve[$elv]['style'][$i] = "fondRouge"; break; } + // 20121009 + else { + $afficheEleve[$elv]['style'][$i] = "fondJaune"; + } } } @@ -617,6 +632,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev //si il y a des absences de l'utilisateurs on va proposer de les modifier if (getSettingValue("abs2_modification_saisie_une_heure")=='y') { + $cpt=0; foreach ($absences_du_creneau as $saisie) { if (in_array($saisie->getPrimaryKey(), $saisie_affiches)) { // on affiche les saisies une seule fois @@ -631,9 +647,20 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev foreach ($saisie->getAbsenceEleveTraitements() as $bou_traitement) { if ($bou_traitement->getAbsenceEleveType() != null) { $afficheEleve[$elv]['saisie'][$i]['traitements'][] = $bou_traitement->getAbsenceEleveType()->getNom(); + //echo "\$afficheEleve[$elv]['saisie'][$i]['traitements'][] = ".$bou_traitement->getAbsenceEleveType()->getNom()."
      "; + } + } + } + // 20121009 + else { + foreach ($saisie->getAbsenceEleveTraitements() as $bou_traitement) { + if ($bou_traitement->getAbsenceEleveType() != null) { + $afficheEleve[$elv]['info_saisie'][$i]['traitements'][] = $bou_traitement->getAbsenceEleveType()->getNom(); + //echo "\$afficheEleve[$elv]['info_saisie'][$i]['traitements'][] = ".$bou_traitement->getAbsenceEleveType()->getNom()."
      "; } } } + $cpt++; } } @@ -1194,12 +1221,13 @@ class="th_abs_suivi" abbr="Créneaux">Suivi sur la journée foreach($afficheEleve as $eleve) { $compteur_eleve++; ?> +
      '> \n"); echo (""; + */ ?>
      Date de retour : \n"; - //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; - echo "\"Petit\n"; - echo "\n"; - echo "
      Heure de retour : \n"; - choix_heure2('heure_retour',$heure_retour,''); - echo "
      Nature du travail : \n"; - - echo "
      "; - if(isset($id_sanction)) { - echo lien_envoi_mail_rappel($id_sanction, 0); - } - elseif(isset($id_incident)) { - echo lien_envoi_mail_rappel($id_sanction, 0, $id_incident); - } - //echo envoi_mail_rappel_js(); - echo "
      \n"; + if($type_sanction=='travail') { + echo "\n"; - echo "\n"; + $cal = new Calendrier("formulaire", "date_retour"); - //echo "Mettre un champ d'ajout de fichier.
      \n"; - //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + $date_retour=$jour."/".$mois."/".$annee; - if((isset($ele_login))&&(isset($id_incident))) { - sanction_documents_joints($id_incident, $ele_login); - } + $travail=""; + $heure_retour=strftime("%H").":".strftime("%M"); + if(isset($id_sanction)) { + $sql="SELECT * FROM s_travail WHERE id_sanction='$id_sanction';"; + $res_sanction=mysql_query($sql); + if(mysql_num_rows($res_sanction)>0) { + $lig_sanction=mysql_fetch_object($res_sanction); + $date_retour=formate_date($lig_sanction->date_retour); + $heure_retour=$lig_sanction->heure_retour; + $travail=$lig_sanction->travail; + } + } + + if(($travail=="")&&(isset($id_incident))&&(isset($ele_login))) { + $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login."';"; + $res_travail_mesure_demandee=mysql_query($sql); + if(mysql_num_rows($res_travail_mesure_demandee)>0) { + $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); + $travail=$lig_travail_mesure_demandee->travail; + } + } - echo "\n"; - echo "\n"; + $alt=1; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if($meme_sanction_pour_autres_protagonistes!="") { $alt=$alt*(-1); echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - } - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "
      Date de retour : \n"; + //echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; + echo "\"Petit\n"; + echo "\n"; + echo "
      Même sanction : Heure de retour : \n"; - echo $meme_sanction_pour_autres_protagonistes; + choix_heure2('heure_retour',$heure_retour,''); echo "
      \n"; - echo "\n"; - echo "
      Nature du travail : \n"; - echo "
      \n"; -} -elseif($valeur=='retenue') { - - $cal = new Calendrier("formulaire", "date_retenue"); - - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - $date_retenue=$jour."/".$mois."/".$annee; - - //$heure_debut=strftime("%H").":".strftime("%M"); - $heure_debut='00:00'; - $duree_retenue=1; - $lieu_retenue=""; - $travail=""; - if(isset($id_sanction)) { - $sql="SELECT * FROM s_retenues WHERE id_sanction='$id_sanction';"; - $res_sanction=mysql_query($sql); - if(mysql_num_rows($res_sanction)>0) { - $lig_sanction=mysql_fetch_object($res_sanction); - $date_retenue=formate_date($lig_sanction->date); - $heure_debut=$lig_sanction->heure_debut; - $duree_retenue=$lig_sanction->duree; - $lieu_retenue=$lig_sanction->lieu; - $travail=$lig_sanction->travail; + echo "
      "; + if(isset($id_sanction)) { + echo lien_envoi_mail_rappel($id_sanction, 0); } - } - - if(($travail=="")&&(isset($id_incident))&&(isset($ele_login))) { - $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login."';"; - $res_travail_mesure_demandee=mysql_query($sql); - if(mysql_num_rows($res_travail_mesure_demandee)>0) { - $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); - $travail=$lig_travail_mesure_demandee->travail; + elseif(isset($id_incident)) { + echo lien_envoi_mail_rappel($id_sanction, 0, $id_incident); } - } + //echo envoi_mail_rappel_js(); + echo "
      \n"; - //echo "
      \n"; - echo "
      \n"; - echo "Retenues du jour"; - echo "
      \n"; - - echo "\n"; - $alt=1; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + //echo "Mettre un champ d'ajout de fichier.
      \n"; + //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + + if($meme_sanction_pour_autres_protagonistes!="") { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } - echo "\n"; - echo "\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "
      Date : \n"; - //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; - echo "\"Petit\n"; - echo "\n"; - - // Si le module EDT est actif et si l'EDT est renseigné - if(param_edt($_SESSION["statut"]) == 'yes') { - //echo "EDT élève"; - echo "EDT élève"; - //echo "\n"; - } + echo "\n"; - echo "
      Heure de début : \n"; - //echo "\n"; - echo " ou \n"; - choix_heure2('heure_debut',$heure_debut,''); - - //pour infobulle - $texte="- 2 choix possibles pour inscrire l'heure de début de la retenue
      Le premier grace à la liste déroulante. Vous choisissez un créneau. Dans ce cas, c'est l'heure début de crénaux HH:MM qui sera pris en compte pour l'impression de la retenue.
      Dans l'autre cas, vous saisissez l'heure à la place de '00:00' sous ce format."; - - echo "
      Durée : \n"; - echo " en heures\n"; - echo "
      Lieu : \n"; - echo "\n"; - // Sélectionner parmi des lieux déjà saisis? - //$sql="SELECT DISTINCT lieu FROM s_retenues WHERE lieu!='' ORDER BY lieu;"; - $sql="(SELECT DISTINCT lieu FROM s_retenues WHERE lieu!='')"; - if(param_edt($_SESSION["statut"]) == 'yes') { - $sql.=" UNION (SELECT DISTINCT nom_salle AS lieu FROM salle_cours WHERE nom_salle!='')"; - } - $sql.=" ORDER BY lieu;"; - //echo "$sql
      "; - $res_lieu=mysql_query($sql); - //$tab_lieux=array(); - //$chaine_lieux=""; - if(mysql_num_rows($res_lieu)>0) { - echo "\n"; - echo "Occupation du lieu pour la date/heure choisie"; - } + echo "
      Même sanction : \n"; + echo $meme_sanction_pour_autres_protagonistes; + echo "
      \n"; + echo "\n"; + echo "
      Nature du travail : \n"; - //echo "plop"; - echo "
      "; - if(isset($id_sanction)) { - //echo "\$id_sanction=$id_sanction"; - echo lien_envoi_mail_rappel($id_sanction, 0); - } - elseif(isset($id_incident)) { - //echo "\$id_incident=$id_incident"; - echo lien_envoi_mail_rappel("", 0, $id_incident); + echo "
      \n"; } - //echo envoi_mail_rappel_js(); - echo "
      \n"; + elseif($type_sanction=='retenue') { - echo "\n"; + $cal = new Calendrier("formulaire", "date_retenue"); - //echo "Mettre un champ d'ajout de fichier.
      \n"; - //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + $date_retenue=$jour."/".$mois."/".$annee; - if((isset($ele_login))&&(isset($id_incident))) { - sanction_documents_joints($id_incident, $ele_login); - } + //$heure_debut=strftime("%H").":".strftime("%M"); + $heure_debut='00:00'; + $duree_retenue=1; + $lieu_retenue=""; + $travail=""; + if(isset($id_sanction)) { + $sql="SELECT * FROM s_retenues WHERE id_sanction='$id_sanction';"; + $res_sanction=mysql_query($sql); + if(mysql_num_rows($res_sanction)>0) { + $lig_sanction=mysql_fetch_object($res_sanction); + $date_retenue=formate_date($lig_sanction->date); + $heure_debut=$lig_sanction->heure_debut; + $duree_retenue=$lig_sanction->duree; + $lieu_retenue=$lig_sanction->lieu; + $travail=$lig_sanction->travail; + } + } - echo "
      Report : \n"; - - echo "Gestion d'un report :
      \n"; + if(($travail=="")&&(isset($id_incident))&&(isset($ele_login))) { + $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login."';"; + $res_travail_mesure_demandee=mysql_query($sql); + if(mysql_num_rows($res_travail_mesure_demandee)>0) { + $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); + $travail=$lig_travail_mesure_demandee->travail; + } + } + + //echo "
      \n"; + echo "
      \n"; + echo "Retenues du jour"; + echo "
      \n"; + + echo "\n"; + $alt=1; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; - if($meme_sanction_pour_autres_protagonistes!="") { $alt=$alt*(-1); echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - } - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "
      Date : \n"; + //echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; + echo "\"Petit\n"; + echo "\n"; + + // Si le module EDT est actif et si l'EDT est renseigné + if(param_edt($_SESSION["statut"]) == 'yes') { + //echo "EDT élève"; + echo "EDT élève"; + //echo "\n"; + } + + echo "
      Heure de début : \n"; + //echo "\n"; + echo " ou \n"; + choix_heure2('heure_debut',$heure_debut,''); - echo "
        \n"; - echo "
      1. Cocher cette case pour traiter un report :
      2. \n"; - echo "
      3. Saisir le motif du report :
      4. \n"; - echo "
      5. Modifier les données (date, heure, ...) pour le report
      6. \n"; - echo "
      7. Enregistrer les modifications
      8. \n"; - echo "
      9. Imprimer le document sur la page suivante
      10. \n"; - echo "
      \n"; + //pour infobulle + $texte="- 2 choix possibles pour inscrire l'heure de début de la retenue
      Le premier grace à la liste déroulante. Vous choisissez un créneau. Dans ce cas, c'est l'heure début de crénaux HH:MM qui sera pris en compte pour l'impression de la retenue.
      Dans l'autre cas, vous saisissez l'heure à la place de '00:00' sous ce format."; - if (isset($id_sanction)) { - echo "Liste des reports
      \n"; - echo afficher_tableau_des_reports($id_sanction); - } - echo "
      Même sanction : Durée : \n"; - echo $meme_sanction_pour_autres_protagonistes; + echo " en heures\n"; echo "
      \n"; - echo "\n"; - echo "
      Lieu : \n"; + echo "\n"; + // Sélectionner parmi des lieux déjà saisis? + //$sql="SELECT DISTINCT lieu FROM s_retenues WHERE lieu!='' ORDER BY lieu;"; + $sql="(SELECT DISTINCT lieu FROM s_retenues WHERE lieu!='')"; + if(param_edt($_SESSION["statut"]) == 'yes') { + $sql.=" UNION (SELECT DISTINCT nom_salle AS lieu FROM salle_cours WHERE nom_salle!='')"; + } + $sql.=" ORDER BY lieu;"; + //echo "$sql
      "; + $res_lieu=mysql_query($sql); + //$tab_lieux=array(); + //$chaine_lieux=""; + if(mysql_num_rows($res_lieu)>0) { + echo "\n"; - echo "
      \n"; + echo "Occupation du lieu pour la date/heure choisie"; + } - echo "\n"; -} -elseif($valeur=='exclusion') { - echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $nombre_jours=""; - $qualification_faits=""; - $numero_courrier=""; - $type_exclusion=""; - $fct_autorite=""; - $nom_autorite=""; - $fct_delegation=""; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $alt=1; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $cal2 = new Calendrier("formulaire", "date_fin"); - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; } - echo "\n"; - } - echo "\n"; - echo "\n"; - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + echo "\n"; + echo "\n"; + + echo "
      Nature du travail : \n"; + //echo "plop"; + echo "
      "; + if(isset($id_sanction)) { + //echo "\$id_sanction=$id_sanction"; + echo lien_envoi_mail_rappel($id_sanction, 0); + } + elseif(isset($id_incident)) { + //echo "\$id_incident=$id_incident"; + echo lien_envoi_mail_rappel("", 0, $id_incident); + } + //echo envoi_mail_rappel_js(); + echo "
      \n"; - $cal1 = new Calendrier("formulaire", "date_debut"); + echo "\n"; - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - $date_debut=$jour."/".$mois."/".$annee; - $date_fin=$date_debut; + //echo "Mettre un champ d'ajout de fichier.
      \n"; + //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; - $heure_debut=strftime("%H").":".strftime("%M"); - $heure_fin=$heure_debut; - $afficher_creneau_final = 'o'; + if((isset($ele_login))&&(isset($id_incident))) { + sanction_documents_joints($id_incident, $ele_login); + } - $lieu_exclusion=""; - $travail=""; + echo "
      Report : \n"; - if(isset($id_sanction)) { - $sql="SELECT * FROM s_exclusions WHERE id_sanction='$id_sanction';"; - $res_sanction=mysql_query($sql); - if(mysql_num_rows($res_sanction)>0) { - $lig_sanction=mysql_fetch_object($res_sanction); - $date_debut=formate_date($lig_sanction->date_debut); - $date_fin=formate_date($lig_sanction->date_fin); - $heure_debut=$lig_sanction->heure_debut; - $heure_fin=$lig_sanction->heure_fin; - $lieu_exclusion=$lig_sanction->lieu; - $travail=$lig_sanction->travail; - $afficher_creneau_final=''; - $nombre_jours=$lig_sanction->nombre_jours; - $qualification_faits=$lig_sanction->qualification_faits; - $numero_courrier=$lig_sanction->num_courrier; - $type_exclusion=$lig_sanction->type_exclusion; - $signataire=$lig_sanction->id_signataire; - } - } - - if(($travail=="")&&(isset($id_incident))&&(isset($ele_login))) { - $sql="SELECT * FROM s_travail_mesure WHERE id_incident='$id_incident' AND login_ele='".$ele_login."';"; - $res_travail_mesure_demandee=mysql_query($sql); - if(mysql_num_rows($res_travail_mesure_demandee)>0) { - $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); - $travail=$lig_travail_mesure_demandee->travail; + echo "Gestion d'un report :
      \n"; + + echo "
        \n"; + echo "
      1. Cocher cette case pour traiter un report :
      2. \n"; + echo "
      3. Saisir le motif du report :
      4. \n"; + echo "
      5. Modifier les données (date, heure, ...) pour le report
      6. \n"; + echo "
      7. Enregistrer les modifications
      8. \n"; + echo "
      9. Imprimer le document sur la page suivante
      10. \n"; + echo "
      \n"; + + if (isset($id_sanction)) { + echo "Liste des reports
      \n"; + echo afficher_tableau_des_reports($id_sanction); } - } + echo "
      Date de début : \n"; - //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; - echo "\"Petit\n"; - echo "\n"; - echo "
      Heure de début : \n"; - //echo "\n"; - choix_heure2('heure_debut',$heure_debut,''); - echo "
      Date de fin : \n"; - //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; - echo "\"Petit\n"; - echo "\n"; - echo "
      Heure de fin : \n"; - //echo "\n"; - choix_heure2('heure_fin',$heure_fin,$afficher_creneau_final); - echo "
      Lieu : \n"; - echo "\n"; - // Sélectionner parmi des lieux déjà saisis? - $sql="SELECT DISTINCT lieu FROM s_exclusions WHERE lieu!='' ORDER BY lieu;"; - $res_lieu=mysql_query($sql); - if(mysql_num_rows($res_lieu)>0) { - echo "
      Même sanction : \n"; + echo $meme_sanction_pour_autres_protagonistes; + echo "
      Nature du travail : \n"; + $alt=$alt*(-1); + echo "
      \n"; + echo "\n"; + echo "
      \n"; - echo "
      "; - if(isset($id_sanction)) { - echo lien_envoi_mail_rappel($id_sanction, 0); + echo "\n"; } - elseif(isset($id_incident)) { - echo lien_envoi_mail_rappel($id_sanction, 0, $id_incident); - } - //echo envoi_mail_rappel_js(); - echo "
      \n"; + elseif($type_sanction=='exclusion') { + echo "\n"; - echo "\n"; + $cal1 = new Calendrier("formulaire", "date_debut"); - //echo "Mettre un champ d'ajout de fichier.
      \n"; - //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + $date_debut=$jour."/".$mois."/".$annee; + $date_fin=$date_debut; - if((isset($ele_login))&&(isset($id_incident))) { - sanction_documents_joints($id_incident, $ele_login); - } + $heure_debut=strftime("%H").":".strftime("%M"); + $heure_fin=$heure_debut; + $afficher_creneau_final = 'o'; - echo "\n"; - echo "\n"; - -// Ajout Eric génération Ooo de l'exclusion - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $lieu_exclusion=""; + $travail=""; - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + $nombre_jours=""; + $qualification_faits=""; + $numero_courrier=""; + $type_exclusion=""; + $fct_autorite=""; + $nom_autorite=""; + $fct_delegation=""; - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - if($meme_sanction_pour_autres_protagonistes!="") { - $alt=$alt*(-1); + $alt=1; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; - } - $alt=$alt*(-1); - echo "\n"; - echo "\n"; - echo "\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - echo "
      \n"; - echo "Données à renseigner pour l'impression Open Office de l'exclusion temporaire :
      Numero de courrier : \n"; - echo "\n"; - echo "La référence du courrier dans le registre courrier départ. Ex : ADM/SD/012/11
      Type d'exclusion : \n"; - echo "\n"; - echo "\n"; - echo "Choisir le type dans la liste.
      Nombre de jours d'exclusion : \n"; - echo "\n"; - echo "en toutes lettres
      Qualification des faits : \n"; - echo "\n"; - echo "
      Choix du signataire de l'exclusion : \n"; - // Sélectionner parmi les signataires déjà saisis? - $sql="SELECT * FROM s_delegation ORDER BY fct_autorite"; - $res_signataire=mysql_query($sql); - if(mysql_num_rows($res_signataire)>0) { - echo "\n"; - } else { - echo "Aucun signataire n'est saisi dans la base. Demandez à votre administrateur de saisir cette liste en admin du module"; - }; - echo "
      Même sanction : Date de début : \n"; - echo $meme_sanction_pour_autres_protagonistes; + //echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; + echo "\"Petit\n"; + echo "\n"; echo "
      \n"; - echo "\n"; - echo "
      Heure de début : \n"; + //echo "\n"; + choix_heure2('heure_debut',$heure_debut,''); + echo "
      \n"; -} -else { - $sql="SELECT * FROM s_types_sanctions WHERE id_nature='$valeur';"; - $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { - $lig=mysql_fetch_object($res); + $cal2 = new Calendrier("formulaire", "date_fin"); - echo "nature\">\n"; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - $description=""; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; - if(isset($id_sanction)) { - $sql="SELECT * FROM s_autres_sanctions WHERE id_sanction='$id_sanction';"; - $res_sanction=mysql_query($sql); - if(mysql_num_rows($res_sanction)>0) { - $lig_sanction=mysql_fetch_object($res_sanction); - $description=$lig_sanction->description; + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; - $alt=1; + $alt=$alt*(-1); echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; + // Ajout Eric génération Ooo de l'exclusion + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + if($meme_sanction_pour_autres_protagonistes!="") { $alt=$alt*(-1); echo "\n"; @@ -655,7 +611,69 @@ function choix_heure2($champ_heure,$selected,$dernier) { echo "
      Date de fin : \n"; + //echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\n"; + echo "\"Petit\n"; + echo "\n"; + echo "
      Heure de fin : \n"; + //echo "\n"; + choix_heure2('heure_fin',$heure_fin,$afficher_creneau_final); + echo "
      Lieu : \n"; + echo "\n"; + // Sélectionner parmi des lieux déjà saisis? + $sql="SELECT DISTINCT lieu FROM s_exclusions WHERE lieu!='' ORDER BY lieu;"; + $res_lieu=mysql_query($sql); + if(mysql_num_rows($res_lieu)>0) { + echo "\n"; } - - echo "
      $lig->nature
      Description : Nature du travail : \n"; - echo "\n"; + + echo "
      "; + if(isset($id_sanction)) { + echo lien_envoi_mail_rappel($id_sanction, 0); + } + elseif(isset($id_incident)) { + echo lien_envoi_mail_rappel($id_sanction, 0, $id_incident); + } + //echo envoi_mail_rappel_js(); + echo "
      \n"; + + echo "\n"; + + //echo "Mettre un champ d'ajout de fichier.
      \n"; + //echo "Pouvoir aussi choisir un des fichiers joints lors de la déclaration de l'incident.
      \n"; if((isset($ele_login))&&(isset($id_incident))) { sanction_documents_joints($id_incident, $ele_login); @@ -635,6 +514,83 @@ function choix_heure2($champ_heure,$selected,$dernier) { echo "
      \n"; + echo "Données à renseigner pour l'impression Open Office de l'exclusion temporaire :
      Numero de courrier : \n"; + echo "\n"; + echo "La référence du courrier dans le registre courrier départ. Ex : ADM/SD/012/11
      Type d'exclusion : \n"; + echo "\n"; + echo "\n"; + echo "Choisir le type dans la liste.
      Nombre de jours d'exclusion : \n"; + echo "\n"; + echo "en toutes lettres
      Qualification des faits : \n"; + echo "\n"; + echo "
      Choix du signataire de l'exclusion : \n"; + // Sélectionner parmi les signataires déjà saisis? + $sql="SELECT * FROM s_delegation ORDER BY fct_autorite"; + $res_signataire=mysql_query($sql); + if(mysql_num_rows($res_signataire)>0) { + echo "\n"; + } else { + echo "Aucun signataire n'est saisi dans la base. Demandez à votre administrateur de saisir cette liste en admin du module"; + }; + echo "
      \n"; } else { - echo "

      Type de sanction inconnu.

      \n"; + /* + $sql="SELECT * FROM s_types_sanctions WHERE id_nature='$valeur';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + */ + + //echo "nature\">\n"; + echo "
      \n"; + + $description=""; + + if(isset($id_sanction)) { + $sql="SELECT * FROM s_autres_sanctions WHERE id_sanction='$id_sanction';"; + $res_sanction=mysql_query($sql); + if(mysql_num_rows($res_sanction)>0) { + $lig_sanction=mysql_fetch_object($res_sanction); + $description=$lig_sanction->description; + } + } + + echo "\n"; + //echo "\n"; + echo "\n"; + echo "\n"; + + $alt=1; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + if($meme_sanction_pour_autres_protagonistes!="") { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + + echo "
      $lig->nature$nature_sanction
      Description : \n"; + echo "\n"; + + if((isset($ele_login))&&(isset($id_incident))) { + sanction_documents_joints($id_incident, $ele_login); + } + + echo "
      Même sanction : \n"; + echo $meme_sanction_pour_autres_protagonistes; + echo "
      \n"; + echo "\n"; + echo "
      \n"; + /* + } + else { + echo "

      Type de sanction inconnu.

      \n"; + } + */ } } -?> \ No newline at end of file +?> diff --git a/mod_discipline/saisie_sanction.php b/mod_discipline/saisie_sanction.php index c9cbe6844..c16fe0834 100644 --- a/mod_discipline/saisie_sanction.php +++ b/mod_discipline/saisie_sanction.php @@ -2,7 +2,7 @@ /* * - * Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun + * Copyright 2001, 2012 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * * This file is part of GEPI. * @@ -62,451 +62,374 @@ $odt = isset($_POST["odt"]) ? $_POST["odt"] : (isset($_GET["odt"]) ? $_GET["odt"] : Null); +//debug_var(); + if(isset($_POST['enregistrer_sanction'])) { check_token(); $autre_protagoniste_meme_sanction=isset($_POST['autre_protagoniste_meme_sanction']) ? $_POST['autre_protagoniste_meme_sanction'] : array(); - if($_POST['traitement']=='retenue') { + $id_nature_sanction=$_POST['traitement']; + $sql="SELECT * FROM s_types_sanctions2 WHERE id_nature='".$id_nature_sanction."';"; + $res_ns=mysql_query($sql); + if(mysql_num_rows($res_ns)==0) { + $msg.="Le type de sanction est inconnu???
      "; + } + else { + $type_sanction=mysql_result($res_ns, 0, "type"); + $nature_sanction=mysql_result($res_ns, 0, "nature"); + + if($type_sanction=='retenue') { - $date_retenue=isset($_POST['date_retenue']) ? $_POST['date_retenue'] : NULL; - $heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL; - $heure_debut_main=isset($_POST['heure_debut_main']) ? $_POST['heure_debut_main'] : '00:00'; - $duree_retenue=isset($_POST['duree_retenue']) ? $_POST['duree_retenue'] : 1; - $lieu_retenue=isset($_POST['lieu_retenue']) ? $_POST['lieu_retenue'] : NULL; + $date_retenue=isset($_POST['date_retenue']) ? $_POST['date_retenue'] : NULL; + $heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL; + $heure_debut_main=isset($_POST['heure_debut_main']) ? $_POST['heure_debut_main'] : '00:00'; + $duree_retenue=isset($_POST['duree_retenue']) ? $_POST['duree_retenue'] : 1; + $lieu_retenue=isset($_POST['lieu_retenue']) ? $_POST['lieu_retenue'] : NULL; - $report_demande=isset($_POST['report_demande']) ? $_POST['report_demande'] : NULL; - $choix_motif_report=isset($_POST['choix_motif_report']) ? $_POST['choix_motif_report'] : NULL; + $report_demande=isset($_POST['report_demande']) ? $_POST['report_demande'] : NULL; + $choix_motif_report=isset($_POST['choix_motif_report']) ? $_POST['choix_motif_report'] : NULL; - $duree_retenue=preg_replace("/[^0-9.]/","",preg_replace("/,/",".",$duree_retenue)); - if($duree_retenue=="") { - $duree_retenue=1; - $msg.="La durée de retenue saisie n'était pas correcte. Elle a été remplacée par '1'."; - } + $duree_retenue=preg_replace("/[^0-9.]/","",preg_replace("/,/",".",$duree_retenue)); + if($duree_retenue=="") { + $duree_retenue=1; + $msg.="La durée de $nature_sanction saisie n'était pas correcte. Elle a été remplacée par '1'."; + } - if(!isset($date_retenue)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - //$display_date = $jour."/".$mois."/".$annee; - } - else { - $jour = mb_substr($date_retenue,0,2); - $mois = mb_substr($date_retenue,3,2); - $annee = mb_substr($date_retenue,6,4); - } + if(!isset($date_retenue)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + //$display_date = $jour."/".$mois."/".$annee; + } + else { + $jour = mb_substr($date_retenue,0,2); + $mois = mb_substr($date_retenue,3,2); + $annee = mb_substr($date_retenue,6,4); + } - if(!checkdate($mois,$jour,$annee)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); + if(!checkdate($mois,$jour,$annee)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); - $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; - } - $date_retenue="$annee-$mois-$jour"; - - if (isset($NON_PROTECT["travail"])){ - $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); - // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. - $travail=preg_replace('/(\\\r\\\n)+/',"\r\n",$travail); - $travail=preg_replace('/(\\\r)+/',"\r",$travail); - $travail=preg_replace('/(\\\n)+/',"\n",$travail); - } - else { - $travail=""; - } + $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; + } + $date_retenue="$annee-$mois-$jour"; + + if (isset($NON_PROTECT["travail"])){ + $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $travail=suppression_sauts_de_lignes_surnumeraires($travail); + } + else { + $travail=""; + } - if(isset($id_sanction)) { + if(isset($id_sanction)) { - // traitement du report de la retenue (seulement si elle existe déjà !) - if ($report_demande=="OK") { // c'est un report - // on récupère les informations précédente dans la table s_retenues pour les inscrire dans s_reports - $sql="SELECT * FROM s_retenues WHERE id_sanction='$id_sanction';"; + // traitement du report de la retenue (seulement si elle existe déjà !) + if ($report_demande=="OK") { // c'est un report + // on récupère les informations précédente dans la table s_retenues pour les inscrire dans s_reports + $sql="SELECT * FROM s_retenues WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="La $nature_sanction n°$id_sanction n'existe pas dans 's_retenues'.
      Elle ne peut pas être reportée.
      "; + } + else { + $lig=mysql_fetch_object($res); + $id_retenue=$lig->id_retenue; + $ancienne_date=$lig->date; + $ancienne_duree=$lig->duree; + } + // enregistrement des données du report dans la table s_report + $choix_motif_report = str_replace("_", " ", $choix_motif_report); + + //$sql="INSERT INTO s_reports SET id_sanction='$id_sanction', id_type_sanction='$id_retenue', nature_sanction='retenue', date='$ancienne_date', informations='Durée : ".$ancienne_duree."H', motif_report='$choix_motif_report';"; + $sql="INSERT INTO s_reports SET id_sanction='$id_sanction', id_type_sanction='$id_retenue', nature_sanction='$nature_sanction', date='$ancienne_date', informations='Durée : ".$ancienne_duree."H', motif_report='$choix_motif_report';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(!$res) { + $msg.="Erreur lors de l'insertion des informations de report dans 's_reports'.
      "; + } + } + + // Modification??? + $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { - $msg.="La retenue n°$id_sanction n'existe pas dans 's_retenues'.
      Elle ne peut pas être reportée.
      "; + $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; } else { - $lig=mysql_fetch_object($res); - $id_retenue=$lig->id_retenue; - $ancienne_date=$lig->date; - $ancienne_duree=$lig->duree; - } - // enregistrement des données du report dans la table s_report - $choix_motif_report = str_replace("_", " ", $choix_motif_report); - - $sql="INSERT INTO s_reports SET id_sanction='$id_sanction', id_type_sanction='$id_retenue', nature_sanction='retenue', date='$ancienne_date', informations='Durée : ".$ancienne_duree."H', motif_report='$choix_motif_report';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion des informations de report dans 's_reports'.
      "; + $sql="SELECT 1=1 FROM s_retenues WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="La $nature_sanction n°$id_sanction n'existe pas dans 's_retenues'.
      Elle ne peut pas être mise à jour.
      "; + } + else { + //Eric + //choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante + //par defaut la liste déroulante + if ($heure_debut_main !='00:00') { + $heure_debut=$heure_debut_main; + } + //$sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N' WHERE id_sanction='$id_sanction';"; + $sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue' WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $update=mysql_query($sql); + if(!$update) { + $msg.="Erreur lors de la mise à jour de la sanction '$nature_sanction' n°$id_sanction.
      "; + } + } } } - - // Modification??? - $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { - $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; - } else { - $sql="SELECT 1=1 FROM s_retenues WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; + //$sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';"; + //$sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';"; + $sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident';"; + echo "$sql
      \n"; $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { - $msg.="La retenue n°$id_sanction n'existe pas dans 's_retenues'.
      Elle ne peut pas être mise à jour.
      "; + if(!$res) { + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; } else { + $id_sanction=mysql_insert_id(); //Eric //choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante //par defaut la liste déroulante if ($heure_debut_main !='00:00') { - $heure_debut=$heure_debut_main; + $heure_debut=$heure_debut_main; } - //$sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N' WHERE id_sanction='$id_sanction';"; - $sql="UPDATE s_retenues SET date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue' WHERE id_sanction='$id_sanction';"; + //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; + $sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; //echo "$sql
      \n"; - $update=mysql_query($sql); - if(!$update) { - $msg.="Erreur lors de la mise à jour de la retenue n°$id_sanction.
      "; - } - } - } - } - else { - //$sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';"; - $sql="INSERT INTO s_sanctions SET login='$ele_login', nature='retenue', id_incident='$id_incident';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; - } - else { - $id_sanction=mysql_insert_id(); - //Eric - //choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante - //par defaut la liste déroulante - if ($heure_debut_main !='00:00') { - $heure_debut=$heure_debut_main; + $res=mysql_query($sql); } - //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; - $sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - } - if(count($autre_protagoniste_meme_sanction)>0) { - for($loop=0;$loop\n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop].
      "; - } - else { - $tmp_id_sanction=mysql_insert_id(); - $tab_tmp_id_sanction[]=$tmp_id_sanction; - //Eric - //choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante - //par defaut la liste déroulante - if ($heure_debut_main !='00:00') { - $heure_debut=$heure_debut_main; - } - //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; - $sql="INSERT INTO s_retenues SET id_sanction='$tmp_id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; + if(count($autre_protagoniste_meme_sanction)>0) { + for($loop=0;$loop\n"; $res=mysql_query($sql); + if(!$res) { + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop].
      "; + } + else { + $tmp_id_sanction=mysql_insert_id(); + $tab_tmp_id_sanction[]=$tmp_id_sanction; + //Eric + //choix de l'heure de retenue à conserver (champs sasie manuellement ou par la liste déroulante + //par defaut la liste déroulante + if ($heure_debut_main !='00:00') { + $heure_debut=$heure_debut_main; + } + //$sql="INSERT INTO s_retenues SET id_sanction='$id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue', effectuee='N';"; + $sql="INSERT INTO s_retenues SET id_sanction='$tmp_id_sanction', date='$date_retenue', heure_debut='$heure_debut', duree='$duree_retenue', travail='$travail', lieu='$lieu_retenue';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + } } } } - } - - } - elseif($_POST['traitement']=='exclusion') { - - $date_debut=isset($_POST['date_debut']) ? $_POST['date_debut'] : NULL; - $heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL; - $date_fin=isset($_POST['date_fin']) ? $_POST['date_fin'] : NULL; - $heure_fin=isset($_POST['heure_fin']) ? $_POST['heure_fin'] : NULL; - $lieu_exclusion=isset($_POST['lieu_exclusion']) ? $_POST['lieu_exclusion'] : NULL; - $nombre_jours=isset($_POST['nombre_jours']) ? $_POST['nombre_jours'] : NULL; - $qualification_faits=isset($_POST['qualification_faits']) ? $_POST['qualification_faits'] : NULL; - $numero_courrier=isset($_POST['numero_courrier']) ? $_POST['numero_courrier'] : NULL; - $type_exclusion=isset($_POST['type_exclusion']) ? $_POST['type_exclusion'] : NULL; - $signataire=isset($_POST['signataire']) ? $_POST['signataire'] : NULL; - - - if(!isset($date_debut)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - //$display_date = $jour."/".$mois."/".$annee; - } - else { - $jour = mb_substr($date_debut,0,2); - $mois = mb_substr($date_debut,3,2); - $annee = mb_substr($date_debut,6,4); - } - if(!checkdate($mois,$jour,$annee)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - - $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; } - $date_debut="$annee-$mois-$jour"; - $tmp_timestamp_debut=mktime(0, 0, 0, $mois, $jour, $annee); + elseif($type_sanction=='exclusion') { + + $date_debut=isset($_POST['date_debut']) ? $_POST['date_debut'] : NULL; + $heure_debut=isset($_POST['heure_debut']) ? $_POST['heure_debut'] : NULL; + $date_fin=isset($_POST['date_fin']) ? $_POST['date_fin'] : NULL; + $heure_fin=isset($_POST['heure_fin']) ? $_POST['heure_fin'] : NULL; + $lieu_exclusion=isset($_POST['lieu_exclusion']) ? $_POST['lieu_exclusion'] : NULL; + $nombre_jours=isset($_POST['nombre_jours']) ? $_POST['nombre_jours'] : NULL; + $qualification_faits=isset($_POST['qualification_faits']) ? $_POST['qualification_faits'] : NULL; + $numero_courrier=isset($_POST['numero_courrier']) ? $_POST['numero_courrier'] : NULL; + $type_exclusion=isset($_POST['type_exclusion']) ? $_POST['type_exclusion'] : NULL; + $signataire=isset($_POST['signataire']) ? $_POST['signataire'] : NULL; + - if(!isset($date_fin)) { if(!isset($date_debut)) { $annee = strftime("%Y"); $mois = strftime("%m"); $jour = strftime("%d"); + //$display_date = $jour."/".$mois."/".$annee; } else { $jour = mb_substr($date_debut,0,2); $mois = mb_substr($date_debut,3,2); $annee = mb_substr($date_debut,6,4); } - } - else { - $jour = mb_substr($date_fin,0,2); - $mois = mb_substr($date_fin,3,2); - $annee = mb_substr($date_fin,6,4); - } - if(!checkdate($mois,$jour,$annee)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - - $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; - } - $date_fin="$annee-$mois-$jour"; - $tmp_timestamp_fin=mktime(0, 0, 0, $mois, $jour, $annee); - - if($tmp_timestamp_debut>$tmp_timestamp_fin) { - //echo "\$date_debut=$date_debut
      "; - //echo "\$date_fin=$date_fin
      "; - //echo "\$tmp_timestamp_debut=$tmp_timestamp_debut
      "; - //echo "\$tmp_timestamp_fin=$tmp_timestamp_fin
      "; - - //echo "MODIF:
      "; - $tmp_date_debut=$date_fin; - //echo "\$tmp_date_debut=$date_fin
      "; - $date_fin=$date_debut; - //echo "\$date_fin=$date_debut
      "; - $date_debut=$tmp_date_debut; - //echo "\$date_debut=$tmp_date_debut
      "; - - $msg.="La date de fin était antérieure à la date de début de l'exclusion.
      Les dates ont été interverties.
      "; - } + if(!checkdate($mois,$jour,$annee)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); - if (isset($NON_PROTECT["travail"])){ - $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); - // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. - $travail=preg_replace('/(\\\r\\\n)+/',"\r\n",$travail); - $travail=preg_replace('/(\\\r)+/',"\r",$travail); - $travail=preg_replace('/(\\\n)+/',"\n",$travail); - } - else { - $travail=""; - } - - if (isset($NON_PROTECT["qualification_faits"])){ - $qualification_faits=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["qualification_faits"])); - // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. - $qualification_faits=preg_replace('/(\\\r\\\n)+/',"\r\n",$qualification_faits); - $qualification_faits=preg_replace('/(\\\r)+/',"\r",$qualification_faits); - $qualification_faits=preg_replace('/(\\\n)+/',"\n",$qualification_faits); - } - else { - $qualification_faits=""; - } - - if(isset($id_sanction)) { - // Modification??? - $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { - $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; + $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; } - else { - $sql="SELECT 1=1 FROM s_exclusions WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { - $msg.="La sanction n°$id_sanction n'existe pas dans 's_exclusions'.
      Elle ne peut pas être mise à jour.
      "; + $date_debut="$annee-$mois-$jour"; + $tmp_timestamp_debut=mktime(0, 0, 0, $mois, $jour, $annee); + + if(!isset($date_fin)) { + if(!isset($date_debut)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); } else { - $sql="UPDATE s_exclusions SET date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire' WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; - $update=mysql_query($sql); - if(!$update) { - $msg.="Erreur lors de la mise à jour de l'exclusion n°$id_sanction.
      "; - } + $jour = mb_substr($date_debut,0,2); + $mois = mb_substr($date_debut,3,2); + $annee = mb_substr($date_debut,6,4); } } - } - else { - $sql="INSERT INTO s_sanctions SET login='$ele_login', nature='exclusion', id_incident='$id_incident';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; - } else { - $id_sanction=mysql_insert_id(); - - $sql="INSERT INTO s_exclusions SET id_sanction='$id_sanction', date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); + $jour = mb_substr($date_fin,0,2); + $mois = mb_substr($date_fin,3,2); + $annee = mb_substr($date_fin,6,4); } - if(count($autre_protagoniste_meme_sanction)>0) { - for($loop=0;$loop\n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop].
      "; - } - else { - $tmp_id_sanction=mysql_insert_id(); - $tab_tmp_id_sanction[]=$tmp_id_sanction; + if(!checkdate($mois,$jour,$annee)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); - $sql="INSERT INTO s_exclusions SET id_sanction='$tmp_id_sanction', date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - } - } + $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; + } + $date_fin="$annee-$mois-$jour"; + $tmp_timestamp_fin=mktime(0, 0, 0, $mois, $jour, $annee); + + if($tmp_timestamp_debut>$tmp_timestamp_fin) { + //echo "\$date_debut=$date_debut
      "; + //echo "\$date_fin=$date_fin
      "; + //echo "\$tmp_timestamp_debut=$tmp_timestamp_debut
      "; + //echo "\$tmp_timestamp_fin=$tmp_timestamp_fin
      "; + + //echo "MODIF:
      "; + $tmp_date_debut=$date_fin; + //echo "\$tmp_date_debut=$date_fin
      "; + $date_fin=$date_debut; + //echo "\$date_fin=$date_debut
      "; + $date_debut=$tmp_date_debut; + //echo "\$date_debut=$tmp_date_debut
      "; + + $msg.="La date de fin était antérieure à la date de début de l'exclusion.
      Les dates ont été interverties.
      "; } - } - - } - elseif($_POST['traitement']=='travail') { - - $date_retour=isset($_POST['date_retour']) ? $_POST['date_retour'] : NULL; - $heure_retour=isset($_POST['heure_retour']) ? $_POST['heure_retour'] : NULL; - - if(!isset($date_retour)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - //$display_date = $jour."/".$mois."/".$annee; - } - else { - $jour = mb_substr($date_retour,0,2); - $mois = mb_substr($date_retour,3,2); - $annee = mb_substr($date_retour,6,4); - } - - if(!checkdate($mois,$jour,$annee)) { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - - $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; - } - $date_retour="$annee-$mois-$jour"; - - if (isset($NON_PROTECT["travail"])){ - $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); - // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. - $travail=preg_replace('/(\\\r\\\n)+/',"\r\n",$travail); - $travail=preg_replace('/(\\\r)+/',"\r",$travail); - $travail=preg_replace('/(\\\n)+/',"\n",$travail); - } - else { - $travail=""; - } - if(isset($id_sanction)) { - // Modification??? - $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { - $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; + if (isset($NON_PROTECT["travail"])){ + $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $travail=suppression_sauts_de_lignes_surnumeraires($travail); + } + else { + $travail=""; + } + + if (isset($NON_PROTECT["qualification_faits"])){ + $qualification_faits=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["qualification_faits"])); + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $qualification_faits=suppression_sauts_de_lignes_surnumeraires($qualification_faits); } else { - $sql="SELECT 1=1 FROM s_travail WHERE id_sanction='$id_sanction';"; + $qualification_faits=""; + } + + if(isset($id_sanction)) { + // Modification??? + $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { - $msg.="Le travail n°$id_sanction n'existe pas dans 's_travail'.
      Il ne peut pas être mis à jour.
      "; + $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; } else { - //$sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N' WHERE id_sanction='$id_sanction';"; - $sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail' WHERE id_sanction='$id_sanction';"; + $sql="SELECT 1=1 FROM s_exclusions WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; - $update=mysql_query($sql); - if(!$update) { - $msg.="Erreur lors de la mise à jour du travail n°$id_sanction.
      "; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="La sanction n°$id_sanction n'existe pas dans 's_exclusions'.
      Elle ne peut pas être mise à jour.
      "; + } + else { + $sql="UPDATE s_exclusions SET date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire' WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $update=mysql_query($sql); + if(!$update) { + $msg.="Erreur lors de la mise à jour de la sanction '$nature_sanction' n°$id_sanction.
      "; + } } } } - } - else { - $sql="INSERT INTO s_sanctions SET login='$ele_login', nature='travail', id_incident='$id_incident';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; - } else { - $id_sanction=mysql_insert_id(); - - //$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';"; - $sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';"; + $sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident';"; //echo "$sql
      \n"; $res=mysql_query($sql); - } + if(!$res) { + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; + } + else { + $id_sanction=mysql_insert_id(); - if(count($autre_protagoniste_meme_sanction)>0) { - for($loop=0;$loop\n"; $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop]
      "; - } - else { - $tmp_id_sanction=mysql_insert_id(); - $tab_tmp_id_sanction[]=$tmp_id_sanction; + } - //$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';"; - $sql="INSERT INTO s_travail SET id_sanction='$tmp_id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';"; + if(count($autre_protagoniste_meme_sanction)>0) { + for($loop=0;$loop\n"; $res=mysql_query($sql); + if(!$res) { + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop].
      "; + } + else { + $tmp_id_sanction=mysql_insert_id(); + $tab_tmp_id_sanction[]=$tmp_id_sanction; + + $sql="INSERT INTO s_exclusions SET id_sanction='$tmp_id_sanction', date_debut='$date_debut', heure_debut='$heure_debut', date_fin='$date_fin', heure_fin='$heure_fin', travail='$travail', lieu='$lieu_exclusion', nombre_jours='$nombre_jours', qualification_faits='$qualification_faits', num_courrier='$numero_courrier', type_exclusion='$type_exclusion', id_signataire='$signataire';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + } } } } + } - } - else { - $id_nature=$_POST['traitement']; - $sql="SELECT * FROM s_types_sanctions WHERE id_nature='".$id_nature."';"; - //echo "$sql
      \n"; - $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { - $lig=mysql_fetch_object($res); - $type_sanction=$lig->nature; - - if (isset($NON_PROTECT["description"])){ - $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); + elseif($type_sanction=='travail') { + + $date_retour=isset($_POST['date_retour']) ? $_POST['date_retour'] : NULL; + $heure_retour=isset($_POST['heure_retour']) ? $_POST['heure_retour'] : NULL; + + if(!isset($date_retour)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + //$display_date = $jour."/".$mois."/".$annee; + } + else { + $jour = mb_substr($date_retour,0,2); + $mois = mb_substr($date_retour,3,2); + $annee = mb_substr($date_retour,6,4); + } + + if(!checkdate($mois,$jour,$annee)) { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + + $msg.="La date proposée n'était pas valide. Elle a été remplacée par la date du jour courant."; + } + $date_retour="$annee-$mois-$jour"; + + if (isset($NON_PROTECT["travail"])){ + $travail=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["travail"])); // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. - $description=preg_replace('/(\\\r\\\n)+/',"\r\n",$description); - $description=preg_replace('/(\\\r)+/',"\r",$description); - $description=preg_replace('/(\\\n)+/',"\n",$description); + $travail=suppression_sauts_de_lignes_surnumeraires($travail); } else { - $description=""; + $travail=""; } if(isset($id_sanction)) { @@ -518,24 +441,25 @@ $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; } else { - $sql="SELECT 1=1 FROM s_autres_sanctions WHERE id_sanction='$id_sanction';"; + $sql="SELECT 1=1 FROM s_travail WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { - $msg.="La sanction n°$id_sanction n'existe pas dans 's_autres_sanctions'.
      Elle ne peut pas être mis à jour.
      "; + $msg.="Le travail n°$id_sanction n'existe pas dans 's_travail'.
      Il ne peut pas être mis à jour.
      "; } else { - $sql="UPDATE s_autres_sanctions SET description='$description', id_nature='$id_nature' WHERE id_sanction='$id_sanction';"; + //$sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N' WHERE id_sanction='$id_sanction';"; + $sql="UPDATE s_travail SET date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail' WHERE id_sanction='$id_sanction';"; //echo "$sql
      \n"; $update=mysql_query($sql); if(!$update) { - $msg.="Erreur lors de la mise à jour de la sanction '$type_sanction' n°$id_sanction.
      "; + $msg.="Erreur lors de la mise à jour de la sanction '$nature_sanction' n°$id_sanction.
      "; } } } } else { - $sql="INSERT INTO s_sanctions SET login='$ele_login', nature='autre', id_incident='$id_incident';"; + $sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident';"; //echo "$sql
      \n"; $res=mysql_query($sql); if(!$res) { @@ -544,17 +468,15 @@ else { $id_sanction=mysql_insert_id(); - $sql="INSERT INTO s_autres_sanctions SET id_sanction='$id_sanction', id_nature='$id_nature', description='$description';"; + //$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';"; + $sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';"; //echo "$sql
      \n"; $res=mysql_query($sql); - if(!$res) { - $msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$id_sanction.
      "; - } } if(count($autre_protagoniste_meme_sanction)>0) { for($loop=0;$loop\n"; $res=mysql_query($sql); if(!$res) { @@ -564,22 +486,108 @@ $tmp_id_sanction=mysql_insert_id(); $tab_tmp_id_sanction[]=$tmp_id_sanction; - $sql="INSERT INTO s_autres_sanctions SET id_sanction='$tmp_id_sanction', id_nature='$id_nature', description='$description';"; + //$sql="INSERT INTO s_travail SET id_sanction='$id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail', effectuee='N';"; + $sql="INSERT INTO s_travail SET id_sanction='$tmp_id_sanction', date_retour='$date_retour', heure_retour='$heure_retour', travail='$travail';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + } + } + } + } + } + else { + /* + $id_nature=$_POST['traitement']; + $sql="SELECT * FROM s_types_sanctions WHERE id_nature='".$id_nature."';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + $type_sanction=$lig->nature; + */ + if (isset($NON_PROTECT["description"])){ + $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $description=suppression_sauts_de_lignes_surnumeraires($description); + } + else { + $description=""; + } + + if(isset($id_sanction)) { + // Modification??? + $sql="SELECT 1=1 FROM s_sanctions WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="La sanction n°$id_sanction n'existe pas dans 's_sanctions'.
      Elle ne peut pas être mise à jour.
      "; + } + else { + $sql="SELECT 1=1 FROM s_autres_sanctions WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="La sanction n°$id_sanction n'existe pas dans 's_autres_sanctions'.
      Elle ne peut pas être mis à jour.
      "; + } + else { + $sql="UPDATE s_autres_sanctions SET description='$description', id_nature='$id_nature_sanction' WHERE id_sanction='$id_sanction';"; + //echo "$sql
      \n"; + $update=mysql_query($sql); + if(!$update) { + //$msg.="Erreur lors de la mise à jour de la sanction '$type_sanction' n°$id_sanction.
      "; + $msg.="Erreur lors de la mise à jour de la sanction '$nature_sanction' n°$id_sanction.
      "; + } + } + } + } + else { + $sql="INSERT INTO s_sanctions SET login='$ele_login', id_nature_sanction='$id_nature_sanction', nature='".addslashes($nature_sanction)."', id_incident='$id_incident';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(!$res) { + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions'.
      "; + } + else { + $id_sanction=mysql_insert_id(); + + $sql="INSERT INTO s_autres_sanctions SET id_sanction='$id_sanction', id_nature='$id_nature_sanction', description='$description';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(!$res) { + //$msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$id_sanction.
      "; + $msg.="Erreur lors de l'enregistrement de la sanction '$nature_sanction' n°$id_sanction.
      "; + } + } + + if(count($autre_protagoniste_meme_sanction)>0) { + for($loop=0;$loop\n"; $res=mysql_query($sql); if(!$res) { - $msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$tmp_id_sanction.
      "; + $msg.="Erreur lors de l'insertion de la sanction dans 's_sanctions' pour $autre_protagoniste_meme_sanction[$loop]
      "; + } + else { + $tmp_id_sanction=mysql_insert_id(); + $tab_tmp_id_sanction[]=$tmp_id_sanction; + + $sql="INSERT INTO s_autres_sanctions SET id_sanction='$tmp_id_sanction', id_nature='$id_nature_sanction', description='$description';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(!$res) { + //$msg.="Erreur lors de l'enregistrement de la sanction '$type_sanction' n°$tmp_id_sanction.
      "; + $msg.="Erreur lors de l'enregistrement de la sanction '$nature_sanction' n°$tmp_id_sanction.
      "; + } } } } } - } + //} } } - if(isset($id_sanction)) { $temoin_modif_fichier=0; @@ -698,132 +706,132 @@ } if(isset($odt)&&($odt=="exclusion")) { //impression de l'exclusion en Ooo -//recup des informations à exporter dans l'ODT -//Nom et prenom eleve; -if ($ele_login != null && $ele_login != '') { - $eleve_current= EleveQuery::create()->filterByLogin($ele_login)->findOne(); - $nom_ele = $eleve_current->getNom(); - $prenom_ele= $eleve_current->getPrenom(); - $id_classe_ele= $eleve_current->getClasse()->getId(); -} -//classe de l'élève -if ($id_classe_ele != null && $id_classe_ele != '') { - $classe = ClasseQuery::create()->findOneById($id_classe_ele); - if ($classe != null) { - $classe_ele = $classe->getNom(); - } -} - -require_once("./lib_tbs_courrier.php"); //fonction pour le traitement de l'adresse - -$tab_adresse=adresse_responsables($ele_login); - -// Pour le moment on ne traite que pour le R1 -$ad_nom_resp=$tab_adresse[0]['civilite']; -$adr1_resp=$tab_adresse[0]['adresse1']; -$adr2_resp=$tab_adresse[0]['adresse2']; -$adr3_resp=$tab_adresse[0]['adresse3']; -$cp_ville_resp=$tab_adresse[0]['cp_ville']; -$civilite_courrier=$tab_adresse[0]['civilite_courrier']; - -//Contenu du courrier -if ($id_sanction != null && $id_sanction != '') { -$sql="SELECT * FROM s_exclusions WHERE id_sanction='$id_sanction';"; -$res_sanction=mysql_query($sql); - if(mysql_num_rows($res_sanction)==0) { - $num_courrier=""; - $type_exclusion=""; - $qualidication_faits=""; - $duree_exclusion=""; - $date_debut=""; - $date_fin=""; - $signataire=""; + //recup des informations à exporter dans l'ODT + //Nom et prenom eleve; + if ($ele_login != null && $ele_login != '') { + $eleve_current= EleveQuery::create()->filterByLogin($ele_login)->findOne(); + $nom_ele = $eleve_current->getNom(); + $prenom_ele= $eleve_current->getPrenom(); + $id_classe_ele= $eleve_current->getClasse()->getId(); } - else { - $lig_sanction=mysql_fetch_object($res_sanction); - $num_courrier=$lig_sanction->num_courrier; - $type_exclusion=$lig_sanction->type_exclusion; - $qualification_faits=$lig_sanction->qualification_faits; - $duree_exclusion=$lig_sanction->nombre_jours; - $date_debut=$lig_sanction->date_debut; - $date_fin=$lig_sanction->date_fin; - $signataire=$lig_sanction->id_signataire; + //classe de l'élève + if ($id_classe_ele != null && $id_classe_ele != '') { + $classe = ClasseQuery::create()->findOneById($id_classe_ele); + if ($classe != null) { + $classe_ele = $classe->getNom(); + } } -$sql="SELECT * FROM s_delegation WHERE id_delegation='$signataire';"; -$res_delegation=mysql_query($sql); - if(mysql_num_rows($res_delegation)==0) { - $fct_delegation=""; - $fct_autorite=""; - $nom_autorite=""; + require_once("./lib_tbs_courrier.php"); //fonction pour le traitement de l'adresse + + $tab_adresse=adresse_responsables($ele_login); + + // Pour le moment on ne traite que pour le R1 + $ad_nom_resp=$tab_adresse[0]['civilite']; + $adr1_resp=$tab_adresse[0]['adresse1']; + $adr2_resp=$tab_adresse[0]['adresse2']; + $adr3_resp=$tab_adresse[0]['adresse3']; + $cp_ville_resp=$tab_adresse[0]['cp_ville']; + $civilite_courrier=$tab_adresse[0]['civilite_courrier']; + + //Contenu du courrier + if ($id_sanction != null && $id_sanction != '') { + $sql="SELECT * FROM s_exclusions WHERE id_sanction='$id_sanction';"; + $res_sanction=mysql_query($sql); + if(mysql_num_rows($res_sanction)==0) { + $num_courrier=""; + $type_exclusion=""; + $qualidication_faits=""; + $duree_exclusion=""; + $date_debut=""; + $date_fin=""; + $signataire=""; + } + else { + $lig_sanction=mysql_fetch_object($res_sanction); + $num_courrier=$lig_sanction->num_courrier; + $type_exclusion=$lig_sanction->type_exclusion; + $qualification_faits=$lig_sanction->qualification_faits; + $duree_exclusion=$lig_sanction->nombre_jours; + $date_debut=$lig_sanction->date_debut; + $date_fin=$lig_sanction->date_fin; + $signataire=$lig_sanction->id_signataire; + } + + $sql="SELECT * FROM s_delegation WHERE id_delegation='$signataire';"; + $res_delegation=mysql_query($sql); + if(mysql_num_rows($res_delegation)==0) { + $fct_delegation=""; + $fct_autorite=""; + $nom_autorite=""; + } + else { + $lig_delegation=mysql_fetch_object($res_delegation); + $fct_delegation=$lig_delegation->fct_delegation; + $fct_autorite=$lig_delegation->fct_autorite; + $nom_autorite=$lig_delegation->nom_autorite; + } } - else { - $lig_delegation=mysql_fetch_object($res_delegation); - $fct_delegation=$lig_delegation->fct_delegation; - $fct_autorite=$lig_delegation->fct_autorite; - $nom_autorite=$lig_delegation->nom_autorite; + //conversion des dates + //Voici les deux tableaux des jours et des mois traduits en français + $nom_jour_fr = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"); + $mois_fr = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", + "septembre", "octobre", "novembre", "décembre"); + // on extrait la date du jour pour la date de debut + list($annee, $mois, $jour) = explode('-', $date_debut); + $mois=intval($mois); + $timestamp = mktime (0, 0, 0, $mois, $jour, $annee); + // affichage du jour de la semaine + $date_debut = $nom_jour_fr[date("w",$timestamp)].' '.$jour.' '.$mois_fr[$mois].' '.$annee; + // on extrait la date du jour pour la date de fin + list($annee, $mois, $jour) = explode('-', $date_fin); + $mois=intval($mois); + $timestamp = mktime (0, 0, 0, $mois, $jour, $annee); + // affichage du jour de la semaine + $date_fin = $nom_jour_fr[date("w",$timestamp)].' '.$jour.' '.$mois_fr[$mois].' '.$annee; + + if ($date_debut==$date_fin) { + $chaine_date = "du $date_debut"; + $journee = "la journée"; + } else { + $chaine_date = "du $date_debut au $date_fin inclus"; + $journee = "les journées"; } -} -//conversion des dates -//Voici les deux tableaux des jours et des mois traduits en français -$nom_jour_fr = array("dimanche", "lundi", "mardi", "mercredi", "jeudi", "vendredi", "samedi"); -$mois_fr = Array("", "janvier", "février", "mars", "avril", "mai", "juin", "juillet", "août", - "septembre", "octobre", "novembre", "décembre"); -// on extrait la date du jour pour la date de debut -list($annee, $mois, $jour) = explode('-', $date_debut); -$mois=intval($mois); -$timestamp = mktime (0, 0, 0, $mois, $jour, $annee); -// affichage du jour de la semaine -$date_debut = $nom_jour_fr[date("w",$timestamp)].' '.$jour.' '.$mois_fr[$mois].' '.$annee; -// on extrait la date du jour pour la date de fin -list($annee, $mois, $jour) = explode('-', $date_fin); -$mois=intval($mois); -$timestamp = mktime (0, 0, 0, $mois, $jour, $annee); -// affichage du jour de la semaine -$date_fin = $nom_jour_fr[date("w",$timestamp)].' '.$jour.' '.$mois_fr[$mois].' '.$annee; - -if ($date_debut==$date_fin) { -$chaine_date = "du $date_debut"; -$journee = "la journée"; -} else { -$chaine_date = "du $date_debut au $date_fin inclus"; -$journee = "les journées"; -} -$export = array(); -$export[] = Array('nom' => $nom_ele, 'prenom' => $prenom_ele, 'classe' => $classe_ele, - 'ad_nom_resp' => $ad_nom_resp, - 'adr1_resp' => $adr1_resp, 'adr2_resp' => $adr2_resp, 'adr3_resp' => $adr3_resp, - 'cp_ville_resp' => $cp_ville_resp, - 'civilite_courrier' => $civilite_courrier, - 'num_courrier' => $num_courrier, - 'type_exclusion' => $type_exclusion, - 'qualif_faits' => $qualification_faits, - 'duree_exclusion' => $duree_exclusion, - 'date_debut' => $date_debut, - 'date_fin' => $date_fin, - 'chaine_date' => $chaine_date, - 'journee' => $journee, - 'fonction_delegation' => $fct_delegation, - 'fonction_autorite' => $fct_autorite, - 'nom_autorite' => $nom_autorite - ); -/* -echo "
      ";
      -echo print_r($mois);
      -echo "
      "; -*/ -// génération Ooo -include_once '../mod_abs2/lib/function.php'; //pour la fonction repertoire_modeles -include_once '../orm/helpers/AbsencesNotificationHelper.php'; // pour la fonction tbs_str et MergeInfosEtab -$extraction_bilans = repertoire_modeles('discipline_exclusion.odt'); -//Coordonnées etab -$TBS = AbsencesNotificationHelper::MergeInfosEtab($extraction_bilans); - -$TBS->MergeBlock('export', $export); - -$nom_fichier = 'exclusion_'. $nom_ele.'_'.$prenom_ele.'_'.$id_sanction. '.odt'; -$TBS->Show(OPENTBS_DOWNLOAD + TBS_EXIT, $nom_fichier); + $export = array(); + $export[] = Array('nom' => $nom_ele, 'prenom' => $prenom_ele, 'classe' => $classe_ele, + 'ad_nom_resp' => $ad_nom_resp, + 'adr1_resp' => $adr1_resp, 'adr2_resp' => $adr2_resp, 'adr3_resp' => $adr3_resp, + 'cp_ville_resp' => $cp_ville_resp, + 'civilite_courrier' => $civilite_courrier, + 'num_courrier' => $num_courrier, + 'type_exclusion' => $type_exclusion, + 'qualif_faits' => $qualification_faits, + 'duree_exclusion' => $duree_exclusion, + 'date_debut' => $date_debut, + 'date_fin' => $date_fin, + 'chaine_date' => $chaine_date, + 'journee' => $journee, + 'fonction_delegation' => $fct_delegation, + 'fonction_autorite' => $fct_autorite, + 'nom_autorite' => $nom_autorite + ); + /* + echo "
      ";
      +	echo print_r($mois);
      +	echo "
      "; + */ + // génération Ooo + include_once '../mod_abs2/lib/function.php'; //pour la fonction repertoire_modeles + include_once '../orm/helpers/AbsencesNotificationHelper.php'; // pour la fonction tbs_str et MergeInfosEtab + $extraction_bilans = repertoire_modeles('discipline_exclusion.odt'); + //Coordonnées etab + $TBS = AbsencesNotificationHelper::MergeInfosEtab($extraction_bilans); + + $TBS->MergeBlock('export', $export); + + $nom_fichier = 'exclusion_'. $nom_ele.'_'.$prenom_ele.'_'.$id_sanction. '.odt'; + $TBS->Show(OPENTBS_DOWNLOAD + TBS_EXIT, $nom_fichier); } //fin Ooo $utilisation_prototype="ok"; @@ -990,7 +998,8 @@ function maj_div_liste_retenues_jour() { // Retenues $passage_report=false; //traiter les cas ou une sanction correspond à plusieurs retenues - $sql="SELECT * FROM s_sanctions s, s_retenues sr WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND sr.id_sanction=s.id_sanction ORDER BY sr.date, sr.heure_debut;"; + //$sql="SELECT * FROM s_sanctions s, s_retenues sr WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND sr.id_sanction=s.id_sanction ORDER BY sr.date, sr.heure_debut;"; + $sql="SELECT s.*, sr.*, sts.nature AS nature_sts FROM s_sanctions s, s_retenues sr, s_types_sanctions2 sts WHERE s.id_incident=$id_incident AND s.login='".$lig->login."' AND sr.id_sanction=s.id_sanction AND sts.id_nature=s.id_nature_sanction AND sts.type='retenue' ORDER BY sts.nature, sr.date, sr.heure_debut;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); $res_sanction_tmp=mysql_query($sql); @@ -1020,7 +1029,8 @@ function maj_div_liste_retenues_jour() { $alt_b=$alt_b*(-1); echo "
      Retenueid_sanction&id_incident=$id_incident&ele_login=$lig->login'>Retenueid_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."id_nature_sanction&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."".formate_date($lig_sanction->date)."$lig_sanction->heure_debut$lig_sanction->duree
      Exclusionid_sanction&id_incident=$id_incident&ele_login=$lig->login'>Exclusionid_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."id_nature_sanction&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."".formate_date($lig_sanction->date_debut)."$lig_sanction->heure_debut".formate_date($lig_sanction->date_fin)."
      id_sanction&id_incident=$id_incident&ele_login=$lig->login'>Travailid_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."id_nature_sanction&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."".formate_date($lig_sanction->date_retour)."".nl2br($lig_sanction->travail).""; @@ -1169,7 +1183,8 @@ function maj_div_liste_retenues_jour() { // Autres sanctions - $sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions sts WHERE s.id_incident='$id_incident' AND s.login='".$lig->login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; + //$sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions sts WHERE s.id_incident='$id_incident' AND s.login='".$lig->login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; + $sql="SELECT s.*, sa.*, sts.nature AS nature_sts FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions2 sts WHERE s.id_incident='$id_incident' AND s.login='".$lig->login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature AND sts.id_nature=s.id_nature_sanction AND sts.type='autre' ORDER BY sts.nature;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { @@ -1183,7 +1198,8 @@ function maj_div_liste_retenues_jour() { while($lig_sanction=mysql_fetch_object($res_sanction)) { $alt_b=$alt_b*(-1); echo "
      id_nature."&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>$lig_sanction->natureid_nature."&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."id_nature_sanction."&id_sanction=$lig_sanction->id_sanction&id_incident=$id_incident&ele_login=$lig->login'>".ucfirst($lig_sanction->nature_sts)."\n"; $texte=nl2br($lig_sanction->description); @@ -1252,7 +1268,8 @@ function edt_eleve() { $largeur_champ_select=11; $tab_autres_sanctions=array(); - $sql="SELECT * FROM s_types_sanctions ORDER BY nature;"; + //$sql="SELECT * FROM s_types_sanctions ORDER BY nature;"; + $sql="SELECT * FROM s_types_sanctions2 ORDER BY type, nature;"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { while($lig=mysql_fetch_object($res)) { @@ -1269,6 +1286,7 @@ function edt_eleve() { echo "\n"; + /* echo "\n"; @@ -1277,6 +1295,7 @@ function edt_eleve() { echo "\n"; + */ foreach($tab_autres_sanctions AS $key => $value) { echo "
      RetenueRetenue".ucfirst($lig_sanction->nature)."Retenue".ucfirst($lig_sanction->nature)."".formate_date($lig_sanction->date)."$lig_sanction->heure_debut
      ExclusionExclusion".ucfirst($lig_sanction->nature)."Exclusion".ucfirst($lig_sanction->nature)."".formate_date($lig_sanction->date_debut)."$lig_sanction->heure_debut
      Travail".ucfirst($lig_sanction->nature)."Travail".ucfirst($lig_sanction->nature)."".formate_date($lig_sanction->date_retour).""; @@ -257,7 +257,7 @@ function liste_sanctions($id_incident,$ele_login) { } // Autres sanctions - $sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions sts WHERE s.id_incident='$id_incident' AND s.login='".$ele_login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; + $sql="SELECT * FROM s_sanctions s, s_autres_sanctions sa, s_types_sanctions2 sts WHERE s.id_incident='$id_incident' AND s.login='".$ele_login."' AND sa.id_sanction=s.id_sanction AND sa.id_nature=sts.id_nature ORDER BY sts.nature;"; //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 2b03bbdef..b7b336f0a 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -725,8 +725,11 @@ INSERT INTO s_qualites SET qualite='Responsable'; INSERT INTO s_qualites SET qualite='Victime'; INSERT INTO s_qualites SET qualite='Témoin'; INSERT INTO s_qualites SET qualite='Autre'; -INSERT INTO s_types_sanctions SET nature='Avertissement travail'; -INSERT INTO s_types_sanctions SET nature='Avertissement comportement'; +INSERT INTO s_types_sanctions2 SET nature='Exclusion'; +INSERT INTO s_types_sanctions2 SET nature='Retenue'; +INSERT INTO s_types_sanctions2 SET nature='Travail'; +INSERT INTO s_types_sanctions2 SET nature='Avertissement travail'; +INSERT INTO s_types_sanctions2 SET nature='Avertissement comportement'; INSERT INTO s_mesures SET mesure='Travail supplémentaire', type='prise', commentaire=''; INSERT INTO s_mesures SET mesure='Mot dans le carnet de liaison', type='prise', commentaire=''; INSERT INTO s_mesures SET mesure='Retenue', type='demandee', commentaire=''; diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index 8804b7d31..6ece015d0 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -283,8 +283,8 @@ DROP TABLE IF EXISTS s_incidents; CREATE TABLE IF NOT EXISTS s_incidents (id_incident INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,declarant VARCHAR( 50 ) NOT NULL ,date DATE NOT NULL ,heure VARCHAR( 20 ) NOT NULL ,id_lieu INT( 11 ) NOT NULL ,nature VARCHAR( 255 ) NOT NULL , id_categorie INT(11), description TEXT NOT NULL,etat VARCHAR( 20 ) NOT NULL, message_id VARCHAR(50) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_qualites; CREATE TABLE IF NOT EXISTS s_qualites (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,qualite VARCHAR( 50 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; -DROP TABLE IF EXISTS s_types_sanctions; -CREATE TABLE IF NOT EXISTS s_types_sanctions (id_nature INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,nature VARCHAR( 255 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +DROP TABLE IF EXISTS s_types_sanctions2; +CREATE TABLE IF NOT EXISTS s_types_sanctions2 (id_nature INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,nature VARCHAR( 255 ) NOT NULL ,type VARCHAR( 255 ) NOT NULL DEFAULT 'autre') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_autres_sanctions; CREATE TABLE IF NOT EXISTS s_autres_sanctions (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_sanction INT( 11 ) NOT NULL ,id_nature INT( 11 ) NOT NULL ,description TEXT NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_mesures; @@ -296,7 +296,7 @@ CREATE TABLE IF NOT EXISTS s_lieux_incidents (id INT( 11 ) NOT NULL AUTO_INCREME DROP TABLE IF EXISTS s_protagonistes; CREATE TABLE IF NOT EXISTS s_protagonistes (id INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_incident INT NOT NULL ,login VARCHAR( 50 ) NOT NULL ,statut VARCHAR( 50 ) NOT NULL ,qualite VARCHAR( 50 ) NOT NULL,avertie ENUM('N','O') NOT NULL DEFAULT 'N') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_sanctions; -CREATE TABLE IF NOT EXISTS s_sanctions (id_sanction INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,login VARCHAR( 50 ) NOT NULL ,description TEXT NOT NULL ,nature VARCHAR( 255 ) NOT NULL ,effectuee ENUM( 'N', 'O' ) NOT NULL ,id_incident INT( 11 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE IF NOT EXISTS s_sanctions (id_sanction INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,login VARCHAR( 50 ) NOT NULL ,description TEXT NOT NULL ,nature VARCHAR( 255 ) NOT NULL ,id_nature_sanction INT(11), effectuee ENUM( 'N', 'O' ) NOT NULL ,id_incident INT( 11 ) NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_communication; CREATE TABLE IF NOT EXISTS s_communication (id_communication INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,id_incident INT( 11 ) NOT NULL ,login VARCHAR( 50 ) NOT NULL ,nature VARCHAR( 255 ) NOT NULL ,description TEXT NOT NULL) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS s_travail; diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_dev.inc.php index 70d213374..84589c89a 100644 --- a/utilitaires/updates/161_to_dev.inc.php +++ b/utilitaires/updates/161_to_dev.inc.php @@ -84,4 +84,98 @@ $result .= msj_present("La table existe déjà"); } +$result .= "
       -> Ajout d'un champ 'id_nature_sanction' à la table 's_sanctions'
      "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM s_sanctions LIKE 'id_nature_sanction';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE s_sanctions ADD id_nature_sanction int(11) NOT NULL AFTER nature;"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM s_sanctions LIKE 'id_nature_sanction';")); +if ($test_champ>0) { + // On ajoute une table parce qu'on pourrait avoir une collision sur la migration avec une sanction autre de l'ancienne table s_types_sanctions que quelqu'un aurait eu l'idée de créer avec un des noms réservés (Retenue, Exclusion, Travail) parce qu'il manquait un test pour interdire cette bizarrerie. + $result .= "
      "; + $result .= "Ajout d'une table 's_types_sanctions2' :
      "; + $test = sql_query1("SHOW TABLES LIKE 's_types_sanctions2'"); + if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS s_types_sanctions2 (id_nature INT( 11 ) NOT NULL AUTO_INCREMENT PRIMARY KEY ,nature VARCHAR( 255 ) NOT NULL ,type VARCHAR( 255 ) NOT NULL DEFAULT 'autre') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + + $tab_nature_sanction=array("Exclusion", "Retenue", "Travail"); + for($loop=0;$loopnature)."', type='autre';"; + $result_inter = traite_requete($sql); + if ($result_inter == '') { + $id_nature_sanction=mysql_insert_id(); + + $sql="update s_sanctions set id_nature_sanction='$id_nature_sanction', nature='".addslashes($lig_sts->nature)."' where id_sanction in (select id_sanction from s_autres_sanctions where id_nature='".$lig_sts->id_nature."');"; + $result_inter = traite_requete($sql); + if ($result_inter == '') { + $result.=" -> Mise à jour des sanctions ".$lig_sts->nature." existantes : ".msj_ok("Ok !"); + } + else { + $result.=" -> Mise à jour des sanctions ".$lig_sts->nature." existantes : ".msj_erreur("Erreur !"); + } + } + else { + $result.=" -> Re-déclaration de la nature de sanction ".$lig_sts->nature." : ".msj_erreur("Erreur !"); + } + } + + } + else { + $result .= msj_erreur("ECHEC !"); + } + } else { + $result .= msj_present("La table existe déjà"); + } +} ?> From d4fae4f77c8b7b9f50beeee268f82009ab4f2d38 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 11:13:45 +0200 Subject: [PATCH 0082/1150] Correction ortho. --- saisie/impression_avis.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/saisie/impression_avis.php b/saisie/impression_avis.php index 20bc39332..6580fb190 100644 --- a/saisie/impression_avis.php +++ b/saisie/impression_avis.php @@ -1,7 +1,7 @@ Liste des classes : \n"; //modele imprime PDF - // Pourle compte scolarite, possibilité d'imprimer les avis en synthèse (pour ses classes) + // Pour le compte scolarite, possibilité d'imprimer les avis en synthèse (pour ses classes) echo "

      Séléctionnez la classe et la période pour lesquels vous souhaitez imprimer les avis :

      \n"; $sql = "SELECT DISTINCT c.* FROM classes c, periodes p, j_scol_classes jsc WHERE p.id_classe = c.id AND jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe"; From 7d289114b11ecf13c5696c1d25d12dff7f311292 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 11:47:42 +0200 Subject: [PATCH 0083/1150] =?UTF-8?q?Ajout=20de=20pr=C3=A9cision=20dans=20?= =?UTF-8?q?des=20commentaires.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/groupes.inc.php | 2 +- lib/share.inc.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/groupes.inc.php b/lib/groupes.inc.php index 73473a522..827f9213b 100644 --- a/lib/groupes.inc.php +++ b/lib/groupes.inc.php @@ -292,7 +292,7 @@ function get_profs_for_group($_id_groupe) { * Renvoie les informations sur le groupe demandé * * @param integer $_id_groupe identifiant du groupe - * @param array $tab_champs réglages permis par la fonction : all, matieres, classes, eleves, periodes, profs + * @param array $tab_champs réglages permis par la fonction : all, matieres, classes, eleves, periodes, profs, visibilite * @return array Tableaux imbriques des informations du groupe */ function get_group($_id_groupe,$tab_champs=array('all')) { diff --git a/lib/share.inc.php b/lib/share.inc.php index ed1653053..8d3e9f5f3 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -3276,7 +3276,7 @@ function get_commune($code_commune_insee,$mode){ } /** - * Renvoi civilite nom prénom d'un utilisateur + * Renvoie civilite nom prénom d'un utilisateur avec compte (table 'utilisateurs') * * @param string $login Login de l'utilisateur recherché * @param string $mode si 'prenom' inverse le nom et le prénom From 687744097d9e9dbde5b5b20654cc1e6f203c6ace Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 11:48:13 +0200 Subject: [PATCH 0084/1150] =?UTF-8?q?Recherche=20par=20=C3=A9l=C3=A8ve=20p?= =?UTF-8?q?our=20la=20saisie=20secours=20=C3=A9l=C3=A8ve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- class_php/class_page_accueil.php | 5 ++ eleves/recherche_eleve.php | 120 +++++++++++++++++++++---------- saisie/saisie_secours_eleve.php | 70 ++++++++++++++++-- 3 files changed, 155 insertions(+), 40 deletions(-) diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index 9289fa038..06ca4e30d 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -447,6 +447,11 @@ private function saisie(){ "Bulletin : saisie des moyennes et des appréciations par matière", "Cet outil permet de saisir directement, sans passer par le carnet de notes, les moyennes et les appréciations du bulletin"); + if ($this->statutUtilisateur=='secours') + $this->creeNouveauItem("/saisie/saisie_secours_eleve.php", + "Bulletin : saisie des moyennes et des appréciations pour un élève", + "Cet outil permet de saisir/corriger directement, sans passer par le carnet de notes, les moyennes et les appréciations du bulletin pour un élève"); + if($afficher_correction_validation=="y") { $texte_item="Cet outil vous permet de valider les corrections d'appréciations proposées par des professeurs après la clôture d'une période."; if($_SESSION['statut']=='scolarite') { diff --git a/eleves/recherche_eleve.php b/eleves/recherche_eleve.php index 0b18515b2..a29611c51 100644 --- a/eleves/recherche_eleve.php +++ b/eleves/recherche_eleve.php @@ -17,7 +17,7 @@ $page=isset($_POST['page']) ? $_POST['page'] : (isset($_GET['page']) ? $_GET['page'] : ""); - if(($page!="fiche_eleve.php")&&($page!="visu_eleve.php")&&($page!="export_bull_eleve.php")&&($page!="import_bull_eleve.php")) { + if(($page!="fiche_eleve.php")&&($page!="visu_eleve.php")&&($page!="export_bull_eleve.php")&&($page!="import_bull_eleve.php")&&($page!="saisie_secours_eleve.php")) { $page="../logout.php?auto=2"; // Remarque: Cela n'empêche pas de bricoler l'adresse destination des liens affichés... } @@ -74,16 +74,22 @@ echo ":

      \n"; echo "\n"; echo "\n"; - //echo "\n"; - echo "\n"; - - echo "\n"; + if($page=='saisie_secours_eleve.php') { + echo "\n"; + + echo "\n"; + } + else { + echo "\n"; + + echo "\n"; + } echo "\n"; $alt=1; while($lig_ele=mysql_fetch_object($res_ele)) { @@ -92,36 +98,78 @@ $ele_prenom=$lig_ele->prenom; //echo "$ele_nom $ele_prenom"; $alt=$alt*(-1); - echo "\n"; - echo "\n"; + if($page=='saisie_secours_eleve.php') { + echo "\n"; + + $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; + $res_clas=mysql_query($sql); + if(mysql_num_rows($res_clas)==0) { + echo "\n"; + + echo "\n"; + } + elseif(mysql_num_rows($res_clas)==1) { + $lig_clas=mysql_fetch_object($res_clas); + echo "\n"; + + echo "\n"; + } + else { + echo "\n"; + + echo "\n"; + } + echo "\n"; } else { - //echo "("; + echo "\n"; echo "\n"; + } + else { + //echo "("; + echo "\n"; } - //echo ")"; - //echo "
      \n"; - echo "\n"; + echo "
      \n"; } - echo "\n"; } echo "
      ElèveElèveClasse(s)ElèveClasse(s)ElèveClasse(s)
      \n"; - //echo "$ele_nom $ele_prenom"; - echo "".htmlspecialchars("$ele_nom $ele_prenom").""; - - $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; - $res_clas=mysql_query($sql); - if(mysql_num_rows($res_clas)==0) { - //echo " ("; - echo "\n"; - echo "aucune classe"; - //echo ")\n"; - //echo "
      \n"; - echo "
      \n"; + echo htmlspecialchars("$ele_nom $ele_prenom"); + echo "\n"; + echo "aucune classe"; + echo "\n"; + echo "".htmlspecialchars("$ele_nom $ele_prenom").""; + echo "\n"; + echo "".htmlspecialchars($lig_clas->classe).""; + echo "\n"; + echo htmlspecialchars("$ele_nom $ele_prenom"); + echo "\n"; + $cpt=0; + while($lig_clas=mysql_fetch_object($res_clas)) { + if($cpt>0) {echo ", ";} + echo "".htmlspecialchars($lig_clas->classe).""; + $cpt++; + } + echo "
      \n"; - $cpt=0; - while($lig_clas=mysql_fetch_object($res_clas)) { - if($cpt>0) {echo ", ";} - //echo $lig_clas->classe; - echo htmlspecialchars($lig_clas->classe); - $cpt++; + //echo "$ele_nom $ele_prenom"; + echo "".htmlspecialchars("$ele_nom $ele_prenom").""; + + $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; + $res_clas=mysql_query($sql); + if(mysql_num_rows($res_clas)==0) { + //echo " ("; + echo "\n"; + echo "aucune classe"; + //echo ")\n"; + //echo "
      \n"; + echo "
      \n"; + $cpt=0; + while($lig_clas=mysql_fetch_object($res_clas)) { + if($cpt>0) {echo ", ";} + //echo $lig_clas->classe; + echo htmlspecialchars($lig_clas->classe); + $cpt++; + } + //echo ")"; + //echo "
      \n"; + echo "
      \n"; } diff --git a/saisie/saisie_secours_eleve.php b/saisie/saisie_secours_eleve.php index 74222db5c..0e1a9b1af 100644 --- a/saisie/saisie_secours_eleve.php +++ b/saisie/saisie_secours_eleve.php @@ -55,6 +55,16 @@ $id_groupe=isset($_POST["id_groupe"]) ? $_POST["id_groupe"] : NULL; $note_grp=isset($_POST["note_grp"]) ? $_POST["note_grp"] : NULL; + +/* +// Pour la recherche par nom élève: +$order_by=isset($_GET["order_by"]) ? $_GET["order_by"] :NULL; +$rech_nom=isset($_GET["rech_nom"]) ? $_GET["rech_nom"] :NULL; +$rech_prenom=isset($_GET["rech_prenom"]) ? $_GET["rech_prenom"] :NULL; +$Recherche_sans_js=isset($_GET["Recherche_sans_js"]) ? $_GET["Recherche_sans_js"] :NULL; +*/ + + if((isset($_POST['is_posted']))&& (isset($id_classe))&& (isset($periode_num))&& @@ -187,6 +197,50 @@ echo "

      \n"; echo "\n"; + + echo "\n"; + echo "\n"; + $sql="SELECT DISTINCT c.* FROM classes c WHERE 1 ORDER BY classe;"; //echo "$sql
      "; $calldata = mysql_query($sql); @@ -232,12 +286,17 @@ include "../lib/periodes.inc.php"; - echo "

      Choisissez la période:

      \n"; + if(isset($ele_login)) { + echo "

      ".get_nom_prenom_eleve($ele_login)." en ".get_class_from_id($id_classe)."

      \n"; + } + echo "

      Choisissez la période :

      \n"; echo "
        \n"; for($i=1;$i<=count($nom_periode);$i++) { if($ver_periode[$i]!="O") { - echo "
      • ".$nom_periode[$i]."
      • \n"; + echo "
      • ".$nom_periode[$i]."
      • \n"; } else { echo "
      • ".$nom_periode[$i].": Période close
      • \n"; @@ -255,7 +314,8 @@ echo " | Choix classe"; // Choisir une autre période - echo " | Choix période"; + echo " | Choix période"; echo "

        \n"; echo "\n"; @@ -309,7 +369,9 @@ echo " | Choix classe"; // Choisir une autre période - echo " | Choix période"; + echo " | Choix période"; // Choisir un autre élève de la même classe //echo " | Choix élève"; From 8e81a5915e365d4a04e14d40fb2a3977279da0c2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 12:02:09 +0200 Subject: [PATCH 0085/1150] Correction sur la liste des sanctions. --- mod_discipline/stats2/apps/vues/filtre.php | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/mod_discipline/stats2/apps/vues/filtre.php b/mod_discipline/stats2/apps/vues/filtre.php index effa89ec8..09793b177 100644 --- a/mod_discipline/stats2/apps/vues/filtre.php +++ b/mod_discipline/stats2/apps/vues/filtre.php @@ -1,7 +1,7 @@ Choix des sanctions
        - + Tout cocher/ Tout décocher
        - - />
        - + + nature, $filtres_sanctions)) echo "checked";} ?>/> From 2bced641c45d7f0a475658e157350163cc24c211 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 20:44:53 +0200 Subject: [PATCH 0086/1150] =?UTF-8?q?Possibilit=C3=A9=20d'ins=C3=A9rer=20u?= =?UTF-8?q?n=20lien=20vers=20une=20page=20de=20visionnage=20GeoGebra.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/ajax_edition_compte_rendu.php | 3 + cahier_texte_2/ajax_edition_devoir.php | 3 + cahier_texte_2/init_cahier_texte_2.js | 5 + cahier_texte_2/visionneur_geogebra.php | 100 +++++++++++++++++++ lib/share-html.inc.php | 12 +++ public/visionneur_geogebra.php | 70 +++++++++++++ 6 files changed, 193 insertions(+) create mode 100644 cahier_texte_2/visionneur_geogebra.php create mode 100644 public/visionneur_geogebra.php diff --git a/cahier_texte_2/ajax_edition_compte_rendu.php b/cahier_texte_2/ajax_edition_compte_rendu.php index d786ae145..05b86b6fd 100644 --- a/cahier_texte_2/ajax_edition_compte_rendu.php +++ b/cahier_texte_2/ajax_edition_compte_rendu.php @@ -479,6 +479,9 @@ function() { if(preg_match("/(png|gif|jpg)$/i",$document->getEmplacement())) { echo insere_lien_insertion_image_dans_ckeditor($document->getEmplacement()); } + elseif(preg_match("/ggb$/i",$document->getEmplacement())) { + echo insere_lien_insertion_lien_geogebra_dans_ckeditor($document->getTitre(), $document->getEmplacement()); + } echo " ".$document->getTitre()." diff --git a/cahier_texte_2/ajax_edition_devoir.php b/cahier_texte_2/ajax_edition_devoir.php index 63eea570b..703763a9c 100644 --- a/cahier_texte_2/ajax_edition_devoir.php +++ b/cahier_texte_2/ajax_edition_devoir.php @@ -513,6 +513,9 @@ function verif_date_visibilite() { if(preg_match("/(png|gif|jpg)$/i",$document->getEmplacement())) { echo insere_lien_insertion_image_dans_ckeditor($document->getEmplacement()); } + elseif(preg_match("/ggb$/i",$document->getEmplacement())) { + echo insere_lien_insertion_lien_geogebra_dans_ckeditor($document->getTitre(), $document->getEmplacement()); + } echo " ".$document->getTitre()." diff --git a/cahier_texte_2/init_cahier_texte_2.js b/cahier_texte_2/init_cahier_texte_2.js index 5c372a6e4..db8a4f195 100644 --- a/cahier_texte_2/init_cahier_texte_2.js +++ b/cahier_texte_2/init_cahier_texte_2.js @@ -1172,6 +1172,11 @@ function insere_image_dans_ckeditor(url, largeur, hauteur) { CKEDITOR.instances['contenu'].insertHtml(texte); } +function insere_lien_ggb_dans_ckeditor(titre, url) { + //texte=""+url.replace(/\\/g,'/').replace( /.*\//, '' )+""; + texte=""+titre+""; + CKEDITOR.instances['contenu'].insertHtml(texte); +} /** * diff --git a/cahier_texte_2/visionneur_geogebra.php b/cahier_texte_2/visionneur_geogebra.php new file mode 100644 index 000000000..7353ba74f --- /dev/null +++ b/cahier_texte_2/visionneur_geogebra.php @@ -0,0 +1,100 @@ + + + +*/ + +require_once("../lib/initialisations.inc.php"); + +// Resume session +$resultat_session = $session_gepi->security_check(); +if ($resultat_session == 'c') { + //header("Location: ../logout.php?auto=1"); + header("Location: ../logout.php?auto=1"); + die(); +} else if ($resultat_session == '0') { + //header("Location: ../logout.php?auto=1"); + header("Location: ../logout.php?auto=1"); + die(); +} + +$sql="SELECT 1=1 FROM droits WHERE id='/cahier_texte_2/visionneur_geogebra.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/cahier_texte_2/visionneur_geogebra.php', +administrateur='F', +professeur='V', +cpe='V', +scolarite='V', +eleve='V', +responsable='V', +secours='F', +autre='F', +description='Visionneur GeoGebra', +statut='';"; +$insert=mysql_query($sql); +} + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +require_once("../lib/header.inc.php"); +?> + + + +Retour
        \n"; + } +?> + +
        + +

        Visionneur GeoGebra

        + + "; + + if(!isset($url_ggb)) { + echo "

        Aucun fichier à afficher.

        \n"; + echo "\n"; + echo "\n"; + die(); + } + + if(!preg_match("/ggb/i", $url_ggb)) { + echo "

        Le type du fichier est incorrect.

        \n"; + echo "\n"; + echo "\n"; + die(); + } + + //$url_ggb=$gepiPath.preg_replace("#\.\.#", "", $url_ggb); + + $debut_url=preg_replace("#cahier_texte_2/.*#","",$_SERVER['HTTP_REFERER']); + $url_ggb=$debut_url.preg_replace("#\.\.#", "", $url_ggb); + //echo "url_ggb=$url_ggb
        "; + ?> + + + + + Il faut installer un plugin Java (1.5 ou plus récent) pour visionner cette page. + +
        + + diff --git a/lib/share-html.inc.php b/lib/share-html.inc.php index fd358d0dd..e52fa114b 100644 --- a/lib/share-html.inc.php +++ b/lib/share-html.inc.php @@ -1938,6 +1938,18 @@ function insere_lien_insertion_image_dans_ckeditor($url_img) { return "
        Insérer cette image dans le texte
        "; } +/** + * Insertion d'un lien destiné à provoquer l'insertion du code + * vers l'url de l'afficheur GeoGebra avec le fichier GGB passé en paramètre. + * + * @param string $url_ggb : Url du fichier GGB + * + * @return string : Chaine HTML
        +*/ +function insere_lien_insertion_lien_geogebra_dans_ckeditor($titre_ggb, $url_ggb) { + return "
        Insérer un lien vers le visionneur GeoGebra pour ce fichier GGB
        "; +} + /** fonction alertant sur la configuration de suhosin * * @return string Chaine de texte HTML diff --git a/public/visionneur_geogebra.php b/public/visionneur_geogebra.php new file mode 100644 index 000000000..ebdec8d5d --- /dev/null +++ b/public/visionneur_geogebra.php @@ -0,0 +1,70 @@ + + + +*/ + +$niveau_arbo = "public"; +require_once("../lib/initialisations.inc.php"); + +// On vérifie si l'accès est restreint ou non +require_once("lib/auth.php"); + +require_once("../lib/header.inc.php"); +?> + + + +Retour\n"; + } +?> + +
        + +

        Visionneur GeoGebra

        + + "; + + if(!isset($url_ggb)) { + echo "

        Aucun fichier à afficher.

        \n"; + echo "\n"; + echo "\n"; + die(); + } + + if(!preg_match("/ggb/i", $url_ggb)) { + echo "

        Le type du fichier est incorrect.

        \n"; + echo "\n"; + echo "\n"; + die(); + } + + //$url_ggb=$gepiPath.preg_replace("#\.\.#", "", $url_ggb); + + $debut_url=preg_replace("#public/.*#","",$_SERVER['HTTP_REFERER']); + $url_ggb=$debut_url.preg_replace("#\.\.#", "", $url_ggb); + //echo "url_ggb=$url_ggb
        "; + ?> + + + + + Il faut installer un plugin Java (1.5 ou plus récent) pour visionner cette page. + +
        + + From 126ed493ca6ab60688824723807f9aac4078842a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 6 Aug 2012 20:47:08 +0200 Subject: [PATCH 0087/1150] =?UTF-8?q?Correctif=20pour=20les=20couleurs=20p?= =?UTF-8?q?ersonnalis=C3=A9es=20et=20initialisation=20de=20vraiable=20en?= =?UTF-8?q?=20acc=C3=A8s=20public?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_template.inc.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/header_template.inc.php b/lib/header_template.inc.php index 219343219..2a12fd913 100644 --- a/lib/header_template.inc.php +++ b/lib/header_template.inc.php @@ -282,7 +282,10 @@ function last_connection() { } elseif ($niveau_arbo == "3") { $gepiPath2="../../.."; } - + elseif($niveau_arbo == "public") { + $gepiPath2=".."; + } + $Style_CSS=array(); // initialisation du tableau de Style supplémentaire if (isset($GLOBALS['multisite']) AND $GLOBALS['multisite'] == 'y') { @@ -317,7 +320,8 @@ function last_connection() { $_SESSION['cacher_header']="y"; } -$petit_entete=getPref($_SESSION['login'], "petit_entete", ""); +$petit_entete=""; +if(isset($_SESSION['login'])) {$petit_entete=getPref($_SESSION['login'], "petit_entete", "");} //echo "\$petit_entete=$petit_entete
        "; if(($petit_entete=='y')||($petit_entete=='n')) { $_SESSION['cacher_header']=$petit_entete; From 806f341a0180361d44413885b448bcf8337aca47 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 7 Aug 2012 12:24:53 +0200 Subject: [PATCH 0088/1150] =?UTF-8?q?Ajout=20de=20GGB=20(GeoGebra)=20aux?= =?UTF-8?q?=20formats=20autoris=C3=A9s=20par=20d=C3=A9faut.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/traitement_data.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/traitement_data.inc.php b/lib/traitement_data.inc.php index 1dab33b7b..6a748e2a6 100644 --- a/lib/traitement_data.inc.php +++ b/lib/traitement_data.inc.php @@ -300,7 +300,7 @@ function no_php_in_img($chaine) { // Et on traite les fichiers uploadés if (!isset($AllowedFilesExtensions)) { //$AllowedFilesExtensions = array("bmp","csv","doc","epg","gif","ico","jpg","odg","odp","ods","odt","pdf","png","ppt","swf","txt","xcf","xls","zip","pps"); - $AllowedFilesExtensions = array("bmp","csv","doc","dot","epg","gif", "gz","ico","jpg","jpeg","odg","odp","ods","odt","pdf","png","ppt","pptx","sql","swf","txt","xcf","xls","xlsx","xml","zip","pps","docx"); + $AllowedFilesExtensions = array("bmp","csv","doc","dot","epg","gif","ggb","gz","ico","jpg","jpeg","odg","odp","ods","odt","pdf","png","ppt","pptx","sql","swf","txt","xcf","xls","xlsx","xml","zip","pps","docx"); } if (isset($_FILES) and !empty($_FILES)) { From 07892d1f38e7cda0394dd9f4a6289908547206f3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 7 Aug 2012 12:25:14 +0200 Subject: [PATCH 0089/1150] =?UTF-8?q?Ajout=20d'une=20pr=C3=A9cision=20dans?= =?UTF-8?q?=20les=20remarques.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 1f7f98dd6..9d90d470e 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -1242,7 +1242,7 @@ function coeff(){
      • Un seul coefficient non nul provoque l'apparition de tous les coefficients sur les bulletins.
      • Un/des coefficients non nul(s) est/sont nécessaire(s) pour que la ligne moyenne générale apparaisse sur le bulletin.
      • -
      • Pour les enseignements impliquant plusieurs classes, le coefficient s'applique à tous les élèves de la classe courante et peut être réglé indépendamment d'une classe à l'autre (pour le régler individuellement par élève, voir la liste des élèves inscrits).
        +
      • Pour les enseignements impliquant plusieurs classes, le coefficient s'applique à tous les élèves de la classe courante et peut être réglé indépendamment d'une classe à l'autre (pour le régler individuellement par élève, voir la liste des élèves inscrits).
        Les coefficients réglés ici ne s'appliquent donc qu'à la classe , même dans le cas des enseignements concernant des regroupements de plusieurs classes.
      • +
      • En revanche, la visibilité d'un groupe dans tel ou tel domaine (bulletins, carnet de notes, cahiers de textes) est propre au groupe (pour toutes les classes associées au groupe).
      • Les modes de prise en compte de la moyenne d'un enseignement dans la moyenne générale sont les suivants :
          From 98c1e691d4233b3e2e3b9f321499581e4ca0302a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 7 Aug 2012 12:27:01 +0200 Subject: [PATCH 0090/1150] =?UTF-8?q?Affichage=20des=20autres=20groupes=20?= =?UTF-8?q?de=20la=20m=C3=AAme=20mati=C3=A8re=20dans=20la=20m=C3=AAme=20cl?= =?UTF-8?q?asse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/add_group.php | 8 ++++++++ groupes/edit_group.php | 9 +++++++++ 2 files changed, 17 insertions(+) diff --git a/groupes/add_group.php b/groupes/add_group.php index b47856598..d1f5651a0 100644 --- a/groupes/add_group.php +++ b/groupes/add_group.php @@ -430,6 +430,14 @@ } } echo "\n"; + + $tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $reg_matiere); + if($tab_autres_groupes!="") { + echo "
          \n"; + echo "

          Il existe d'autres enseignements dans la même matière pour cette classe :

          \n"; + echo $tab_autres_groupes; + echo "
          \n"; + } } // Fin : professeurs diff --git a/groupes/edit_group.php b/groupes/edit_group.php index 080c3d397..5517f6b56 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -783,6 +783,15 @@ function checkbox_change(cpt) { } echo "\n"; + +$tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $reg_matiere, array($id_groupe)); +if($tab_autres_groupes!="") { + echo "
          \n"; + echo "

          Il existe d'autres enseignements dans la même matière pour cette classe :

          \n"; + echo $tab_autres_groupes; + echo "
          \n"; +} + echo "
          \n"; echo "\n"; echo "\n"; From be7e506d46d90507a886f5f7ea7d3b31d8175d26 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 7 Aug 2012 12:42:17 +0200 Subject: [PATCH 0091/1150] =?UTF-8?q?Affichage=20des=20autres=20groupes=20?= =?UTF-8?q?de=20la=20m=C3=AAme=20mati=C3=A8re=20dans=20la=20m=C3=AAme=20cl?= =?UTF-8?q?asse?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share-html.inc.php | 126 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 126 insertions(+) diff --git a/lib/share-html.inc.php b/lib/share-html.inc.php index e52fa114b..7af5b8a61 100644 --- a/lib/share-html.inc.php +++ b/lib/share-html.inc.php @@ -2026,4 +2026,130 @@ function tableau_html_eleves_du_groupe($id_groupe, $nb_col) { return $retour; } + +/** Retourne un tableau HTML des groupes d'une classe dans telle matière + * @param integer $id_classe : Identifiant de ckasse + * @param string $matiere : Nom de matière + * + * @return string Tableau HTML de la liste des enseignements d'une matière donnée dans une classe + */ +function tableau_html_groupe_matiere_telle_classe($id_classe, $matiere, $tab_grp_exclus=array()) { + global $tab_domaines, $tab_domaines_sigle; + + $cpt_grp=0; + + $retour="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + + $retour.="\n"; + for($i=0;$i\n"; + } + $retour.="\n"; + $retour.="\n"; + $retour.="\n"; + + // Remarque: Le coef peut différer d'une classe à l'autre pour un groupe multiclasses, + // mais la visibilité, elle est propre au groupe toutes classes confondues. + $sql="select DISTINCT g.name, g.id, g.description, jgm.id_matiere, jgc.coef, jgc.categorie_id FROM groupes g, + j_groupes_classes jgc, + j_groupes_matieres jgm + WHERE ( + jgm.id_matiere='".$matiere."' AND + jgc.id_classe='".$id_classe."' AND + jgm.id_groupe=jgc.id_groupe + AND jgc.id_groupe=g.id + ) + ORDER BY jgc.priorite,jgm.id_matiere, g.name;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $alt=1; + while($lig=mysql_fetch_object($res)) { + if(!in_array($lig->id, $tab_grp_exclus)) { + $alt=$alt*(-1); + $retour.="\n"; + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + + $retour.="\n"; + + $tab_v=array(); + $sql="SELECT * FROM j_groupes_visibilite WHERE id_groupe='$lig->id';"; + $res_v=mysql_query($sql); + while($lig_v=mysql_fetch_object($res_v)) { + $tab_v[$lig_v->domaine]=$lig_v->visible; + } + + for($i=0;$i0) { + return $retour; + } + else { + return ""; + } +} ?> From 4bb8fbf8527a0d6683058989bd89a03b84e67192 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 7 Aug 2012 13:50:25 +0200 Subject: [PATCH 0092/1150] HTMLpurifier: Upgrade vers la version 4.4.0 --- lib/HTMLPurifier.standalone.php | 1950 ++++++++++++++--- .../HTMLPurifier/ConfigSchema/schema.ser | Bin 13701 -> 14690 bytes .../ConfigSchema/schema/CSS.AllowedFonts.txt | 12 + .../ConfigSchema/schema/CSS.Trusted.txt | 9 + .../schema/Cache.SerializerPermissions.txt | 11 + .../schema/Core.ColorKeywords.txt | 3 +- .../ConfigSchema/schema/Core.EnableIDNA.txt | 9 + .../schema/HTML.AllowedComments.txt | 10 + .../schema/HTML.AllowedCommentsRegexp.txt | 15 + .../ConfigSchema/schema/HTML.Nofollow.txt | 7 + .../ConfigSchema/schema/HTML.SafeIframe.txt | 13 + .../ConfigSchema/schema/HTML.TargetBlank.txt | 8 + .../ConfigSchema/schema/HTML.Trusted.txt | 1 + .../schema/URI.SafeIframeRegexp.txt | 22 + .../HTMLPurifier/EntityLookup/entities.ser | 2 +- .../Filter/ExtractStyleBlocks.php | 177 +- .../HTMLPurifier/Lexer/PEARSax3.php | 139 -- lib/standalone/HTMLPurifier/Lexer/PH5P.php | 10 +- .../HTMLPurifier/Printer/ConfigForm.php | 2 +- 19 files changed, 1911 insertions(+), 489 deletions(-) create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/CSS.AllowedFonts.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/CSS.Trusted.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/Cache.SerializerPermissions.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/Core.EnableIDNA.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedComments.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/HTML.AllowedCommentsRegexp.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/HTML.Nofollow.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/HTML.SafeIframe.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/HTML.TargetBlank.txt create mode 100644 lib/standalone/HTMLPurifier/ConfigSchema/schema/URI.SafeIframeRegexp.txt delete mode 100644 lib/standalone/HTMLPurifier/Lexer/PEARSax3.php diff --git a/lib/HTMLPurifier.standalone.php b/lib/HTMLPurifier.standalone.php index 2dbb75efc..17c3a9e0c 100644 --- a/lib/HTMLPurifier.standalone.php +++ b/lib/HTMLPurifier.standalone.php @@ -7,7 +7,7 @@ * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS * FILE, changes will be overwritten the next time the script is run. * - * @version 4.2.0 + * @version 4.4.0 * * @warning * You must *not* include any other HTML Purifier files before this file, @@ -39,7 +39,7 @@ */ /* - HTML Purifier 4.2.0 - Standards Compliant HTML Filtering + HTML Purifier 4.4.0 - Standards Compliant HTML Filtering Copyright (C) 2006-2008 Edward Z. Yang This library is free software; you can redistribute it and/or @@ -75,10 +75,10 @@ class HTMLPurifier { /** Version of HTML Purifier */ - public $version = '4.2.0'; + public $version = '4.4.0'; /** Constant with version of HTML Purifier */ - const VERSION = '4.2.0'; + const VERSION = '4.4.0'; /** Global configuration object */ public $config; @@ -476,7 +476,7 @@ protected function mungeRgb($string) { protected function expandCSSEscape($string) { // flexibly parse it $ret = ''; - for ($i = 0, $c = mb_strlen($string); $i < $c; $i++) { + for ($i = 0, $c = strlen($string); $i < $c; $i++) { if ($string[$i] === '\\') { $i++; if ($i >= $c) { @@ -583,6 +583,13 @@ class HTMLPurifier_AttrTypes * types. */ public function __construct() { + // XXX This is kind of poor, since we don't actually /clone/ + // instances; instead, we use the supplied make() attribute. So, + // the underlying class must know how to deal with arguments. + // With the old implementation of Enum, that ignored its + // arguments when handling a make dispatch, the IAlign + // definition wouldn't work. + // pseudo-types, must be instantiated via shorthand $this->info['Enum'] = new HTMLPurifier_AttrDef_Enum(); $this->info['Bool'] = new HTMLPurifier_AttrDef_HTML_Bool(); @@ -597,6 +604,9 @@ public function __construct() { $this->info['URI'] = new HTMLPurifier_AttrDef_URI(); $this->info['LanguageCode'] = new HTMLPurifier_AttrDef_Lang(); $this->info['Color'] = new HTMLPurifier_AttrDef_HTML_Color(); + $this->info['IAlign'] = self::makeEnum('top,middle,bottom,left,right'); + $this->info['LAlign'] = self::makeEnum('top,bottom,left,right'); + $this->info['FrameTarget'] = new HTMLPurifier_AttrDef_HTML_FrameTarget(); // unimplemented aliases $this->info['ContentType'] = new HTMLPurifier_AttrDef_Text(); @@ -612,6 +622,10 @@ public function __construct() { $this->info['Number'] = new HTMLPurifier_AttrDef_Integer(false, false, true); } + private static function makeEnum($in) { + return new HTMLPurifier_AttrDef_Clone(new HTMLPurifier_AttrDef_Enum(explode(',', $in))); + } + /** * Retrieves a type * @param $type String type name @@ -847,7 +861,12 @@ class HTMLPurifier_Bootstrap public static function autoload($class) { $file = HTMLPurifier_Bootstrap::getPath($class); if (!$file) return false; - require HTMLPURIFIER_PREFIX . '/' . $file; + // Technically speaking, it should be ok and more efficient to + // just do 'require', but Antonio Parraga reports that with + // Zend extensions such as Zend debugger and APC, this invariant + // may be broken. Since we have efficient alternatives, pay + // the cost here and avoid the bug. + require_once HTMLPURIFIER_PREFIX . '/' . $file; return true; } @@ -875,10 +894,11 @@ public static function registerAutoload() { if ( ($funcs = spl_autoload_functions()) === false ) { spl_autoload_register($autoload); } elseif (function_exists('spl_autoload_unregister')) { + $buggy = version_compare(PHP_VERSION, '5.2.11', '<'); $compat = version_compare(PHP_VERSION, '5.1.2', '<=') && version_compare(PHP_VERSION, '5.1.0', '>='); foreach ($funcs as $func) { - if (is_array($func)) { + if ($buggy && is_array($func)) { // :TRICKY: There are some compatibility issues and some // places where we need to error out $reflector = new ReflectionMethod($func[0], $func[1]); @@ -921,6 +941,17 @@ abstract class HTMLPurifier_Definition */ public $setup = false; + /** + * If true, write out the final definition object to the cache after + * setup. This will be true only if all invocations to get a raw + * definition object are also optimized. This does not cause file + * system thrashing because on subsequent calls the cached object + * is used and any writes to the raw definition object are short + * circuited. See enduser-customize.html for the high-level + * picture. + */ + public $optimized = null; + /** * What type of definition is it? */ @@ -1168,6 +1199,10 @@ protected function doSetup($config) { $this->doSetupTricky($config); } + if ($config->get('CSS.Trusted')) { + $this->doSetupTrusted($config); + } + $allow_important = $config->get('CSS.AllowImportant'); // wrap all attr-defs with decorator that handles !important foreach ($this->info as $k => $v) { @@ -1209,6 +1244,23 @@ protected function doSetupTricky($config) { $this->info['overflow'] = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll')); } + protected function doSetupTrusted($config) { + $this->info['position'] = new HTMLPurifier_AttrDef_Enum(array( + 'static', 'relative', 'absolute', 'fixed' + )); + $this->info['top'] = + $this->info['left'] = + $this->info['right'] = + $this->info['bottom'] = new HTMLPurifier_AttrDef_CSS_Composite(array( + new HTMLPurifier_AttrDef_CSS_Length(), + new HTMLPurifier_AttrDef_CSS_Percentage(), + new HTMLPurifier_AttrDef_Enum(array('auto')), + )); + $this->info['z-index'] = new HTMLPurifier_AttrDef_CSS_Composite(array( + new HTMLPurifier_AttrDef_Integer(), + new HTMLPurifier_AttrDef_Enum(array('auto')), + )); + } /** * Performs extra config-based processing. Based off of @@ -1320,7 +1372,7 @@ class HTMLPurifier_Config /** * HTML Purifier's version */ - public $version = '4.2.0'; + public $version = '4.4.0'; /** * Bool indicator whether or not to automatically finalize @@ -1344,7 +1396,7 @@ class HTMLPurifier_Config /** * Parser for variables */ - protected $parser; + protected $parser = null; /** * Reference HTMLPurifier_ConfigSchema for value checking @@ -1376,7 +1428,8 @@ class HTMLPurifier_Config /** * Set to false if you do not want line and file numbers in errors - * (useful when unit testing) + * (useful when unit testing). This will also compress some errors + * and exceptions. */ public $chatty = true; @@ -1618,26 +1671,64 @@ private function _listify($lookup) { * Retrieves object reference to the HTML definition. * @param $raw Return a copy that has not been setup yet. Must be * called before it's been setup, otherwise won't work. + * @param $optimized If true, this method may return null, to + * indicate that a cached version of the modified + * definition object is available and no further edits + * are necessary. Consider using + * maybeGetRawHTMLDefinition, which is more explicitly + * named, instead. */ - public function getHTMLDefinition($raw = false) { - return $this->getDefinition('HTML', $raw); + public function getHTMLDefinition($raw = false, $optimized = false) { + return $this->getDefinition('HTML', $raw, $optimized); } /** * Retrieves object reference to the CSS definition * @param $raw Return a copy that has not been setup yet. Must be * called before it's been setup, otherwise won't work. + * @param $optimized If true, this method may return null, to + * indicate that a cached version of the modified + * definition object is available and no further edits + * are necessary. Consider using + * maybeGetRawCSSDefinition, which is more explicitly + * named, instead. + */ + public function getCSSDefinition($raw = false, $optimized = false) { + return $this->getDefinition('CSS', $raw, $optimized); + } + + /** + * Retrieves object reference to the URI definition + * @param $raw Return a copy that has not been setup yet. Must be + * called before it's been setup, otherwise won't work. + * @param $optimized If true, this method may return null, to + * indicate that a cached version of the modified + * definition object is available and no further edits + * are necessary. Consider using + * maybeGetRawURIDefinition, which is more explicitly + * named, instead. */ - public function getCSSDefinition($raw = false) { - return $this->getDefinition('CSS', $raw); + public function getURIDefinition($raw = false, $optimized = false) { + return $this->getDefinition('URI', $raw, $optimized); } /** * Retrieves a definition * @param $type Type of definition: HTML, CSS, etc * @param $raw Whether or not definition should be returned raw - */ - public function getDefinition($type, $raw = false) { + * @param $optimized Only has an effect when $raw is true. Whether + * or not to return null if the result is already present in + * the cache. This is off by default for backwards + * compatibility reasons, but you need to do things this + * way in order to ensure that caching is done properly. + * Check out enduser-customize.html for more details. + * We probably won't ever change this default, as much as the + * maybe semantics is the "right thing to do." + */ + public function getDefinition($type, $raw = false, $optimized = false) { + if ($optimized && !$raw) { + throw new HTMLPurifier_Exception("Cannot set optimized = true when raw = false"); + } if (!$this->finalized) $this->autoFinalize(); // temporarily suspend locks, so we can handle recursive definition calls $lock = $this->lock; @@ -1646,52 +1737,137 @@ public function getDefinition($type, $raw = false) { $cache = $factory->create($type, $this); $this->lock = $lock; if (!$raw) { - // see if we can quickly supply a definition + // full definition + // --------------- + // check if definition is in memory if (!empty($this->definitions[$type])) { - if (!$this->definitions[$type]->setup) { - $this->definitions[$type]->setup($this); - $cache->set($this->definitions[$type], $this); + $def = $this->definitions[$type]; + // check if the definition is setup + if ($def->setup) { + return $def; + } else { + $def->setup($this); + if ($def->optimized) $cache->add($def, $this); + return $def; } - return $this->definitions[$type]; } - // memory check missed, try cache - $this->definitions[$type] = $cache->get($this); - if ($this->definitions[$type]) { - // definition in cache, return it - return $this->definitions[$type]; + // check if definition is in cache + $def = $cache->get($this); + if ($def) { + // definition in cache, save to memory and return it + $this->definitions[$type] = $def; + return $def; } - } elseif ( - !empty($this->definitions[$type]) && - !$this->definitions[$type]->setup - ) { - // raw requested, raw in memory, quick return - return $this->definitions[$type]; + // initialize it + $def = $this->initDefinition($type); + // set it up + $this->lock = $type; + $def->setup($this); + $this->lock = null; + // save in cache + $cache->add($def, $this); + // return it + return $def; + } else { + // raw definition + // -------------- + // check preconditions + $def = null; + if ($optimized) { + if (is_null($this->get($type . '.DefinitionID'))) { + // fatally error out if definition ID not set + throw new HTMLPurifier_Exception("Cannot retrieve raw version without specifying %$type.DefinitionID"); + } + } + if (!empty($this->definitions[$type])) { + $def = $this->definitions[$type]; + if ($def->setup && !$optimized) { + $extra = $this->chatty ? " (try moving this code block earlier in your initialization)" : ""; + throw new HTMLPurifier_Exception("Cannot retrieve raw definition after it has already been setup" . $extra); + } + if ($def->optimized === null) { + $extra = $this->chatty ? " (try flushing your cache)" : ""; + throw new HTMLPurifier_Exception("Optimization status of definition is unknown" . $extra); + } + if ($def->optimized !== $optimized) { + $msg = $optimized ? "optimized" : "unoptimized"; + $extra = $this->chatty ? " (this backtrace is for the first inconsistent call, which was for a $msg raw definition)" : ""; + throw new HTMLPurifier_Exception("Inconsistent use of optimized and unoptimized raw definition retrievals" . $extra); + } + } + // check if definition was in memory + if ($def) { + if ($def->setup) { + // invariant: $optimized === true (checked above) + return null; + } else { + return $def; + } + } + // if optimized, check if definition was in cache + // (because we do the memory check first, this formulation + // is prone to cache slamming, but I think + // guaranteeing that either /all/ of the raw + // setup code or /none/ of it is run is more important.) + if ($optimized) { + // This code path only gets run once; once we put + // something in $definitions (which is guaranteed by the + // trailing code), we always short-circuit above. + $def = $cache->get($this); + if ($def) { + // save the full definition for later, but don't + // return it yet + $this->definitions[$type] = $def; + return null; + } + } + // check invariants for creation + if (!$optimized) { + if (!is_null($this->get($type . '.DefinitionID'))) { + if ($this->chatty) { + $this->triggerError("Due to a documentation error in previous version of HTML Purifier, your definitions are not being cached. If this is OK, you can remove the %$type.DefinitionRev and %$type.DefinitionID declaration. Otherwise, modify your code to use maybeGetRawDefinition, and test if the returned value is null before making any edits (if it is null, that means that a cached version is available, and no raw operations are necessary). See Customize for more details", E_USER_WARNING); + } else { + $this->triggerError("Useless DefinitionID declaration", E_USER_WARNING); + } + } + } + // initialize it + $def = $this->initDefinition($type); + $def->optimized = $optimized; + return $def; } + throw new HTMLPurifier_Exception("The impossible happened!"); + } + + private function initDefinition($type) { // quick checks failed, let's create the object if ($type == 'HTML') { - $this->definitions[$type] = new HTMLPurifier_HTMLDefinition(); + $def = new HTMLPurifier_HTMLDefinition(); } elseif ($type == 'CSS') { - $this->definitions[$type] = new HTMLPurifier_CSSDefinition(); + $def = new HTMLPurifier_CSSDefinition(); } elseif ($type == 'URI') { - $this->definitions[$type] = new HTMLPurifier_URIDefinition(); + $def = new HTMLPurifier_URIDefinition(); } else { throw new HTMLPurifier_Exception("Definition of $type type not supported"); } - // quick abort if raw - if ($raw) { - if (is_null($this->get($type . '.DefinitionID'))) { - // fatally error out if definition ID not set - throw new HTMLPurifier_Exception("Cannot retrieve raw version without specifying %$type.DefinitionID"); - } - return $this->definitions[$type]; - } - // set it up - $this->lock = $type; - $this->definitions[$type]->setup($this); - $this->lock = null; - // save in cache - $cache->set($this->definitions[$type], $this); - return $this->definitions[$type]; + $this->definitions[$type] = $def; + return $def; + } + + public function maybeGetRawDefinition($name) { + return $this->getDefinition($name, true, true); + } + + public function maybeGetRawHTMLDefinition() { + return $this->getDefinition('HTML', true, true); + } + + public function maybeGetRawCSSDefinition() { + return $this->getDefinition('CSS', true, true); + } + + public function maybeGetRawURIDefinition() { + return $this->getDefinition('URI', true, true); } /** @@ -1844,22 +2020,27 @@ public function autoFinalize() { */ public function finalize() { $this->finalized = true; - unset($this->parser); + $this->parser = null; } /** * Produces a nicely formatted error message by supplying the - * stack frame information from two levels up and OUTSIDE of - * HTMLPurifier_Config. + * stack frame information OUTSIDE of HTMLPurifier_Config. */ protected function triggerError($msg, $no) { // determine previous stack frame - $backtrace = debug_backtrace(); - if ($this->chatty && isset($backtrace[1])) { - $frame = $backtrace[1]; - $extra = " on line {$frame['line']} in file {$frame['file']}"; - } else { - $extra = ''; + $extra = ''; + if ($this->chatty) { + $trace = debug_backtrace(); + // zip(tail(trace), trace) -- but PHP is not Haskell har har + for ($i = 0, $c = count($trace); $i < $c - 1; $i++) { + if ($trace[$i + 1]['class'] === 'HTMLPurifier_Config') { + continue; + } + $frame = $trace[$i]; + $extra = " invoked on line {$frame['line']} in file {$frame['file']}"; + break; + } } trigger_error($msg . $extra, $no); } @@ -1941,7 +2122,13 @@ public function __construct() { * Unserializes the default ConfigSchema. */ public static function makeFromSerial() { - return unserialize(file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema.ser')); + $contents = file_get_contents(HTMLPURIFIER_PREFIX . '/HTMLPurifier/ConfigSchema/schema.ser'); + $r = unserialize($contents); + if (!$r) { + $hash = sha1($contents); + trigger_error("Unserialization of configuration schema failed, sha1 of file was $hash", E_USER_ERROR); + } + return $r; } /** @@ -2848,6 +3035,68 @@ private function __construct() { */ public static function muteErrorHandler() {} + /** + * iconv wrapper which mutes errors, but doesn't work around bugs. + */ + public static function unsafeIconv($in, $out, $text) { + set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); + $r = iconv($in, $out, $text); + restore_error_handler(); + return $r; + } + + /** + * iconv wrapper which mutes errors and works around bugs. + */ + public static function iconv($in, $out, $text, $max_chunk_size = 8000) { + $code = self::testIconvTruncateBug(); + if ($code == self::ICONV_OK) { + return self::unsafeIconv($in, $out, $text); + } elseif ($code == self::ICONV_TRUNCATES) { + // we can only work around this if the input character set + // is utf-8 + if ($in == 'utf-8') { + if ($max_chunk_size < 4) { + trigger_error('max_chunk_size is too small', E_USER_WARNING); + return false; + } + // split into 8000 byte chunks, but be careful to handle + // multibyte boundaries properly + if (($c = strlen($text)) <= $max_chunk_size) { + return self::unsafeIconv($in, $out, $text); + } + $r = ''; + $i = 0; + while (true) { + if ($i + $max_chunk_size >= $c) { + $r .= self::unsafeIconv($in, $out, substr($text, $i)); + break; + } + // wibble the boundary + if (0x80 != (0xC0 & ord($text[$i + $max_chunk_size]))) { + $chunk_size = $max_chunk_size; + } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 1]))) { + $chunk_size = $max_chunk_size - 1; + } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 2]))) { + $chunk_size = $max_chunk_size - 2; + } elseif (0x80 != (0xC0 & ord($text[$i + $max_chunk_size - 3]))) { + $chunk_size = $max_chunk_size - 3; + } else { + return false; // rather confusing UTF-8... + } + $chunk = substr($text, $i, $chunk_size); // substr doesn't mind overlong lengths + $r .= self::unsafeIconv($in, $out, $chunk); + $i += $chunk_size; + } + return $r; + } else { + return false; + } + } else { + return false; + } + } + /** * Cleans a UTF-8 string for well-formedness and SGML validity * @@ -2898,7 +3147,7 @@ public static function cleanUTF8($str, $force_php = false) { $out = ''; $char = ''; - $len = mb_strlen($str); + $len = strlen($str); for($i = 0; $i < $len; $i++) { $in = ord($str{$i}); $char .= $str[$i]; // append byte to char @@ -3089,6 +3338,14 @@ public static function unichr($code) { return $ret; } + public static function iconvAvailable() { + static $iconv = null; + if ($iconv === null) { + $iconv = function_exists('iconv') && self::testIconvTruncateBug() != self::ICONV_UNUSABLE; + } + return $iconv; + } + /** * Converts a string to UTF-8 based on configuration. */ @@ -3096,25 +3353,22 @@ public static function convertToUTF8($str, $config, $context) { $encoding = $config->get('Core.Encoding'); if ($encoding === 'utf-8') return $str; static $iconv = null; - if ($iconv === null) $iconv = function_exists('iconv'); - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); + if ($iconv === null) $iconv = self::iconvAvailable(); if ($iconv && !$config->get('Test.ForceNoIconv')) { - $str = iconv($encoding, 'utf-8//IGNORE', $str); + // unaffected by bugs, since UTF-8 support all characters + $str = self::unsafeIconv($encoding, 'utf-8//IGNORE', $str); if ($str === false) { // $encoding is not a valid encoding - restore_error_handler(); trigger_error('Invalid encoding ' . $encoding, E_USER_ERROR); return ''; } // If the string is bjorked by Shift_JIS or a similar encoding // that doesn't support all of ASCII, convert the naughty // characters to their true byte-wise ASCII/UTF-8 equivalents. - $str = strtr($str, HTMLPurifier_Encoder::testEncodingSupportsASCII($encoding)); - restore_error_handler(); + $str = strtr($str, self::testEncodingSupportsASCII($encoding)); return $str; } elseif ($encoding === 'iso-8859-1') { $str = utf8_encode($str); - restore_error_handler(); return $str; } trigger_error('Encoding not supported, please install iconv', E_USER_ERROR); @@ -3127,16 +3381,15 @@ public static function convertToUTF8($str, $config, $context) { */ public static function convertFromUTF8($str, $config, $context) { $encoding = $config->get('Core.Encoding'); - if ($encoding === 'utf-8') return $str; - static $iconv = null; - if ($iconv === null) $iconv = function_exists('iconv'); if ($escape = $config->get('Core.EscapeNonASCIICharacters')) { - $str = HTMLPurifier_Encoder::convertToASCIIDumbLossless($str); + $str = self::convertToASCIIDumbLossless($str); } - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); + if ($encoding === 'utf-8') return $str; + static $iconv = null; + if ($iconv === null) $iconv = self::iconvAvailable(); if ($iconv && !$config->get('Test.ForceNoIconv')) { // Undo our previous fix in convertToUTF8, otherwise iconv will barf - $ascii_fix = HTMLPurifier_Encoder::testEncodingSupportsASCII($encoding); + $ascii_fix = self::testEncodingSupportsASCII($encoding); if (!$escape && !empty($ascii_fix)) { $clear_fix = array(); foreach ($ascii_fix as $utf8 => $native) $clear_fix[$utf8] = ''; @@ -3144,15 +3397,17 @@ public static function convertFromUTF8($str, $config, $context) { } $str = strtr($str, array_flip($ascii_fix)); // Normal stuff - $str = iconv('utf-8', $encoding . '//IGNORE', $str); - restore_error_handler(); + $str = self::iconv('utf-8', $encoding . '//IGNORE', $str); return $str; } elseif ($encoding === 'iso-8859-1') { $str = utf8_decode($str); - restore_error_handler(); return $str; } trigger_error('Encoding not supported', E_USER_ERROR); + // You might be tempted to assume that the ASCII representation + // might be OK, however, this is *not* universally true over all + // encodings. So we take the conservative route here, rather + // than forcibly turn on %Core.EscapeNonASCIICharacters } /** @@ -3175,7 +3430,7 @@ public static function convertToASCIIDumbLossless($str) { $bytesleft = 0; $result = ''; $working = 0; - $len = mb_strlen($str); + $len = strlen($str); for( $i = 0; $i < $len; $i++ ) { $bytevalue = ord( $str[$i] ); if( $bytevalue <= 0x7F ) { //0xxx xxxx @@ -3202,6 +3457,49 @@ public static function convertToASCIIDumbLossless($str) { return $result; } + /** No bugs detected in iconv. */ + const ICONV_OK = 0; + + /** Iconv truncates output if converting from UTF-8 to another + * character set with //IGNORE, and a non-encodable character is found */ + const ICONV_TRUNCATES = 1; + + /** Iconv does not support //IGNORE, making it unusable for + * transcoding purposes */ + const ICONV_UNUSABLE = 2; + + /** + * glibc iconv has a known bug where it doesn't handle the magic + * //IGNORE stanza correctly. In particular, rather than ignore + * characters, it will return an EILSEQ after consuming some number + * of characters, and expect you to restart iconv as if it were + * an E2BIG. Old versions of PHP did not respect the errno, and + * returned the fragment, so as a result you would see iconv + * mysteriously truncating output. We can work around this by + * manually chopping our input into segments of about 8000 + * characters, as long as PHP ignores the error code. If PHP starts + * paying attention to the error code, iconv becomes unusable. + * + * @returns Error code indicating severity of bug. + */ + public static function testIconvTruncateBug() { + static $code = null; + if ($code === null) { + // better not use iconv, otherwise infinite loop! + $r = self::unsafeIconv('utf-8', 'ascii//IGNORE', "\xCE\xB1" . str_repeat('a', 9000)); + if ($r === false) { + $code = self::ICONV_UNUSABLE; + } elseif (($c = strlen($r)) < 9000) { + $code = self::ICONV_TRUNCATES; + } elseif ($c > 9000) { + trigger_error('Your copy of iconv is extremely buggy. Please notify HTML Purifier maintainers: include your iconv version as per phpversion()', E_USER_ERROR); + } else { + $code = self::ICONV_OK; + } + } + return $code; + } + /** * This expensive function tests whether or not a given character * encoding supports ASCII. 7/8-bit encodings like Shift_JIS will @@ -3214,6 +3512,11 @@ public static function convertToASCIIDumbLossless($str) { * which can be used to "undo" any overzealous iconv action. */ public static function testEncodingSupportsASCII($encoding, $bypass = false) { + // All calls to iconv here are unsafe, proof by case analysis: + // If ICONV_OK, no difference. + // If ICONV_TRUNCATE, all calls involve one character inputs, + // so bug is not triggered. + // If ICONV_UNUSABLE, this call is irrelevant static $encodings = array(); if (!$bypass) { if (isset($encodings[$encoding])) return $encodings[$encoding]; @@ -3227,24 +3530,22 @@ public static function testEncodingSupportsASCII($encoding, $bypass = false) { if (strpos($lenc, 'iso-8859-') === 0) return array(); } $ret = array(); - set_error_handler(array('HTMLPurifier_Encoder', 'muteErrorHandler')); - if (iconv('UTF-8', $encoding, 'a') === false) return false; + if (self::unsafeIconv('UTF-8', $encoding, 'a') === false) return false; for ($i = 0x20; $i <= 0x7E; $i++) { // all printable ASCII chars $c = chr($i); // UTF-8 char - $r = iconv('UTF-8', "$encoding//IGNORE", $c); // initial conversion + $r = self::unsafeIconv('UTF-8', "$encoding//IGNORE", $c); // initial conversion if ( $r === '' || // This line is needed for iconv implementations that do not // omit characters that do not exist in the target character set - ($r === $c && iconv($encoding, 'UTF-8//IGNORE', $r) !== $c) + ($r === $c && self::unsafeIconv($encoding, 'UTF-8//IGNORE', $r) !== $c) ) { // Reverse engineer: what's the UTF-8 equiv of this byte // sequence? This assumes that there's no variable width // encoding that doesn't support ASCII. - $ret[iconv($encoding, 'UTF-8//IGNORE', $c)] = $c; + $ret[self::unsafeIconv($encoding, 'UTF-8//IGNORE', $c)] = $c; } } - restore_error_handler(); $encodings[$encoding] = $ret; return $ret; } @@ -3813,6 +4114,11 @@ class HTMLPurifier_Generator */ private $_flashCompat; + /** + * Cache of %Output.FixInnerHTML + */ + private $_innerHTMLFix; + /** * Stack for keeping track of object information when outputting IE * compatibility code. @@ -3831,6 +4137,7 @@ class HTMLPurifier_Generator public function __construct($config, $context) { $this->config = $config; $this->_scriptFix = $config->get('Output.CommentScriptContents'); + $this->_innerHTMLFix = $config->get('Output.FixInnerHTML'); $this->_sortAttr = $config->get('Output.SortAttr'); $this->_flashCompat = $config->get('Output.FlashCompat'); $this->_def = $config->getHTMLDefinition(); @@ -3909,19 +4216,7 @@ public function generateFromToken($token) { $_extra = ''; if ($this->_flashCompat) { if ($token->name == "object" && !empty($this->_flashStack)) { - $flash = array_pop($this->_flashStack); - $compat_token = new HTMLPurifier_Token_Empty("embed"); - foreach ($flash->attr as $name => $val) { - if ($name == "classid") continue; - if ($name == "type") continue; - if ($name == "data") $name = "src"; - $compat_token->attr[$name] = $val; - } - foreach ($flash->param as $name => $val) { - if ($name == "movie") $name = "src"; - $compat_token->attr[$name] = $val; - } - $_extra = ""; + // doesn't do anything for now } } return $_extra . 'name . '>'; @@ -3979,6 +4274,37 @@ public function generateAttributes($assoc_array_of_attributes, $element = false) continue; } } + // Workaround for Internet Explorer innerHTML bug. + // Essentially, Internet Explorer, when calculating + // innerHTML, omits quotes if there are no instances of + // angled brackets, quotes or spaces. However, when parsing + // HTML (for example, when you assign to innerHTML), it + // treats backticks as quotes. Thus, + // `` + // becomes + // `` + // becomes + // + // Fortunately, all we need to do is trigger an appropriate + // quoting style, which we do by adding an extra space. + // This also is consistent with the W3C spec, which states + // that user agents may ignore leading or trailing + // whitespace (in fact, most don't, at least for attributes + // like alt, but an extra space at the end is barely + // noticeable). Still, we have a configuration knob for + // this, since this transformation is not necesary if you + // don't process user input with innerHTML or you don't plan + // on supporting Internet Explorer. + if ($this->_innerHTMLFix) { + if (strpos($value, '`') !== false) { + // check if correct quoting style would not already be + // triggered + if (strcspn($value, '"\' <>') === strlen($value)) { + // protect! + $value .= ' '; + } + } + } $html .= $key.'="'.$this->escape($value).'" '; } return rtrim($html); @@ -4154,7 +4480,7 @@ public function getAnonymousModule() { return $this->_anonModule; } - private $_anonModule; + private $_anonModule = null; // PUBLIC BUT INTERNAL VARIABLES -------------------------------------- @@ -4370,7 +4696,7 @@ protected function setupConfigStuff($config) { } } foreach ($forbidden_attributes as $key => $v) { - if (mb_strlen($key) < 2) continue; + if (strlen($key) < 2) continue; if ($key[0] != '*') continue; if ($key[1] == '.') { trigger_error("Error with $key: *.attr syntax not supported for HTML.ForbiddenAttributes; use attr instead", E_USER_WARNING); @@ -4415,7 +4741,7 @@ public function parseTinyMCEAllowedList($list) { } if ($element !== '*') $elements[$element] = true; if (!$attr) continue; - $attr = substr($attr, 0, mb_strlen($attr) - 1); // remove trailing ] + $attr = substr($attr, 0, strlen($attr) - 1); // remove trailing ] $attr = explode('|', $attr); foreach ($attr as $key) { $attributes["$element.$key"] = true; @@ -4743,11 +5069,11 @@ public function __construct() { 'Presentation', 'Edit', 'Bdo', 'Tables', 'Image', 'StyleAttribute', // Unsafe: - 'Scripting', 'Object', 'Forms', + 'Scripting', 'Object', 'Forms', // Sorta legacy, but present in strict: 'Name', ); - $transitional = array('Legacy', 'Target'); + $transitional = array('Legacy', 'Target', 'Iframe'); $xml = array('XMLCommonAttributes'); $non_xml = array('NonXMLCommonAttributes'); @@ -4790,7 +5116,9 @@ public function __construct() { $this->doctypes->register( 'XHTML 1.1', true, - array_merge($common, $xml, array('Ruby')), + // Iframe is a real XHTML 1.1 module, despite being + // "transitional"! + array_merge($common, $xml, array('Ruby', 'Iframe')), array('Tidy_Strict', 'Tidy_XHTML', 'Tidy_Proprietary', 'Tidy_Strict', 'Tidy_Name'), // Tidy_XHTML1_1 array(), '-//W3C//DTD XHTML 1.1//EN', @@ -4894,19 +5222,22 @@ public function setup($config) { } } - // add proprietary module (this gets special treatment because - // it is completely removed from doctypes, etc.) + // custom modules if ($config->get('HTML.Proprietary')) { $modules[] = 'Proprietary'; } - - // add SafeObject/Safeembed modules if ($config->get('HTML.SafeObject')) { $modules[] = 'SafeObject'; } if ($config->get('HTML.SafeEmbed')) { $modules[] = 'SafeEmbed'; } + if ($config->get('HTML.Nofollow')) { + $modules[] = 'Nofollow'; + } + if ($config->get('HTML.TargetBlank')) { + $modules[] = 'TargetBlank'; + } // merge in custom modules $modules = array_merge($modules, $this->userModules); @@ -5042,6 +5373,13 @@ public function getElement($name, $trusted = null) { // :TODO: // non-standalone definitions that don't have a standalone // to merge into could be deferred to the end + // HOWEVER, it is perfectly valid for a non-standalone + // definition to lack a standalone definition, even + // after all processing: this allows us to safely + // specify extra attributes for elements that may not be + // enabled all in one place. In particular, this might + // be the case for trusted elements. WARNING: care must + // be taken that the /extra/ definitions are all safe. continue; } @@ -6033,7 +6371,7 @@ public function parseData($string) { // subtracts amps that cannot possibly be escaped $num_amp = substr_count($string, '&') - substr_count($string, '& ') - - ($string[mb_strlen($string)-1] === '&' ? 1 : 0); + ($string[strlen($string)-1] === '&' ? 1 : 0); if (!$num_amp) return $string; // abort if no entities $num_esc_amp = substr_count($string, '&'); @@ -6041,7 +6379,7 @@ public function parseData($string) { // code duplication for sake of optimization, see above $num_amp_2 = substr_count($string, '&') - substr_count($string, '& ') - - ($string[mb_strlen($string)-1] === '&' ? 1 : 0); + ($string[strlen($string)-1] === '&' ? 1 : 0); if ($num_amp_2 <= $num_esc_amp) return $string; @@ -6090,7 +6428,7 @@ protected static function escapeCommentedCDATA($string) { */ protected static function removeIEConditional($string) { return preg_replace( - '##si', // probably should generalize for all strings + '##si', // probably should generalize for all strings '', $string ); @@ -6128,11 +6466,11 @@ public function normalize($html, $config, $context) { $html = $this->escapeCommentedCDATA($html); } - $html = $this->removeIEConditional($html); - // escape CDATA $html = $this->escapeCDATA($html); + $html = $this->removeIEConditional($html); + // extract body from document if applicable if ($config->get('Core.ConvertDocumentToFragment')) { $e = false; @@ -6213,7 +6551,7 @@ public function __construct($preserve = false) { // extra letters not to escape if ($preserve !== false) { - for ($i = 0, $c = mb_strlen($preserve); $i < $c; $i++) { + for ($i = 0, $c = strlen($preserve); $i < $c; $i++) { $this->preserve[ord($preserve[$i])] = true; } } @@ -6231,7 +6569,7 @@ public function __construct($preserve = false) { */ public function encode($string) { $ret = ''; - for ($i = 0, $c = mb_strlen($string); $i < $c; $i++) { + for ($i = 0, $c = strlen($string); $i < $c; $i++) { if ($string[$i] !== '%' && !isset($this->preserve[$int = ord($string[$i])]) ) { $ret .= '%' . sprintf('%02X', $int); } else { @@ -6253,7 +6591,7 @@ public function normalize($string) { $parts = explode('%', $string); $ret = array_shift($parts); foreach ($parts as $part) { - $length = mb_strlen($part); + $length = strlen($part); if ($length < 2) { $ret .= '%25' . $part; continue; @@ -6383,7 +6721,7 @@ class HTMLPurifier_PropertyListIterator extends FilterIterator */ public function __construct(Iterator $iterator, $filter = null) { parent::__construct($iterator); - $this->l = mb_strlen($filter); + $this->l = strlen($filter); $this->filter = $filter; } @@ -6809,7 +7147,7 @@ public function getSchemeObj($config, $context) { } else { // no scheme: retrieve the default one $def = $config->getDefinition('URI'); - $scheme_obj = $registry->getScheme($def->defaultScheme, $config, $context); + $scheme_obj = $def->getDefaultScheme($config, $context); if (!$scheme_obj) { // something funky happened to the default scheme object trigger_error( @@ -6836,14 +7174,6 @@ public function validate($config, $context) { $chars_gen_delims = ':/?#[]@'; $chars_pchar = $chars_sub_delims . ':@'; - // validate scheme (MUST BE FIRST!) - if (!is_null($this->scheme) && is_null($this->host)) { - $def = $config->getDefinition('URI'); - if ($def->defaultScheme === $this->scheme) { - $this->scheme = null; - } - } - // validate host if (!is_null($this->host)) { $host_def = new HTMLPurifier_AttrDef_URI_Host(); @@ -6851,6 +7181,21 @@ public function validate($config, $context) { if ($this->host === false) $this->host = null; } + // validate scheme + // NOTE: It's not appropriate to check whether or not this + // scheme is in our registry, since a URIFilter may convert a + // URI that we don't allow into one we do. So instead, we just + // check if the scheme can be dropped because there is no host + // and it is our default scheme. + if (!is_null($this->scheme) && is_null($this->host) || $this->host === '') { + // support for relative paths is pretty abysmal when the + // scheme is present, so axe it when possible + $def = $config->getDefinition('URI'); + if ($def->defaultScheme === $this->scheme) { + $this->scheme = null; + } + } + // validate username if (!is_null($this->userinfo)) { $encoder = new HTMLPurifier_PercentEncoder($chars_sub_delims . ':'); @@ -6865,32 +7210,48 @@ public function validate($config, $context) { // validate path $path_parts = array(); $segments_encoder = new HTMLPurifier_PercentEncoder($chars_pchar . '/'); - if (!is_null($this->host)) { + if (!is_null($this->host)) { // this catches $this->host === '' // path-abempty (hier and relative) + // http://www.example.com/my/path + // //www.example.com/my/path (looks odd, but works, and + // recognized by most browsers) + // (this set is valid or invalid on a scheme by scheme + // basis, so we'll deal with it later) + // file:///my/path + // ///my/path $this->path = $segments_encoder->encode($this->path); - } elseif ($this->path !== '' && $this->path[0] === '/') { - // path-absolute (hier and relative) - if (mb_strlen($this->path) >= 2 && $this->path[1] === '/') { - // This shouldn't ever happen! - $this->path = ''; - } else { + } elseif ($this->path !== '') { + if ($this->path[0] === '/') { + // path-absolute (hier and relative) + // http:/my/path + // /my/path + if (strlen($this->path) >= 2 && $this->path[1] === '/') { + // This could happen if both the host gets stripped + // out + // http://my/path + // //my/path + $this->path = ''; + } else { + $this->path = $segments_encoder->encode($this->path); + } + } elseif (!is_null($this->scheme)) { + // path-rootless (hier) + // http:my/path + // Short circuit evaluation means we don't need to check nz $this->path = $segments_encoder->encode($this->path); - } - } elseif (!is_null($this->scheme) && $this->path !== '') { - // path-rootless (hier) - // Short circuit evaluation means we don't need to check nz - $this->path = $segments_encoder->encode($this->path); - } elseif (is_null($this->scheme) && $this->path !== '') { - // path-noscheme (relative) - // (once again, not checking nz) - $segment_nc_encoder = new HTMLPurifier_PercentEncoder($chars_sub_delims . '@'); - $c = strpos($this->path, '/'); - if ($c !== false) { - $this->path = - $segment_nc_encoder->encode(substr($this->path, 0, $c)) . - $segments_encoder->encode(substr($this->path, $c)); } else { - $this->path = $segment_nc_encoder->encode($this->path); + // path-noscheme (relative) + // my/path + // (once again, not checking nz) + $segment_nc_encoder = new HTMLPurifier_PercentEncoder($chars_sub_delims . '@'); + $c = strpos($this->path, '/'); + if ($c !== false) { + $this->path = + $segment_nc_encoder->encode(substr($this->path, 0, $c)) . + $segments_encoder->encode(substr($this->path, $c)); + } else { + $this->path = $segment_nc_encoder->encode($this->path); + } } } else { // path-empty (hier and relative) @@ -6919,6 +7280,9 @@ public function validate($config, $context) { public function toString() { // reconstruct authority $authority = null; + // there is a rendering difference between a null authority + // (http:foo-bar) and an empty string authority + // (http:///foo-bar). if (!is_null($this->host)) { $authority = ''; if(!is_null($this->userinfo)) $authority .= $this->userinfo . '@'; @@ -6926,7 +7290,12 @@ public function toString() { if(!is_null($this->port)) $authority .= ':' . $this->port; } - // reconstruct the result + // Reconstruct the result + // One might wonder about parsing quirks from browsers after + // this reconstruction. Unfortunately, parsing behavior depends + // on what *scheme* was employed (file:///foo is handled *very* + // differently than http:///foo), so unfortunately we have to + // defer to the schemes to do the right thing. $result = ''; if (!is_null($this->scheme)) $result .= $this->scheme . ':'; if (!is_null($authority)) $result .= '//' . $authority; @@ -6937,6 +7306,44 @@ public function toString() { return $result; } + /** + * Returns true if this URL might be considered a 'local' URL given + * the current context. This is true when the host is null, or + * when it matches the host supplied to the configuration. + * + * Note that this does not do any scheme checking, so it is mostly + * only appropriate for metadata that doesn't care about protocol + * security. isBenign is probably what you actually want. + */ + public function isLocal($config, $context) { + if ($this->host === null) return true; + $uri_def = $config->getDefinition('URI'); + if ($uri_def->host === $this->host) return true; + return false; + } + + /** + * Returns true if this URL should be considered a 'benign' URL, + * that is: + * + * - It is a local URL (isLocal), and + * - It has a equal or better level of security + */ + public function isBenign($config, $context) { + if (!$this->isLocal($config, $context)) return false; + + $scheme_obj = $this->getSchemeObj($config, $context); + if (!$scheme_obj) return false; // conservative approach + + $current_scheme_obj = $config->getDefinition('URI')->getDefaultScheme($config, $context); + if ($current_scheme_obj->secure) { + if (!$scheme_obj->secure) { + return false; + } + } + return true; + } + } @@ -6970,6 +7377,7 @@ public function __construct() { $this->registerFilter(new HTMLPurifier_URIFilter_DisableExternal()); $this->registerFilter(new HTMLPurifier_URIFilter_DisableExternalResources()); $this->registerFilter(new HTMLPurifier_URIFilter_HostBlacklist()); + $this->registerFilter(new HTMLPurifier_URIFilter_SafeIframe()); $this->registerFilter(new HTMLPurifier_URIFilter_MakeAbsolute()); $this->registerFilter(new HTMLPurifier_URIFilter_Munge()); } @@ -6995,9 +7403,13 @@ protected function doSetup($config) { protected function setupFilters($config) { foreach ($this->registeredFilters as $name => $filter) { - $conf = $config->get('URI.' . $name); - if ($conf !== false && $conf !== null) { + if ($filter->always_load) { $this->addFilter($filter, $config); + } else { + $conf = $config->get('URI.' . $name); + if ($conf !== false && $conf !== null) { + $this->addFilter($filter, $config); + } } } unset($this->registeredFilters); @@ -7015,6 +7427,10 @@ protected function setupMemberVariables($config) { if (is_null($this->defaultScheme)) $this->defaultScheme = $config->get('URI.DefaultScheme'); } + public function getDefaultScheme($config, $context) { + return HTMLPurifier_URISchemeRegistry::instance()->getScheme($this->defaultScheme, $config, $context); + } + public function filter(&$uri, $config, $context) { foreach ($this->filters as $name => $f) { $result = $f->filter($uri, $config, $context); @@ -7041,7 +7457,21 @@ public function postFilter(&$uri, $config, $context) { * Chainable filters for custom URI processing. * * These filters can perform custom actions on a URI filter object, - * including transformation or blacklisting. + * including transformation or blacklisting. A filter named Foo + * must have a corresponding configuration directive %URI.Foo, + * unless always_load is specified to be true. + * + * The following contexts may be available while URIFilters are being + * processed: + * + * - EmbeddedURI: true if URI is an embedded resource that will + * be loaded automatically on page load + * - CurrentToken: a reference to the token that is currently + * being processed + * - CurrentAttr: the name of the attribute that is currently being + * processed + * - CurrentCSSProperty: the name of the CSS property that is + * currently being processed (if applicable) * * @warning This filter is called before scheme object validation occurs. * Make sure, if you require a specific scheme object, you @@ -7062,7 +7492,15 @@ abstract class HTMLPurifier_URIFilter public $post = false; /** - * Performs initialization for the filter + * True if this filter should always be loaded (this permits + * a filter to be named Foo without the corresponding %URI.Foo + * directive existing.) + */ + public $always_load = false; + + /** + * Performs initialization for the filter. If the filter returns + * false, this means that it shouldn't be considered active. */ public function prepare($config) {return true;} @@ -7157,11 +7595,13 @@ public function parse($uri) { /** * Validator for the components of a URI for a specific scheme */ -class HTMLPurifier_URIScheme +abstract class HTMLPurifier_URIScheme { /** - * Scheme's default port (integer) + * Scheme's default port (integer). If an explicit port number is + * specified that coincides with the default port, it will be + * elided. */ public $default_port = null; @@ -7171,6 +7611,12 @@ class HTMLPurifier_URIScheme */ public $browsable = false; + /** + * Whether or not data transmitted over this scheme is encrypted. + * https is secure, http is not. + */ + public $secure = false; + /** * Whether or not the URI always uses , resolves edge cases * with making relative URIs absolute @@ -7178,17 +7624,62 @@ class HTMLPurifier_URIScheme public $hierarchical = false; /** - * Validates the components of a URI - * @note This implementation should be called by children if they define - * a default port, as it does port processing. - * @param $uri Instance of HTMLPurifier_URI + * Whether or not the URI may omit a hostname when the scheme is + * explicitly specified, ala file:///path/to/file. As of writing, + * 'file' is the only scheme that browsers support his properly. + */ + public $may_omit_host = false; + + /** + * Validates the components of a URI for a specific scheme. + * @param $uri Reference to a HTMLPurifier_URI object + * @param $config HTMLPurifier_Config object + * @param $context HTMLPurifier_Context object + * @return Bool success or failure + */ + public abstract function doValidate(&$uri, $config, $context); + + /** + * Public interface for validating components of a URI. Performs a + * bunch of default actions. Don't overload this method. + * @param $uri Reference to a HTMLPurifier_URI object * @param $config HTMLPurifier_Config object * @param $context HTMLPurifier_Context object * @return Bool success or failure */ public function validate(&$uri, $config, $context) { if ($this->default_port == $uri->port) $uri->port = null; - return true; + // kludge: browsers do funny things when the scheme but not the + // authority is set + if (!$this->may_omit_host && + // if the scheme is present, a missing host is always in error + (!is_null($uri->scheme) && ($uri->host === '' || is_null($uri->host))) || + // if the scheme is not present, a *blank* host is in error, + // since this translates into '///path' which most browsers + // interpret as being 'http://path'. + (is_null($uri->scheme) && $uri->host === '') + ) { + do { + if (is_null($uri->scheme)) { + if (substr($uri->path, 0, 2) != '//') { + $uri->host = null; + break; + } + // URI is '////path', so we cannot nullify the + // host to preserve semantics. Try expanding the + // hostname instead (fall through) + } + // first see if we can manually insert a hostname + $host = $config->get('URI.Host'); + if (!is_null($host)) { + $uri->host = $host; + } else { + // we can't do anything sensible, reject the URL. + return false; + } + } while (false); + } + return $this->doValidate($uri, $config, $context); } } @@ -7440,9 +7931,9 @@ public function getSigFigs($n) { $n = ltrim($n, '0+-'); $dp = strpos($n, '.'); // decimal position if ($dp === false) { - $sigfigs = mb_strlen(rtrim($n, '0')); + $sigfigs = strlen(rtrim($n, '0')); } else { - $sigfigs = mb_strlen(ltrim($n, '0.')); // eliminate extra decimal character + $sigfigs = strlen(ltrim($n, '0.')); // eliminate extra decimal character if ($dp !== 0) $sigfigs--; } return $sigfigs; @@ -7488,7 +7979,7 @@ private function round($n, $sigfigs) { // This algorithm partially depends on the standardized // form of numbers that comes out of bcmath. $n = bcadd($n, $neg . '5' . str_repeat('0', $new_log - $sigfigs), 0); - $n = substr($n, 0, $sigfigs + mb_strlen($neg)) . str_repeat('0', $new_log - $sigfigs + 1); + $n = substr($n, 0, $sigfigs + strlen($neg)) . str_repeat('0', $new_log - $sigfigs + 1); } return $n; } else { @@ -7508,7 +7999,7 @@ private function scale($r, $scale) { // look something like 4652999999999.9234. We grab one more digit // than we need to precise from $r and then use that to round // appropriately. - $precise = (string) round(substr($r, 0, mb_strlen($r) + $scale), -1); + $precise = (string) round(substr($r, 0, strlen($r) + $scale), -1); // Now we return it, truncating the zero that was rounded off. return substr($precise, 0, -1) . str_repeat('0', -$scale + 1); } @@ -7776,6 +8267,35 @@ public function validate($css, $config, $context) { +/** + * Dummy AttrDef that mimics another AttrDef, BUT it generates clones + * with make. + */ +class HTMLPurifier_AttrDef_Clone extends HTMLPurifier_AttrDef +{ + /** + * What we're cloning + */ + protected $clone; + + public function __construct($clone) { + $this->clone = $clone; + } + + public function validate($v, $config, $context) { + return $this->clone->validate($v, $config, $context); + } + + public function make($string) { + return clone $this->clone; + } + +} + + + + + // Enum = Enumerated /** * Validates a keyword against a list of valid values. @@ -7826,7 +8346,7 @@ public function validate($string, $config, $context) { * case sensitive */ public function make($string) { - if (mb_strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') { + if (strlen($string) > 2 && $string[0] == 's' && $string[1] == ':') { $string = substr($string, 2); $sensitive = true; } else { @@ -7934,7 +8454,7 @@ public function validate($string, $config, $context) { if ($num_subtags == 0) return false; // sanity check // process primary subtag : $subtags[0] - $length = mb_strlen($subtags[0]); + $length = strlen($subtags[0]); switch ($length) { case 0: return false; @@ -7959,7 +8479,7 @@ public function validate($string, $config, $context) { if ($num_subtags == 1) return $new_string; // process second subtag : $subtags[1] - $length = mb_strlen($subtags[1]); + $length = strlen($subtags[1]); if ($length == 0 || ($length == 1 && $subtags[1] != 'x') || $length > 8 || !ctype_alnum($subtags[1])) { return $new_string; } @@ -7970,7 +8490,7 @@ public function validate($string, $config, $context) { // process all other subtags, index 2 and up for ($i = 2; $i < $num_subtags; $i++) { - $length = mb_strlen($subtags[$i]); + $length = strlen($subtags[$i]); if ($length == 0 || $length > 8 || !ctype_alnum($subtags[$i])) { return $new_string; } @@ -8060,7 +8580,7 @@ public function __construct($embeds_resource = false) { } public function make($string) { - $embeds = (bool) $string; + $embeds = ($string === 'embedded'); return new HTMLPurifier_AttrDef_URI($embeds); } @@ -8496,7 +9016,7 @@ public function validate($color, $config, $context) { if (strpos($color, 'rgb(') !== false) { // rgb literal handling - $length = mb_strlen($color); + $length = strlen($color); if (strpos($color, ')') !== $length - 1) return false; $triad = substr($color, 4, $length - 4 - 1); $parts = explode(',', $triad); @@ -8506,7 +9026,7 @@ public function validate($color, $config, $context) { foreach ($parts as $part) { $part = trim($part); if ($part === '') return false; - $length = mb_strlen($part); + $length = strlen($part); if ($part[$length - 1] === '%') { // handle percents if (!$type) { @@ -8541,7 +9061,7 @@ public function validate($color, $config, $context) { $hex = $color; $color = '#' . $color; } - $length = mb_strlen($hex); + $length = strlen($hex); if ($length !== 3 && $length !== 6) return false; if (!ctype_xdigit($hex)) return false; } @@ -8831,11 +9351,43 @@ public function validate($string, $config, $context) { /** * Validates a font family list according to CSS spec - * @todo whitelisting allowed fonts would be nice */ class HTMLPurifier_AttrDef_CSS_FontFamily extends HTMLPurifier_AttrDef { + protected $mask = null; + + public function __construct() { + $this->mask = '- '; + for ($c = 'a'; $c <= 'z'; $c++) $this->mask .= $c; + for ($c = 'A'; $c <= 'Z'; $c++) $this->mask .= $c; + for ($c = '0'; $c <= '9'; $c++) $this->mask .= $c; // cast-y, but should be fine + // special bytes used by UTF-8 + for ($i = 0x80; $i <= 0xFF; $i++) { + // We don't bother excluding invalid bytes in this range, + // because the our restriction of well-formed UTF-8 will + // prevent these from ever occurring. + $this->mask .= chr($i); + } + + /* + PHP's internal strcspn implementation is + O(length of string * length of mask), making it inefficient + for large masks. However, it's still faster than + preg_match 8) + for (p = s1;;) { + spanp = s2; + do { + if (*spanp == c || p == s1_end) { + return p - s1; + } + } while (spanp++ < (s2_end - 1)); + c = *++p; + } + */ + // possible optimization: invert the mask. + } + public function validate($string, $config, $context) { static $generic_names = array( 'serif' => true, @@ -8844,6 +9396,7 @@ public function validate($string, $config, $context) { 'fantasy' => true, 'cursive' => true ); + $allowed_fonts = $config->get('CSS.AllowedFonts'); // assume that no font names contain commas in them $fonts = explode(',', $string); @@ -8853,12 +9406,14 @@ public function validate($string, $config, $context) { if ($font === '') continue; // match a generic name if (isset($generic_names[$font])) { - $final .= $font . ', '; + if ($allowed_fonts === null || isset($allowed_fonts[$font])) { + $final .= $font . ', '; + } continue; } // match a quoted name if ($font[0] === '"' || $font[0] === "'") { - $length = mb_strlen($font); + $length = strlen($font); if ($length <= 2) continue; $quote = $font[0]; if ($font[$length - 1] !== $quote) continue; @@ -8869,6 +9424,10 @@ public function validate($string, $config, $context) { // $font is a pure representation of the font name + if ($allowed_fonts !== null && !isset($allowed_fonts[$font])) { + continue; + } + if (ctype_alnum($font) && $font !== '') { // very simple font, allow it in unharmed $final .= $font . ', '; @@ -8879,17 +9438,103 @@ public function validate($string, $config, $context) { // shouldn't show up regardless $font = str_replace(array("\n", "\t", "\r", "\x0C"), ' ', $font); - // These ugly transforms don't pose a security - // risk (as \\ and \" might). We could try to be clever and - // use single-quote wrapping when there is a double quote - // present, but I have choosen not to implement that. - // (warning: this code relies on the selection of quotation - // mark below) - $font = str_replace('\\', '\\5C ', $font); - $font = str_replace('"', '\\22 ', $font); + // Here, there are various classes of characters which need + // to be treated differently: + // - Alphanumeric characters are essentially safe. We + // handled these above. + // - Spaces require quoting, though most parsers will do + // the right thing if there aren't any characters that + // can be misinterpreted + // - Dashes rarely occur, but they fairly unproblematic + // for parsing/rendering purposes. + // The above characters cover the majority of Western font + // names. + // - Arbitrary Unicode characters not in ASCII. Because + // most parsers give little thought to Unicode, treatment + // of these codepoints is basically uniform, even for + // punctuation-like codepoints. These characters can + // show up in non-Western pages and are supported by most + // major browsers, for example: "MS 明朝" is a + // legitimate font-name + // . See + // the CSS3 spec for more examples: + // + // You can see live samples of these on the Internet: + // + // However, most of these fonts have ASCII equivalents: + // for example, 'MS Mincho', and it's considered + // professional to use ASCII font names instead of + // Unicode font names. Thanks Takeshi Terada for + // providing this information. + // The following characters, to my knowledge, have not been + // used to name font names. + // - Single quote. While theoretically you might find a + // font name that has a single quote in its name (serving + // as an apostrophe, e.g. Dave's Scribble), I haven't + // been able to find any actual examples of this. + // Internet Explorer's cssText translation (which I + // believe is invoked by innerHTML) normalizes any + // quoting to single quotes, and fails to escape single + // quotes. (Note that this is not IE's behavior for all + // CSS properties, just some sort of special casing for + // font-family). So a single quote *cannot* be used + // safely in the font-family context if there will be an + // innerHTML/cssText translation. Note that Firefox 3.x + // does this too. + // - Double quote. In IE, these get normalized to + // single-quotes, no matter what the encoding. (Fun + // fact, in IE8, the 'content' CSS property gained + // support, where they special cased to preserve encoded + // double quotes, but still translate unadorned double + // quotes into single quotes.) So, because their + // fixpoint behavior is identical to single quotes, they + // cannot be allowed either. Firefox 3.x displays + // single-quote style behavior. + // - Backslashes are reduced by one (so \\ -> \) every + // iteration, so they cannot be used safely. This shows + // up in IE7, IE8 and FF3 + // - Semicolons, commas and backticks are handled properly. + // - The rest of the ASCII punctuation is handled properly. + // We haven't checked what browsers do to unadorned + // versions, but this is not important as long as the + // browser doesn't /remove/ surrounding quotes (as IE does + // for HTML). + // + // With these results in hand, we conclude that there are + // various levels of safety: + // - Paranoid: alphanumeric, spaces and dashes(?) + // - International: Paranoid + non-ASCII Unicode + // - Edgy: Everything except quotes, backslashes + // - NoJS: Standards compliance, e.g. sod IE. Note that + // with some judicious character escaping (since certain + // types of escaping doesn't work) this is theoretically + // OK as long as innerHTML/cssText is not called. + // We believe that international is a reasonable default + // (that we will implement now), and once we do more + // extensive research, we may feel comfortable with dropping + // it down to edgy. + + // Edgy: alphanumeric, spaces, dashes and Unicode. Use of + // str(c)spn assumes that the string was already well formed + // Unicode (which of course it is). + if (strspn($font, $this->mask) !== strlen($font)) { + continue; + } - // complicated font, requires quoting - $final .= "\"$font\", "; // note that this will later get turned into " + // Historical: + // In the absence of innerHTML/cssText, these ugly + // transforms don't pose a security risk (as \\ and \" + // might--these escapes are not supported by most browsers). + // We could try to be clever and use single-quote wrapping + // when there is a double quote present, but I have choosen + // not to implement that. (NOTE: you can reduce the amount + // of escapes by one depending on what quoting style you use) + // $font = str_replace('\\', '\\5C ', $font); + // $font = str_replace('"', '\\22 ', $font); + // $font = str_replace("'", '\\27 ', $font); + + // font possibly with spaces, requires quoting + $final .= "'$font', "; } $final = rtrim($final, ', '); if ($final === '') return false; @@ -8902,6 +9547,31 @@ public function validate($string, $config, $context) { +/** + * Validates based on {ident} CSS grammar production + */ +class HTMLPurifier_AttrDef_CSS_Ident extends HTMLPurifier_AttrDef +{ + + public function validate($string, $config, $context) { + + $string = trim($string); + + // early abort: '' and '0' (strings that convert to false) are invalid + if (!$string) return false; + + $pattern = '/^(-?[A-Za-z_][A-Za-z_\-0-9]*)$/'; + if (!preg_match($pattern, $string)) return false; + return $string; + + } + +} + + + + + /** * Decorator which enables !important to be used in CSS values. */ @@ -8925,10 +9595,10 @@ public function validate($string, $config, $context) { $string = trim($string); $is_important = false; // :TODO: optimization: test directly for !important and ! important - if (mb_strlen($string) >= 9 && substr($string, -9) === 'important') { + if (strlen($string) >= 9 && substr($string, -9) === 'important') { $temp = rtrim(substr($string, 0, -9)); // use a temp, because we might want to restore important - if (mb_strlen($temp) >= 1 && substr($temp, -1) === '!') { + if (strlen($temp) >= 1 && substr($temp, -1) === '!') { $string = rtrim(substr($temp, 0, -1)); $is_important = true; } @@ -8966,7 +9636,7 @@ public function validate($string, $config, $context) { // Optimizations if ($string === '') return false; if ($string === '0') return '0'; - if (mb_strlen($string) === 1) return false; + if (strlen($string) === 1) return false; $length = HTMLPurifier_Length::make($string); if (!$length->isValid()) return false; @@ -9152,7 +9822,7 @@ public function validate($string, $config, $context) { $string = $this->parseCDATA($string); if ($string === '') return false; - $length = mb_strlen($string); + $length = strlen($string); if ($length === 1) return false; if ($string[$length - 1] !== '%') return false; @@ -9232,13 +9902,13 @@ public function validate($uri_string, $config, $context) { $uri_string = $this->parseCDATA($uri_string); if (strpos($uri_string, 'url(') !== 0) return false; $uri_string = substr($uri_string, 4); - $new_length = mb_strlen($uri_string) - 1; + $new_length = strlen($uri_string) - 1; if ($uri_string[$new_length] != ')') return false; $uri = trim(substr($uri_string, 0, $new_length)); if (!empty($uri) && ($uri[0] == "'" || $uri[0] == '"')) { $quote = $uri[0]; - $new_length = mb_strlen($uri) - 1; + $new_length = strlen($uri) - 1; if ($uri[$new_length] !== $quote) return false; $uri = substr($uri, 1, $new_length - 1); } @@ -9252,6 +9922,15 @@ public function validate($uri_string, $config, $context) { // extra sanity check; should have been done by URI $result = str_replace(array('"', "\\", "\n", "\x0c", "\r"), "", $result); + // suspicious characters are ()'; we're going to percent encode + // them for safety. + $result = str_replace(array('(', ')', "'"), array('%28', '%29', '%27'), $result); + + // there's an extra bug where ampersands lose their escaping on + // an innerHTML cycle, so a very unlucky query parameter could + // then change the meaning of the URL. Unfortunately, there's + // not much we can do about that... + return "url(\"$result\")"; } @@ -9393,11 +10072,11 @@ public function validate($string, $config, $context) { $string = trim($string); if (empty($string)) return false; - if (isset($colors[$string])) return $colors[$string]; + if (isset($colors[strtolower($string)])) return $colors[$string]; if ($string[0] === '#') $hex = substr($string, 1); else $hex = $string; - $length = mb_strlen($hex); + $length = strlen($hex); if ($length !== 3 && $length !== 6) return false; if (!ctype_xdigit($hex)) return false; if ($length === 3) $hex = $hex[0].$hex[0].$hex[1].$hex[1].$hex[2].$hex[2]; @@ -9446,12 +10125,22 @@ public function validate($string, $config, $context) { class HTMLPurifier_AttrDef_HTML_ID extends HTMLPurifier_AttrDef { - // ref functionality disabled, since we also have to verify - // whether or not the ID it refers to exists + // selector is NOT a valid thing to use for IDREFs, because IDREFs + // *must* target IDs that exist, whereas selector #ids do not. - public function validate($id, $config, $context) { + /** + * Determines whether or not we're validating an ID in a CSS + * selector context. + */ + protected $selector; - if (!$config->get('Attr.EnableID')) return false; + public function __construct($selector = false) { + $this->selector = $selector; + } + + public function validate($id, $config, $context) { + + if (!$this->selector && !$config->get('Attr.EnableID')) return false; $id = trim($id); // trim it first @@ -9467,10 +10156,10 @@ public function validate($id, $config, $context) { '%Attr.IDPrefix is set', E_USER_WARNING); } - //if (!$this->ref) { + if (!$this->selector) { $id_accumulator =& $context->get('IDAccumulator'); if (isset($id_accumulator->ids[$id])) return false; - //} + } // we purposely avoid using regex, hopefully this is faster @@ -9490,7 +10179,7 @@ public function validate($id, $config, $context) { return false; } - if (/*!$this->ref && */$result) $id_accumulator->add($id); + if (!$this->selector && $result) $id_accumulator->add($id); // if no change was made to the ID, return the result // else, return the new id if stripping whitespace made it @@ -9522,7 +10211,7 @@ public function validate($string, $config, $context) { $string = trim($string); if ($string === '0') return $string; if ($string === '') return false; - $length = mb_strlen($string); + $length = strlen($string); if (substr($string, $length - 2) == 'px') { $string = substr($string, 0, $length - 2); } @@ -9572,7 +10261,7 @@ public function validate($string, $config, $context) { $parent_result = parent::validate($string, $config, $context); if ($parent_result !== false) return $parent_result; - $length = mb_strlen($string); + $length = strlen($string); $last_char = $string[$length - 1]; if ($last_char !== '%') return false; @@ -9667,7 +10356,7 @@ public function validate($string, $config, $context) { $parent_result = parent::validate($string, $config, $context); if ($parent_result !== false) return $parent_result; - $length = mb_strlen($string); + $length = strlen($string); $last_char = $string[$length - 1]; if ($last_char !== '*') return false; @@ -9732,7 +10421,13 @@ public function __construct() { } public function validate($string, $config, $context) { - $length = mb_strlen($string); + $length = strlen($string); + // empty hostname is OK; it's usually semantically equivalent: + // the default host as defined by a URI scheme is used: + // + // If the URI scheme defines a default for host, then that + // default applies when the host subcomponent is undefined + // or when the registered name is empty (zero length). if ($string === '') return ''; if ($length > 1 && $string[0] === '[' && $string[$length-1] === ']') { //IPv6 @@ -9748,9 +10443,8 @@ public function validate($string, $config, $context) { // A regular domain name. - // This breaks I18N domain names, but we don't have proper IRI support, - // so force users to insert Punycode. If there's complaining we'll - // try to fix things into an international friendly form. + // This doesn't match I18N domain names, but we don't have proper IRI support, + // so force users to insert Punycode. // The productions describing this are: $a = '[a-z]'; // alpha @@ -9761,10 +10455,44 @@ public function validate($string, $config, $context) { // toplabel = alpha | alpha *( alphanum | "-" ) alphanum $toplabel = "$a($and*$an)?"; // hostname = *( domainlabel "." ) toplabel [ "." ] - $match = preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string); - if (!$match) return false; + if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { + return $string; + } + + // If we have Net_IDNA2 support, we can support IRIs by + // punycoding them. (This is the most portable thing to do, + // since otherwise we have to assume browsers support + + if ($config->get('Core.EnableIDNA')) { + $idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true)); + // we need to encode each period separately + $parts = explode('.', $string); + try { + $new_parts = array(); + foreach ($parts as $part) { + $encodable = false; + for ($i = 0, $c = strlen($part); $i < $c; $i++) { + if (ord($part[$i]) > 0x7a) { + $encodable = true; + break; + } + } + if (!$encodable) { + $new_parts[] = $part; + } else { + $new_parts[] = $idna->encode($part); + } + } + $string = implode('.', $new_parts); + if (preg_match("/^($domainlabel\.)*$toplabel\.?$/i", $string)) { + return $string; + } + } catch (Exception $e) { + // XXX error reporting + } + } - return $string; + return false; } } @@ -9837,7 +10565,7 @@ public function validate($aIP, $config, $context) { { if (preg_match('#' . $pre . '$#s', $aIP, $find)) { - $aIP = substr($aIP, 0, 0-mb_strlen($find[0])); + $aIP = substr($aIP, 0, 0-strlen($find[0])); unset($find); } else @@ -9849,7 +10577,7 @@ public function validate($aIP, $config, $context) { // IPv4-compatiblity check if (preg_match('#(?<=:'.')' . $this->ip4 . '$#s', $aIP, $find)) { - $aIP = substr($aIP, 0, 0-mb_strlen($find[0])); + $aIP = substr($aIP, 0, 0-strlen($find[0])); $ip = explode('.', $find[0]); $ip = array_map('dechex', $ip); $aIP .= $ip[0] . $ip[1] . ':' . $ip[2] . $ip[3]; @@ -10355,6 +11083,52 @@ public function transform($attr, $config, $context) { +// must be called POST validation + +/** + * Adds rel="nofollow" to all outbound links. This transform is + * only attached if Attr.Nofollow is TRUE. + */ +class HTMLPurifier_AttrTransform_Nofollow extends HTMLPurifier_AttrTransform +{ + private $parser; + + public function __construct() { + $this->parser = new HTMLPurifier_URIParser(); + } + + public function transform($attr, $config, $context) { + + if (!isset($attr['href'])) { + return $attr; + } + + // XXX Kind of inefficient + $url = $this->parser->parse($attr['href']); + $scheme = $url->getSchemeObj($config, $context); + + if ($scheme->browsable && !$url->isLocal($config, $context)) { + if (isset($attr['rel'])) { + $rels = explode(' ', $attr); + if (!in_array('nofollow', $rels)) { + $rels[] = 'nofollow'; + } + $attr['rel'] = implode(' ', $rels); + } else { + $attr['rel'] = 'nofollow'; + } + } + + return $attr; + + } + +} + + + + + class HTMLPurifier_AttrTransform_SafeEmbed extends HTMLPurifier_AttrTransform { public $name = "SafeEmbed"; @@ -10407,6 +11181,7 @@ class HTMLPurifier_AttrTransform_SafeParam extends HTMLPurifier_AttrTransform public function __construct() { $this->uri = new HTMLPurifier_AttrDef_URI(true); // embedded + $this->wmode = new HTMLPurifier_AttrDef_Enum(array('window', 'opaque', 'transparent')); } public function transform($attr, $config, $context) { @@ -10429,7 +11204,7 @@ public function transform($attr, $config, $context) { } break; case 'wmode': - $attr['value'] = 'window'; + $attr['value'] = $this->wmode->validate($attr['value'], $config, $context); break; case 'movie': case 'src': @@ -10469,6 +11244,45 @@ public function transform($attr, $config, $context) { +// must be called POST validation + +/** + * Adds target="blank" to all outbound links. This transform is + * only attached if Attr.TargetBlank is TRUE. This works regardless + * of whether or not Attr.AllowedFrameTargets + */ +class HTMLPurifier_AttrTransform_TargetBlank extends HTMLPurifier_AttrTransform +{ + private $parser; + + public function __construct() { + $this->parser = new HTMLPurifier_URIParser(); + } + + public function transform($attr, $config, $context) { + + if (!isset($attr['href'])) { + return $attr; + } + + // XXX Kind of inefficient + $url = $this->parser->parse($attr['href']); + $scheme = $url->getSchemeObj($config, $context); + + if ($scheme->browsable && !$url->isBenign($config, $context)) { + $attr['target'] = 'blank'; + } + + return $attr; + + } + +} + + + + + /** * Sets height/width defaults for \n"; - - echo "
          +?> + + +
          \n"; +//]]> + +\n"; +?> + +"; - echo "Zone de dialogue sur l'incident"; - echo " Choix nature"; +?> +
          "; +?> + + + + +0) { $alt=$alt*(-1); - echo "\n"; - echo "\n"; +?> + + +\n"; - +?> + +\n"; - $texte=affiche_mesures_incident($id_incident); - echo $texte; - echo "\n"; +?> + +\n"; +?> + +\n"; +?> +
          EnseignementClassesProfesseursCoefficientCatégorieVisibilité
          ".$lig->name.""; + $sql="SELECT id, classe FROM classes c, j_groupes_classes jgc WHERE jgc.id_classe=c.id AND jgc.id_groupe='$lig->id' ORDER BY c.classe;"; + $res_clas=mysql_query($sql); + $cpt=0; + while($lig_clas=mysql_fetch_object($res_clas)) { + if($cpt>0) {$retour.=", ";} + if($lig_clas->id==$id_classe) { + $retour.="".$lig_clas->classe.""; + } + else { + $retour.=$lig_clas->classe; + } + $cpt++; + } + $retour.=""; + $sql="SELECT u.nom, u.prenom, u.civilite FROM j_groupes_professeurs jgp, utilisateurs u WHERE jgp.id_groupe='$lig->id' AND jgp.login=u.login ORDER BY u.nom, u.prenom;"; + $res_prof=mysql_query($sql); + $cpt=0; + while($lig_prof=mysql_fetch_object($res_prof)) { + if($cpt>0) {$retour.=", ";} + $retour.=$lig_prof->civilite." ".casse_mot($lig_prof->nom, "maj")." ".casse_mot(mb_substr($lig_prof->prenom,0,1), "maj"); + $cpt++; + } + $retour.="".$lig->coef.""; + $sql="SELECT * FROM matieres_categories WHERE id='$lig->categorie_id';"; + $res_cat=mysql_query($sql); + if(mysql_num_rows($res_cat)==0) { + $retour.="Aucune"; + } + else { + $lig_cat=mysql_fetch_object($res_cat); + $retour.=$lig_cat->nom_court; + } + $retour.=" + Zone de dialogue sur l'incident + + Choix nature + + Horaire et lieu d'une retenue demandée, demande de convocation de l'élève par le CPE, ..."; $tabdiv_infobulle[]=creer_div_infobulle('div_explication_commentaires',"Zone de texte : dialogue","",$texte,"",18,0,'y','y','n','n'); - echo "\n"; - echo "
          \n"; - echo "Mesures :"; - echo "
          + Mesures : + +0)||(count($tab_mes_demandee)>0)) { - echo "\n"; - echo "\n"; - echo "\n"; +?> +
          Elève
          + + + +0) { - echo "\n"; +?> + +0) { - echo "\n"; - - echo "\n"; +?> + + Demandées + + + +\n"; +?> + +"; // Boucle sur la liste des élèves $alt2=1; for($i=0;$i\n"; - echo " + \n"; +?> + +0) { - echo " +0) { - echo " +\n"; +?> + \n"; - - echo "\n"; +?> + +
          + + +\n"; +?> +
          ElèvePrisesPrises"; +?> + +"; $texte.="Un compte cpe ou scolarité peut ensuite saisir la sanction correspondante s'il juge la demande appropriée.
          "; @@ -2412,29 +2576,33 @@ function comptage_caracteres_textarea() { $texte.="Il n'y a pas d'intérêt pour un CPE à cocher une de ces cases.
          "; $texte.="Il vaut mieux passer à la saisie en suivant le lien Traitement/sanction en haut à droite.
          "; $tabdiv_infobulle[]=creer_div_infobulle("div_mesures_demandees","Mesures demandées","",$texte,"",30,0,'y','y','n','n'); - - echo ""; - echo "Demandées"; - echo "\n"; - echo "
          \n"; - //echo "Document(s) joint(s) à une mesure demandée"; - echo "Travail et/ou document(s) joint(s) à une mesure demandée"; - echo " + Travail et/ou document(s) joint(s) à une mesure demandée +
          count(\$ele_login)=".count($ele_login)."
          \n"; - echo "\n"; - echo p_nom($ele_login[$i]); - +?> +
          + + +(".$tmp_tab['liste_nbsp'].")";} @@ -2448,65 +2616,94 @@ function comptage_caracteres_textarea() { $tab_mes_eleve[]=$lig_mes->id_mesure; } } - echo "\n"; +?> + +\n"; - - echo ""; - +?> + /> + +"; - echo "Précision"; - echo "\n"; +?> + + Précision + +\n"; +?> +
          +\n"; +?> +
          \n"; +?> + +\n"; - - echo ""; +?> + + /> + +"; - echo "Précision"; - echo "\n"; +?> + + Précision + +\n"; +?> +
          +\n"; +?> +
          +Nature du travail pour la mesure demandée\n"; $texte_travail="Travail : "; @@ -2524,97 +2721,136 @@ function comptage_caracteres_textarea() { $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); $texte_travail=$lig_travail_mesure_demandee->travail; } - - echo "\n"; +?> + +0) { - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; +?> +
          FichierSupprimer
          + + \ + + + +\n"; - echo "\n"; - echo "\n"; +?> + + + +/mesures/ - echo "\n"; +?> + +\n"; +?> +
          FichierSupprimer
          $tab_file[$loop]
          + +
          +
          \n"; - echo "
          +Aucun type de mesure n'est défini.

          \n"; +?> +

          Aucun type de mesure n'est défini.

          +\n"; +?> +
          + + +
          +\n"; - echo "

          \n"; - echo "

          \n"; - echo "\n"; - //echo "
          "; - echo "(sous réserve de ne pas Demander de mesure)\n"; - echo "

          \n"; - //echo "

          \n"; - - //echo "

          \n"; - echo "

          \n"; - echo "\n"; - - //echo "

          \n"; - +?> +

          + + +

          +

          + +
          + (sous réserve de ne pas Demander de mesure) +

          +

          + +

          + - echo "

          NOTE  (*) Il est impératif de saisir une Nature d'incident pour des questions de facilité de traitement par la suite.

          \n"; +

          + NOTE  + (*) + Il est impératif de saisir une Nature d'incident pour des questions de facilité de traitement par la suite. +

          +\n"; - +?> + + +?> + \n"; +//]]> + - echo "\n"; + +\n"; - echo "function cacher_toutes_les_infobulles() {\n"; +?> +\n"; +?> +} + +//]]> + +

          \n"; +?> +

          +
          +

          + From f148fab459ddf7eb511b208b26bbcbb56a70cb7c Mon Sep 17 00:00:00 2001 From: Regis85 Date: Sat, 6 Oct 2012 13:42:43 +0200 Subject: [PATCH 0215/1150] corrections ; manquants --- mod_discipline/saisie_incident.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index 48d408f2b..86c0f6428 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -1206,16 +1206,16 @@ function recherche_utilisateur($rech_nom,$page) { if(mysql_num_rows($resProf)>0){ while($lig_class_tmp=mysql_fetch_object($resProf)){ ?> - - - + +

          @@ -1320,7 +1320,7 @@ function recherche_utilisateur($rech_nom,$page) { ?> élève ()
      + \n"; @@ -1475,7 +1475,7 @@ function recherche_utilisateur($rech_nom,$page) { } else { ?> -   +   @@ -1709,7 +1709,7 @@ function sauve_avertie(id_incident,login,avertie) { value="login; ?>" /> - From 89c8c6918cee877c6546baa9e2030bfe03f27fab Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Oct 2012 14:51:13 +0200 Subject: [PATCH 0216/1150] =?UTF-8?q?Ajout=20d'attributs=20title=20pour=20?= =?UTF-8?q?pr=C3=A9ciser=20la=20signification=20des=20C,=20T,=20P.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/consultation2.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cahier_texte_2/consultation2.php b/cahier_texte_2/consultation2.php index 56d97f6de..61df36307 100644 --- a/cahier_texte_2/consultation2.php +++ b/cahier_texte_2/consultation2.php @@ -887,21 +887,21 @@ function aff_debug($tableau){ // La restriction des notices visibles est fait plus haut echo " \n"; echo "
      \n"; - echo " P\n"; + echo " P\n"; echo "
      \n"; } if($texte_dev_courant!='') { // La restriction des notices visibles est fait plus haut echo " \n"; echo "
      \n"; - echo " T\n"; + echo " T\n"; echo "
      \n"; } if($texte_cr_courant!='') { // La restriction des notices visibles est fait plus haut echo " \n"; echo "
      \n"; - echo " C\n"; + echo " C\n"; echo "
      \n"; } From c0fee775b53176d55462c4c606776dcb1eb65886 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Oct 2012 14:51:47 +0200 Subject: [PATCH 0217/1150] =?UTF-8?q?D=C3=A9placement=20de=20l'icone=20pho?= =?UTF-8?q?to=20et=20affichage=20en=20infobulle.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/index.php | 66 ++++++++++++++++++++++++++++++------------ 1 file changed, 47 insertions(+), 19 deletions(-) diff --git a/utilisateurs/index.php b/utilisateurs/index.php index 0e5bc75ee..5f54f37b9 100644 --- a/utilisateurs/index.php +++ b/utilisateurs/index.php @@ -692,7 +692,35 @@ function test_ecriture_backup() { echo "

      {$col[$i][1]}

      {$col[$i][1]}

      \n"; + if (getSettingValue("active_module_trombino_pers")=='y') { + $codephoto = md5(mb_strtolower($col[$i][1])); + $photo = $rep_photos.$codephoto.'.jpg'; + if(file_exists($photo)) { + echo "photo présente\n"; + + $titre_infobulle_photo=$col[$i][2]; + + $texte_infobulle_photo="
      \n"; + $texte_infobulle_photo.="\"".$col[$i][2]."\""; + $texte_infobulle_photo.="
      \n"; + $texte_infobulle_photo.="
      \n"; + + $temoin_photo="y"; + + $tabdiv_infobulle[]=creer_div_infobulle('photo_'.$col[$i][1],$titre_infobulle_photo,"",$texte_infobulle_photo,"",14,0,'y','y','n','n'); + + } + } + echo "

      {$col[$i][2]}

      \n"; //echo "
      Créer un remplaçant"; @@ -701,6 +729,8 @@ function test_ecriture_backup() { } else { echo "

      {$col[$i][2]}

      {$col[$i][3]}

      \n"; - echo "\n"; - $photo = $rep_photos.$codephoto.'.jpg'; - if(file_exists($photo)) { - echo "photo présente\n"; + echo "\n"; + echo "\n"; + $photo = $rep_photos.$codephoto.'.jpg'; + if(file_exists($photo)) { + echo "\n"; + echo "' width='32' height='32' align='middle' border='0' alt='photo présente' title='photo présente' />\n"; } + echo "
      \n"; - if(acces('/eleves/visu_eleve.php',$_SESSION['statut'])) { - echo "".affiche_date_naissance($lig_eleve->naissance).""; + if($lien_visu_eleve=="y") { + echo "".affiche_date_naissance($lig_eleve->naissance).""; } else { echo affiche_date_naissance($lig_eleve->naissance); @@ -382,8 +388,8 @@ echo "\n"; - if(acces('/eleves/visu_eleve.php',$_SESSION['statut'])) { - echo "".affiche_date_naissance($lig_eleve->naissance).""; + if($lien_visu_eleve=="y") { + echo "".affiche_date_naissance($lig_eleve->naissance).""; } else { echo affiche_date_naissance($lig_eleve->naissance); @@ -487,8 +493,8 @@ echo "\n"; - if(acces('/eleves/visu_eleve.php',$_SESSION['statut'])) { - echo "".affiche_date_naissance($lig_eleve->naissance).""; + if($lien_visu_eleve=="y") { + echo "".affiche_date_naissance($lig_eleve->naissance).""; } else { echo affiche_date_naissance($lig_eleve->naissance); diff --git a/groupes/visu_profs_class.php b/groupes/visu_profs_class.php index b8aecbb44..289682a63 100644 --- a/groupes/visu_profs_class.php +++ b/groupes/visu_profs_class.php @@ -98,6 +98,10 @@ $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; } + if(($_SESSION['statut']=='autre')&&(acces('/groupes/visu_profs_class.php', 'autre'))) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; + } + $chaine_options_classes=""; $res_class_tmp=mysql_query($sql); @@ -363,6 +367,10 @@ function ouvre_popup(id_groupe,id_classe){ $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; } + if(($_SESSION['statut']=='autre')&&(acces('/groupes/visu_profs_class.php', 'autre'))) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; + } + $result_classes=mysql_query($sql); $nb_classes = mysql_num_rows($result_classes); //echo "
      - +

      - +

      @@ -2854,7 +2852,7 @@ function verif_details_incident() { return false; } else { - document.formulaire.submit(); + document.getElementById('formulaire').submit(); } } } From f8d8ddd118cf1371425c387c0923e9ad376498d1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Oct 2012 17:45:40 +0200 Subject: [PATCH 0221/1150] =?UTF-8?q?Affichage=20des=20groupes=20associ?= =?UTF-8?q?=C3=A9s=20=C3=A0=20la=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- matieres/modify_matiere.php | 53 +++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/matieres/modify_matiere.php b/matieres/modify_matiere.php index c17fc5fbc..2eb4f42d8 100644 --- a/matieres/modify_matiere.php +++ b/matieres/modify_matiere.php @@ -363,6 +363,59 @@ function checkbox_change(cpt) {


      + +"; + $res_ens=mysql_query($sql); + $nb_ens=mysql_num_rows($res_ens); + if($nb_ens==0) { + echo "

      Aucun enseignement n'est associé à la matière $current_matiere.

      \n"; + } + else { + echo "

      $nb_ens enseignement(s) associé(s) à la matière $current_matiere :
      "; + while($lig_ens=mysql_fetch_object($res_ens)) { + + $sql="SELECT c.id, c.classe FROM j_groupes_classes jgc, classes c WHERE jgc.id_classe=c.id AND jgc.id_groupe='$lig_ens->id' ORDER BY c.classe, c.nom_complet;"; + $res_clas=mysql_query($sql); + $chaine_clas=""; + if(mysql_num_rows($res_clas)>0) { + $cpt_clas=0; + while($lig_clas=mysql_fetch_object($res_clas)) { + if($cpt_clas>0) {$chaine_clas.=", ";} + $chaine_clas.="$lig_clas->classe"; + $cpt_clas++; + } + } + + $sql="SELECT u.login, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.login=u.login AND jgp.id_groupe='$lig_ens->id' ORDER BY u.nom, u.prenom;"; + $res_prof=mysql_query($sql); + $chaine_prof=""; + if(mysql_num_rows($res_prof)>0) { + $cpt_prof=0; + while($lig_prof=mysql_fetch_object($res_prof)) { + if($cpt_prof>0) {$chaine_prof.=", ";} + $chaine_prof.="$lig_prof->civilite $lig_prof->nom ".mb_substr($lig_prof->prenom,0,1).""; + $cpt_prof++; + } + } + + echo "$lig_ens->name ($lig_ens->description)"; + if($chaine_clas!="") { + echo " en $chaine_clas"; + } + if($chaine_prof!="") { + echo " avec $chaine_prof"; + } + echo "
      "; + } + echo "

      \n"; + } + echo "
      \n"; +} +?> +

      Aide :

      • Nom de matière From 7b219be85db045dca9235eed9fe7cc58527220b3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Oct 2012 18:00:15 +0200 Subject: [PATCH 0222/1150] Affichage des effectifs. --- groupes/repartition_ele_grp.php | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/groupes/repartition_ele_grp.php b/groupes/repartition_ele_grp.php index ca03ca481..c60c9649f 100644 --- a/groupes/repartition_ele_grp.php +++ b/groupes/repartition_ele_grp.php @@ -675,7 +675,6 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) } } } - \n"; echo "
        \n"; @@ -809,7 +808,16 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) echo "
      \n"; - $ligne_si_desinscription_possible.="\n"; + $ligne_si_desinscription_possible.="0) {$info_plusieurs_grp_ele.=", ";} @@ -992,6 +1000,20 @@ function confirm_Modif_tri(thechange, themessage) } } + function calcule_effectifs() { + for (var i=0;i<".count($id_groupe).";i++) { + total=0; + for (var ki=0;ki<$cpt;ki++) { + if(document.getElementById('grp_eleve_'+i+'_'+ki)) { + if(document.getElementById('grp_eleve_'+i+'_'+ki).checked==true) {total++;} + } + } + document.getElementById('effectif_colonne_'+i).innerHTML=total; + } + document.getElementById('effectif_total').innerHTML=$cpt; + } + calcule_effectifs(); + document.getElementById('tr_effectifs').style.display=''; \n"; //==================================== From bd8df9ba4677fe328406fa97a968cd6b1be038e1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 19:34:33 +0200 Subject: [PATCH 0223/1150] Lien vers la saisie d'un nouvel incident. --- eleves/visu_eleve.inc.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/eleves/visu_eleve.inc.php b/eleves/visu_eleve.inc.php index 05b226290..15723bf0d 100644 --- a/eleves/visu_eleve.inc.php +++ b/eleves/visu_eleve.inc.php @@ -2279,6 +2279,20 @@ function passer_a_eleve(ele_login,id_classe) { if($onglet!="discipline") {echo " display:none;";} echo "background-color: ".$tab_couleur['discipline']."; "; echo "'>"; + + if(acces('/mod_discipline/saisie_incident.php', $_SESSION['statut'])) { + echo "
      \n"; + //echo ""; + echo "\n"; + echo add_token_field(); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
      \n"; + } + echo "

      Incidents \"concernant\" l'".$gepiSettings['denomination_eleve']." ".$tab_ele['nom']." ".$tab_ele['prenom']."

      \n"; //======================= @@ -2288,7 +2302,6 @@ function passer_a_eleve(ele_login,id_classe) { $cal2 = new Calendrier("form_date_disc", "date_fin_disc"); //======================= - echo "
      \n"; echo $champ_quitter_page_ou_non; echo "

      Extraire les incidents entre le "; From f415f2b4302974c871d9587f08efdc8b7180b506 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 19:34:41 +0200 Subject: [PATCH 0224/1150] =?UTF-8?q?Acces=20possible=20en=20cpe=20=C3=A0?= =?UTF-8?q?=20l'agr=C3=A9gation=20des=20absences.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- class_php/class_page_accueil.php | 6 ++++++ gestion/droits_acces.php | 5 +++++ mod_abs2/admin/admin_table_agregation.php | 15 ++++++++++++++- sql/data_gepi.sql | 3 ++- utilitaires/updates/access_rights.inc.php | 16 ++++++++++++++-- 5 files changed, 41 insertions(+), 4 deletions(-) diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index 6be2a1622..02e0d5aa4 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -379,6 +379,12 @@ protected function absences_vie_scol() { $this->creeNouveauItem("/mod_abs2/index.php", "Gestion des Absences", "Cet outil vous permet de gérer les absences des élèves"); + + if(($this->statutUtilisateur=="cpe")&&(getSettingAOui('AccesCpeAgregationAbs2'))) { + $this->creeNouveauItem("/mod_abs2/admin/admin_table_agregation.php", + "Agrégation des Absences", + "Cet outil vous permet de remplir/vider la table d'agrégation des absences"); + } } if ($this->b>0){ diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 829251283..7432f23eb 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -804,6 +804,11 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesCpeAgregationAbs2'; +$texteItem="a le droit d'accéder au remplissage/vidage de la table agrégation des absences"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + //+++++++++++++++++++++++++++ // Discipline diff --git a/mod_abs2/admin/admin_table_agregation.php b/mod_abs2/admin/admin_table_agregation.php index 0448f7c40..47d32c8d1 100644 --- a/mod_abs2/admin/admin_table_agregation.php +++ b/mod_abs2/admin/admin_table_agregation.php @@ -45,6 +45,18 @@ die(); } +if($_SESSION['statut']!='administrateur') { + $acces_agr="n"; + if(($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesCpeAgregationAbs2'))) { + $acces_agr="y"; + } + + if($acces_agr=="n") { + header("Location: ../../logout.php?auto=1"); + die(); + } +} + //initialisation des variables $action= isset($_POST['action'])?$_POST['action']:Null; $page= isset($_POST['page'])?$_POST['page']:1; @@ -149,6 +161,7 @@ +

      ATTENTION : L'opération de remplissage est longue et gourmande en ressources.
      Évitez de la lancer lorsque les professeurs doivent saisir des absences, leur cahier de textes,...

      - \ No newline at end of file + diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index fab42732b..ec54de0ca 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -843,7 +843,7 @@ INSERT INTO droits VALUES ('/mod_abs2/admin/admin_motifs_absences.php', 'V', 'F' INSERT INTO droits VALUES ('/mod_abs2/admin/admin_types_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); INSERT INTO droits VALUES ('/mod_abs2/admin/admin_lieux_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); INSERT INTO droits VALUES ('/mod_abs2/admin/admin_justifications_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); -INSERT INTO droits VALUES ('/mod_abs2/admin/admin_table_agregation.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); +INSERT INTO droits VALUES ('/mod_abs2/admin/admin_table_agregation.php', 'V', 'F', 'V', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); INSERT INTO droits VALUES ('/mod_abs2/admin/admin_actions_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', ''); INSERT INTO droits VALUES ('/mod_abs2/index.php', 'F', 'V', 'V', 'V', 'F', 'F', 'V', 'V', 'Administration du module absences', ''); INSERT INTO droits VALUES ('/mod_abs2/saisir_groupe.php', 'V', 'V', 'V', 'V', 'F', 'F', 'V', 'V', 'Affichage du formulaire de saisie de absences', ''); @@ -1188,4 +1188,5 @@ INSERT INTO setting SET name='gepi_en_production', value='y'; INSERT INTO droits VALUES ('/gestion/gestion_infos_actions.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Gestion des actions en attente signalées en page d accueil.', '1'); INSERT INTO droits SET id='/responsables/maj_import3.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F', description='Mise à jour Sconet',statut=''; +INSERT INTO droits SET id='/mod_discipline/mod_discipline_extraction_ooo.php',administrateur='V',professeur='F',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Discipline : Extrait OOo des incidents',statut=''; diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index a01e41ce5..4c61c3c4e 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -538,7 +538,7 @@ function traite_requete($requete = "") { statut='';"; $tab_req[] = "INSERT INTO droits VALUES ('/bulletin/bull_index.php', 'V', 'V', 'V', 'V', 'F', 'F', 'V', 'F', 'Edition des bulletins', '1');"; -$tab_req[] = "INSERT INTO droits VALUES ('/cahier_notes/visu_releve_notes_bis.php', 'F', 'V', 'V', 'V', 'V', 'V', 'V','F', 'Relevé de notes', '1');"; +$tab_req[] = "INSERT INTO droits VALUES ('/cahier_notes/visu_releve_notes_bis.php', 'F', 'V', 'V', 'V', 'V', 'V', 'V','V', 'Relevé de notes', '1');"; $tab_req[] = "INSERT INTO droits VALUES ('/cahier_notes/param_releve_html.php', 'V', 'V', 'F', 'V', 'F', 'F', 'F','F', 'Paramètres du relevé de notes', '1');"; $tab_req[] = "INSERT INTO droits VALUES ('/classes/changement_eleve_classe.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F','F', 'Changement de classe pour un élève', '1');"; @@ -694,7 +694,7 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/admin/admin_types_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/admin/admin_justifications_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/admin/admin_actions_absences.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', '');"; -$tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/admin/admin_table_agregation.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', '');"; +$tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/admin/admin_table_agregation.php', 'V', 'F', 'V', 'F', 'F', 'F', 'F', 'F', 'Administration du module absences', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/index.php', 'F', 'V', 'V', 'V', 'F', 'F', 'V', 'V', 'Administration du module absences', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/saisir_groupe.php', 'V', 'V', 'V', 'V', 'F', 'F', 'V', 'V', 'Affichage du formulaire de saisie de absences', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/mod_abs2/absences_du_jour.php', 'V', 'F', 'V', 'V', 'F', 'F', 'V', 'F', 'Affichage des absences du jour', '');"; @@ -919,6 +919,18 @@ function traite_requete($requete = "") { description='Mise à jour Sconet', statut='';"; +$tab_req[]="INSERT INTO droits SET id='/mod_discipline/mod_discipline_extraction_ooo.php', +administrateur='V', +professeur='F', +cpe='V', +scolarite='V', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Discipline : Extrait OOo des incidents', +statut='';"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From c41536a5a8e942ef96aa1a08442316dc91d9c297 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 19:34:42 +0200 Subject: [PATCH 0225/1150] Correctif sur des variables. --- mod_discipline/mod_discipline_extraction_ooo.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mod_discipline/mod_discipline_extraction_ooo.php b/mod_discipline/mod_discipline_extraction_ooo.php index e6f15d1b2..7c22a88c7 100644 --- a/mod_discipline/mod_discipline_extraction_ooo.php +++ b/mod_discipline/mod_discipline_extraction_ooo.php @@ -211,14 +211,14 @@ // Retenues $sql="SELECT * FROM s_sanctions s, s_retenues sr WHERE s.id_incident='$id_incident_courant' AND s.login='".$ele_login."' AND sr.id_sanction=s.id_sanction ORDER BY sr.date, sr.heure_debut;"; - //$retour.="$sql
      \n"; + //echo "$sql
      \n"; $res_sanction=mysql_query($sql); if(mysql_num_rows($res_sanction)>0) { $texte_sanctions.=$designation_eleve; while($lig_sanction=mysql_fetch_object($res_sanction)) { //$texte_sanctions.=" : Retenue "; - $texte_sanctions.=" : ".ucfirst($lig->nature)." "; + $texte_sanctions.=" : ".ucfirst($lig_sanction->nature)." "; $nombre_de_report=nombre_reports($lig_sanction->id_sanction,0); if($nombre_de_report!=0) {$texte_sanctions.=" ($nombre_de_report reports)";} @@ -254,7 +254,7 @@ while($lig_sanction=mysql_fetch_object($res_sanction)) { //$texte_sanctions.=" : Exclusion "; - $texte_sanctions.=" : ".ucfirst($lig->nature)." "; + $texte_sanctions.=" : ".ucfirst($lig_sanction->nature)." "; $texte_sanctions.=" ".formate_date($lig_sanction->date_debut); $texte_sanctions.=" ".$lig_sanction->heure_debut; @@ -286,7 +286,7 @@ while($lig_sanction=mysql_fetch_object($res_sanction)) { //$texte_sanctions.=" : Travail pour le "; - $texte_sanctions.=" : ".ucfirst($lig->nature)." pour le "; + $texte_sanctions.=" : ".ucfirst($lig_sanction->nature)." pour le "; $texte_sanctions.=formate_date($lig_sanction->date_retour); $tmp_doc_joints=liste_doc_joints_sanction($lig_sanction->id_sanction); From ff08dceaea5e9795ee7b22c957c15b37cf5a2dde Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Oct 2012 19:34:42 +0200 Subject: [PATCH 0226/1150] Ajout du lien export ODT en page d'index mod_discipline --- mod_discipline/index.php | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/mod_discipline/index.php b/mod_discipline/index.php index 9a9ce06ef..23db1c7e7 100644 --- a/mod_discipline/index.php +++ b/mod_discipline/index.php @@ -750,13 +750,22 @@ $menuPage[]=$nouveauItem; } unset($nouveauItem); -/* - echo "
      Accèder aux statistiques"; - echo "Sélectionner la période de traitement, les données à traiter (établissement, classes, elèves, ...) en appliquant (ou non) des filtres afin d'obtenir des bilans plus ou moins détaillés.
      Visualiser les évolutions sous la forme de graphiques. Editer le Top 10, ...
      - + - + ?>" + > +"; +print_r($eleve['saisie'][$i]); +echo ""; +*/ +?> '> - Modif. saisie de + Modif. saisie de - -
      @@ -1254,7 +1309,19 @@ class=" T - Erreur : Date: Wed, 10 Oct 2012 16:30:48 +0200 Subject: [PATCH 0229/1150] Correction de coquilles. --- mod_discipline/saisie_incident.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index a60e65cc5..e0b8dc66a 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -1410,7 +1410,7 @@ function recherche_utilisateur($rech_nom,$page) { - \n"; + ',{method: 'get'}); } //]]> From 7a44d638812a3d37d3a39c374f55bbadde9a3ab9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 10 Oct 2012 17:44:06 +0200 Subject: [PATCH 0230/1150] =?UTF-8?q?Correctif=20ayant=20une=20influence?= =?UTF-8?q?=20sur=20la=20g=C3=A9n=C3=A9ration=20de=20retenue=20ODT,...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/sanctions_func_lib.php | 55 +++++++++++++-------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/mod_discipline/sanctions_func_lib.php b/mod_discipline/sanctions_func_lib.php index 6b23b7238..521a6c148 100644 --- a/mod_discipline/sanctions_func_lib.php +++ b/mod_discipline/sanctions_func_lib.php @@ -919,7 +919,7 @@ function tab_mod_discipline($ele_login,$mode,$date_debut,$date_fin) { // Ajout Eric de la zone de commentaire //affichage du commentaire if ($zone_de_commentaire !="") { - $retour .= "

      Commentaires sur l'incident : 

      $zone_de_commentaire

      "; + $retour .= "

      Commentaires sur l'incident : 

      $zone_de_commentaire

      "; } } @@ -1065,12 +1065,12 @@ function get_login_declarant_incident($id_incident) { //Fonction dressant la liste des reports pour une sanction ($id_type_sanction) function afficher_tableau_des_reports($id_sanction) { - global $id_incident; + global $id_incident; $retour=""; - $sql="SELECT * FROM s_reports WHERE id_sanction='$id_sanction' ORDER BY id_report"; - //echo $sql; - $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { + $sql="SELECT * FROM s_reports WHERE id_sanction='$id_sanction' ORDER BY id_report;"; + //echo $sql; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { echo "\n"; echo "\n"; echo "\n"; @@ -1082,38 +1082,38 @@ function afficher_tableau_des_reports($id_sanction) { $alt_b=1; $cpt=1; while($lig=mysql_fetch_object($res)) { - $alt_b=$alt_b*(-1); - echo "\n"; - echo "\n"; - $tab_date=explode("-",$lig->date); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - - echo ""; - $cpt++; + $alt_b=$alt_b*(-1); + echo "\n"; + echo "\n"; + $tab_date=explode("-",$lig->date); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo ""; + $cpt++; } echo "
      Report N°
      ".$cpt."".$tab_date[2]."-".sprintf("%02d",$tab_date[1])."-".sprintf("%02d",$tab_date[0])."".$lig->informations."".$lig->motif_report."id_report&id_sanction=$lig->id_sanction&id_incident=$id_incident&".add_token_in_url()."' title='Supprimer le report n°$lig->id_report'>Supprimer le report n°$lig->id_report
      ".$cpt."".$tab_date[2]."-".sprintf("%02d",$tab_date[1])."-".sprintf("%02d",$tab_date[0])."".$lig->informations."".$lig->motif_report."id_report&id_sanction=$lig->id_sanction&id_incident=$id_incident&".add_token_in_url()."' title='Supprimer le report n°$lig->id_report'>Supprimer le report n°$lig->id_report
      \n"; - } else { - $retour = "Aucun report actuellement pour cette sanction."; - } + } else { + $retour = "Aucun report actuellement pour cette sanction."; + } return $retour; } //Fonction donnant le nombre de reports pour une sanction ($id_type_sanction) function nombre_reports($id_sanction,$aucun) { - $sql="SELECT * FROM s_reports WHERE id_sanction='$id_sanction' ORDER BY id_report"; + $sql="SELECT * FROM s_reports WHERE id_sanction='$id_sanction' ORDER BY id_report;"; //echo $sql; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { - $cpt=0; - while($lig=mysql_fetch_object($res)) { - $cpt++; + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $cpt++; } - } else { - $cpt = $aucun; - } + } else { + $cpt = $aucun; + } return $cpt; } @@ -1564,4 +1564,3 @@ function get_nature_sanction($id_nature_sanction) { } ?> - From 1c72715481c2a318218c2ca33e566d63be23628b Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 10 Oct 2012 18:10:15 +0200 Subject: [PATCH 0231/1150] Affichage en title des commentaires saisis. --- mod_abs2/saisir_groupe.php | 43 +++++++++++++++----------------------- 1 file changed, 17 insertions(+), 26 deletions(-) diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index fd159a9ba..80ef5b28c 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -653,10 +653,23 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } // 20121009 else { + // Peut-être ajouter un test: les autres utilisateurs ont-ils le droit de voir ce qui a été saisi par un collègue? + // Pour permettre un affichage en title sur les cellules avec saisie + /* + echo "
      Saisie
      ";
      +					print_r($saisie);
      +					echo "
      "; + */ foreach ($saisie->getAbsenceEleveTraitements() as $bou_traitement) { if ($bou_traitement->getAbsenceEleveType() != null) { - $afficheEleve[$elv]['info_saisie'][$i]['traitements'][] = $bou_traitement->getAbsenceEleveType()->getNom(); - //echo "\$afficheEleve[$elv]['info_saisie'][$i]['traitements'][] = ".$bou_traitement->getAbsenceEleveType()->getNom()."
      "; + $commentaire_associe=""; + if($saisie->getCommentaire()!=null) {$commentaire_associe=" (".$saisie->getCommentaire().")";} + $afficheEleve[$elv]['info_saisie'][$i]['traitements'][] = $bou_traitement->getAbsenceEleveType()->getNom().$commentaire_associe; + /* + echo "
      bou_traitement
      ";
      +							print_r($bou_traitement);
      +							echo "
      "; + */ } } } @@ -670,6 +683,7 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $txt = $abs_saisie->getTypesDescription(); if ($txt != '') { $afficheEleve[$elv]['saisieDescription'][$i][] = $abs_saisie->getTypesDescription(); + //echo $abs_saisie->getTypesDescription()."
      "; } } } @@ -1256,24 +1270,13 @@ class="" > T Erreur : Date: Wed, 10 Oct 2012 18:51:54 +0200 Subject: [PATCH 0232/1150] =?UTF-8?q?Enregistrement=20du=20traitement=20de?= =?UTF-8?q?puis=20Saisir=20=C3=A9l=C3=A8ve=20(Josselin,=20peux-tu=20valide?= =?UTF-8?q?r=20ce=20que=20j'ai=20fait=3F=20Merci.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/enregistrement_saisie_eleve.php | 12 ++++++++++-- mod_abs2/saisir_eleve.php | 4 ++-- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/mod_abs2/enregistrement_saisie_eleve.php b/mod_abs2/enregistrement_saisie_eleve.php index 17ba9eac0..8eb91b7b8 100644 --- a/mod_abs2/enregistrement_saisie_eleve.php +++ b/mod_abs2/enregistrement_saisie_eleve.php @@ -61,6 +61,8 @@ die("acces interdit"); } +//debug_var(); + //récupération des paramètres de la requète $id_creneau = isset($_POST["id_creneau"]) ? $_POST["id_creneau"] :(isset($_GET["id_creneau"]) ? $_GET["id_creneau"] :NULL); $id_cours = isset($_POST["id_cours"]) ? $_POST["id_cours"] :(isset($_GET["id_cours"]) ? $_GET["id_cours"] :NULL); @@ -245,7 +247,13 @@ if ($saisie->validate()) { $saisie->save(); if (isset($traitement)) { - $traitement->save(); + if(isset($_POST['id_motif'])) { + $traitement->setAbsenceEleveMotif(AbsenceEleveMotifQuery::create()->findPk($_POST["id_motif"])); + } + if(isset($_POST['id_justification'])) { + $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->findPk($_POST["id_justification"])); + } + $traitement->save(); } $message_enregistrement .= "Saisie enregistrée pour l'eleve : ".$eleve->getNom().""; if (isset($saisie_discipline) && $saisie_discipline == true) { @@ -269,4 +277,4 @@ } include("saisir_eleve.php"); -?> \ No newline at end of file +?> diff --git a/mod_abs2/saisir_eleve.php b/mod_abs2/saisir_eleve.php index 5e8a72ebd..2fb45501b 100644 --- a/mod_abs2/saisir_eleve.php +++ b/mod_abs2/saisir_eleve.php @@ -356,7 +356,7 @@ echo ''; echo ''; */ - echo (""); echo "\n"; foreach ($motifs as $motif) { echo "\n"; foreach ($justifications as $justification) { echo "
      \n"); - echo 'Motif : '; + //echo 'Motif : '; + echo 'Motif : '; $motifs = AbsenceEleveMotifQuery::create()->orderByRank()->find(); /* echo '
      '; @@ -374,7 +375,8 @@ echo ("
         \n"); - echo 'Justification : '; + //echo 'Justification : '; + echo 'Justification : '; $justifications = AbsenceEleveJustificationQuery::create()->orderByRank()->find(); /* echo ''; From 79193ae8b72a4fffe868bc65b0de36c448159316 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 11 Oct 2012 12:57:22 +0200 Subject: [PATCH 0235/1150] =?UTF-8?q?Modification=20du=20lien=20apr=C3=A8s?= =?UTF-8?q?=20enregistrement=20selon=20qu'on=20a=20saisi=20un=20modif=20ou?= =?UTF-8?q?=20une=20justification=20ou=20pas.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/enregistrement_saisie_eleve.php | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/mod_abs2/enregistrement_saisie_eleve.php b/mod_abs2/enregistrement_saisie_eleve.php index 8eb91b7b8..5b8b09c16 100644 --- a/mod_abs2/enregistrement_saisie_eleve.php +++ b/mod_abs2/enregistrement_saisie_eleve.php @@ -246,16 +246,28 @@ if ($saisie->validate()) { $saisie->save(); + + $lien_message_enregistrement="Saisie enregistrée pour l'eleve : ".$eleve->getNom().""; + if (isset($traitement)) { - if(isset($_POST['id_motif'])) { + $modif_lien_message_enregistrement="n"; + if((isset($_POST['id_motif']))&&($_POST['id_motif']!='')&&($_POST['id_motif']!='-1')) { $traitement->setAbsenceEleveMotif(AbsenceEleveMotifQuery::create()->findPk($_POST["id_motif"])); + $modif_lien_message_enregistrement="y"; } - if(isset($_POST['id_justification'])) { + if((isset($_POST['id_justification']))&&($_POST['id_justification']!='')&&($_POST['id_justification']!='-1')) { $traitement->setAbsenceEleveJustification(AbsenceEleveJustificationQuery::create()->findPk($_POST["id_justification"])); + $modif_lien_message_enregistrement="y"; } $traitement->save(); + + if($modif_lien_message_enregistrement=="y") { + $lien_message_enregistrement="Saisie et traitement enregistrés pour l'eleve : ".$eleve->getNom().""; + } } - $message_enregistrement .= "Saisie enregistrée pour l'eleve : ".$eleve->getNom().""; + + $message_enregistrement .= $lien_message_enregistrement; + if (isset($saisie_discipline) && $saisie_discipline == true) { $message_enregistrement .= "  Saisir un incident disciplinaire pour l'élève : ".$eleve->getNom().""; From 6f648e9386b13a059e298e477af24305e9084957 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 13 Oct 2012 17:25:51 +0200 Subject: [PATCH 0236/1150] Ajout d'un lien vers la saisie en question pour les comptes CPE. --- eleves/visu_eleve_abs2.inc.php | 40 ++++++++++++++++++++++++---------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/eleves/visu_eleve_abs2.inc.php b/eleves/visu_eleve_abs2.inc.php index 08de1c1a7..2cf34f9b5 100644 --- a/eleves/visu_eleve_abs2.inc.php +++ b/eleves/visu_eleve_abs2.inc.php @@ -308,36 +308,52 @@ if(!isset($eleve['infos_saisies'])){ continue; } + foreach ($eleve['infos_saisies'] as $type_tab=>$value2) { foreach ($value2 as $journee) { foreach ($journee as $key => $value) { $style=$value['type_css']; + + /* + echo "
      ";
      +                print_r($value);
      +                echo "
      - + - - - - - + ".$value['type'].""; + } + + echo $contenu_cellule; + ?> - + @@ -365,4 +381,4 @@ ?>
      - \ No newline at end of file + From 9c62feb296ccf1e74f941d1c4fbbbbc78d8d4087 Mon Sep 17 00:00:00 2001 From: Regis85 Date: Sun, 14 Oct 2012 12:04:42 +0200 Subject: [PATCH 0237/1150] =?UTF-8?q?Discipline=20=E2=86=92=20ajout=20du?= =?UTF-8?q?=20mat=C3=A9riel=20=C3=A0=20apporter=20pour=20une=20retenue?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_sanction.inc.php | 13 ++++++++++++ mod_discipline/saisie_sanction.php | 7 ++++--- mod_ooo/retenue.php | 4 ++++ sql/structure_gepi.sql | 4 ++-- utilitaires/updates/161_to_dev.inc.php | 28 ++++++++++++++++++++++++++ 5 files changed, 51 insertions(+), 5 deletions(-) diff --git a/mod_discipline/saisie_sanction.inc.php b/mod_discipline/saisie_sanction.inc.php index dc3fe269f..e9dc8f550 100644 --- a/mod_discipline/saisie_sanction.inc.php +++ b/mod_discipline/saisie_sanction.inc.php @@ -185,6 +185,7 @@ function choix_heure2($champ_heure,$selected,$dernier) { $duree_retenue=1; $lieu_retenue=""; $travail=""; + $materiel=""; if(isset($id_sanction)) { $sql="SELECT * FROM s_retenues WHERE id_sanction='$id_sanction';"; $res_sanction=mysql_query($sql); @@ -195,6 +196,7 @@ function choix_heure2($champ_heure,$selected,$dernier) { $duree_retenue=$lig_sanction->duree; $lieu_retenue=$lig_sanction->lieu; $travail=$lig_sanction->travail; + $materiel=$lig_sanction->materiel; } } @@ -204,6 +206,7 @@ function choix_heure2($champ_heure,$selected,$dernier) { if(mysql_num_rows($res_travail_mesure_demandee)>0) { $lig_travail_mesure_demandee=mysql_fetch_object($res_travail_mesure_demandee); $travail=$lig_travail_mesure_demandee->travail; + $materiel=$lig_travail_mesure_demandee->materiel; } } @@ -316,6 +319,16 @@ function choix_heure2($champ_heure,$selected,$dernier) { echo "
      \n"; + echo "Matériel à apporter\n"; + echo "\n"; + echo "\n"; + echo "
      Report :
      \n"; + echo "
      \n"; } @@ -836,7 +853,7 @@ echo "

      Pondération

      \n"; echo "\n\n"; - echo "\n
      "; echo "Pour chaque élève, le coefficient de la meilleure note de $nom_court augmente ou diminue de :  
      \n"; + echo "
      \n"; if ($parent != 0) { //s'il s'agit d'une boite à l'intérieur du conteneur principal, on laisse la possibilité d'afficher la note de la boite sur le bulletin. @@ -893,4 +910,4 @@ * Pied de page */ require("../lib/footer.inc.php"); -?> \ No newline at end of file +?> diff --git a/cahier_notes/add_modif_dev.php b/cahier_notes/add_modif_dev.php index 92e5b83f9..177e16e2d 100644 --- a/cahier_notes/add_modif_dev.php +++ b/cahier_notes/add_modif_dev.php @@ -67,6 +67,8 @@ die("Le module n'est pas activé."); } +$msg=""; + isset($id_retour); $id_retour = isset($_POST["id_retour"]) ? $_POST["id_retour"] : (isset($_GET["id_retour"]) ? $_GET["id_retour"] : NULL); isset($id_devoir); @@ -313,6 +315,22 @@ } $tmp_coef=isset($_POST['coef']) ? $_POST['coef'] : 0; + if((preg_match("/^[0-9]*$/", $coef))||(preg_match("/^[0-9]*\.[0-9]$/", $tmp_coef))) { + // Le coef a le bon format + //$msg.="Le coefficient proposé $tmp_coef est valide.
      "; + } + elseif(preg_match("/^[0-9]*\.[0-9]*$/", $tmp_coef)) { + $msg.="Le coefficient ne peut avoir plus d'un chiffre après la virgule. Le coefficient va être tronqué.
      "; + } + elseif(preg_match("/^[0-9]*,[0-9]*$/", $tmp_coef)) { + $msg.="Correction du séparateur des décimales dans le coefficient de $tmp_coef en "; + $tmp_coef=preg_replace("/,/", ".", $tmp_coef); + $msg.=$tmp_coef."
      "; + } + else { + $msg.="Le coefficient proposé $tmp_coef est invalide. Mise à 1.0 du coefficient.
      "; + $tmp_coef="1.0"; + } $reg = mysql_query("UPDATE cn_devoirs SET coef='".$tmp_coef."' WHERE id='$id_devoir'"); if (!$reg) $reg_ok = "no"; for($i=0;$i"; + } + else { + $msg.="Le référentiel proposé $note_sur est invalide. Mise à ".getSettingValue("referentiel_note")." du référentiel.
      "; + $note_sur=getSettingValue("referentiel_note"); + } $reg = mysql_query("UPDATE cn_devoirs SET note_sur='".$note_sur."' WHERE id='$id_devoir'"); if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; echo "
      Coefficient:\n"; - echo "\n"; + echo "\n"; echo "
      Note sur :
      Ramener la note sur ".getSettingValue("referentiel_note")."
      lors du calcul de la moyenne :
      Date:\n"; - echo "\n"; + echo "\n"; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\""; if($aff_date_ele_resp!='y'){ echo " onchange=\"document.getElementById('date_ele_resp').value=document.getElementById('display_date').value\""; @@ -724,7 +760,7 @@ echo "
      Date de visibilité
      de la note pour les
      élèves et responsables:
      \n"; - echo "\n"; + echo "\n"; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; echo "
      "; - echo "
      Valeur de la pondération dans le calcul de la moyenne (si 0, la note de l'évaluation n'intervient pas dans le calcul de la moyenne) :
      \n"; + echo "
      \n"; //==================================== // Note autre que sur 20 @@ -822,7 +858,7 @@ if(getSettingValue("note_autre_que_sur_referentiel")=="V") { echo "

      Notation

      \n"; echo ""; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; + $chaine_coche_rn_adr_resp=""; + if(getPref($_SESSION['login'], 'pref_rn_adr_resp', "")=="y") { + $chaine_coche_rn_adr_resp=" checked"; + } for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; } echo "
      Note sur :
      Ramener la note sur ".getSettingValue("referentiel_note")." lors du calcul de la moyenne :
      "; echo "Exemple avec 3 notes : 18/20 ; 4/10 ; 1/5
      "; echo "Case cochée : moyenne = 18/20 + 8/20 + 4/20 = 30/60 = 10/20
      "; @@ -860,13 +896,13 @@ echo "

      Date de l'évaluation (format jj/mm/aaaa) :

      Remarque : c'est cette date qui est prise en compte pour l'édition des relevés de notes à différentes périodes de l'année. - "; + "; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; echo "

      Date de visibilité de l'évaluation pour les élèves et responsables (format jj/mm/aaaa) :

      Remarque : Cette date permet de ne rendre la note visible qu'une fois que le devoir est corrigé en classe. - "; + "; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; //==================================== From 8de6481a3aa0545dde43e7d1d766c6690bb99cfa Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 24 Oct 2012 18:49:50 +0200 Subject: [PATCH 0245/1150] =?UTF-8?q?Ajout=20de=20pr=C3=A9cisions=20en=20i?= =?UTF-8?q?nfobulle/title.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/modify_eleve.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/eleves/modify_eleve.php b/eleves/modify_eleve.php index c927011cb..161972fc4 100644 --- a/eleves/modify_eleve.php +++ b/eleves/modify_eleve.php @@ -1788,13 +1788,13 @@ function redimensionne_image($photo){ echo "
      "; echo "Jour "; + echo "\" onKeyDown='clavier_2(this.id,event,1,31);' AutoComplete='off' title=\"Vous pouvez modifier le jour de sortie à l'aide des flèches Up et Down du pavé de direction.\" />"; echo " Mois "; + echo "\" onKeyDown='clavier_2(this.id,event,1,12);' AutoComplete='off' title=\"Vous pouvez modifier le mois de naissance à l'aide des flèches Up et Down du pavé de direction.\" />"; echo " Année "; + echo "\" onKeyDown='clavier_2(this.id,event,2000,2100);' AutoComplete='off' title=\"Vous pouvez modifier l'année de naissance à l'aide des flèches Up et Down du pavé de direction.\" />"; echo "\n"; echo " + + + +\n"; +} + +echo " + +"; + +if(isset($suite)) { + echo " +
      +

      ".getSettingValue('gepiSchoolName')." : Demande de compte

      + +

      Je souhaite obtenir (ou récupérer) un compte et mot de passe pour accéder aux données concernant mon ou mes enfants scolarisés dans l'établissement.

      + + + + + + + + + +
      Nom$nom
      Prénom$prenom
      Email$email
      Responsable de
      et/ou
      description de la demande :
      + ".preg_replace("/\\\\n/","
      ",nl2br($description))." +
      +

      Le ".strftime("%d/%m/%Y à %H:%M").".

      +

      Signature :

      +


      +


      +

      Document à imprimer et à remettre à l'Administration.

      +

      Retour Retour à la page de connexion

      + +
      + + + +"; + + + require("./lib/footer.inc.php"); + die(); +} + +echo " + + + +

      Demande de compte/mot de passe

      + +
      + + $msg + +

      Vous avez oublié vos compte et mot de passe, ou vous souhaitez obtenir un compte pour accéder aux données concernant votre enfant.
      + Veuillez compléter le formulaire ci-dessous.

      + + + + + + + + + + +
      Nom
      Prénom
      Email
      Enfants +

      Veuillez préciser les nom, prénom et classe
      de l'un au moins de vos enfants scolarisés dans l'établissement :

      + +
      + + Captcha
      +

      + (réponse attendue en chiffres) +
      + + + + + + +
      + +


      + +

      NOTES :

      +
        +
      • + Un document va être généré.
        + Vous devrez imprimer le document et votre enfant devra déposer cette demande à l'Administration de l'établissement pour finaliser la demande.
        + Cette démarche est destinée à éviter des usurpations d'identité. +
      • +
      • + En précisant votre adresse mail, vous pourrez par la suite recevoir par mail les informations demandées.
        + (Il est généralement plus facile de copier/coller les informations reçues que de les taper) +
      • +
      + + + +"; + +?> diff --git a/templates/origine/login_template.html b/templates/origine/login_template.html index 86cab07f9..0aea63293 100644 --- a/templates/origine/login_template.html +++ b/templates/origine/login_template.html @@ -114,11 +114,21 @@

      [onshow.tbs_gepiSchoolName]

      -

      +

      +   - + Mot de passe oublié ? + +
      + + +   + + Demande de compte + +

      From 835778b75079471f40f50ab40798c8c5e3f670f6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 24 Oct 2012 18:49:53 +0200 Subject: [PATCH 0250/1150] =?UTF-8?q?M=C3=A9morisation=20de=20la=20pr?= =?UTF-8?q?=C3=A9f=C3=A9rence=20utilisateur=20de=20l'affichage=20ou=20non?= =?UTF-8?q?=20de=20l'adresse=20resp=20sur=20les=20relev=C3=A9s=20de=20note?= =?UTF-8?q?s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/extraction_donnees_releves_notes.php | 8 +++++++- cahier_notes/tableau_choix_parametres_releves_notes.php | 6 +++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/cahier_notes/extraction_donnees_releves_notes.php b/cahier_notes/extraction_donnees_releves_notes.php index 2b922d574..b810484fe 100644 --- a/cahier_notes/extraction_donnees_releves_notes.php +++ b/cahier_notes/extraction_donnees_releves_notes.php @@ -12,7 +12,7 @@ */ $debug_extract="n"; - $debug_ele_login="ahnjinwon"; + $debug_ele_login="toto"; $debug_id_groupe=237; //======================================== @@ -67,6 +67,12 @@ $tab_rn_formule=isset($_POST['rn_formule']) ? $_POST['rn_formule'] : array(); $tab_rn_adr_resp=isset($_POST['rn_adr_resp']) ? $_POST['rn_adr_resp'] : array(); + if(count($tab_rn_adr_resp)>count($tab_id_classe)/2) { + savePref($_SESSION['login'], "pref_rn_adr_resp", "y"); + } + else { + savePref($_SESSION['login'], "pref_rn_adr_resp", "n"); + } // Bloc observation sur la droite pour le relevé PDF: $tab_rn_bloc_obs=isset($_POST['rn_bloc_obs']) ? $_POST['rn_bloc_obs'] : array(); diff --git a/cahier_notes/tableau_choix_parametres_releves_notes.php b/cahier_notes/tableau_choix_parametres_releves_notes.php index 9e5403328..1e0233352 100644 --- a/cahier_notes/tableau_choix_parametres_releves_notes.php +++ b/cahier_notes/tableau_choix_parametres_releves_notes.php @@ -223,10 +223,14 @@ echo "
      Afficher le bloc adresse du responsable de l'élève\n"; echo "\n"; From afae98cb0e499f06599b04fbbc39c81fb9b107f4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 24 Oct 2012 20:49:59 +0200 Subject: [PATCH 0251/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20pa?= =?UTF-8?q?r=20lots=20la=20visibilit=C3=A9=20des=20enseignements=20de=20te?= =?UTF-8?q?lle=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 82 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 78 insertions(+), 4 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index aac77c143..68762ab0a 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -1,7 +1,7 @@ "; + $res_grp_vis=mysql_query($sql); + while($lig_grp_vis=mysql_fetch_object($res_grp_vis)) { + for($loop=0;$loop    - Passer les coefficients de tous les enseignements à : +  :
      +0) { + echo " + + + + + + + + + +
          +  : + + +
      Visibilité : + + \n"; + for($loop=0;$loop\n"; + echo $tab_domaines_sigle[$loop]; + echo "\n"; + } + echo "\n"; + echo "\n"; + for($loop=0;$loop\n"; + echo "\n"; + echo "\n"; + } + echo " + +
      +
      \n"; + } +?> + + + +


      + +

      NOTE : Les cases ne sont pas cochées par défaut.
      +Comme vous pouvez modifier la liste des classes concernées par le paramétrage par lots, il n'est pas possible de pré-cocher l'état actuel du paramétrage des classes.
      +Tout ce que vous cocherez correspondra aux modifications que vous souhaitez apporter.

      + From db9b142b623a5d4ec2d245addfde3d26584d3eb5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 27 Oct 2012 15:24:08 +0200 Subject: [PATCH 0252/1150] =?UTF-8?q?Ajout=20d'une=20table=20classes=5Fpar?= =?UTF-8?q?am=20pour=20y=20stocker=20divers=20param=C3=A8tres=20li=C3=A9s?= =?UTF-8?q?=20=C3=A0=20la=20classe.=20Y=20sont=20pour=20le=20moment=20les?= =?UTF-8?q?=20param=C3=A8tres=20de=20relev=C3=A9s=20de=20notes=20qui=20n'?= =?UTF-8?q?=C3=A9taient=20pas=20dans=20la=20table=20classes=20(il=20faudra?= =?UTF-8?q?it=20y=20transf=C3=A9rer=20par=20la=20suite=20le=20contenu=20de?= =?UTF-8?q?=20certains=20champs=20de=20la=20table=20classes).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extraction_donnees_releves_notes.php | 7 +- ...tableau_choix_parametres_releves_notes.php | 70 ++- cahier_notes/visu_releve_notes_bis.php | 19 +- changelog.txt | 17 +- classes/classes_param.php | 141 +++++- classes/modify_nom_class.php | 402 +++++++++++++----- lib/share.inc.php | 63 +++ sql/structure_gepi.sql | 9 + utilitaires/updates/161_to_dev.inc.php | 23 + 9 files changed, 613 insertions(+), 138 deletions(-) diff --git a/cahier_notes/extraction_donnees_releves_notes.php b/cahier_notes/extraction_donnees_releves_notes.php index b810484fe..b3c2283c1 100644 --- a/cahier_notes/extraction_donnees_releves_notes.php +++ b/cahier_notes/extraction_donnees_releves_notes.php @@ -67,13 +67,14 @@ $tab_rn_formule=isset($_POST['rn_formule']) ? $_POST['rn_formule'] : array(); $tab_rn_adr_resp=isset($_POST['rn_adr_resp']) ? $_POST['rn_adr_resp'] : array(); + /* if(count($tab_rn_adr_resp)>count($tab_id_classe)/2) { savePref($_SESSION['login'], "pref_rn_adr_resp", "y"); } else { savePref($_SESSION['login'], "pref_rn_adr_resp", "n"); } - + */ // Bloc observation sur la droite pour le relevé PDF: $tab_rn_bloc_obs=isset($_POST['rn_bloc_obs']) ? $_POST['rn_bloc_obs'] : array(); @@ -220,11 +221,11 @@ function recherche_conteneurs_enfants($id_parent) { $tab_releve[$id_classe][$periode_num]['rn_moy_classe']=isset($tab_rn_moy_classe[$loop_classe]) ? "y" : "n"; $tab_releve[$id_classe][$periode_num]['rn_retour_ligne']=isset($tab_rn_retour_ligne[$loop_classe]) ? "y" : "n"; - $_SESSION['pref_rn_retour_ligne']=$tab_releve[$id_classe][$periode_num]['rn_retour_ligne']; + //$_SESSION['pref_rn_retour_ligne']=$tab_releve[$id_classe][$periode_num]['rn_retour_ligne']; $tab_releve[$id_classe][$periode_num]['rn_rapport_standard_min_font']=((isset($tab_rn_rapport_standard_min_font[$loop_classe]))&&($tab_rn_rapport_standard_min_font[$loop_classe]!='')&&(preg_match("/^[0-9.]*$/",$tab_rn_rapport_standard_min_font[$loop_classe]))&&($tab_rn_rapport_standard_min_font[$loop_classe]>0)) ? $tab_rn_rapport_standard_min_font[$loop_classe] : 3; - $_SESSION['pref_rn_rapport_standard_min_font']=$tab_releve[$id_classe][$periode_num]['rn_rapport_standard_min_font']; + //$_SESSION['pref_rn_rapport_standard_min_font']=$tab_releve[$id_classe][$periode_num]['rn_rapport_standard_min_font']; // Informations sur la période if ($choix_periode=="intervalle") { diff --git a/cahier_notes/tableau_choix_parametres_releves_notes.php b/cahier_notes/tableau_choix_parametres_releves_notes.php index 1e0233352..b3a7580d8 100644 --- a/cahier_notes/tableau_choix_parametres_releves_notes.php +++ b/cahier_notes/tableau_choix_parametres_releves_notes.php @@ -2,12 +2,14 @@ /* */ + $tab_param_classe=array(); echo "
          - Créer un enseignement de : +  :
      \n"; echo "\n"; //echo "\n"; echo "\n"; for($i=0;$i".get_class_from_id($tab_id_classe[$i])."\n"; + $tab_param_classe[$i]=getAllParamClasse($tab_id_classe[$i]); } echo "\n"; echo "\n"; } @@ -191,6 +220,7 @@ echo "\n"; echo "\n"; + /* if(isset($_SESSION['pref_rn_rapport_standard_min_font'])) { $rn_rapport_standard_min_font_defaut=$_SESSION['pref_rn_rapport_standard_min_font']; } @@ -198,12 +228,19 @@ $rn_rapport_standard_min_font_defaut=getSettingValue('rn_rapport_standard_min_font_defaut'); $rn_rapport_standard_min_font_defaut=(($rn_rapport_standard_min_font_defaut!='')&&(preg_match("/^[0-9.]*$/",$rn_rapport_standard_min_font_defaut))&&($rn_rapport_standard_min_font_defaut>0)) ? $rn_rapport_standard_min_font_defaut : 3; } + */ + + $rn_rapport_standard_min_font_defaut=getSettingValue('rn_rapport_standard_min_font_defaut'); + $rn_rapport_standard_min_font_defaut=(($rn_rapport_standard_min_font_defaut!='')&&(preg_match("/^[0-9.]*$/",$rn_rapport_standard_min_font_defaut))&&($rn_rapport_standard_min_font_defaut>0)) ? $rn_rapport_standard_min_font_defaut : 3; $alt=$alt*(-1); echo "\n"; echo "\n"; for($i=0;$i0)) { + $rn_rapport_standard_min_font_defaut=$tab_param_classe[$i]['rn_rapport_standard_min_font']; + } echo "\n"; echo "\n"; + /* $chaine_coche_rn_adr_resp=""; if(getPref($_SESSION['login'], 'pref_rn_adr_resp', "")=="y") { $chaine_coche_rn_adr_resp=" checked"; } + */ for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; } echo "\n"; } echo "\n"; for($j=1;$j<=$max_per;$j++) { if(!in_array($j,$tab_periode_exclue)) { + // Problème: Si on clique sur la case, elle change deux fois d'état + //echo "
      ItemItem\n"; echo "Tout cocher / Tout décocher"; @@ -60,11 +62,23 @@ for($i=0;$i\n"; echo " -
      \n"; +
      \n"; echo " -
      \n"; +
      \n"; echo " - \n"; + \n"; echo "\n"; } @@ -120,7 +134,11 @@ for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; } @@ -141,7 +159,11 @@ for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; } @@ -157,7 +179,11 @@ for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; } @@ -168,12 +194,12 @@ //} //================================= - + /* $rn_retour_ligne_defaut="y"; if((isset($_SESSION['pref_rn_retour_ligne']))&&(($_SESSION['pref_rn_retour_ligne']=='y')||($_SESSION['pref_rn_retour_ligne']=='n'))) { $rn_retour_ligne_defaut=$_SESSION['pref_rn_retour_ligne']; } - + */ $alt=$alt*(-1); echo "
      Avec retour à la ligne après chaque devoir si on affiche le nom du devoir ou le commentaire\n"; @@ -182,7 +208,10 @@ echo "\n"; echo " \n"; echo "
      Rapport taille_standard / taille_minimale_de_police (relevé PDF avec cell_ajustee())
      (Si pour que les notes tiennent dans la cellule, il faut réduire davantage la police, on supprime les retours à la ligne.)\n"; echo "
      \n"; echo " \n"; @@ -223,14 +260,21 @@ echo "
      Afficher le bloc adresse du responsable de l'élève\n"; echo "\n"; @@ -258,7 +302,11 @@ for($i=0;$i\n"; echo " - \n"; + \n"; echo "\n"; diff --git a/cahier_notes/visu_releve_notes_bis.php b/cahier_notes/visu_releve_notes_bis.php index c7bbbb4db..094360b06 100644 --- a/cahier_notes/visu_releve_notes_bis.php +++ b/cahier_notes/visu_releve_notes_bis.php @@ -639,6 +639,8 @@ function unCheckRadio() { echo "Choix"; echo ""; //echo "\n"; echo " @@ -692,10 +694,21 @@ function unCheckRadio() { - - + +

      \n"; @@ -1009,7 +1022,7 @@ function ToutDeCocher() { echo "document.getElementById('div_param_releve').style.display='none';"; } else { echo "document.getElementById('div_param_releve').style.display='';"; -}; +} echo " ////]]>"; echo "\n"; diff --git a/changelog.txt b/changelog.txt index 677541c3b..4ccac1502 100644 --- a/changelog.txt +++ b/changelog.txt @@ -22,6 +22,10 @@ Bulletins : - Possibilité d'insérer un fichier de signature (bulletins PDF et HTML). +Relevés de notes: +- Prise en compte au niveau du paramétrage des classes en admin des choix + d'affichage ou non des moyennes de classe, bloc adresse responsable,... + Cahiers de textes : - Possibilité d'inclure les documents joints dans l'export ZIP. - Possibilité d'insérer des liens vers un visionneur GeoGebra. @@ -47,10 +51,19 @@ Gestion: descriptions sont identiques. - Possibilité pour les comptes scolarité de réinitialiser les mots de passe des responsables d'élèves (sous réserve de donner le droit) -- Ajout de précautions pour l'accès aux choix sensibles 'Effacer la base' et 'Données de test'. -- Possibilité pour l'admin de supprimer par signalements lots les actions en attente. +- Ajout de précautions pour l'accès aux choix sensibles 'Effacer la base' et + 'Données de test'. +- Possibilité pour l'admin de supprimer par lots les actions en + attente. - Possibilité de faire la mise à jour d'après Sconet en compte scolarité (sous réserve de donner le droit dans Gestion des droits). +- Possibilité de modifier par lots la visibilité des enseignements de telle + matière. +- Options de connexion: Dispositif pour permettre à un responsable de demander + un compte/mot de passe ou de récupérer un compte/mot de passe (cela répond à + un besoin complémentaire de la Récupération de mot de passe qui, elle, + nécessite de connaitre le login et d'avoir renseigné l'adresse mail dans + Gérer mon compte) Gepi-1.6.1 (10/06/2012) diff --git a/classes/classes_param.php b/classes/classes_param.php index c561c0e5a..2e0b61af7 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -168,6 +168,7 @@ if (!$register) $reg_ok = 'no'; else $reg_ok = 'yes' ; } + if($_POST['rn_sign_nblig_'.$per]!="") { if(mb_strlen(my_ereg_replace("[0-9]","",$_POST['rn_sign_nblig_'.$per]))!=0){$_POST['rn_sign_nblig_'.$per]=3;} @@ -219,6 +220,18 @@ } } + // 20121027 + //$tab_param=array('rn_aff_classe_nom'); + $tab_param=array('rn_aff_classe_nom','rn_app', 'rn_moy_classe', 'rn_moy_min_max_classe', 'rn_retour_ligne','rn_rapport_standard_min_font', 'rn_adr_resp', 'rn_bloc_obs'); + for($loop=0;$loop
      +
      @@ -934,7 +955,7 @@ function maj_nom_descr_enseignement() { \n"; //==================== -// Modif: boireaus 20070626 if($affiche_coef=='y'){ if ($test_coef != 0) echo "\n"; } @@ -112,68 +113,9 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY } echo "\n"; -//echo "\n"; -/* -if ($affiche_rang=='y') { - echo "\n"; -} -*/ echo "\n"; -//echo "
      - + Paramètres des relevés de notes : + + + + + + + + + + @@ -1136,9 +1173,109 @@ function maj_nom_descr_enseignement() { - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Pour que la liste des devoirs tienne dans la cellule, on réduit la taille de la police.
      Pour que cela reste lisible, vous pouvez fixer ici une taille minimale en dessous de laquelle ne pas descendre.


      Si la taille minimale ne suffit toujours pas à permettre l'affichage dans la cellule, on supprime les retours à la ligne.


      Et cela ne suffit toujours pas, le texte est tronqué (dans ce cas, un relevé HTML pourra permettre l'affichage (les hauteurs de cellules s'adaptent à la quantité de texte... L'inconvénient : Une matière peut paraître plus importante qu'une autre par la place qu'elle occupe)).

      \n"; + $tabdiv_infobulle[]=creer_div_infobulle('a_propos_rapport_tailles_polices',$titre_infobulle,"",$texte_infobulle,"",35,0,'y','y','n','n'); +?> + + + + + + + + + + + +Le bloc observations est affiché si une des conditions suivantes est remplie :

      \n"; + $texte_infobulle.="
        \n"; + $texte_infobulle.="
      • La case Bloc observations est cochée.
      • \n"; + $texte_infobulle.="
      • Une des cases signature est cochée.
      • \n"; + $texte_infobulle.="
      \n"; + $tabdiv_infobulle[]=creer_div_infobulle('a_propos_bloc_observations',$titre_infobulle,"",$texte_infobulle,"",35,0,'y','y','n','n'); +?> + + + + + + + + + diff --git a/classes/modify_nom_class.php b/classes/modify_nom_class.php index 48ad7ff70..2054dfa44 100644 --- a/classes/modify_nom_class.php +++ b/classes/modify_nom_class.php @@ -1,7 +1,7 @@ security_check(); if ($resultat_session == 'c') { - header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); - die(); + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); } else if ($resultat_session == '0') { - header("Location: ../logout.php?auto=1"); - die(); + header("Location: ../logout.php?auto=1"); + die(); } if (!checkAccess()) { - header("Location: ../logout.php?auto=1"); - die(); + header("Location: ../logout.php?auto=1"); + die(); } $msg = null; @@ -80,13 +80,26 @@ // ========================= - // Mod ECTS - if (!isset($ects_type_formation)) $ects_type_formation = ''; - if (!isset($ects_parcours)) $ects_parcours = ''; - if (!isset($ects_code_parcours)) $ects_code_parcours = ''; - if (!isset($ects_domaines_etude)) $ects_domaines_etude = ''; - if (!isset($ects_fonction_signataire_attestation)) $ects_fonction_signataire_attestation = ''; + // Mod ECTS + if (!isset($ects_type_formation)) $ects_type_formation = ''; + if (!isset($ects_parcours)) $ects_parcours = ''; + if (!isset($ects_code_parcours)) $ects_code_parcours = ''; + if (!isset($ects_domaines_etude)) $ects_domaines_etude = ''; + if (!isset($ects_fonction_signataire_attestation)) $ects_fonction_signataire_attestation = ''; + // ========================= + // 20121027 + // Paramètres enregistrés dans la table 'classes_param': + if (!isset($rn_aff_classe_nom)) $rn_aff_classe_nom = 1; + // A MODIFIER EN CAS DE MODE CNIL STRICT + if (!isset($rn_app)) $rn_app = 'n'; + if (!isset($rn_moy_classe)) $rn_moy_classe = 'n'; + if (!isset($rn_moy_min_max_classe)) $rn_moy_min_max_classe = 'n'; + if (!isset($rn_retour_ligne)) $rn_retour_ligne = 'n'; + if (!isset($rn_rapport_standard_min_font)) $rn_rapport_standard_min_font = 3; + if (!isset($rn_adr_resp)) $rn_adr_resp = 'n'; + if (!isset($rn_bloc_obs)) $rn_bloc_obs = 'n'; + // ========================= if (isset($id_classe)) { if ($reg_class_name) { @@ -117,11 +130,11 @@ rn_sign_nblig='$rn_sign_nblig', rn_formule='$rn_formule', rn_abs_2='$rn_abs_2', - ects_type_formation='".$ects_type_formation."', - ects_parcours='".$ects_parcours."', - ects_code_parcours='".$ects_code_parcours."', - ects_domaines_etude='".$ects_domaines_etude."', - ects_fonction_signataire_attestation='".$ects_fonction_signataire_attestation."' + ects_type_formation='".$ects_type_formation."', + ects_parcours='".$ects_parcours."', + ects_code_parcours='".$ects_code_parcours."', + ects_domaines_etude='".$ects_domaines_etude."', + ects_fonction_signataire_attestation='".$ects_fonction_signataire_attestation."' WHERE id = '$id_classe'"); if (!$register_class) { @@ -154,6 +167,18 @@ } } + // ========================= + // 20121027 + $tab_param=array('rn_aff_classe_nom','rn_app', 'rn_moy_classe', 'rn_moy_min_max_classe', 'rn_retour_ligne','rn_rapport_standard_min_font', 'rn_adr_resp', 'rn_bloc_obs'); + for($loop=0;$loop @@ -472,11 +529,11 @@ function modif_mode_infobulle_nav() {

      Prénom et nom du signataire des bulletins (chef d'établissement ou son représentant) :

      +?>

      Fonction du signataire sus-nommé (ex.: "Proviseur") :

      +?>

      Formule à insérer sur les bulletins (cette formule sera suivie des nom et prénom de la personne désignée ci_dessus :

      Formatage de l'identité des professeurs pour les bulletins : @@ -513,29 +570,35 @@ function modif_mode_infobulle_nav() {

      +

      CatégoriePriorité d'affichageAfficher la moyenne sur le bulletinCatégoriePriorité d'affichageAfficher la moyenne sur le bulletin
          + Affichage du nom de la classe sur le relevé : + +
      +
      +
      +
          Afficher le nom des devoirs :
          Nombre de lignes pour la signature : (par défaut, c'est 3)
          + Afficher l'appréciation/commentaire du professeur
      (sous réserve d'autorisation par le professeur dans les paramètres du devoir) : +
      + + +
          + Avec la moyenne de la classe pour chaque devoir : + + + +
          + Avec les moyennes min/classe/max de chaque devoir : + + + +
          + Avec retour à la ligne après chaque devoir si on affiche le nom du devoir ou le commentaire : + + + +
          + Rapport taille_standard / taille_minimale_de_police (relevé PDF) Aide sur Bloc observations en PDF"; + ?> : + (par défaut, c'est 3)
          + Afficher le bloc adresse du responsable de l'élève : + + + +
          + Afficher le bloc observations (relevé PDF) Aide sur Bloc observations en PDF"; + ?> : + + + +
      - - + + + - - + + - - + + - - + + - - + + - - + + + + - - + + + - - + + - - + + - - + + + + + + + + + @@ -761,59 +848,140 @@ function modif_mode_infobulle_nav() { - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +Pour que la liste des devoirs tienne dans la cellule, on réduit la taille de la police.
      Pour que cela reste lisible, vous pouvez fixer ici une taille minimale en dessous de laquelle ne pas descendre.


      Si la taille minimale ne suffit toujours pas à permettre l'affichage dans la cellule, on supprime les retours à la ligne.


      Et cela ne suffit toujours pas, le texte est tronqué (dans ce cas, un relevé HTML pourra permettre l'affichage (les hauteurs de cellules s'adaptent à la quantité de texte... L'inconvénient : Une matière peut paraître plus importante qu'une autre par la place qu'elle occupe)).

      \n"; + $tabdiv_infobulle[]=creer_div_infobulle('a_propos_rapport_tailles_polices',$titre_infobulle,"",$texte_infobulle,"",35,0,'y','y','n','n'); +?> + - - + + + - - + + +Le bloc observations est affiché si une des conditions suivantes est remplie :

      \n"; + $texte_infobulle.="
        \n"; + $texte_infobulle.="
      • La case Bloc observations est cochée.
      • \n"; + $texte_infobulle.="
      • Une des cases signature est cochée.
      • \n"; + $texte_infobulle.="
      \n"; + $tabdiv_infobulle[]=creer_div_infobulle('a_propos_bloc_observations',$titre_infobulle,"",$texte_infobulle,"",35,0,'y','y','n','n'); +?> - - + + +?> - - + + - - + + - - + + - - + + - diff --git a/lib/share.inc.php b/lib/share.inc.php index 71b9200f1..8093925e9 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -2264,6 +2264,69 @@ function savePref($login,$item,$valeur){ if($res) {return TRUE;} else {return FALSE;} } +/** + * Renvoie l'ensemle des paramètres d'une classe en interrogeant la table classes_param + * + * @param string $id_classe Identifiant de la classe + * @return array Tableau associatif des paramètres name=>value + */ +function getAllParamClasse($id_classe) { + $sql="SELECT * FROM classes_param WHERE id_classe='$id_classe' ORDER BY name;"; + $res_param=mysql_query($sql); + + $tab_param=array(); + if(mysql_num_rows($res_param)>0){ + while($ligne=mysql_fetch_object($res_param)) { + $tab_param[$ligne->name]=$ligne->value; + } + } + + return $tab_param; +} + +/** + * Renvoie les paramètres d'une classe pour un item en interrogeant la table classes_param + * + * @param string $id_classe Identifiant de la classe + * @param string $item Item recherché + * @param string $default Valeur par défaut + * @return string La valeur de l'item + */ +function getParamClasse($id_classe,$item,$default) { + $sql="SELECT value FROM classes_param WHERE id_classe='$id_classe' AND name='$item'"; + $res_param=mysql_query($sql); + + if(mysql_num_rows($res_param)>0){ + $ligne=mysql_fetch_object($res_param); + return $ligne->value; + } + else{ + return $default; + } +} + +/** + * Enregistre les paramètres d'une classe pour un item dans la table classes_param + * + * @param string $id_classe Identifiant de la classe + * @param string $item Item recherché + * @param string $valeur Valeur à enregistrer + * @return boolean TRUE si tout c'est bien passé + */ +function saveParamClasse($id_classe,$item,$valeur) { + $sql="SELECT value FROM classes_param WHERE id_classe='$id_classe' AND name='$item'"; + $res_param=mysql_query($sql); + + if(mysql_num_rows($res_param)>0){ + $sql="UPDATE classes_param SET value='$valeur' WHERE id_classe='$id_classe' AND name='$item';"; + } + else{ + $sql="INSERT INTO classes_param SET id_classe='$id_classe', name='$item', value='$valeur';"; + } + $res=mysql_query($sql); + if($res) {return TRUE;} else {return FALSE;} +} + /** * Position horizontale initiale pour permettre un affichage sans superposition * diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index f5d19fedb..89efcd5d2 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -784,3 +784,12 @@ date_debut DATETIME NOT NULL , date_fin DATETIME NOT NULL ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE classes_param ( +id int(11) NOT NULL AUTO_INCREMENT, +id_classe smallint(6) NOT NULL, +name varchar(100) NOT NULL, +value varchar(255) NOT NULL, +PRIMARY KEY (id), +UNIQUE KEY id_classe_-_name (id_classe,name) +) CHARACTER SET utf8 COLLATE utf8_general_ci; + diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_dev.inc.php index a98a8b5ad..ad7a49451 100644 --- a/utilitaires/updates/161_to_dev.inc.php +++ b/utilitaires/updates/161_to_dev.inc.php @@ -262,5 +262,28 @@ $result .= msj_present("Le champ existe déjà"); } + +$result .= "
      "; +$result .= "Ajout d'une table 'classes_param' :
      "; +$test = sql_query1("SHOW TABLES LIKE 'classes_param';"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE classes_param ( + id int(11) NOT NULL AUTO_INCREMENT, + id_classe smallint(6) NOT NULL, + name varchar(100) NOT NULL, + value varchar(255) NOT NULL, + PRIMARY KEY (id), + UNIQUE KEY id_classe_-_name (id_classe,name) + ) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + $result .= "

      Mise à jour vers la version 1.6.2(dev) :

      "; ?> From b9e7be0bf74a32b16754c045bb7052203aca6efc Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 27 Oct 2012 18:59:08 +0200 Subject: [PATCH 0253/1150] Correctif sur le nom de l'index de la table classes_param. --- utilitaires/updates/161_to_dev.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_dev.inc.php index ad7a49451..dc7157b28 100644 --- a/utilitaires/updates/161_to_dev.inc.php +++ b/utilitaires/updates/161_to_dev.inc.php @@ -273,7 +273,7 @@ name varchar(100) NOT NULL, value varchar(255) NOT NULL, PRIMARY KEY (id), - UNIQUE KEY id_classe_-_name (id_classe,name) + UNIQUE KEY id_classe_name (id_classe,name) ) CHARACTER SET utf8 COLLATE utf8_general_ci;"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); From 557e069afe62acfab4ff20faca79b16716feff37 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:33 +0100 Subject: [PATCH 0254/1150] =?UTF-8?q?Ajout=20d'une=20page=20pour=20consult?= =?UTF-8?q?er/supprimer=20les=20compte-rendus=20de=20de=20m=C3=A0j=20scone?= =?UTF-8?q?t.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- responsables/consult_maj_sconet.php | 146 ++++++++++++++++++++++ responsables/maj_import.php | 29 ++++- sql/data_gepi.sql | 2 +- utilitaires/updates/access_rights.inc.php | 12 ++ 4 files changed, 183 insertions(+), 6 deletions(-) create mode 100644 responsables/consult_maj_sconet.php diff --git a/responsables/consult_maj_sconet.php b/responsables/consult_maj_sconet.php new file mode 100644 index 000000000..68293d046 --- /dev/null +++ b/responsables/consult_maj_sconet.php @@ -0,0 +1,146 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +if(($_SESSION['statut']=='scolarite')&&(!getSettingAOui('GepiAccesMajSconetScol'))) { + header("Location: ../accueil.php?msg=Mise à jour Sconet non autorisée en compte scolarité."); + die(); +} + +if(isset($_POST['suppr'])) { + check_token(); + + $msg=""; + $suppr=$_POST['suppr']; + + $cpt_suppr=0; + for($i=0;$i"; + } + else { + $cpt_suppr++; + } + } + + if($cpt_suppr>0) { + $msg.="Suppression de $cpt_suppr compte-rendu(s).
      "; + } +} + +//**************** EN-TETE ***************** +$titre_page = "Consultation Màj Sconet"; +require_once("../lib/header.inc.php"); +//**************** FIN EN-TETE ***************** +echo "

      +Retour Retour

      \n"; + +echo "

      Mises à jour d'après Sconet/Siècle

      "; + +$sql="SELECT * FROM log_maj_sconet ORDER BY date_debut;"; +$res=mysql_query($sql); +if(mysql_num_rows($res)==0){ + echo "

      Aucun compte-rendu de mise à jour d'après Sconet n'est enregistré dans la table 'log_maj_sconet'.

      \n"; + require("../lib/footer.inc.php"); + die(); +} + +echo "
      + ".add_token_field()." +

      Voici les compte-rendus enregistrés :

      +
      -

      Paramètres généraux :

      +

      Paramètres généraux :

          - - onchange='changement()' /> - + + + onchange='changement()' /> +
          - Paramétrage des catégories de matière pour cette classe (uniquement si case ci-dessus cochée) + Paramétrage des catégories de matière pour cette classe (uniquement si case ci-dessus cochée) - +
      CatégoriePriorité d'affichageAfficher la moyenne sur le bulletinCatégoriePriorité d'affichageAfficher la moyenne sur le bulletin
      -
      -

      Paramètres bulletin HTML :

      +

      Paramètres bulletin HTML :

          - - onchange='changement()' /> - + + + onchange='changement()' /> +
          - - onchange='changement()' /> - + + + onchange='changement()' /> +
          - - onchange='changement()' /> - + + + onchange='changement()' /> +
          - - onchange='changement()' /> - + + + onchange='changement()' /> +
          - - onchange='changement()' /> - + + + onchange='changement()' /> +
      -

      Paramètres bulletin PDF :

      +

      Paramètres bulletin PDF :

          - Sélectionner le modèle de bulletin pour l'impression en PDF : + Sélectionner le modèle de bulletin pour l'impression en PDF : ANOMALIE : Il n'existe aucun modèle de bulletin PDF."; @@ -676,7 +744,7 @@ function modif_mode_infobulle_nav() {
          - s pouvant apparaître dans l'avis du conseil de classe sur les bulletins : + s pouvant apparaître dans l'avis du conseil de classe sur les bulletins :
      -

      Paramètres des relevés de notes :

      +

      Paramètres des relevés de notes :

          - onchange='changement()' /> + Affichage du nom de la classe sur le relevé : + + onchange='changement()' />
      + onchange='changement()' />
      + onchange='changement()' />
      +
          - onchange='changement()' /> + + onchange='changement()' />
          - onchange='changement()' /> + + onchange='changement()' />
          - onchange='changement()' /> + + onchange='changement()' />
          + + onchange='changement()' />
          - onchange='changement()' />
          - onchange='changement()' /> + + onchange='changement()' />
          + + onchange='changement()' />
          + + onchange='changement()' />
         Nombre de lignes pour la signature :
          + + onchange='changement()' />
          + + onchange='changement()' />
          + + onchange='changement()' />
          + + onchange='changement()' />
          - onchange='changement()' />Rapport taille_standard / taille_minimale_de_police (relevé PDF) Aide sur Bloc observations en PDF"; + ?> :
          - onchange='changement()' /> + + onchange='changement()' />
         Nombre de lignes pour la signature : + + + onchange='changement()' /> +
      -

      Paramètres des attestations ECTS :

      +

      Paramètres des attestations ECTS :

         Type de formation (ex: "Classe préparatoire scientifique") :Type de formation (ex: "Classe préparatoire scientifique") :
         Nom complet du parcours de formation (ex: "BCPST (Biologie, Chimie, Physique et Sciences de la Terre)") :Nom complet du parcours de formation (ex: "BCPST (Biologie, Chimie, Physique et Sciences de la Terre)") :
         Nom cours du parcours de formation (ex: "BCPST") :Nom cours du parcours de formation (ex: "BCPST") :
         Domaines d'étude (ex: "Biologie, Chimie, Physique, Mathématiques, Sciences de la Terre") :Domaines d'étude (ex: "Biologie, Chimie, Physique, Mathématiques, Sciences de la Terre") :
      + + + + + + + + + + + + + "; +$cpt=0; +$alt=1; +while($lig=mysql_fetch_object($res)) { + $alt=$alt*(-1); + echo " + + + + + + + "; + $cpt++; +} + echo " + +
      Date deEffectuée
      par
      Compte-rendu +
      + Tout cocher / Tout décocher +
      débutfin
      ".formate_date($lig->date_debut, 'y')."".(($lig->date_fin!="0000-00-00 00:00:00") ? formate_date($lig->date_fin, 'y') : "")."".civ_nom_prenom($lig->login)."".$lig->texte."
      + + + + +


      \n"; +require("../lib/footer.inc.php"); +?> diff --git a/responsables/maj_import.php b/responsables/maj_import.php index 228a0e7ad..72168a5dc 100644 --- a/responsables/maj_import.php +++ b/responsables/maj_import.php @@ -1,7 +1,7 @@ "; -echo "Retour Retour"; +echo "

      +Retour Retour"; +if(acces("/responsables/consult_maj_sconet.php", $_SESSION['statut'])) { + $acces="n"; + if($_SESSION['statut']=='administrateur') { + $acces="y"; + } + elseif(($_SESSION['statut']!='scolarite')&&(getSettingAOui('GepiAccesMajSconetScol'))) { + $acces="y"; + } + + if($acces=='y') { + $sql="SELECT 1=1 FROM log_maj_sconet LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + echo " | Consulter le compte-rendu des dernières mises à jour"; + } + } +} echo "

      \n"; /* @@ -65,8 +82,10 @@ echo "


      \n"; */ -echo "

      Mise à jour des données élèves/responsables à l'aide des fichiers XML de Sconet/STS.

      \n"; -echo "


      \n"; +echo "

      Mise à jour d'après Sconet/Siècle

      + +

      Mise à jour des données élèves/responsables à l'aide des fichiers XML de Sconet/STS.

      +


      \n"; //================================== // RNE de l'établissement pour comparer avec le RNE de l'établissement de l'année précédente diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 91642c1e1..8c77753b9 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1189,4 +1189,4 @@ INSERT INTO droits VALUES ('/gestion/gestion_infos_actions.php', 'V', 'V', 'V', INSERT INTO droits SET id='/responsables/maj_import3.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F', description='Mise à jour Sconet',statut=''; INSERT INTO droits SET id='/mod_discipline/mod_discipline_extraction_ooo.php',administrateur='V',professeur='F',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Discipline : Extrait OOo des incidents',statut=''; - +INSERT INTO droits SET id='/responsables/consult_maj_sconet.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Consultation des compte-renduds de mise à jour Sconet',statut=''; diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 4e1144f38..711605be8 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -919,6 +919,18 @@ function traite_requete($requete = "") { description='Mise à jour Sconet', statut='';"; +$tab_req[] = "INSERT INTO droits SET id='/responsables/consult_maj_sconet.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='V', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Consultation des compte-renduds de mise à jour Sconet', +statut='';"; + $tab_req[]="INSERT INTO droits SET id='/mod_discipline/mod_discipline_extraction_ooo.php', administrateur='V', professeur='F', From ed0c5d8ef140cfa4fd531132297c68f70dc21d47 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:34 +0100 Subject: [PATCH 0255/1150] Ajout de liens --- responsables/maj_import3.php | 200 +++++++++++++++++++++++------------ 1 file changed, 135 insertions(+), 65 deletions(-) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index b9e7b883d..f4ecc265d 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -3694,6 +3694,8 @@ function modifcase(mode){ // On recherche dans tempo2 la liste des ELE_ID correspondant à modif ou new // Et on remplit/met à jour 'eleves' avec les enregistrements correspondants de temp_gep_import2 + enregistre_log_maj_sconet("

      Parcours des ajouts/modifications élèves

      "); + $erreur=0; $cpt=0; $sql="SELECT DISTINCT t.* FROM temp_gep_import2 t, tempo2 t2 WHERE t.ELE_ID=t2.col2 AND t2.col1='modif'"; @@ -3790,7 +3792,9 @@ function modifcase(mode){ info_debug($sql); $update=mysql_query($sql); if($update){ - $texte.="\n"; + $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; if(getSettingValue('mode_email_ele')!="mon_compte") { $sql="UPDATE utilisateurs SET email='$lig->MEL' WHERE statut='eleve' AND login IN (SELECT login FROM eleves WHERE ele_id='$lig->ELE_ID');"; @@ -3800,11 +3804,11 @@ function modifcase(mode){ } else{ $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; $erreur++; } //echo "$sql
      \n"; - $texte.="$lig->ELEPRE $lig->ELENOM"; - $texte.="
      "; $sql="UPDATE j_eleves_regime SET doublant='$doublant'"; if("$regime"!="ERR"){ @@ -3848,7 +3852,10 @@ function modifcase(mode){ info_debug($sql); $update=mysql_query($sql); if($update){ - $texte.="\n"; + + $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; if(getSettingValue('mode_email_ele')!="mon_compte") { $sql="UPDATE utilisateurs SET email='$lig->MEL' WHERE statut='eleve' AND login IN (SELECT login FROM eleves WHERE ele_id='$lig->ELE_ID');"; @@ -3857,11 +3864,11 @@ function modifcase(mode){ } else{ $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; $erreur++; } //echo "$sql
      \n"; - $texte.="$lig->ELEPRE $lig->ELENOM"; - $texte.="
      "; $sql="UPDATE j_eleves_regime SET doublant='$doublant'"; if("$regime"!="ERR"){ @@ -4149,7 +4156,9 @@ function modifcase(mode){ info_debug($sql); $insert=mysql_query($sql); if($insert){ - $texte.="\n"; + $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; if($nb_comptes_eleves>0) { $info_action_titre="Nouvel élève : ".remplace_accents(stripslashes($lig->ELENOM)." ".stripslashes($lig->ELEPRE))." ($login_eleve)"; @@ -4161,11 +4170,11 @@ function modifcase(mode){ } else{ $texte.="\n"; + $texte.="$lig->ELEPRE $lig->ELENOM"; + $texte.=""; $erreur++; } //echo "$sql
      \n"; - $texte.="$lig->ELEPRE $lig->ELENOM"; - $texte.="
      "; $sql="INSERT INTO j_eleves_regime SET doublant='$doublant', @@ -4518,7 +4527,7 @@ function modif_case(rang,type,statut){ if(mysql_num_rows($res_ele)>0){ $lig_ele=mysql_fetch_object($res_ele); - $texte.="Affectation de $lig_ele->prenom $lig_ele->nom "; + $texte.="Affectation de $lig_ele->prenom $lig_ele->nom "; //if(is_int($id_classe[$i])){ if(is_numeric($id_classe[$i])){ @@ -5894,7 +5903,7 @@ function modif_case(rang,type,statut){ $login_resp=$_POST['login_resp']; - echo "

      Parcours des modifications de login demandées...

      \n"; + $texte="

      Parcours des modifications de login demandées...

      \n"; foreach($login_resp as $key => $value) { // On commence par vider le login pour éviter des collisions $sql="UPDATE resp_pers SET login='' WHERE pers_id='".$key."';"; @@ -5903,49 +5912,58 @@ function modif_case(rang,type,statut){ foreach($login_resp as $key => $value) { if($value!='') { - echo "Mise à jour du login du responsable n°$key vers $value : "; + $texte.="Mise à jour du login du responsable n°$key (".civ_nom_prenom_from_pers_id($key).") vers $value : "; // Vérification $sql="SELECT rp.* FROM resp_pers WHERE login='$value';"; - $test==mysql_query($sql); + $test=mysql_query($sql); if(mysql_num_rows($test)==0) { $sql="UPDATE resp_pers SET login='$value' WHERE pers_id='".$key."';"; $update=mysql_query($sql); if($update) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; } else { - echo "
      Le login $value est déjà attribué à un autre utilisateur.
      \n"; + $texte.="
      Le login $value est déjà attribué à un autre utilisateur.
      \n"; } + } else { - echo "Le login du responsable n°$key est vide.
      \n"; + $texte.="Le login du responsable n°$key (".civ_nom_prenom_from_pers_id($key).") est vide.
      \n"; } } - require("../lib/footer.inc.php"); - die(); + echo $texte; + enregistre_log_maj_sconet($texte); + + //require("../lib/footer.inc.php"); + //die(); } if(isset($_POST['suppr'])) { check_token(false); - echo "

      Parcours des modifications demandées...

      \n"; + $texte="

      Parcours des modifications demandées...

      \n"; + echo $texte; + enregistre_log_maj_sconet($texte); $nb_incertitudes=0; $suppr=$_POST['suppr']; $conserver=isset($_POST['conserver']) ? $_POST['conserver'] : array(); for($loop=0;$loopLe responsable n°".$suppr[$loop]." proposé à la suppression n'existe pas.
      "; + $texte.="Le responsable n°".$suppr[$loop]." proposé à la suppression n'existe pas.
      "; + echo $texte; + enregistre_log_maj_sconet($texte); } else { // Chercher les homonymes. @@ -5954,7 +5972,7 @@ function modif_case(rang,type,statut){ $res_rp2=mysql_query($sql); if(mysql_num_rows($res_rp2)==0) { // On ne devrait pas arriver là... si: si on a supprimé les précédents homonymes dans le même submit - echo "Le responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) proposé à la suppression n'a pas ou plus d'homonyme.
      Suppression : \n"; + $texte.="Le responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) proposé à la suppression n'a pas ou plus d'homonyme.
      Suppression : \n"; $sql="DELETE FROM utilisateurs WHERE statut='responsable' ANT login IN (SELECT login FROM resp_pers WHERE pers_id='".$suppr[$loop]."');"; $menage=mysql_query($sql); @@ -5962,17 +5980,20 @@ function modif_case(rang,type,statut){ $sql="DELETE FROM resp_pers WHERE pers_id='".$suppr[$loop]."';"; $menage=mysql_query($sql); if($menage) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; + + echo $texte; + enregistre_log_maj_sconet($texte); } else { if((!isset($conserver[$lig_rp->pers_id]))||($conserver[$lig_rp->pers_id]=='')) { - echo "Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; + $texte.="Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; $sql="DELETE FROM utilisateurs WHERE statut='responsable' ANT login IN (SELECT login FROM resp_pers WHERE pers_id='".$suppr[$loop]."');"; $menage=mysql_query($sql); @@ -5980,12 +6001,15 @@ function modif_case(rang,type,statut){ $sql="DELETE FROM resp_pers WHERE pers_id='".$suppr[$loop]."';"; $menage=mysql_query($sql); if($menage) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; + + echo $texte; + enregistre_log_maj_sconet($texte); } else { // Le login du compte qui va être supprimé, doit être conservé. @@ -5994,12 +6018,18 @@ function modif_case(rang,type,statut){ $sql="SELECT statut FROM utilisateurs WHERE login='".$conserver[$lig_rp->pers_id]."';"; $test=mysql_query($sql); if(mysql_num_rows($test)==0) { - echo "Le login proposé ".$conserver[$lig_rp->pers_id]." n'existe pas.
      "; + $texte.="Le login proposé ".$conserver[$lig_rp->pers_id]." n'existe pas.
      "; + + echo $texte; + enregistre_log_maj_sconet($texte); } else { $statut_test=mysql_result($test, 0, "statut"); if($statut_test!='responsable') { - echo "Le login proposé ".$conserver[$lig_rp->pers_id]." n'est pas un compte 'responsable', mais '$statut_test'.
      "; + $texte.="Le login proposé ".$conserver[$lig_rp->pers_id]." n'est pas un compte 'responsable', mais '$statut_test'.
      "; + + echo $texte; + enregistre_log_maj_sconet($texte); } else { @@ -6021,32 +6051,39 @@ function modif_case(rang,type,statut){ } if(($nb_resp_conserves==1)&&(!isset($conserver[$tab_homonymes[0]['pers_id']]))) { - echo "Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; + $texte.="Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; $sql="DELETE FROM resp_pers WHERE pers_id='".$suppr[$loop]."';"; $menage=mysql_query($sql); if($menage) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; - echo "$lig_rp->nom $lig_rp->prenom : Mise à jour du compte d'utilisateur de l'homonyme conservé (".$tab_homonymes[0]['pers_id'].") vers ".$conserver[$lig_rp->pers_id]." : "; + $texte.="$lig_rp->nom $lig_rp->prenom : Mise à jour du compte d'utilisateur de l'homonyme conservé (".$tab_homonymes[0]['pers_id'].") vers ".$conserver[$lig_rp->pers_id]." : "; $sql="UPDATE resp_pers SET login='".$conserver[$lig_rp->pers_id]."' WHERE pers_id='".$tab_homonymes[0]['pers_id']."';"; $update=mysql_query($sql); if($update) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; + + echo $texte; + enregistre_log_maj_sconet($texte); } else { // Incertitude: - echo "
      \n"; - echo "Il y a une incertitude sur ce qu'il convient d'effectuer pour $lig_rp->nom $lig_rp->prenom
      "; + $texte.="
      \n"; + $texte.="Il y a une incertitude sur ce qu'il convient d'effectuer pour $lig_rp->nom $lig_rp->prenom
      "; + + echo $texte; + enregistre_log_maj_sconet($texte); + echo "
      \n"; echo "\n"; echo "\n"; @@ -6075,16 +6112,20 @@ function modif_case(rang,type,statut){ echo "\n"; // Il faut supprimer le responsable pour ne pas se retrouver à imposer deux resp_pers avec un même login (non vide) - echo "Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; + $texte="Suppression du responsable n°".$suppr[$loop]." ($lig_rp->nom $lig_rp->prenom) : "; $sql="DELETE FROM resp_pers WHERE pers_id='".$suppr[$loop]."';"; $menage=mysql_query($sql); if($menage) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; + + echo $texte; + enregistre_log_maj_sconet($texte); + echo "
      \n"; $nb_incertitudes++; } @@ -6438,6 +6479,9 @@ function mise_en_gras_login_conserve(id_checkbox, pers_id) { echo "
      • Lors du dédoublonnage dans Sconet, il peut arriver que le responsable conservé (pers_id) ne soit pas celui qui a été pris en compte dans Gepi pour la distribution des comptes d'utilisateurs aux parents.
        Il faut alors recoller les morceaux dans Gepi.
      • Si un seul enregistrement subsiste dans Sconet/Siècle pour un responsable, il est recommandé de conserver dans Gepi ce responsable et de lui affecter l'ancien login si le responsable disposait d'un compte pour se connecter dans Gepi.
      • +
      • Cocher la case 'Conserver le login' ne présente d'intérêt que si vous supprimez la personne associée.
        +Dans ce cas, le doublon restant prendra le login de celui qui a été coché à la suppression.
        +Sinon, les comptes non supprimés conservent leur login, même si vous ne cochez pas la colonne 'Conserver'.
      • Si un ancien responsable (présent dans la base Gepi) et un nouveau responsable (présent dans Sconet/Siècle et proposé ici à l'importation dans Gepi) sont tous les deux associés à des élèves dans la colonne XML (Sconet/Siècle), alors vous ne devriez supprimer ni l'un, ni l'autre, mais faire le ménage dans Sconet/Siècle pour ne pas conserver ces doublons.
      \n"; @@ -7738,7 +7782,7 @@ function modifcase(mode){ if(isset($_POST['rapprocher_pers_id'])) { - echo "

      Prise en compte des modifications :

      \n"; + $texte="

      Prise en compte des modifications :

      \n"; $rapprocher_pers_id=$_POST['rapprocher_pers_id']; for($loop=0;$loop0) { $lig=mysql_fetch_object($res); - echo "Le pers_id n°$nouveau_pers_id est déjà attribué à $lig->nom $lig->prenom.
      \n"; + $texte.="Le pers_id n°$nouveau_pers_id est déjà attribué à $lig->nom $lig->prenom.
      \n"; } else { $sql="SELECT * FROM resp_pers WHERE pers_id='$ancien_pers_id';"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $lig=mysql_fetch_object($res); - - echo "Mise à jour de la responsabilité pour $lig->nom $lig->prenom ($ancien_pers_id>$nouveau_pers_id) : "; + $texte.="Mise à jour de la responsabilité pour $lig->nom $lig->prenom ($ancien_pers_id>$nouveau_pers_id) : "; $sql="UPDATE responsables2 SET pers_id='$nouveau_pers_id' WHERE pers_id='$ancien_pers_id';"; $update=mysql_query($sql); if($update) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; - echo "Mise à jour de l'identité dans resp_pers pour $lig->nom $lig->prenom ($ancien_pers_id>$nouveau_pers_id) : "; + $texte.="Mise à jour de l'identité dans resp_pers pour $lig->nom $lig->prenom ($ancien_pers_id>$nouveau_pers_id) : "; $sql="UPDATE resp_pers SET pers_id='$nouveau_pers_id' WHERE pers_id='$ancien_pers_id';"; $update=mysql_query($sql); if($update) { - echo "SUCCES"; + $texte.="SUCCES"; } else { - echo "ECHEC"; + $texte.="ECHEC"; } - echo "
      \n"; + $texte.="
      \n"; } } } } - echo "


      \n"; + $texte.="


      \n"; + + echo $texte; + enregistre_log_maj_sconet($texte); } @@ -7994,7 +8040,14 @@ function modifcase(mode){ //echo "Ajouter une colonne 'Prendre le pers_id du nouveau'
      Tester quand même si les anciens sont aussi dans temp_resp_pers_import... si oui, il n'y a pas lieu de proposer la modif... sauf si le resp n'est plus associé à aucun élève

      "; - echo "

      NOTE : Si les responsables n'ont pas de compte d'utilisateur pour se connecter dans Gepi, cette phase ne présente pas franchement d'intérêt.
      L'objectif est ici d'éviter de changer le responsable qui dispose déjà d'un compte d'utilisateur.
      Un nouveau login pourrait sinon être généré.

      \n"; + echo "

      NOTES :

      +
        +
      • On recherche ici si les responsables détectés comme nouveaux sont bien des nouveaux.
        + Pour cela, on recherche les autres responsables associés aux mêmes élèves que les nouveaux.
        + Si les deux responsables légaux d'un enfant ne sont pas ajoutés en même temps dans la base, il peut arriver que l'on vous propose ici des doublons qui n'en sont pas.
        + Vous les reconnaitrez facilement sauf si les époux sont de parfaits homonymes (nom et prénom)
      • +
      • Si les responsables n'ont pas de compte d'utilisateur pour se connecter dans Gepi, cette phase ne présente pas franchement d'intérêt.
        L'objectif est ici d'éviter de changer le responsable qui dispose déjà d'un compte d'utilisateur.
        Un nouveau login pourrait sinon être généré.
      • +
      \n"; echo "\n"; echo "\n"; @@ -8971,6 +9024,8 @@ function modifcase(mode){ //echo "

      On doit parcourir 'tempo2' en recherchant 'pers_id_confirm'.

      \n"; + enregistre_log_maj_sconet("

      Ajout et/ou modifications de responsables :

      "); + $sql="SELECT DISTINCT col2 FROM tempo2 WHERE col1='pers_id_confirm';"; info_debug($sql); $res1=mysql_query($sql); @@ -9020,7 +9075,9 @@ function modifcase(mode){ info_debug($sql); $insert=mysql_query($sql); if($insert){ - $texte.="\n"; + $texte.="\n"; + $texte.="$lig->prenom $lig->nom"; + $texte.=""; if($nb_comptes_resp>0) { $sql="SELECT 1=1 FROM temp_responsables2_import WHERE pers_id='".$lig1->col2."' AND (resp_legal='1' OR resp_legal='2');"; @@ -9036,10 +9093,11 @@ function modifcase(mode){ } else{ $texte.="\n"; + $texte.="$lig->prenom $lig->nom"; + $texte.=""; + $erreur++; } - $texte.="$lig->prenom $lig->nom"; - $texte.=""; } else{ $sql="UPDATE resp_pers SET nom='".mysql_real_escape_string(my_strtoupper($lig->nom))."', @@ -9088,7 +9146,9 @@ function modifcase(mode){ info_debug($sql); $update=mysql_query($sql); if($update){ - $texte.="\n"; + $texte.="\n"; + $texte.="$lig->prenom $lig->nom"; + $texte.=""; if(getSettingValue('mode_email_resp')=='sconet') { $sql="UPDATE utilisateurs SET email='".mysql_real_escape_string($lig->mel)."' WHERE statut='responsable' AND login IN (SELECT login FROM resp_pers WHERE pers_id='$lig1->col2');"; @@ -9099,11 +9159,11 @@ function modifcase(mode){ else{ info_debug("ERREUR sur l'update"); $texte.="\n"; + $texte.="$lig->prenom $lig->nom"; + $texte.=""; $erreur++; } //echo "$sql
      \n"; - $texte.="$lig->prenom $lig->nom"; - $texte.="
      "; if((isset($update_utilisateurs))&&(!$update_utilisateurs)) {$texte.=" Erreur lors de la mise à jour du mail du compte utilisateur.
      \n";} @@ -9667,6 +9727,9 @@ function modifcase(mode){ $sql="DELETE FROM responsables2 WHERE WHERE pers_id='$pers_id';"; info_debug($sql); $nettoyage=mysql_query($sql); + + if($nettoyage) {enregistre_log_maj_sconet("Suppression des responsabilités pour le responsable n°$pers_id (".civ_nom_prenom_from_pers_id($pers_id).").
      ");} + } } @@ -9794,6 +9857,7 @@ function modifcase(mode){ resp_legal='$resp_legal';"; info_debug($sql); $insert=mysql_query($sql); + if($insert) {enregistre_log_maj_sconet("Enregistrement de la responsabilité du responsable n°$pers_id (".civ_nom_prenom_from_pers_id($pers_id).") en tant que responsable légal $resp_legal de l'élève n°$ele_id (".get_nom_prenom_eleve_from_ele_id($ele_id).").
      ");} } else{ // Cas de resp_legal=0 @@ -9803,6 +9867,7 @@ function modifcase(mode){ resp_legal='$resp_legal';"; info_debug($sql); $insert=mysql_query($sql); + if($insert) {enregistre_log_maj_sconet("Enregistrement de la responsabilité du responsable n°$pers_id (".civ_nom_prenom_from_pers_id($pers_id).") en tant que responsable légal $resp_legal de l'élève n°$ele_id (".get_nom_prenom_eleve_from_ele_id($ele_id).").
      ");} } } } @@ -9873,6 +9938,7 @@ function modifcase(mode){ resp_legal='$resp_legal';"; info_debug($sql); $insert=mysql_query($sql); + if($insert) {enregistre_log_maj_sconet("Enregistrement de la responsabilité du responsable n°$pers_id (".civ_nom_prenom_from_pers_id($pers_id).") en tant que responsable légal $resp_legal de l'élève n°$ele_id (".get_nom_prenom_eleve_from_ele_id($ele_id).").
      ");} } else{ @@ -9883,6 +9949,7 @@ function modifcase(mode){ resp_legal='$resp_legal';"; info_debug($sql); $update=mysql_query($sql); + if($update) {enregistre_log_maj_sconet("Mise à jour de la responsabilité du responsable n°$pers_id (".civ_nom_prenom_from_pers_id($pers_id).") en tant que responsable légal $resp_legal de l'élève n°$ele_id (".get_nom_prenom_eleve_from_ele_id($ele_id).").
      ");} } } } @@ -10458,6 +10525,9 @@ function modifcase(mode){ $sql="DELETE FROM responsables2 WHERE pers_id='$lig_nett->pers_id' AND ele_id='$lig_nett->ele_id';"; info_debug($sql); $nettoyage=mysql_query($sql); + + if($nettoyage) {enregistre_log_maj_sconet("Suppression de responsabilité sans élève associé pour le responsable n°$lig_nett->pers_id (".civ_nom_prenom_from_pers_id($lig_nett->pers_id).") en tant que responsable légal $resp_legal de l'élève n°$lig_nett->ele_id.
      ");} + flush(); $cpt_nett++; } From 8c0a44a1608b4a45fc2cd07243a2df0821504c84 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:34 +0100 Subject: [PATCH 0256/1150] =?UTF-8?q?Acc=C3=A8s=20pour=20le=20statut=20'au?= =?UTF-8?q?tre'=20=C3=A0=20la=20'nouvelle'=20page=20de=20visualisation=20d?= =?UTF-8?q?es=20relev=C3=A9s=20de=20notes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extraction_donnees_releves_notes.php | 3 +++ cahier_notes/visu_releve_notes_bis.php | 22 ++++++++++++++++++- class_php/class_page_accueil_autre.php | 10 +++++++-- utilisateurs/creer_statut_autorisation.php | 3 ++- 4 files changed, 34 insertions(+), 4 deletions(-) diff --git a/cahier_notes/extraction_donnees_releves_notes.php b/cahier_notes/extraction_donnees_releves_notes.php index b3c2283c1..04c99fe89 100644 --- a/cahier_notes/extraction_donnees_releves_notes.php +++ b/cahier_notes/extraction_donnees_releves_notes.php @@ -429,6 +429,9 @@ function recherche_conteneurs_enfants($id_parent) { elseif ($_SESSION['statut'] == 'secours') { $autorisation_acces='y'; } + elseif(($_SESSION['statut'] == 'autre') AND (acces("/cahier_notes/visu_releve_notes_bis.php", $_SESSION['statut'] == 'autre'))) { + $autorisation_acces='y'; + } if($autorisation_acces=='y') { diff --git a/cahier_notes/visu_releve_notes_bis.php b/cahier_notes/visu_releve_notes_bis.php index 094360b06..60e97cda2 100644 --- a/cahier_notes/visu_releve_notes_bis.php +++ b/cahier_notes/visu_releve_notes_bis.php @@ -2,7 +2,7 @@ /* * * -* Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun, Stéphane Boireau, Christian Chapel +* Copyright 2001, 2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun, Stéphane Boireau, Christian Chapel * * This file is part of GEPI. * @@ -47,6 +47,11 @@ die(); } +if(($_SESSION['statut']=='autre')&&(!acces("/cahier_notes/visu_releve_notes_bis.php", $_SESSION['statut']))) { + header("Location: ../accueil.php?msg=Acces_non_autorise"); + die(); +} + //================================ //+++++++++++++++++++++++++ @@ -330,6 +335,9 @@ classes c c.id=jec.id_classe AND jec.login=e.login);"; } + elseif($_SESSION['statut']=='autre') { + $sql="SELECT DISTINCT c.* FROM classes c ORDER BY classe"; + } else { echo "

      Vous n'êtes pas autorisé à accéder aux relevés de notes des élèves.

      \n"; require("../lib/footer.inc.php"); @@ -1154,6 +1162,18 @@ function ToutDeCocher() { (r.resp_legal='1' OR r.resp_legal='2') AND jec.login=e.login);"; } + elseif($_SESSION['statut'] == 'autre') { + $sql="SELECT DISTINCT e.* FROM eleves e, + j_eleves_classes jec + WHERE jec.login=e.login AND + jec.id_classe='".$tab_id_classe[$i]."' + ORDER BY e.nom,e.prenom;"; + } + else { + echo "

      La recherche de la liste des élèves n'est pas possible pour vos statut et autorisations???

      \n"; + require("../lib/footer.inc.php"); + die(); + } //echo "$sql
      "; $res_ele=mysql_query($sql); diff --git a/class_php/class_page_accueil_autre.php b/class_php/class_page_accueil_autre.php index 4ff334feb..71617f867 100644 --- a/class_php/class_page_accueil_autre.php +++ b/class_php/class_page_accueil_autre.php @@ -1,7 +1,7 @@ loginUtilisateur."');" ; + //echo "$sql
      "; $result=mysql_query($sql); if (!$result) { return FALSE; @@ -335,12 +336,17 @@ private function releve_notes(){ "Cet outil vous permet de visualiser à l'écran et d'imprimer les relevés de notes, ".$this->gepiSettings['denomination_eleve']." par ".$this->gepiSettings['denomination_eleve'].", classe par classe."); - $this->creeNouveauItem("/cahier_notes/visu_releve_notes.php", "Visualisation et impression des relevés de notes", "Cet outil vous permet de visualiser à l'écran et d'imprimer les relevés de notes, ".$this->gepiSettings['denomination_eleve']." par ".$this->gepiSettings['denomination_eleve'].", classe par classe."); + // Le cas suivant n'est pas encore géré... les requêtes en statut autre ne sont pas gérées dans visu_releve_notes_bis.php + $this->creeNouveauItem("/cahier_notes/visu_releve_notes_bis.php", + "Visualisation et impression des relevés de notes", + "Cet outil vous permet de visualiser à l'écran et d'imprimer les relevés de notes, + ".$this->gepiSettings['denomination_eleve']." par ".$this->gepiSettings['denomination_eleve'].", + classe par classe."); } if ($this->b>0){ diff --git a/utilisateurs/creer_statut_autorisation.php b/utilisateurs/creer_statut_autorisation.php index 5e8606ca6..2875f9b13 100644 --- a/utilisateurs/creer_statut_autorisation.php +++ b/utilisateurs/creer_statut_autorisation.php @@ -24,7 +24,8 @@ '/gestion/contacter_admin.php', '/gestion/info_gepi.php'); // droits spécifiques sur les pages relatives aux droits possibles -$autorise[1] = array('/cahier_notes/visu_releve_notes.php'); +//$autorise[1] = array('/cahier_notes/visu_releve_notes.php'); +$autorise[1] = array('/cahier_notes/visu_releve_notes_bis.php'); $autorise[2] = array('/prepa_conseil/index3.php', '/prepa_conseil/edit_limite.php'); $autorise[3] = array('/mod_absences/gestion/voir_absences_viescolaire.php', '/mod_absences/gestion/bilan_absences_quotidien.php', From 3fe88191ef43af3e99b1108371afd4074ab50e9e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:34 +0100 Subject: [PATCH 0257/1150] Focus sur le champ login. --- utilitaires/maj.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/utilitaires/maj.php b/utilitaires/maj.php index 4915e58cb..7c6a7263c 100644 --- a/utilitaires/maj.php +++ b/utilitaires/maj.php @@ -4,7 +4,7 @@ * * $Id$ * - * @copyright Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun + * @copyright Copyright 2001, 2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * @license GNU/GPL, * @package General * @subpackage mise_a jour @@ -174,6 +174,9 @@
      + '); From 48df823959b80af5115f223b355dd6501265f388 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:35 +0100 Subject: [PATCH 0258/1150] =?UTF-8?q?Acc=C3=A8s=20au=20statut=20autre=20en?= =?UTF-8?q?=20barre=20de=20menu=20admin.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_barre_admin_template.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lib/header_barre_admin_template.php b/lib/header_barre_admin_template.php index 30c37a4c7..a4ebdbff6 100644 --- a/lib/header_barre_admin_template.php +++ b/lib/header_barre_admin_template.php @@ -105,6 +105,11 @@ $menus .= '
    • Utilisateurs'."\n"; $menus .= '
        '."\n"; $menus .= '
      • Comptes Personnels
      • '."\n"; + + if (getSettingValue("statuts_prives") == "y") { + $menus .= '
      • Statuts personnalisés
      • '."\n"; + } + $menus .= '
      • Comptes Resp.légaux
      • '."\n"; $menus .= '
      • Comptes Elèves
      • '."\n"; $menus .= '
      • Correspondances identifiants SSO
      • '."\n"; From f3025b3b92ccf70b7ac2f1883bb90fd95cb6b2dc Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:35 +0100 Subject: [PATCH 0259/1150] =?UTF-8?q?Limitation=20du=20test=20'ping=5Fserv?= =?UTF-8?q?eur'=20aux=20comptes=20non-resp=20ni=20=C3=A9l=C3=A8ve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_template.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/header_template.inc.php b/lib/header_template.inc.php index 9560df107..f556a58d9 100644 --- a/lib/header_template.inc.php +++ b/lib/header_template.inc.php @@ -384,7 +384,7 @@ function last_connection() { $tbs_aff_temoin_check_serveur="n"; - if(getSettingAOui('aff_temoin_check_serveur')) { + if((getSettingAOui('aff_temoin_check_serveur'))&&($_SESSION['statut']!='eleve')&&($_SESSION['statut']!='responsable')) { // insert into setting set name='aff_temoin_check_serveur', value='y'; $tbs_aff_temoin_check_serveur="y"; } From 5af4d8c859307b74f1ddcdf4993934285ca1d470 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:32:50 +0100 Subject: [PATCH 0260/1150] Correctif sur la modification des droits d'un statut autre existant. --- utilisateurs/creer_statut.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilisateurs/creer_statut.php b/utilisateurs/creer_statut.php index c1024e21e..dccff3ebc 100644 --- a/utilisateurs/creer_statut.php +++ b/utilisateurs/creer_statut.php @@ -224,7 +224,7 @@ function verifChecked($id){ if (!empty ($result)){ $query_maj = mysql_query("UPDATE droits_speciaux SET autorisation = '".$vf."' WHERE id_statut = '".$b."' AND nom_fichier = '".$autorise[$m][$i]."'"); }else{ - $query2_maj = mysql_query("INSERT INTO `droits_speciaux` VALUES ('','".$b."','".$autorise[$m][$i]."','".$vf."')"); + $query_maj = mysql_query("INSERT INTO `droits_speciaux` VALUES ('','".$b."','".$autorise[$m][$i]."','".$vf."')"); } if (!$query_maj) { From 0b0173c543b28c36d847b783b578f0801746921e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Oct 2012 15:33:10 +0100 Subject: [PATCH 0261/1150] =?UTF-8?q?Ajout=20de=20fonctions=20get=5Fnom=5F?= =?UTF-8?q?prenom=5Feleve=5Ffrom=5Fele=5Fid()=20civ=5Fnom=5Fprenom=5Ffrom?= =?UTF-8?q?=5Fpers=5Fid()=20utilis=C3=A9es=20pour=20le=20moment=20dans=20m?= =?UTF-8?q?aj=5Fimport3.php?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 66 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 8093925e9..e9798074a 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -3404,6 +3404,37 @@ function get_nom_prenom_eleve($login_ele,$mode='simple') { } } +/** + * Renvoie le nom et le prénom d'un élève + * + * @param string $ele_id ele_id de l'élève + * @param string $mode si 'avec_classe' on retourne aussi la(les) classe(s) + * @return string + * @see civ_nom_prenom() + * @see get_class_from_ele_login() + * @see casse_mot() + */ +function get_nom_prenom_eleve_from_ele_id($ele_id, $mode='simple') { + $sql="SELECT login, nom,prenom FROM eleves WHERE ele_id='$ele_id';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + return "Elève inconnu ($ele_id)"; + } + else { + $lig=mysql_fetch_object($res); + + $ajout=""; + if($mode=='avec_classe') { + $tmp_tab_clas=get_class_from_ele_login($lig->login); + if((isset($tmp_tab_clas['liste']))&&($tmp_tab_clas['liste']!='')) { + $ajout=" (".$tmp_tab_clas['liste'].")"; + } + } + + return casse_mot($lig->nom)." ".casse_mot($lig->prenom,'majf2').$ajout; + } +} + /** * Retourne une commune à partir de son code insee * @@ -3457,6 +3488,8 @@ function get_commune($code_commune_insee,$mode){ * * @param string $login Login de l'utilisateur recherché * @param string $mode si 'prenom' inverse le nom et le prénom + * @param string $avec_statut avec affichage ou non du statut entre parenthèses + * * @return string civilite nom prénom de l'utilisateur */ function civ_nom_prenom($login,$mode='prenom',$avec_statut="n") { @@ -3494,6 +3527,34 @@ function civ_nom_prenom($login,$mode='prenom',$avec_statut="n") { return $retour; } +/** + * Renvoie civilite nom prénom d'un responsable + * + * @param string $pers_id pers_id de l'utilisateur recherché + * @param string $mode si 'prenom' inverse le nom et le prénom + * + * @return string civilite nom prénom de l'utilisateur + */ +function civ_nom_prenom_from_pers_id($pers_id,$mode='prenom') { + $retour=""; + $sql="SELECT nom,prenom,civilite FROM resp_pers WHERE pers_id='$pers_id';"; + $res_user=mysql_query($sql); + if (mysql_num_rows($res_user)>0) { + $lig_user=mysql_fetch_object($res_user); + if($lig_user->civilite!="") { + $retour.=$lig_user->civilite." "; + } + if($mode=='prenom') { + $retour.=my_strtoupper($lig_user->nom)." ".casse_mot($lig_user->prenom,'majf2'); + } + else { + // Initiale + $retour.=my_strtoupper($lig_user->nom)." ".my_strtoupper(mb_substr($lig_user->prenom,0,1)); + } + } + return $retour; +} + /** *Enleve le numéro des titres numérotés ("1. Titre" -> "Titre") * @@ -5638,7 +5699,10 @@ function get_img_formules_math($texte, $id_groupe, $type_notice="c") { function temoin_check_srv($id_div_retour="retour_ping", $nom_js_func="check_srv", $nom_var="cpt_ping", $taille=10, $intervalle_temps=10) { global $gepiPath; - echo "\n"; + echo "\n"; echo " + +\n"; $entete.="$titre\n"; $entete.="\n"; $entete.="\n"; + $style_box="color: #000000; border: 1px solid #000000; padding: 0px; position: absolute; z-index: 1;"; + $style_bar="color: #ffffff; cursor: move; font-weight: bold; padding: 0px;"; + $style_close="color: #ffffff; cursor: move; font-weight: bold; float:right; width: 16px; margin-right: 1px;"; + + $id='archive_selection_notices'; + $largeur="30em"; + $hauteur="10"; + $hauteur_unite="em"; + + $div="\n"; + + $entete.=$div; + return $entete; } @@ -100,6 +149,16 @@ function html_pied_de_page() { $pied_de_page=""; // A FAIRE + $pied_de_page.=" + +\n"; + $pied_de_page.="\n"; $pied_de_page.="\n"; @@ -126,18 +185,23 @@ function lignes_cdt($tab_dates, $tab_notices, $tab_dev,$dossier_documents="",$mo $html.="
    • \n"; if(isset($tab_dev[$tab_dates[$k]])) { foreach($tab_dev[$tab_dates[$k]] as $key => $value) { - $html.="
      ".$value['contenu']; - $adj=my_affiche_docs_joints($value['id_ct'],"t"); - if($adj!='') { - $html.="
      \n"; - $html.=$adj; - $html.="
      \n"; + // A VOIR: PB avec les bordures. + $html.="
      "; + $html.="
      \n"; + $html.="
      \n"; + $html.=$value['contenu']; + $adj=my_affiche_docs_joints($value['id_ct'],"t"); + if($adj!='') { + $html.="
      \n"; + $html.=$adj; + $html.="
      \n"; - if($dossier_documents!='') { - $tab_documents_joints=my_tab_docs_joints($value['id_ct'],"t"); - my_transfert_docs_joints($tab_documents_joints,$dossier_documents,$mode); - } - } + if($dossier_documents!='') { + $tab_documents_joints=my_tab_docs_joints($value['id_ct'],"t"); + my_transfert_docs_joints($tab_documents_joints,$dossier_documents,$mode); + } + } + $html.="
      \n"; $html.="
      \n"; } } @@ -152,18 +216,22 @@ function lignes_cdt($tab_dates, $tab_notices, $tab_dev,$dossier_documents="",$mo $html.="
      \n"; if(isset($tab_notices[$tab_dates[$k]])) { foreach($tab_notices[$tab_dates[$k]] as $key => $value) { - $html.="
      ".$value['contenu']; - $adj=my_affiche_docs_joints($value['id_ct'],"c"); - if($adj!='') { - $html.="
      \n"; - $html.=$adj; - $html.="
      \n"; + $html.="
      "; + $html.="
      \n"; + $html.="
      \n"; + $html.=$value['contenu']; + $adj=my_affiche_docs_joints($value['id_ct'],"c"); + if($adj!='') { + $html.="
      \n"; + $html.=$adj; + $html.="
      \n"; - if($dossier_documents!='') { - $tab_documents_joints=my_tab_docs_joints($value['id_ct'],"c"); - my_transfert_docs_joints($tab_documents_joints,$dossier_documents,$mode); - } - } + if($dossier_documents!='') { + $tab_documents_joints=my_tab_docs_joints($value['id_ct'],"c"); + my_transfert_docs_joints($tab_documents_joints,$dossier_documents,$mode); + } + } + $html.="
      \n"; $html.="
      \n"; } } diff --git a/images/icons/trash.png b/images/icons/trash.png new file mode 100644 index 0000000000000000000000000000000000000000..f403f93d2565b8a050c3aca7b4cd87839d07920c GIT binary patch literal 997 zcmVy9-NH!s*CVr2Vte~f#>U3j+e=_Jn^;2N_xB@&umPxc zyG_*Vx)ch9xV5l=VHi|uRSJayilU$@Dv|_~6H|CR9xTfuo6Takw+R3>(BE6xOC+4f z&z=zs2Jw2msG3Uo{G2zHa|(q5x~}7Ly0B?BPIEbm#Ug`&zUl^`$}(xY-8MBcI)Z4m zIC#BJKA$I_&r_{c(KHR4reSpJ1Oh>#Gt=1ZcD{M?bqYX6B2_FF>GS${_x2)zem`G) z_Bn>$U~%y_iI=Y!8XlrlDl;8~S$Z7UemjwG47c}LdTrRbAT_%Mma zEF=Vg0^ko0sH>~bXL@`-sjI77?(<*8+vB6#>qU|jkQ7=iNF>wd!^ckyA;eezWR6z= zB>vBhNMu}5w0n*Y$8}kf#u|n(U>atZswgEzRSsoYN!080T}cu@ZN_3RFMIz1z2=QA Td`88Y00000NkvXXu0mjfwS>}U literal 0 HcmV?d00001 From a2a8d8492948f3d5bedd0c258815cb421c387aee Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 1 Nov 2012 16:13:11 +0100 Subject: [PATCH 0266/1150] =?UTF-8?q?Possibilit=C3=A9=20d'acc=C3=A9der=20e?= =?UTF-8?q?n=20parent/=C3=A9l=C3=A8ve=20au=20bulletin=20simplifi=C3=A9=20d?= =?UTF-8?q?es=20appr=C3=A9ciations=20sur=20le=20groupe=20classe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/droits_acces.php | 16 +- lib/bulletin_simple.inc.php | 2 +- lib/bulletin_simple_classe.inc.php | 441 +++++------------------------ prepa_conseil/edit_limite.php | 37 ++- prepa_conseil/index3.php | 28 +- 5 files changed, 138 insertions(+), 386 deletions(-) diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 7432f23eb..7c6a6f867 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -1,7 +1,7 @@ set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='GepiAccesBulletinSimpleClasseEleve'; +$texteItem="a accès au bulletin simplifié du groupe-classe"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + + $titreItem='GepiAccesGraphEleve'; $texteItem="a accès à la visualisation graphique de ses résultats
      "; $texteItem.= ""; @@ -1194,6 +1201,13 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='GepiAccesBulletinSimpleClasseResp'; +$texteItem="a accès au bulletin simplifié du groupe-classe des élèves dont il est responsable"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + + $titreItem='GepiAccesGraphParent'; $texteItem="a accès à la visualisation graphique des résultats des ".$gepiSettings['denomination_eleves']." dont il est responsable
      "; $texteItem.= ""; diff --git a/lib/bulletin_simple.inc.php b/lib/bulletin_simple.inc.php index 52e27de5a..5a1ab77df 100644 --- a/lib/bulletin_simple.inc.php +++ b/lib/bulletin_simple.inc.php @@ -1,7 +1,7 @@ "; diff --git a/lib/bulletin_simple_classe.inc.php b/lib/bulletin_simple_classe.inc.php index 475060226..a76ce2e20 100644 --- a/lib/bulletin_simple_classe.inc.php +++ b/lib/bulletin_simple_classe.inc.php @@ -1,7 +1,7 @@ \n"; //==================== @@ -57,6 +56,9 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY } //============================ +unset($tab_acces_app); +$tab_acces_app=array(); +$tab_acces_app = acces_appreciations($periode1, $periode2, $id_classe); $call_classe = mysql_query("SELECT * FROM classes WHERE id='$id_classe'"); $classe = mysql_result($call_classe, 0, "classe"); @@ -101,7 +103,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY echo "

      Coef.

      ClasseÉlèveRang$bull_intitule_app
      "; -/* -// On attaque maintenant l'affichage des appréciations des Activités Interdisciplinaires devant apparaître en tête des bulletins : -$call_data = mysql_query("SELECT * FROM aid_config WHERE order_display1 = 'b' ORDER BY order_display2"); -$nb_aid = mysql_num_rows($call_data); -$z=0; -while ($z < $nb_aid) { - $display_begin = mysql_result($call_data, $z, "display_begin"); - $display_end = mysql_result($call_data, $z, "display_end"); - if (($periode1 >= $display_begin) and ($periode2 <= $display_end)) { - $indice_aid = @mysql_result($call_data, $z, "indice_aid"); - $aid_query = mysql_query("SELECT id_aid FROM j_aid_eleves WHERE (login='$current_eleve_login' and indice_aid='$indice_aid')"); - $aid_id = @mysql_result($aid_query, 0, "id_aid"); - if ($aid_id != '') { - affiche_aid_simple($affiche_rang, $test_coef,$indice_aid,$aid_id,$current_eleve_login,$periode1,$periode2,$id_classe, 'bull_simpl'); - } - } - $z++; -} -*/ -//------------------------------ -// Boucle 'groupes' -//------------------------------ - -/* -if ($affiche_categories) { - // On utilise les valeurs spécifiées pour la classe en question - $sql="SELECT DISTINCT jgc.id_groupe ". - "FROM j_groupes_classes jgc, j_groupes_matieres jgm, j_matieres_categories_classes jmcc, matieres m " . - "WHERE ( " . - "jgc.categorie_id = jmcc.categorie_id AND " . - "jgc.id_classe = '".$id_classe."' AND " . - "jgm.id_groupe = jgc.id_groupe AND " . - "m.matiere = jgm.id_matiere" . - ") " . - "ORDER BY jmcc.priority,jgc.priorite,m.nom_complet"; - //echo $sql."
      \n"; - $appel_liste_groupes = mysql_query($sql); - -} else { - $appel_liste_groupes = mysql_query("SELECT DISTINCT jgc.id_groupe, jgc.coef " . - "FROM j_groupes_classes jgc, j_groupes_matieres jgm " . - "WHERE ( " . - "jgc.id_classe = '".$id_classe."' AND " . - "jgm.id_groupe = jgc.id_groupe" . - ") " . - "ORDER BY jgc.priorite,jgm.id_matiere"); -} - -// La ligne suivante a été remplacée par les requêtes intégrant le classement par catégories de matières -// $appel_liste_groupes = mysql_query("SELECT DISTINCT jeg.id_groupe id_groupe FROM j_eleves_groupes jeg, j_groupes_classes jgc WHERE (jeg.login = '" . $current_eleve_login . "' AND jeg.id_groupe = jgc.id_groupe AND jgc.id_classe = '" . $id_classe . "') ORDER BY jgc.priorite"); -$nombre_groupes = mysql_num_rows($appel_liste_groupes); -*/ -// Récupération des noms de catgories +// Récupération des noms de categories $get_cat = mysql_query("SELECT id FROM matieres_categories"); $categories = array(); while ($row = mysql_fetch_array($get_cat, MYSQL_ASSOC)) { @@ -182,190 +124,90 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY $cat_names = array(); foreach ($categories as $cat_id) { - //$cat_names[$cat_id] = html_entity_decode(mysql_result(mysql_query("SELECT nom_complet FROM matieres_categories WHERE id = '" . $cat_id . "'"), 0)); $cat_names[$cat_id] = mysql_result(mysql_query("SELECT nom_complet FROM matieres_categories WHERE id = '" . $cat_id . "'"), 0); } // Nombre de groupes sur la classe $nombre_groupes=count($tab_moy['current_group']); -/* -//$total_cat_eleve = array(); -$total_cat_classe = array(); - -//=========================== -// MODIF: boireaus 20070627 -//$total_cat_coef = array(); -//$total_cat_coef_eleve = array(); -$total_cat_coef_classe = array(); -//=========================== - -//=========================== -// AJOUT: boireaus 20070627 -//$total_coef_eleve=array(); -$total_coef_classe=array(); -//=========================== - -$nb=$periode1; -while ($nb < $periode2+1) { - $total_points_classe[$nb] = 0; - //$total_points_eleve[$nb] = 0; - - //=========================== - // MODIF: boireaus 20070627 - //$total_coef[$nb] = 0; - //$total_coef_eleve[$nb] = 0; - $total_coef_classe[$nb] = 0; - //=========================== - - //$total_cat_eleve[$nb] = array(); - $total_cat_classe[$nb] = array(); - $total_cat_coef[$nb] = array(); - foreach($categories as $cat_id) { - //$total_cat_eleve[$nb][$cat_id] = 0; - $total_cat_classe[$nb][$cat_id] = 0; - - //=========================== - // MODIF: boireaus 20070627 - //$total_cat_coef[$nb][$cat_id] = 0; - //$total_cat_coef_eleve[$nb][$cat_id] = 0; - $total_cat_coef_classe[$nb][$cat_id] = 0; - //=========================== - } - //echo "\$nb=$nb
      \n"; - $nb++; -} -$j = 0; -*/ - $prev_cat_id = null; //while ($j < $nombre_groupes) { for($j=0;$j<$nombre_groupes;$j++) { - //echo ""; - $inser_ligne='no'; - //$group_id = mysql_result($appel_liste_groupes, $j, "id_groupe"); - //$current_group = get_group($group_id); - // On récupère le groupe depuis $tab_moy $current_group=$tab_moy['current_group'][$j]; - // Coefficient pour le groupe - $current_coef = $current_group["classes"]["classes"][$id_classe]["coef"]; - - $current_matiere_professeur_login = $current_group["profs"]["list"]; - - //$current_matiere_nom_complet = $current_group["matiere"]["nom_complet"]; - if(getSettingValue('bul_rel_nom_matieres')=='nom_groupe') { - $current_matiere_nom_complet = $current_group["name"]; - } - elseif(getSettingValue('bul_rel_nom_matieres')=='description_groupe') { - $current_matiere_nom_complet = $current_group["description"]; + $ligne_groupe_visible="y"; + if($_SESSION['statut']=='eleve') { + $sql="SELECT 1=1 FROM j_eleves_groupes WHERE id_groupe='".$current_group['id']."' AND login='".$_SESSION['login']."';"; + $test_grp=mysql_query($sql); + if(mysql_num_rows($test_grp)==0) { + $ligne_groupe_visible="n"; + } } - else { - $current_matiere_nom_complet = $current_group["matiere"]["nom_complet"]; + elseif($_SESSION['statut']=='responsable') { + $sql="SELECT 1=1 FROM j_eleves_groupes WHERE id_groupe='".$current_group['id']."' AND login IN (SELECT e.login FROM eleves e, resp_pers rp, responsables2 r WHERE e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND (r.resp_legal='1' OR r.resp_legal='2') AND rp.login='".$_SESSION['login']."');"; + //echo "$sql
      "; + $test_grp=mysql_query($sql); + if(mysql_num_rows($test_grp)==0) { + $ligne_groupe_visible="n"; + } } + if ($ligne_groupe_visible == 'y') { - //echo "\$current_matiere_nom_complet=$current_matiere_nom_complet
      \n"; - $nb=$periode1; - while ($nb < $periode2+1) { - //$current_classe_matiere_moyenne_query = mysql_query("SELECT round(avg(note),1) moyenne FROM matieres_notes WHERE (statut ='' AND id_groupe='" . $current_group["id"] . "' AND periode='$nb')"); - //$current_classe_matiere_moyenne[$nb] = mysql_result($current_classe_matiere_moyenne_query, 0, "moyenne"); - $current_classe_matiere_moyenne[$nb]=$tab_moy['periodes'][$nb]['current_classe_matiere_moyenne'][$j]; - - - //$test_current_classe_matiere_moyenne_query = mysql_query("SELECT 1=1 FROM matieres_notes WHERE (statut ='' AND id_groupe='" . $current_group["id"] . "' AND periode='$nb')"); - //$nb_moyennes_current_classe_matiere[$nb]=mysql_num_rows($test_current_classe_matiere_moyenne_query); - //if($nb_moyennes_current_classe_matiere[$nb]==0) {$current_classe_matiere_moyenne[$nb]='-';} + // Coefficient pour le groupe + $current_coef = $current_group["classes"]["classes"][$id_classe]["coef"]; + $current_matiere_professeur_login = $current_group["profs"]["list"]; - // On teste si des notes de une ou plusieurs boites du carnet de notes doivent être affichées - $test_cn = mysql_query("select c.nom_court, c.id from cn_cahier_notes cn, cn_conteneurs c - where (cn.periode = '$nb' and cn.id_groupe='".$current_group["id"]."' and cn.id_cahier_notes = c.id_racine and c.id_racine!=c.id and c.display_bulletin = 1) "); - $nb_ligne_cn[$nb] = mysql_num_rows($test_cn); - $n = 0; - while ($n < $nb_ligne_cn[$nb]) { - $cn_id[$nb][$n] = mysql_result($test_cn, $n, 'c.id'); - $cn_nom[$nb][$n] = mysql_result($test_cn, $n, 'c.nom_court'); - $n++; + //$current_matiere_nom_complet = $current_group["matiere"]["nom_complet"]; + if(getSettingValue('bul_rel_nom_matieres')=='nom_groupe') { + $current_matiere_nom_complet = $current_group["name"]; + } + elseif(getSettingValue('bul_rel_nom_matieres')=='description_groupe') { + $current_matiere_nom_complet = $current_group["description"]; + } + else { + $current_matiere_nom_complet = $current_group["matiere"]["nom_complet"]; } - - //echo "\$nb=$nb
      \n"; - $nb++; - - } - $nb=$periode1; - while ($nb < $periode2+1) { - $current_grp_appreciation_query = mysql_query("SELECT * FROM matieres_appreciations_grp WHERE (id_groupe='" . $current_group["id"] . "' AND periode='$nb')"); - $current_grp_appreciation[$nb] = @mysql_result($current_grp_appreciation_query, 0, "appreciation"); - //echo "\$current_grp_appreciation[$nb]=$current_grp_appreciation[$nb]
      \n"; - $nb++; - } + //echo "\$current_matiere_nom_complet=$current_matiere_nom_complet
      \n"; + $nb=$periode1; + while ($nb < $periode2+1) { + $current_classe_matiere_moyenne[$nb]=$tab_moy['periodes'][$nb]['current_classe_matiere_moyenne'][$j]; + + + // On teste si des notes de une ou plusieurs boites du carnet de notes doivent être affichées + $test_cn = mysql_query("select c.nom_court, c.id from cn_cahier_notes cn, cn_conteneurs c + where (cn.periode = '$nb' and cn.id_groupe='".$current_group["id"]."' and cn.id_cahier_notes = c.id_racine and c.id_racine!=c.id and c.display_bulletin = 1) "); + $nb_ligne_cn[$nb] = mysql_num_rows($test_cn); + $n = 0; + while ($n < $nb_ligne_cn[$nb]) { + $cn_id[$nb][$n] = mysql_result($test_cn, $n, 'c.id'); + $cn_nom[$nb][$n] = mysql_result($test_cn, $n, 'c.nom_court'); + $n++; + } + //echo "\$nb=$nb
      \n"; + $nb++; - /* - // Maintenant on regarde si l'élève suit bien cette matière ou pas - //----------------------------- - $nb=$periode1; - while ($nb < $periode2+1) { - if (in_array($current_eleve_login, $current_group["eleves"][$nb]["list"])) { - $inser_ligne='yes'; - $current_eleve_note_query = mysql_query("SELECT * FROM matieres_notes WHERE (login='$current_eleve_login' AND periode='$nb' AND id_groupe='" . $current_group["id"] . "')"); - $current_eleve_note[$nb] = @mysql_result($current_eleve_note_query, 0, "note"); - $current_eleve_statut[$nb] = @mysql_result($current_eleve_note_query, 0, "statut"); - $current_eleve_appreciation_query = mysql_query("SELECT * FROM matieres_appreciations WHERE (login='$current_eleve_login' AND id_groupe='" . $current_group["id"] . "' AND periode='$nb')"); - $current_eleve_appreciation[$nb] = @mysql_result($current_eleve_appreciation_query, 0, "appreciation"); - - // Coefficient personnalisé pour l'élève? - $sql="SELECT value FROM eleves_groupes_settings WHERE (" . - "login = '".$current_eleve_login."' AND " . - "id_groupe = '".$group_id."' AND " . - "name = 'coef')"; - $test_coef_personnalise = mysql_query($sql); - if (mysql_num_rows($test_coef_personnalise) > 0) { - $coef_eleve = mysql_result($test_coef_personnalise, 0); - } else { - // Coefficient du groupe: - $coef_eleve = $current_coef; - } - //========================= - // MODIF: boireaus 20071217 On arrondira seulement à l'affichage - //$coef_eleve=number_format($coef_eleve,1, ',', ' '); - //========================= - } else { - $current_eleve_note[$nb] = ''; - $current_eleve_statut[$nb] = 'Non suivie'; - $current_eleve_appreciation[$nb] = ''; } - //++++++++++++++++++++++++ - // Modif d'après F.Boisson - // notes dans appreciation - $sql="SELECT cnd.note FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE cnd.login='".$current_eleve_login."' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe='".$current_group["id"]."' AND ccn.periode='$nb' AND cnd.statut='';"; - $result_nbct=mysql_query($sql); - $string_notes=''; - if ($result_nbct ) { - while ($snnote = mysql_fetch_assoc($result_nbct)) { - if ($string_notes != '') $string_notes .= ", "; - $string_notes .= $snnote['note']; + $nb=$periode1; + while ($nb < $periode2+1) { + $current_grp_appreciation_query = mysql_query("SELECT * FROM matieres_appreciations_grp WHERE (id_groupe='" . $current_group["id"] . "' AND periode='$nb')"); + $current_grp_appreciation[$nb] = @mysql_result($current_grp_appreciation_query, 0, "appreciation"); + //echo "\$current_grp_appreciation[$nb]=$current_grp_appreciation[$nb]
      \n"; + $nb++; } - } - $current_eleve_appreciation[$nb] = str_replace('@@Notes', $string_notes,$current_eleve_appreciation[$nb]); - //++++++++++++++++++++++++ - - $nb++; - } - */ - //if ($inser_ligne == 'yes') { if ($affiche_categories) { // On regarde si on change de catégorie de matière if ($current_group["classes"]["classes"][$id_classe]["categorie_id"] != $prev_cat_id) { @@ -377,7 +219,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY //$nb_total_cols = 4; $nb_total_cols = 3; //==================== - // Modif: boireaus 20070626 if($affiche_coef=='y'){ if ($test_coef != 0) $nb_total_cols++; } @@ -387,8 +228,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY } //==================== - //if ($affiche_rang == 'y') $nb_total_cols++; - // On regarde s'il faut afficher la moyenne de l'élève pour cette catégorie $affiche_cat_moyenne_query = mysql_query("SELECT affiche_moyenne FROM j_matieres_categories_classes WHERE (classe_id = '" . $id_classe . "' and categorie_id = '" . $prev_cat_id . "')"); @@ -426,12 +265,8 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY echo "\n"; //==================== - // Modif: boireaus 20070626 if($affiche_coef=='y'){ if ($test_coef != 0) { - //if ($current_coef > 0) $print_coef= $current_coef ; else $print_coef='-'; - //if ($coef_eleve > 0) $print_coef= $coef_eleve; else $print_coef='-'; - //if ($coef_eleve > 0) $print_coef= number_format($coef_eleve,1, ',', ' '); else $print_coef='-'; $print_coef= number_format($current_coef,1, ',', ' '); echo "\n"; - $nb++; - } - } - */ - $nb=$periode1; $print_tr = 'no'; while ($nb < $periode2+1) { @@ -474,7 +290,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY } //========================= - // MODIF: boireaus 20080316 if($nb==$periode1) { if($nb==$periode2) { $style_bordure_cell="border: 1px solid black"; @@ -531,66 +346,12 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY $note=nf($current_classe_matiere_moyenne[$nb]); if ($note != "0,0") {echo $note;} else {echo "-";} echo "\n"; - /* - echo "\n"; - //Affichage des cellules rang le cas échéant - if ($affiche_rang == 'y') { - $rang = sql_query1("select rang from matieres_notes where ( - periode = '".$nb."' and - id_groupe = '".$current_group["id"]."' and - login = '".$current_eleve_login."' ) - "); - //if (($rang == 0) or ($rang == -1)) $rang = "-"; else $rang.="/".$nb_notes[$j][$nb]; - if (($rang == 0) or ($rang == -1)){ - $rang = "-"; - } - else{ - //$rang.="/".$nb_notes[$current_group["id"]][$nb]; - //if(isset($nb_notes[$current_group["id"]][$nb])){ - $rang.="/".$nb_notes[$current_group["id"]][$nb]; - //} - //$rang.="
      \$nb_notes[".$current_group["id"]."][$nb]"; - } - echo "\n"; - } - */ + // Affichage des cases appréciations echo "
      1) echo " rowspan= ".$nb_periodes; @@ -440,25 +275,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY } //==================== - /* - if($avec_rapport_effectif=="y") { - $nb=$periode1; - $print_tr = 'no'; - while ($nb < $periode2+1) { - $sql="SELECT 1=1 FROM j_eleves_classes jec, - j_eleves_groupes jeg, - j_groupes_classes jgc - WHERE jec.id_classe='$id_classe' AND - jec.periode='$nb' AND - jec.periode=jeg.periode AND - jec.login=jeg.login AND - jeg.id_groupe='".$current_group["id"]."';"; - echo "Effectif\n"; - $flag_moy[$nb] = 'no'; - if ($current_eleve_note[$nb] != '') { - if ($current_eleve_statut[$nb] != '') { - echo $current_eleve_statut[$nb]; - } else { - $note=number_format($current_eleve_note[$nb],1, ',', ' '); - echo "$note"; - $flag_moy[$nb] = 'yes'; - } - } else { - echo '-'; - } - echo "".$rang."\n"; - // Affichage des moyennes secondaires - /* - if ($nb_ligne_cn[$nb] != 0) { - $tiret = 'no'; - for ($cn=0; $cn<$nb_ligne_cn[$nb]; $cn++) { - $appel_cn = mysql_query("select note, statut from cn_notes_conteneurs where (login='$current_eleve_login' and id_conteneur='".$cn_id[$nb][$cn]."')"); - $cn_statut = @mysql_result($appel_cn,0,'statut'); - if ($cn_statut == 'y') { - $cn_note = @mysql_result($appel_cn,0,'note'); - if ($tiret == 'yes') echo " - "; - echo $cn_nom[$nb][$cn]." : ".$cn_note; - $tiret = 'yes'; - - } - } - echo "
      \n"; - } - */ - - - if ($current_grp_appreciation[$nb]) { + //if ($current_grp_appreciation[$nb]) { + if (($current_grp_appreciation[$nb])&&($tab_acces_app[$nb]=="y")) { if ($current_grp_appreciation[$nb]=="-1") { echo "-\n"; } @@ -612,77 +373,9 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY $print_tr = 'yes'; $nb++; } - - /* - // On calcule les moyennes générales de la classe : - //if ($test_coef != 0) { - $nb=$periode1; - while ($nb < $periode2+1) { - //if ($flag_moy[$nb] == 'yes') { - - //=========================== - // MODIF: boireaus 20070627 - //$total_coef[$nb] += $current_coef; - //$total_points_classe[$nb] += $current_coef*$current_classe_matiere_moyenne[$nb]; - //$total_points_eleve[$nb] += $current_coef*$current_eleve_note[$nb]; - - //$total_coef_eleve[$nb] += $coef_eleve; - //$total_points_eleve[$nb] += $coef_eleve*$current_eleve_note[$nb]; - - $total_coef_classe[$nb] += $current_coef; - $total_points_classe[$nb] += $current_coef*$current_classe_matiere_moyenne[$nb]; - //=========================== - - //if($affiche_categories=='1'){ - if(($affiche_categories=='1')||($affiche_categories==true)){ - if($current_classe_matiere_moyenne[$nb]!="-") { - $total_cat_classe[$nb][$prev_cat_id] += $current_coef*$current_classe_matiere_moyenne[$nb]; - - //=========================== - // MODIF: boireaus 20070627 - //$total_cat_eleve[$nb][$prev_cat_id] += $current_coef*$current_eleve_note[$nb]; - //$total_cat_eleve[$nb][$prev_cat_id] += $coef_eleve*$current_eleve_note[$nb]; - //$total_cat_coef[$nb][$prev_cat_id] += $current_coef; - //$total_cat_coef_eleve[$nb][$prev_cat_id] += $coef_eleve; - $total_cat_coef_classe[$nb][$prev_cat_id] += $current_coef; - //=========================== - } - } - //} - $nb++; - } - */ - //} - //} - //$j++; -// echo "
      "; -} - -/* -//echo ""; -// On attaque maintenant l'affichage des appréciations des Activités Interdisciplinaires devant apparaître en fin de bulletin : -$call_data = mysql_query("SELECT * FROM aid_config WHERE order_display1 = 'e' ORDER BY order_display2"); -$nb_aid = mysql_num_rows($call_data); -$z=0; -while ($z < $nb_aid) { - $display_begin = mysql_result($call_data, $z, "display_begin"); - $display_end = mysql_result($call_data, $z, "display_end"); - if (($periode1 >= $display_begin) and ($periode2 <= $display_end)) { - $indice_aid = @mysql_result($call_data, $z, "indice_aid"); - $aid_query = mysql_query("SELECT id_aid FROM j_aid_eleves WHERE (login='$current_eleve_login' and indice_aid='$indice_aid')"); - $aid_id = @mysql_result($aid_query, 0, "id_aid"); - if ($aid_id != '') { - affiche_aid_simple($affiche_rang, $test_coef,$indice_aid,$aid_id,$current_eleve_login,$periode1,$periode2,$id_classe, 'bull_simpl'); - } } - $z++; } -//echo "
      "; -*/ -//echo ""; - -//echo ""; // Affichage des moyennes générales if($display_moy_gen=="y") { if ($test_coef != 0) { @@ -690,20 +383,12 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY if ($nb_periodes > 1) echo " rowspan=".$nb_periodes; echo ">\n

      Moyenne générale

      \n\n"; //==================== - // Modif: boireaus 20070626 if($affiche_coef=='y'){ echo " 1) echo " rowspan=".$nb_periodes; echo " align=\"center\">-\n"; } //==================== - /* - if($avec_rapport_effectif=="y") { - echo " 1) echo " rowspan=".$nb_periodes; - echo " align=\"center\">-\n"; - } - */ $nb=$periode1; $print_tr = 'no'; @@ -714,7 +399,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY //============================= //========================= - // AJOUT: boireaus 20080316 if($nb==$periode1) { if($nb==$periode2) { $style_bordure_cell="border: 1px solid black"; @@ -927,7 +611,6 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY if ($current_synthese[$nb] == '') {$current_synthese[$nb] = ' -';} //========================= - // AJOUT: boireaus 20080317 if($nb==$periode1) { if($nb==$periode2) { $style_bordure_cell="border: 1px solid black"; @@ -945,7 +628,11 @@ function bulletin_classe($tab_moy,$total,$periode1,$periode2,$nom_periode,$gepiY //========================= echo "\n\n"; - echo "\n"; + echo "\n"; //===================== echo "\n"; //===================== diff --git a/prepa_conseil/edit_limite.php b/prepa_conseil/edit_limite.php index b153472c6..1c1755345 100644 --- a/prepa_conseil/edit_limite.php +++ b/prepa_conseil/edit_limite.php @@ -122,11 +122,38 @@ } // Et encore une : si on a un reponsable ou un élève, alors seul l'édition pour un élève seul est autorisée -if (($_SESSION['statut'] == "responsable" OR $_SESSION['statut'] == "eleve") AND $choix_edit != "2") { - tentative_intrusion(3, "Tentative (élève ou parent) de changement du mode de visualisation d'un bulletin simplifié (le mode imposé est la visualisation pour un seul élève)"); - echo "N'essayez pas de tricher...\n"; - require("../lib/footer.inc.php"); - die(); +if ($_SESSION['statut'] == "responsable" AND $choix_edit != "2") { + if((!getSettingAOui('GepiAccesBulletinSimpleClasseResp'))||($choix_edit != "4")) { + tentative_intrusion(3, "Tentative parent de changement du mode de visualisation d'un bulletin simplifié (le mode imposé est la visualisation pour un seul élève)"); + echo "N'essayez pas de tricher...\n"; + require("../lib/footer.inc.php"); + die(); + } + else { + // Récupérer l'id_classe: + $sql="SELECT id_classe FROM j_eleves_classes WHERE login='".$login_eleve."' ORDER BY periode DESC LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $id_classe=mysql_result($res, 0, "id_classe"); + } + } +} + +if ($_SESSION['statut'] == "eleve" AND $choix_edit != "2") { + if((!getSettingAOui('GepiAccesBulletinSimpleClasseEleve'))||($choix_edit != "4")) { + tentative_intrusion(3, "Tentative élève de changement du mode de visualisation d'un bulletin simplifié (le mode imposé est la visualisation pour un seul élève)"); + echo "N'essayez pas de tricher...\n"; + require("../lib/footer.inc.php"); + die(); + } + else { + // Récupérer l'id_classe: + $sql="SELECT id_classe FROM j_eleves_classes WHERE login='".$login_eleve."' ORDER BY periode DESC LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $id_classe=mysql_result($res, 0, "id_classe"); + } + } } if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesBulletinSimpleProfToutesClasses") != "yes") { diff --git a/prepa_conseil/index3.php b/prepa_conseil/index3.php index db3b73103..0b9948bbc 100644 --- a/prepa_conseil/index3.php +++ b/prepa_conseil/index3.php @@ -477,16 +477,40 @@ function change_periode(){ echo "
      \$test_coef=$test_coef
      $nom_periode[$nb]".nl2br($current_synthese[$nb]).""; + if ($tab_acces_app[$nb]=="y") { + echo nl2br($current_synthese[$nb]); + } + echo "
      \n"; } else { + // Accès parent ou élève echo "

      Retour Retour accueil"; + if($_SESSION['statut']=='responsable') { + $quels_eleves = mysql_query("SELECT e.login, e.nom, e.prenom " . + "FROM eleves e, responsables2 re, resp_pers r WHERE (" . + "e.ele_id = re.ele_id AND " . + "re.pers_id = r.pers_id AND " . + "r.login = '" . $_SESSION['login'] . "' AND (re.resp_legal='1' OR re.resp_legal='2') AND e.login!='$login_eleve')"); + while ($current_eleve = mysql_fetch_object($quels_eleves)) { + echo " | prenom." ".$current_eleve->nom."\">".$current_eleve->prenom." ".$current_eleve->nom.""; + } + } + echo "

      \n"; + $eleve = mysql_query("SELECT e.nom, e.prenom FROM eleves e WHERE e.login = '".$login_eleve."'"); $prenom_eleve = mysql_result($eleve, 0, "prenom"); $nom_eleve = mysql_result($eleve, 0, "nom"); - echo "

      ".ucfirst($gepiSettings['denomination_eleve'])." : ".$prenom_eleve." ".$nom_eleve."

      \n"; + echo "

      ".casse_mot($gepiSettings['denomination_eleve'],'majf')." : ".$prenom_eleve." ".$nom_eleve."

      \n"; echo "
      \n"; - echo "\n"; + echo "\n"; + + // 20121101: Si le droit est donné, permettre d'accéder au bulletin de la classe + if((($_SESSION['statut']=='responsable')&&(getSettingAOui('GepiAccesBulletinSimpleClasseResp')))|| + (($_SESSION['statut']=='eleve')&&(getSettingAOui('GepiAccesBulletinSimpleClasseEleve')))) { + echo "

      Afficher
      \n"; + echo "
      \n"; + echo "

      \n"; + } + else { + echo "\n"; + } } echo "

      Choisissez la(les) période(s) :

      \n"; include "../lib/periodes.inc.php"; From 3205ee3d187f85eb1bbe5201d15d9b20bb8d0890 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 1 Nov 2012 16:39:14 +0100 Subject: [PATCH 0267/1150] =?UTF-8?q?Pr=C3=A9cisions=20sur=20les=20derni?= =?UTF-8?q?=C3=A8res=20modifs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/changelog.txt b/changelog.txt index 4ccac1502..956a5aa30 100644 --- a/changelog.txt +++ b/changelog.txt @@ -21,6 +21,12 @@ Bulletins : fermeture de période. - Possibilité d'insérer un fichier de signature (bulletins PDF et HTML). +- Possibilité de donner, aux parents et aux élèves, l'accès au bulletin + simplifié des appreciations sur le groupe-classe. + +Carnets de notes: +- Possibilité de définir un mode par défaut pour le calcul de la moyenne dans le + cas où des boites/conteneurs/sous-matières sont créés. Relevés de notes: - Prise en compte au niveau du paramétrage des classes en admin des choix @@ -30,6 +36,8 @@ Cahiers de textes : - Possibilité d'inclure les documents joints dans l'export ZIP. - Possibilité d'insérer des liens vers un visionneur GeoGebra. - Possibilité de limiter l'accès des profs aux CDT de leurs seules classes. +- Archivage: ajout d'un dispositif de sélection de notices dans l'archive + produite. Abs2 : - Possibilité de cocher les absences sur le plan de classe. @@ -43,6 +51,7 @@ Emplois du temps : Discipline : - Possibilité de définir ses propres types de sanctions de types retenue, exclusion ou travail. +- Possibilité de préciser le matériel à apporter lors d'une retenue. Gestion: - Possibilité de masquer certains groupes dans les Cahiers de textes From ae83de5113b4f710dd8c6214b8469994beae5475 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 1 Nov 2012 16:39:14 +0100 Subject: [PATCH 0268/1150] =?UTF-8?q?Affichage=20de=20t=C3=A9moins=20sur?= =?UTF-8?q?=20la=20visibilit=C3=A9=20parent/=C3=A9l=C3=A8ve=20des=20appr?= =?UTF-8?q?=C3=A9ciations=20sur=20le=20groupe-classe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_appreciations.php | 11 ++++++++++- saisie/saisie_avis1.php | 8 ++++++++ saisie/saisie_synthese_app_classe.php | 10 +++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/saisie/saisie_appreciations.php b/saisie/saisie_appreciations.php index 7c270e262..bed0ae096 100644 --- a/saisie/saisie_appreciations.php +++ b/saisie/saisie_appreciations.php @@ -1034,7 +1034,16 @@ function focus_suivant(num){ echo "
      Moy.
      \n"; echo "\n"; -echo "
      Afficher les quartiles et éventuellement la photo élève
      \n"; +echo "
      Afficher les quartiles et éventuellement la photo élève
      \n"; + + +if(getSettingAOui('GepiAccesBulletinSimpleClasseEleve')) { + echo "
      \"Appréciation
      \n"; +} +if(getSettingAOui('GepiAccesBulletinSimpleClasseResp')) { + echo "
      \n"; +} + echo "
      Appréciation sur le groupe/classe\n"; //=============================================== diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index 21b1d1a76..3a19ab72f 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -524,6 +524,14 @@ function vider_tous_les_avis() { echo "\n"; echo "
       
      \n"; echo "\n"; + + if(getSettingAOui('GepiAccesBulletinSimpleClasseEleve')) { + echo "
      \"Appréciation
      \n"; + } + if(getSettingAOui('GepiAccesBulletinSimpleClasseResp')) { + echo "
      \n"; + } + echo "
      Synthèse de classe\n"; //=============================================== diff --git a/saisie/saisie_synthese_app_classe.php b/saisie/saisie_synthese_app_classe.php index 42c38e4b5..b825a3581 100644 --- a/saisie/saisie_synthese_app_classe.php +++ b/saisie/saisie_synthese_app_classe.php @@ -358,7 +358,15 @@ echo "\n"; echo "

      Saisie de la synthèse pour le groupe classe en période $num_periode :"; // 20121101: Mettre une infobulle CNIL - echo " "; + echo "   "; + + if(getSettingAOui('GepiAccesBulletinSimpleClasseEleve')) { + echo " \"Appréciation\n"; + } + if(getSettingAOui('GepiAccesBulletinSimpleClasseResp')) { + echo " \n"; + } + echo "
      \n"; echo "\n"; From 0369611b309dc544f5c06576c8c51a8eb6a9cec4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 1 Nov 2012 17:04:49 +0100 Subject: [PATCH 0269/1150] =?UTF-8?q?Ajout=20d'un=20formulaire=20de=20rech?= =?UTF-8?q?erche=20par=20nom/pr=C3=A9nom=20=C3=A9l=C3=A8ve=20dans=20la=20c?= =?UTF-8?q?onsultation=20ann=C3=A9es=20ant=C3=A9rieures.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/recherche_eleve.php | 32 +++++- .../consultation_annee_anterieure.php | 107 +++++++++++++++++- 2 files changed, 136 insertions(+), 3 deletions(-) diff --git a/eleves/recherche_eleve.php b/eleves/recherche_eleve.php index a29611c51..5ff6393fe 100644 --- a/eleves/recherche_eleve.php +++ b/eleves/recherche_eleve.php @@ -17,9 +17,11 @@ $page=isset($_POST['page']) ? $_POST['page'] : (isset($_GET['page']) ? $_GET['page'] : ""); - if(($page!="fiche_eleve.php")&&($page!="visu_eleve.php")&&($page!="export_bull_eleve.php")&&($page!="import_bull_eleve.php")&&($page!="saisie_secours_eleve.php")) { + if(($page!="fiche_eleve.php")&&($page!="visu_eleve.php")&&($page!="export_bull_eleve.php")&&($page!="import_bull_eleve.php")&&($page!="saisie_secours_eleve.php")&&($page!="consultation_annee_anterieure.php")) { $page="../logout.php?auto=2"; // Remarque: Cela n'empêche pas de bricoler l'adresse destination des liens affichés... + echo "Accès non autorisé."; + die(); } $nb_ele=0; @@ -74,7 +76,7 @@ echo ":

      \n"; echo "\n"; echo "\n"; - if($page=='saisie_secours_eleve.php') { + if(($page=='saisie_secours_eleve.php')||($page=='consultation_annee_anterieure.php')) { echo "\n"; echo "\n"; @@ -138,6 +140,32 @@ } echo "\n"; } + elseif($page=='consultation_annee_anterieure.php') { + echo "\n"; + + $sql="SELECT DISTINCT c.* FROM classes c, j_eleves_classes jec WHERE jec.login='$ele_login' AND c.id=jec.id_classe ORDER BY jec.periode;"; + $res_clas=mysql_query($sql); + if(mysql_num_rows($res_clas)==0) { + echo "\n"; + + echo "\n"; + } + else { + $lig_clas=mysql_fetch_object($res_clas); + echo "\n"; + + echo "\n"; + } + echo "\n"; + } else { echo "\n"; echo "\n"; echo "\n"; echo "
      ElèveClasse(s)
      \n"; + echo htmlspecialchars("$ele_nom $ele_prenom"); + echo "\n"; + echo "aucune classe"; + echo "\n"; + echo "".htmlspecialchars("$ele_nom $ele_prenom").""; + echo "\n"; + echo "".htmlspecialchars($lig_clas->classe).""; + echo "
      \n"; diff --git a/mod_annees_anterieures/consultation_annee_anterieure.php b/mod_annees_anterieures/consultation_annee_anterieure.php index 7c9a586af..3ca58218a 100644 --- a/mod_annees_anterieures/consultation_annee_anterieure.php +++ b/mod_annees_anterieures/consultation_annee_anterieure.php @@ -2,7 +2,7 @@ /* * $Id : $ * - * Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun + * Copyright 2001, 2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * * This file is part of GEPI. * @@ -634,6 +634,111 @@ echo "
      \n"; + + + $page="consultation_annee_anterieure.php"; + + $Recherche_sans_js=isset($_POST['Recherche_sans_js']) ? $_POST['Recherche_sans_js'] : (isset($_GET['Recherche_sans_js']) ? $_GET['Recherche_sans_js'] : NULL); + + if(!isset($Recherche_sans_js)) { + //============================================= + // Formulaire pour navigateur SANS Javascript: + echo "\n"; + //============================================= + + // Portion d'AJAX: + echo "\n"; + + // DIV avec formulaire pour navigateur AVEC Javascript: + echo "\n"; + echo "\n"; + } + else { + // On ne passe ici que si JavaScript est désactivé + include("../eleves/recherche_eleve.php"); + } + } else { if($_SESSION['statut']=='responsable') { From cb84238286beaa0b53e115ea7d7a511c0d1e49c2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Nov 2012 14:48:42 +0100 Subject: [PATCH 0270/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20le?= =?UTF-8?q?=20coefficient=20des=20enseignements=20de=20telle=20mati=C3=A8r?= =?UTF-8?q?e=20en=20tenant=20compte=20de=20leur=20visibilit=C3=A9=20ou=20n?= =?UTF-8?q?on=20sur=20les=20B/CN/CDT.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 205 +++++++++++++++++++++++++++++++++++--- 1 file changed, 193 insertions(+), 12 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index 2e0b61af7..41540cd94 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -45,6 +45,7 @@ check_token(); $msg = ''; $reg_ok = ''; + $nb_reg_ok=0; // Première boucle sur le nombre de periodes $per = 0; while ($per < $max_periode) { @@ -262,6 +263,9 @@ if(!$update_coef) { $msg .= "
      Une erreur s'est produite lors de la mise à jour des coefficients pour la classe $id_classe."; } + else { + $nb_reg_ok++; + } } } } @@ -279,6 +283,9 @@ if(!$res) { $msg.="
      Erreur lors de la programmation du recalcul des rangs pour la classe ".get_nom_classe($id_classe)."."; } + else { + $nb_reg_ok++; + } } else { $msg.="
      Aucune période n'est définie pour cette classe.
      Recalcul des rangs impossible pour la classe ".get_nom_classe($id_classe)."."; @@ -403,6 +410,9 @@ if(!$res_coef) { $msg .= "
      Erreur lors de la mise à jour du coefficient du groupe n°$create pour la classe n°$id_classe."; } + else { + $nb_reg_ok++; + } } for($loop=0;$loop0) { + while($lig_grp_modif_coef=mysql_fetch_object($res_grp_modif_coef)) { + $sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe' AND id_groupe='$lig_grp_modif_coef->id_groupe';"; + $res_modif_coef=mysql_query($sql); + if(!$res_modif_coef) { + $msg.="Erreur lors de la requête
      $sql
      "; + } + else { + $nb_reg_ok++; + } + } + } + } + /* + $res_modif_coef=mysql_query($sql); + if(!$res_modif_coef) { + $msg.="Erreur lors de la requête
      $sql
      "; + } + else { + $nb_reg_ok++; + } + */ + } + else { + $msg.="Mode de visibilité ou non choisi inattendu pour les enseignements dont vous souhaitez modifier le coefficient.
      "; + } + } + else { + if($matiere_modif_coef=='___Tous_les_enseignements___') { + $sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe';"; + } + else { + $sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe' AND id_groupe IN (SELECT id_groupe FROM j_groupes_classes jgc, j_groupes_matieres jgm WHERE jgm.id_matiere='".$matiere_modif_coef."' AND jgc.id_groupe=jgm.id_groupe AND jgc.id_classe='$id_classe');"; + } + $res_modif_coef=mysql_query($sql); + if(!$res_modif_coef) { + $msg.="Erreur lors de la requête
      $sql
      "; + } + else { + $nb_reg_ok++; + } + } + } + //==================================== } } @@ -448,13 +556,18 @@ } if ($reg_ok=='') { - $message_enregistrement = "Aucune modification n'a été effectuée !"; + if($nb_reg_ok==0) { + $message_enregistrement = "Aucune modification n'a été effectuée !"; + } + else { + $message_enregistrement = "$nb_reg_ok modification(s) effectuée(s) !"; + } $affiche_message = 'yes'; } else if ($reg_ok=='yes') { $message_enregistrement = "Les modifications ont été effectuées avec succès."; $affiche_message = 'yes'; } else { - $message_enregistrement = "Il y a eu un problème lors de l'enregistrement des modification."; + $message_enregistrement = "Il y a eu un problème lors de l'enregistrement des modifications."; $affiche_message = 'yes'; } } @@ -463,8 +576,8 @@ $titre_page = "Gestion des classes - Paramétrage des classes par lots"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** - -If ($max_periode <= 0) { +//debug_var(); +if($max_periode <= 0) { echo "Aucune classe comportant des périodes n'a été définie."; die(); } @@ -697,7 +810,7 @@ function change_style_classe(num) {

      Enseignements

      - +
      @@ -708,7 +821,7 @@ function change_style_classe(num) {
         
      +?> +
      + + + + + + +
          + + + + + + + \n"; + echo "\n"; + for($loop=0;$loop\n"; + echo $tab_domaines_sigle[$loop]; + echo "\n"; + } + + echo "\n"; + echo "\n"; + echo ""; + for($loop=0;$loop\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + echo "\n"; + echo ""; + for($loop=0;$loop\n"; + echo "\n"; + echo "\n"; + } + echo "\n"; + ?> +
      visibles sur
      invisibles sur
      +
      + + + +0) { + echo ""; + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()]=""; + $saisie_affiches = array (); if ($eleve_col->isOdd()) { $afficheEleve[$elv]['background']="impair"; @@ -504,37 +513,58 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $Yesterday = date("Y-m-d",mktime(0,0,0,$dt_date_absence_eleve->format("m") ,$dt_date_absence_eleve->format("d")-1,$dt_date_absence_eleve->format("Y"))); $abs_hier = false; - $traitee_hier = true;//les saisies de la veille ont-elle été traitées intégralement - $justifiee_hier = true;//les saisies de la veille ont-elle été justifiées intégralement - $afficheEleve[$elv]['bulle_hier'] = ''; - foreach ($eleve->getAbsenceEleveSaisiesDuJour($Yesterday) as $saisie) { - if (!$saisie->getManquementObligationPresence()) continue; - $abs_hier = true; - $traitee_hier = $traitee_hier && $saisie->getTraitee(); - $justifiee_hier = $justifiee_hier && $saisie->getJustifiee(); - $afficheEleve[$elv]['bulle_hier'] .= $saisie->getTypesDescription(); - } - if ($abs_hier) { - $afficheEleve[$elv]['class_hier'] = $justifiee_hier ? "justifieeHier" : 'absentHier'; - $afficheEleve[$elv]['text_hier'] = $traitee_hier ? 'T' : ''; - } else { - $afficheEleve[$elv]['class_hier'] = ''; - $afficheEleve[$elv]['text_hier'] = ''; - } + $traitee_hier = true;//les saisies de la veille ont-elle été traitées intégralement + $justifiee_hier = true;//les saisies de la veille ont-elle été justifiées intégralement + $afficheEleve[$elv]['bulle_hier'] = ''; + + foreach ($eleve->getAbsenceEleveSaisiesDuJour($Yesterday) as $saisie) { + if (!$saisie->getManquementObligationPresence()) continue; + $abs_hier = true; + $traitee_hier = $traitee_hier && $saisie->getTraitee(); + $justifiee_hier = $justifiee_hier && $saisie->getJustifiee(); + $afficheEleve[$elv]['bulle_hier'] .= $saisie->getTypesDescription(); + } + if ($abs_hier) { + $afficheEleve[$elv]['class_hier'] = $justifiee_hier ? "justifieeHier" : 'absentHier'; + $afficheEleve[$elv]['text_hier'] = $traitee_hier ? 'T' : ''; + } else { + $afficheEleve[$elv]['class_hier'] = ''; + $afficheEleve[$elv]['text_hier'] = ''; + } + + // 20130416 + $chaine_tr_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + if ($abs_hier) { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + $temoin_saisie_veille_et_creneaux_precedents[$eleve->getLogin()]="y"; + } + else { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + } + $afficheEleve[$elv]['position'] = $eleve_col->getPosition(); $afficheEleve[$elv]['id'] = $eleve->getId(); $afficheEleve[$elv]['elenoet'] = $eleve->getElenoet(); $afficheEleve[$elv]['nom'] = $eleve->getNom(); $afficheEleve[$elv]['prenom'] = $eleve->getPrenom(); $afficheEleve[$elv]['civilite'] = $eleve->getCivilite(); - $afficheEleve[$elv]['regime'] = ''; - if ($eleve->getEleveRegimeDoublant() != null) { - $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); - if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { - $tab_regimes[]=$afficheEleve[$elv]['regime']; - } - $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; - } + $afficheEleve[$elv]['regime'] = ''; + if ($eleve->getEleveRegimeDoublant() != null) { + $afficheEleve[$elv]['regime'] = $eleve->getEleveRegimeDoublant()->getRegime(); + if(!in_array($afficheEleve[$elv]['regime'], $tab_regimes)) { + $tab_regimes[]=$afficheEleve[$elv]['regime']; + } + $tab_regimes_eleves[$afficheEleve[$elv]['regime']][]=$afficheEleve[$elv]['position']; + } if ((isset($current_groupe) && $current_groupe != null && $current_groupe->getClasses()->count() == 1) || (isset($current_classe) && $current_classe != null)) { @@ -601,8 +631,9 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $absences_du_creneau = new PropelCollection(); } } + $afficheEleve[$elv]['style'][$i] = ""; - if ($deja_saisie && $nb_creneau_a_saisir > 0) { + if ($deja_saisie && $nb_creneau_a_saisir > 0) { $afficheEleve[$elv]['style'][$i] = "fondVert"; } if (!$absences_du_creneau->isEmpty()) { @@ -613,7 +644,61 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } } } - + + // 20130416 + $tmp_creneau=$col_creneaux[$i]; + /* + echo "


      "; + echo "

      ";
      +		print_r($tmp_creneau);
      +		echo "
      "; + echo "


      "; + */ + //$chaine_tr_veille_et_creneaux_precedents[$eleve->getLogin()].="

      "; + $chaine_tr_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + $couleur_td_courant=""; + $texte_attribut_title=""; + if (!$absences_du_creneau->isEmpty()) { + foreach ($absences_du_creneau as $abs_saisie) { + $temoin_saisie_veille_et_creneaux_precedents[$eleve->getLogin()]="y"; + /* + echo "

      ".$eleve->getLogin()."

      "; + echo "
      ";
      +				print_r($abs_saisie);
      +				echo "
      "; + echo "


      "; + */ + if ($abs_saisie->getManquementObligationPresence()) { + if($abs_saisie->getCommentaire()) { + $texte_attribut_title.=$abs_saisie->getCommentaire(); + } + + $couleur_td_courant="red"; + } + else { + foreach ($abs_saisie->getAbsenceEleveTraitements() as $abs_saisie_traitement) { + if ($abs_saisie_traitement->getAbsenceEleveType() != null) { + $texte_attribut_title.=$abs_saisie_traitement->getAbsenceEleveType()->getNom().". "; + } + } + + if($abs_saisie->getCommentaire()) { + $texte_attribut_title.=$abs_saisie->getCommentaire(); + } + } + } + + if($couleur_td_courant!="") { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + } + else { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + } + } + else { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + } + if ($nb_creneau_a_saisir>1) { $afficheEleve[$elv]['nb_creneaux_a_saisir'][$i] = $nb_creneau_a_saisir; } else { @@ -687,8 +772,20 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev } $afficheEleve[$elv]['nom_photo'] = $photos; } + + // 20130416 + $chaine_tr_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=""; + $elv++; } +/* +echo "
      "; +echo "
      ";
      +print_r($chaine_veille_et_creneaux_precedents);
      +echo "
      "; +echo "
      "; +*/ // 20120618 $chaine_effectifs_regimes=""; @@ -708,11 +805,15 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $style_specifique[] = "mod_abs2/lib/abs_style"; $style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; $style_specifique[] = "mod_abs2/lib/saisie_smart_large"; +$style_specifique[] = "templates/origine/css/accueil"; +$style_specifique[] = "style_screen_ajout"; $CSS_smartphone = "mod_abs2/lib/saisie_smart_mini"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar"; $javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; $javascript_specifique[] = "mod_abs2/lib/include"; +$javascript_specifique[] = "lib/position"; +$javascript_specifique[] = "lib/brainjar_drag"; $titre_page = "Les absences"; $utilisation_jsdivdrag = "non"; $_SESSION['cacher_header'] = "y"; @@ -1293,6 +1394,20 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev value=\"".$dt_date_absence_eleve->format('d/m/Y')."\" />\n"; echo "\n"; + + + // 20130416 + if(isset($temoin_saisie_veille_et_creneaux_precedents[$eleve['accesFiche']])) { + echo "
      \n"; + echo ""; + echo "
      \n"; + + $titre_infobulle=$eleve['nom']." ".$eleve['prenom']; + // title=\"Tableau de ".$eleve['nom']." ".$eleve['prenom']."\" + $texte_infobulle="
          @@ -739,7 +920,7 @@ function change_style_classe(num) {
      Visibilité : - +
      \n"; for($loop=0;$loop\n"; @@ -763,7 +944,7 @@ function change_style_classe(num) { ?> -
      +
      @@ -795,7 +976,7 @@ function change_style_classe(num) { echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; } - echo "\n"; + //echo "\n"; + echo "\n"; break; case "base" : echo "\n"; From 0746622b245bbacc904845330e26d99e7a2e627f Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Sun, 30 Dec 2012 19:04:47 +0100 Subject: [PATCH 0434/1150] Suppression du formulaire "duree d'une portion" (2) --- gestion/accueil_sauve.php | 5 ----- 1 file changed, 5 deletions(-) diff --git a/gestion/accueil_sauve.php b/gestion/accueil_sauve.php index 910153278..085eeb03d 100644 --- a/gestion/accueil_sauve.php +++ b/gestion/accueil_sauve.php @@ -1282,11 +1282,6 @@ function shutdown() { if (isset($action) and ($action == 'dump')) { // On enregistre le paramètre pour s'en souvenir la prochaine fois saveSetting("mode_sauvegarde", "gepi"); - if (isset($_POST['sauve_duree'])) { - if ($_POST['sauve_duree'] == "yes") { - saveSetting("backup_duree_portion", $_SESSION['defaulttimeout']); - } - } // Sauvegarde de la base $nomsql = $dbDb."_le_".date("Y_m_d_\a_H\hi"); $cur_time=date("Y-m-d H:i"); From 808d7446ecc29b9860a30eb84e4035dd4eb09a18 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Wed, 2 Jan 2013 19:24:19 +0100 Subject: [PATCH 0435/1150] Ajout d'un message "Sauvegarde en cours..." si mysqldump --- gestion/accueil_sauve.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gestion/accueil_sauve.php b/gestion/accueil_sauve.php index 085eeb03d..251e28e53 100644 --- a/gestion/accueil_sauve.php +++ b/gestion/accueil_sauve.php @@ -1454,6 +1454,11 @@ function shutdown() { $ver_mysql[2] = mb_substr($ver_mysql[2], 0, 2); } + // on fait patienter + echo "
      "; + echo "

      Sauvegarde en cours...

      "; + if (ob_get_contents()) ob_flush(); flush(); + if (substr(PHP_OS,0,3) == 'WIN' && file_exists("mysqldump.exe")) { // on est sous Window$ et on a $filename : "xxxx.sql.gz" $filename=substr($filename,0,-3); // $filename : "xxxx.sql" @@ -1477,6 +1482,7 @@ function shutdown() { } if (filesize($filename) > 10000) { + echo ""; echo "

      La sauvegarde a été réalisée avec succès.

      \n"; if((isset($_POST['description_sauvegarde']))&&($_POST['description_sauvegarde']!='')) { $f_desc=fopen($filename.".txt", "a+"); From 88a054c2147694f0aed4b868596e63aeda4bf206 Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Wed, 2 Jan 2013 20:20:37 +0100 Subject: [PATCH 0436/1150] Ajout changelog --- changelog.txt | 2 ++ 1 file changed, 2 insertions(+) diff --git a/changelog.txt b/changelog.txt index 9d2ee65e2..4e7742f13 100644 --- a/changelog.txt +++ b/changelog.txt @@ -57,6 +57,8 @@ Abs2 : classe sous réserve d'avoir créé son plan de classe dans le module Trombinoscope. - Ajout de liens (sur des élèves, sur des saisies,...) pour passer plus vite à des informations associées. +- Ajout d'un bouton pour créer directement des notifications à partir d'une saisie +- Ajout d'une information sur les saisies englobantes Emplois du temps : - Possibilité de restreindre l'accès prof aux EDT des autres profs. From c548d2ead7d5fdf1ab00bb5276ac260c37f31b30 Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Wed, 2 Jan 2013 20:23:47 +0100 Subject: [PATCH 0437/1150] Ajout changelog --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 4e7742f13..fae6bb8ab 100644 --- a/changelog.txt +++ b/changelog.txt @@ -59,6 +59,7 @@ Abs2 : à des informations associées. - Ajout d'un bouton pour créer directement des notifications à partir d'une saisie - Ajout d'une information sur les saisies englobantes +- Simplification du menu abs2 Emplois du temps : - Possibilité de restreindre l'accès prof aux EDT des autres profs. From e4cc564c6e6a5ca143e25a4871e5b154aae8056e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 3 Jan 2013 19:15:00 +0100 Subject: [PATCH 0438/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20signaler=20ou?= =?UTF-8?q?=20masquer=20les=20saisies=20englob=C3=A9es.=20Affichage=20en?= =?UTF-8?q?=20title=20de=20la=20description=20du=20traitement=20s'il=20exi?= =?UTF-8?q?ste.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- images/icons/ico_toit2.png | Bin 0 -> 287 bytes mod_abs2/absences_du_jour.php | 110 ++++++++++++++++++++++++++++------ 2 files changed, 93 insertions(+), 17 deletions(-) create mode 100644 images/icons/ico_toit2.png diff --git a/images/icons/ico_toit2.png b/images/icons/ico_toit2.png new file mode 100644 index 0000000000000000000000000000000000000000..3733467a947f7e22c327f928fdea9d9ddbda72a3 GIT binary patch literal 287 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6U4S$Y z{B+)352QE?JR*x37`TN&n2}-D90{Nxdx@v7EBjqWW-e{ZOy|oxfI^Zbt`Q~9`MJ5N zc_j?aMX8A;sVNHOnI#zt?w-B@;f;LaKt)xaE{-7count(); echo ''; } + + echo "
      \n"; + $signaler_saisies_englobees=isset($_POST['signaler_saisies_englobees']) ? $_POST['signaler_saisies_englobees'] : NULL; + $checked_ou_pas=""; + if($signaler_saisies_englobees=="y") {$checked_ou_pas=" checked";} + echo "\n"; + + echo " - "; + $ne_pas_afficher_saisies_englobees=isset($_POST['ne_pas_afficher_saisies_englobees']) ? $_POST['ne_pas_afficher_saisies_englobees'] : NULL; + $checked_ou_pas=""; + if($ne_pas_afficher_saisies_englobees=="y") {$checked_ou_pas=" checked";} + echo "\n"; + // Pour quand même afficher le bouton validant les checkbox ci-dessus: + if (!method_exists($eleve_col, 'haveToPaginate')) { + echo ''; + } } ?> @@ -573,42 +589,102 @@ continue; } $saisie_affiches[] = $saisie->getPrimaryKey(); - $nb_checkbox = $nb_checkbox + 1; - echo 'getNotificationEnCours()){echo 'saisie_notification_en_cours="true"';} - if ($saisie->getNotifiee()) {echo 'saisie_notifiee="true"';} - if ($saisie->getTraitee()) {echo 'saisie_traitee="true"';} + $nb_checkbox = $nb_checkbox + 1; + $chaine_contenu_td='getNotificationEnCours()){$chaine_contenu_td.='saisie_notification_en_cours="true"';} + if ($saisie->getNotifiee()) {$chaine_contenu_td.='saisie_notifiee="true"';} + if ($saisie->getTraitee()) {$chaine_contenu_td.='saisie_traitee="true"';} $eleve_id_courant=$eleve->getPrimaryKey(); $id_checkbox_eleve_courant=$eleve_id_courant."_".$edt_creneau->getIdDefiniePeriode()."_".$nb_checkbox_eleve_courant_sur_ce_creneau; - echo " id='".$id_checkbox_eleve_courant."' "; + $chaine_contenu_td.=" id='".$id_checkbox_eleve_courant."' "; if(!in_array($eleve_id_courant, $tab_eleve_id)) {$tab_eleve_id[]=$eleve_id_courant;} - echo '/>'; - echo ''; + $chaine_contenu_td.='/>'; + $chaine_contenu_td.=''; $nb_checkbox_eleve_courant++; $nb_checkbox_eleve_courant_sur_ce_creneau++; //if ($saisie->getNotifiee()) {echo " (notifiée)";} - echo ' '; + $chaine_contenu_td.=' '; //echo $saisie->getTypesDescription(); - echo ''; + $chaine_contenu_td.=''; if($saisie->getNotificationEnCours()){ - echo ''; + $chaine_contenu_td.=''; } if($saisie->getNotifiee()){ - echo ''; + $chaine_contenu_td.=''; } - echo '
      '; - if(!$saisie->getTraitee()){ - echo ''; + $chaine_contenu_td.='
      '; + if(!$saisie->getTraitee()) { + //if(!isset($ne_pas_afficher_saisies_englobees)) { + if((!isset($ne_pas_afficher_saisies_englobees))||($violet)) { + echo $chaine_contenu_td; + if(isset($signaler_saisies_englobees)) { + $saisies_englobante_col = $saisie->getAbsenceEleveSaisiesEnglobantes(); + if($saisies_englobante_col->isEmpty()) { + echo ''; + } + else { + $texte_saisie_couverte='La saisie est englobée par : '; + $cpt_saisie_couverte=0; + foreach ($saisies_englobante_col as $saisies_englobante) { + if($cpt_saisie_couverte==0) { + $lien_saisie_couverte=" "; + } + $texte_saisie_couverte.=$saisies_englobante->getDateDescription(); + $texte_saisie_couverte.=' '.$saisies_englobante->getTypesTraitements(); + if (!$saisies_englobante_col->isLast()) { + $texte_saisie_couverte.=' - '; + } + $cpt_saisie_couverte++; + } + + echo $lien_saisie_couverte.''; + } + } + else { + echo ''; + } + echo '
      '; + } + else { + // Faut-il quand même vérifier s'il n'y a pas de conflit? + // Fait (?) avec le test $violet plus haut. + } }else{ + echo $chaine_contenu_td; + //echo ''; - echo $saisie->getTypesDescription(); + $saisie_justifiee_ou_pas=""; + echo "getAbsenceEleveTraitements() as $traitement) { + if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { + $description_traitement_courant=$traitement->getDescription(); + echo "Traitement ".$description_traitement_courant."\n"; + if(preg_match("/justification :/", $description_traitement_courant)) {$saisie_justifiee_ou_pas=" ";} + } + } + echo "\">"; + echo $saisie->getTypesDescription(); + echo $saisie_justifiee_ou_pas; + echo ""; + + /* + echo "
      "; + $tab_traitements_deja_affiches=array(); + foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { + if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { + echo $traitement->getDescription().' : '; + } + } + */ + echo '
      '; } - echo '
      '; + //echo '
      '; //echo ''; } echo ''; From 0c6c8b6fa7d05b8429b33c703ec2d5d50ea173d6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 4 Jan 2013 12:11:19 +0100 Subject: [PATCH 0439/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20n'afficher=20?= =?UTF-8?q?que=20le=20travail=20=C3=A0=20faire=20ou=20que=20les=20compte-r?= =?UTF-8?q?endus=20en=20mode=20Toutes=5Fmatieres.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/see_all.php | 242 +++++++++++++++++++++++-------------- 1 file changed, 148 insertions(+), 94 deletions(-) diff --git a/cahier_texte_2/see_all.php b/cahier_texte_2/see_all.php index 884cedcfa..31287ca11 100644 --- a/cahier_texte_2/see_all.php +++ b/cahier_texte_2/see_all.php @@ -357,6 +357,24 @@ } echo "\n$text_imprime\n\n"; // } retour ne s'affichait pas sur la page imprimable + + $afficher_compte_rendus_seulement=isset($_GET['afficher_compte_rendus_seulement']) ? $_GET['afficher_compte_rendus_seulement'] : "n"; + $afficher_travail_a_faire_seulement=isset($_GET['afficher_travail_a_faire_seulement']) ? $_GET['afficher_travail_a_faire_seulement'] : "n"; + + if($afficher_travail_a_faire_seulement=='n') { + echo "- "; + echo "\nN'afficher que le Travail à faire\n\n"; + } + + if($afficher_compte_rendus_seulement=='n') { + echo "- "; + echo "\nN'afficher que les Compte-rendus de séance\n\n"; + } + + if(($afficher_travail_a_faire_seulement!='n')||($afficher_compte_rendus_seulement!='n')) { + echo "- "; + echo "\nAfficher les Compte-rendus de séance et Travaux à faire\n\n"; + } echo "\n"; echo "
      \n"; @@ -370,81 +388,87 @@ while($lig=mysql_fetch_object($res)) { $tab_id_grp[]=$lig->id_groupe; } - $sql="SELECT cte.* FROM ct_entry cte, j_groupes_classes jgc WHERE (contenu != '' - AND date_ct != '' - AND date_ct >= '".getSettingValue("begin_bookings")."' - AND date_ct <= '".getSettingValue("end_bookings")."' - AND jgc.id_groupe=cte.id_groupe - AND jgc.id_classe='$id_classe' - ) ORDER BY date_ct DESC, heure_entry DESC, jgc.priorite DESC;"; - //) ORDER BY date_ct ".$current_ordre.", heure_entry ".$current_ordre.", jgc.priorite;"; - //echo "$sql
      "; - $res=mysql_query($sql); - $cpt=0; - while($lig=mysql_fetch_object($res)) { - $notice_visible="y"; - if($lig->date_ct>time()) { - if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { - $notice_visible="n"; + + if($afficher_travail_a_faire_seulement=='n') { + $sql="SELECT cte.* FROM ct_entry cte, j_groupes_classes jgc WHERE (contenu != '' + AND date_ct != '' + AND date_ct >= '".getSettingValue("begin_bookings")."' + AND date_ct <= '".getSettingValue("end_bookings")."' + AND jgc.id_groupe=cte.id_groupe + AND jgc.id_classe='$id_classe' + ) ORDER BY date_ct DESC, heure_entry DESC, jgc.priorite DESC;"; + //) ORDER BY date_ct ".$current_ordre.", heure_entry ".$current_ordre.", jgc.priorite;"; + //echo "$sql
      "; + $res=mysql_query($sql); + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $notice_visible="y"; + if($lig->date_ct>time()) { + if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { + $notice_visible="n"; + } } - } - if($notice_visible=="y") { - //echo "$lig->date_ct
      "; - $date_notice=strftime("%a %d %b %y", $lig->date_ct); - if(!in_array($date_notice,$tab_dates)) { - $tab_dates[]=$date_notice; - $tab_dates2[]=$lig->date_ct; + if($notice_visible=="y") { + //echo "$lig->date_ct
      "; + $date_notice=strftime("%a %d %b %y", $lig->date_ct); + if(!in_array($date_notice,$tab_dates)) { + $tab_dates[]=$date_notice; + $tab_dates2[]=$lig->date_ct; + } + $tab_notices[$date_notice][$lig->id_groupe][$cpt]['id_ct']=$lig->id_ct; + $tab_notices[$date_notice][$lig->id_groupe][$cpt]['id_login']=$lig->id_login; + $tab_notices[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu; + //echo " \$tab_notices[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu
      "; + $cpt++; } - $tab_notices[$date_notice][$lig->id_groupe][$cpt]['id_ct']=$lig->id_ct; - $tab_notices[$date_notice][$lig->id_groupe][$cpt]['id_login']=$lig->id_login; - $tab_notices[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu; - //echo " \$tab_notices[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu
      "; - $cpt++; } } $ts_limite_visibilite_devoirs_pour_eleves=time()+getSettingValue('delai_devoirs')*24*3600; - $sql="SELECT ctd.* FROM ct_devoirs_entry ctd, j_groupes_classes jgc WHERE (contenu != '' - AND date_ct != '' - AND date_ct >= '".getSettingValue("begin_bookings")."' - AND date_ct <= '".getSettingValue("end_bookings")."' - AND jgc.id_groupe=ctd.id_groupe - AND jgc.id_classe='$id_classe' - ) ORDER BY date_ct DESC, jgc.priorite DESC;"; - //) ORDER BY date_ct ".$current_ordre.", jgc.priorite;"; - //echo "$sql
      "; - $res=mysql_query($sql); - $cpt=0; - $timestamp_courant=time(); - while($lig=mysql_fetch_object($res)) { - $notice_visible="y"; - if($lig->date_ct>$ts_limite_visibilite_devoirs_pour_eleves) { - if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { - $notice_visible="n"; + if($afficher_compte_rendus_seulement=='n') { + $sql="SELECT ctd.* FROM ct_devoirs_entry ctd, j_groupes_classes jgc WHERE (contenu != '' + AND date_ct != '' + AND date_ct >= '".getSettingValue("begin_bookings")."' + AND date_ct <= '".getSettingValue("end_bookings")."' + AND jgc.id_groupe=ctd.id_groupe + AND jgc.id_classe='$id_classe' + ) ORDER BY date_ct DESC, jgc.priorite DESC;"; + //) ORDER BY date_ct ".$current_ordre.", jgc.priorite;"; + //echo "$sql
      "; + $res=mysql_query($sql); + $cpt=0; + $timestamp_courant=time(); + while($lig=mysql_fetch_object($res)) { + $notice_visible="y"; + if($lig->date_ct>$ts_limite_visibilite_devoirs_pour_eleves) { + if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { + $notice_visible="n"; + } } - } - if($notice_visible=="y") { - if(($lig->date_visibilite_eleve=="")|| - (($lig->date_visibilite_eleve!="")&&(mysql_date_to_unix_timestamp($lig->date_visibilite_eleve)<=$timestamp_courant))|| - (verif_groupe_appartient_prof($lig->id_groupe)==1)) { - //echo "$lig->date_ct
      "; - $date_dev=strftime("%a %d %b %y", $lig->date_ct); - if(!in_array($date_dev,$tab_dates)) { - $tab_dates[]=$date_dev; - $tab_dates2[]=$lig->date_ct; + if($notice_visible=="y") { + if(($lig->date_visibilite_eleve=="")|| + (($lig->date_visibilite_eleve!="")&&(mysql_date_to_unix_timestamp($lig->date_visibilite_eleve)<=$timestamp_courant))|| + (verif_groupe_appartient_prof($lig->id_groupe)==1)) { + //echo "$lig->date_ct
      "; + $date_dev=strftime("%a %d %b %y", $lig->date_ct); + if(!in_array($date_dev,$tab_dates)) { + $tab_dates[]=$date_dev; + $tab_dates2[]=$lig->date_ct; + } + $tab_dev[$date_dev][$lig->id_groupe][$cpt]['id_ct']=$lig->id_ct; + $tab_dev[$date_dev][$lig->id_groupe][$cpt]['id_login']=$lig->id_login; + $tab_dev[$date_dev][$lig->id_groupe][$cpt]['contenu']=$lig->contenu; + $tab_dev[$date_dev][$lig->id_groupe][$cpt]['date_visibilite_eleve']=$lig->date_visibilite_eleve; + //echo " \$tab_dev[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu
      "; + $cpt++; } - $tab_dev[$date_dev][$lig->id_groupe][$cpt]['id_ct']=$lig->id_ct; - $tab_dev[$date_dev][$lig->id_groupe][$cpt]['id_login']=$lig->id_login; - $tab_dev[$date_dev][$lig->id_groupe][$cpt]['contenu']=$lig->contenu; - $tab_dev[$date_dev][$lig->id_groupe][$cpt]['date_visibilite_eleve']=$lig->date_visibilite_eleve; - //echo " \$tab_dev[$date_notice][$lig->id_groupe][$cpt]['contenu']=$lig->contenu
      "; - $cpt++; } } } + //echo "\$current_ordre=$current_ordre
      "; //sort($tab_dates); if($current_ordre=='ASC') { @@ -454,6 +478,16 @@ array_multisort ($tab_dates, SORT_ASC, SORT_NUMERIC, $tab_dates2, SORT_DESC, SORT_NUMERIC); } + if(($afficher_compte_rendus_seulement=='n')&&($afficher_travail_a_faire_seulement=='n')) { + $perc_col1=20; + $perc_col_suivantes=39; + } + else { + $perc_col1=20; + $perc_col_suivantes=78; + } + + //$chaine_travail_a_faire_futur=""; for($i=0;$i\n"; echo "

      $tab_dates[$i]

      \n"; @@ -461,8 +495,12 @@ echo "
          \n"; echo "\n"; @@ -907,7 +1088,7 @@ function maj_nom_descr_enseignement() { $tabdiv_infobulle[]=creer_div_infobulle('recalcul_rang',$titre,"",$texte,"",25,0,'y','y','n','n'); ?> - +
      @@ -923,7 +1104,7 @@ function maj_nom_descr_enseignement() { }
      -
          Forcer le recalcul des rangs.
      +

      Paramètres généraux :

      From 19e5238588caddd0f79de1e2b082d97d14bb8c4f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Nov 2012 14:49:19 +0100 Subject: [PATCH 0271/1150] =?UTF-8?q?Ajout=20d'un=20commentaire=20=C3=A0?= =?UTF-8?q?=20propos=20du=20droit=20d'acc=C3=A8s=20resp/ele.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/ajax_edition_notice_privee.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cahier_texte_2/ajax_edition_notice_privee.php b/cahier_texte_2/ajax_edition_notice_privee.php index 2d0c347c6..091582f86 100644 --- a/cahier_texte_2/ajax_edition_notice_privee.php +++ b/cahier_texte_2/ajax_edition_notice_privee.php @@ -352,6 +352,9 @@ function() {
      + +

      NOTE : Il ne faut pas saisir en notice privée d'informations concernant des élèves en particulier.
      +Comme ces notices ne sont pas rattachées à un élève en particulier, il n'est pas possible d'assurer simplement le droit d'accès des parents/élèves à leurs données si elles sont inscrites en Notices privées.

      "; echo ""; From 5be1947178ec3d384740f8b7baf439bbbb03ab7d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Nov 2012 14:49:35 +0100 Subject: [PATCH 0272/1150] Ajout d'un lien vers la page CNIL sur le wiki --- gestion/param_gen.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gestion/param_gen.php b/gestion/param_gen.php index 0b930e8f4..9216f3d3b 100644 --- a/gestion/param_gen.php +++ b/gestion/param_gen.php @@ -1595,7 +1595,8 @@ Conformément à l'article 16 de la loi 78-17 du 6 janvier 1978, dite loi informatique et liberté, cette installation de GEPI doit faire l'objet d'une déclaration de traitement automatisé d'informations nominatives - de la CNIL. Si ce n'est pas encore le cas, laissez libre le champ ci-contre + de la CNIL. Si ce n'est pas encore le cas, laissez libre le champ ci-contre
      + Voir wiki
      From 76df1b165f48642c31a9c376449b0e1288a81d20 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 5 Nov 2012 21:14:55 +0100 Subject: [PATCH 0273/1150] Ajout de tests pour ne pas afficher de ligne vide dans le bloc adresse responsable. --- bulletin/bull_func.lib.php | 194 +++++++++++++++++++++---------------- 1 file changed, 109 insertions(+), 85 deletions(-) diff --git a/bulletin/bull_func.lib.php b/bulletin/bull_func.lib.php index d4664fbf0..85f001268 100644 --- a/bulletin/bull_func.lib.php +++ b/bulletin/bull_func.lib.php @@ -1297,9 +1297,13 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { } $tab_adr_lignes[0]="".$tab_adr_ligne1[0].""; - $tab_adr_ligne2[0]=$tab_bull['eleve'][$i]['resp'][0]['adr1']; - $tab_adr_lignes[0].="\n"; - $tab_adr_lignes[0].=$tab_adr_ligne2[0]; + $tab_adr_ligne2[0]=""; + if($tab_bull['eleve'][$i]['resp'][0]['adr1']!='') { + $tab_adr_ligne2[0]=$tab_bull['eleve'][$i]['resp'][0]['adr1']; + $tab_adr_lignes[0].="\n"; + $tab_adr_lignes[0].=$tab_adr_ligne2[0]; + } + if($tab_bull['eleve'][$i]['resp'][0]['adr2']!=""){ $tab_adr_ligne3[0]=$tab_bull['eleve'][$i]['resp'][0]['adr2']; @@ -1357,9 +1361,12 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { } $tab_adr_lignes[$cpt].="".$tab_adr_ligne1[$cpt].""; - $tab_adr_ligne2[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr1']; - $tab_adr_lignes[$cpt].="\n"; - $tab_adr_lignes[$cpt].=$tab_adr_ligne2[$cpt]; + $tab_adr_ligne2[$cpt]=""; + if($tab_bull['eleve'][$i]['resp'][$cpt]['adr1']!='') { + $tab_adr_ligne2[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr1']; + $tab_adr_lignes[$cpt].="\n"; + $tab_adr_lignes[$cpt].=$tab_adr_ligne2[$cpt]; + } if($tab_bull['eleve'][$i]['resp'][$cpt]['adr2']!=""){ $tab_adr_ligne3[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr2']; @@ -1416,9 +1423,12 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { } $tab_adr_lignes[$cpt].="".$tab_adr_ligne1[$cpt].""; - $tab_adr_ligne2[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr1']; - $tab_adr_lignes[$cpt].="\n"; - $tab_adr_lignes[$cpt].=$tab_adr_ligne2[$cpt]; + $tab_adr_ligne2[$cpt]=""; + if($tab_bull['eleve'][$i]['resp'][$cpt]['adr1']!='') { + $tab_adr_ligne2[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr1']; + $tab_adr_lignes[$cpt].="\n"; + $tab_adr_lignes[$cpt].=$tab_adr_ligne2[$cpt]; + } if($tab_bull['eleve'][$i]['resp'][$cpt]['adr2']!=""){ $tab_adr_ligne3[$cpt]=$tab_bull['eleve'][$i]['resp'][$cpt]['adr2']; @@ -1466,9 +1476,12 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { } $tab_adr_lignes[0].="".$tab_adr_ligne1[0].""; - $tab_adr_ligne2[0]=$tab_bull['eleve'][$i]['resp'][0]['adr1']; - $tab_adr_lignes[0].="\n"; - $tab_adr_lignes[0].=$tab_adr_ligne2[0]; + $tab_adr_ligne2[0]=""; + if($tab_bull['eleve'][$i]['resp'][0]['adr1']!='') { + $tab_adr_ligne2[0]=$tab_bull['eleve'][$i]['resp'][0]['adr1']; + $tab_adr_lignes[0].="\n"; + $tab_adr_lignes[0].=$tab_adr_ligne2[0]; + } if($tab_bull['eleve'][$i]['resp'][0]['adr2']!=""){ $tab_adr_ligne3[0]=$tab_bull['eleve'][$i]['resp'][0]['adr2']; @@ -1829,99 +1842,87 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { $texte_1_responsable = $tab_adr_ligne2[$num_resp_bull]; - $hauteur_caractere=10; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - $taille_texte = $longeur_cadre_adresse; - $grandeur_texte='test'; - while($grandeur_texte!='ok') { - if($taille_texte<$val){ - $hauteur_caractere = $hauteur_caractere-0.3; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - } else { - $grandeur_texte='ok'; + if($texte_1_responsable!="") { + $hauteur_caractere=10; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + $taille_texte = $longeur_cadre_adresse; + $grandeur_texte='test'; + while($grandeur_texte!='ok') { + if($taille_texte<$val){ + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + } else { + $grandeur_texte='ok'; + } } + $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); } - $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); $texte_1_responsable = $tab_adr_ligne3[$num_resp_bull]; - $hauteur_caractere=10; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - $taille_texte = $longeur_cadre_adresse; - $grandeur_texte='test'; - while($grandeur_texte!='ok') { - if($taille_texte<$val){ - $hauteur_caractere = $hauteur_caractere-0.3; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - } else { - $grandeur_texte='ok'; + if($texte_1_responsable!="") { + $hauteur_caractere=10; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + $taille_texte = $longeur_cadre_adresse; + $grandeur_texte='test'; + while($grandeur_texte!='ok') { + if($taille_texte<$val){ + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + } else { + $grandeur_texte='ok'; + } } + $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); } - $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); // Suppression du saut de ligne pour mettre la ligne 3 de l'adresse //$pdf->Cell(90,5, '',0,2,''); $texte_1_responsable = $tab_adr_ligne4[$num_resp_bull]; - $hauteur_caractere=10; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - $taille_texte = $longeur_cadre_adresse; - $grandeur_texte='test'; - while($grandeur_texte!='ok') { - if($taille_texte<$val){ - $hauteur_caractere = $hauteur_caractere-0.3; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - } else { - $grandeur_texte='ok'; + if($texte_1_responsable!="") { + $hauteur_caractere=10; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + $taille_texte = $longeur_cadre_adresse; + $grandeur_texte='test'; + while($grandeur_texte!='ok') { + if($taille_texte<$val){ + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + } else { + $grandeur_texte='ok'; + } } + $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); } - $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); $texte_1_responsable = $tab_adr_ligne5[$num_resp_bull]; - $hauteur_caractere=10; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - $taille_texte = $longeur_cadre_adresse; - $grandeur_texte='test'; - while($grandeur_texte!='ok') { - if($taille_texte<$val){ - $hauteur_caractere = $hauteur_caractere-0.3; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - } else { - $grandeur_texte='ok'; + if($texte_1_responsable!="") { + $hauteur_caractere=10; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + $taille_texte = $longeur_cadre_adresse; + $grandeur_texte='test'; + while($grandeur_texte!='ok') { + if($taille_texte<$val){ + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + } else { + $grandeur_texte='ok'; + } } + $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); } - $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); //$texte_1_responsable = $cp_parents[$ident_eleve_aff][$responsable_place]." ".$ville_parents[$ident_eleve_aff][$responsable_place]; $texte_1_responsable = $tab_adr_ligne6[$num_resp_bull]; - $hauteur_caractere=10; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - $taille_texte = $longeur_cadre_adresse; - $grandeur_texte='test'; - while($grandeur_texte!='ok') { - if($taille_texte<$val){ - $hauteur_caractere = $hauteur_caractere-0.3; - $pdf->SetFont('DejaVu','',$hauteur_caractere); - $val = $pdf->GetStringWidth($texte_1_responsable); - } else { - $grandeur_texte='ok'; - } - } - $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); - - - //============================ - //if((my_strtolower($gepiSchoolPays)!=my_strtolower($pays_parents[$ident_eleve_aff][$responsable_place]))&&($pays_parents[$ident_eleve_aff][$responsable_place]!="")) { - if(isset($tab_adr_ligne7[$num_resp_bull])) { - $texte_1_responsable = $tab_adr_ligne7[$num_resp_bull]; + if($texte_1_responsable!="") { $hauteur_caractere=10; $pdf->SetFont('DejaVu','',$hauteur_caractere); $val = $pdf->GetStringWidth($texte_1_responsable); @@ -1938,6 +1939,29 @@ function bulletin_pdf($tab_bull,$i,$tab_rel) { } $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); } + + //============================ + //if((my_strtolower($gepiSchoolPays)!=my_strtolower($pays_parents[$ident_eleve_aff][$responsable_place]))&&($pays_parents[$ident_eleve_aff][$responsable_place]!="")) { + if(isset($tab_adr_ligne7[$num_resp_bull])) { + $texte_1_responsable = $tab_adr_ligne7[$num_resp_bull]; + if($texte_1_responsable!="") { + $hauteur_caractere=10; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + $taille_texte = $longeur_cadre_adresse; + $grandeur_texte='test'; + while($grandeur_texte!='ok') { + if($taille_texte<$val){ + $hauteur_caractere = $hauteur_caractere-0.3; + $pdf->SetFont('DejaVu','',$hauteur_caractere); + $val = $pdf->GetStringWidth($texte_1_responsable); + } else { + $grandeur_texte='ok'; + } + } + $pdf->Cell(90,5, ($texte_1_responsable),0,2,''); + } + } //============================ $texte_1_responsable = ''; From 2b6e48ef6d1d0f4a18586a45a455c1bd5d944972 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 5 Nov 2012 21:16:07 +0100 Subject: [PATCH 0274/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20le?= =?UTF-8?q?=20auth=5Fmode.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/ajax_modif_utilisateur.php | 170 ++++++++++++++++++++++++ utilisateurs/change_auth_mode.inc.php | 94 +++++++++++++ utilisateurs/edit_eleve.php | 14 +- utilisateurs/edit_responsable.php | 13 +- utilisateurs/index.php | 21 ++- 5 files changed, 304 insertions(+), 8 deletions(-) create mode 100644 utilisateurs/ajax_modif_utilisateur.php create mode 100644 utilisateurs/change_auth_mode.inc.php diff --git a/utilisateurs/ajax_modif_utilisateur.php b/utilisateurs/ajax_modif_utilisateur.php new file mode 100644 index 000000000..da321ba90 --- /dev/null +++ b/utilisateurs/ajax_modif_utilisateur.php @@ -0,0 +1,170 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +$sql="SELECT 1=1 FROM droits WHERE id='/utilisateurs/ajax_modif_utilisateur.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/utilisateurs/ajax_modif_utilisateur.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Ajax : Modification utilisateur', +statut='';"; +$insert=mysql_query($sql); +} + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +check_token(); + +header('Content-Type: text/html; charset=utf-8'); + +$mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : ""); +$login_user=isset($_POST['login_user']) ? $_POST['login_user'] : (isset($_GET['login_user']) ? $_GET['login_user'] : ""); +$auth_mode_user=isset($_POST['auth_mode_user']) ? $_POST['auth_mode_user'] : (isset($_GET['auth_mode_user']) ? $_GET['auth_mode_user'] : ""); + +/* +echo "\$mode=$mode
      "; +echo "\$login_user=$login_user
      "; +echo "\$auth_mode=$auth_mode
      "; +*/ + +//debug_var(); + +if($mode=='changer_auth_mode2') { + //**************** EN-TETE ***************** + $titre_page = "Changer le auth_mode d'un compte"; + require_once("../lib/header.inc.php"); + //**************** FIN EN-TETE ***************** + + echo "

      Retour Retour

      "; + + if($login_user=='') { + echo "

      ERREUR : Aucun login n'a été transmis.

      \n"; + require("../lib/footer.inc.php"); + die(); + } + + $sql="SELECT auth_mode, nom, prenom FROM utilisateurs WHERE login='$login_user';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "

      ERREUR : Le compte $login_user n'existe pas.

      \n"; + require("../lib/footer.inc.php"); + die(); + } + $lig_user=mysql_fetch_object($res); + $nom_user=$lig_user->nom; + $prenom_user=$lig_user->prenom; + $auth_mode_user=$lig_user->auth_mode; + + $tab_auth_mode=array('gepi', 'ldap', 'sso'); + echo "
      \n"; + echo "

      Modifier le auth_mode de $nom_user $prenom_user ($login_user) :

      \n"; + echo "\n"; + echo "\n"; + echo "\n"; + for($loop=0;$loop
      \n"; + } + echo add_token_field(); + echo "\n"; + echo "\n"; + + require("../lib/footer.inc.php"); + die(); +} +elseif($mode=='changer_auth_mode') { + if(isset($_POST['modif_sans_js'])) { + //**************** EN-TETE ***************** + $titre_page = "Changer le auth_mode d'un compte"; + require_once("../lib/header.inc.php"); + //**************** FIN EN-TETE ***************** + + echo "

      Retour Retour

      "; + + echo "

      Modification auth_mode de $login_user : "; + } + + $tab_auth_mode=array('gepi', 'ldap', 'sso'); + if(($login_user=='')||($auth_mode_user=='')||(!in_array($auth_mode_user,$tab_auth_mode))) { + echo " KO"; + return false; + die(); + } + + if($login_user==$_SESSION['login']) { + echo " KO"; + return false; + die(); + } + + $sql="SELECT 1=1 FROM utilisateurs WHERE login='$login_user';"; + $test=mysql_query($sql); + if(mysql_num_rows($test)==0) { + echo " KO"; + return false; + die(); + } + + $sql="UPDATE utilisateurs SET auth_mode='$auth_mode_user' WHERE login='$login_user';"; + $res=mysql_query($sql); + if($res) { + echo "$auth_mode_user"; + } + else { + echo "ERREUR"; + } + + if(isset($_POST['modif_sans_js'])) { + echo "

      "; + require("../lib/footer.inc.php"); + die(); + } +} + +?> diff --git a/utilisateurs/change_auth_mode.inc.php b/utilisateurs/change_auth_mode.inc.php new file mode 100644 index 000000000..2569c5714 --- /dev/null +++ b/utilisateurs/change_auth_mode.inc.php @@ -0,0 +1,94 @@ +\n"; + + echo "
      \n"; + echo "
      \n"; + echo "\n"; + echo "Fermer\n"; + echo "\n"; + echo "
      \n"; + + echo "
      AA
      \n"; + echo "
      \n"; + + echo "
      "; + + + $tab_auth_mode=array('gepi', 'ldap', 'sso'); + echo "
      \n"; + echo "\n"; + for($loop=0;$loop
      \n"; + } + echo add_token_field(); + echo "\n"; + echo "\n"; + + echo "
      \n"; + +echo "\n"; + +echo "\n"; +?> diff --git a/utilisateurs/edit_eleve.php b/utilisateurs/edit_eleve.php index fab64c094..95e28484f 100644 --- a/utilisateurs/edit_eleve.php +++ b/utilisateurs/edit_eleve.php @@ -1,7 +1,7 @@

      \n"; + +//======================================================== +include("change_auth_mode.inc.php"); +//======================================================== + + echo "

      Liste des comptes élèves existants :

      \n"; echo "
      \n"; @@ -509,7 +515,11 @@ function traite_p_mdp_INE() { echo "
      \n"; - echo $current_eleve->auth_mode; + echo "login', '$current_eleve->auth_mode') ;return false;\">"; + echo ""; + echo $current_eleve->auth_mode; + echo ""; + echo ""; echo "\n"; diff --git a/utilisateurs/edit_responsable.php b/utilisateurs/edit_responsable.php index efe5919ba..15f970b3b 100644 --- a/utilisateurs/edit_responsable.php +++ b/utilisateurs/edit_responsable.php @@ -1,7 +1,7 @@ \n"; echo "\n"; - echo "


      \n"; + //======================================================== + include("change_auth_mode.inc.php"); + //======================================================== + echo "

      Liste des comptes responsables existants :

      \n"; echo "
      \n"; @@ -584,7 +587,11 @@ classes c, echo "
      "; - echo $current_parent->auth_mode; + echo "login', '$current_parent->auth_mode') ;return false;\">"; + echo ""; + echo $current_parent->auth_mode; + echo ""; + echo ""; echo ""; diff --git a/utilisateurs/index.php b/utilisateurs/index.php index 5f54f37b9..f8e5a0157 100644 --- a/utilisateurs/index.php +++ b/utilisateurs/index.php @@ -1,7 +1,7 @@ ' /> - +
      Contrôle des matières de $user_login:
      \n"; $call_matieres = mysql_query("SELECT * FROM j_professeurs_matieres j WHERE j.id_professeur = '$user_login' ORDER BY ordre_matieres"); @@ -692,7 +698,16 @@ function test_ecriture_backup() { echo "

      {$col[$i][1]}

      \n"; + echo "

      {$col[$i][1]}"; + echo "
      "; + + echo ""; + echo ""; + echo $user_auth_mode; + echo ""; + echo ""; + + echo "

      \n"; if (getSettingValue("active_module_trombino_pers")=='y') { $codephoto = md5(mb_strtolower($col[$i][1])); $photo = $rep_photos.$codephoto.'.jpg'; From cccbe5cdb9f7addfac8fbace02d3ffdafd823ed6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 5 Nov 2012 21:17:40 +0100 Subject: [PATCH 0275/1150] =?UTF-8?q?Ajout=20de=20pr=C3=A9cisions=20sur=20?= =?UTF-8?q?les=20entr=C3=A9es=20d=C3=A9sactiv=C3=A9es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_barre_admin_template.php | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/lib/header_barre_admin_template.php b/lib/header_barre_admin_template.php index 9c8dd0f88..f0fefeb9b 100644 --- a/lib/header_barre_admin_template.php +++ b/lib/header_barre_admin_template.php @@ -83,7 +83,6 @@ $menus .= '
    • Interface Profs
    • '."\n"; $menus .= '
    • Couleurs
    • '."\n"; $menus .= '
    • Ordre des menus
    • '."\n"; - $menus .= '
    • Fiches Bienvenue
    • '."\n"; $menus .= ' '."\n"; $menus .= ''."\n"; $menus .= '
    •  Maintenance'."\n"; @@ -91,9 +90,7 @@ $menus .= '
    • Sauvegardes
    • '."\n"; $menus .= '
    • Mise à jour de la base
    • '."\n"; $menus .= '
    • Nettoyage de la base
    • '."\n"; - if(!getSettingAOui('gepi_en_production')) { - $menus .= '
    • Effacer la base
    • '."\n"; - } + $menus .= '
    • Effacer la base
    • '."\n"; $menus .= '
    • Effacer les photos
    • '."\n"; $menus .= '
    • Dossiers temp.
    • '."\n"; $menus .= ''."\n"; @@ -105,11 +102,6 @@ $menus .= '
    • Utilisateurs'."\n"; $menus .= ' '."\n"; $menus .= '
    • '."\n"; $menus .= '
    •  Modules'."\n"; @@ -211,7 +201,6 @@ $gepi_denom_mention=getSettingValue('gepi_denom_mention'); if($gepi_denom_mention=='') {$gepi_denom_mention="mention";} $menus .= '
    • '.ucfirst($gepi_denom_mention).'s
    • '."\n"; - $menus .= '
    • Fiches Bienvenue
    • '."\n"; $menus .= ' '."\n"; $menus .= ' '."\n"; if(getSettingAOui('active_notanet')) { From cc55ca4a69e3f474b197e718aa625c0672c19755 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 6 Nov 2012 19:21:04 +0100 Subject: [PATCH 0276/1150] =?UTF-8?q?Affichage=20d'explications=20sur=20le?= =?UTF-8?q?s=20choix=20d=C3=A9sactiv=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_barre_admin_template.php | 35 +++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/lib/header_barre_admin_template.php b/lib/header_barre_admin_template.php index f0fefeb9b..6e3e86f38 100644 --- a/lib/header_barre_admin_template.php +++ b/lib/header_barre_admin_template.php @@ -83,6 +83,7 @@ $menus .= '
    • Interface Profs
    • '."\n"; $menus .= '
    • Couleurs
    • '."\n"; $menus .= '
    • Ordre des menus
    • '."\n"; + $menus .= '
    • Fiches Bienvenue
    • '."\n"; $menus .= ' '."\n"; $menus .= ''."\n"; $menus .= '
    •  Maintenance'."\n"; @@ -90,7 +91,17 @@ $menus .= '
    • Sauvegardes
    • '."\n"; $menus .= '
    • Mise à jour de la base
    • '."\n"; $menus .= '
    • Nettoyage de la base
    • '."\n"; - $menus .= '
    • Effacer la base
    • '."\n"; + if(!getSettingAOui('gepi_en_production')) { + $menus .= '
    • Effacer la base
    • '."\n"; + } + else { + $menus .= '
    • Effacer la base
    • '."\n"; + } $menus .= '
    • Effacer les photos
    • '."\n"; $menus .= '
    • Dossiers temp.
    • '."\n"; $menus .= ''."\n"; @@ -102,6 +113,11 @@ $menus .= '
    • Utilisateurs'."\n"; $menus .= ' '."\n"; $menus .= '
    • '."\n"; $menus .= '
    •  Modules'."\n"; @@ -201,6 +231,7 @@ $gepi_denom_mention=getSettingValue('gepi_denom_mention'); if($gepi_denom_mention=='') {$gepi_denom_mention="mention";} $menus .= '
    • '.ucfirst($gepi_denom_mention).'s
    • '."\n"; + $menus .= '
    • Fiches Bienvenue
    • '."\n"; $menus .= ' '."\n"; $menus .= ' '."\n"; if(getSettingAOui('active_notanet')) { From 25ac3da74c8ffb93b5e0fe6976f6c93f64b4f157 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 6 Nov 2012 19:21:39 +0100 Subject: [PATCH 0277/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20vider=20les?= =?UTF-8?q?=20commentaires.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/saisie_notes.php | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/cahier_notes/saisie_notes.php b/cahier_notes/saisie_notes.php index 20287cf05..cf6725df5 100644 --- a/cahier_notes/saisie_notes.php +++ b/cahier_notes/saisie_notes.php @@ -1076,9 +1076,9 @@ function verifcol(num_id){ $mess_comment[$i][$k] = "
      "; if ($current_group["classe"]["ver_periode"][$eleve_id_classe[$i]][$periode_num] == "N"){ if ((isset($appreciations_import[$current_displayed_line])) and ($appreciations_import[$current_displayed_line] != '')) { - $eleve_comment = $appreciations_import[$current_displayed_line]; - } - $mess_comment[$i][$k] .= " - -Remarques : -
        -
      • Les répertoires "documents" (contenant les documents joints aux cahiers de textes) et "photos" (contenant les photos du trombinoscope) ne seront pas sauvegardés.
        -Un outil de sauvegarde spécifique se trouve en bas de cette page.
      • -
      • Valeur de la durée d'une portion en secondes : - Mémoriser la durée de la portion pour la prochaine fois -
        Afficher/cacher l'aide.
      • -
      - + +
      Remarque : les répertoires 'documents' (contenant les documents joints aux cahiers de textes) et 'photos' (contenant les photos du trombinoscope) ne seront pas sauvegardés. Un outil de sauvegarde spécifique se trouve en bas de cette page.
      From e8c084fbb1dd7777bd60282bec6822d5896b617e Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Sun, 30 Dec 2012 18:11:41 +0100 Subject: [PATCH 0433/1150] Suppression du lien de restauration des sausvegardes des photos --- gestion/accueil_sauve.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gestion/accueil_sauve.php b/gestion/accueil_sauve.php index 878eca809..910153278 100644 --- a/gestion/accueil_sauve.php +++ b/gestion/accueil_sauve.php @@ -1816,7 +1816,8 @@ function shutdown() { if ((preg_match('/.sql.gz$/i',$value) || preg_match('/.sql$/i',$value))) $type_sauvegarde="base"; switch ($type_sauvegarde) { case "photos" : - echo "
      RestaurerRestaurerRestaurer
      \n"; echo "\n"; echo "\n"; - echo "\n"; - echo "\n"; + if($afficher_compte_rendus_seulement=='n') { + echo "\n"; + } + if($afficher_travail_a_faire_seulement=='n') { + echo "\n"; + } echo "\n"; for($j=0;$j\n"; - echo "\n"; - - echo "\n"; } - echo "\n"; - - echo "\n"; } - echo "\n"; echo "\n"; } From b0c42d697ad3b5df4ec565cbe572958ac65b4bfe Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 4 Jan 2013 15:49:38 +0100 Subject: [PATCH 0440/1150] =?UTF-8?q?Ajout=20d'un=20test=20sur=20l'existen?= =?UTF-8?q?ce=20d'un=20indice=20de=20tableau=20(correspondant=20=C3=A0=20u?= =?UTF-8?q?n=20point=20de=20la=20courbe)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- visualisation/draw_graphe.php | 2 +- visualisation/draw_graphe_svg.php | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/visualisation/draw_graphe.php b/visualisation/draw_graphe.php index ae3f86360..1bb35133f 100644 --- a/visualisation/draw_graphe.php +++ b/visualisation/draw_graphe.php @@ -890,7 +890,7 @@ function writinfo($chemin,$type,$chaine){ //$y_prec[$y+1]=$ycourbe[$k][$i+1]; imageLine($img,$x1,$ycourbe[$k][$i],$x2,$ycourbe[$k][$i+1],$couleureleve[$k]); } - elseif(($afficher_pointille!='n')&&($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+2]!=-1)) { + elseif(($afficher_pointille!='n')&&(isset($ycourbe[$k][$i]))&&($ycourbe[$k][$i]!=-1)&&(isset($ycourbe[$k][$i+2]))&&($ycourbe[$k][$i+2]!=-1)) { /* // imageDashedLine() est bugguée... on peut récupérer des hachures de 8mm de hauteur pour 2mm de large imagesetthickness($img,1); diff --git a/visualisation/draw_graphe_svg.php b/visualisation/draw_graphe_svg.php index fa2ba40be..16eea4bb1 100644 --- a/visualisation/draw_graphe_svg.php +++ b/visualisation/draw_graphe_svg.php @@ -1061,7 +1061,8 @@ function rvb2hexa($composante){ $ytmp2=$ycourbe[$k][$i+1]; echo "\n"; } - elseif(($afficher_pointille!='n')&&($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+2]!=-1)) { + //elseif(($afficher_pointille!='n')&&($ycourbe[$k][$i]!=-1)&&($ycourbe[$k][$i+2]!=-1)) { + elseif(($afficher_pointille!='n')&&(isset($ycourbe[$k][$i]))&&($ycourbe[$k][$i]!=-1)&&(isset($ycourbe[$k][$i+2]))&&($ycourbe[$k][$i+2]!=-1)) { echo "\n"; } } From 1a95532784530498fa097d26671e9782e02d5fa0 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 6 Jan 2013 16:16:56 +0100 Subject: [PATCH 0441/1150] =?UTF-8?q?Pr=C3=A9cision=20exec/mysql.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changelog.txt b/changelog.txt index fae6bb8ab..13e2c23b3 100644 --- a/changelog.txt +++ b/changelog.txt @@ -109,7 +109,8 @@ Gestion: accéder aux paramètres des relevés HTML. - Possibilité de créer des comptes d'utilisateurs pour des resp_legal=0 (famille d'accueil,...), de donner ou non l'accès aux données de l'élève,... -- Possibilité de restaurer plus vite une sauvegarde de la base via exec(). +- Possibilité de restaurer plus vite une sauvegarde de la base via la commande système 'mysql' + (commande PHP exec() faisant appel à mysql en ligne de commande). Graphes: - Possibilité d'afficher le rang de l'élève sur les graphes en courbe/étoile From b63a61ac77be6ff5bbe4661781e15feee419a726 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 7 Jan 2013 17:12:59 +0100 Subject: [PATCH 0442/1150] =?UTF-8?q?Ajout=20d'une=20page=20pour=20propose?= =?UTF-8?q?r=20des=20liens=20vers=20les=20TXT=20=C3=A0=20la=20racine=20de?= =?UTF-8?q?=20Gepi.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a_lire.php | 87 +++++++++++++++++++++++ class_php/class_page_accueil.php | 4 ++ sql/data_gepi.sql | 1 + utilitaires/updates/access_rights.inc.php | 12 ++++ 4 files changed, 104 insertions(+) create mode 100644 a_lire.php diff --git a/a_lire.php b/a_lire.php new file mode 100644 index 000000000..517251213 --- /dev/null +++ b/a_lire.php @@ -0,0 +1,87 @@ +security_check(); +if ($resultat_session == 'c') { + //header("Location: ../logout.php?auto=1"); + header("Location: ./logout.php?auto=1"); + die(); +} else if ($resultat_session == '0') { + //header("Location: ../logout.php?auto=1"); + header("Location: ./logout.php?auto=1"); + die(); +} + +$sql="SELECT 1=1 FROM droits WHERE id='/a_lire.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/a_lire.php', +administrateur='V', +professeur='V', +cpe='V', +scolarite='V', +eleve='V', +responsable='V', +secours='V', +autre='V', +description='A lire...', +statut='';"; +$insert=mysql_query($sql); +} + +if (!checkAccess()) { + //header("Location: ../logout.php?auto=1"); + header("Location: ./logout.php?auto=1"); + die(); +} + +//**************** EN-TETE ***************** +$titre_page = "A lire..."; +require_once("./lib/header.inc.php"); +//**************** FIN EN-TETE ************* + +echo "

      \n"; +echo "Accueil"; +echo "

      \n"; +echo "
      \n"; + +echo "

      Voici quelques liens vers des fichiers d'information à propos de Gepi :

      +
        +
      • INSTALL.txt : Les explications concernant l'installation de Gepi
        +(si vous êtes ici, l'installation est probablement déjà faite;)
      • +
      • MAJ.TXT : Les explications concernant la mise à jour vers la présente version de Gepi
        +(c'est le fichier que la personne qui a mis à jour le Gepi dans la présente version a assurément lu)
      • +
      • README.txt : À lire... comme son nom l'indique.
      • +
      • changelog.txt : L'historique des modifications et ajouts au fil des versions de Gepi.
      • +
      • COPYING.txt : La licence GPL.
      • +
      \n"; + + +echo "


      \n"; +require("lib/footer.inc.php"); +?> diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index 003fab35d..8fce7a8d8 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -358,6 +358,10 @@ protected function administration() { "Entrer en liaison avec l\'ENT pour gérer les utilisateurs et récupérer les logins pour le sso"); } + $this->creeNouveauItem('/a_lire.php', + "À lire", + "Quelques fichiers concernant Gepi."); + if ($this->b>0){ $this->creeNouveauTitre('accueil',"Administration",'images/icons/configure.png'); return true; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 007e54a9f..4cfdc9de5 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1196,3 +1196,4 @@ INSERT INTO droits VALUES ('/utilisateurs/modif_par_lots.php', 'V', 'F', 'F', 'F INSERT INTO droits VALUES ('/bulletin/index_admin.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Bulletins : Activation du module bulletins', '1'); INSERT INTO setting SET name='GepiAccesBulletinSimpleColonneMoyClasseResp', value='y'; INSERT INTO setting SET name='GepiAccesBulletinSimpleColonneMoyClasseEleve', value='y'; +INSERT INTO droits SET id='/a_lire.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='V',responsable='V',secours='V',autre='V',description='A lire...',statut=''; diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 1277c6e90..9883986fb 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -951,6 +951,18 @@ function traite_requete($requete = "") { $tab_req[]="INSERT INTO droits VALUES ('/bulletin/index_admin.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Bulletins : Activation du module bulletins', '1');"; +$tab_req[]="INSERT INTO droits SET id='/a_lire.php', +administrateur='V', +professeur='V', +cpe='V', +scolarite='V', +eleve='V', +responsable='V', +secours='V', +autre='V', +description='A lire...', +statut='';"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From 808a94891e0fa316513c7767273a7bb2b5ddadc1 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Tue, 8 Jan 2013 17:55:46 +0100 Subject: [PATCH 0443/1150] Correctif pour le cas ou db_nopersist n'est pas initialisee --- lib/Session.class.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/Session.class.php b/lib/Session.class.php index cf80f5df9..9f987c4e5 100644 --- a/lib/Session.class.php +++ b/lib/Session.class.php @@ -1008,7 +1008,6 @@ private function authenticate_lcs() { $dbHost = $GLOBALS['dbHost']; $dbUser = $GLOBALS['dbUser']; $dbPass = $GLOBALS['dbPass']; - $db_nopersist = $GLOBALS['db_nopersist']; $dbDb = $GLOBALS['dbDb']; //list ($idpers,$login) = isauth(); @@ -1023,7 +1022,7 @@ private function authenticate_lcs() { // A ce stade, l'utilisateur est authentifié // Etablir à nouveau la connexion à la base - if (empty($db_nopersist)) + if (isset($db_nopersist) && !$db_nopersist) $db_c = mysql_pconnect($dbHost, $dbUser, $dbPass); else $db_c = mysql_connect($dbHost, $dbUser, $dbPass); From ec166ef9e2c9ec92f3f0ff85308af4118925cfec Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Tue, 8 Jan 2013 19:17:52 +0100 Subject: [PATCH 0444/1150] Inclusion des fichiers .txt dans la page --- a_lire.php | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/a_lire.php b/a_lire.php index 517251213..0140d47b9 100644 --- a/a_lire.php +++ b/a_lire.php @@ -71,17 +71,36 @@ echo "\n"; echo "

      Voici quelques liens vers des fichiers d'information à propos de Gepi :

      -
        -
      • INSTALL.txt : Les explications concernant l'installation de Gepi
        -(si vous êtes ici, l'installation est probablement déjà faite;)
      • -
      • MAJ.TXT : Les explications concernant la mise à jour vers la présente version de Gepi
        -(c'est le fichier que la personne qui a mis à jour le Gepi dans la présente version a assurément lu)
      • -
      • README.txt : À lire... comme son nom l'indique.
      • -
      • changelog.txt : L'historique des modifications et ajouts au fil des versions de Gepi.
      • -
      • COPYING.txt : La licence GPL.
      • -
      \n"; +
        "; +echo "
      • INSTALL.txt : Les explications concernant l'installation de Gepi
        +(si vous êtes ici, l'installation est probablement déjà faite;)
      • "; +echo "
      • MAJ.TXT : Les explications concernant la mise à jour vers la présente version de Gepi
        +(c'est le fichier que la personne qui a mis à jour le Gepi dans la présente version a assurément lu)
      • "; +echo "
      • README.txt : À lire... comme son nom l'indique.
      • "; +echo "
      • changelog.txt : L'historique des modifications et ajouts au fil des versions de Gepi.
      • "; +echo "
      • COPYING.txt : La licence GPL.
      • "; +echo "
      \n"; -echo "


      \n"; +echo "
      \n"; +if (isset($_GET['fichier'])) { + echo "
      "; + echo "
      "; + echo "Fichier ".$_GET['fichier']; + echo "
      "; + echo "
      "; + echo "
      "; + $f=fopen($_GET['fichier'],"r"); + while(!feof($f)) { + echo htmlspecialchars(fgets($f))."
      "; + } + fclose($f); + echo "
      "; + echo "
      "; + echo "
      "; + echo "Retour en haut de page"; + echo "
      "; + echo "
      "; +} require("lib/footer.inc.php"); ?> From 4d9fdfb03f281fb00f545d7bf79536e096505309 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 8 Jan 2013 19:54:54 +0100 Subject: [PATCH 0445/1150] =?UTF-8?q?Ajout=20d'une=20s=C3=A9curit=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a_lire.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/a_lire.php b/a_lire.php index 0140d47b9..89dfb2148 100644 --- a/a_lire.php +++ b/a_lire.php @@ -83,7 +83,8 @@ echo "
      \n"; -if (isset($_GET['fichier'])) { +$tab_fichiers=array("INSTALL.txt", "MAJ.TXT", "README.txt", "changelog.txt", "COPYING.txt"); +if ((isset($_GET['fichier']))&&(in_array($_GET['fichier'], $tab_fichiers))) { echo "
      "; echo "
      "; echo "Fichier ".$_GET['fichier']; From f335b4c6570f488a30e6114a87285d1fa6d9f5d3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 08:21:15 +0100 Subject: [PATCH 0446/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20jouer=20un=20?= =?UTF-8?q?son=20en=20cas=20d'erreur=20lors=20de=20l'enregistrement=20d'un?= =?UTF-8?q?e=20saisie=20de=20groupe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/admin/index.php | 15 +++++++++++++++ mod_abs2/enregistrement_saisie_groupe.php | 18 +++++++++++++++++- 2 files changed, 32 insertions(+), 1 deletion(-) diff --git a/mod_abs2/admin/index.php b/mod_abs2/admin/index.php index f8f0af612..66caa63c6 100644 --- a/mod_abs2/admin/index.php +++ b/mod_abs2/admin/index.php @@ -245,6 +245,15 @@ } } + if (isset($_POST['abs2_jouer_sound_erreur'])) { + if (!saveSetting("abs2_jouer_sound_erreur", $_POST['abs2_jouer_sound_erreur'])) { + $msg = "Erreur lors de l'enregistrement du paramètre abs2_jouer_sound_erreur !"; + } + } else { + if (!saveSetting("abs2_jouer_sound_erreur", 'n')) { + $msg = "Erreur lors de l'enregistrement du paramètre abs2_jouer_sound_erreur !"; + } + } } } @@ -378,6 +387,12 @@ VOUS AVEZ COCHÉ UNE DES DEUX CASES CI-DESSUS : l'affichage de ces informations au moment de l'appel professeur est susceptible de fausser son jugement. Il est possible que l'enseignant se fie uniquement à ces informations (sans effectuer un contrôle visuel effectif) et que son appel soit erroné. Sa responsabilité pourrait être engagée. Vous pouvez-vous rapprocher de votre chef d'établissement afin de convenir de ce réglage.";?>

      +

      + /> + +

      +

      Envoi des SMS

      setDebutAbs($dt_date_debut_appel); $saisie->setFinAbs($dt_date_fin_appel); +$chaine_son_alerte=" +\n"; + if ($message_erreur != '') { $message_enregistrement .= 'Erreur sur l\'enregistrement du marqueur d\'appel : '.$message_erreur.''; + + if(getSettingAOui("abs2_jouer_sound_erreur")) { + $message_enregistrement .= $chaine_son_alerte; + } + //on arrete la saisie include("saisir_groupe.php"); die(); @@ -223,6 +234,11 @@ } else { //on arrete la saisie $message_enregistrement .= 'Erreur sur l\'enregistrement du marqueur d\'appel : '.format_verif_failures($saisie).''; + + if(getSettingAOui("abs2_jouer_sound_erreur")) { + $message_enregistrement .= $chaine_son_alerte; + } + include("saisir_groupe.php"); die(); } @@ -400,4 +416,4 @@ function format_verif_failures($saisie) { } return $message; } -?> \ No newline at end of file +?> From b65cec57617f25021dc11f3de6c81f02daa0aef5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 08:21:27 +0100 Subject: [PATCH 0447/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20jouer=20un=20?= =?UTF-8?q?son=20en=20cas=20d'erreur=20lors=20de=20l'enregistrement=20d'un?= =?UTF-8?q?e=20saisie=20de=20groupe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sounds/default_alarm.wav | Bin 0 -> 8624 bytes sounds/verre_brise.wav | Bin 0 -> 28682 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 sounds/default_alarm.wav create mode 100644 sounds/verre_brise.wav diff --git a/sounds/default_alarm.wav b/sounds/default_alarm.wav new file mode 100644 index 0000000000000000000000000000000000000000..30b84e30b150a6422fc5daef5ce8e4e47429c052 GIT binary patch literal 8624 zcmeHLw{k2?a=q)(EHhO{eAxTfBWv;yFcLXAOG&%`u)SZ zzj=4_=lstOG(?KX^dud*u=|q#=|l7V5~GWEw>MjQ=`8Ks+`kOeZEim9vi9Z6aWTur z&(ATko14Gv_D%FAEcEg{em~9PGtlR`SA4h zVG18NJL}AG61mIy%S({)iEfBCyF0}~e7VfyUA7k#x^sC;hdjPe8_vsLoZWpc80+zT zIo^Jtmc&!cINi&aAJUJHhmTfmcJ+?OZxp}uH+!PH5bM_5?Z3PbKYpbwnqTuoJ+*YP) zk5F^JB{`G%F{(#*OVwwmX}mnT(oxm5MD=^wdZKfrcs?j`%RQO+WvHm;#I4?c1{dLC zG^f*EvRg%gU%tAQBuUoOeUS;LhKEacj)mIXH$lr^u-s6PY^M8cCtPBFyf7s`?Z~m| z``9(Ax1|e*>~lq)9piGENFQ#cZ~V9O!gJFR4J^CeDr)>OK3Q_v$C{-61!~r6$tb|PEaq4`LG-R8i6!!QO$y=pk z)Y-PG>WPn!1Ml?hwx|_s@8Ev8ylYV?`A9r2qZ-*JE2W%cM!Qto5BZMKS7ek^#>I(> zwxEvO`O=M4+-|pd+da&LVx(c3+ompEuZQ#5Pb$CL?HYzik`+pK-OQT2rh)uJ>;~Fw zc16vn$H7{T#E4TJ zcA_fZtIn9`b7!V{w=MEUo#Qx|f{f~VUS}v%;}VYzsoWh&wsjLIhUut{-+a!>lDLbP z_#|arN#9XhmeL%}7-ut-_nWK`oQ9|6+dySqw%$QMreh!CGAP&F=XooMPS5jWRCT_~ z!>o8+(|FX=7!jpxpS8j(dYI!m<#k>TJ#jAB(svV5K$`533k2I8L2{JY`=%5~21Qkv zM?annS5)jPrko>a5s#+)SY;K$iUOu?GUH`{XWFdDxb|{-4D&qG9oxZhYmp`n#w?4Y zrYW+FQE>J&&GWS6MYgG#F`YB59eTLX!8v(TH8eQ56!uT0xX&^reQ>0#4IY6|q9|Ea zQ_%C=pX~7{<)OIe!cwp#XfWM$8WqpWy3NSCk>aeU-g9=p+mR5#Y8w17#Zwsy4k7ttm-KSPEJHoX{uiSU$7e5^;!yfi2ia9MM6IWjWsGfdF4?qn=cgV; zmmO^E8b=2@j)YqhE<Yj{yjCAyyx-A>x{qT50u#LWLnTnS)+*i$I+gbs+8?Iw#82Jn1PC(?t zm~2`A{nn30KRv)vlpoM@=-bS+ZuWg_@oFz;RNMo6uBu!j=i{SNuH7{g?x}6Z(V&dE zYTJSVU(pZoj~`kCB~0C5xqra0gC5o>Z_y5rKyVi6T)3)SMsm+aAaz;}48ja!dGPf? zdtjStx=GRrx)WwnjDS@6hmIY^cJEx%b(j|%>F8|`nWU!fMBQHowYbBU40An@5S2bm z!yvPgT4o%H<;m(^>^Cq|_flw!mK;MzP2xa3wf4bCOVvHH4G^gSH|SabR60nlst`24 zoFosl&lJ?{;c>8vbC~94(@=2;1Fzz!MC^7*A7-J2G1AOkH;nwA5lml%SSBf=D3etK z#s^I@^kW!C+V6Q&(K0X}d*Q99xNNNf$bra)p$ntf?1jhyDJ`8HSubnWaMA`aOvZ+( zbEo$1pcvxkSUBNj-!yF_U7`KdI#Md zv(SW0RT75t2?w7Dbe9F{6(mBc)#{f)4r4;ZzPB7@uay)tDY=P<* zYOsK8htTI}&E!4#plDp+I|2Jzt`SpAHCh9NtVMgrVC&+Du2yGAeh~l};1O(I!R^6m z1d^tX>`))D&L+eC6fis#s49rj9<6Wo)ZsMXc%?D9qn!?>EipX}cT3NqPsZAlhZEaMtqpD8+CEEx+Xeca2=NkC4U5*Hm$Qnyh4#__b zRiZg{LVEDWP~){I1+Y;$ST^DCV0nv)%OO2F*lShUYHajW`^D;UXe&>R3Sc)mtudg9 zp_NWoV)PV_wy?GaF^7>z=DY+0;SH0$C!nD)y5UZ>rt46&a!*|=f+?C#OMiB3q#XSm zxe;`4MIoU|u&nKz^b0W?8ni@M=#Vk0Aj>gK0j9O=2Pu23pgv7+ff6kP_DQFpsO6(i zs}l8t2y16NKp9~R1e>)8gA{46QQT;4eWw^1jEB@p9C!zhJ#Y;CXR+0F=oILZh$6RE zAnRHUH4HkVvBn|g5X9uH248WUITErl5bUfrJ;qh!1hA0_O4TWX|2(RygwY4mug#48uL znY7S|rstK?t(*)zh|?LM2}J?3P9!?+*m4N12X=9Nx4CizRL!N7Gh7Q`w7CB80q|QNYjQ(kM_XaZ?nf1uT5?9|F zz!fSe6$<=)#4!w(TU0%&w?gH((YDFBVPH(#n)fL|tpFx~bBj?|te6hBkFZqhN`_G> z40owM6LzNYB@FN%vbv`l!$Pa4px_#5fXwh86cGl#L-&9^$yx+%@&H_zn>;8{KBany2iO%NX&88d&SfA?-hcGhyWpgf2rg+u(R*KNUABb!R z2Ow9IqaC`HMfy!z!j&Aj*0$(r09iy?tvzBO9En@iS%nf7Kxi&B@)jlNeVdA1qsW1} zDj5p{RR{{Iwow3x6}}en#XaUe2=Is_N}8NNBg9c18Ul5Zb@<%^(*w>i zTB0Lq&r8ga63$58MA`rl;U9QZBT8wYKznOB`hf;>{IUe*_()`LYkMUpOlC;(0I0;0 zPYwdgqo>*wLgKoPL|-CG7{$x}#$q0TDjBHNUr98(N7cjse9}|ATvNWrD-o zR7%4v^ahNi0SPsX{rKSqkI(^gD1N3(axol&4a9Pc2&qg3O2Bjm%Ai;=s-QM31fVX~ zF$u|>JOGIXn2zl2a0|iCpgvGSAWhn&d`9QO6$j!~Wo=|qA&pb%vqGlB4`N`Lj-{Zt z2z*-d2u*rK_|Rd{t|)l?ZUld$k0HW{7~X**!5O+N+Hx9rkn^jZNRPFil8+PgYLs$f z)hiG~!IVFMC*V^mozwE1>6W2fV+}qpk&GH4nUGL19~SO26F=*(~ycy zOktM9(2cVz9^qD$46eynD!Id(q*?NP;(>4ShDdpcTv{WJ$gDwvJ*gtr;zhB5U!qtg z+myg-K+@`(WeQ^8bWo(PHArfVvx!IAlQyOaI3+w*U*E{}*BdZ?B|v7v43H)c_+myw zD^HTwZ^EUN^jHAhYBLnYlz|<<2S|cYFaSs;nw3Fv+-gGNml$9JB&02g$8~?=kk;4n zeAOU{Of>kce6SAwDIKr;Q~srOj20=?z-NWdwQv*2ffp#To)k~kr{Ewk>D?-MT}`(M z?^b44;n(*`=K7raKB(5mwE3!5+VRR@y-gObtXI19Dy8Wg4S3*9dQ2`_W#O{=`l{S2 z;*EEDm55g+iN(5kO}O;-l^2|z2#_<0;|lQUX5F^ZrW^vFtCm+@SAvxXoP+%k^}6M4 z32iY6PG;b;zJ0x}_p4FKvk?5M7T&*l0?tmGlQFM?*KA0uSG(UlgyrO4FuPKN)5i|Nw0oQOkOFjq58QYHLRbj zN$Tt4D}D0D+upRAXy0DElKlGoCL|T_mGpX9x1^m{L22=o;B`GczrA_8{z~-v0+)1$ z@0(Ad)_>RRw~tBgD&dU`8`9=iR%z+Fz7k#kU4iH4%I^u@n7wZL9l`Ikc;o(4?CYMl xt#8*i!k^Or%bVZc{$|tfAAj@axBJuc|4#CMLGeFH{_DHHdf=}f_^xNFSSCdgxz%>A(EffAH_R z?UYjX-!-?V^x-e1RHb(MSHJh~e(%H|x>2W+>r!h`nt!E^E1LUSl~h$eq~D-YRFS=IBg*;Psls_krUYbdV(&x&b$x zj-`IcIr`P^zbSv7|2Q42??+$K_gCV->QQ(9ec6_tNS(4FKVNRk-SXY^XU6@D^hi3X z-?{YFa=_SMO+9q~k9nBxEWeljtaLm*TMngflmqFH(pU3eq?!6ep39Hwdp18&?@OP_ zgHq>1wLWq@`#b5$G>g{R^gOD+5^!^WBt4NIt^c4JgThD3q<;s>A9~^|xnF);|6i+S z>w+qGQa>HU;aEdeNnQN4Q@;$WuV~*dvsEd3OV8DRQ~LPnRsTyWxSmV1u6FYZ{5*p9 zuclS9JK%mQ-!Bj6R3GqZGPU!D^1Em%X_yE3Cuvw7Mr|)2Eq@YJYcXZ?M@c5=PPKn{ zna+QeJ9(+xnGSjKNbaPW{6CX=A*mTW-IG?(H;ekOplKw1G3W_2r~gfle@0^cx|bJp zx!;{{qyy<|H2O$-yxfxqM%@PstM$SBPub|S(Z}oIbgG;vw~<3P9j2H2Q>LSYr;CyCX>7%t1(y306>7S73 ztmlrE|3IQM`nVaE+9-pN{75O)ZNp~?AOza>*!0Zw4ofzb9j0H?t_X1WvtC$Q+Q|vGVpdLu$m56 z9lz&dJQ9o6!*W-(7s)0673#>R8bTjS#9JTMPldgZ?PAIsN6&~!aZ(l?-K(e>RZALPGA`*b=7gJ;ssu=A7r zPFc<)^qBGsfhD|5mfy@>y`^#is@k+N#bOuAcl=KH`LZETxc+3hly4}b)#kKP=Jngn z@$>=MWG!W5wGoB0tl^=$m;M%g9nqsxrad{&_Pew`AE+g{Qg-BSy_|kkAMd8^i0{$(1J3u&ik(9_VdT0V}dIT}3R``;ODLpoi(K@vBia4)?rv(K%l*_&U; zOX&tZ&ln?dcVBiSVl;2tl>13tvJ}#Ab%8hZBOt@eB2Ix>>0Ga&R+Jz%}&>b zIJ-HWt=3rllIz#8y%$rfS}CXbx3I4zXxNI9ldNf9x`&ju(ED0rL(}^1^NT^#V(5zh z>E{P>qPbGGQUL& zrE;fF5f@IgxE4xZWI-M1<7Mju?k(wqjrw_q{-1~Lo69IZ_Q4u2io#9RPTA-L4;A** zNz>_S?H5@m+`#7wtQ0?&bFaQh#3}haJ#8l6DS95j`)awCl$O&(wHsGMd05x)Qz$V$ zNhYyTR!3GxN$KP6F2LJ9zC94Vv&^D$8@cR~|BRHgM%z$NRy$>vtum2*WTbmp)7f+( zu`gp^lp%)g_4Rg}JMZAG-yrwqw5{B#rx)4!7<3IiJC=Ux{y0Rx({M*qxyxhjLsuWJ zZsYfZ$6rE1E4`5}v5{9{XQc|%2i~%nj>m`yzb<) zyvXXh+)1Z&(tNKrh)77Xg%7<^|E%nC6BY0lvmTZR(trO6}((1@8>$d*YqTZ44kDK!UwXt zqV*+DeTddy=iTmthLGQT;kEO%BH`J(O54!zIvJhkPug0oK=sc0L&2+&!gGHlFa3AntKY{7xPr`9!z)+?f^fYCXM6E=D;|tn-B3^DtLtvHxr~{w zjKRm-?C$D3!Mm=Yu^rZ(r_;%5oM#wgFT-+Ob7w=AJCN2Gt=}k4ok7K&?2j(cbqniG z^#$^{fxWfFyhXlkH!gn40(X;2%z(n%jpfDq0-nymRjHnqH&4VJvTo%KnT0S2n@W z*>tXK$(#BAmfqv3T_SHQy++q9dK}|Bmf(L??|iI2ws>|(awU^P-lFY*T!!IS()m0^ zvdNRzn7LeAUH5_4yef z?LGZx`rRcO$!EwRbnz*;ejz%$f zv|kDfM|t8IA3|&NFlLT;Ic=i8OX($4iBHBpq5r@#w6PObL-t{%pJBbFZdDfo(I|V$ z{aU;}PKLWvH-7>eO4D+`=ye1}cci^Ez9H|aOSMD-tNAA5%7S>=>(gj0ug(3?FeI77 z$tgPcZ}a{)LR6<3gYca&du($-Uf4Q>(n$`{h&oiiI8w-7fw}?1? zAU)!VVOe2K>=fFE<|bq1+tuOlQ=Xg1hy0ccq?bG!+0*BL59~K97e{ zNO?T>%g4;{MA5PzcVTrUlWTQEUx#Epucxo&Aun~GjO}x1o=>U#2U0&Sxq1pLz}6M$3Ps7c);Bc8!f~qwXWE8GH^=^g`&r z^!0LQc|krh$Yw&a_xRZ_UzRsL3w=i+Mf~M$u7`y_J3o;w@_;?L_C)AGF56Crp~y@Y zM@77P%rmkr@~U$erq}8($bx!&RhJdshs?mm4I<{n~833^+oe%G_% z{i24{sfO;%)hF`a^aGx4dy?Cr>S42uS4g?lpiV?d3#{RL=)5~*jGh)Leh0PTBR*b! zA4MtdmH*wit!##0ZfYtdXVQ&&oCz*mMH$%~79Y2hOvkqx-51Lb^YuQz7}lf?^qQO! zMpNX<|1Ak0j_f`V-e`P4#(jChEDxLVkD1sb%?!ImzUE~4Srl|iGgf{Etww>{mto|; zBaM=84qMRnVLX3}E%X}P9QVDQ=gQxQ^hkJyhnuznezXt zkK0rWQ~67Bn1+-kD2|!^esh#>8Cg6K&t_$&^va9Htm3PUY#-B3R)vmdBYRKZta@fQ zQ=~te{|AbDw2Jxf@59F1{8m`h6e~Ixm8rz`!t0v>4H|y?rAiO-0*5o6X!Pqcl^%%) z7q0VMPmyL(lieK>uj}erwmDPYHr|4MUbMh`MyR+F~j>gY4%h^OTMR> zmmN1lX_LbY+D@w~z+&S&S7~7ry@dx}Om~@ezrcG(<`p@~6mB0gn|N6MaYSumj%;sT zpN*5z97*=_d>O~la&FbX#y=d>)4g(+McIDz+RI0v=O`_8%_A1WH@kA$?=Jluh23|2 z-jA=%>gG{~7xw8Zx zS5Ra7CS8KJECj02(FXrYQ zxc+|rC%nv&+rzxYSLxtEJj_DCQo1@&U7yZ78y@yoPuF$&m~s9ux!eKIqN?5_`+1q& ziA1u3D``WSs$jv$3y{he#xjb@-1~gJqnjI>3FqN zhv#1QWMH!3#?nJ$dFGJTDw10Gk8m}WUo}pLEMKIXj*7sW`U=k(Re%mHEs%OGGf}^S z+i{&7fTlhUg7b)!+QCfZrgvt!9t0)Xj*Q6M|3~PVroRC{eb(omD1VV;=c+z!@rtgU z($;OVzK+7xnBTC8 zg0EB6V!4StJG6bS7Wd^R;d7H}(Pr9hk?IKjY*9CzfDh>5pF8;to?#+wjJ!Iy*59(x zf5JC~ZbD1@%SXc#8*995GD}+^$=xDvS3W+FU+pX(ZaCVP+SMxDznxzd`PIk8-!t_l zz1_$PUaKyfBfciv9*vn-P50HXiOFxvI-(BKcQ0t(B4(*el6@!LMyju}JaZS>^%#o@ zE$&DEY3;6{nRaEN1D3Q|90__SqMm3T6Z8Bf2staqE3{I~>RYtgtGb@+lgO!jLTuY? z9&84!#hE~9-GMf0KG!2pfuwyvXQY(eHI-58LpY%rC_JK#xoE<;|ok zh}3i=o~)WhcdE$8M#-`pIxZjA|Ji(rrJYstU4|U+rbxce=X{-sE+)MoWXz&4D zZ)G-)w(U{X(tbMcMaPTq@e%%y-BjE3+0Dn~5=JQ-VZX5Lm>FGwg30s=`AXF67_%08 zWV>B)K@B4I}v?rg;cbfOKNV3NlEbDn1Juex#?J+YRcHAMc=yipxch)zkkxZj? z1+}wm@NRtdRRP9$9(<(F=6g_G+}lozmwC#_TtA_Yx5=t&E)p63YODsreql4BSyTb@ z`LH~iS%Jj)d>5Jim2rbEnR@xO2-h*2Um)M0r=+>mPgj$;yo66#pwVQVE9L+@(=Bmb zUk8oid2_ax`Q%O=RoL(jQRSb>-{vvRJn^+R?W|vuO{DUlQQ5%sc&?Zy z4#dDqjnpUoOe&P&-;P+3={9-SOnR*GuN@L$Q}Xkh#EFQHH|Ghmnyyey?sGEZ9XPs_ z_pirUQNM4T-^RlZXc=1Z>7(tdtT8I`MPDgDm8a_eB6md&(J6gHYTf&z{J)plc&|l%pMQ@MeYtCPtx%tG=2tm132$MpR724(KQ(}N+#32 zVbjgZ&U1brj4T7^Gj%((YPJ&k{5#_uP?uUZ>l|d6gJ+%$$pqCnoj3L&tq<$3OSch; z=ZrlgYa%mpnXe~(i%8psII*0*p3D0^Gh6-yk3TfRA=JZKBXiXOc}6F9<$ZPfV&YZU z@jTCPkkuV4FXDU7NRfN=WsBxkWcpx9#zqxn&Jfr4Wis=z8f)x+j@9WOXeGm;y(!$! zngh`W3T4Y?4=oy+m$!AxkIi6yU(Da4-59$Ms#FbG^IQ&VjvD3zHLa<3U94Z^!CotC zRUgkg&2rZ2Q4}PchP17Xp@2_BeN-og=|g^Z(>-#+At`G_dA#W~_HJ|6{YMu{^=ZkpL6_d~9 zL0U?`D9@-){el<5prmPRGA#hG|`gmx#FEEjRKpv5HsY#2$s*mDQfW^M~1! z%(gmJeoXR5$)nf!@wsZ&{f@a|cuzW@qls8Q#>LTeUdA+3XSgggqgVRfp6tjViPiM6 z`d8Ixx+GC(^;VhwJL1L5;mL6nGm(q@Eu2Bic)bTF$(^8B$PAIsLb%DCtjR(pyEt7Ra@ z7KyA_#Tp>ot>EM>v)pI$JQ_yAHlZXc)RBk%qr9b6{Xl#99Sa^cPprlBn1M{yQxMnE z>Pa%Woit*8u{X<;+3p$Af2AB}VYiFci@8O%O^qynPwVxZDzfXQy2-*+q*>`jnRp`e z-_TDdq6RJ(>ucHUR`)lA4yrwojiy-nnn;@gl=ozJsjR8Qj;l*{Nsce{Gisu39wk;v zu4?MJqv=;jr~@PS`T2I_C7yf@MW^%IxQx8vU0K*U$ZzRmqTIqxNAn&wy;vP}Riw;D z<%iXh$?3Q_wU=DZl6Q+#+w#r{GKqYIMdhdcPI(T0*FwWk#frVin+UpZ!4$rOCO-ThJ}**bqo5M`LVjm_?GNj>$^N_$+kNJ8L4Oe($k-_@pDsN~;#_Gccqk7!pZO!AFnSd-<>(exU$}{p^+{UV}wI4oluQ~5F z6oo`-4Zer0Ddt=|aQNZK8=|P5wb7jB#%Uw{UFVJeKc*u-H`W8^msKN*rF+G(`G?Y zwR=NM3`De5l6aHwH+Dl7RiGnhM6f5TUb zHT5-QdKN;XE>zO>sI-2|%GHBB^*X=)ma%2d`Wj~9S|&Q&$UFY>F0A>>^-)>S-h zi|0Qmm)IiG^>TRM4vF@m=?5?n7zv+yqa9CX2E1I~x2m?-3f@;fY&32^IEO zEYtp&jI)*J@ik4CEu%y{4-YlVKVH!5HX6B)=k6NkOlTy%TpcTaD?2;G_C~^*Rcmf? z|6Ns>3AnRP$Xkx0FQOy=M+etg?HRL9S|ELitu1=mOdR&3HWv9()K!-B)seM#`K)b5 zdIx^z^3!J3%P2ByLw8?Z5q8=&n?0vZ=%sJ0PSq-Rg=Zx5?X2rPE#_EQ%g9^I2`9_u zVqMtvh8f9}`0Hy$?Z|%KMZ@iJ)Py#N6Kk? zN&2ahU2WtLCuzg#G8v4EKAu6(2pf+qBI!-VgAXvAQRn45`|-(R^Q4RAM^=|Q=3Hlt z^_n)f$faMW5wifT!auZSt6kZV-A#BotLB>nVO9%9^{Bq0%|z@oR0a96{6mJy)sf*0Fr76CB zW8>A<*utn?I=l4zhOB&BV}l!vd4r7byxHlcyb-6D$`$=>RjnEqFW$H2bU|NLihL$U z9F?POu+F=be+lIm%!OY!cizpqVtqU0sPcl3MSMlYpqK!dEwG+gQ}5HrD|EwCvyC-) zJss5{KCq<o+D{rc?2cu*-o@|s+P-oU9YVz~^R+4u zBL({4WZdqIGb%1iYHs7vbG0Dm@*-&m?Tx1Q^}8N1qn@%MP>v&&VNq)m9&4B?^0pOr zQ1Fj8p2x~7E=6)a!Txmq*qoYXZ#L$;K1DpbE_dzcyricZcN^K*YbEw8#`?q}Z!@pY z9_k}oe<9BiauyA#{4=Dc{QcA~A9pWm4bx)7PMD5-?Kx}7 zV|eRY&5Swc9pr5Go^Hhe>9OFC(|R-0k$cRer*DRTm^K?8MT=uWi_!T{KHS=+RIW^{ma zZ#<%Cu^L{`sU zCFU#|A@Z-VL74UPX!!^!M}C}moHb(&t*IxqVHqSItorj0i)lLI6OO{u+tF*3*f%m` z=C@iOuqs1h(WjVff1gbJRaO-HS=b*wQES|e+Tebl*Yr6dYY1A0d0*tP(E@#AKFz?D z-qop&26ka%ig&mx&l&x!jHu>CTkeIN0vpXNG0)4tN#7Y5b!+1%Jk6wM(Y~sWALd?T zC2A$6I@hwZ2TIEnj1Yvc4k! zNLG$ck#Ad{L)9UEB&wkG2{>SjTJ%scTi3a3CrC$3IF|O|G*+#T;Ca&Zuwi)3G6)tu zM}C(}AHI|8eG=%QI@WhSq|b?Fb!U;3c3X{Efc)@B@^iB2v*A9fP(})*+I)+-K+$4Z z+=Hx$hoaOoa4@AFIauf46ECok1AZ^qsc!~K`qoLwZp{w)9+XA|p0sCdeV=}eUCLZu z!}|vkLhmdpJLU)Bd3JfOg{NYlO8kq}+PBFkB!yeO8ymG#&6>sYxEOCR!Pkg{^K}Pe zMsYBuukr9X>a!@Y@97Tm>&c!TM1x90eIR#ZzbY9TSBn;k7WG`}H(B=eRm?@LpjKN+ zvuOM4>}g5+&2o~)H$qSB=8YI<4-vUNM(S-X@WxZ~iRPjAHCUK~xK7wuNvMsAO&<%ixzgB%U6&_Ncp#o1G|Ym-Xr)bVfQI(tZ|3 ztyRm;r}Bu%GgIcuz132*L1CvHYP>6Z%12}t;Y%YfJqtroLoU#IT>U_5Xpcx#Q{b%nLYX2jpohH%Ey~k&NFE)9g)vQ9c-@QzTmrs z(;*D)Z7ko4kNV519)FcL*B7rfw6by>emiV%k-dfnYF4H49=3raYhpOC^Ge3hMV-FN zXDiM07I9!mS|{x+gTaVhZde78KP==P3t91bxsg`nPKUx<%}^L8ms!O;3-~gjlTN%j(Q2AA~FY} z@RFu#s5k1*o3)#CW1@)~IUQ+Ls<^zIQT;Q5xrt4rmqmP~=r7MWWa% zc|e@(k;6*U{}g0S`A>~QUnTeb=G$EvSi5M)?7=ya7iIbT^h3kt)rgU1!6zEsh7?&N z8+Zz4ryye1$boSPD*N-#c$AVJt3;M+w2_GUxz(LGD>Wp|PW=UPoK3$$ zo89!caRuIQ$8jh0R=(L>F)QZlznE2}S@SAR?-EZo!%$$mkM8i@>Xwk)Nsp9Kb@2re zxEZU1+ew*by>zR_Cpyxz(O_ax_{Z)1YJfGE>=qfb* z54j(5a(ZAJWQA_05pUL|&**{b+Oir18q05+kXMOtQ-sDeF zRe+T5n=wr_v3pahw6(>_VhA6JwUpBmHvVK$*~I~EbjzbR^gz-i_?+&%!i~Gc;KP9LSi|dY8$6C z=!kLWjT;d+_7@BzI}(#mJ{oyAd=G`1? zMn*!}uxcKimy`lw>R^t52+aDZ-~g`i2&!EfjS=S5HRB4&(x*gh%zrf++yp~L9kifXRD zPN+ZgOHTa89@~M;deRdeHWfDAX?p15_FvI%>}-OylMktP zG`#S<#V0F3q}nqhZU?UrdC-$f)wg2={_}U;okf!!9i&mv|CsT5dK>zBd-(70YE@K6 z#0704;|Xh?G;^q7%_#KRV|iLORN2`ihM%>`-d?r?ZKI_mj; zm@nBciwH?|aM!j6WD+NHv~-8FRPtK0;njLidaZ)=&?PyJrN_wab~MIQ(|Q|FjGACuZO5Z*6PI;`t!8UxvOnAbW!(2A2;~E&(w8RXDZG91-&n*WzW^8n<|IsnR|Q=og3{jQt#07 z-*_VST}+afDBsMBJ25YAGLhbTuX>-SiI7m>>!tK}rUHThe$$_A`(JPSR`aAzI+;^i{sl;J-(3K8fbDEaM@x znN6qPuKOruw{&j5iZ*?*^>gGVn}LAeHPRw3KHu0vO;TOdvK;(6m6LzyCn~HahNY?9 zroYa8GsA~SDH)+v&7%3RwU21Ekw=U1SMj?<+g zm!4lD!_`2iyG3SD_>(bJ?Zc$d)n|#wC$DN5b)h5b;*~*4y)HP4aSR4H3@Gz6KF$xh8H#&JYdhH*Smz#U*H!4A|t9pNzqyx7Dny}h# z6{u(YqD9P27n-)?Ok@QO_+K~_9a77OF z6gn);;TYFCRtEJ+iW1`4^tvqAIss z@iVl%ocD)q>$w-b`ge^z39>Y@b5bPFh0a3Gaa zsxyRyV+O1}ZFc38>bzw29M2x-!n%CQPH|f#K|c)BVb2aob3;^yzu4IL4$?4g$weRb zsCe?X(DVuWIYUn0rMaHpFUmgN)9(|mPOA$ZB$1)#I{uByX~~}srb(dNJXcqq)jxC@ zZ_11_cJIvdUsDiC2i8Or`L&99k0-bDWg-DP?%{5p414xUtgr@oOxS2d%;29q*D-W} zgv>)!u_t-h#}dpKd(qte%S{gx(GIrz#u{~{12M(gUyFr)3Z(*+IltnJ(EvWx4_=xZVJanvU@JXfEYbC<@&~t{nA?miY6Trs{ga`qU%}ik|M)T3j{HjM%x*tZww{ zYa1D_^FV)QR0FN2i}PN5R?MxZaw7*;FlQ_=M)f+hOv1167(L`WtAz+tUkr`%Mzpcm5o? z_R}MN{zLSaf96R#&;R7!4C(jEvUyXj_o=!=uaK4lT`&?D^z4Ji`Ss!r9&AFc3or9k z9}-9EtIgx5U{p*tYWUZVyX+J1J@K5^=QnyNe##xffW|{` z#*8bs4#~~Xq&%_l!X0alD?zbdJFdwt8u~~c1wGHyXg9;pf&N%2{RWIrm5&MTK>Mq9!&$Y`Vmd#e?eqSd%87PViRF_E zdcP-f;2fTnlw`AWXyUo`7W=YGXxHaQ;Beq~S1IJEu}-Sbe~B+qx#8nWp8FQ6JD!*ljRt%@%*Jex=I2m#LyBEd(T)ew z^AR@wxyE}QM8{Cy?WWTGU`k@l&H6nhXDP<9+r+-#$l|^yQ}5w;i45oXj~0&>o^MXQ z%TAq~%I8!9`YMF?`)to9gwEQRJL$xIJ1_xZA;X%_lI?q zUsK6D2H%aIpIM=c`up7`eHVc)(;8ZX8;fkGBJ z>*uE$6h>ydQq9&|wVh!#R=FAsPk0yHo*etH{=O>Z6SUID%@6p#Vg-6f{$%5|PT{4; z+xKW}uBe}y^`SQJLOG6dzy4Gn(44h;JG$X_*aV56{+7Ejr!=3`}xU+If0HTG?h6`wbP4zrc6p3P)q70}9H%m{x0q0{*#yGVD7Uy+FkhN>h@CJId#QT*TH#kn(*J5RlPMZ~&N{gr73|v{1b3XvB*!-VIF|}B?RdA3 zdQRvqPLp;^%t5XgKln)UEB(=M%rEBchi$nt<@vz$ukudz5}w%eb4lB z*yJs~nMbqUBz{{5&eK{9@II0D(ukd%X$5ZR-zrC{FIHP?-VfGDiYNH2{BgdSTRV*@ zI_#C@kx9cv(bolb5MHkDoh>k<5)-qomGa}}_blF8zK8Bxo@2o@-qm*-2DHQ>e=oCB z*@#tp)Hb%Ax;Xv6X*Skm#dNJ^$Z99)stLeUMCXqER4bYP!dGG6u@AqkiXL9b4&m_2 z=o+y)@_m(|z3k&eR8_)eSVEkHaQ@P1gCQ%vD1Veuqpp{EY<$Hzkxun0{}z(u!&LeQ zdTj;j<){n#zLU@6Khmot)g`aujy0FYpEyB?k`H@k)|e$$lXEw+u&Ts&ZP+8!sw;Tb zEGulTI!;P$cYE?YxKk%MhQFDZdw6Jw_SgB&v#Ce!{oD$@!|t6tU7U94lO+$ODm5Cr zI%spqWx^R5Ihw_BGQrcwGh(rAnPjSX#PT%$N|@n7K+S0fw2#iS8#G(Ml&$c#qh zD;pZ=_VOGqA_JUvkN)hwV<-8zxrrk z59019`$?bQ^QZ@SRclo$*$dIUKY|!n*?N9d;Clc5cKS4Ul7(=bDGo-Jxk$ z0}sXSfJN-5$l=%QjcQxPEkPSEW48uxv%&W@+-!rH^J+-b{dpR)egL zk&)p4B$@Bvr7!5Q(sIS9xyF4hWU z8{P}xbdI=r1}!VOOAa^LlP1p7{Wf#1fqm=4sO0H|ojc7DS;=Iw`^sqDh)J>YkdIln zYf>kJKAZSF{1i04h|hlRr(MvqhrZwT{wUr%$5}~rMsac~bwwe#e(5@5lW}*}qm|m5+S*pvdi14|!3PXHxgqb3XN*51juyV1?U8@@ zG&vKA9S(0HqhZT3*m$RLKeIvoMbve22X@72dk6a>>rcx2EOW|dI84)iPpgI|w8j~Y zw~Rc6y2um)S4Ew9P%lHliY(NF?7Y`#cr^HHYb5thZU zv>j+z0@sPkyWrw8thCA~eXo)qyw&X1K2;tn2esiZ)?~(~pw`>&TzN0Jh52~5!AiW} z5nW?-uHMluD2%h1aUyC|J)|%HdzS^jqn^6~9j~HugELv)o5By1m@#>Bb<`nLcaoj? zvHxAAw~$tNfFb0M)kD9p4Xqk~!du$zF!CFG%&l=npH7C!=h;Y8E3(!jzOvr(rn8T2 zD?P7!E_UN~#no3M7i(nxX5%->$L@4*X(QFX-sAm_+v)6N_#4s_n~hZLSS?m^CP;Va zWuaqrD9_HB`zk<{!%W|==1TXx2K7Gwa?^Qzb$KJ)58FS|NtSM;*JL?Du? z;Akvgb~bTiXgoNzORkl+)MNIakEM4CjHK8zFtl56*}EdQ8u?8-3nEAKb`13Msx%b4 zjyIqQ<{H_ohKDB0cJnTXSi2bJ0wNZwApmj=? zw2Qs>QQBce@}{7GU5qwyFg(O{jgNRW-B`WsyucfI{cVczUca5*nBcwK+6K;fU+*7j z)v95TmP9YrS-r)XjGgv4#(A@gENBnW_en6&@|F`=FMHpEXN}jUjnK#`Ct(YZ|Eka1 zV$GygAo>Kr*_L}xt(;p`-#3U`nE|9euhuG7jhOS~9elh> zmhqP*HiX6 z;0+-m$vBhk&S@uMyraiwC)pr=vlEgbSkkYi}S1KYFjVI zjef@>-nzQt-0JJ7vqwU2n?ly!ITu{NVWo6i(|)t_h;d44bL_4O*?H$|#D}n z@T@s7Cg;NU7*923C0!0IV?FO33ULOBRYzNKZmn#ut|A$O!0(#(<&GOG;#iyj-2z|U zBu(b0$?0;5Ogi?;oU!XWXhH*ggLmOATL_$ejhoRaP7{jPMg&G@R3*JM74J{uyq@ zXgfT+tU?xhJwFgxNc^>vuw1^yH*d2drQq}(?a!)?#k+sJFBQ$+@1V2I&fBcIN=7VU z94Bk4Hs?_S`K&GajBI0j{k}K4UL8-6MZBB(6i*vD(+x&G?>}?ippLJN6OzuZHW7~| zpl3JD#M{5D0OL344LgoEFK^;gw(z~%>v7f7h!H%iymu>4a2|E<#~BA&Iv0^f*(FKkm3;Keqt8f_}r3HDLd6Aav zp+HMZTzHp9jyE;P7-Ssh&78@eosZ-Tz+$JOBsaRD+$*8l4Fsz`~(UlY@6~{^E zvRw?Kc-4)cBIgJmLr2%}3f@>{^s9`!MjsI;$HTEVUOV0pg*UA)7&qI&UqPgnFuf_R zkW;0qJ&O7w!wBR@?o(taX6fE86_h6!9^tRUj)P8bHfg-h&`4W&bDcKmf7i+MD#k_c zIJ=IP@s4MIx2K`66=*X~ctmd=fsYXyx)S`L&lz_f{hW9n`NO*``#RWl>LBu_=K0WU z$ffeu0(Oa_6*R{?=pon`mnw5O`is9Fw8q11&;yQm##VSryl#O4T7sIm z9@q`aFB!Y?@1py$S}7jT$SBJBuxJ-;f(uvA`xkzF4c{Yjg$qUwzr^RG&MH&jCUoU1 zoVpwH)Of3H&>whLB}U1JKGq{r)Ey$`#9Qwp61d?zUHjkrbmea!1@GQN5~pG}Hau74 zB0}(u#dEAW^a+2PU@mDRN(N^n`hKIsIQJ>X6D!FnIP}K(VC=FO<_gNaqZqg6LRLn* z9OLLKJL@Y`pv5?oO!8(?p2Wv^coH_mKgF(b@w0hf20F(opJf*?>AWh+MX^ot%9y#x zaO!x|!DV(@T(ODj&G+ykI{x@V104m3Lkx~92>Qf{16ttbq zSL%3=wfBc)=Z~8_lCKFnfSZViS7b6_XQRA9VA$WaK-;?Aw@D;46VW#ODVZ55BvAMx zS`HsnyaT$i?2Y6SK7bWfBdA!V+YqaFEQVBke2)j)+|&y;n6F&679TMt#&|D$C>v4# zr_*)2Y5tyobH_t9!ZFXA9qCDISR+W0vmM?Nxwn|RXO5}ga@-x@ta zf}X=a6wieWE_z?WIIDpln%n@}x z@hou6_l?ZEiCHj8l+J~OeP`CZ{`b5>FERJI0`qZ4)Z#nBo2^E#am^@^!Ch`ztjc9J z;E3mIo{N~oBg<&aOi7o6Z9GjxY93w7m;vCmv8(VwG7WwCiLUU7nQV~jdss1fTP3NR zeCTrH`y&I(2v4~bLb z@&U~sOACu0aX~&}{41{dRBZ}x2m9Ar11`6g~m9aM85p{X=$o zU(-JF$txrhJO~i*Q8oFT-=r9SVJ##XR>X5Pt>vra&~WbkvYU)n86*BC+ekfPWPgn< zo~o{hg(&;Lo1)&`i1LBMK*f5WF$OIec@wOl1U>8a-S|?xhQ`Cwdk!9AwiNb`vcP_5 zf~1MI!BnPGkB472N}w>Z(Sjm`1^OGj1-J423T}h`u#n3v-+S-%9W_-He1IWw!Y6mx JEp945|6g(9vHt)7 literal 0 HcmV?d00001 From a738a46a3521ac7421a41f6603bc4ad4493a3608 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Wed, 9 Jan 2013 17:08:23 +0100 Subject: [PATCH 0448/1150] =?UTF-8?q?Modification=20pour=20n'afficher=20qu?= =?UTF-8?q?e=20les=20fichiers=20.txt=20=E0=20la=20racine=20de=20Gepi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- a_lire.php | 40 ++++++++++++++++++++++------------------ 1 file changed, 22 insertions(+), 18 deletions(-) diff --git a/a_lire.php b/a_lire.php index 0140d47b9..0dbb1db4b 100644 --- a/a_lire.php +++ b/a_lire.php @@ -83,24 +83,28 @@ echo "
      \n"; -if (isset($_GET['fichier'])) { - echo "

      "; - echo "
      "; - echo "Fichier ".$_GET['fichier']; - echo "
      "; - echo "
      "; - echo "
      "; - $f=fopen($_GET['fichier'],"r"); - while(!feof($f)) { - echo htmlspecialchars(fgets($f))."
      "; - } - fclose($f); - echo "
      "; - echo "
      "; - echo "
      "; - echo "Retour en haut de page"; - echo "
      "; - echo "
      "; +if (isset($_GET['fichier']) && is_file($_GET['fichier'])) { + $pathinfo_fichier=pathinfo($_GET['fichier']); + // on affiche que les fichiers .txt du dossier courant + if (is_file($pathinfo_fichier['basename']) && isset($pathinfo_fichier['extension']) && strtolower($pathinfo_fichier['extension'])=="txt") { + echo "
      "; + echo "
      "; + echo "Fichier ".$pathinfo_fichier['basename']; + echo "
      "; + echo "
      "; + echo "
      "; + $f=fopen($pathinfo_fichier['basename'],"r"); + while(!feof($f)) { + echo htmlspecialchars(fgets($f))."
      "; + } + fclose($f); + echo "
      "; + echo "
      "; + echo "
      "; + echo "Retour en haut de page"; + echo "
      "; + echo "
      "; + } } require("lib/footer.inc.php"); ?> From 9e0b31d79b5f01b50f8401650276cf72703aa5a6 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Wed, 9 Jan 2013 17:52:15 +0100 Subject: [PATCH 0449/1150] Correctif : $db_nopersist est globale --- lib/Session.class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Session.class.php b/lib/Session.class.php index 9f987c4e5..e6652ce38 100644 --- a/lib/Session.class.php +++ b/lib/Session.class.php @@ -1022,7 +1022,7 @@ private function authenticate_lcs() { // A ce stade, l'utilisateur est authentifié // Etablir à nouveau la connexion à la base - if (isset($db_nopersist) && !$db_nopersist) + if (isset($GLOBALS['db_nopersist']) && !$GLOBALS['db_nopersist']) $db_c = mysql_pconnect($dbHost, $dbUser, $dbPass); else $db_c = mysql_connect($dbHost, $dbUser, $dbPass); From dd817ea852d424f984ec69ed8ebaa3eb8bde4a4b Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 18:48:52 +0100 Subject: [PATCH 0450/1150] Modifications dev->1.6.2 --- INSTALL.txt | 3 +-- MAJ.TXT | 3 +-- README.txt | 2 +- changelog.txt | 2 +- lib/global.inc.php | 2 +- sql/data_gepi.sql | 2 +- utilitaires/maj.php | 4 ++-- utilitaires/maj.sh | 7 +++---- 8 files changed, 11 insertions(+), 14 deletions(-) diff --git a/INSTALL.txt b/INSTALL.txt index 1f2104570..2a347aa2b 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,8 +1,7 @@ GEPI-1.6.2 -- Procédure d'installation ========================================== -Version de développement: NE PAS INSTALLER EN PRODUCTION ! -La branche stable actuelle est la 1.6.1 +La version 1.6.2 est la branche stable actuelle **************************************************** Installation - Etape 0 : téléchargement de l'archive diff --git a/MAJ.TXT b/MAJ.TXT index c1bcc882f..14a916d43 100644 --- a/MAJ.TXT +++ b/MAJ.TXT @@ -1,8 +1,7 @@ GEPI-1.6.2 -- Procédure de mise à jour ========================================== -Version de développement: NE PAS INSTALLER EN PRODUCTION ! -La branche stable actuelle est la 1.6.1 +La version 1.6.2 est la branche stable actuelle ************* Mise en garde diff --git a/README.txt b/README.txt index 40b8fbf57..9fa10888b 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -GEPI-1.6.1 +GEPI-1.6.2 ============== Eric ABGRALL diff --git a/changelog.txt b/changelog.txt index 13e2c23b3..f84d786b1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,7 +3,7 @@ |= CHANGELOG GEPI =| |==================| -Gepi-1.6.2 (Version de développement) +Gepi-1.6.2 =========================== Librairies : - HTMLPurifier : màj en 4.4.0 diff --git a/lib/global.inc.php b/lib/global.inc.php index 38de73a78..13451a422 100644 --- a/lib/global.inc.php +++ b/lib/global.inc.php @@ -152,7 +152,7 @@ //les trois variables suivantes vont être remplies par un script de build avec les données svn ou git //dans le cas ou les variables ne sont pas remplies (donc pas de script de build), on regarde dans header.inc et header_template.inc //si on peut obtenir des informations sur la version dans le répertoire .git -$gepiVersion = "master"; +$gepiVersion = "1.6.2"; $gepiSvnRev = ""; $gepiGitCommit = ""; $gepiGitBranch = ""; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 4cfdc9de5..005d6c7ad 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1,5 +1,5 @@ INSERT INTO utilisateurs SET login = 'ADMIN', nom = 'GEPI', prenom = 'Administrateur', civilite = 'M.', password = 'ab4f63f9ac65152575886860dde480a1', statut = 'administrateur', etat = 'actif', change_mdp = 'y', auth_mode = 'gepi'; -INSERT INTO setting VALUES ('version', 'trunk'); +INSERT INTO setting VALUES ('version', '1.6.2'); INSERT INTO setting VALUES ('versionRc', ''); INSERT INTO setting VALUES ('versionBeta', ''); INSERT INTO setting VALUES ('sessionMaxLength', '30'); diff --git a/utilitaires/maj.php b/utilitaires/maj.php index 7c6a7263c..d082461a0 100644 --- a/utilitaires/maj.php +++ b/utilitaires/maj.php @@ -245,8 +245,8 @@ } if (($force_maj == 'yes') or (quelle_maj("1.6.2"))) { - require 'updates/161_to_dev.inc.php'; - //require 'updates/161_to_162.inc.php'; + //require 'updates/161_to_dev.inc.php'; + require 'updates/161_to_162.inc.php'; } // Mise à jour du numéro de version diff --git a/utilitaires/maj.sh b/utilitaires/maj.sh index bebca9ea9..16cab8a61 100644 --- a/utilitaires/maj.sh +++ b/utilitaires/maj.sh @@ -15,13 +15,13 @@ if ($argc != 2) { $script_error = true; } else { // Premier argument (obligatoire, pour éviter les accidents) - if (isset($argv[1]) && in_array($argv[1], array('1.4.4','1.5.0','1.5.1','1.5.2','1.5.3','1.5.3.1','1.5.4','1.5.5','1.6.0','1.6.1','defaut','forcer'))) { + if (isset($argv[1]) && in_array($argv[1], array('1.4.4','1.5.0','1.5.1','1.5.2','1.5.3','1.5.3.1','1.5.4','1.5.5','1.6.0','1.6.1','1.6.2','defaut','forcer'))) { if ($argv[1] == 'forcer') { $force = true; } elseif($argv[1] == 'defaut'){ $start_from = $gepiSettings['version']; // Si la version actuelle est un trunk, on force une mise à jour complète. - if ($start_from == 'trunk') $force = true; + if (($start_from == 'trunk')||($start_from == 'master')) $force = true; } $start_from = $argv[1]; } else { @@ -147,8 +147,7 @@ Exemples d'utilisation : } if ($force || $start_from == '1.6.1') { - require './updates/161_to_dev.inc.php'; - + require './updates/161_to_162.inc.php'; } // Nettoyage pour envoyer le résultat dans la console From 6da8c2e49a7fab168a28125d2853f0d1c139ad3c Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 18:51:49 +0100 Subject: [PATCH 0451/1150] Modification 161_to_dev.inc.php -> 161_to_162.inc.php --- utilitaires/updates/{161_to_dev.inc.php => 161_to_162.inc.php} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename utilitaires/updates/{161_to_dev.inc.php => 161_to_162.inc.php} (99%) mode change 100644 => 100755 diff --git a/utilitaires/updates/161_to_dev.inc.php b/utilitaires/updates/161_to_162.inc.php old mode 100644 new mode 100755 similarity index 99% rename from utilitaires/updates/161_to_dev.inc.php rename to utilitaires/updates/161_to_162.inc.php index b17c902a9..31e45d0cb --- a/utilitaires/updates/161_to_dev.inc.php +++ b/utilitaires/updates/161_to_162.inc.php @@ -22,7 +22,7 @@ * @see msj_present() */ -$result .= "

      Mise à jour vers la version 1.6.2(dev) :

      "; +$result .= "

      Mise à jour vers la version 1.6.2 :

      "; $result .= " -> Ajout d'un champ 'tel_pers' à la table 'eleves'
      "; $test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM eleves LIKE 'tel_pers';")); From a85bf075e9122376b79669ce7c0c14fd031decea Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 19:18:49 +0100 Subject: [PATCH 0452/1150] =?UTF-8?q?Adaptation=20apr=C3=A8s=20l'ajout=20d?= =?UTF-8?q?e=20la=20branche=201.6.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- INSTALL.txt | 5 +- MAJ.TXT | 5 +- README.txt | 2 +- changelog.txt | 5 ++ lib/global.inc.php | 2 +- sql/data_gepi.sql | 2 +- utilitaires/maj.php | 6 ++- utilitaires/maj.sh | 6 ++- utilitaires/updates/162_to_dev.inc.php | 67 ++++++++++++++++++++++++++ 9 files changed, 91 insertions(+), 9 deletions(-) create mode 100755 utilitaires/updates/162_to_dev.inc.php diff --git a/INSTALL.txt b/INSTALL.txt index 2a347aa2b..ec7780ca7 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -1,7 +1,8 @@ -GEPI-1.6.2 -- Procédure d'installation +GEPI-master -- Procédure d'installation ========================================== -La version 1.6.2 est la branche stable actuelle +Version de développement: NE PAS INSTALLER EN PRODUCTION ! +La branche stable actuelle est la 1.6.2 **************************************************** Installation - Etape 0 : téléchargement de l'archive diff --git a/MAJ.TXT b/MAJ.TXT index 14a916d43..ab1fce299 100644 --- a/MAJ.TXT +++ b/MAJ.TXT @@ -1,7 +1,8 @@ -GEPI-1.6.2 -- Procédure de mise à jour +GEPI-master -- Procédure de mise à jour ========================================== -La version 1.6.2 est la branche stable actuelle +Version de développement: NE PAS INSTALLER EN PRODUCTION ! +La branche stable actuelle est la 1.6.2 ************* Mise en garde diff --git a/README.txt b/README.txt index 9fa10888b..a0f9a57b1 100644 --- a/README.txt +++ b/README.txt @@ -1,4 +1,4 @@ -GEPI-1.6.2 +GEPI-master (version de développement) ============== Eric ABGRALL diff --git a/changelog.txt b/changelog.txt index f84d786b1..e3efb64ab 100644 --- a/changelog.txt +++ b/changelog.txt @@ -3,6 +3,11 @@ |= CHANGELOG GEPI =| |==================| +Gepi-1.6.3 (Version de développement) +=========================== +- ... + + Gepi-1.6.2 =========================== Librairies : diff --git a/lib/global.inc.php b/lib/global.inc.php index 13451a422..38de73a78 100644 --- a/lib/global.inc.php +++ b/lib/global.inc.php @@ -152,7 +152,7 @@ //les trois variables suivantes vont être remplies par un script de build avec les données svn ou git //dans le cas ou les variables ne sont pas remplies (donc pas de script de build), on regarde dans header.inc et header_template.inc //si on peut obtenir des informations sur la version dans le répertoire .git -$gepiVersion = "1.6.2"; +$gepiVersion = "master"; $gepiSvnRev = ""; $gepiGitCommit = ""; $gepiGitBranch = ""; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 005d6c7ad..4cfdc9de5 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1,5 +1,5 @@ INSERT INTO utilisateurs SET login = 'ADMIN', nom = 'GEPI', prenom = 'Administrateur', civilite = 'M.', password = 'ab4f63f9ac65152575886860dde480a1', statut = 'administrateur', etat = 'actif', change_mdp = 'y', auth_mode = 'gepi'; -INSERT INTO setting VALUES ('version', '1.6.2'); +INSERT INTO setting VALUES ('version', 'trunk'); INSERT INTO setting VALUES ('versionRc', ''); INSERT INTO setting VALUES ('versionBeta', ''); INSERT INTO setting VALUES ('sessionMaxLength', '30'); diff --git a/utilitaires/maj.php b/utilitaires/maj.php index d082461a0..077fed589 100644 --- a/utilitaires/maj.php +++ b/utilitaires/maj.php @@ -245,10 +245,14 @@ } if (($force_maj == 'yes') or (quelle_maj("1.6.2"))) { - //require 'updates/161_to_dev.inc.php'; require 'updates/161_to_162.inc.php'; } + if (($force_maj == 'yes') or (quelle_maj("1.6.2"))) { + require 'updates/162_to_dev.inc.php'; + //require 'updates/162_to_163.inc.php'; + } + // Mise à jour du numéro de version saveSetting("version", $gepiVersion); saveSetting("versionRc", $gepiRcVersion); diff --git a/utilitaires/maj.sh b/utilitaires/maj.sh index 16cab8a61..6d86188d3 100644 --- a/utilitaires/maj.sh +++ b/utilitaires/maj.sh @@ -143,13 +143,17 @@ Exemples d'utilisation : if ($force || $start_from == '1.6.0') { require './updates/160_to_161.inc.php'; - } if ($force || $start_from == '1.6.1') { require './updates/161_to_162.inc.php'; } + if ($force || $start_from == '1.6.2') { + require './updates/162_to_dev.inc.php'; + + } + // Nettoyage pour envoyer le résultat dans la console $result = str_replace('
      ',"\n",$result); $result = str_replace('
      ',"\n",$result); diff --git a/utilitaires/updates/162_to_dev.inc.php b/utilitaires/updates/162_to_dev.inc.php new file mode 100755 index 000000000..feca4e284 --- /dev/null +++ b/utilitaires/updates/162_to_dev.inc.php @@ -0,0 +1,67 @@ +Mise à jour vers la version 1.6.3(dev) :"; + +/* +// Section d'exemple + +$result .= " -> Ajout d'un champ 'tel_pers' à la table 'eleves'
      "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM eleves LIKE 'tel_pers';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE eleves ADD tel_pers varchar(255) NOT NULL default '';"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + +$result .= "
      "; +$result .= "Ajout d'une table 'droits_acces_fichiers' :
      "; +$test = sql_query1("SHOW TABLES LIKE 'droits_acces_fichiers'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS droits_acces_fichiers ( + id INT(11) unsigned NOT NULL auto_increment, + fichier VARCHAR( 255 ) NOT NULL , + identite VARCHAR( 255 ) NOT NULL , + type VARCHAR( 255 ) NOT NULL, + PRIMARY KEY ( id ) + ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} +*/ + + +$result .= "

      Mise à jour vers la version 1.6.3(dev) :

      "; +?> From 90ff041fb55430073b45b92ec6ccd053eebd579e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 19:29:39 +0100 Subject: [PATCH 0453/1150] =?UTF-8?q?Suppression=20d'une=20r=C3=A9f=C3=A9r?= =?UTF-8?q?ence=20=C3=A0=20dev?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilitaires/updates/161_to_162.inc.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utilitaires/updates/161_to_162.inc.php b/utilitaires/updates/161_to_162.inc.php index 31e45d0cb..de12ba748 100755 --- a/utilitaires/updates/161_to_162.inc.php +++ b/utilitaires/updates/161_to_162.inc.php @@ -402,5 +402,5 @@ $result .= msj_present("Le champ existe déjà"); } -$result .= "

      Mise à jour vers la version 1.6.2(dev) :

      "; +$result .= "

      Mise à jour vers la version 1.6.2 :

      "; ?> From b453628935edcf0adb9eb1602789aa2fcf97cd75 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 19:49:23 +0100 Subject: [PATCH 0454/1150] =?UTF-8?q?Suppression=20du=20doublon=20en=20bas?= =?UTF-8?q?=20de=20m=C3=A0j?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilitaires/updates/161_to_162.inc.php | 1 - 1 file changed, 1 deletion(-) diff --git a/utilitaires/updates/161_to_162.inc.php b/utilitaires/updates/161_to_162.inc.php index de12ba748..a85b42ef7 100755 --- a/utilitaires/updates/161_to_162.inc.php +++ b/utilitaires/updates/161_to_162.inc.php @@ -402,5 +402,4 @@ $result .= msj_present("Le champ existe déjà"); } -$result .= "

      Mise à jour vers la version 1.6.2 :

      "; ?> From 95bcbabae89cf4758a4b108106c8bcfdaf0e18a9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Jan 2013 19:51:00 +0100 Subject: [PATCH 0455/1150] =?UTF-8?q?Suppression=20du=20doublon=20en=20bas?= =?UTF-8?q?=20de=20m=C3=A0j?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilitaires/updates/162_to_dev.inc.php | 1 - 1 file changed, 1 deletion(-) diff --git a/utilitaires/updates/162_to_dev.inc.php b/utilitaires/updates/162_to_dev.inc.php index feca4e284..e1f3823fd 100755 --- a/utilitaires/updates/162_to_dev.inc.php +++ b/utilitaires/updates/162_to_dev.inc.php @@ -63,5 +63,4 @@ */ -$result .= "

      Mise à jour vers la version 1.6.3(dev) :

      "; ?> From 734b1dcc9b002d5decdd648f37412dda7c9cd7bf Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Mon, 14 Jan 2013 14:21:28 +0100 Subject: [PATCH 0456/1150] =?UTF-8?q?orm=20On=20renvoi=20la=20derni=C3=A8r?= =?UTF-8?q?e=20p=C3=A9riode=20par=20d=C3=A9faut=20quand=20aucune=20p=C3=A9?= =?UTF-8?q?riode=20n'est=20trouv=C3=A9e?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- orm/propel-build/classes/gepi/Classe.php | 8 +++++--- test/testsuite/orm/base/ClasseTest.php | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/orm/propel-build/classes/gepi/Classe.php b/orm/propel-build/classes/gepi/Classe.php index b70130fe2..c7ab40ba3 100644 --- a/orm/propel-build/classes/gepi/Classe.php +++ b/orm/propel-build/classes/gepi/Classe.php @@ -253,8 +253,8 @@ public function getPeriodeNoteOuverte() { * Retourne la periode de note correspondante à la date donnée en paramètre. * On regarde proritairement les dates de fin des périodes de notes, * puis les renseignements de l'edt. - * Si aucune période n'est trouvée on retourne la dernière période ouverte pour l'ordre chronologique, - * null sinon + * Si aucune période n'est trouvée on retourne la dernière période ouverte pour l'ordre de nommage, + * Si toujours aucune période n'est trouvée on renvoi null * * @return PeriodeNote $periode la periode de la date précisée, ou null si non trouvé */ @@ -309,7 +309,9 @@ public function getPeriodeNote($v = 'now') { } } - return null; + //si on a toujours aucune période, on renvoi la dernière période dans l'ordre des numéro, ou null si on ne trouve rien + $query = PeriodeNoteQuery::create(); + return $query->filterByIdClasse($this->getId())->orderByNumPeriode(Criteria::DESC)->findOne(); } /** diff --git a/test/testsuite/orm/base/ClasseTest.php b/test/testsuite/orm/base/ClasseTest.php index b4f4c5590..74bbd8dc3 100644 --- a/test/testsuite/orm/base/ClasseTest.php +++ b/test/testsuite/orm/base/ClasseTest.php @@ -23,7 +23,7 @@ public function testGetPeriodeNote() $this->assertEquals('2',$periode_col->getLast()->getNumPeriode()); $periode = $sixieme_A->getPeriodeNote('2009-12-01'); - $this->assertNull($periode,'à la date du 2009-12-01, il ne doit y avoir aucune période d assignée, donc on doit retourner null'); + $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2009-12-01, il doit y avoir la derniére période par défaut'); $periode = $sixieme_A->getPeriodeNote('2010-10-01'); $this->assertNotNull($periode,'à la date du 2010-10-01, il ne doit y avoir la première période d assignée, donc on doit retourner null'); @@ -34,7 +34,7 @@ public function testGetPeriodeNote() $this->assertEquals('2',$periode->getNumPeriode()); $periode = $sixieme_A->getPeriodeNote('2011-05-10'); - $this->assertNull($periode,'à la date du 2011-05-10, il ne doit y avoir la deuxième période d assignée meme si elle est terminée car c est la dernière période, donc on doit retourner null'); + $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2009-12-01, il doit y avoir la derniére période par défaut'); //on rajoute une autre période, dont la date de fin est non renseignée $periode_6A_3 = new PeriodeNote(); From 551d0cd911d4865d42b67046bbc3170417514394 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 15 Jan 2013 17:14:31 +0100 Subject: [PATCH 0457/1150] =?UTF-8?q?M=C3=A9morisation=20de=20la=20mati?= =?UTF-8?q?=C3=A8re=20n=C2=B01=20choisie=20pour=20un=20nouveau=20prof=20en?= =?UTF-8?q?=20cas=20d'erreur=20sur=20login=20ou=20mot=20de=20passe?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/modify_user.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/utilisateurs/modify_user.php b/utilisateurs/modify_user.php index dfe143d07..10f664cd8 100644 --- a/utilisateurs/modify_user.php +++ b/utilisateurs/modify_user.php @@ -514,6 +514,7 @@ // On appelle les informations de l'utilisateur pour les afficher : if (isset($user_login) and ($user_login!='')) { + $call_user_info = mysql_query("SELECT * FROM utilisateurs WHERE login='".$user_login."'"); $user_auth_mode = mysql_result($call_user_info, "0", "auth_mode"); $user_nom = mysql_result($call_user_info, "0", "nom"); @@ -574,6 +575,10 @@ if (isset($_POST['reg_statut'])) $user_statut = $_POST['reg_statut']; if (isset($_POST['reg_email'])) $user_email = $_POST['reg_email']; if (isset($_POST['reg_etat'])) $user_etat = $_POST['reg_etat']; + + if ((isset($_POST['matiere_0']))&&($_POST['matiere_0']!='')) { + $user_matiere[0]=$_POST['matiere_0']; + } } $themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; @@ -583,7 +588,7 @@ $titre_page = "Création/modification d'un personnel"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** - +//debug_var(); ?> \n"; +} echo "
      \n"; +echo "\n"; + +echo "
      \n"; +echo add_token_field(); echo "

      Classe : $nom_classe | Matière : ".htmlspecialchars("$matiere_nom ($matiere_nom_court)")."| Période : $nom_periode[$periode_num]

      \n"; echo ""; @@ -640,7 +711,7 @@ echo "
      \n"; echo "\n"; echo "\n"; echo "\n"; } @@ -648,7 +719,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -658,7 +729,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -666,7 +737,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -676,7 +747,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -694,7 +765,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -712,11 +783,11 @@ if(getSettingValue("note_autre_que_sur_referentiel")=="V") { echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; - echo "\n"; @@ -751,7 +822,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; } @@ -760,7 +831,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -780,7 +851,7 @@ echo "\n"; echo "\n"; + echo "\n"; + echo "
      EnseignementTravail à faireCompte-rendu de séanceTravail à faireCompte-rendu de séance
      ".$tab_grp[$tab_id_grp[$j]]['name']."
      ".$tab_grp[$tab_id_grp[$j]]['matiere']['nom_complet']."
      "; + echo "
      ".$tab_grp[$tab_id_grp[$j]]['name']."
      ".$tab_grp[$tab_id_grp[$j]]['matiere']['nom_complet']."
      "; $str=""; foreach ($tab_grp[$tab_id_grp[$j]]['profs']['users'] as $tmp_prof) { $str.=$tmp_prof["civilite"]." ".my_strtoupper($tmp_prof["nom"])." ".my_strtoupper(mb_substr($tmp_prof["prenom"],0,1)).", "; @@ -484,45 +522,61 @@ echo ""; //echo " $tab_id_grp[$j]"; echo "
      \n"; - if(isset($tab_dev[$tab_dates[$i]][$tab_id_grp[$j]])) { - //for($k=0;$k".$tab_dev[$tab_dates[$i]][$tab_id_grp[$j]][$k]['contenu']."\n"; - foreach($tab_dev[$tab_dates[$i]][$tab_id_grp[$j]] as $key => $value) { - echo "
      "; - - if($value['date_visibilite_eleve']!='0000-00-00 00:00:00') { - echo "
      Donné le ".formate_date($value['date_visibilite_eleve'])."
      \n"; - } - echo $value['contenu']; - $adj=affiche_docs_joints($value['id_ct'],"t"); - if($adj!='') { - echo "
      \n"; - echo $adj; + if($afficher_compte_rendus_seulement=='n') { + echo "
      \n"; + if(isset($tab_dev[$tab_dates[$i]][$tab_id_grp[$j]])) { + + /* + $chaine_travail_a_faire_futur.="
      \n"; + $chaine_travail_a_faire_futur.="

      "; + $chaine_travail_a_faire_futur.="".$tab_grp[$tab_id_grp[$j]]['name']."
      ".$tab_grp[$tab_id_grp[$j]]['matiere']['nom_complet']."
      \n"; + $chaine_travail_a_faire_futur.="".$str.""; + $chaine_travail_a_faire_futur.="

      "; + */ + + //for($k=0;$k".$tab_dev[$tab_dates[$i]][$tab_id_grp[$j]][$k]['contenu']."\n"; + foreach($tab_dev[$tab_dates[$i]][$tab_id_grp[$j]] as $key => $value) { + echo "
      "; + + if($value['date_visibilite_eleve']!='0000-00-00 00:00:00') { + echo "
      Donné le ".formate_date($value['date_visibilite_eleve'])."
      \n"; + //$chaine_travail_a_faire_futur.="Donné le ".formate_date($value['date_visibilite_eleve'])."
      "; + } + + echo $value['contenu']; + //$chaine_travail_a_faire_futur.=$value['contenu']; + $adj=affiche_docs_joints($value['id_ct'],"t"); + if($adj!='') { + echo "
      \n"; + echo $adj; + //$chaine_travail_a_faire_futur.=$adj."
      "; + echo "
      \n"; + } echo "
      \n"; } - echo "\n"; } + echo "
      \n"; - if(isset($tab_notices[$tab_dates[$i]][$tab_id_grp[$j]])) { - //for($k=0;$k $value) { - echo "
      ".$value['contenu']; - $adj=affiche_docs_joints($value['id_ct'],"c"); - if($adj!='') { - echo "
      \n"; - echo $adj; + + if($afficher_travail_a_faire_seulement=='n') { + echo "
      \n"; + if(isset($tab_notices[$tab_dates[$i]][$tab_id_grp[$j]])) { + //for($k=0;$k $value) { + echo "
      ".$value['contenu']; + $adj=affiche_docs_joints($value['id_ct'],"c"); + if($adj!='') { + echo "
      \n"; + echo $adj; + echo "
      \n"; + } echo "
      \n"; } - echo "\n"; } + echo "
      Nom court:\n"; - echo "\n"; + echo "\n"; echo "
      Nom court:\n"; - echo "\n"; + echo "\n"; echo "
      Nom complet:\n"; - echo "\n"; + echo "\n"; echo "
      Nom complet:\n"; - echo "\n"; + echo "\n"; echo "
      Description:\n"; - echo "\n"; + echo "\n"; echo "
      Coefficient:\n"; - echo "\n"; + echo "\n"; echo "
      Note sur :
      Ramener la note sur ".getSettingValue("referentiel_note")."
      lors du calcul de la moyenne :

      \n"; + echo "

      \n"; echo "Exemple avec 3 notes : 18/20 ; 4/10 ; 1/5
      \n"; echo "Case cochée : moyenne = 18/20 + 8/20 + 4/20 = 30/60 = 10/20
      \n"; echo "Case non cochée : moyenne = (18 + 4 + 1) / (20 + 10 + 5) = 23/35 ≈ 13,1/20


      \n"; @@ -741,7 +812,7 @@ echo "\n"; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\""; if($aff_date_ele_resp!='y'){ - echo " onchange=\"document.getElementById('date_ele_resp').value=document.getElementById('display_date').value\""; + echo " onchange=\"document.getElementById('date_ele_resp').value=document.getElementById('display_date').value;changement();\""; } echo ">\"Petit\n"; echo "
      Date:\n"; - echo "\n"; + echo "\n"; echo "
      Date de visibilité
      de la note pour les
      élèves et responsables:
      \n"; - echo "\n"; + echo "\n"; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; echo "
      Emplacement de l'évaluation:\n"; - echo "\n"; $appel_conteneurs = mysql_query("SELECT * FROM cn_conteneurs WHERE id_racine ='$id_racine' order by nom_court"); $nb_cont = mysql_num_rows($appel_conteneurs); $i = 0; @@ -825,12 +896,12 @@ // ================= echo "\n"; - echo "\n"; - echo "\n"; - echo "
      Nom court :
      Nom complet :
      Description :
      \n"; + echo "
      Nom court :
      Nom complet :
      Description :
      \n"; echo "
      \n"; echo "\n - + "; + if(peut_poster_message($_SESSION['statut'])) { + $retour.=""; + } + else { + $retour.=""; + } + $retour.=" "; $cpt_ahm=0; @@ -6805,7 +6812,14 @@ function affiche_historique_messages_recus($login_dest, $mode="tous") { - + "; + if(peut_poster_message($_SESSION['statut'])) { + $retour.=""; + } + else { + $retour.=""; + } + $retour.=" "; From 1256289f95c6e655305b5eeb45115d0418768e8f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:16:57 +0200 Subject: [PATCH 0620/1150] =?UTF-8?q?Ajout=20d'une=20page=20oubli=C3=A9e?= =?UTF-8?q?=20et=20possibilit=C3=A9=20de=20supprimer=20de=20vieux=20messag?= =?UTF-8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- messagerie/admin.php | 182 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 182 insertions(+) create mode 100644 messagerie/admin.php diff --git a/messagerie/admin.php b/messagerie/admin.php new file mode 100644 index 000000000..74c3f33c1 --- /dev/null +++ b/messagerie/admin.php @@ -0,0 +1,182 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + + +$sql="SELECT 1=1 FROM droits WHERE id='/messagerie/admin.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits SET id='/messagerie/admin.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Messagerie : Administration du module', +statut='';"; +$insert=mysql_query($sql); +} + +//====================================================================================== +// Section checkAccess() à décommenter en prenant soin d'ajouter le droit correspondant: +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} +//====================================================================================== + +//$msg = ''; +if (isset($_POST['is_posted'])) { + check_token(); + + $nb_reg=0; + $msg=""; + + if ((isset($_POST['activer']))&&(!saveSetting("active_messagerie", $_POST['activer']))) { + $msg .= "Erreur lors de l'enregistrement du paramètre activation/désactivation !
      "; + } else { + $nb_reg++; + } + + if (isset($_POST['MessagerieAvecSon'])) { + if(!saveSetting("MessagerieAvecSon", $_POST['MessagerieAvecSon'])) { + $msg .= "Erreur lors de l'enregistrement du paramètre Messagerie avec son !
      "; + } else { + $nb_reg++; + } + } + + saveSetting("PeutPosterMessageAdministrateur", 'y'); + + $tab_statut=array('Professeur', 'Scolarite', 'Cpe'); + for($loop=0;$loop"; + } else { + $nb_reg++; + } + } + + if($nb_reg>0) { + $msg .= "Enregistrement effectué ($nb_reg valeurs).
      "; + $post_reussi=TRUE; + } +} + +$date_limite=isset($_POST['date_limite']) ? $_POST['date_limite'] : strftime("%d/%m/%Y"); +if (isset($_POST['is_posted2'])) { + if(isset($date_limite)) { + $tmp_tab=explode("/",$date_limite); + $jour=$tmp_tab[0]; + $mois=$tmp_tab[1]; + $annee=$tmp_tab[2]; + + if(!checkdate($mois,$jour,$annee)) { + $msg="La date saisie $date_limite n'est pas valide.
      \n"; + unset($date_limite); + } + } + + if(!isset($date_limite)) { + $msg="Aucune date limite n'a été saisie.
      \n"; + } + else { + $sql="DELETE FROM messagerie WHERE date_msg < '$annee-$mois-$jour 00:00:00';"; + //echo "$sql
      \n"; + $suppr=mysql_query($sql); + if($suppr) { + $msg="Les messages antérieurs au $jour/$mois/$annee ont été supprimés.
      \n"; + $post_reussi=TRUE; + } + else { + $msg="Erreur lors de la suppression des messages antérieurs au $jour/$mois/$annee.
      \n"; + } + } +} + + +// ====== Inclusion des balises head et du bandeau ===== +include_once("../lib/header_template.inc.php"); + +if (!suivi_ariane($_SERVER['PHP_SELF'],"Gestion Messagerie")) + echo "erreur lors de la création du fil d'ariane"; +/**************************************************************** + FIN HAUT DE PAGE +****************************************************************/ + +include("../lib/calendrier/calendrier.class.php"); +$cal = new Calendrier("form2", "date_limite"); + +/**************************************************************** + BAS DE PAGE +****************************************************************/ +$tbs_microtime =""; +$tbs_pmv=""; +require_once ("../lib/footer_template.inc.php"); + +/**************************************************************** + On s'assure que le nom du gabarit est bien renseigné +****************************************************************/ +if ((!isset($_SESSION['rep_gabarits'])) || (empty($_SESSION['rep_gabarits']))) { + $_SESSION['rep_gabarits']="origine"; +} + +//================================== +// Décommenter la ligne ci-dessous pour afficher les variables $_GET, $_POST, $_SESSION et $_SERVER pour DEBUG: +// $affiche_debug=debug_var(); + + +$nom_gabarit = '../templates/'.$_SESSION['rep_gabarits'].'/messagerie/admin_template.php'; + +$tbs_last_connection=""; // On n'affiche pas les dernières connexions +include($nom_gabarit); + +?> From b6c72986f974f89eddc0eddbd8a89e3f2ed1e46a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:16:58 +0200 Subject: [PATCH 0621/1150] =?UTF-8?q?Modification=20pour=20d=C3=A9doublonn?= =?UTF-8?q?er=20les=20destinataires=20et=20permettre=20l'envoi=20de=20mess?= =?UTF-8?q?age=20en=20GET+JS.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/form_message.php | 38 +++++++++++++++++++++++++++++++------- 1 file changed, 31 insertions(+), 7 deletions(-) diff --git a/lib/form_message.php b/lib/form_message.php index 90354b06b..5a58ecfa5 100644 --- a/lib/form_message.php +++ b/lib/form_message.php @@ -129,17 +129,22 @@ } // Envoi de message -if ((isset($_POST['is_posted']))&&(getSettingAOui('PeutPosterMessage'.ucfirst($_SESSION['statut'])))) { +$message_envoye=isset($_POST['message_envoye']) ? $_POST['message_envoye'] : (isset($_GET['message_envoye']) ? $_GET['message_envoye'] : "n"); + +$sujet=isset($_POST['sujet']) ? $_POST['sujet'] : (isset($_GET['sujet']) ? $_GET['sujet'] : NULL); +$message=isset($_POST['message']) ? $_POST['message'] : (isset($_GET['message']) ? $_GET['message'] : NULL); + +if (($message_envoye=='y')&&(peut_poster_message($_SESSION['statut']))) { check_token(); - $login_dest=isset($_POST['login_dest']) ? $_POST['login_dest'] : NULL; - $sujet=isset($_POST['sujet']) ? $_POST['sujet'] : NULL; - $message=isset($_POST['message']) ? $_POST['message'] : NULL; + $login_dest=isset($_POST['login_dest']) ? $_POST['login_dest'] : (isset($_GET['login_dest']) ? $_GET['login_dest'] : NULL); $msg=""; - if(isset($login_dest)) { + if((isset($login_dest))&&(isset($sujet))&&(isset($message))) { if(is_array($login_dest)) { + $tmp_login_dest=$login_dest; + $login_dest=array_unique($tmp_login_dest); $nb_reg=0; for($loop=0;$loop"; + + if(isset($_GET['envoi_js'])) { + echo ""; + die(); + } } else { $msg.="Erreur lors de l'enregistrement du message pour ".civ_nom_prenom($login_dest).".
      "; + + if(isset($_GET['envoi_js'])) { + echo ""; + die(); + } } } } @@ -195,7 +210,7 @@ die(); } -if(getSettingAOui('PeutPosterMessage'.ucfirst($_SESSION['statut']))) { +if(peut_poster_message($_SESSION['statut'])) { ?> @@ -272,7 +287,7 @@ function affiche_ajout_dest() { ?>

      Emplacement de l'évaluation :

      "; - echo "\n"; $appel_conteneurs = mysql_query("SELECT * FROM cn_conteneurs WHERE id_racine ='$id_racine' order by nom_court"); $nb_cont = mysql_num_rows($appel_conteneurs); $i = 0; @@ -849,8 +920,8 @@ // ===== echo "

      Coefficient de l'évaluation

      \n"; - echo ""; - echo "
      Valeur de la pondération dans le calcul de la moyenne (si 0, la note de l'évaluation n'intervient pas dans le calcul de la moyenne) :
      \n"; + echo ""; + echo "
      Valeur de la pondération dans le calcul de la moyenne (si 0, la note de l'évaluation n'intervient pas dans le calcul de la moyenne) :
      \n"; //==================================== // Note autre que sur 20 @@ -858,13 +929,13 @@ if(getSettingValue("note_autre_que_sur_referentiel")=="V") { echo "

      Notation

      \n"; echo ""; - echo "\n"; + echo "\n"; echo ""; - echo "\n"; } else { echo "\n"; @@ -876,15 +947,15 @@ // ====== echo "

      Statut de l'évaluation

      \n"; - echo "
      Note sur :
      Ramener la note sur ".getSettingValue("referentiel_note")." lors du calcul de la moyenne :
      "; echo "Exemple avec 3 notes : 18/20 ; 4/10 ; 1/5
      "; echo "Case cochée : moyenne = 18/20 + 8/20 + 4/20 = 30/60 = 10/20
      "; echo "Case non cochée : moyenne = (18 + 4 + 1) / (20 + 10 + 5) = 23/35 ≈ 13,1/20


      \n"; echo "

      "; + echo "

      "; echo "
      \n"; + echo "\n"; echo "\n"; } else { if ($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2) { - echo "\n"; + echo "\n"; } else { echo "\n"; From 35763722b242b143cf2844033af6986e8f010cfc Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 18 Feb 2013 10:36:41 +0100 Subject: [PATCH 0514/1150] Correctif sur un mysql_result() --- bulletin/bull_index.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index a4e894f10..ebaf4d4c2 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -3116,9 +3116,9 @@ function display_param_b_adr_pg() { WHERE (u.login=j.cpe_login AND j.e_login='".$current_eleve_login[$i]."');"; $query = mysql_query($sql); - $current_eleve_cperesp_login = @mysql_result($query, "0", "login"); + $current_eleve_cperesp_login = @mysql_result($query, 0, "login"); $tab_ele['cperesp_login']=$current_eleve_cperesp_login; - $current_eleve_cperesp_civilite = @mysql_result($query, "0", "civilite"); + $current_eleve_cperesp_civilite = @mysql_result($query, 0, "civilite"); $tab_ele['cperesp_civilite']=$current_eleve_cperesp_civilite; //========================================== From 5add14023c4b8c27d76b9f47f122918014c45ea9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Feb 2013 12:17:07 +0100 Subject: [PATCH 0515/1150] =?UTF-8?q?Correctif=20sur=20un=20confirm=5Faban?= =?UTF-8?q?don()=20oubli=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_avis1.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index 62978cbfb..a011abe33 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -631,7 +631,7 @@ function vider_tous_les_avis() { echo "\n\n"; } elseif(($ver_periode[$k] != "O")&&($result_test>0)) { echo "\n\n"; From f1d132dd41e8662986e474f0124ec927025e01eb Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Feb 2013 12:30:06 +0100 Subject: [PATCH 0516/1150] =?UTF-8?q?Correctif=20sur=20un=20confirm=5Faban?= =?UTF-8?q?don()=20oubli=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_avis1.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index d340ab7ca..b7ebc185c 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -370,7 +370,7 @@ function confirm_changement_classe(thechange, themessage) //fin ajout lien classe précédente / classe suivante if((acces('/impression/avis_pdf.php', $_SESSION['statut']))&&(acces('/saisie/impression_avis.php', $_SESSION['statut']))) { - echo "| Impression PDF des avis"; + echo "| Impression PDF des avis"; } echo "

      \n"; From 434f8cf7d949dc9ac9975810127c869363e6beea Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Feb 2013 12:46:14 +0100 Subject: [PATCH 0517/1150] =?UTF-8?q?Masquage=20des=20autres=20div=20de=20?= =?UTF-8?q?notes=20quand=20on=20clique=20sur=20un=20lien=20destin=C3=A9=20?= =?UTF-8?q?=C3=A0=20afficher=20les=20notes=20du=20carnet=20de=20notes=20d'?= =?UTF-8?q?un=20=C3=A9l=C3=A8ve.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_appreciations.php | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/saisie/saisie_appreciations.php b/saisie/saisie_appreciations.php index 913fe8c80..1f52587c8 100644 --- a/saisie/saisie_appreciations.php +++ b/saisie/saisie_appreciations.php @@ -1419,7 +1419,7 @@ function focus_suivant(num){ $tabdiv_infobulle[]=creer_div_infobulle('notes_'.$eleve_login.'_'.$k,$titre,"",$texte,"",30,0,'y','y','n','n'); $mess[$k].=""; - $mess[$k].=""; + $mess[$k].=""; $mess[$k].=$liste_notes; $mess[$k].=""; } @@ -1560,7 +1560,7 @@ function focus_suivant(num){ echo "
      \n"; echo "\n\n\n"; @@ -990,7 +990,7 @@ function test_form_classe(id_classe) { echo ""; + echo "/>"; echo "
      \n"; $cpt_mat++; @@ -1035,4 +1035,4 @@ function checkbox_change_matiere(cpt) { echo "


      \n"; require("../lib/footer.inc.php"); -?> \ No newline at end of file +?> From 3c40f7ad25c046c970479c8e368adb29b487b706 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 12:54:35 +0200 Subject: [PATCH 0591/1150] =?UTF-8?q?Ajout=20de=20nettoyages=20suppl=C3=A9?= =?UTF-8?q?mentaires=20pour=20des=20groupes=20qui=20ne=20sont=20associ?= =?UTF-8?q?=C3=A9s=20=C3=A0=20aucune=20classe=20ou=20=C3=A0=20aucune=20mat?= =?UTF-8?q?i=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilitaires/clean_tables.php | 47 ++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/utilitaires/clean_tables.php b/utilitaires/clean_tables.php index 74ca6f813..e3e4f1481 100644 --- a/utilitaires/clean_tables.php +++ b/utilitaires/clean_tables.php @@ -1165,19 +1165,66 @@ function clean_table_XXX() { echo $texte_info_action; update_infos_action_nettoyage($id_info, $texte_info_action); + // Aucun groupe non associé à une matière ou à une classe ne doit exister + $sql="select g.* from groupes g left join j_groupes_classes jgc on jgc.id_groupe=g.id where jgc.id_groupe is NULL;"; + $res_grp2=mysql_query($sql); + if(mysql_num_rows($res_grp2)>0){ + $texte_info_action="

      Un ou des groupes existent sans être associés à aucune classe.
      C'est une anomalie.
      En voici la liste :
      \n"; + while($ligne=mysql_fetch_object($res_grp2)) { + $texte_info_action.="Suppression du groupe n°$ligne->id : $ligne->name ($ligne->description) : "; + $sql="DELETE from groupes WHERE id='$ligne->id';"; + //echo "$sql
      "; + $menage=mysql_query($sql); + if($menage) { + $texte_info_action.="SUCCES"; + } + else { + $texte_info_action.="ECHEC"; + } + $texte_info_action.="
      \n"; + } + echo $texte_info_action; + update_infos_action_nettoyage($id_info, $texte_info_action); + } + + $sql="select g.* from groupes g left join j_groupes_matieres jgm on jgm.id_groupe=g.id where jgm.id_groupe is NULL;"; + $res_grp2=mysql_query($sql); + if(mysql_num_rows($res_grp2)>0){ + $texte_info_action="

      Un ou des groupes existent sans être associés à aucune matière.
      C'est une anomalie.
      En voici la liste :
      \n"; + while($ligne=mysql_fetch_object($res_grp2)) { + $texte_info_action.="Suppression du groupe n°$ligne->id : $ligne->name ($ligne->description) : "; + $sql="DELETE from groupes WHERE id='$ligne->id';"; + //echo "$sql
      "; + $menage=mysql_query($sql); + if($menage) { + $texte_info_action.="SUCCES"; + } + else { + $texte_info_action.="ECHEC"; + } + $texte_info_action.="
      \n"; + } + echo $texte_info_action; + update_infos_action_nettoyage($id_info, $texte_info_action); + } + + // On va supprimer des tables 'j_signalement', 'j_groupes_classes','j_groupes_matieres','j_groupes_professeurs','j_eleves_groupes', 'j_groupes_visibilite', 'acces_cdt_groupes', les groupes qui ne sont pas dans la table 'groupes' for($i=0;$i"; $res_grp1=mysql_query($sql); if(mysql_num_rows($res_grp1)>0){ //echo "

      On parcourt la table '".$table[$i]."'.

      \n"; while($ligne=mysql_fetch_array($res_grp1)){ $sql="SELECT 1=1 FROM groupes WHERE id='".$ligne[0]."'"; + //echo "$sql
      "; $res_test=mysql_query($sql); if(mysql_num_rows($res_test)==0){ $sql="DELETE FROM $table[$i] WHERE id_groupe='$ligne[0]'"; + //echo "$sql
      "; $texte_info_action="Suppression d'une référence à un groupe d'identifiant $ligne[0] dans la table $table[$i] alors que le groupe n'existe pas dans la table 'groupes'.
      \n"; echo $texte_info_action; update_infos_action_nettoyage($id_info, $texte_info_action); From e418d2919b55ebe64aa241cc1007198ccfd53cd8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 12:54:36 +0200 Subject: [PATCH 0592/1150] =?UTF-8?q?Ajout=20d'un=20lien=20vers=20la=20cr?= =?UTF-8?q?=C3=A9ation=20par=20lots.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/index.php | 1 + 1 file changed, 1 insertion(+) diff --git a/classes/index.php b/classes/index.php index 4f0b8bd83..34d9c658e 100644 --- a/classes/index.php +++ b/classes/index.php @@ -48,6 +48,7 @@

      Retour Retour | Paramétrage de plusieurs classes par lots +| Créations par lots | Paramétrage rapide CPE Responsable | Paramétrage scolarité | Paramétrage de l'accès aux appréciations From 7745c4af24ba7ad6a5089e40ee4946c440182ccf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 14:02:42 +0200 Subject: [PATCH 0593/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20ne=20pas=20af?= =?UTF-8?q?ficher=20les=20lignes=20d=C3=A9j=C3=A0=20trait=C3=A9es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/absences_du_jour.php | 665 ++++++++++++++++++---------------- mod_abs2/lib/abs_style.css | 3 + 2 files changed, 357 insertions(+), 311 deletions(-) diff --git a/mod_abs2/absences_du_jour.php b/mod_abs2/absences_du_jour.php index 8e10fad33..555e36980 100644 --- a/mod_abs2/absences_du_jour.php +++ b/mod_abs2/absences_du_jour.php @@ -376,48 +376,49 @@ ?>

      - - -

      + + + +

      - - - - - -

      +

      count() != 0) { - if (method_exists($eleve_col, 'haveToPaginate')) { - if ($eleve_col->haveToPaginate()) { - echo "Page "; - echo ''; - echo ''; - echo ' '; - echo "sur ".$eleve_col->getLastPage()." page(s) "; - echo "| "; + if ($eleve_col->count() != 0) { + if (method_exists($eleve_col, 'haveToPaginate')) { + if ($eleve_col->haveToPaginate()) { + echo "Page "; + echo ''; + echo ''; + echo ' '; + echo "sur ".$eleve_col->getLastPage()." page(s) "; + echo "| "; + } + echo "Voir "; + echo ''; + echo " par page | Nombre d'enregistrements : "; + echo $eleve_col->count(); + echo ''; } - echo "Voir "; - echo ''; - echo " par page | Nombre d'enregistrements : "; - echo $eleve_col->count(); - echo ''; - } echo "
      \n"; $signaler_saisies_englobees=isset($_POST['signaler_saisies_englobees']) ? $_POST['signaler_saisies_englobees'] : NULL; @@ -430,354 +431,396 @@ $checked_ou_pas=""; if($ne_pas_afficher_saisies_englobees=="y") {$checked_ou_pas=" checked";} echo "\n"; + + echo " - "; + $ne_pas_afficher_lignes_avec_traitement_englobant=isset($_POST['ne_pas_afficher_lignes_avec_traitement_englobant']) ? $_POST['ne_pas_afficher_lignes_avec_traitement_englobant'] : NULL; + $checked_ou_pas=""; + if($ne_pas_afficher_lignes_avec_traitement_englobant=="y") {$checked_ou_pas=" checked";} + echo "\n"; + // Pour quand même afficher le bouton validant les checkbox ci-dessus: if (!method_exists($eleve_col, 'haveToPaginate')) { echo ''; } + } ?> - - - + + + count() != 0) { ?> -
      +

      - Ajouter au traitement -
      - - - findPk($id_traitement) != null) { - $traitement = AbsenceEleveTraitementQuery::create()->findPk($id_traitement); - echo ' '."\n"; - } - ?> -
      + Ajouter au traitement +
      + + + +findPk($id_traitement) != null) { + $traitement = AbsenceEleveTraitementQuery::create()->findPk($id_traitement); + echo ' + '."\n"; + } +?> +
      +
      - Ajouter au traitement (popup) -
      - - - findPk($id_traitement) != null) { - $traitement = AbsenceEleveTraitementQuery::create()->findPk($id_traitement); - echo ' '."\n"; - } - ?> -
      + Ajouter au traitement (popup) +
      + + +findPk($id_traitement) != null) { + $traitement = AbsenceEleveTraitementQuery::create()->findPk($id_traitement); + echo ' + '."\n"; + } +?> +
      -

      - - -
      "; + echo "\n\n\n\n\n"; + echo "\n"; echo "\n"; + echo "\n"; echo "
      "; echo ""; - echo "
      "; + echo "
      "; echo ""; - echo "
      "; + echo "
      "; echo ""; @@ -894,15 +965,15 @@ // Date // ==== - echo "

      Date de l'évaluation (format jj/mm/aaaa) :

      + echo "

      Date de l'évaluation (format jj/mm/aaaa) :

      Remarque : c'est cette date qui est prise en compte pour l'édition des relevés de notes à différentes périodes de l'année. - "; + "; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; - echo "

      Date de visibilité de l'évaluation pour les élèves et responsables (format jj/mm/aaaa) :

      + echo "

      Date de visibilité de l'évaluation pour les élèves et responsables (format jj/mm/aaaa) :

      Remarque : Cette date permet de ne rendre la note visible qu'une fois que le devoir est corrigé en classe. - "; + "; echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; //==================================== @@ -914,12 +985,12 @@ echo "
      "; - echo "
      "; - echo "
      \n"; @@ -936,7 +1007,7 @@ if(count($tab_group)>1) { if($interface_simplifiee=="y"){echo "
      \n";} - echo "
      \n"; + echo "
      \n"; echo "
      \n"; echo "\n"; @@ -963,7 +1034,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -984,7 +1055,7 @@ } echo "
      \n"; if($tab_group[$i]["classe"]["ver_periode"]["all"][$periode_num]>=2) { - echo "\n"; + echo "\n"; echo "
      \n"; // A METTRE AU POINT: - echo "
      Visualiser
      Visualiser"; + + $sql="SELECT * FROM cc_dev WHERE id_cn_dev='$id_dev[$i]';"; + $res_cc_dev=mysql_query($sql); + if(mysql_num_rows($res_cc_dev)>0) { + $lig_cc_dev=mysql_fetch_object($res_cc_dev); + echo "
      nom_court ($lig_cc_dev->nom_complet)\">EvCum"; + } + + echo "
       
      saisir
      saisir"; + + $sql="SELECT * FROM cc_dev WHERE id_cn_dev='$id_dev[$i]';"; + $res_cc_dev=mysql_query($sql); + if(mysql_num_rows($res_cc_dev)>0) { + $lig_cc_dev=mysql_fetch_object($res_cc_dev); + echo "
      nom_court ($lig_cc_dev->nom_complet)\">EvCum"; + } + echo "
       
      $nom_periode[$k]
      "; - echo ""; + echo ""; echo $nom_periode[$k]; echo ""; echo "
      Moy.
      \n"; - echo "
      $eleve_nom $eleve_prenom\n"; + echo "
      $eleve_nom $eleve_prenom\n"; //========================== // AJOUT: boireaus 20071115 @@ -1568,7 +1568,7 @@ function focus_suivant(num){ if($temoin_photo=="y"){ //echo " "; echo "$eleve_nom $eleve_prenom"; echo ""; @@ -1877,6 +1877,28 @@ function insere_notes() { } } + function fermer_div_notes() { + //var exp = new RegExp(\"^[0-9-.]*$\",\"g\"); + var exp = new RegExp(\"[0-9]$\",\"g\"); + + chaine='' + champs_div=document.getElementsByTagName('div'); + for(i=0;i\n"; From 84b75e32230f8d9ea81687040ab38c968fa24842 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Feb 2013 12:46:21 +0100 Subject: [PATCH 0518/1150] =?UTF-8?q?Ajout=20d'un=20lien=20vers=20la=20pag?= =?UTF-8?q?e=20de=20consutlation=20d'un=20=C3=A9l=C3=A8ve=20et=20ajout=20d?= =?UTF-8?q?'attributs=20title.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_avis1.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index b7ebc185c..3c9f855a8 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -370,7 +370,7 @@ function confirm_changement_classe(thechange, themessage) //fin ajout lien classe précédente / classe suivante if((acces('/impression/avis_pdf.php', $_SESSION['statut']))&&(acces('/saisie/impression_avis.php', $_SESSION['statut']))) { - echo "| Impression PDF des avis"; + echo "| Impression PDF des avis"; } echo "

      \n"; @@ -638,7 +638,7 @@ function vider_tous_les_avis() { if ($ver_periode[$k] != "N") { echo "
      "; if(acces('/impression/avis_pdf.php', $_SESSION['statut'])) { - echo ""; + echo ""; echo $nom_periode[$k]; echo ""; } @@ -649,7 +649,7 @@ function vider_tous_les_avis() { } else { echo "
      "; if(acces('/impression/avis_pdf.php', $_SESSION['statut'])) { - echo ""; + echo ""; echo $nom_periode[$k]; echo ""; } @@ -727,14 +727,14 @@ function vider_tous_les_avis() { echo "\n"; echo "\n"; echo "\n"; - echo "\n\n"; echo "\n"; - echo "\n"; - echo "\n"; @@ -361,7 +364,87 @@ function modif_mode_infobulle_nav() { \n"; } -echo "

      NOTES :

      +if($nb_periode>1) { + //$sql="SELECT num_periode, nom_periode, date_fin, COUNT(date_fin) AS eff_date_fin FROM periodes GROUP BY nom_periode ORDER BY eff_date_fin DESC, num_periode ASC;"; + $sql="SELECT DISTINCT num_periode, nom_periode, date_fin FROM periodes ORDER BY num_periode ASC;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + echo "

      Prendre modèle sur d'autres classes :

      +
       
      $current_eleve_nom $current_eleve_prenom\n"; + echo "
      $current_eleve_nom $current_eleve_prenom\n"; //========================== // AJOUT: boireaus 20071115 // Lien photo... if($temoin_photo=="y"){ //echo " "; echo "$current_eleve_nom $current_eleve_prenom"; echo ""; @@ -788,7 +788,7 @@ function vider_tous_les_avis() { echo "\n"; } elseif(($ver_periode[$k] != "O")&&($result_test>0)) { echo "
      "; - echo ""; + echo ""; echo $nom_periode[$k]; echo ""; From 844b8a8f032eab2bcdfb113e7d07f2981786b7a9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Feb 2013 14:08:06 +0100 Subject: [PATCH 0519/1150] =?UTF-8?q?Ajout=20d'une=20l=C3=A9gende.=20Corre?= =?UTF-8?q?ction=20de=20l'opacit=C3=A9=20des=20photos=20coch=C3=A9es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe_plan.php | 27 +++++++++++++++++++++++---- 1 file changed, 23 insertions(+), 4 deletions(-) diff --git a/mod_abs2/saisir_groupe_plan.php b/mod_abs2/saisir_groupe_plan.php index f26de4c21..a23e64fe0 100644 --- a/mod_abs2/saisir_groupe_plan.php +++ b/mod_abs2/saisir_groupe_plan.php @@ -776,6 +776,17 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev
      +
      + +
      + +
      From 4205e08c9ddbafb66797438f2ee9c387a5eb64e6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 19 Mar 2013 21:18:17 +0100 Subject: [PATCH 0566/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20restreindre?= =?UTF-8?q?=20la=20liste=20des=20=C3=A9l=C3=A8ves=20propos=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- visualisation/affiche_eleve.php | 106 +++++++++++++++++++++++++------- 1 file changed, 85 insertions(+), 21 deletions(-) diff --git a/visualisation/affiche_eleve.php b/visualisation/affiche_eleve.php index 3a0d1226d..4e093c7ef 100644 --- a/visualisation/affiche_eleve.php +++ b/visualisation/affiche_eleve.php @@ -916,10 +916,48 @@ function save_params_graphe($nom,$valeur) { echo "'>Classe suivante"; } } - echo "

      \n"; + // 20130319 + $restriction_id_groupe=isset($_POST['restriction_id_groupe']) ? $_POST['restriction_id_groupe'] : ""; + $sql="SELECT g.id, g.name, g.description FROM groupes g, j_groupes_classes jgc WHERE jgc.id_classe='$id_classe' AND jgc.id_groupe=g.id AND g.id NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='bulletins' AND visible='n') ORDER BY g.name, g.description;"; + //echo "$sql
      "; + $res_restr_grp=mysql_query($sql); + if(mysql_num_rows($res_restr_grp)>0) { + echo " | Afficher les élèves de \n"; + } + echo "

      \n"; echo "\n"; + if($restriction_id_groupe!='') { + if(preg_match("/^-/", $restriction_id_groupe)) { + $tab_eleves_a_exclure=array(); + $sql="SELECT DISTINCT login FROM j_eleves_groupes WHERE id_groupe='".preg_replace("/^-/","",$restriction_id_groupe)."';"; + $res_restr_grp=mysql_query($sql); + while($lig_restr_grp=mysql_fetch_object($res_restr_grp)) { + $tab_eleves_a_exclure[]=$lig_restr_grp->login; + } + } + else { + $tab_eleves_a_proposer=array(); + $sql="SELECT DISTINCT login FROM j_eleves_groupes WHERE id_groupe='".$restriction_id_groupe."';"; + $res_restr_grp=mysql_query($sql); + while($lig_restr_grp=mysql_fetch_object($res_restr_grp)) { + $tab_eleves_a_proposer[]=$lig_restr_grp->login; + } + } + } + echo "\n"; } else { echo "

      Retour Retour accueil"; @@ -1702,6 +1740,11 @@ function save_params_graphe($nom,$valeur) { echo "
      \n"; } + // 20130319 + if(isset($restriction_id_groupe)) { + echo "\n"; + } + echo "

      \n"; echo "\n"; @@ -1712,6 +1755,11 @@ function save_params_graphe($nom,$valeur) { echo "
      \n"; echo add_token_field(); + // 20130319 + if(isset($restriction_id_groupe)) { + echo "\n"; + } + echo "

      Si, après des essais, vous souhaitez abandonner vos paramètres personnels et revenir aux paramètres enregistrés dans la base, validez ci-dessous :
      "; echo "\n"; echo "\n"; @@ -1840,26 +1888,40 @@ function save_params_graphe($nom,$valeur) { // Pour afficher le nom/prénom plutôt que le login: $tab_nom_prenom_eleve=array(); + // 20130319 + if(isset($restriction_id_groupe)) { + echo "\n"; + } + echo "Choisir l'élève:
      \n"; echo "\n"; $eleve_precedent=""; @@ -1874,7 +1936,8 @@ function save_params_graphe($nom,$valeur) { echo "et comparer avec:
      \n"; echo "\n"; - if($precedent>0) { + if(($precedent>0)&&(isset($tab_nomprenom_eleve[$numeleve1]))) { //echo "\n"; echo "Élève précédent
      \n"; @@ -1958,7 +2021,7 @@ function eleve_suivant() { //echo "\n"; echo "Actualiser\n"; - if($suivant<$nombreligne+1) { + if(($suivant<$nombreligne_effectives+1)&&(isset($tab_nomprenom_eleve[$numeleve1]))) { echo "
      \n"; //echo "\n"; echo "Élève \n"; echo "\n"; echo "\n"; @@ -2290,7 +2354,7 @@ function save_avis(mode) { //$texte.="\n"; $texte.="\n"; - if($suivant<$nombreligne+1) { + if($suivant<$nombreligne_effectives+1) { $texte.=" \n"; } elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { @@ -2356,7 +2420,7 @@ function save_avis(mode) { //$texte_saisie_avis_fixe.="\n"; $texte_saisie_avis_fixe.="
      \n"; - if($suivant<$nombreligne+1) { + if($suivant<$nombreligne_effectives+1) { $texte_saisie_avis_fixe.=" \n"; } elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { @@ -2495,7 +2559,7 @@ function save_avis(mode) { //$texte.="\n"; $texte.="\n"; - if($suivant<$nombreligne+1) { + if($suivant<$nombreligne_effectives+1) { $texte.=" \n"; } elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { @@ -2556,7 +2620,7 @@ function save_avis(mode) { //$texte_saisie_avis_fixe.="\n"; $texte_saisie_avis_fixe.="
      \n"; - if($suivant<$nombreligne+1) { + if($suivant<$nombreligne_effectives+1) { $texte_saisie_avis_fixe.=" \n"; } elseif(acces('/saisie/saisie_avis2.php', $_SESSION['statut'])) { From 86241ad41eb5c70ad1ee348f8e7d57aa80dc1928 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Mar 2013 19:18:33 +0100 Subject: [PATCH 0567/1150] =?UTF-8?q?Possibilit=C3=A9=20d'extraire=20davan?= =?UTF-8?q?tage=20d'infos=20(visibilite=20et=20proflist=5Fstring)=20dans?= =?UTF-8?q?=20get=5Fgroups=5Ffor=5Fclass().?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/groupes.inc.php | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/lib/groupes.inc.php b/lib/groupes.inc.php index bd796a6bc..ab0d15ea0 100644 --- a/lib/groupes.inc.php +++ b/lib/groupes.inc.php @@ -71,6 +71,7 @@ function get_groups_for_prof($_login,$mode=NULL,$tab_champs=array()) { * pas les indices profs, eleves, periodes, matieres) */ function get_groups_for_class($_id_classe, $ordre="", $d_apres_categories="n") { + global $get_groups_for_class_avec_proflist, $get_groups_for_class_avec_visibilite; // ATTENTION: Avec les catégories, les groupes dans aucune catégorie n'apparaissent pas. // Avec le choix "n" sur les catégories, on reste sur un fonctionnement proche de celui d'origine (cf old_way) @@ -148,6 +149,17 @@ function get_groups_for_class($_id_classe, $ordre="", $d_apres_categories="n") { if($k==0) {$temp[$i]["classlist_string"]="";} else {$temp[$i]["classlist_string"].=", ";} $temp[$i]["classlist_string"].=$c_classe; } + + if($get_groups_for_class_avec_proflist=="y") { + $tmp_grp=get_profs_for_group($temp[$i]["id"]); + $temp[$i]["proflist_string"]=$tmp_grp['proflist_string']; + } + + if($get_groups_for_class_avec_visibilite=="y") { + $tmp_grp=get_visibilite_for_group($temp[$i]["id"]); + $temp[$i]["visibilite"]=$tmp_grp['visibilite']; + } + } return $temp; @@ -288,6 +300,30 @@ function get_profs_for_group($_id_groupe) { return $temp; } +/** Renvoie un tableau de la visibilité du groupe dans les différents domaines (bulletins, cahier_notes,...) + * + * @param int $_id_groupe Id du groupe + * @return array Le tableau des visibilités + */ +function get_visibilite_for_group($_id_groupe) { + global $tab_domaines; + $temp["visibilite"]=array(); + + for($loop=0;$loop0) { + while($lig_vis=mysql_fetch_object($res_vis)) { + $temp["visibilite"][$lig_vis->domaine]=$lig_vis->visible; + } + } + + return $temp; +} + /** * Renvoie les informations sur le groupe demandé * From 9f38b3652a38d6b350b90faede239687b48b42bb Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Mar 2013 19:18:36 +0100 Subject: [PATCH 0568/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20copier=20des?= =?UTF-8?q?=20donn=C3=A9es=20pour=20des=20tests.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes_admin/copie_tous_dev.php | 723 ++++++++++++++++++++++++++ gestion/gestion_base_test.php | 3 + 2 files changed, 726 insertions(+) create mode 100644 cahier_notes_admin/copie_tous_dev.php diff --git a/cahier_notes_admin/copie_tous_dev.php b/cahier_notes_admin/copie_tous_dev.php new file mode 100644 index 000000000..0885321ae --- /dev/null +++ b/cahier_notes_admin/copie_tous_dev.php @@ -0,0 +1,723 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +$sql="SELECT 1=1 FROM droits WHERE id='/cahier_notes_admin/copie_tous_dev.php';"; +$test=mysql_query($sql); +if(mysql_num_rows($test)==0) { +$sql="INSERT INTO droits VALUES ('/cahier_notes_admin/copie_tous_dev.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Création de devoirs copie d une autre classe', '1');"; +$insert=mysql_query($sql); +} + +// INSERT INTO droits VALUES ('/cahier_notes_admin/copie_tous_dev.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Création de devoirs copie d une autre classe', '1'); +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +$id_classe_source=isset($_POST['id_classe_source']) ? $_POST['id_classe_source'] : (isset($_GET['id_classe_source']) ? $_GET['id_classe_source'] : NULL); +$id_classe_dest=isset($_POST['id_classe_dest']) ? $_POST['id_classe_dest'] : (isset($_GET['id_classe_dest']) ? $_GET['id_classe_dest'] : NULL); +$creation_copie=isset($_POST['creation_copie']) ? $_POST['creation_copie'] : NULL; + +$id_groupe_src=isset($_POST['id_groupe_src']) ? $_POST['id_groupe_src'] : NULL; +$new_groupe_dest=isset($_POST['new_groupe_dest']) ? $_POST['new_groupe_dest'] : NULL; +$id_groupe_dest=isset($_POST['id_groupe_dest']) ? $_POST['id_groupe_dest'] : NULL; +$cpt_grp=isset($_POST['cpt_grp']) ? $_POST['cpt_grp'] : NULL; + +$notes_aleatoires=isset($_POST['notes_aleatoires']) ? $_POST['notes_aleatoires'] : "n"; +$copier_cdt=isset($_POST['copier_cdt']) ? $_POST['copier_cdt'] : "n"; + +//**************** EN-TETE ***************** +$titre_page = "Tests : Copie de devoirs"; +//echo "

      \n"; +//**************** FIN EN-TETE ***************** + +//debug_var(); + +echo "

      \n"; +echo "Retour Retour"; + +if(getSettingAOui('gepi_en_production')) { + echo "

      \n"; + + echo "

      Cette page ne doit pas être utilisée sur un Gepi en production.
      Vous copieriez des devoirs d'une classe vers une autre, avec la possibilité d'insérer des notes aléatoires.

      \n"; + require("../lib/footer.inc.php"); + die(); +} + +if(!isset($id_classe_source)) { + echo "

      \n"; + + echo "

      De quelle classe voulez-vous copier les devoirs ?

      \n"; + $classes_list = mysql_query("SELECT DISTINCT c.* FROM classes c, periodes p WHERE p.id_classe = c.id ORDER BY classe"); + $nb = mysql_num_rows($classes_list); + if ($nb !=0) { + $nb_class_par_colonne=round($nb/3); + //echo "
      Personne
      \n"; + echo "
      \n"; + echo "\n"; + + $i = '0'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
           \n"; + + while ($i < $nb) { + $t_id_classe = mysql_result($classes_list, $i, 'id'); + $t_classe = mysql_result($classes_list, $i, 'classe'); + + if(($i>0)&&(round($i/$nb_class_par_colonne)==$i/$nb_class_par_colonne)){ + echo "\n"; + } + + echo "$t_classe
      \n"; + $i++; + } + echo "
      \n"; + } +} +elseif(!isset($id_classe_dest)) { + echo " | Retour au choix de la classe source

      \n"; + echo "

      \n"; + + $classe_source=get_class_from_id($id_classe_source); + + echo "

      Vers quelle classe voulez-vous copier les devoirs de $classe_source ?

      \n"; + + $classes_list = mysql_query("SELECT DISTINCT c.* FROM classes c, periodes p WHERE p.id_classe = c.id ORDER BY classe"); + $nb = mysql_num_rows($classes_list); + if ($nb !=0) { + $nb_class_par_colonne=round($nb/3); + //echo "\n"; + echo "
      \n"; + echo "\n"; + + $i = '0'; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
           \n"; + + while ($i < $nb) { + $t_id_classe = mysql_result($classes_list, $i, 'id'); + if($t_id_classe!=$id_classe_source) { + $t_classe = mysql_result($classes_list, $i, 'classe'); + + if(($i>0)&&(round($i/$nb_class_par_colonne)==$i/$nb_class_par_colonne)){ + echo "\n"; + } + + echo "$t_classe
      \n"; + } + $i++; + } + echo "
      \n"; + } +} +elseif(!isset($creation_copie)) { + echo " | Retour au choix de la classe source

      \n"; + echo " | Retour au choix de la classe destination

      \n"; + $classe_source=get_class_from_id($id_classe_source); + $classe_dest=get_class_from_id($id_classe_dest); + + echo "\n"; + + echo "

      Copie de devoirs de la classe de $classe_source vers la classe de $classe_dest

      \n"; + $get_groups_for_class_avec_proflist="y"; + $get_groups_for_class_avec_visibilite="y"; + $groups_src=get_groups_for_class($id_classe_source); + $groups_dest=get_groups_for_class($id_classe_dest); + + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n + + + + \n"; + $alt=1; + $cpt=0; + foreach($groups_src as $current_group_src) { + $alt=$alt*(-1); + + if($current_group_src['visibilite']['cahier_notes']!='n') { + echo " + + + \n"; + $cpt++; + } + } + echo " +
      Groupe de $classe_sourceGroupe de $classe_dest
      ".$current_group_src['name']." (".$current_group_src['description'].") en ".$current_group_src['classlist_string']." +
      \n"; + + if(count($groups_dest>0)) { + echo " + \n"; + } + echo " +
      \n"; + echo "\n"; + echo "\n"; + echo "

      \n"; + if(getSettingAOui('active_cahiers_texte')) { + echo "

      \n"; + } + echo "

      \n"; + echo "\n"; + +} +else { + echo " | Retour au choix de la classe source"; + echo " | Retour au choix de la classe destination"; + echo " | Choix des enseignements

      \n"; + + $classe_source=get_class_from_id($id_classe_source); + $classe_dest=get_class_from_id($id_classe_dest); + + echo "

      Copie de devoirs de la classe de $classe_source vers la classe de $classe_dest

      \n"; + echo "
      \n"; + /* + $get_groups_for_class_avec_proflist="y"; + $groups_src=get_groups_for_class($id_classe_source); + $groups_dest=get_groups_for_class($id_classe_dest); + */ + + for($i=0;$i<$cpt_grp;$i++) { + if((isset($id_groupe_dest[$i]))&&($id_groupe_dest[$i]!='')) { + $current_group_src=get_group($id_groupe_src[$i]); + echo "

      Groupe source : ".$current_group_src['name']." (".$current_group_src['description'].") en ".$current_group_src['classlist_string']."
      \n"; + + if($id_groupe_dest[$i]==$id_groupe_src[$i]) { + echo "Le groupe destination est le même.
      On ne fait rien.

      \n"; + } + else { + echo "
      \n"; + $current_group_dest=get_group($id_groupe_dest[$i]); + $sql="SELECT * FROM cn_cahier_notes WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY periode;"; + $res_ccn_src=mysql_query($sql); + if(mysql_num_rows($res_ccn_src)>0) { + while($lig_ccn_src=mysql_fetch_object($res_ccn_src)) { + unset($id_cahier_notes_dest); + + echo "

      Période $lig_ccn_src->periode

      \n"; + echo "
      \n"; + $id_cahier_notes_src=$lig_ccn_src->id_cahier_notes; + + $sql="SELECT * FROM cn_cahier_notes WHERE id_groupe='".$id_groupe_dest[$i]."' AND periode='$lig_ccn_src->periode';"; + $res_ccn_dest=mysql_query($sql); + if(mysql_num_rows($res_ccn_dest)>0) { + $lig_ccn_dest=mysql_fetch_object($res_ccn_dest); + $id_cahier_notes_dest=$lig_ccn_dest->id_cahier_notes; + } + else { + // Création d'un cahier de notes + $sql="INSERT INTO cn_conteneurs SET id_racine='', nom_court='".mysql_real_escape_string($current_group_dest["description"])."', nom_complet='". mysql_real_escape_string($current_group_dest["matiere"]["nom_complet"])."', description = '', mode = '2', coef = '1.0', arrondir = 's1', ponderation = '0.0', display_parents = '0', display_bulletin = '1', parent = '0'"; + $creation_cnc=mysql_query($sql); + if($creation_cnc) { + $id_cahier_notes_dest=mysql_insert_id(); + + $sql="INSERT INTO cn_cahier_notes SET id_cahier_notes='$id_cahier_notes_dest', id_groupe='$id_groupe_dest[$i]', periode='$lig_ccn_src->periode';"; + $creation_ccn=mysql_query($sql); + if(!$creation_ccn) { + echo "Erreur en créant le cahier de notes destination en période $lig_ccn_src->periode.
      \n"; + unset($id_cahier_notes_dest); + } + } + else { + echo "Erreur en créant le cahier de notes destination en période $lig_ccn_src->periode.
      \n"; + } + } + + if(isset($id_cahier_notes_dest)) { + $sql="SELECT * FROM cn_devoirs WHERE id_racine='$id_cahier_notes_src';"; + $res_dev_src=mysql_query($sql); + if(mysql_num_rows($res_dev_src)>0) { + while($lig_dev_src=mysql_fetch_object($res_dev_src)) { + echo "Création de $lig_dev_src->nom_court ($lig_dev_src->date) : "; + $sql="INSERT INTO cn_devoirs SET id_racine='$id_cahier_notes_dest', + id_conteneur='$id_cahier_notes_dest', + nom_court='".mysql_real_escape_string($lig_dev_src->nom_court)."', + nom_complet='".mysql_real_escape_string($lig_dev_src->nom_complet)."', + description='".mysql_real_escape_string($lig_dev_src->description)."', + facultatif='".$lig_dev_src->facultatif."', + date='".$lig_dev_src->date."', + coef='".$lig_dev_src->coef."', + note_sur='".$lig_dev_src->note_sur."', + ramener_sur_referentiel='".$lig_dev_src->ramener_sur_referentiel."', + display_parents='".$lig_dev_src->display_parents."', + display_parents_app='".$lig_dev_src->display_parents_app."', + date_ele_resp='".$lig_dev_src->date_ele_resp."';"; + //echo "$sql
      \n"; + $creation_dev=mysql_query($sql); + if($creation_dev) { + echo "SUCCES"; + $id_devoir_dest=mysql_insert_id(); + + if(isset($notes_aleatoires)) { + $nb_notes=0; + foreach($current_group_dest['eleves'][$lig_ccn_src->periode]['list'] as $login_ele) { + $note=rand(0, $lig_dev_src->note_sur+1); + if($note>$lig_dev_src->note_sur) { + $sql="INSERT INTO cn_notes_devoirs SET id_devoir='$id_devoir_dest', login='$login_ele', note='0.0', statut='abs';"; + } + else { + $sql="INSERT INTO cn_notes_devoirs SET id_devoir='$id_devoir_dest', login='$login_ele', note='$note.0';"; + } + $insert_note=mysql_query($sql); + if($insert_note) { + $nb_notes++; + } + } + echo " $nb_notes note(s) générée(s)"; + } + + } + else { + echo "ECHEC"; + } + echo "
      "; + } + echo "Mise à jour des moyennes de conteneurs.
      "; + $arret = 'no'; + mise_a_jour_moyennes_conteneurs($current_group_dest, $lig_ccn_src->periode,$id_cahier_notes_dest,$id_cahier_notes_dest,$arret); + + foreach($current_group_dest['eleves'][$lig_ccn_src->periode]['list'] as $login_ele) { + $sql="SELECT * FROM cn_notes_conteneurs WHERE login='$login_ele' AND id_conteneur='$id_cahier_notes_dest' AND statut='y'"; + $res_moy_carnet=mysql_query($sql); + if(mysql_num_rows($res_moy_carnet)==0){ + $moy_carnet="-"; + } + else{ + $lig_moy_carnet=mysql_fetch_object($res_moy_carnet); + $moy_carnet=$lig_moy_carnet->note; + + $sql="DELETE FROM matieres_notes WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; + $insert=mysql_query($sql); + + if($moy_carnet>=15) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Bon travail. Continuez.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=12) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=9) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='C\'est trop moyen. Vous ne faites pas le maximum.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=6) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Il faut se mettre au travail.';"; + $insert=mysql_query($sql); + } + else { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; + $insert=mysql_query($sql); + } + + } + } + } + } + echo "
      \n"; + } + } + + if($copier_cdt=="y") { + $cpt_cte=0; + $cpt_ctd=0; + $sql="SELECT * FROM ct_entry WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY date_ct;"; + $res_cte=mysql_query($sql); + while($lig_cte=mysql_fetch_object($res_cte)) { + $sql="INSERT INTO ct_entry SET id_groupe='".$id_groupe_dest[$i]."', heure_entry='".$lig_cte->heure_entry."', date_ct='".$lig_cte->date_ct."', id_login='".$lig_cte->id_login."', contenu='".mysql_real_escape_string($lig_cte->contenu)."', vise='".$lig_cte->vise."', id_sequence='".$lig_cte->id_sequence."', visa='".$lig_cte->visa."';"; + //echo "$sql
      "; + $insert=mysql_query($sql); + if($insert) { + $id_ct_cte=mysql_insert_id(); + $sql="SELECT * FROM ct_documents WHERE id_ct='$id_ct_cte';"; + //echo "$sql
      "; + $res_ctd=mysql_query($sql); + while($lig_ctd=mysql_fetch_object($res_ctd)) { + // ATTENTION: On pointe vers le même fichier... donc attention en cas de suppression, c'est pour les deux. + $sql="INSERT INTO ct_documents SET id_ct='$id_ct_cte', titre='".$lig_ctd->titre."', taille='".$lig_ctd->taille."', emplacement='".$lig_ctd->emplacement."', visible_eleve_parent='".$lig_ctd->visible_eleve_parent."';"; + $insert=mysql_query($sql); + if($insert) { + $cpt_ctd++; + } + } + $cpt_cte++; + } + } + + $cpt_ctde=0; + $cpt_ctdd=0; + $sql="SELECT * FROM ct_devoirs_entry WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY date_ct;"; + $res_cte=mysql_query($sql); + while($lig_cte=mysql_fetch_object($res_cte)) { + $sql="INSERT INTO ct_devoirs_entry SET id_groupe='".$id_groupe_dest[$i]."',date_ct='".$lig_cte->date_ct."', id_login='".$lig_cte->id_login."', contenu='".mysql_real_escape_string($lig_cte->contenu)."', vise='".$lig_cte->vise."', id_sequence='".$lig_cte->id_sequence."', date_visibilite_eleve='".$lig_cte->date_visibilite_eleve."';"; + //echo "$sql
      "; + $insert=mysql_query($sql); + if($insert) { + $id_ct_cte=mysql_insert_id(); + $sql="SELECT * FROM ct_devoirs_documents WHERE id_ct_devoir='$id_ct_cte';"; + //echo "$sql
      "; + $res_ctd=mysql_query($sql); + while($lig_ctd=mysql_fetch_object($res_ctd)) { + // ATTENTION: On pointe vers le même fichier... donc attention en cas de suppression, c'est pour les deux. + $sql="INSERT INTO ct_devoirs_documents SET id_ct='$id_ct_cte', titre='".$lig_ctd->titre."', taille='".$lig_ctd->taille."', emplacement='".$lig_ctd->emplacement."', visible_eleve_parent='".$lig_ctd->visible_eleve_parent."';"; + $insert=mysql_query($sql); + if($insert) { + $cpt_ctdd++; + } + } + $cpt_ctde++; + } + } + + echo "

      CDT
      "; + echo "$cpt_cte notice(s) de comptes-rendus copiée(s).
      "; + echo "$cpt_ctd document(s) joint(s) à des notices de comptes-rendus copiée(s).
      "; + echo "$cpt_ctde notice(s) de devoirs copiée(s).
      "; + echo "$cpt_ctdd document(s) joint(s) à des notices de devoirs copiée(s).
      "; + } + + echo "

      \n"; + } + } + elseif(isset($new_groupe_dest[$i])) { + $current_group_src=get_group($id_groupe_src[$i]); + echo "

      Groupe source : ".$current_group_src['name']." (".$current_group_src['description'].") en ".$current_group_src['classlist_string']."
      \n"; + + echo "Création d'un nouveau groupe dans la classe destination...
      "; + $create = create_group($current_group_src['matiere']['matiere'], $current_group_src['matiere']['nom_complet'], $current_group_src['matiere']['matiere'], array($id_classe_dest)); + if (!$create) { + //echo "\n"; + echo "Erreur lors de la création du groupe ".$current_group_src['matiere']['matiere']."
      "; + } + else { + $id_groupe_dest[$i]=$create; + + $sql="SELECT * FROM periodes WHERE id_classe='$id_classe_dest'"; + $result_list_periodes=mysql_query($sql); + while($ligne_periode=mysql_fetch_object($result_list_periodes)){ + $reg_eleves[$ligne_periode->num_periode]=array(); + //$sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$id_classe' ORDER BY periode,login"; + $sql="SELECT DISTINCT login FROM j_eleves_classes WHERE id_classe='$id_classe_dest' AND periode='$ligne_periode->num_periode' ORDER BY periode,login"; + $result_list_eleves=mysql_query($sql); + while($ligne_eleve=mysql_fetch_object($result_list_eleves)){ + $reg_eleves[$ligne_periode->num_periode][]=$ligne_eleve->login; + } + } + + $reg_professeurs=array(); + $create = update_group($id_groupe_dest[$i], $current_group_src['matiere']['matiere'], $current_group_src['matiere']['nom_complet'], $current_group_src['matiere']['matiere'], array($id_classe_dest), $reg_professeurs, $reg_eleves); + if (!$create) { + echo "Erreur lors de la mise à jour du groupe ".$current_group_src['matiere']['matiere']."
      "; + } + else { + echo "

      \n"; + $current_group_dest=get_group($id_groupe_dest[$i]); + + $sql="SELECT * FROM cn_cahier_notes WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY periode;"; + $res_ccn_src=mysql_query($sql); + if(mysql_num_rows($res_ccn_src)>0) { + while($lig_ccn_src=mysql_fetch_object($res_ccn_src)) { + unset($id_cahier_notes_dest); + + echo "

      Période $lig_ccn_src->periode

      \n"; + echo "
      \n"; + + $id_cahier_notes_src=$lig_ccn_src->id_cahier_notes; + + $sql="SELECT * FROM cn_cahier_notes WHERE id_groupe='".$id_groupe_dest[$i]."' AND periode='$lig_ccn_src->periode';"; + $res_ccn_dest=mysql_query($sql); + if(mysql_num_rows($res_ccn_dest)>0) { + $lig_ccn_dest=mysql_fetch_object($res_ccn_dest); + $id_cahier_notes_dest=$lig_ccn_dest->id_cahier_notes; + } + else { + // Création d'un cahier de notes + $sql="INSERT INTO cn_conteneurs SET id_racine='', nom_court='".mysql_real_escape_string($current_group_dest["description"])."', nom_complet='". mysql_real_escape_string($current_group_dest["matiere"]["nom_complet"])."', description = '', mode = '2', coef = '1.0', arrondir = 's1', ponderation = '0.0', display_parents = '0', display_bulletin = '1', parent = '0'"; + $creation_cnc=mysql_query($sql); + if($creation_cnc) { + $id_cahier_notes_dest=mysql_insert_id(); + + $sql="INSERT INTO cn_cahier_notes SET id_cahier_notes='$id_cahier_notes_dest', id_groupe='$id_groupe_dest[$i]', periode='$lig_ccn_src->periode';"; + $creation_ccn=mysql_query($sql); + if(!$creation_ccn) { + echo "Erreur en créant le cahier de notes destination en période $lig_ccn_src->periode.
      \n"; + unset($id_cahier_notes_dest); + } + } + else { + echo "Erreur en créant le cahier de notes destination en période $lig_ccn_src->periode.
      \n"; + } + } + + if(isset($id_cahier_notes_dest)) { + $sql="SELECT * FROM cn_devoirs WHERE id_racine='$id_cahier_notes_src';"; + $res_dev_src=mysql_query($sql); + if(mysql_num_rows($res_dev_src)>0) { + while($lig_dev_src=mysql_fetch_object($res_dev_src)) { + echo "Création de $lig_dev_src->nom_court ($lig_dev_src->date) : "; + $sql="INSERT INTO cn_devoirs SET id_racine='$id_cahier_notes_dest', + id_conteneur='$id_cahier_notes_dest', + nom_court='".mysql_real_escape_string($lig_dev_src->nom_court)."', + nom_complet='".mysql_real_escape_string($lig_dev_src->nom_complet)."', + description='".mysql_real_escape_string($lig_dev_src->description)."', + facultatif='".$lig_dev_src->facultatif."', + date='".$lig_dev_src->date."', + coef='".$lig_dev_src->coef."', + note_sur='".$lig_dev_src->note_sur."', + ramener_sur_referentiel='".$lig_dev_src->ramener_sur_referentiel."', + display_parents='".$lig_dev_src->display_parents."', + display_parents_app='".$lig_dev_src->display_parents_app."', + date_ele_resp='".$lig_dev_src->date_ele_resp."';"; + //echo "$sql
      \n"; + $creation_dev=mysql_query($sql); + if($creation_dev) { + echo "SUCCES"; + $id_devoir_dest=mysql_insert_id(); + + if(isset($notes_aleatoires)) { + $nb_notes=0; + foreach($reg_eleves[$lig_ccn_src->periode] as $login_ele) { + $note=rand(0, $lig_dev_src->note_sur+1); + if($note>$lig_dev_src->note_sur) { + $sql="INSERT INTO cn_notes_devoirs SET id_devoir='$id_devoir_dest', login='$login_ele', note='0.0', statut='abs';"; + } + else { + $sql="INSERT INTO cn_notes_devoirs SET id_devoir='$id_devoir_dest', login='$login_ele', note='$note.0';"; + } + $insert_note=mysql_query($sql); + if($insert_note) { + $nb_notes++; + } + } + echo " $nb_notes note(s) générée(s)"; + } + } + else { + echo "ECHEC"; + } + echo "
      "; + } + echo "Mise à jour des moyennes de conteneurs.
      "; + $arret = 'no'; + mise_a_jour_moyennes_conteneurs($current_group_dest, $lig_ccn_src->periode,$id_cahier_notes_dest,$id_cahier_notes_dest,$arret); + + foreach($reg_eleves[$lig_ccn_src->periode] as $login_ele) { + $sql="SELECT * FROM cn_notes_conteneurs WHERE login='$login_ele' AND id_conteneur='$id_cahier_notes_dest' AND statut='y'"; + $res_moy_carnet=mysql_query($sql); + if(mysql_num_rows($res_moy_carnet)==0){ + $moy_carnet="-"; + } + else{ + $lig_moy_carnet=mysql_fetch_object($res_moy_carnet); + $moy_carnet=$lig_moy_carnet->note; + + $sql="DELETE FROM matieres_notes WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; + $insert=mysql_query($sql); + + if($moy_carnet>=15) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Bon travail. Continuez.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=12) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=9) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='C\'est trop moyen. Vous ne faites pas le maximum.';"; + $insert=mysql_query($sql); + } + elseif($moy_carnet>=6) { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Il faut se mettre au travail.';"; + $insert=mysql_query($sql); + } + else { + $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; + $menage=mysql_query($sql); + + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; + $insert=mysql_query($sql); + } + + } + } + } + } + echo "
      \n"; + } + } + + if($copier_cdt=="y") { + $cpt_cte=0; + $cpt_ctd=0; + $sql="SELECT * FROM ct_entry WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY date_ct;"; + $res_cte=mysql_query($sql); + while($lig_cte=mysql_fetch_object($res_cte)) { + $sql="INSERT INTO ct_entry SET id_groupe='".$id_groupe_dest[$i]."', heure_entry='".$lig_cte->heure_entry."', date_ct='".$lig_cte->date_ct."', id_login='".$lig_cte->id_login."', contenu='".mysql_real_escape_string($lig_cte->contenu)."', vise='".$lig_cte->vise."', id_sequence='".$lig_cte->id_sequence."', visa='".$lig_cte->visa."';"; + //echo "$sql
      "; + $insert=mysql_query($sql); + if($insert) { + $id_ct_cte=mysql_insert_id(); + $sql="SELECT * FROM ct_documents WHERE id_ct='$id_ct_cte';"; + //echo "$sql
      "; + $res_ctd=mysql_query($sql); + while($lig_ctd=mysql_fetch_object($res_ctd)) { + // ATTENTION: On pointe vers le même fichier... donc attention en cas de suppression, c'est pour les deux. + $sql="INSERT INTO ct_documents SET id_ct='$id_ct_cte', titre='".$lig_ctd->titre."', taille='".$lig_ctd->taille."', emplacement='".$lig_ctd->emplacement."', visible_eleve_parent='".$lig_ctd->visible_eleve_parent."';"; + //echo "$sql
      "; + $insert=mysql_query($sql); + if($insert) { + $cpt_ctd++; + } + } + $cpt_cte++; + } + } + + $cpt_ctde=0; + $cpt_ctdd=0; + $sql="SELECT * FROM ct_devoirs_entry WHERE id_groupe='".$id_groupe_src[$i]."' ORDER BY date_ct;"; + $res_cte=mysql_query($sql); + while($lig_cte=mysql_fetch_object($res_cte)) { + $sql="INSERT INTO ct_devoirs_entry SET id_groupe='".$id_groupe_dest[$i]."',date_ct='".$lig_cte->date_ct."', id_login='".$lig_cte->id_login."', contenu='".mysql_real_escape_string($lig_cte->contenu)."', vise='".$lig_cte->vise."', id_sequence='".$lig_cte->id_sequence."', date_visibilite_eleve='".$lig_cte->date_visibilite_eleve."';"; + //echo "$sql
      "; + $insert=mysql_query($sql); + if($insert) { + $id_ct_cte=mysql_insert_id(); + $sql="SELECT * FROM ct_devoirs_documents WHERE id_ct_devoir='$id_ct_cte';"; + //echo "$sql
      "; + $res_ctd=mysql_query($sql); + while($lig_ctd=mysql_fetch_object($res_ctd)) { + // ATTENTION: On pointe vers le même fichier... donc attention en cas de suppression, c'est pour les deux. + $sql="INSERT INTO ct_devoirs_documents SET id_ct='$id_ct_cte', titre='".$lig_ctd->titre."', taille='".$lig_ctd->taille."', emplacement='".$lig_ctd->emplacement."', visible_eleve_parent='".$lig_ctd->visible_eleve_parent."';"; + $insert=mysql_query($sql); + if($insert) { + $cpt_ctdd++; + } + } + $cpt_ctde++; + } + } + + echo "

      CDT
      "; + echo "$cpt_cte notice(s) de comptes-rendus copiée(s).
      "; + echo "$cpt_ctd document(s) joint(s) à des notices de comptes-rendus copiée(s).
      "; + echo "$cpt_ctde notice(s) de devoirs copiée(s).
      "; + echo "$cpt_ctdd document(s) joint(s) à des notices de devoirs copiée(s).
      "; + + } + + echo "

      \n"; + } + } + } + } + + +} + +echo "
      +

      NOTES : Page destinée à mettre en place rapidement des groupes et devoirs dans une classe de test.
      +Cette page a été réalisée pour insérer rapidement des données afin de présenter Gepi à des parents d'élèves lors d'une journée portes ouvertes.

      \n"; +require("../lib/footer.inc.php"); +?> diff --git a/gestion/gestion_base_test.php b/gestion/gestion_base_test.php index 546484647..ed61a4c40 100644 --- a/gestion/gestion_base_test.php +++ b/gestion/gestion_base_test.php @@ -727,5 +727,8 @@ function get_content($db, $table,$from,$limit) { echo "

      Documentation de la base de test :

      \n"; include("../backup/$dirname/doc.html"); +echo "
      "; +echo "

      Avec une base contenant déjà des données, vous pouvez procéder à des recopies de devoirs, CDT,... d'une classe vers une autre

      \n"; + require("../lib/footer.inc.php"); ?> From 142de9aed123e56842966e9b2bc61393f7dbbdf4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Mar 2013 21:10:05 +0100 Subject: [PATCH 0569/1150] =?UTF-8?q?Ajout=20d'une=20fonction=20pour=20r?= =?UTF-8?q?=C3=A9cup=C3=A9rer=20les=20profs=20associ=C3=A9s=20=C3=A0=20une?= =?UTF-8?q?=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/lib/share.inc.php b/lib/share.inc.php index 6959a71d9..957093eee 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6497,4 +6497,27 @@ function function_maintien_session() { \n"; } +/** Fonction destinée à récupérer la liste des enseignants associés à une matière + */ +function get_profs_for_matiere($matiere) { + $tab=array(); + + $sql="SELECT u.login, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_professeurs_matieres jpm WHERE jpm.id_professeur=u.login AND jpm.id_matiere='".$matiere."' ORDER BY u.nom, u.prenom;"; + echo "$sql
      "; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $tab[$cpt]['login']=$lig->login; + $tab[$cpt]['nom']=$lig->nom; + $tab[$cpt]['prenom']=$lig->prenom; + $tab[$cpt]['civilite']=$lig->civilite; + $tab[$cpt]['civ_nom_prenom']=$lig->civilite." ".$lig->nom." ".$lig->prenom; + $cpt++; + } + } + + return $tab; +} + ?> From 3a1973fa46b0820e16f4a88ff4ace61ef7ae478d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Mar 2013 21:10:06 +0100 Subject: [PATCH 0570/1150] =?UTF-8?q?Lors=20de=20l'ajout=20de=20groupe,=20?= =?UTF-8?q?on=20prend=20le=20premier=20prof=20associ=C3=A9=20=C3=A0=20la?= =?UTF-8?q?=20mati=C3=A8re.=20Ouverture=20de=20la=20visibilit=C3=A9=20sur?= =?UTF-8?q?=20les=20app.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes_admin/copie_tous_dev.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/cahier_notes_admin/copie_tous_dev.php b/cahier_notes_admin/copie_tous_dev.php index 0885321ae..436536928 100644 --- a/cahier_notes_admin/copie_tous_dev.php +++ b/cahier_notes_admin/copie_tous_dev.php @@ -245,6 +245,17 @@ $groups_dest=get_groups_for_class($id_classe_dest); */ + $sql="DELETE FROM matieres_appreciations_acces WHERE id_classe='$id_classe_dest';"; + $menage=mysql_query($sql); + $sql="SELECT num_periode FROM periodes WHERE id_classe='$id_classe_dest' ORDER BY num_periode;"; + $res_per=mysql_query($sql); + while($lig_per=mysql_fetch_object($res_per)) { + $sql="INSERT INTO matieres_appreciations_acces SET id_classe='$id_classe_dest', periode='$lig_per->num_periode', statut='responsable', date='0000-00-00', acces='y';"; + $insert=mysql_query($sql); + $sql="INSERT INTO matieres_appreciations_acces SET id_classe='$id_classe_dest', periode='$lig_per->num_periode', statut='eleve', date='0000-00-00', acces='y';"; + $insert=mysql_query($sql); + } + for($i=0;$i<$cpt_grp;$i++) { if((isset($id_groupe_dest[$i]))&&($id_groupe_dest[$i]!='')) { $current_group_src=get_group($id_groupe_src[$i]); @@ -358,6 +369,7 @@ $menage=mysql_query($sql); $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; + echo "$sql
      "; $insert=mysql_query($sql); if($moy_carnet>=15) { @@ -491,6 +503,12 @@ } $reg_professeurs=array(); + + $tmp_tab_prof=get_profs_for_matiere($current_group_src['matiere']['matiere']); + if(isset($tmp_tab_prof[0]['login'])) { + $reg_professeurs=array($tmp_tab_prof[0]['login']); + } + $create = update_group($id_groupe_dest[$i], $current_group_src['matiere']['matiere'], $current_group_src['matiere']['nom_complet'], $current_group_src['matiere']['matiere'], array($id_classe_dest), $reg_professeurs, $reg_eleves); if (!$create) { echo "Erreur lors de la mise à jour du groupe ".$current_group_src['matiere']['matiere']."
      "; @@ -601,6 +619,7 @@ $menage=mysql_query($sql); $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; + echo "$sql
      "; $insert=mysql_query($sql); if($moy_carnet>=15) { From 4920390f2e60f8e24c780d9f9aac08f49d4b4ba1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 20 Mar 2013 21:11:43 +0100 Subject: [PATCH 0571/1150] =?UTF-8?q?Correctif:=20Erreur=20quand=20il=20n'?= =?UTF-8?q?y=20a=20aucun=20cpe=20associ=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/visu_profs_eleve.php | 48 +++++++++++++++++++----------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/groupes/visu_profs_eleve.php b/groupes/visu_profs_eleve.php index 2d20fb020..68fa369ff 100644 --- a/groupes/visu_profs_eleve.php +++ b/groupes/visu_profs_eleve.php @@ -177,31 +177,35 @@ echo "\n"; // On commence par le CPE - $req = mysql_query("SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . "FROM utilisateurs u,j_eleves_cpe jec " . "WHERE jec.e_login='".$login_eleve."' AND " . "u.login=jec.cpe_login " . - "ORDER BY jec.cpe_login"); - // Il ne doit y en avoir qu'un... - $cpe = mysql_fetch_object($req); - echo "\n"; - echo "\n"; + "ORDER BY jec.cpe_login;"; + //echo "$sql
      "; + $req = mysql_query($sql); + if(mysql_num_rows($req)>0) { + // Il ne doit y en avoir qu'un... + $cpe = mysql_fetch_object($req); + echo "\n"; + echo "\n"; + } // On passe maintenant les groupes un par un, sans se préoccuper de la période : on affiche tous les groupes // auxquel l'élève appartient ou a appartenu From 3a283198c4351f098ea909ed32b06d08e858c8b3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 21 Mar 2013 13:30:34 +0100 Subject: [PATCH 0572/1150] =?UTF-8?q?Correctif=20sur=20les=20droits=20d'ac?= =?UTF-8?q?c=C3=A8s=20prof=20dans=20le=20cas=20PP.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prepa_conseil/edit_limite.php | 108 +++++++++++++++++++++++++++++++++- prepa_conseil/index3.php | 47 ++++++++++++++- 2 files changed, 152 insertions(+), 3 deletions(-) diff --git a/prepa_conseil/edit_limite.php b/prepa_conseil/edit_limite.php index ca853328a..81cf26864 100644 --- a/prepa_conseil/edit_limite.php +++ b/prepa_conseil/edit_limite.php @@ -130,7 +130,44 @@ } if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesBulletinSimpleProfToutesClasses") != "yes") { - $test = mysql_num_rows(mysql_query("SELECT jgc.* FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jgc.id_groupe = jgp.id_groupe AND jgc.id_classe = '".$id_classe."')")); + // On vérifie si le prof peut pour une raison (droit) ou une autre accéder à au moins un élève de la classe + if(is_pp($_SESSION['login'], $id_classe)) { + if(getSettingAOui('GepiAccesBulletinSimpleProf')) { + $sql="(SELECT jgc.id_classe FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jgc.id_groupe = jgp.id_groupe AND jgc.id_classe = '".$id_classe."')) " . + "UNION (SELECT jec.id_classe " . + "FROM j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."'));"; + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jep.login AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."') ORDER BY e.nom,e.prenom;"; + } + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."') " . + "ORDER BY e.nom,e.prenom"; + } + //echo "$sql
      "; + $res_test = mysql_query($sql); + + $test = mysql_num_rows($res_test); + //$test = mysql_num_rows(mysql_query("SELECT jgc.* FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jgc.id_groupe = jgp.id_groupe AND jgc.id_classe = '".$id_classe."')")); + if ($test == "0") { tentative_intrusion("2", "Tentative d'accès par un prof à une classe (".$nom_classe.") dans laquelle il n'enseigne pas, sans en avoir l'autorisation."); echo "Vous ne pouvez pas accéder à cette classe car vous n'y êtes pas professeur !"; @@ -143,8 +180,31 @@ getSettingValue("GepiAccesBulletinSimpleProfToutesClasses") != "yes" AND getSettingValue("GepiAccesBulletinSimpleProfTousEleves") != "yes" AND $choix_edit == "2") { + //$choix_edit==2 : on teste le droit du prof d'accéder au bulletin d'un élève en particulier. + + if(is_pp($_SESSION['login'], "", $login_eleve)) { + if(getSettingAOui('GepiAccesBulletinSimpleProf')) { + $sql="(SELECT jeg.login FROM j_eleves_groupes jeg, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jgp.id_groupe = jeg.id_groupe AND jeg.login = '".$login_eleve."')) " . + "UNION (SELECT DISTINCT jep.login " . + "FROM j_eleves_professeurs jep " . + "WHERE (" . + "jep.login='$login_eleve' AND " . + "jep.professeur = '".$_SESSION['login']."'));"; + } + else { + $sql="SELECT DISTINCT jep.login " . + "FROM j_eleves_professeurs jep " . + "WHERE (" . + "jep.login='$login_eleve' AND " . + "jep.professeur = '".$_SESSION['login']."');"; + } + } + else { + $sql="SELECT jeg.* FROM j_eleves_groupes jeg, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jeg.id_groupe = jgp.id_groupe AND jeg.login = '".$login_eleve."')"; + } + //echo "$sql
      "; - $test = mysql_num_rows(mysql_query("SELECT jeg.* FROM j_eleves_groupes jeg, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jeg.id_groupe = jgp.id_groupe AND jeg.login = '".$login_eleve."')")); + $test = mysql_num_rows(mysql_query($sql)); if ($test == "0") { tentative_intrusion("2", "Tentative d'accès par un prof à un bulletin simplifié d'un élève ($login_eleve) qu'il n'a pas en cours, sans en avoir l'autorisation."); echo "Vous ne pouvez pas accéder à cet élève !"; @@ -319,6 +379,7 @@ //if ($choix_edit == '1') { if (($choix_edit == '1')||(!isset($login_prof))) { // On a alors $choix_edit==1 ou $choix_edit==4 + /* $appel_liste_eleves = mysql_query("SELECT DISTINCT e.* " . "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . "WHERE (" . @@ -328,6 +389,49 @@ "jeg.id_groupe = jgp.id_groupe AND " . "jgp.login = '".$_SESSION['login']."') " . "ORDER BY e.nom,e.prenom"); + */ + if(is_pp($_SESSION['login'], $id_classe)) { + if(getSettingAOui('GepiAccesBulletinSimpleProf')) { + $sql="(SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."')) " . + "UNION (SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jep.login AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."')) ORDER BY nom,prenom;"; + $appel_liste_eleves = mysql_query($sql); + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jep.login AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."') ORDER BY e.nom,e.prenom;"; + $appel_liste_eleves = mysql_query($sql); + } + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."') " . + "ORDER BY e.nom,e.prenom"; + $appel_liste_eleves = mysql_query($sql); + } } else { // On a alors $choix_edit==3 uniquement les élèves du professeur principal $login_prof $appel_liste_eleves = mysql_query("SELECT DISTINCT e.* " . diff --git a/prepa_conseil/index3.php b/prepa_conseil/index3.php index 39692f90b..118c64d8b 100644 --- a/prepa_conseil/index3.php +++ b/prepa_conseil/index3.php @@ -396,7 +396,7 @@ function change_periode(){ echo "/>\n"; echo "
      \n"; @@ -441,6 +441,7 @@ function change_periode(){ //if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes" AND getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") { if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesBulletinSimpleProfTousEleves") != "yes" AND getSettingValue("GepiAccesBulletinSimpleProfToutesClasses") != "yes") { + /* $sql="SELECT DISTINCT e.* " . "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . "WHERE (" . @@ -450,6 +451,50 @@ function change_periode(){ "jeg.id_groupe = jgp.id_groupe AND " . "jgp.login = '".$_SESSION['login']."') " . "ORDER BY e.nom,e.prenom"; + */ + if(is_pp($_SESSION['login'], $id_classe)) { + if(getSettingAOui('GepiAccesBulletinSimpleProf')) { + $sql="(SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."')) " . + "UNION (SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jep.login AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."')) ORDER BY nom,prenom;"; + $appel_liste_eleves = mysql_query($sql); + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_professeurs jep " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jep.login AND " . + "jep.login = jec.login AND " . + "jep.professeur = '".$_SESSION['login']."') ORDER BY e.nom,e.prenom;"; + $appel_liste_eleves = mysql_query($sql); + } + } + else { + $sql="SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."') " . + "ORDER BY e.nom,e.prenom"; + $appel_liste_eleves = mysql_query($sql); + } + } else { $sql="SELECT DISTINCT e.* FROM eleves e, j_eleves_classes j WHERE (j.id_classe = '$id_classe' and j.login=e.login) order by nom"; } From ea6fb4d0dbe67e6dbe3b39466d2a75c0d04b7565 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 21 Mar 2013 14:38:37 +0100 Subject: [PATCH 0573/1150] =?UTF-8?q?Correctif=20sur=20le=20nom=20du=20cha?= =?UTF-8?q?mp=20appr=C3=A9ciation=20et=20sur=20un=20affichage=20de=20debug?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes_admin/copie_tous_dev.php | 31 ++++++++++++++++----------- lib/share.inc.php | 2 +- 2 files changed, 19 insertions(+), 14 deletions(-) diff --git a/cahier_notes_admin/copie_tous_dev.php b/cahier_notes_admin/copie_tous_dev.php index 436536928..044bf51e6 100644 --- a/cahier_notes_admin/copie_tous_dev.php +++ b/cahier_notes_admin/copie_tous_dev.php @@ -369,42 +369,42 @@ $menage=mysql_query($sql); $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; - echo "$sql
      "; + //echo "$sql
      "; $insert=mysql_query($sql); if($moy_carnet>=15) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Bon travail. Continuez.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Bon travail. Continuez.';"; $insert=mysql_query($sql); } elseif($moy_carnet>=12) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; $insert=mysql_query($sql); } elseif($moy_carnet>=9) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='C\'est trop moyen. Vous ne faites pas le maximum.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='C\'est trop moyen. Vous ne faites pas le maximum.';"; $insert=mysql_query($sql); } elseif($moy_carnet>=6) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Il faut se mettre au travail.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Il faut se mettre au travail.';"; $insert=mysql_query($sql); } else { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; $insert=mysql_query($sql); } @@ -619,42 +619,47 @@ $menage=mysql_query($sql); $sql="INSERT INTO matieres_notes SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', note='$moy_carnet';"; - echo "$sql
      "; + //echo "$sql
      "; $insert=mysql_query($sql); if($moy_carnet>=15) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Bon travail. Continuez.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Bon travail. Continuez.';"; + //echo "$sql
      "; $insert=mysql_query($sql); } elseif($moy_carnet>=12) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Ensemble correct. Vous pouvez mieux faire en vous investissant davantage.';"; + //echo "$sql
      "; $insert=mysql_query($sql); } elseif($moy_carnet>=9) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='C\'est trop moyen. Vous ne faites pas le maximum.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='C\'est trop moyen. Vous ne faites pas le maximum.';"; + //echo "$sql
      "; $insert=mysql_query($sql); } elseif($moy_carnet>=6) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Il faut se mettre au travail.';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Il faut se mettre au travail.';"; + //echo "$sql
      "; $insert=mysql_query($sql); } - else { + elseif($moy_carnet>=0) { $sql="DELETE FROM matieres_appreciations WHERE id_groupe='".$id_groupe_dest[$i]."' AND login='$login_ele' AND periode='$lig_ccn_src->periode';"; $menage=mysql_query($sql); - $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', app='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; + $sql="INSERT INTO matieres_appreciations SET id_groupe='".$id_groupe_dest[$i]."', login='$login_ele', periode='$lig_ccn_src->periode', appreciation='Ensemble faible. La bonne volonté est-elle au rendez-vous?';"; + //echo "$sql
      "; $insert=mysql_query($sql); } diff --git a/lib/share.inc.php b/lib/share.inc.php index 957093eee..4c039c4c4 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6503,7 +6503,7 @@ function get_profs_for_matiere($matiere) { $tab=array(); $sql="SELECT u.login, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_professeurs_matieres jpm WHERE jpm.id_professeur=u.login AND jpm.id_matiere='".$matiere."' ORDER BY u.nom, u.prenom;"; - echo "$sql
      "; + //echo "$sql
      "; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $cpt=0; From 1c62fa278273243ba40fba72a51e28281cb58007 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 22 Mar 2013 19:16:16 +0100 Subject: [PATCH 0574/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20choisir=20une?= =?UTF-8?q?=20autre=20adresse=20email=20dans=20les=20flux=20RSS.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_admin/rss_cdt_admin.php | 32 ++++- class_php/syndication.php | 117 +++++++++++------- .../cahier_texte_admin/rss_cdt_template.php | 49 +++++++- 3 files changed, 154 insertions(+), 44 deletions(-) diff --git a/cahier_texte_admin/rss_cdt_admin.php b/cahier_texte_admin/rss_cdt_admin.php index 680ef85b4..aed89430b 100644 --- a/cahier_texte_admin/rss_cdt_admin.php +++ b/cahier_texte_admin/rss_cdt_admin.php @@ -63,7 +63,8 @@ $lienFlux=array(); $a=0; - +$rss_email_mode=isset($_POST["rss_email_mode"]) ? $_POST["rss_email_mode"] : NULL; +$rss_email_prof=isset($_POST["rss_email_prof"]) ? $_POST["rss_email_prof"] : "n"; // ======================== Traitement des données ======================== // @@ -88,6 +89,21 @@ } } + +if (isset($rss_email_mode)) { + check_token(); + $save_d = saveSetting("rss_email_mode", $rss_email_mode); + if (!$save_d) { + $msg .= '

      La modification n\'a pas été enregistrée.

      '; + } + + $save_d = saveSetting("rss_email_prof", $rss_email_prof); + if (!$save_d) { + $msg .= '

      La modification n\'a pas été enregistrée.

      '; + } +} + + // On teste si l'admin veut autoriser les flux pour créer la table adéquate $test_table = mysql_num_rows(mysql_query("SHOW TABLES LIKE 'rss_users'")); @@ -209,6 +225,20 @@ $style_ele_csv = ' checked="checked"'; } +if (getSettingValue("rss_email_mode") == "email_admin") { + $style_email_adm = ' checked="checked"'; + $style_email_etab = ''; +}else{ + $style_email_etab = ' checked="checked"'; + $style_email_adm = ''; +} + +if (getSettingAOui("rss_email_prof")) { + $style_email_prof = ' checked="checked"'; +}else{ + $style_email_prof = ''; +} + if ($msg=="" && ($action=="modifier"||$rss_acces_ele)) { $msg = "Les modifications ont été enregistrées !"; diff --git a/class_php/syndication.php b/class_php/syndication.php index 0aa2555e2..f6cc0b8de 100644 --- a/class_php/syndication.php +++ b/class_php/syndication.php @@ -18,53 +18,76 @@ // On vérifie si la table des uri existe (si elle existe, elle est forcément remplie $test_table = mysql_num_rows(mysql_query("SHOW TABLES LIKE 'rss_users'")); - if ($test_table == 0) { +if ($test_table == 0) { + die(); +} +else { - die(); + // On peut alors vérifier si l'uri demandée est la bonne + $test_uri = mysql_num_rows(mysql_query("SELECT id FROM rss_users WHERE user_login = '".$eleve_l."' AND user_uri = '".$uri."' LIMIT 1")); + if ($test_uri == 1) { + // C'est bon, on peut générer les réponses }else{ - - // On peut alors vérifier si l'uri demandée est la bonne - $test_uri = mysql_num_rows(mysql_query("SELECT id FROM rss_users WHERE user_login = '".$eleve_l."' AND user_uri = '".$uri."' LIMIT 1")); - - if ($test_uri == 1) { - // C'est bon, on peut générer les réponses - }else{ - - die(); - - } - + die(); } +} + +$rss_email_mode=getSettingValue('rss_email_mode'); +$rss_email_prof=getSettingAOui('rss_email_prof'); +if($rss_email_mode=='email_admin') { + $rss_email_defaut=getSettingValue('gepiAdminAdress'); +} +else { + $rss_email_defaut=getSettingValue('gepiSchoolEmail'); +} +$tab_rss_infos_prof=array(); // =========================== Cahier de textes ================================= if ($type_rss == "cdt") { - $items = retourneDevoirs($eleve_l); - function get_prof_login($prof_l){ - /* - * permet de construire le nom du prof avec la bonne civilité - */ - $sql = "SELECT nom, civilite FROM utilisateurs WHERE login = '".$prof_l."' AND statut = 'professeur'"; - $query = mysql_query($sql); - $test = mysql_num_rows($query); - if ($test == 1) { - // c'est bon, on construit son nom - $prof = mysql_fetch_array($query); - if (isset($prof["civilite"])) { - $civilite = $prof["civilite"]; - }else{ - $civilite = ""; + $items = retourneDevoirs($eleve_l); + function get_prof_login($prof_l) { + global $tab_rss_infos_prof, $rss_email_prof; + + if(isset($tab_rss_infos_prof[$prof_l]["civ_nom"])) { + $rep=$tab_rss_infos_prof[$prof_l]["civ_nom"]; + } + else { + /* + * permet de construire le nom du prof avec la bonne civilité + */ + $sql = "SELECT nom, civilite, show_email, email FROM utilisateurs WHERE login = '".$prof_l."' AND statut = 'professeur'"; + $query = mysql_query($sql); + $test = mysql_num_rows($query); + if ($test == 1) { + // c'est bon, on construit son nom + $prof = mysql_fetch_array($query); + if (isset($prof["civilite"])) { + $civilite = $prof["civilite"]; + } + else { + $civilite = ""; + } + $rep = $civilite.' '.$prof["nom"]; + + $tab_rss_infos_prof[$prof_l]["civ_nom"]=$rep; + if($rss_email_prof) { + if($prof["show_email"]=="yes") { + $tab_rss_infos_prof[$prof_l]["email"]=$prof["email"]; + } + } + } + else { + $rep = 'Erreur dans la reconnaissance de l\'enseignant'; } - $rep = $civilite.' '.$prof["nom"]; - }else{ - $rep = 'Erreur dans la reconnaissance de l\'enseignant'; } + return $rep; - } - $noms["nom"] = $noms["prenom"] = NULL; - $noms = mysql_fetch_array(mysql_query("SELECT nom, prenom FROM eleves WHERE login = '".$eleve_l."' LIMIT 1")); - $title_rss = 'Cahier de textes - '.getSettingValue("gepiSchoolName").' ('.getSettingValue("gepiYear").').'; - $description_rss = 'Les devoirs à faire de '.$noms["nom"].' '.$noms["prenom"]; + } + $noms["nom"] = $noms["prenom"] = NULL; + $noms = mysql_fetch_array(mysql_query("SELECT nom, prenom FROM eleves WHERE login = '".$eleve_l."' LIMIT 1")); + $title_rss = 'Cahier de textes - '.getSettingValue("gepiSchoolName").' ('.getSettingValue("gepiYear").').'; + $description_rss = 'Les devoirs à faire de '.$noms["nom"].' '.$noms["prenom"]; } // =========================fin des cahiers de textes =========================== @@ -83,8 +106,10 @@ function get_prof_login($prof_l){ $oRssFeed->setLink($ServerProtocole.$_SERVER["SERVER_NAME"].$gepiPath); $oRssFeed->setPubDate('2007-12-31'); $oRssFeed->setLastBuildDate(date('Y-m-d')); -$oRssFeed->setWebMaster(getSettingValue("gepiSchoolEmail"),'ADMIN'); -$oRssFeed->setManagingEditor(getSettingValue("gepiSchoolEmail"),'ADMIN'); +//$oRssFeed->setWebMaster(getSettingValue("gepiSchoolEmail"),'ADMIN'); +//$oRssFeed->setManagingEditor(getSettingValue("gepiSchoolEmail"),'ADMIN'); +$oRssFeed->setWebMaster($rss_email_defaut,'ADMIN'); +$oRssFeed->setManagingEditor($rss_email_defaut,'ADMIN'); $oRssFeed->setImage($gepiPath.'/favicon.ico', 'GEPI', $ServerProtocole.$_SERVER["SERVER_NAME"]); $oRssFeed->setCopyright('(L) - GEPI '.getSettingValue('version')); $oRssFeed->setGenerator('Généré par RSSFeed Class de Hugo "Emacs" HAMON - http://www.apprendre-php.com'); @@ -100,7 +125,13 @@ function get_prof_login($prof_l){ $prof = get_prof_login($items["cdt_dev"][$a]["id_login"]); // Récupération de l'email - $sEmail = getSettingValue("gepiSchoolEmail"); + //$sEmail = getSettingValue("gepiSchoolEmail"); + if(isset($tab_rss_infos_prof[$prof]["email"])) { + $sEmail = $tab_rss_infos_prof[$prof]["email"]; + } + else { + $sEmail = $rss_email_defaut; + } $oRssItem = new RSSFeedItem(); $oRssItem->setTitle($donnees["description"].' - Pour le '.date("d-m-Y", $items["cdt_dev"][$a]["date_ct"])); @@ -135,7 +166,8 @@ function get_prof_login($prof_l){ }elseif($items["cdt_dev"]["count"] == 0){ // Récupération de l'email - $sEmail = getSettingValue("gepiSchoolEmail"); + //$sEmail = getSettingValue("gepiSchoolEmail"); + $sEmail = $rss_email_defaut; $oRssItem = new RSSFeedItem(); $oRssItem->setTitle('Le cahier de textes est vide'); $oRssItem->setDescription('Rien à afficher -> Il faut toujours revoir les leçons du jour.'); @@ -152,7 +184,8 @@ function get_prof_login($prof_l){ }else{ // Récupération de l'email - $sEmail = getSettingValue("gepiSchoolEmail"); + //$sEmail = getSettingValue("gepiSchoolEmail"); + $sEmail = $rss_email_defaut; $oRssItem = new RSSFeedItem(); $oRssItem->setTitle('ERREUR sur le CDT'); $oRssItem->setDescription('Rien à afficher -> Il faut toujours apprendre les leçons du jour.'); diff --git a/templates/origine/cahier_texte_admin/rss_cdt_template.php b/templates/origine/cahier_texte_admin/rss_cdt_template.php index 620b12f3e..206e01635 100644 --- a/templates/origine/cahier_texte_admin/rss_cdt_template.php +++ b/templates/origine/cahier_texte_admin/rss_cdt_template.php @@ -146,7 +146,7 @@
      - +
      >
      @@ -177,6 +177,53 @@
      +
      + +
      > +
      +
      + Adresse email + + Adresse email à utiliser par défaut dans les flux RSS :
      + /> + +
      + + /> + +
      + + /> + +
      + +
      + +
      + From 00524600313b1fac292bfa2b3891a1d6f3386f00 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Mar 2013 08:55:49 +0100 Subject: [PATCH 0575/1150] =?UTF-8?q?Correctif=20RSS=20dans=20le=20cas=20o?= =?UTF-8?q?=C3=B9=20il=20y=201=20seul=20responsable.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- class_php/class_page_accueil.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index feca3b17f..ebb85548d 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -1751,10 +1751,17 @@ private function fluxRSS(){ $this->canal_rss_plus.=$tab_ele_resp[$loop+1]."
      ".$uri_el["text"]."
      "; } } - else { + elseif(count($tab_ele_resp)==2) { + + $uri_el = retourneUri($tab_ele_resp[0], $this->test_https, 'cdt'); + $this->canal_rss['lien']=$uri_el["uri"]; $this->canal_rss['texte']=$uri_el["text"]; } + else { + $this->canal_rss['lien']="Aucune URL"; + $this->canal_rss['texte']="Aucun eleve trouvé."; + } } elseif(getSettingValue("rss_acces_ele") == 'csv' AND $this->statutUtilisateur == "responsable"){ $this->canal_rss=array("lien"=>"" , "texte"=>"", "mode"=>2, "expli"=>""); From 76909ec65066ebfa9565e8e18d5888fd5771e816 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Mar 2013 12:38:42 +0100 Subject: [PATCH 0576/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20cr=C3=A9er=20?= =?UTF-8?q?des=20flux=20RSS=20pour=20les=20=C3=A9l=C3=A8ves=20arriv=C3=A9s?= =?UTF-8?q?=20en=20cours=20d'ann=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_admin/rss_cdt_admin.php | 34 +++++++-- .../cahier_texte_admin/rss_cdt_template.php | 71 +++++++++++++++++++ 2 files changed, 100 insertions(+), 5 deletions(-) diff --git a/cahier_texte_admin/rss_cdt_admin.php b/cahier_texte_admin/rss_cdt_admin.php index aed89430b..3148a3eca 100644 --- a/cahier_texte_admin/rss_cdt_admin.php +++ b/cahier_texte_admin/rss_cdt_admin.php @@ -72,12 +72,12 @@ check_token(); $save = saveSetting("rss_cdt_eleve", $rss_cdt_ele); if (!$save) { - $msg .= '

      La modification n\'a pas été enregistrée.

      '."\n"; + $msg .= '

      La modification n\'a pas été enregistrée.

      '."\n"; } $save = saveSetting("rss_cdt_responsable", $rss_cdt_responsable); if (!$save) { - $msg .= '

      La modification n\'a pas été enregistrée.

      '."\n"; + $msg .= '

      La modification n\'a pas été enregistrée.

      '."\n"; } } @@ -85,7 +85,7 @@ check_token(); $save_d = saveSetting("rss_acces_ele", $rss_acces_ele); if (!$save_d) { - $msg .= '

      La modification n\'a pas été enregistrée.

      '; + $msg .= '

      La modification n\'a pas été enregistrée.

      '; } } @@ -94,15 +94,39 @@ check_token(); $save_d = saveSetting("rss_email_mode", $rss_email_mode); if (!$save_d) { - $msg .= '

      La modification n\'a pas été enregistrée.

      '; + $msg .= '

      La modification n\'a pas été enregistrée.

      '; } $save_d = saveSetting("rss_email_prof", $rss_email_prof); if (!$save_d) { - $msg .= '

      La modification n\'a pas été enregistrée.

      '; + $msg .= '

      La modification n\'a pas été enregistrée.

      '; } } +if(isset($_POST['form_rss_selection_ele_is_posted'])) { + check_token(); + + $rss_ele_a_initialiser=isset($_POST['rss_ele_a_initialiser']) ? $_POST['rss_ele_a_initialiser'] : array(); + $cpt_flux_crees=0; + for($loop=0;$loop'; + } + else { + $cpt_flux_crees++; + } + } + if($cpt_flux_crees>0) { + $msg.="

      $cpt_flux_crees flux créé(s).

      "; + } +} // On teste si l'admin veut autoriser les flux pour créer la table adéquate $test_table = mysql_num_rows(mysql_query("SHOW TABLES LIKE 'rss_users'")); diff --git a/templates/origine/cahier_texte_admin/rss_cdt_template.php b/templates/origine/cahier_texte_admin/rss_cdt_template.php index 206e01635..040e351b1 100644 --- a/templates/origine/cahier_texte_admin/rss_cdt_template.php +++ b/templates/origine/cahier_texte_admin/rss_cdt_template.php @@ -225,6 +225,77 @@ +
      > +
      +
      + Initialisation au cas par cas +"; + $res_ele_sans_flux=mysql_query($sql); + if(mysql_num_rows($res_ele_sans_flux)==0) { + echo " +

      Tous les élèves ont un flux RSS initialisé.

      \n"; + } + else { + echo " +

      ".mysql_num_rows($res_ele_sans_flux)." élève(s) n'a(ont) pas leur flux RSS initialisé.

      +
      VIE SCOLAIRE"; - // On affiche l'email s'il est non nul, si le cpe l'a autorisé, et si l'utilisateur est autorisé par les droits d'accès globaux - if ($cpe->email!="" AND $cpe->show_email == "yes" AND ( - ($_SESSION['statut'] == "responsable" AND - (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" OR - getSettingValue("GepiAccesCpePPEmailParent") == "yes")) - OR - ($_SESSION['statut'] == "eleve" AND - (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" OR - getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes") - ) - )){ - echo "".affiche_utilisateur($cpe->cpe_login,$id_classe).""; - } else { - echo affiche_utilisateur($cpe->cpe_login,$id_classe); - } - echo "
      VIE SCOLAIRE"; + // On affiche l'email s'il est non nul, si le cpe l'a autorisé, et si l'utilisateur est autorisé par les droits d'accès globaux + if ($cpe->email!="" AND $cpe->show_email == "yes" AND ( + ($_SESSION['statut'] == "responsable" AND + (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" OR + getSettingValue("GepiAccesCpePPEmailParent") == "yes")) + OR + ($_SESSION['statut'] == "eleve" AND + (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" OR + getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes") + ) + )){ + echo "".affiche_utilisateur($cpe->cpe_login,$id_classe).""; + } else { + echo affiche_utilisateur($cpe->cpe_login,$id_classe); + } + echo "
      + + + + "; + $cpt=0; + $alt=1; + while($lig_ele_sans_flux=mysql_fetch_object($res_ele_sans_flux)) { + $alt=$alt*(-1); + echo " + + + + "; + $cpt++; + } + echo " +
      Tout cocher / Tout décocherÉlève
      + + +"; +?> +
      + +

      + + +
      + + From 3b37c5a0c24ecdc83b18bbcd7afd65bc0f89e4d4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 23 Mar 2013 12:38:44 +0100 Subject: [PATCH 0577/1150] Retablissement de styles manquants --- css/style.css | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/css/style.css b/css/style.css index c735b22c0..a13de1847 100644 --- a/css/style.css +++ b/css/style.css @@ -43,6 +43,14 @@ a:active { color:red; } +.red { + color: red; +} + +.grey { + color: gray; +} + #container { margin-bottom:1em; padding-left: 1em; From eb4c8653c562ba0b004425ad51aa9dc8b8f36541 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 26 Mar 2013 15:30:13 +0100 Subject: [PATCH 0578/1150] Ajout d'un commentaire. --- visualisation/affiche_eleve.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/visualisation/affiche_eleve.php b/visualisation/affiche_eleve.php index 4e093c7ef..8594274c6 100644 --- a/visualisation/affiche_eleve.php +++ b/visualisation/affiche_eleve.php @@ -2105,7 +2105,7 @@ function eleve_suivant() { echo "\n"; echo "
      \n"; if($choix_periode=='toutes_periodes') {$checked=" checked='yes'";}else{$checked="";} - echo "\n"; + echo "\n"; echo "
      \n"; From c61767592fab582f1b32f82b1006cc5350932f31 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 26 Mar 2013 15:30:15 +0100 Subject: [PATCH 0579/1150] =?UTF-8?q?Ouverture=20du=20PDF=20dans=20un=20au?= =?UTF-8?q?tre=20onglet.=20Ajout=20de=20l'effectif=20sur=20l'=C3=A9margeme?= =?UTF-8?q?nt=20PDF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_epreuve_blanche/genere_emargement.php | 17 ++++++++++------- mod_epreuve_blanche/genere_liste_affichage.php | 8 ++++---- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/mod_epreuve_blanche/genere_emargement.php b/mod_epreuve_blanche/genere_emargement.php index a2d70631a..d6013f8f8 100644 --- a/mod_epreuve_blanche/genere_emargement.php +++ b/mod_epreuve_blanche/genere_emargement.php @@ -164,6 +164,7 @@ function Footer() global $intitule_epreuve; global $date_epreuve; global $salle_courante; + global $effectif_salle_courante; //global $num_page; //global $decompte_page; @@ -171,7 +172,8 @@ function Footer() $this->SetFont('DejaVu','',7.5); //$texte=getSettingValue("gepiSchoolName")." "; - $texte=$intitule_epreuve." ($date_epreuve) - ".$salle_courante; + //$texte=$intitule_epreuve." ($date_epreuve) - ".$salle_courante; + $texte=$intitule_epreuve." ($date_epreuve) - ".$salle_courante." - (effectif : $effectif_salle_courante)"; $lg_text=$this->GetStringWidth($texte); $this->SetXY(10,287); $this->Cell(0,5,$texte,0,0,'L'); @@ -251,7 +253,8 @@ function EnteteEmargement() $sql="SELECT e.nom, e.prenom, e.login, ec.n_anonymat FROM eb_copies ec, eleves e WHERE e.login=ec.login_ele AND ec.id_salle='$id_salle[$i]' AND ec.id_epreuve='$id_epreuve' ORDER BY e.nom,e.prenom;"; //echo "$sql
      "; $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { + $effectif_salle_courante=mysql_num_rows($res); + if($effectif_salle_courante>0) { //if($compteur>0) {$pdf->Footer();} $num_page++; @@ -503,15 +506,15 @@ function EnteteEmargement() echo "\n"; diff --git a/mod_epreuve_blanche/genere_liste_affichage.php b/mod_epreuve_blanche/genere_liste_affichage.php index 1316e8bdb..ece13b4f2 100644 --- a/mod_epreuve_blanche/genere_liste_affichage.php +++ b/mod_epreuve_blanche/genere_liste_affichage.php @@ -547,14 +547,14 @@ function EnteteListe() echo "\n"; From 0cc6b6af3d46fcd1dc272e70a15abc0725ce1152 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 26 Mar 2013 19:44:34 +0100 Subject: [PATCH 0580/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20copier=20les?= =?UTF-8?q?=20noms=20de=20p=C3=A9riodes,=20dates=20de=20fin=20d'apr=C3=A8s?= =?UTF-8?q?=20les=20autres=20classes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/periodes.php | 95 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 89 insertions(+), 6 deletions(-) diff --git a/classes/periodes.php b/classes/periodes.php index 644dc0d68..e250d34ca 100644 --- a/classes/periodes.php +++ b/classes/periodes.php @@ -91,7 +91,9 @@ $k = $nb_periode + 1; $nombre_periode++; while ($k < $nombre_periode) { - $register = mysql_query("INSERT INTO periodes SET nom_periode='période ".$k."', num_periode='$k', verouiller = 'N', id_classe='$id_classe'"); + $sql="INSERT INTO periodes SET nom_periode='période ".$k."', num_periode='$k', verouiller = 'N', id_classe='$id_classe';"; + //echo "$sql
      "; + $register = mysql_query($sql); if (!$register) {$pb_reg_per = 'yes';} $k++; } @@ -101,9 +103,9 @@ // Verrouillage et déverrouillage; changement de noms // - $date_fin_period=isset($_POST['date_fin_period']) ? $_POST['date_fin_period'] : NULL; + $date_fin_period=isset($_POST['date_fin_period']) ? $_POST['date_fin_period'] : NULL; - $periode_query = mysql_query("SELECT * FROM periodes WHERE id_classe = '$id_classe'"); + $periode_query = mysql_query("SELECT * FROM periodes WHERE id_classe = '$id_classe'"); $nb_periode = mysql_num_rows($periode_query) + 1 ; $k = "1"; while ($k < $nb_periode) { @@ -122,6 +124,7 @@ } } $sql.=" WHERE (num_periode='$k' and id_classe='$id_classe');"; + //echo "$sql
      "; $register = mysql_query($sql); if (!$register) {$pb_reg_per = 'yes';} $k++; @@ -335,10 +338,10 @@ function modif_mode_infobulle_nav() { $alt=$alt*(-1); echo "
      Période $k
      + + + + + + + + "; + $alt=1; + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $alt=$alt*(-1); + $date_fin_formatee=formate_date($lig->date_fin); + echo " + + + + + + "; + + echo " + + "; + $cpt++; + } + echo " +
      NuméroNomDate de finEffectifClasses
      ".$lig->num_periode."".$lig->nom_periode."num_periode.", ".$cpt.")\" title='Prendre ce nom de période pour la classe courante'>".$date_fin_formatee."num_periode.", '".$date_fin_formatee."')\" title='Prendre cette date pour la classe courante'>"; + //formate_date($lig->date_fin) + $sql="SELECT COUNT(date_fin) AS eff_date_fin FROM periodes p WHERE p.num_periode='".$lig->num_periode."' AND p.nom_periode='".$lig->nom_periode."' AND p.date_fin='".$lig->date_fin."';"; + $res2=mysql_query($sql); + if(mysql_num_rows($res2)>0) { + $lig2=mysql_fetch_object($res2); + echo $lig2->eff_date_fin; + } + echo ""; + + $sql="SELECT c.id, c.classe FROM classes c, periodes p WHERE p.id_classe=c.id AND p.num_periode='".$lig->num_periode."' AND p.nom_periode='".$lig->nom_periode."' AND p.date_fin='".$lig->date_fin."' ORDER BY c.classe;"; + //echo "$sql
      "; + $res2=mysql_query($sql); + if(mysql_num_rows($res2)>0) { + $cpt2=0; + while($lig2=mysql_fetch_object($res2)) { + if($cpt2>0) {echo ", ";} + echo $lig2->classe; + $cpt2++; + } + } + echo " +
      + + +"; + + } +} + +echo "
      +

      NOTES :

      • Les dates de fin de période indiquées ici ne correspondent pas à une date de verrouillage des saisies de notes.
        Il s'agit de dates prises en compte pour l'appartenance d'élèves à la classe pour telle période.
        From caceb3330b8420f7dac77ec16859c3e6e7196f54 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 27 Mar 2013 18:58:44 +0100 Subject: [PATCH 0581/1150] =?UTF-8?q?Correctifs:=20Nettoyage=20du=20sujet?= =?UTF-8?q?=20du=20mail.=20Indication=20de=20l'endroit=20o=C3=B9=20l'on=20?= =?UTF-8?q?accepte=20ou=20non=20la=20proposition=20de=20correction.=20Aler?= =?UTF-8?q?te=20des=20diff=C3=A9rents=20comptes=20secours/scolarit=C3=A9?= =?UTF-8?q?=20en=20cas=20de=20validation/refus.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_appreciations.php | 22 ++++++++-------------- saisie/validation_corrections.php | 26 ++++++++++++++++++++------ 2 files changed, 28 insertions(+), 20 deletions(-) diff --git a/saisie/saisie_appreciations.php b/saisie/saisie_appreciations.php index 913fe8c80..a41e8fd8f 100644 --- a/saisie/saisie_appreciations.php +++ b/saisie/saisie_appreciations.php @@ -305,7 +305,7 @@ if (!$register) {$msg = $msg."Erreur lors de l'enregistrement des corrections pour $correction_nom_prenom_eleve sur la période $correction_periode.
        ";} else { $msg.="Enregistrement de la proposition de correction pour $correction_nom_prenom_eleve sur la période $correction_periode effectué.
        "; - $texte_mail.="Une correction proposée a été mise à jour par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'élève ".$correction_nom_prenom_eleve." sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\n"; + $texte_mail.="Une correction proposée a été mise à jour par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'élève ".$correction_nom_prenom_eleve." sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\r\n\r\nVous pouvez valider ou rejeter la proposition en vous connectant avec un compte de statut scolarité ou secours.\r\nVous trouverez en page d'accueil, dans la rubrique Saisie, un message en rouge concernant la Correction de bulletins.\r\n"; } } else { $sql="DELETE FROM matieres_app_corrections WHERE (login='$correction_login_eleve' AND id_groupe='$id_groupe' AND periode='$correction_periode');"; @@ -325,7 +325,7 @@ if (!$register) {$msg = $msg."Erreur lors de l'enregistrement de la proposition de correction pour $correction_nom_prenom_eleve sur la période $correction_periode.
        ";} else { $msg.="Enregistrement de la proposition de correction pour $correction_nom_prenom_eleve sur la période $correction_periode effectué.
        "; - $texte_mail.="Une correction a été proposée par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'élève $correction_nom_prenom_eleve sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\n"; + $texte_mail.="Une correction a été proposée par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'élève $correction_nom_prenom_eleve sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\r\n\r\nVous pouvez valider ou rejeter la proposition en vous connectant avec un compte de statut scolarité ou secours.\r\nVous trouverez en page d'accueil, dans la rubrique Saisie, un message en rouge concernant la Correction de bulletins.\r\n"; } } } @@ -370,10 +370,7 @@ while($lig_u=mysql_fetch_object($req)) {$email_autres_profs_grp.=",".$lig_u->email;} } - $sujet_mail="[GEPI] Demande de validation de correction d'appréciation"; - - $gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : ""; - if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";} + $sujet_mail="Demande de validation de correction d'appréciation"; $ajout_header=""; if($email_declarant!="") { @@ -475,7 +472,7 @@ if (!$register) {$msg = $msg."Erreur lors de l'enregistrement des corrections pour $correction_nom_prenom_eleve sur la période $correction_periode.
        ";} else { $msg.="Enregistrement de la proposition de correction pour l'appréciation de groupe sur la période $correction_periode effectué.
        "; - $texte_mail.="Une correction proposée a été mise à jour par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'appréciation de groupe sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\n"; + $texte_mail.="Une correction proposée a été mise à jour par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'appréciation de groupe sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\r\n\r\nVous pouvez valider ou rejeter la proposition en vous connectant avec un compte de statut scolarité ou secours.\r\nVous trouverez en page d'accueil, dans la rubrique Saisie, un message en rouge concernant la Correction de bulletins.\r\n"; } } else { $sql="DELETE FROM matieres_app_corrections WHERE (login='' AND id_groupe='$id_groupe' AND periode='$correction_periode');"; @@ -483,7 +480,7 @@ if (!$register) {$msg = $msg."Erreur lors de la suppression de la proposition de correction pour l'appréciation de groupe sur la période $correction_periode.
        ";} else { $msg.="Suppression de la proposition de correction pour l'appréciation de groupe sur la période $correction_periode effectuée.
        "; - $texte_mail.="Suppression de la proposition de correction pour l'appréciation de groupe\r\nsur la période $correction_periode en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].")\r\npar ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj').".\n"; + $texte_mail.="Suppression de la proposition de correction pour l'appréciation de groupe\r\nsur la période $correction_periode en ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].")\r\npar ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj').".\r\n"; } } @@ -495,7 +492,7 @@ if (!$register) {$msg = $msg."Erreur lors de l'enregistrement de la proposition de correction pour l'appréciation de groupe sur la période $correction_periode.
        ";} else { $msg.="Enregistrement de la proposition de correction pour l'appréciation de groupe sur la période $correction_periode effectué.
        "; - $texte_mail.="Une correction a été proposée par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'appréciation de groupe sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\n"; + $texte_mail.="Une correction a été proposée par ".casse_mot($_SESSION['prenom'],'majf2')." ".casse_mot($_SESSION['nom'],'maj')."\r\npour l'appréciation de groupe sur la période $correction_periode\r\nen ".$current_group['name']." (".$current_group["description"]." en ".$current_group["classlist_string"].").\r\n\r\nVous pouvez valider ou rejeter la proposition en vous connectant avec un compte de statut scolarité ou secours.\r\nVous trouverez en page d'accueil, dans la rubrique Saisie, un message en rouge concernant la Correction de bulletins.\r\n"; } } } @@ -542,11 +539,8 @@ while($lig_u=mysql_fetch_object($req)) {$email_autres_profs_grp.=",".$lig_u->email;} } - $sujet_mail="[GEPI] Demande de validation de correction d'appréciation"; - - $gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : ""; - if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";} - + $sujet_mail="Demande de validation de correction d'appréciation"; + $ajout_header=""; if($email_declarant!="") { $ajout_header.="Cc: $nom_declarant <".$email_declarant.">"; diff --git a/saisie/validation_corrections.php b/saisie/validation_corrections.php index 20ad6e3ad..bfcc20d31 100644 --- a/saisie/validation_corrections.php +++ b/saisie/validation_corrections.php @@ -58,6 +58,7 @@ $tab_periode_num=array(); $tab_liste_id_groupe=array(); + $tab_proflist_string=array(); for($i=0;$i".print_r($current_group).""; + if(isset($current_group["profs"]['proflist_string'])) { + $tab_proflist_string[$current_id_groupe]=$current_group["profs"]['proflist_string']; + //echo "\$tab_proflist_string[$current_id_groupe]=".$tab_proflist_string[$current_id_groupe]."
        "; + } + if($current_login_ele=='') { // Appréciation de groupe @@ -223,12 +230,11 @@ } if($envoi_mail_actif=='y') { - $gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : ""; - if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";} - $email_reply=""; + $tab_email_reply=array(); //$sql="select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."';"; $sql="(select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."')"; + $sql.=" UNION (select nom, prenom, civilite, email from utilisateurs where statut = 'secours')"; for($loop=0;$loop"; $req=mysql_query($sql); if(mysql_num_rows($req)>0) { - $lig_u=mysql_fetch_object($req); - $email_reply=$lig_u->email; + while($lig_u=mysql_fetch_object($req)) { + if(!in_array($lig_u->email, $tab_email_reply)) { + if($email_reply!="") {$email_reply.=", ";} + $email_reply.=$lig_u->email; + $tab_email_reply[]=$lig_u->email; + } + } } foreach($texte_email as $id_groupe => $texte) { @@ -255,7 +266,7 @@ } if($email_destinataires!='') { - $sujet_mail="[GEPI] Groupe n°$id_groupe: Réponse à votre demande de correction"; + $sujet_mail="Groupe n°$id_groupe: Réponse à votre demande de correction"; $ajout_header=""; if($email_reply!="") { @@ -264,6 +275,9 @@ } $salutation=(date("H")>=18 OR date("H")<=5) ? "Bonsoir" : "Bonjour"; + if(isset($tab_proflist_string[$id_groupe])) { + $salutation.=" ".$tab_proflist_string[$id_groupe]; + } $texte=$salutation.",\n\n".$texte."\nCordialement.\n-- \n".civ_nom_prenom($_SESSION['login']); $envoi = envoi_mail($sujet_mail, $texte, $email_destinataires, $ajout_header); From 00f1cd13a4607a809c0f61e9d9a7aa2251695d97 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 27 Mar 2013 19:30:58 +0100 Subject: [PATCH 0582/1150] =?UTF-8?q?On=20ne=20propose=20pas=20les=20liens?= =?UTF-8?q?=20d'enregistrement=20si=20toutes=20les=20p=C3=A9riodes=20sont?= =?UTF-8?q?=20closes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/saisie_appreciations.php | 133 ++++++++++++++++++++------------ 1 file changed, 85 insertions(+), 48 deletions(-) diff --git a/saisie/saisie_appreciations.php b/saisie/saisie_appreciations.php index a41e8fd8f..4317da1ab 100644 --- a/saisie/saisie_appreciations.php +++ b/saisie/saisie_appreciations.php @@ -591,6 +591,34 @@ $matiere_nom = $current_group["matiere"]["nom_complet"]; + +$proposer_liens_enregistrement="n"; +$i=1; +while ($i < $nb_periode) { + if($_SESSION['statut']=='professeur') { + if($current_group["classe"]["ver_periode"]["all"][$i] > 1) { + // 0 : Toutes les classes sont closes + // 1 : Toutes les classes sont partiellement closes + // 2 : Au moins une classe est ouverte + // 3 : Toutes les classes sont ouvertes + $proposer_liens_enregistrement="y"; + break; + } + } + elseif($_SESSION['statut']=='secours') { + if($current_group["classe"]["ver_periode"]["all"][$i] > 0) { + // 0 : Toutes les classes sont closes + // 1 : Toutes les classes sont partiellement closes + // 2 : Au moins une classe est ouverte + // 3 : Toutes les classes sont ouvertes + $proposer_liens_enregistrement="y"; + break; + } + } + $i++; +} + + echo "

        \n"; echo "

        \n"; @@ -737,37 +765,40 @@ function confirm_changement_classe(thechange, themessage) echo add_token_field(true); //========================= -// AJOUT: boireaus 20090126 -$insert_mass_appreciation_type=getSettingValue("insert_mass_appreciation_type"); -if ($insert_mass_appreciation_type=="y") { - // INSERT INTO setting SET name='insert_mass_appreciation_type', value='y'; +if($proposer_liens_enregistrement=="y") { + $insert_mass_appreciation_type=getSettingValue("insert_mass_appreciation_type"); + if ($insert_mass_appreciation_type=="y") { + // INSERT INTO setting SET name='insert_mass_appreciation_type', value='y'; - $sql="CREATE TABLE IF NOT EXISTS b_droits_divers (login varchar(50) NOT NULL default '', nom_droit varchar(50) NOT NULL default '', valeur_droit varchar(50) NOT NULL default '') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; - $create_table=mysql_query($sql); + $sql="CREATE TABLE IF NOT EXISTS b_droits_divers (login varchar(50) NOT NULL default '', nom_droit varchar(50) NOT NULL default '', valeur_droit varchar(50) NOT NULL default '') ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; + $create_table=mysql_query($sql); - // Pour tester: - // INSERT INTO b_droits_divers SET login='toto', nom_droit='insert_mass_appreciation_type', valeur_droit='y'; + // Pour tester: + // INSERT INTO b_droits_divers SET login='toto', nom_droit='insert_mass_appreciation_type', valeur_droit='y'; - $sql="SELECT 1=1 FROM b_droits_divers WHERE login='".$_SESSION['login']."' AND nom_droit='insert_mass_appreciation_type' AND valeur_droit='y';"; - $res_droit=mysql_query($sql); - if(mysql_num_rows($res_droit)>0) { - $droit_insert_mass_appreciation_type="y"; - } - else { - $droit_insert_mass_appreciation_type="n"; - } + $sql="SELECT 1=1 FROM b_droits_divers WHERE login='".$_SESSION['login']."' AND nom_droit='insert_mass_appreciation_type' AND valeur_droit='y';"; + $res_droit=mysql_query($sql); + if(mysql_num_rows($res_droit)>0) { + $droit_insert_mass_appreciation_type="y"; + } + else { + $droit_insert_mass_appreciation_type="n"; + } - if($droit_insert_mass_appreciation_type=="y") { - echo "

        \n"; - echo "Insérer l'appréciation-type suivante pour toutes les appréciations vides: "; - echo "
        \n"; - echo "
        \n"; - echo "
        \n"; + if($droit_insert_mass_appreciation_type=="y") { + echo "
        \n"; + echo "Insérer l'appréciation-type suivante pour toutes les appréciations vides: "; + echo "
        \n"; + echo "
        \n"; + echo "
        \n"; + } } } //========================= -echo "

        \n"; +if($proposer_liens_enregistrement=="y") { + echo "

        \n"; +} //=========================================================== echo "\n"; @@ -795,7 +826,9 @@ function confirm_changement_classe(thechange, themessage) echo "

        Bulletin scolaire - Saisie des appréciations

        \n"; -echo "

        Vous pouvez faire apparaître dans votre appréciation la liste des notes de l'élève pour la période en insérant la chaine de caractères @@Notes
        (les notes apparaîtront alors lors de la visualisation/impression du bulletin)
        Insérer d'un clic @@Notes au début ou à la fin de toutes les appréciations.

        \n"; +if($proposer_liens_enregistrement=="y") { + echo "

        Vous pouvez faire apparaître dans votre appréciation la liste des notes de l'élève pour la période en insérant la chaine de caractères @@Notes
        (les notes apparaîtront alors lors de la visualisation/impression du bulletin)
        Insérer d'un clic @@Notes au début ou à la fin de toutes les appréciations.

        \n"; +} //echo "

        Groupe : " . $current_group["description"] ." | Matière : $matiere_nom

        \n"; echo "

        Groupe : " . htmlspecialchars($current_group["description"]) ." (".$current_group["classlist_string"].")

        \n"; @@ -1680,29 +1713,33 @@ function focus_suivant(num){ " /> " /> -

        - - -
        - - +
        +
        + + +
        \n"; + } - echo ""; - echo "Insérer les notes des devoirs"; - echo "\n"; + //============================================ + if(getSettingValue('appreciations_types_profs')=='y' || getSettingValue('appreciations_types_profs')=='yes') {include('ctp.php');} + //============================================ -?> + if($proposer_liens_enregistrement=="y") { + echo ""; + echo "Insérer les notes des devoirs"; + echo "\n"; + } + ?> - - - -
        + + + + +
        \n"; //========================= -// AJOUT: boireaus 20090126 -if (($insert_mass_appreciation_type=="y")&&($droit_insert_mass_appreciation_type=="y")) { +if ((isset($insert_mass_appreciation_type))&&($insert_mass_appreciation_type=="y")&&(isset($droit_insert_mass_appreciation_type))&&($droit_insert_mass_appreciation_type=="y")) { echo "\n"; + echo "
        \n"; From 78f2b776bfb879c99afd6d9bcf30459fd9ac83c8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 12:54:35 +0200 Subject: [PATCH 0590/1150] =?UTF-8?q?Ajout=20en=20title=20du=20nom=20court?= =?UTF-8?q?=20de=20mati=C3=A8re=20dans=20le=20champ=20SELECT=20pour=20dist?= =?UTF-8?q?inguer=20des=20mati=C3=A8res=20ayant=20le=20m=C3=AAme=20nom=5Fc?= =?UTF-8?q?omplet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 1 + init_xml2/init_alternatif.php | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index f664af585..36f2a66a5 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -659,6 +659,7 @@ function modif_mode_infobulle_nav() { $nom_matiere = mysql_result($query, $i, "nom_complet"); //echo "\n"; echo ">" . htmlspecialchars($nom_matiere,ENT_QUOTES,"UTF-8") . "\n"; } diff --git a/init_xml2/init_alternatif.php b/init_xml2/init_alternatif.php index 1a5f86368..ad5427411 100644 --- a/init_xml2/init_alternatif.php +++ b/init_xml2/init_alternatif.php @@ -503,7 +503,7 @@ function confirm_changement_prof(thechange, formulaire, themessage) { echo "matiere,$tab_matieres_profs)) {echo "checked ";$temp_style=" style='font-weight:bold;'";} else {$temp_style="";} - echo "/>
        \n"; + echo "/>
        \n"; $i++; } echo "
      - - - - - - - - - - - '.$edt_creneau->getNomDefiniePeriode().''; - } - ?> - - getEleveRegimeDoublant(); + + +
      VeilleListe des élèvesSuivi sur la journée
      + + + + + + + + + + +'.$edt_creneau->getNomDefiniePeriode().''; + } +?> + + +getEleveRegimeDoublant(); //$eleve = new Eleve(); $traitement_col = new PropelCollection();//liste des traitements pour afficher des boutons 'ajouter au traitement' + // Témoin de ligne avec Traitement créé et les autres saisies englobées ou alors toutes les saisies sont traitées + //$ligne_avec_traitement_englobant_autres_saisies="n"; + $nb_saisies_non_englobees=0; + $saisie_affiches = array (); + /* if ($compteur % 2 == '1') { $background_couleur="#E8F1F4"; } else { $background_couleur="#C6DCE3"; } echo "\n"; - + */ + $ligne_courante="\n"; $Yesterday = date("Y-m-d",mktime(0,0,0,$dt_date_absence_eleve->format("m") ,$dt_date_absence_eleve->format("d")-1,$dt_date_absence_eleve->format("Y"))); $compter_hier = $eleve->getAbsenceEleveSaisiesDuJour($Yesterday)->count(); $color_hier = ($compter_hier >= 1) ? ' style="background-color: red; text-align: center; color: white; font-weight: bold;"' : ''; $aff_compter_hier = ($compter_hier >= 1) ? $compter_hier.' enr.' : ''; -?> - > - \n"; + $ligne_courante.=""); + $ligne_courante.=""; $col_creneaux = EdtCreneauPeer::retrieveAllEdtCreneauxOrderByTime(); $nb_checkbox_eleve_courant=0; $id_checkbox_eleve_courant=''; - for($i = 0; $i<$col_creneaux->count(); $i++){ - $edt_creneau = $col_creneaux[$i]; - $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); - $violet = false; - $style = ''; - foreach ($absences_du_creneau as $absence) { - $traitement_col->addCollection($absence->getAbsenceEleveTraitements()); - if (getSettingValue("abs2_alleger_abs_du_jour")!='y' && $absence->isSaisiesContradictoiresManquementObligation()) { - //if (!($absence->getSaisiesContradictoiresManquementObligation()->isEmpty())) { + for($i = 0; $i<$col_creneaux->count(); $i++) { + $edt_creneau = $col_creneaux[$i]; + $absences_du_creneau = $eleve->getAbsenceEleveSaisiesDuCreneau($edt_creneau, $dt_date_absence_eleve); + $violet = false; + $style = ''; + foreach ($absences_du_creneau as $absence) { + $traitement_col->addCollection($absence->getAbsenceEleveTraitements()); + if (getSettingValue("abs2_alleger_abs_du_jour")!='y' && $absence->isSaisiesContradictoiresManquementObligation()) { + //if (!($absence->getSaisiesContradictoiresManquementObligation()->isEmpty())) { $violet = true; break; - }else{ - $style = 'style="background-color :'.$absence->getColor().'"'; - } + } else { + $style = 'style="background-color :'.$absence->getColor().'"'; } - if ($violet) { - $style = 'style="background-color : purple"'; - } - echo ''; - } - // Avec ou sans photo + } + */ + $ligne_courante.='
      '; + } + //$ligne_courante.='
      '; + //$ligne_courante.=''; + } + $ligne_courante.=''; + } + + // Avec ou sans photo if ((getSettingValue("active_module_trombinoscopes")=='y')) { - $nom_photo = $eleve->getNomPhoto(1); - $photos = $nom_photo; - if (($nom_photo == NULL) or (!(file_exists($photos)))) { - $photos = "../mod_trombinoscopes/images/trombivide.jpg"; - } - $valeur = redimensionne_image_petit($photos); - - echo ''; + $nom_photo = $eleve->getNomPhoto(1); + $photos = $nom_photo; + if (($nom_photo == NULL) or (!(file_exists($photos)))) { + $photos = "../mod_trombinoscopes/images/trombivide.jpg"; + } + $valeur = redimensionne_image_petit($photos); + + $ligne_courante.=' + '; } - echo ''; - echo ""; + $ligne_courante.='document.getElementById(\'creation_traitement\').value = \'yes\'; document.getElementById(\'ajout_traitement\').value = \'no\'; pop_it(document.creer_traitement);"> + Créer un nouveau traitement (popup) + '; + $ligne_courante.=''; + $ligne_courante.=''; + $ligne_courante.=''; + $ligne_courante.=""; + + + if((!isset($ne_pas_afficher_lignes_avec_traitement_englobant))||($ne_pas_afficher_lignes_avec_traitement_englobant!="y")) { + echo $ligne_courante; + } + else { + if($nb_saisies_non_englobees>0) { + echo $ligne_courante; + } + /* + if($ligne_avec_traitement_englobant_autres_saisies!="y") { + echo $ligne_courante; + } + */ + } + } echo " "; diff --git a/mod_abs2/lib/abs_style.css b/mod_abs2/lib/abs_style.css index 060238649..d075f072d 100644 --- a/mod_abs2/lib/abs_style.css +++ b/mod_abs2/lib/abs_style.css @@ -166,3 +166,6 @@ img.sans_bord { border: 0px solid black; } +tr.lignes_couleurs_alternees:nth-child(even) {background: #E8F1F4} +tr.lignes_couleurs_alternees:nth-child(odd) {background: #C6DCE3} + From 2835eedb4d36a1dd7efda215d5f935d67caa60de Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 14:27:25 +0200 Subject: [PATCH 0594/1150] =?UTF-8?q?On=20grise=20les=20lignes=20sp=C3=A9c?= =?UTF-8?q?ifiques=20HTML/PDF=20du=20tableau=20des=20param=C3=A8tres=20sel?= =?UTF-8?q?on=20le=20choix=20fait.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...tableau_choix_parametres_releves_notes.php | 51 +++++++++++++++++-- cahier_notes/visu_releve_notes_bis.php | 4 +- 2 files changed, 49 insertions(+), 6 deletions(-) diff --git a/cahier_notes/tableau_choix_parametres_releves_notes.php b/cahier_notes/tableau_choix_parametres_releves_notes.php index 71113bb04..2904b6336 100644 --- a/cahier_notes/tableau_choix_parametres_releves_notes.php +++ b/cahier_notes/tableau_choix_parametres_releves_notes.php @@ -18,6 +18,9 @@ $gepiProfSuivi=getSettingValue("gepi_prof_suivi"); + $tab_js_lignes_specifiques_releve_html="var tab_html=new Array('rn_col_moy', 'rn_sign_chefetab', 'rn_abs_2');"; + $tab_js_lignes_specifiques_releve_pdf="var tab_pdf=new Array('rn_aff_classe_nom', 'rn_rapport_standard_min_font', 'rn_bloc_obs');"; + $tab_item=array(); $tab_item[]='rn_nomdev'; $tab_traduc['rn_nomdev']="Avec le nom des devoirs"; @@ -67,7 +70,7 @@ $alt=1; // Affichage du nom de la classe Nom long Nom court Nom long (Nom court) //$alt=$alt*(-1); - echo "\n"; + echo "\n"; echo "\n"; @@ -113,7 +116,7 @@ if($affiche_ligne=="y") { $alt=$alt*(-1); - echo "\n"; + echo "\n"; echo "\n"; @@ -265,7 +268,7 @@ $rn_rapport_standard_min_font_defaut=(($rn_rapport_standard_min_font_defaut!='')&&(preg_match("/^[0-9.]*$/",$rn_rapport_standard_min_font_defaut))&&($rn_rapport_standard_min_font_defaut>0)) ? $rn_rapport_standard_min_font_defaut : 3; $alt=$alt*(-1); - echo "\n"; + echo "\n"; echo "\n"; for($i=0;$i\n"; + echo "\n"; echo "
      VeilleListe des élèvesSuivi sur la journée
      -getNom()).' '.ucfirst($eleve->getPrenom()).' ('.$eleve->getCivilite().') ('.$regime_eleve.')'; - echo ' '; - echo $eleve->getClasseNom($dt_date_absence_eleve); + + $ligne_courante.="".$aff_compter_hier.""; + + $ligne_courante.=strtoupper($eleve->getNom()).' '.ucfirst($eleve->getPrenom()).' ('.$eleve->getCivilite().') ('.$regime_eleve.')'; + $ligne_courante.=' '; + $ligne_courante.=$eleve->getClasseNom($dt_date_absence_eleve); if ($utilisateur->getAccesFicheEleve($eleve)) { - //echo ""; - echo ""; - echo ' (voir fiche)'; - echo ""; + //$ligne_courante.=""; + $ligne_courante.=""; + $ligne_courante.=' (voir fiche)'; + $ligne_courante.=""; } - echo "
      \n"; - echo "
      \n"; - echo "
      \n"; - echo ""; - echo "
      \n"; + $ligne_courante.="
      \n"; + $ligne_courante.="
      \n"; + $ligne_courante.="
      \n"; + $ligne_courante.=""; + $ligne_courante.="
      \n"; - echo "
      \n"; - echo tableau_tel_resp_ele($eleve->getLogin()); - echo "
      \n"; - echo "
      \n"; + $ligne_courante.="
      \n"; + $ligne_courante.=tableau_tel_resp_ele($eleve->getLogin()); + $ligne_courante.="
      \n"; + $ligne_courante.="
      \n"; - echo("
      '; - - //si il y a des absences de l'utilisateurs on va proposer de les modifier - $nb_checkbox_eleve_courant_sur_ce_creneau=0; - foreach ($absences_du_creneau as $saisie) { - if (in_array($saisie->getPrimaryKey(), $saisie_affiches)) { - //on affiche les saisies une seule fois - continue; - } - $saisie_affiches[] = $saisie->getPrimaryKey(); - $nb_checkbox = $nb_checkbox + 1; - $chaine_contenu_td='getNotificationEnCours()){$chaine_contenu_td.='saisie_notification_en_cours="true"';} - if ($saisie->getNotifiee()) {$chaine_contenu_td.='saisie_notifiee="true"';} - if ($saisie->getTraitee()) {$chaine_contenu_td.='saisie_traitee="true"';} - - $eleve_id_courant=$eleve->getPrimaryKey(); - $id_checkbox_eleve_courant=$eleve_id_courant."_".$edt_creneau->getIdDefiniePeriode()."_".$nb_checkbox_eleve_courant_sur_ce_creneau; - - $chaine_contenu_td.=" id='".$id_checkbox_eleve_courant."' "; - if(!in_array($eleve_id_courant, $tab_eleve_id)) {$tab_eleve_id[]=$eleve_id_courant;} - - $chaine_contenu_td.='/>'; - $chaine_contenu_td.=''; - - $nb_checkbox_eleve_courant++; - $nb_checkbox_eleve_courant_sur_ce_creneau++; - - //if ($saisie->getNotifiee()) {echo " (notifiée)";} - $chaine_contenu_td.=' '; - //echo $saisie->getTypesDescription(); - $chaine_contenu_td.=''; - if($saisie->getNotificationEnCours()){ - $chaine_contenu_td.=''; - } - if($saisie->getNotifiee()){ - $chaine_contenu_td.=''; - } - $chaine_contenu_td.='
      '; - if(!$saisie->getTraitee()) { - //if(!isset($ne_pas_afficher_saisies_englobees)) { - if((!isset($ne_pas_afficher_saisies_englobees))||($violet)) { - echo $chaine_contenu_td; - if(isset($signaler_saisies_englobees)) { - $saisies_englobante_col = $saisie->getAbsenceEleveSaisiesEnglobantes(); - if($saisies_englobante_col->isEmpty()) { - echo ''; - } - else { - $texte_saisie_couverte='La saisie est englobée par : '; - $cpt_saisie_couverte=0; - foreach ($saisies_englobante_col as $saisies_englobante) { - if($cpt_saisie_couverte==0) { - $lien_saisie_couverte=" "; - } - $texte_saisie_couverte.=$saisies_englobante->getDateDescription(); - $texte_saisie_couverte.=' '.$saisies_englobante->getTypesTraitements(); - if (!$saisies_englobante_col->isLast()) { - $texte_saisie_couverte.=' - '; - } - $cpt_saisie_couverte++; - } - - echo $lien_saisie_couverte.''; - } + } + if ($violet) { + $style = 'style="background-color : purple"'; + } + $ligne_courante.='
      '; + + //si il y a des absences de l'utilisateurs on va proposer de les modifier + $nb_checkbox_eleve_courant_sur_ce_creneau=0; + foreach ($absences_du_creneau as $saisie) { + if (in_array($saisie->getPrimaryKey(), $saisie_affiches)) { + //on affiche les saisies une seule fois + continue; + } + $saisie_affiches[] = $saisie->getPrimaryKey(); + $nb_checkbox = $nb_checkbox + 1; + $chaine_contenu_td='getNotificationEnCours()){$chaine_contenu_td.='saisie_notification_en_cours="true"';} + if ($saisie->getNotifiee()) {$chaine_contenu_td.='saisie_notifiee="true"';} + if ($saisie->getTraitee()) {$chaine_contenu_td.='saisie_traitee="true"';} + + $eleve_id_courant=$eleve->getPrimaryKey(); + $id_checkbox_eleve_courant=$eleve_id_courant."_".$edt_creneau->getIdDefiniePeriode()."_".$nb_checkbox_eleve_courant_sur_ce_creneau; + + $chaine_contenu_td.=" id='".$id_checkbox_eleve_courant."' "; + if(!in_array($eleve_id_courant, $tab_eleve_id)) {$tab_eleve_id[]=$eleve_id_courant;} + + $chaine_contenu_td.='/>'; + $chaine_contenu_td.=''; + + $nb_checkbox_eleve_courant++; + $nb_checkbox_eleve_courant_sur_ce_creneau++; + + //if ($saisie->getNotifiee()) {$ligne_courante.=" (notifiée)";} + $chaine_contenu_td.=' '; + //$ligne_courante.=$saisie->getTypesDescription(); + $chaine_contenu_td.=''; + if($saisie->getNotificationEnCours()) { + $chaine_contenu_td.=''; + } + if($saisie->getNotifiee()) { + $chaine_contenu_td.=''; + } + $chaine_contenu_td.='
      '; + if(!$saisie->getTraitee()) { + //if(!isset($ne_pas_afficher_saisies_englobees)) { + if((!isset($ne_pas_afficher_saisies_englobees))||($violet)) { + $ligne_courante.=$chaine_contenu_td; + if((isset($signaler_saisies_englobees))||(isset($ne_pas_afficher_lignes_avec_traitement_englobant))) { + $saisies_englobante_col = $saisie->getAbsenceEleveSaisiesEnglobantes(); + if($saisies_englobante_col->isEmpty()) { + $ligne_courante.=''; + $nb_saisies_non_englobees++; } else { - echo ''; + $texte_saisie_couverte='La saisie est englobée par : '; + $cpt_saisie_couverte=0; + foreach ($saisies_englobante_col as $saisies_englobante) { + if($cpt_saisie_couverte==0) { + $lien_saisie_couverte=" "; + } + $texte_saisie_couverte.=$saisies_englobante->getDateDescription(); + $texte_saisie_couverte.=' '.$saisies_englobante->getTypesTraitements(); + if (!$saisies_englobante_col->isLast()) { + $texte_saisie_couverte.=' - '; + } + $cpt_saisie_couverte++; + } + + $ligne_courante.=$lien_saisie_couverte.''; } - echo '
      '; } else { - // Faut-il quand même vérifier s'il n'y a pas de conflit? - // Fait (?) avec le test $violet plus haut. + $ligne_courante.=''; + $nb_saisies_non_englobees++; } - }else{ - echo $chaine_contenu_td; - - //echo ''; - $saisie_justifiee_ou_pas=""; - echo "getAbsenceEleveTraitements() as $traitement) { - if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { - $description_traitement_courant=$traitement->getDescription(); - echo "Traitement ".$description_traitement_courant."\n"; - if(preg_match("/justification :/", $description_traitement_courant)) {$saisie_justifiee_ou_pas=" ";} - } + $ligne_courante.='
      '; + } + else { + // Faut-il quand même vérifier s'il n'y a pas de conflit? + // Fait (?) avec le test $violet plus haut. + } + } else { + $ligne_courante.=$chaine_contenu_td; + + //$ligne_courante.=''; + $saisie_justifiee_ou_pas=""; + $ligne_courante.="getAbsenceEleveTraitements() as $traitement) { + if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { + $description_traitement_courant=$traitement->getDescription(); + $ligne_courante.="Traitement ".$description_traitement_courant."\n"; + if(preg_match("/justification :/", $description_traitement_courant)) {$saisie_justifiee_ou_pas=" ";} } - echo "\">"; - echo $saisie->getTypesDescription(); - echo $saisie_justifiee_ou_pas; - echo ""; - - /* - echo "
      "; - $tab_traitements_deja_affiches=array(); - foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { - if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { - echo $traitement->getDescription().' : '; - } + } + $ligne_courante.="\">"; + $ligne_courante.=$saisie->getTypesDescription(); + $ligne_courante.=$saisie_justifiee_ou_pas; + $ligne_courante.="
      "; + + /* + $ligne_courante.="
      "; + $tab_traitements_deja_affiches=array(); + foreach ($saisie->getAbsenceEleveTraitements() as $traitement) { + if(!in_array($traitement->getId(), $tab_traitements_deja_affiches)) { + $ligne_courante.=$traitement->getDescription().' : '; } - */ - echo '
      '; - } - //echo '
      '; - //echo ''; - } - echo '
      - - + + '; - echo '
      '; - echo '
      - Ajouter au traitement -
      '; + $ligne_courante.='
      '; + $ligne_courante.='
      '; + $ligne_courante.='
      + Ajouter au traitement +
      '; foreach ($traitement_col as $traitement) { - echo ''; + $ligne_courante.=''; + } + $ligne_courante.=' '; - echo ''; - echo '

      '; - - echo '
      - Ajouter (fenêtre) -
      '; + $ligne_courante.='document.getElementById(\'creation_traitement\').value = \'yes\'; document.getElementById(\'ajout_traitement\').value = \'no\'; document.creer_traitement.submit();"> + Créer un nouveau traitement + '; + $ligne_courante.=''; + $ligne_courante.='

      '; + + $ligne_courante.='
      + Ajouter (fenêtre) +
      '; foreach ($traitement_col as $traitement) { - echo ''; + $ligne_courante.=''; + } + + $ligne_courante.=''; - echo ''; - echo '

      '; - - echo '
      - Ajouter (popup) -
      '; + $ligne_courante.='document.getElementById(\'creation_traitement\').value = \'yes\'; document.getElementById(\'ajout_traitement\').value = \'no\'; postwindow(document.creer_traitement,\'Traiter et notifier des saisies\');"> + Créer un nouveau traitement (fenêtre) + '; + $ligne_courante.=''; + $ligne_courante.='

      '; + + $ligne_courante.='
      + Ajouter (popup) +
      '; foreach ($traitement_col as $traitement) { - echo ''; + $ligne_courante.=''; + } + + $ligne_courante.=''; - echo ''; - echo '
      '; - echo '
      Affichage du nom de la classe (relevé PDF)
      \n"; echo "Nom long (1) / Nom court (2) / Nom court (Nom long) (3)"; echo "
      ".$tab_traduc[$tab_item[$k]]."\n"; echo "
      Rapport taille_standard / taille_minimale_de_police (relevé PDF avec cell_ajustee())
      (Si pour que les notes tiennent dans la cellule, il faut réduire davantage la police, on supprime les retours à la ligne.)\n"; echo "
      Afficher le bloc observations (relevé PDF)\n"; $titre_infobulle="Bloc observations en PDF\n"; @@ -423,5 +426,45 @@ } echo "
      \n"; + echo " +"; + //echo "\$chaine_coef=$chaine_coef
      "; ?> diff --git a/cahier_notes/visu_releve_notes_bis.php b/cahier_notes/visu_releve_notes_bis.php index 94a5db5ff..8277713b8 100644 --- a/cahier_notes/visu_releve_notes_bis.php +++ b/cahier_notes/visu_releve_notes_bis.php @@ -908,8 +908,8 @@ function check_et_submit_choix_periode() { //echo "\n"; //echo "\n"; - echo "


      \n"; - echo "

      \n"; + echo "


      \n"; + echo "

      \n"; echo "
      \n"; //echo "
      \n"; From 23b8b907bb052be91d8364ff2c910419cb2a3f14 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 4 Apr 2013 16:51:19 +0200 Subject: [PATCH 0595/1150] =?UTF-8?q?Grisage=20par=20d=C3=A9faut=20des=20p?= =?UTF-8?q?aram=C3=A8tres=20sp=C3=A9cifiques=20HTML/PDF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bulletin/bull_index.php | 15 ++++++++++++--- cahier_notes/visu_releve_notes_bis.php | 6 ++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/bulletin/bull_index.php b/bulletin/bull_index.php index 559cb9e19..306c4fa6e 100644 --- a/bulletin/bull_index.php +++ b/bulletin/bull_index.php @@ -494,7 +494,7 @@ function change_style_classe(num) { echo "\n"; echo "\n"; echo "\n"; @@ -533,7 +533,7 @@ function change_style_classe(num) { } } else { - echo " "; echo "\n"; @@ -767,7 +767,16 @@ function change_lien_param_bull(type) { include("../cahier_notes/tableau_choix_parametres_releves_notes.php"); echo "\n"; - echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -627,15 +668,90 @@ function verif4(){ echo "\n"; echo "\n"; echo "\n"; + echo "\n"; + + /* + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + */ + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; @@ -1184,33 +1300,35 @@ function change_style_classe(num) { echo "\n"; echo "\n"; $csv.="Identifiant;"; - + + $ajout_param_lien=""; + if(isset($motif_rech)){$ajout_param_lien.="&motif_rech=$motif_rech";} + if(isset($mode_rech_nom)){$ajout_param_lien.="&mode_rech_nom=$mode_rech_nom";} + if(isset($mode_rech_prenom)){$ajout_param_lien.="&mode_rech_prenom=$mode_rech_prenom";} + //if((isset($mode_rech_champ))&&(isset($champ_rech))) {$ajout_param_lien.="&mode_rech_champ=$mode_rech_champ&champ_rech=$champ_rech";} + if(isset($mode_rech)) {$ajout_param_lien.="&mode_rech=$mode_rech";} + if(isset($mode_rech_elenoet)) {$ajout_param_lien.="&mode_rech_elenoet=$mode_rech_elenoet";} + if(isset($mode_rech_ele_id)) {$ajout_param_lien.="&mode_rech_ele_id=$mode_rech_ele_id";} + if(isset($mode_rech_no_gep)) {$ajout_param_lien.="&mode_rech_no_gep=$mode_rech_no_gep";} + echo "\n"; $csv.="Nom Prénom;"; $csv.="Date sortie;"; echo "\n"; $csv.="Sexe;" ; echo "\n"; $csv.="Date de naissance;"; echo "\n"; $csv.="Régime;"; @@ -1220,9 +1338,7 @@ function change_style_classe(num) { echo "\n"; @@ -2458,6 +2491,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} //echo "'>Prendre l'adresse de l'autre responsable"; echo add_token_in_url(); echo "' onclick=\"return confirm_abandon (this, change, '$themessage');\">Prendre l'adresse de l'autre responsable"; @@ -2548,6 +2582,7 @@ function affiche_message_raffraichissement() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Renseigner l'établissement d'origine"; } echo "

      \n"; @@ -2566,6 +2601,7 @@ function affiche_message_raffraichissement() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Définir l'établissement d'origine"; echo "

      \n"; } @@ -2584,6 +2620,7 @@ function affiche_message_raffraichissement() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Modifier l'établissement d'origine"; } @@ -2610,6 +2647,7 @@ function affiche_message_raffraichissement() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Modifier l'établissement d'origine"; } echo "

      \n"; From 0c6a40cd2da6cbeffcabbced3bb7da64f7709776 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 5 Apr 2013 07:58:17 +0200 Subject: [PATCH 0597/1150] =?UTF-8?q?Correctif=20sur=20la=20d=C3=A9tection?= =?UTF-8?q?=20de=20la=20p=C3=A9riode=20courant.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/visu_releve_notes_ter.php | 26 ++++++++++++++++++++++++-- 1 file changed, 24 insertions(+), 2 deletions(-) diff --git a/cahier_notes/visu_releve_notes_ter.php b/cahier_notes/visu_releve_notes_ter.php index 878e73876..582b10e7c 100644 --- a/cahier_notes/visu_releve_notes_ter.php +++ b/cahier_notes/visu_releve_notes_ter.php @@ -109,13 +109,35 @@ function cherche_periode_courante($id_classe, $ts, $valeur_par_defaut="") { + //echo "
      \$ts=$ts
      "; $retour=$valeur_par_defaut; - $sql="select p.num_periode from periodes p, edt_calendrier e where (classe_concerne_calendrier like '%;$id_classe;%' or classe_concerne_calendrier like '$id_classe;%') and etabferme_calendrier='1' and $tsdebut_calendrier_ts and p.nom_periode=e.nom_calendrier and p.id_classe='$id_classe';"; + + if($ts=="") { + $ts=time(); + } + + //$sql="select * from periodes where id_classe='$id_classe' and date_fin>CURRENT_TIMESTAMP order by num_periode ASC LIMIT 1;"; + $sql="select * from periodes where id_classe='$id_classe' and date_fin>FROM_UNIXTIME($ts) order by num_periode ASC LIMIT 1;"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { $retour=mysql_result($res, 0, "num_periode"); - if(!is_numeric($retour)) {$retour=$valeur_par_defaut;} } + else { + $sql="select p.num_periode from periodes p, edt_calendrier e where (classe_concerne_calendrier like '%;$id_classe;%' or classe_concerne_calendrier like '$id_classe;%') and etabferme_calendrier='1' and $tsdebut_calendrier_ts and p.nom_periode=e.nom_calendrier and p.id_classe='$id_classe';"; + //echo "$sql
      "; + /* + $f=fopen("/tmp/cherche_periode_courante.txt","a+"); + fwrite($f, $sql."\n"); + fclose($f); + */ + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $retour=mysql_result($res, 0, "num_periode"); + } + } + + if(!is_numeric($retour)) {$retour=$valeur_par_defaut;} + return $retour; } From 172a754e1dfb7df5c7f9e465be510ff4b1ad6392 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 5 Apr 2013 15:32:17 +0200 Subject: [PATCH 0598/1150] =?UTF-8?q?Correctif=20sur=20l'enregistrement=20?= =?UTF-8?q?du=20r=C3=B4le=20pour=20les=20personnels.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_incident.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index 341bf0214..2e66ea7c4 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -1400,8 +1400,8 @@ function recherche_utilisateur($rech_nom,$page) { \n"; $num_periode_choisie=1; for($i=1;$i<$nb_periode;$i++) { + // 20130405 if($periode==$nom_periode[$i]) {$selected=" selected='yes'";$num_periode_choisie=$i;}else{$selected="";} echo "\n"; } From 2228012cfe397a5bb15475984bfec9c3bcbc7a76 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Apr 2013 11:23:36 +0200 Subject: [PATCH 0601/1150] =?UTF-8?q?Ajout=20de=20tests=20pour=20ne=20pas?= =?UTF-8?q?=20proposer=20l'entr=C3=A9e=20Brevet=20si=20aucune=20saisie=20n?= =?UTF-8?q?'est=20propos=C3=A9e.=20Idem=20pour=20Epreuves=20blanches.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/header_barre_prof_template.php | 36 ++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/lib/header_barre_prof_template.php b/lib/header_barre_prof_template.php index c5ece800f..66ae8507f 100644 --- a/lib/header_barre_prof_template.php +++ b/lib/header_barre_prof_template.php @@ -549,10 +549,42 @@ //======================================================= // Module notanet if (getSettingValue("active_notanet") == "y") { - $tbs_menu_prof[$compteur_menu]=array("lien"=> '/mod_notanet/index.php' , "texte"=>"Brevet"); - $compteur_menu++; + $sql="SELECT 1=1 FROM j_groupes_classes jgc, + j_groupes_professeurs jgp, + j_groupes_matieres jgm, + notanet n + WHERE jgc.id_classe=n.id_classe AND + jgc.id_groupe=jgp.id_groupe AND + jgc.id_groupe=jgm.id_groupe AND + jgp.login='".$_SESSION['login']."' AND + jgm.id_matiere=n.matiere + LIMIT 1;"; + //echo "$sql
      "; + $res_test_notanet=mysql_query($sql); + if(mysql_num_rows($res_test_notanet)>0) { + $tbs_menu_prof[$compteur_menu]=array("lien"=> '/mod_notanet/index.php' , "texte"=>"Brevet"); + $compteur_menu++; + } + else { + $barre_notanet = ''; + } }else{ $barre_notanet = '';} + //======================================================= + // Module Epreuves blanches + if (getSettingAOui("active_mod_epreuve_blanche")) { + $sql="SELECT 1=1 FROM eb_epreuves ee, eb_profs ep WHERE ep.login_prof='".$_SESSION['login']."' AND ee.id=ep.id_epreuve AND ee.etat!='clos' ORDER BY ee.date, ee.intitule;"; + //echo "$sql
      "; + $res_test_epb=mysql_query($sql); + if(mysql_num_rows($res_test_epb)>0) { + $tbs_menu_prof[$compteur_menu]=array("lien"=> '/mod_epreuve_blanche/index.php' , "texte"=>"Ep.blanches"); + $compteur_menu++; + } + else { + $barre_epb = ''; + } + }else{ $barre_epb = '';} + //======================================================= $tbs_menu_prof[$compteur_menu]=array("lien"=> '/groupes/visu_mes_listes.php' , "texte"=>"Élèves"); $tmp_sous_menu=array(); From 0eae6428395d0c5f2614011cd9708a58e0b54136 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 6 Apr 2013 18:09:59 +0200 Subject: [PATCH 0602/1150] =?UTF-8?q?Possibilit=C3=A9=20d'uploader=20un=20?= =?UTF-8?q?CSV=20=C3=A0=20importer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_epreuve_blanche/saisie_notes.php | 173 +++++++++++++++++++++++++-- 1 file changed, 165 insertions(+), 8 deletions(-) diff --git a/mod_epreuve_blanche/saisie_notes.php b/mod_epreuve_blanche/saisie_notes.php index ded883ef8..62cd61763 100644 --- a/mod_epreuve_blanche/saisie_notes.php +++ b/mod_epreuve_blanche/saisie_notes.php @@ -64,6 +64,7 @@ $id_epreuve=isset($_POST['id_epreuve']) ? $_POST['id_epreuve'] : (isset($_GET['id_epreuve']) ? $_GET['id_epreuve'] : NULL); $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); +$en_tete=isset($_POST['en_tete']) ? $_POST['en_tete'] : NULL; if(isset($_POST['saisie_notes'])) { check_token(); @@ -211,6 +212,135 @@ die(); } } +// 20130406 +elseif((isset($id_epreuve))&&(isset($mode))&&($mode=='upload_csv')&&(in_array($_SESSION['statut'], array('professeur', 'administrateur', 'scolarite')))) { + check_token(); + + $upload_autorise="y"; + if($_SESSION['statut']=='professeur') { + $sql="SELECT * FROM eb_epreuves ee, eb_profs ep WHERE ee.etat!='clos' AND ee.id=ep.id_epreuve AND ep.login_prof='".$_SESSION['login']."' AND ep.id_epreuve='$id_epreuve';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg="Accès non autorisé à cette épreuve.
      \n"; + $upload_autorise="n"; + } + else { + $lig=mysql_fetch_object($res); + $note_sur=$lig->note_sur; + } + } + else { + $sql="SELECT * FROM eb_epreuves ee WHERE ee.etat!='clos' AND ep.id_epreuve='$id_epreuve';"; + //echo "$sql
      \n"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg="Cette épreuve est close ou inexistante.
      \n"; + $upload_autorise="n"; + } + else { + $lig=mysql_fetch_object($res); + $note_sur=$lig->note_sur; + } + } + + if($upload_autorise=="y") { + $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; + if($csv_file['tmp_name'] != "") { + $fp = @fopen($csv_file['tmp_name'], "r"); + if(!$fp) { + $msg="Impossible d'ouvrir le fichier CSV
      "; + } + else { + $nb_reg=0; + $msg=""; + $long_max=4000; + while(!feof($fp)) { + if (isset($en_tete)) { + $data = fgetcsv ($fp, $long_max, ";"); + unset($en_tete); + } + $data = fgetcsv ($fp, $long_max, ";"); + + if((isset($data[1]))&&($data[0]!='')&&($data[1]!='')) { + if($_SESSION['statut']=='professeur') { + $sql="SELECT * FROM eb_copies WHERE id_epreuve='$id_epreuve' AND login_prof='".$_SESSION['login']."' AND n_anonymat='".$data[0]."';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="Le numéro d'anonymat ".$data[0]." ne vous est pas attribué.
      "; + } + else { + $note_courante=preg_replace("/,/", ".", $data[1]); + if((preg_match("/^[0-9\.\,]{1,}$/", $data[1]))&&($note_courante>=0)&&($note_courante<=$note_sur)) { + $sql="UPDATE eb_copies SET note='$note_courante', statut='' WHERE id_epreuve='$id_epreuve' AND login_prof='".$_SESSION['login']."' AND n_anonymat='".$data[0]."';"; + $update=mysql_query($sql); + if($update) { + $nb_reg++; + } + else { + $msg.="Erreur lors de l'enregistrement de la note ".$note_courante." pour le numéro d'anonymat ".$data[0].".
      "; + } + } + elseif(($data[1]=="abs")||($data[1]=="disp")||($data[1]=="-")) { + $sql="UPDATE eb_copies SET note='0.0', statut='".$data[1]."' WHERE id_epreuve='$id_epreuve' AND login_prof='".$_SESSION['login']."' AND n_anonymat='".$data[0]."';"; + $update=mysql_query($sql); + if($update) { + $nb_reg++; + } + else { + $msg.="Erreur lors de l'enregistrement de la note ".$note_courante." pour le numéro d'anonymat ".$data[0].".
      "; + } + } + else { + $msg.="La note ".$data[1]." pour le numéro d'anonymat ".$data[0]." est invalide.
      "; + } + } + } + else { + $sql="SELECT * FROM eb_copies WHERE id_epreuve='$id_epreuve' AND n_anonymat='".$data[0]."';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="Le numéro d'anonymat ".$data[0]." n'est pas associé à .
      "; + } + else { + $note_courante=preg_replace("/,/", ".", $data[1]); + if((preg_match("/^[0-9\.\,]{1,}$/", $data[1]))&&($note_courante>=0)&&($note_courante<=$note_sur)) { + $sql="UPDATE eb_copies SET note='$note_courante', statut='' WHERE id_epreuve='$id_epreuve' AND n_anonymat='".$data[0]."';"; + $update=mysql_query($sql); + if($update) { + $nb_reg++; + } + else { + $msg.="Erreur lors de l'enregistrement de la note ".$note_courante." pour le numéro d'anonymat ".$data[0].".
      "; + } + } + elseif(($data[1]=="abs")||($data[1]=="disp")||($data[1]=="-")) { + $sql="UPDATE eb_copies SET note='0.0', statut='".$data[1]."' WHERE id_epreuve='$id_epreuve' AND n_anonymat='".$data[0]."';"; + $update=mysql_query($sql); + if($update) { + $nb_reg++; + } + else { + $msg.="Erreur lors de l'enregistrement de la note ".$note_courante." pour le numéro d'anonymat ".$data[0].".
      "; + } + } + else { + $msg.="La note ".$data[1]." pour le numéro d'anonymat ".$data[0]." est invalide.
      "; + } + } + } + } + } + if($nb_reg>0) { + $msg.="$nb_reg notes enregistrée(s).
      "; + } + } + } + else { + $msg="Aucun fichier n'a été sélectionné !
      "; + } + } +} include('lib_eb.php'); @@ -302,6 +432,11 @@ echo " onclick=\"return confirm_abandon (this, change, '$themessage')\""; echo ">Exporter au format CSV"; +// 20130406 +echo " | Importer les notes depuis un CSV"; + echo "

      \n"; //======================================================== @@ -353,7 +488,7 @@ $res=mysql_query($sql); if(mysql_num_rows($res)==0) { - echo "

      Aucune copie n'a été trouvée.
      Avez-vous associé des groupes/enseignements à l'épreuve?

      \n"; + echo "

      Aucune copie n'a été trouvée.
      Avez-vous associé des groupes/enseignements à l'épreuve ?

      \n"; require("../lib/footer.inc.php"); die(); } @@ -412,6 +547,35 @@ //======================================================== +// 20130406 +if((isset($mode))&&($mode=='import_csv')) { + if($etat!='clos') { + + echo "
      \n"; + $csv_file=""; + echo add_token_field(); + echo " +

      Fichier CSV à importer :

      +

      +

      + Si le fichier à importer comporte une première ligne d'en-tête (non vide) à ignorer,
      cocher la case ci-contre  + +

      + + +


      +

      NOTES : Le format du CSV attendu est un CSV à deux colonnes
      +       N_ANONYMAT;NOTE;
      + Le premier champ est le numéro d'anonymat et le deuxième, la note.

      +\n"; + + require("../lib/footer.inc.php"); + die(); + } + else { + echo "

      L'épreuve est close.
      L'import CSV n'est pas possible.

      \n"; + } +} // Couleurs utilisées $couleur_devoirs = '#AAE6AA'; @@ -529,13 +693,6 @@ function verifcol(num_id){ //echo "

      Ajouter des confirm_abandon() sur les liens.

      \n"; echo "


      \n"; -echo "

      A FAIRE:

      \n"; -echo "
        \n"; -//echo "
      • Permettre de saisir des notes sur autre chose que 20.

        \n"; -//echo "
      • Calculer la moyenne, médiane,...

      • \n"; -echo "
      • Permettre d'importer/exporter ses saisies au format CSV

      • \n"; -echo "
      \n"; -//echo "

      Vérifier que l'on n'a pas deux numéros anonymat identiques sur l'épreuve... pour verrouiller les saisies si nécessaire.

      \n"; require("../lib/footer.inc.php"); ?> From af569626fb4e4b77c415d9e1341c55bcc53c2d16 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Apr 2013 12:53:50 +0200 Subject: [PATCH 0603/1150] =?UTF-8?q?Correctif=20sur=20l'enregistrement=20?= =?UTF-8?q?de=20nature=20dans=20le=20cas=20DisciplineNaturesRestreintes=20?= =?UTF-8?q?(d'apr=C3=A8s=20A.Fornerot.)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_incident.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index 2e66ea7c4..111caf7fd 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -2278,7 +2278,7 @@ function sauve_avertie(id_incident,login,avertie) { - Date: Tue, 9 Apr 2013 13:00:03 +0200 Subject: [PATCH 0604/1150] =?UTF-8?q?Correctif=20sur=20le=20nombre=20de=20?= =?UTF-8?q?champs=20lors=20de=20l'insertion=20des=20Responsables.=20(d'apr?= =?UTF-8?q?=C3=A8s=20l'=C3=A9quipe=20de=20Dijon)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- init_scribe_ng/etape3.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/init_scribe_ng/etape3.php b/init_scribe_ng/etape3.php index 8ea873a12..8e97ec9de 100644 --- a/init_scribe_ng/etape3.php +++ b/init_scribe_ng/etape3.php @@ -194,7 +194,7 @@ } // Ajout de la relation entre Responsable et Eleve dans la table "responsables2" pour chaque eleve - $req_ajout_lien_eleve_resp = "INSERT INTO responsables2 VALUES('$eleve_associe_ele_id','".$resp->getResponsableEleveId()."','$numero_responsable','')"; + $req_ajout_lien_eleve_resp = "INSERT INTO responsables2 VALUES('$eleve_associe_ele_id','".$resp->getResponsableEleveId()."','$numero_responsable','','')"; mysql_query($req_ajout_lien_eleve_resp); if (mysql_errno() != 0) { die("Une erreur s'est produite lors de l'affectation d'un élève à son responsable légal."); From c7c223737e103fec48d86c3fc87e9ead58588c1d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 9 Apr 2013 21:24:55 +0200 Subject: [PATCH 0605/1150] =?UTF-8?q?Correctif:=20Une=20requ=C3=AAte=20de?= =?UTF-8?q?=20modif=20de=20coef=20par=20lots=20n'=C3=A9tait=20pas=20ex?= =?UTF-8?q?=C3=A9cut=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index 92c1f50ef..9594393fb 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -574,9 +574,10 @@ } else { //$sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe' AND id_groupe IN (SELECT jgc.id_groupe FROM j_groupes_classes jgc, j_groupes_matieres jgm WHERE jgm.id_matiere='".$matiere_modif_coef."' AND jgc.id_groupe=jgm.id_groupe AND jgc.id_classe='$id_classe');"; - //$sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe' AND id_groupe IN (SELECT jgm.id_groupe FROM j_groupes_matieres jgm WHERE jgm.id_matiere='".$matiere_modif_coef."');"; + $sql="UPDATE j_groupes_classes SET coef='$coef_enseignements2' WHERE id_classe='$id_classe' AND id_groupe IN (SELECT jgm.id_groupe FROM j_groupes_matieres jgm WHERE jgm.id_matiere='".$matiere_modif_coef."');"; + } - echo "$sql
      "; + //echo "$sql
      "; $res_modif_coef=mysql_query($sql); if(!$res_modif_coef) { $msg.="Erreur lors de la requête
      $sql
      "; From db2cca982bfb21045793c0bc9bb5752b60d56453 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 11 Apr 2013 19:58:12 +0200 Subject: [PATCH 0606/1150] Correctif sur un nom de fonction. --- lib/share.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index eb41570ea..1728a9933 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -1710,12 +1710,12 @@ function volume_docs_joints($id_groupe, $mode="all"){ * A appeler immédiatement après ouverture du fichier * Exemple : * $handle=fopen("...."); - * skip_bom_uf8($handle) + * skip_bom_utf8($handle) * * @param handle $h_file : Le pointeur de fichier à tester * @return boolean : true si pas de BOM ou si BOM sauté, false dans les autres cas */ -function skip_bom_uf8($h_file) +function skip_bom_utf8($h_file) { if (ftell($h_file)!=0) return false; $bytes=fread($h_file,3); From fb1e980892da1888abd7ad0c0d25c5f815f3ea87 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 12 Apr 2013 16:20:00 +0200 Subject: [PATCH 0607/1150] Correctif pour traiter les & dans les noms courts de devoirs. --- cahier_notes/visu_releve_notes_func.lib.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/cahier_notes/visu_releve_notes_func.lib.php b/cahier_notes/visu_releve_notes_func.lib.php index d0fc0cd35..f27db3dd5 100644 --- a/cahier_notes/visu_releve_notes_func.lib.php +++ b/cahier_notes/visu_releve_notes_func.lib.php @@ -2993,7 +2993,7 @@ function releve_pdf($tab_rel,$i) { if($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['statut']!='v') { if($tab_rel['rn_nomdev']=='y') { - $chaine_notes.=$tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court'].": "; + $chaine_notes.=unhtmlentities($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court']).": "; } if($use_cell_ajustee!="n") {$chaine_notes.="";} @@ -3046,7 +3046,7 @@ function releve_pdf($tab_rel,$i) { elseif(($tab_rel['rn_app']=='y')&&($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['display_app']=='1')&&($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['app']!='')) { if($tab_rel['rn_nomdev']=='y') { - $chaine_notes.=" (".$tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court'].")"; + $chaine_notes.=" (".unhtmlentities($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court']).")"; } if($tab_rel['rn_datedev']=='y') { @@ -3103,7 +3103,7 @@ function releve_pdf($tab_rel,$i) { if($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['statut']!='v') { if($tab_rel['rn_nomdev']=='y') { - $chaine_notes.=$tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court'].": "; + $chaine_notes.=unhtmlentities($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court']).": "; } if($use_cell_ajustee!="n") {$chaine_notes.="";} @@ -3154,7 +3154,7 @@ function releve_pdf($tab_rel,$i) { elseif(($tab_rel['rn_app']=='y')&&($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['display_app']=='1')&&($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['app']!='')) { if($tab_rel['rn_nomdev']=='y') { - $chaine_notes.=" (".$tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court'].")"; + $chaine_notes.=" (".unhtmlentities($tab_rel['eleve'][$i]['groupe'][$m]['devoir'][$k]['nom_court']).")"; } if($tab_rel['rn_datedev']=='y') { From 3463eed4a4b724f24ee15bddfc6af7c223af387a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 12 Apr 2013 17:17:53 +0200 Subject: [PATCH 0608/1150] =?UTF-8?q?Correctif:=20Date=20de=20visibilit?= =?UTF-8?q?=C3=A9=20pour=20les=20parents/=C3=A9l=C3=A8ves=20du=20devoir=20?= =?UTF-8?q?cr=C3=A9=C3=A9=20dans=20le=20carnet=20de=20notes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_epreuve_blanche/transfert_cn.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mod_epreuve_blanche/transfert_cn.php b/mod_epreuve_blanche/transfert_cn.php index c6a47bd1a..a874cbf92 100644 --- a/mod_epreuve_blanche/transfert_cn.php +++ b/mod_epreuve_blanche/transfert_cn.php @@ -227,6 +227,10 @@ $reg=mysql_query($sql); if (!$reg) {$reg_ok = "no";} + $sql="UPDATE cn_devoirs SET date_ele_resp='$date_epreuve' WHERE id='$id_devoir'"; + $reg=mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + $sql="UPDATE cn_devoirs SET facultatif='O' WHERE id='$id_devoir'"; $reg=mysql_query($sql); if (!$reg) {$reg_ok = "no";} @@ -236,8 +240,6 @@ if (!$reg) {$reg_ok = "no";} - - // Transférer les notes $sql="SELECT DISTINCT ec.login_ele, ec.note, ec.statut FROM eb_copies ec, j_eleves_groupes jeg, cn_cahier_notes ccn WHERE ccn.id_groupe=jeg.id_groupe AND ccn.id_cahier_notes='$current_id_cn' AND ec.id_epreuve='$id_epreuve' AND jeg.periode='$current_periode' AND jeg.login=ec.login_ele;"; //echo "$sql
      "; From 8876234ba5207e6e9b97801c0082bef0f84cc8d9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 12 Apr 2013 19:45:12 +0200 Subject: [PATCH 0609/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20le?= =?UTF-8?q?s=20noms=20des=20groupes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 54 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 3 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 36f2a66a5..0d2073224 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -244,6 +244,8 @@ $error = false; + $msg=""; + $tab_id_groupe=array(); foreach ($_POST as $key => $value) { @@ -361,6 +363,29 @@ } //================================ + if(isset($_POST["name_grp"])) { + $name_grp=$_POST["name_grp"]; + $description_grp=$_POST["description_grp"]; + + foreach($name_grp as $id_current_grp => $current_name) { + $sql="UPDATE groupes SET name='".html_entity_decode($current_name,ENT_QUOTES,"UTF-8")."' WHERE id='".$id_current_grp."';"; + //echo "$sql
      "; + $update=mysql_query($sql); + if(!$update) { + $msg.="Erreur lors de la modification du nom court du groupe n°$id_current_grp
      "; + } + } + + foreach($description_grp as $id_current_grp => $current_description) { + $sql="UPDATE groupes SET description='".html_entity_decode($current_description,ENT_QUOTES,"UTF-8")."' WHERE id='".$id_current_grp."';"; + //echo "$sql
      "; + $update=mysql_query($sql); + if(!$update) { + $msg.="Erreur lors de la modification de la description du groupe n°$id_current_grp
      "; + } + } + } + $msg="Enregistrement effectué."; } @@ -634,7 +659,7 @@ function modif_mode_infobulle_nav() { echo "\n"; -echo "

      Gestion des enseignements pour la classe :" . $classe["classe"]."

      \n"; +echo "

      Gestion des enseignements pour la classe : " . $classe["classe"]."

      \n"; echo "\n"; echo "
      \n"; // Suppression echo "\n"; // Enseignement echo "\n"; } } From 6116e1ba7f70885a993e7b5b6b1cf2c537c43129 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 15 Apr 2013 22:00:28 +0200 Subject: [PATCH 0611/1150] Ajout d'attributs title. --- groupes/edit_class.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 8f0565df0..7220f1637 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -779,13 +779,13 @@ function modif_mode_infobulle_nav() { @@ -819,7 +819,7 @@ function modif_mode_infobulle_nav() {
      - +
      \n"; - echo " "; echo " \n"; - echo "\n"; echo "
      \n"; - echo "\n"; + echo "
      \n"; + echo "\n"; + echo "\n"; + //echo "\n"; + echo "
      \n"; + echo "\n"; + echo "\n"; + //echo "\n"; + echo "
      \n"; + echo "\n"; + echo "\n"; + //echo "\n"; + echo "
      \n"; + echo "\n"; + echo "\n"; + //echo "\n"; echo "

      Identifiant

      Nom Prénom

      Sexe

      Date de naissance

      Régime

      "; if($_SESSION['statut'] != 'professeur') { echo "Classe"; } else{ @@ -1283,7 +1399,7 @@ function change_style_classe(num) { $eleve_prenom = mysql_result($calldata, $i, "prenom"); $eleve_sexe = mysql_result($calldata, $i, "sexe"); $eleve_naissance = mysql_result($calldata, $i, "naissance"); - $elenoet = mysql_result($calldata, $i, "elenoet"); + $elenoet = mysql_result($calldata, $i, "elenoet"); $date_sortie_elv = mysql_result($calldata, $i, "date_sortie"); if($quelles_classes=='no_regime') { $eleve_regime = "-"; @@ -1357,6 +1473,7 @@ function change_style_classe(num) { ((getSettingAOui('GepiAccesPPTousElevesDeLaClasse'))&&(is_pp($_SESSION['login'], $quelles_classes)))) { echo "

      $eleve_nom $eleve_prenom"; } else { @@ -1517,6 +1634,9 @@ function add_file_upload(i) { if(isset($motif_rech)){ echo "\n"; } + if(isset($mode_rech)){ + echo "\n"; + } echo "\n"; ?> diff --git a/eleves/index_call_data.php b/eleves/index_call_data.php index 9deed3355..fc1675704 100644 --- a/eleves/index_call_data.php +++ b/eleves/index_call_data.php @@ -1,5 +1,30 @@ \n"; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

      Liste des élèves dont le $champ_rech $texte_motif $motif_rech

      \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + } + */ + else if ($quelles_classes == 'rech_elenoet') { + if(isset($motif_rech_elenoet)) { + $motif_rech=$motif_rech_elenoet; + } + + $pref_motif=""; + $texte_motif="commence par"; + if((isset($mode_rech_elenoet))&&($mode_rech_elenoet=='contient')) { + $pref_motif="%"; + $texte_motif="contient"; + $mode_rech_elenoet="contient"; + + $mode_rech="contient"; + } + + if(preg_match('/classe/',$order_type)){ + $sql="SELECT DISTINCT e.*,jer.* FROM eleves e, classes c, j_eleves_classes jec, j_eleves_regime jer + WHERE elenoet like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login AND + jec.login=e.login AND + c.id=jec.id_classe + ORDER BY $order_type"; + } + else{ + $sql="SELECT e.*,jer.* FROM eleves e, j_eleves_regime jer WHERE elenoet like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login + ORDER BY $order_type"; + } + //echo "$sql
      \n"; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

      Liste des élèves dont l'elenoet $texte_motif $motif_rech

      \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + + //$motif_rech=$pref_motif.$motif_rech; + } + else if ($quelles_classes == 'rech_ele_id') { + if(isset($motif_rech_ele_id)) { + $motif_rech=$motif_rech_ele_id; + } + + $pref_motif=""; + $texte_motif="commence par"; + if((isset($mode_rech_ele_id))&&($mode_rech_ele_id=='contient')) { + $pref_motif="%"; + $texte_motif="contient"; + $mode_rech_ele_id="contient"; + + $mode_rech="contient"; + } + + if(preg_match('/classe/',$order_type)){ + $sql="SELECT DISTINCT e.*,jer.* FROM eleves e, classes c, j_eleves_classes jec, j_eleves_regime jer + WHERE ele_id like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login AND + jec.login=e.login AND + c.id=jec.id_classe + ORDER BY $order_type"; + } + else{ + $sql="SELECT e.*,jer.* FROM eleves e, j_eleves_regime jer WHERE ele_id like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login + ORDER BY $order_type"; + } + //echo "$sql
      \n"; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

      Liste des élèves dont l'ele_id $texte_motif $motif_rech

      \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + + //$motif_rech=$pref_motif.$motif_rech; + } + else if ($quelles_classes == 'rech_no_gep') { + if(isset($motif_rech_no_gep)) { + $motif_rech=$motif_rech_no_gep; + } + + $pref_motif=""; + $texte_motif="commence par"; + if((isset($mode_rech_no_gep))&&($mode_rech_no_gep=='contient')) { + $pref_motif="%"; + $texte_motif="contient"; + $mode_rech_no_gep="contient"; + + $mode_rech="contient"; + } + + if(preg_match('/classe/',$order_type)){ + $sql="SELECT DISTINCT e.*,jer.* FROM eleves e, classes c, j_eleves_classes jec, j_eleves_regime jer + WHERE no_gep like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login AND + jec.login=e.login AND + c.id=jec.id_classe + ORDER BY $order_type"; + } + else{ + $sql="SELECT e.*,jer.* FROM eleves e, j_eleves_regime jer WHERE no_gep like '".$pref_motif.$motif_rech."%' AND + e.login=jer.login + ORDER BY $order_type"; + } + //echo "$sql
      \n"; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

      Liste des élèves dont l'identifiant national $texte_motif $motif_rech

      \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + + //$motif_rech=$pref_motif.$motif_rech; } else if ($quelles_classes == 'dse') { //Elève ayant une date de sortie renseignée. $sql="SELECT e.*, jer.* FROM eleves e diff --git a/eleves/modify_eleve.php b/eleves/modify_eleve.php index 26758756d..50350c65c 100644 --- a/eleves/modify_eleve.php +++ b/eleves/modify_eleve.php @@ -112,10 +112,29 @@ //========================= -// AJOUT: boireaus 20071212 // Pour l'arrivée depuis la page index.php suite à une recherche $motif_rech=isset($_POST['motif_rech']) ? $_POST['motif_rech'] : (isset($_GET['motif_rech']) ? $_GET['motif_rech'] : NULL); +$mode_rech=isset($_POST['mode_rech']) ? $_POST['mode_rech'] : (isset($_GET['mode_rech']) ? $_GET['mode_rech'] : NULL); +if((isset($quelles_classes))&&(isset($mode_rech))&&($mode_rech=='contient')) { + // On initialise des variables pour index_call_data.php + if($quelles_classes=='recherche') { + $mode_rech_nom="contient"; + } + elseif($quelles_classes=='rech_prenom') { + $mode_rech_prenom="contient"; + } + elseif($quelles_classes=='rech_elenoet') { + $mode_rech_elenoet="contient"; + } + elseif($quelles_classes=='rech_ele_id') { + $mode_rech_ele_id="contient"; + } + elseif($quelles_classes=='rech_no_gep') { + $mode_rech_no_gep="contient"; + } +} //========================= +//echo "\$motif_rech=$motif_rech
      "; $journal_connexions=isset($_POST['journal_connexions']) ? $_POST['journal_connexions'] : (isset($_GET['journal_connexions']) ? $_GET['journal_connexions'] : 'n'); $duree=isset($_POST['duree']) ? $_POST['duree'] : NULL; @@ -1158,6 +1177,7 @@ if (isset($order_type)) echo "\n"; if (isset($quelles_classes)) echo "\n"; if (isset($motif_rech)) echo "\n"; + if (isset($mode_rech)) echo "\n"; echo "\n"; @@ -1261,6 +1281,7 @@ if (isset($order_type)) echo "\n"; if (isset($quelles_classes)) echo "\n"; if (isset($motif_rech)) echo "\n"; + if (isset($mode_rech)) echo "\n"; echo "\n"; @@ -1363,6 +1384,7 @@ if (isset($order_type)) echo "\n"; if (isset($quelles_classes)) echo "\n"; if (isset($motif_rech)) echo "\n"; + if (isset($mode_rech)) echo "\n"; echo "\n"; @@ -1411,6 +1433,7 @@ if(isset($order_type)) {$chaine_param_tri.= "&order_type=$order_type";} if(isset($quelles_classes)) {$chaine_param_tri.= "&quelles_classes=$quelles_classes";} if(isset($motif_rech)) {$chaine_param_tri.= "&motif_rech=$motif_rech";} + if (isset($mode_rech)) echo "\n"; if(isset($afficher_tous_les_etab)) {$chaine_param_tri.= "&afficher_tous_les_etab=$afficher_tous_les_etab";} $call_etab=mysql_query($sql); @@ -1530,6 +1553,7 @@ if (isset($order_type)) echo "\n"; if (isset($quelles_classes)) echo "\n"; if (isset($motif_rech)) echo "\n"; + if (isset($mode_rech)) echo "\n"; echo "\n"; @@ -1553,6 +1577,7 @@ echo " | Retour à votre recherche\n"; include("index_call_data.php"); @@ -1560,6 +1585,7 @@ echo "\n"; echo "\n"; if (isset($motif_rech)) echo "\n"; + if (isset($mode_rech)) echo "\n"; if(isset($calldata)) { echo " | \n"; if (isset($quelles_classes)) echo "\n"; if (isset($motif_rech)) echo "\n"; +if (isset($mode_rech)) echo "\n"; if (isset($eleve_login)) echo "\n"; if (isset($mode)) echo "\n"; @@ -2230,6 +2257,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Définir le responsable légal 1"; } echo "

      \n"; @@ -2249,6 +2277,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Définir le responsable légal 1"; } echo "

      \n"; @@ -2280,6 +2309,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} //echo "'>Modifier le responsable\n"; echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Changer de responsable\n"; } @@ -2352,6 +2382,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Définir le responsable légal 2

      \n"; } } @@ -2371,6 +2402,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Définir le responsable légal 2

      \n"; } } @@ -2394,6 +2426,7 @@ function date_sortie_aujourdhui() { if (isset($order_type)) {echo "&order_type=$order_type";} if (isset($quelles_classes)) {echo "&quelles_classes=$quelles_classes";} if (isset($motif_rech)) {echo "&motif_rech=$motif_rech";} + if (isset($mode_rech)) {echo "&mode_rech=$mode_rech";} echo "' onclick=\"return confirm_abandon (this, change, '$themessage')\">Changer de responsable\n"; } echo "
      \n"; @@ -645,7 +670,7 @@ function modif_mode_infobulle_nav() { //$query = mysql_query("SELECT matiere, nom_complet FROM matieres"); echo "
      \n"; echo "\n\n\n"; $query = mysql_query("SELECT matiere, nom_complet FROM matieres ORDER BY matiere"); //============================== @@ -855,10 +880,20 @@ function modif_mode_infobulle_nav() { //============================================================================================================ + $afficher_champs_modif_nom_groupe=isset($_POST['afficher_champs_modif_nom_groupe']) ? $_POST['afficher_champs_modif_nom_groupe'] : (isset($_GET['afficher_champs_modif_nom_groupe']) ? $_GET['afficher_champs_modif_nom_groupe'] : "n"); + echo "
      \n"; -echo "Ajouter un enseignement : "; +echo "Ajouter un enseignement : "; echo "
      \n"; echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -975,6 +1010,19 @@ function modif_mode_infobulle_nav() { echo ")"; } + // 20130412 + if($afficher_champs_modif_nom_groupe=="y") { + echo "
      + +
      SupprimerEnseignementEnseignement
      \n"; + // 20130412 + if($afficher_champs_modif_nom_groupe=="y") { + echo ""; + } + else { + echo ""; + } + echo "
      Elèves inscritsPriorité
      d'affichage
      Catégorie
      + + +
      Nom court :
      Nom complet :
      \n"; + } + else { + echo "\n"; + } + $first = true; foreach($current_group["profs"]["list"] as $prof) { if ($first) {echo "
      ";} From 6d672424766d4a5f479266cfbb969eafc03353a3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 12 Apr 2013 20:42:58 +0200 Subject: [PATCH 0610/1150] Ajout de liens de navigation vers utilisateurs/... et ajout de balises title. --- groupes/edit_class.php | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 0d2073224..8f0565df0 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -979,16 +979,16 @@ function modif_mode_infobulle_nav() { echo "
      "; - echo "Supprimer"; + echo "Supprimer"; echo ""; echo ""; if ($total == "1") { - echo ""; + echo ""; } else { - echo ""; + echo ""; } echo $group["description"] . ""; echo "\n"; @@ -1027,9 +1027,11 @@ function modif_mode_infobulle_nav() { foreach($current_group["profs"]["list"] as $prof) { if ($first) {echo "
      ";} if (!$first) {echo ", ";} + echo ""; echo casse_mot($current_group["profs"]["users"][$prof]["prenom"],'majf2'); echo " "; echo $current_group["profs"]["users"][$prof]["nom"]; + echo ""; if(in_array($current_group["profs"]["users"][$prof]["login"],$tab_prof_suivi)) { echo " "; - echo "" . $inscrits . ""; + echo "" . $inscrits . ""; echo "

      Pour cette classe, -:

      +:


      - +
      + + + + + + + + + + + + +
      Destinataire(s) + + + + +
      Ajoutez un ou des destinataires -->
      + + +
      + +
      + + + +
      Sujet
      Message
      + +

      + + +


      + +Cochez les destinataires de votre message et validez.

      "; +$tab_statut=array('professeur', 'scolarite', 'cpe', 'administrateur'); +$cpt_u=0; +$chaine_js_login_u="var login_u=new Array("; +$chaine_js_designation_u="var designation_u=new Array("; +$chaine_prof_classe=""; +for($loop=0;$loop0) { + $texte_infobulle.="

      ".ucfirst($tab_statut[$loop]).""; + + if($tab_statut[$loop]=='professeur') { + //$chaine_prof_classe=""; + $sql="SELECT c.id, c.classe FROM classes c ORDER BY classe;"; + $res_classe=mysql_query($sql); + if(mysql_num_rows($res_classe)>0) { + $texte_infobulle.=" de "; + } + } + + $texte_infobulle.="

      "; + $texte_infobulle.="
      "; + + while($lig_u=mysql_fetch_object($res_u)) { + $designation_u="$lig_u->civilite ".casse_mot($lig_u->nom, 'maj')." ".casse_mot($lig_u->prenom, 'majf2'); + $texte_infobulle.=""; + $chaine_js_login_u.="'$lig_u->login',"; + $chaine_js_designation_u.="'".preg_replace("/'/", " ", $designation_u)."',"; + $cpt_u++; + } + $texte_infobulle.="
      "; + } +} +if($cpt_u>0) { + $chaine_js_login_u=substr($chaine_js_login_u,0,-1); + $chaine_js_designation_u=substr($chaine_js_designation_u,0,-1); +} +$chaine_js_login_u.=");"; +$chaine_js_designation_u.=");"; +$texte_infobulle.="


      "; +$tabdiv_infobulle[]=creer_div_infobulle("div_choix_dest",$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); + +?> + + + +?> + + + +

      Historique de vos messages envoyés :

      +

      Pouvoir afficher/masquer les messages
      N'afficher par défaut que les messages des 7 derniers jours,...

      +
      + +
      + + + + +

      Historique de vos messages reçus :

      +

      Pouvoir afficher/masquer les messages
      N'afficher par défaut que les messages des 7 derniers jours,...

      +
      + +
      + + + +


      + + diff --git a/lib/header_barre_admin_template.php b/lib/header_barre_admin_template.php index b73b5eee4..3a4886f6a 100644 --- a/lib/header_barre_admin_template.php +++ b/lib/header_barre_admin_template.php @@ -203,6 +203,7 @@ $menus .= '
    • Epreuves blanches
    • '."\n"; $menus .= '
    • Examens blancs
    • '."\n"; $menus .= '
    • Gestionnaires AID
    • '."\n"; + $menus .= '
    • Messagerie
    • '."\n"; $menus .= ' '."\n"; $menus .= ' '."\n"; diff --git a/lib/share.inc.php b/lib/share.inc.php index 7bb13fd2b..54a164627 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6687,4 +6687,300 @@ function cherche_periode_courante_eleve($login_eleve, $ts, $valeur_par_defaut="" return $retour; } + +/* +CREATE TABLE IF NOT EXISTS messagerie ( + id int(11) NOT NULL AUTO_INCREMENT, + in_reply_to int(11) NOT NULL, + login_src varchar(50) NOT NULL, + login_dest varchar(50) NOT NULL, + sujet varchar(100) NOT NULL, + message text NOT NULL, + date_msg timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + vu tinyint(4) NOT NULL, + date_vu timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (id) +) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ; +*/ + +function enregistre_message($sujet, $message, $login_src, $login_dest, $in_reply_to=-1) { + $retour=""; + + $sql="INSERT INTO messagerie SET sujet='".mysql_real_escape_string($sujet)."', + message='".mysql_real_escape_string($message)."', + login_src='".$login_src."', + login_dest='".$login_dest."', + in_reply_to='".$in_reply_to."';"; + $res=mysql_query($sql); + if($res) { + $retour=mysql_insert_id(); + } + return $retour; +} +/* +function form_saisie_message($in_reply_to=-1) { + $chaine="
      +
      + +
      +
      \n"; +} +*/ + +function affiche_historique_messages($login_src, $mode="tous") { + $retour=""; + if($mode=='tous') { + $sql="SELECT * FROM messagerie WHERE login_src='$login_src' ORDER BY date_msg DESC, login_dest ASC, sujet;"; + } + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $retour="

      Aucun message.

      "; + } + else { + $retour.=" + + + + + + + "; + $cpt_ahm=0; + while($lig=mysql_fetch_object($res)) { + $retour.=" + + + + + + + "; + $cpt_ahm++; + } + $retour.="
      DateDestinataireSujetMessageLu/vu
      ".formate_date($lig->date_msg,'y')."".civ_nom_prenom($lig->login_dest)."$lig->sujet".nl2br(preg_replace("/\\\\n/", "\n", $lig->message)).""; + if($lig->vu!=0) { + $retour.=""; + } + else { + $retour.=""; + } + $retour.="
      + +"; + } + return $retour; +} + +function affiche_historique_messages_recus($login_dest, $mode="tous") { + global $gepiPath; + + $retour=""; + if($mode=='tous') { + $sql="SELECT * FROM messagerie WHERE login_dest='$login_dest' ORDER BY date_msg DESC, sujet;"; + } + elseif($mode=='non_lus') { + $sql="SELECT * FROM messagerie WHERE login_dest='$login_dest' AND vu='0' ORDER BY date_msg DESC, sujet;"; + } + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $retour="

      Aucun message.

      "; + } + else { + $retour.=add_token_field(true)." + + + + + + + + "; + + + $cpt_ahmr=0; + while($lig=mysql_fetch_object($res)) { + $retour.=" + + + + + + + "; + $cpt_ahmr++; + } + $retour.="
      DateSourceSujetMessageLu/vu
      ".formate_date($lig->date_msg,'y')."".civ_nom_prenom($lig->login_src)."$lig->sujet".nl2br(preg_replace("/\\\\n/", "\n", $lig->message)).""; + if($lig->vu!=0) { + $retour.=""; + } + else { + $retour.="id);return false;\" target='_blank'>"; + } + $retour.="
      + +"; + } + return $retour; +} + +function check_messages_recus($login_dest) { + $retour=""; + $sql="SELECT 1=1 FROM messagerie WHERE login_dest='$login_dest' AND vu='0';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==1) { + $retour=mysql_num_rows($res)." message non lu."; + } + elseif(mysql_num_rows($res)>1) { + $retour=mysql_num_rows($res)." messages non lus."; + } + return $retour; +} + +// A faire: check_mes_messages_lus() pour signaler qu'un de ses messages a été lu? + +function marquer_message_lu($id_msg) { + $retour=""; + + $sql="UPDATE messagerie SET vu='1', date_vu=CURRENT_TIMESTAMP WHERE id='$id_msg' AND login_dest='".$_SESSION['login']."';"; + $update=mysql_query($sql); + if($update) { + $retour="Succès"; + } + else { + $retour="Erreur"; + } + + return $retour; +} + +function peut_poster_message($statut) { + // A FAIRE: Gérer le statut Autre... + if(getSettingAOui('PeutPosterMessage'.ucfirst(mb_strtolower($statut)))) { + return true; + } + else { + return false; + } +} + +function affichage_temoin_messages_recus() { + global $gepiPath; + + $MessagerieDelaisTest=getSettingValue('MessagerieDelaisTest'); + if(($MessagerieDelaisTest=='')||(!preg_match('/^[0-9]$/', $MessagerieDelaisTest))||($MessagerieDelaisTest==0)) { + $MessagerieDelaisTest=1; + } + + // On teste la présence de messages toutes les 1min, 2min,... + $nb_sec=60*$MessagerieDelaisTest; + + $retour=""; + + if(peut_poster_message($_SESSION['statut'])) { + $retour.=""; + } + else { + $sql="SELECT 1=1 FROM messagerie WHERE login_dest='".$_SESSION['login']."' OR login_src='".$_SESSION['login']."';"; + $test=mysql_query($sql); + if(mysql_num_rows($test)>0) { + $retour.=""; + } + else { + $retour.=""; + } + } + + $retour.=" +\n"; + + return $retour; +} + + +function joueSon($sound, $id_son="") { + global $gepiPath, $niveau_arbo; + + $retour=""; + if(!in_array($sound, array("KDE_Beep_Pop.wav", "libreoffice_gong.wav", "libreoffice_nature1.wav", "pluck.wav", "verre_brise.wav", "default_alarm.wav"))) { + $sound="KDE_Beep_Pop.wav"; + } + + if ($niveau_arbo == "0") { + $chemin_sound="./sounds/".$sound; + } elseif ($niveau_arbo == "1") { + $chemin_sound="../sounds/".$sound; + } elseif ($niveau_arbo == "2") { + $chemin_sound="../../sounds/".$sound; + } elseif ($niveau_arbo == "3") { + $chemin_sound="../../../sounds/".$sound; + } else { + $chemin_sound="../sounds/".$sound; + } + + if($id_son=="") { + $id_son="id_son_".preg_replace("/[^0-9]/","_",microtime()); + } + + if(file_exists($chemin_sound)) { + $retour =" +"; + } + else { + $retour =""; + } + return $retour; +} + ?> diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 4cfdc9de5..f36327b5f 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1197,3 +1197,5 @@ INSERT INTO droits VALUES ('/bulletin/index_admin.php', 'V', 'F', 'F', 'F', 'F', INSERT INTO setting SET name='GepiAccesBulletinSimpleColonneMoyClasseResp', value='y'; INSERT INTO setting SET name='GepiAccesBulletinSimpleColonneMoyClasseEleve', value='y'; INSERT INTO droits SET id='/a_lire.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='V',responsable='V',secours='V',autre='V',description='A lire...',statut=''; +INSERT INTO droits SET id='/messagerie/admin.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Messagerie : Administration du module',statut=''; +INSERT INTO droits SET id='/lib/form_message.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='F',responsable='F',secours='V',autre='F',description='Messagerie',statut=''; diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index fb7240607..29bfe963f 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -793,3 +793,17 @@ PRIMARY KEY (id), UNIQUE KEY id_classe_name (id_classe,name) ) CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE IF NOT EXISTS messagerie ( +id int(11) NOT NULL AUTO_INCREMENT, +in_reply_to int(11) NOT NULL, +login_src varchar(50) NOT NULL, +login_dest varchar(50) NOT NULL, +sujet varchar(100) NOT NULL, +message text NOT NULL, +date_msg timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +vu tinyint(4) NOT NULL, +date_vu timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', +PRIMARY KEY (id) +) CHARACTER SET utf8 COLLATE utf8_general_ci; + + diff --git a/templates/origine/bandeau_template.php b/templates/origine/bandeau_template.php index a8071eda0..42fd2b594 100644 --- a/templates/origine/bandeau_template.php +++ b/templates/origine/bandeau_template.php @@ -105,6 +105,14 @@
        ".affichage_temoin_messages_recus()." + + "; + } + if (count($tbs_premier_menu)) { foreach ($tbs_premier_menu as $value) { if ("$value[texte]"!="") { diff --git a/templates/origine/messagerie/admin_template.php b/templates/origine/messagerie/admin_template.php new file mode 100644 index 000000000..fcb85c92a --- /dev/null +++ b/templates/origine/messagerie/admin_template.php @@ -0,0 +1,253 @@ + + + + + + + + + + + + + + + + + + + + + + \n"; + } + } + } + ?> + + + + + + + + + + + + + + + + + + +
        + + +

        Activation du module

        + +
        +
        + + +

        + /> + +
        + /> + +

        + +
        + +

        + Tester la présence de messages toutes les + ' /> minute(s). +

        + +
        + +

        + /> + +
        + /> + +

        + +
        + +

        + + /> + +
        + + /> + +
        + + /> + +
        + + + +

        +

        + +

        +
        + + + + + + + + + + + +
        + + Page générée en "; + echo $tbs_microtime; + echo " sec

        + "; + } +?> + + + // + + "; + + } +?> + + + + diff --git a/utilitaires/updates/162_to_dev.inc.php b/utilitaires/updates/162_to_dev.inc.php index fb9709762..d6708c4fe 100755 --- a/utilitaires/updates/162_to_dev.inc.php +++ b/utilitaires/updates/162_to_dev.inc.php @@ -88,4 +88,68 @@ $result .= msj_present("La migration a déjà été réalisée"); } +$result .= "
        "; +$result .= "Ajout d'une table 'messagerie' :
        "; +$test = sql_query1("SHOW TABLES LIKE 'messagerie'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS messagerie ( + id int(11) NOT NULL AUTO_INCREMENT, + in_reply_to int(11) NOT NULL, + login_src varchar(50) NOT NULL, + login_dest varchar(50) NOT NULL, + sujet varchar(100) NOT NULL, + message text NOT NULL, + date_msg timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, + vu tinyint(4) NOT NULL, + date_vu timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', + PRIMARY KEY (id) + ) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + +if(getSettingValue('active_messagerie')=="") { + $result .= " -> Initialisation du module Messagerie : "; + if (!saveSetting("active_messagerie", 'y')) { + $result .= msj_erreur(); + } else { + $result .= msj_ok("Ok !"); + } +} + +saveSetting("PeutPosterMessageAdministrateur", 'y'); + +if(getSettingValue('MessagerieDelaisTest')=="") { + $result .= " -> Initialisation du délais entre deux tests de présence de messages non lus : "; + if (!saveSetting("MessagerieDelaisTest", '1')) { + $result .= msj_erreur(); + } else { + $result .= msj_ok("Ok !"); + } +} + +if(getSettingValue('PeutPosterMessageScolarite')=="") { + $result .= " -> Initialisation de la possibilité de poster des messages pour les comptes 'scolarité' : "; + if (!saveSetting("PeutPosterMessageScolarite", 'y')) { + $result .= msj_erreur(); + } else { + $result .= msj_ok("Ok !"); + } +} + +if(getSettingValue('PeutPosterMessageCpe')=="") { + $result .= " -> Initialisation de la possibilité de poster des messages pour les comptes 'cpe' : "; + if (!saveSetting("PeutPosterMessageCpe", 'y')) { + $result .= msj_erreur(); + } else { + $result .= msj_ok("Ok !"); + } +} + ?> diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 9883986fb..20726a2d1 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -963,6 +963,30 @@ function traite_requete($requete = "") { description='A lire...', statut='';"; +$tab_req[]="INSERT INTO droits SET id='/messagerie/admin.php', +administrateur='V', +professeur='F', +cpe='F', +scolarite='F', +eleve='F', +responsable='F', +secours='F', +autre='F', +description='Messagerie : Administration du module', +statut='';"; + +$tab_req[]="INSERT INTO droits SET id='/lib/form_message.php', +administrateur='V', +professeur='V', +cpe='V', +scolarite='V', +eleve='F', +responsable='F', +secours='V', +autre='F', +description='Messagerie', +statut='';"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From fad6a8f37c6520fda2ad6d1552f881628400daf2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 15 Apr 2013 22:03:48 +0200 Subject: [PATCH 0616/1150] Ajout d'un son pour les messages. --- sounds/pluck.wav | Bin 0 -> 28510 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 sounds/pluck.wav diff --git a/sounds/pluck.wav b/sounds/pluck.wav new file mode 100644 index 0000000000000000000000000000000000000000..29b6b93bd2eca6930a1ad27e0137b68a471e4f96 GIT binary patch literal 28510 zcmY+N2e6&zah`X-3*e&n-tN8Vy%L2W(FqdlASsHnWn0p?r8sh&@r*M`EHTMU?8!`G z$Brz^O^h9hj7XWJL=voM1OX78=!F0-dhhL`eP5n;{{wl9pXZ)_&j0Uz`|i8%?tl3F z0l=4{=@nhp7?S+cJ78{hi|daJiK-p1OL z)~QWt!~M2;q_j3|t-P-2?N)d>f3n@RyMEhl*{yQRTS|-F=H8uho9nyzmh09XUcsf@ zDR&Zo{jS|B_xxVI=h<>8d|L8UyrjfMx3!CWzB|uwi|g#p<5~Chd@EgBopY_nc&>WH ztxoTBy;~ok{nK~c^HQ>NUAuQL_Mnt|Nzd^p&lbHS-s>D=Ds|4WXRP7%rEO{J?Mho~ z@4D5#wDWex<~+iE>{IlruvBSd^{KwJ#&T^+E5nZ1tW`-~$G%}Z_P#D_f9v81>Nqkz z9>>Kla0Jznb6h(9IGWn~bmX2>;{B^#xB`qr`rr|Eim`t$Oh-Hg5AyZM$zZeQe6=km7=ubNZ(V9=9%u9eHa zuPpbaev#YD{UqLQwypMxy_(*#|80NfFWaBnU;E#4{j&eiKDQP2m;U{7FzvCI*^ie! zHm?7OXaCAxw*PA1$5Lp7Wvx#cXydJK>1>brv*ktqTKAt2 zcjX&4ljD&E>dRmsW|zuVyQo!_2dBRH_GX@7!#LVg<$`sw2{x*9@hhzIi8ilH^zNm9 z>F4dOSD9`zOAl<*+xr$l!)d=xytb5+Wt*L}Gq%T9`v=%~V|u0hng12X^_S&;aom66 zKd`^E@A;o%r5}}l@IOv3m;aLf-2T-5#QvwtMt|i0-T%aX=&#uK%3pB(W_i>8!9TK- z-dxtE)n$3vtnVeJ+SvdbX^o}3Pt1>{hi#h8&5znk9PfhiNcoC=BY&OSkNS)DE9F^x zHa~CAmB)M%?|H};m8m|eOt8uRaG6?0vnJ-2iKPeV(%Yu`h%(5BdDn8$&U**zQM#AG ztctGI13OOTy}TCh3}r0>~ZV7(t>zh!nPHQTE4fvvGGe7mi;onUA$pt*$=U0=Fkp}s`c7@Oh`*t9au zW|ReGp3PBOw#et<%?DT|<9u`(=EL$>A7}kbUyg1F$9=7w^A33+N8Ho8 zm%iQ)&$qP}Kg+u4S~^%q>tqeAkjJpgB#w8ujmEO$e2k4Rvxv}_SUV5fJfE#^E^}DP zPx{OSV&ut4a zx7t2+;>$nrW%fQ1_&ss1@ z2fc`{p=AX7JJLqk)H1_o;@t`C`wV-qOasqGm$Al%HO7~*_^>}QGs61kKHeXMzvLIo z-P9UX??i-l1nJv@sDt>z##E#aUS34P@0}*E+=#6s2ulx0K({I@oJ8!4T8NXzw%W>OLmZo<> z;0?B!)wJF=_?oiH*ZODW6Hxjif5pF7er(IJ$!R;`yUI4-YlrP1Ha+A=_=HpC67hT0 zN*?TEiKyP}^&lJM4S8&ukSF=1JPs_-`q6q>V8mLPY}4)Gf~9P3d63wf%Jxv1i6y(H z*49OMQaZCfx_i&k-8yr-7f08D?AKC`f~w0pG!x&nV=Wp6Ie14DSIo=v?9sB=pUaP9p@sHzUSdnY;K%JLwnfC+ zNE^iZ8Ou8-mT`E!u?%6=j|Crwc!P~BqkUNETY6#p34DH&54RDlPA)#uhLi!`$NCV> zU06r$iMjT1|)i`gz~qwGX-etgN$5{so_SxSYVw zC(_w+o^^8rhIWs2-ij4G)~Do=HrNK*K-SL?Yx1Ttq7d6Qu1xmnWDTvChgd(eL55kN z!rU_3AIJ?vKm%4C2PTie9wT_?&@wC!;mAkHGBy%R%_$2(?}6YM_Ho&8qEF#-Cl&C6 z?-?534B~-O?TDF%GLp|tFvpg1(Jz(rb|#%HNBtO=jV_Cv(g zQ9n`6q;q^9Yp7g@>54Zw2r!;~9YA#VuzuL5fju5-!)y%4G6^e87aEp_$Q-kXqgnPK zN7rEed@#p9HiJ_>ybK4Cn|QRTG-0E`*q1egO&5{#MzSipuqK9+zeZKov|(kq4KGb; zQ0a$V`g-rugRCH|YG-|XD4uF%w{wOe!tls`&_|dJbW@p%+qdmnxthR+auz#nvh`%& z{k9`*E*pH4uP9} z6(ah!!LLEXwxE4`5OgG~eq?H7O^*R>Cgv&FU{0A=7Laitx2K7&xxSDr^SEv)YHVZ{ z519x)4==;O@gX*t`JQ8(hJJ2BG<2HuL}yGI3bC;r|9 z&(HgLyHL)Qx1e7TS=mn&fJb@J*RtU|1nQ{c^ca^or6=j*`REnv_t zGR~&7u6*X7!XiIr6}?|RPM;7#ANX?e&?lH%pN$&3jfeP zgXM0t_5L~QWhG4aL;HxevCKaqD}7p4lB@O$RrqAR?n8gq*J911c;QsxlUaQiLH=9i zt`>~7CX2LZt#^k}^#d;($jT3uCqUbIFq_B9llDAzd9l10^}&nwm9nHf%?f(P7uW-3 zD*R`W&Cj#_p*%A^kjE33ioi*c`=?;N>HZkJc`<8;$E*=#>q8ukA!Cga3*cTazPmm3 zqnCT-4te5gxkSb~@8@8^$NVVl`ChpV=A81g?ENX2-Z?)9OFo&8+c6?(kL_lytg?5? z&si6rgC8q>r7Tt6wRh5c&Iv0(Tj*4RRu&iZ*UPlX?X-DEUY7nQ?6YNg&} z`})*cpn?sqVVO&0(~H>P6j@e0>_9nyKTEmE{bq3ZI6gkk;|J}aAFy2oPHZdEThxvp z5?92LeZZRem^Jeew?4oE@4^D#DNEsiJIh`e%_iSWEbXz4*GdAWTq5J62dD zG^P#^FPflR;)rCYQLLfaSoNvA5KcQM&$T&V`cN|aSeW$$>@ySwJ;?gy9-vW2s&0Um zsJoLCW9%E2x@?!yg>n{rly$^_FT;Ya+YR#9IgsW&E9e;5x}G{=6>DHC5%rm^BgQ~u z{;soizM56_sjaY2(-!LTYOU=n2kd|!p#G&oV7&-!$WeUHc`S1swx!s*MP$`cHMH|C zr7JlK9EGnmvEL(Y29?!f*2v8AU}WvNX%3lc4vc>)tfiqe+Gwn!6)=!C_ z4~3141mA}{&a%nm?g?c)jGzJB=>g&l{;P6$8icAKE+yC&(RBQzK})0+O@{??F{;}svu-NSqoxm+w~ln;U7fW)#5oM<|0X(F~6j=hIbW5N4N zSM1UW##bL&kd>S1db!BHofR^&iHX5zh@fM^WsY!6M_^_*s1nX`geS1eIbMB&*K8vv zf8@)vP-G)3VFUWaX4cRaZN8byCfh)MKZr%eB%87I5%EbZf28an$_|nV$#^jC>#SLH zI59uzQ{<`k>}QYCGxf0nSt~%?brhL-YM!Hfoo3~SsWa#01;o^RszGc62O3HwjU$3| z8AbIuu8b$bxUV?FVin#jB=b$;lcw_OF+Luq(-S`48Lr$ztA@G>J`7#Cn_9B!q)XK8 z7wkd?aq#46Kj&w##W8GjmUVsyMdM6ZMbDn(C=a4ktsoPvwasZ$-r`$fF&nYX7x3jx zzLAWCbyz=}$acy`hx|*}jI47cu_8g|ZMGeTbDH&fK3!!Wq-EZ++vy%TTV6|2XAZu(OFlZ zG8GxN8v)N5O|&(lQw(M0)R86Y$&aczrQa1ibt_#3O^7I}oAWRisSi|;={)w)IwGdn z*KF5>H2C-oYlroN|G%&`=`+w}3s#U#w)-~QnznLln{UNJTd>u79z6tW!j}1fAI2s` z7c1usR^MSe{Sa&B67h63_|x6sekhtoM0sa&X)o9)H3K-Jcp6Q#OrSP+g!M8_cA@Tk zfQ&Pp%rp$esW%yC7@4ObB4`BMZy44bmWQX|HZ(U8XQO>;o?#F8II@=V7_}63Y{Z%! zjq1B}ii*>y?+RFKc#~S1BRRwhxr{}c%jfWsOSX{}a*an0r9=4wHnp-H4EY@X)9eR{ zsdeSm^dnndcEI_T!H74(Zcr%Tf+s=Sw|NHMSGJ{{g<8xvCb626pgXpv#;@~h_@M)J zU3Yk1JxKAC@-SM;EY`soDy0|7ljRA23QN3Xzk-_eb(GP6QGNv-5B1M}$A6=I1NG_m zP%VGUzL}rp-LuGKupnQM7l1?4$llXYqh?^u`9#%lnBna5OnDYAjXs5qMxp8$719;f z>N0qgFj$W~bSo;+I_Yv=g%fJ@5qFJm@TAhpo8Uov_ymwVV@WtCe4U8A07}79PqQ5&RFqjqIE1?)#8xXGx)$BE@*fV6uiy(coUu6HUa*WDY*UAm! zHhk(!`;xyGIj$DJi&x?0+`A_Y22AKkPo@r4sS_Nr6->G{tNIT7<1U_8&*ffjp|^1@ zGA}3!_ZI7br8$}mwmn01e~FKG`mVf}mHjypv8ue|KaWayxxMc{q4IkhhV~wR-?o3W z*Zpmt!`FE94g0aZR^G5r&|j8CCGZ}4!;i~PsI}j-H`1$A*Kdm5`Fn8VrS?f#ZR=Ps zYkUKhlJfEqwi9@~1#j2GRr;Z<4&?7pY&wP7XgW-GLR2?Tm8Z*M@&59Zy=Y%2f_{m* z;01i~Yvr5v+ovBP`*r)aeY^Zi?*Asb|F4&CMO?k$Pn7xK^TJ@qGs*1_prew9 zP-OB^YpDvVKq4Oj|7L)NgI0f72e#Q94&ER%)lx6J2Z| zS)gx3e`oogXHmkqKa$Kai<}3t!=y&QE=R{28R&heb{d8AaM#|M&p^qi3gTVu@M;@R z;7Z{dz^6(@1umBpnqN6eg^4z1yNIyOwu;#Ol$vXG`2dW15B>B*`=Gp!o+0nNiX!$` z{@3XAfA6oNd;Hwrvv<%z-a;XI#ed*`X@Bdlp+El}DzskpBWhVR68ubELO)?U`Ctu| z-WH;5Z#qOx%j%=vZ)06T>+68F*@LQ68E`ZRJ(TKw91%gaZ?j#f{|Nn#C#h+l^v6{1 zqZm`Y`IA&CPiMLy{;07>P*sx6S&5^lFoqK4%1gvH6~W-rhw7s{nOgdM7xthX=%3Jo zRlO-PbbJTJAHfJlXjJju=};aVpo*6(iRqZtRI2hOirrHC2wn4iCvxPk z^ji5_`)gwF4f;|4hhEF8#MN>ql58zFyoSm_h`b5K7@whi9fZ-GL)W0zhAn^);Dva3 z50uCL-k8}BDIX|+s_)C^>9ew$DA<5f zwjS+tJ#71P^42;$u+d?b)FeE@ZK^q!M)H37&{p{dGTZ?^p}9yw*>7Lw=5&m@N17B> zemMt^qf#qs!P6ZEz2Og3r>YvHCXOm7rZy&x&ts@1Ca@-FusUb@j4}i7P?@57JVcy< zY_Ret^Cllo4WTs!b-MhA3)48`cBgCvM5A4ebuhg2NFx zR^So5Se<`*AFg|{<+X&mPwu^prhge_P)fFVBI+03 zY0KJZA@5v8L%84<@)h2JoYL~FXZR^8I({|KeE)KG9N{7 z7V$TpDoQFJT}LX-As`N%mw4-wdy_HfKY+UZy=U&mKJ~_rz39qxFP&h;T~HZ&flEE% zrQjg`>L6X#JL+C!E%j##-Yc+!TlqSg*EKj_D1`V?a}p@+_>gFzsyYEXLv1G-4*HjH zy4~nHQ8~D}cTq+77xX4%Q)*E|a9Z{l2%JC|+z<1yb;uA~3ws+wKKZ9w! z?LVVm`c`?9%iDA)-m`b=m_AzbJMDh-s9jy5=hj6^kG9)t;s3qC~8OI?gvC~3-AbTITc&s9Wm zK{Z0J7Ds#xo$N`e)pS_7pqVXzb*tYzfvljO;&_{ssdqtAYGpFbaPpQE0d;=F35P_k zSDtL5b{P_UVT=YKNVkunio$@pClGM(3m9uOqOz>m8wW_Q}i-7IZse2a> zqlFTA>WA<2J*=ApaQM^IWGL`xR4tJsP=DFbVIo8K@qYBC8(8N}=x{UO-*fT|GLG^w zdJLBtcx^V1OZl8b+<|-O4|BmebWhmEqy8xVQXD=ChllMElk<4r1bV*oKgsOsf)O zJdd_7J+NJ__qH&`wt=8YEQHjP$!fRBeq=Vk4b#6MLDZs+-3HORJ5`c&u#ZTtd~Rd1CD~l>WN6LzYIFGu=hqTXEuy(Q%7*6 zbLl}>Slt=1*wJK|2Vf9WTvHQdCn9X7&!&%xFVNG#w!%jB`=mdUVSrS^i&3r@gOZEs zt1iw$QD$30F+wAN{Y@mQm|>{m2Bt9pt7B`pc28oW7hDEL0}JiSWBv1B5D^c6ajo5= z+W`fEDKbKZ{lPP01s$L6DtaUqy&zSPEQIB;Dq1$jtUQBCCJU4UiMT-}qpQe9%n&QKkg z?|ft6BmTp4Lds2OR;Uc=2)f-tVs#fD+d}2M4v%dkdg;GODTIxqQgI{~K|igQ8=?Ec zj$pqXh^Y?B1m3H_l%#NyvxbpT#t>2Hw|M6v;z$ao;^uL3)YDYC&zI+o3RiV5mlvsc z$xr1uf4)4Im!#+L-D09j8ER%kAzdlF^#FC6I=*!70Cw=E_6sxGY;Yhb$LOsK(6iZ zuT7D2w!6AiyU0o4j&G%Y(Ik!VZ8u&B1|~0J!F{|=d2A1xxS8IwSqwUDm%rk<-FX*} z??9p0P93yO8@yqg?)eU~9f--cAFe`Yhzk1*d6Hf_ot!Vx6qT7y617AR8TBUhxVnI3 zTr#hYR=z=Fm0HH6zyKyR=vt3^BTl zLF=Bx{K5mMzjMez=zPHhAB~xjr>Sq35J5|PNnTQxn4*b^5?J3;C>l>Fp76|6bPiYv zku`(dHx>U&J&c|d%I8R!1ksh5>7r`WwA$d*K+j<$@jTu}Q|@)du{KWyu<{0ioBKFA-^7hZ`zw49Epe6t+SaohL{yIX;;@D|%j zI>)Q2r<9*|v1SgSK`Yh|;TteDA5VwDy=D+s3dB{rj(T=em7;t^^+e^D>yz{dVP5y# zUAPDG3_X!v|*@+AW zn?MUhIU;^0`&668jNp`vItBBK4lB9``3ml*DVGs+$?%r63%CUwo`{~1Cc`~6|Dxx` zJx1`{0Qf^srnCmY{rZ6gQ`D~Of~{?!s$D}J zC5?`_DeLavM=9n}{|p|!mfL7TD7f2*qXXnL{DhvYoJ562K0Hm0MrNcVK_8n)x{+^! z4R@$DU_aUDy-^K{_mQDGTNm%fF{^^<3*Q|KJEk*&<%XfVjG|f%e~AOaDdxZ?7O9g< z#XFDg?t)^P4!j-kp{D16=|BHE0bE9a8Wm}4Jcks+K5|-S5Ww zW<@1x4?F>FUC5|z&K4f0_Ju?6OofG_z=%SNM#)9=?4eApxs7aV)qY@d5I%p#EIcP&@s~{Qt zVgXV07#^F?tOlFxapNKbcc=m(ID5EE@SHK3USv>q5BtODLg z-{5$ar-&a}eSct|n8i+b1a&UAwx=3f!&AG6F4!?SpQ+TaDv<|E#ImWGNIVR`fJ=av zQscl#@(Wq4z(crAZWCTAyYVU^EX;%|Ogw{cBT^5;B8hBj?vv>>(@W}yz%RjQF}&!H zaQiCL7OEw54uyKQ@IC5XDSWj^0{8l(q^pu*wwaaB#1Ja?Sb2yz0{fT(KtDvfk%xi=c7mVLcP~jxq-+~*c&B{ zJiaej8gYb8@tF8nFf}ZVUH3=sz^A;9*YlqJJf^H4evZtq`Py~1fhgLf2qJ#yg~n7R zIw~3i7ud)b!9tV?<*yxd0C(eM^-y5^!NgC{Ayl<=Drz_C3g$l4uRf*f3AO7+OdX&k zff%hgLnDx{#?DpEfP84ugL5OoUM_hq| z+UC-Ie%NP`)h5M!m@GajlxyaIz`P+zl`Xy@a+v6ZAy7@JlI7AnYS-RyJn1A&MD+kx zkF<6CC;b7A+AFK_>g3XJIWGo)CyT2fb71!@wRnpz6&jjT>S!Bb@Y2~qVj)2FJJh(ZgbzwtO7!bjm3WF&b@ni8Hv zktK_1LSz#0$aDm{6si$kCpQrzs?b0^#fn&-cwWSkG7xk8-XDYmcO6_rB^sFfNB$ZB zC+*8ctBJ}ucY^Ebd?++!)NWN(1tM_=%(!JY@-@4fnBrn~KvRB!H|aR@XH>w#Hr2s? zn5=$CtO0a81S?d}2^|p5!IT87gUK3AOfX4^b@8)2O^y?05|4Y*KI$mxgxp5`*~5(6 zUgGaQLs8AOmsg-&a3TLm7gyB)Yk=)Z2hpqtYe`-TC0P?y++&i*t{PL7bOyxyG?AgR zpXf2D;&pZ1;D0DJ=rgSGYE3iS10z#Rpyv=-bpGH7Go+!TAW6$(HVnVfwaQYKbZ<7Q z;0#`;ndH%WuT-PV3@$kjh9V?Wexi07oCgpuiWYoieR3~ihS?b+XfSv1cWD9r=4GU*j}$xe3@=gYw)Zo-1)vu%MQR~9aub@Y2$`+juFA4e7-)IA;jhT0Nde_KT zSb|lHN~^eHYGN>I9Fwg?1Ltzk{~*(lai*e&PfOF#mr$ALM{&V>>Vv39H527&BJ81J zdGhiIB1x=3n{uF3SH+T))j{%7Xn4}|(eqd%kt;#qzNrs*C~Xf$%7wa#^`x$z7+(VI z@DKfU7$0+494E(&?iw>Tr-d){F)E#+S$&`2-0~GX5F7;86icviVhT@kc9oyb($-Hf z%^vR#7K zbQNx@dP)0!iylmMP9_~TQtdsL+JZ8XTEmnyP2Qe!gka{(4tJA+4(4GMm$g{oAkJVh zW2~zlmEwUdDjH_J(N~!YB*NH0Hf6ENn#au(Jf1;^9SP3S&7gLM;YS}*QB)xwDmg3; zAHnk?PeokmYzg|7PwCXcU~5RO=ieQnYCTVMfv0ab<0G6=_+!YD-@vBF~(F;OZz%x9b zgK@{Z8$hpqRbF9+MCgUmN>{Ku->Y*Chz|KgIuJ~^{>hrl))^SiBm_E<_&500NnH$(Lq{4a1btLZNA%0A>_8wq!xr^T z{8df?weXJ=0yg;!3=|L483p8@ER}&dAD%-&kZ*%2RNV{Covg2U zrbEj0S3wB}TG20rKC z6GZ@>5DqVa<4mushan4~5osMu$xLyJ)!Prg1-FvI2PY;cu{9}wz>JlhLfei^qX^Tp zVr-SdE`ERlL=^HUIR$ROXAlQj_@g&-*XBDxrk4#D^YwA)u zq|S;S>Tu@2l#!?$V0p~nD4#MH?_G0sMra4UgBcY~s4x=~ohjkTO)?d^DwIBW7L|$S zHZ>=sxKgYf)&%Q6`6L(syxopuJQBG@iUbiDz96!ckBCCftAur{1FYzzgC#bYbPVpWn%eANCyk%x>pJn7JQ+n zng=PWq#FhH;h)?XexaHPw$|wPd9}D-oH0q1!4A}+5YOhlcsi-4)Sq}D_Y)aiv9@M_ z;=BWFuJco|I3B`Fnd%KM;W42Y{aF1P0$mLD8@~``tTH_>Ux3{pI7b$}sM3Z=QkR`N ziWJPk)Z%2dY8Fo%{W`Hl)`nMT)UtvGW> zN~^ko^lX%g$PRr9**nGg+3L^15Lo%ai1k?bhX`Wxss^nPP!ZHrJ)&n7X-SbIb$eJI z%Gnco3_mfwAU++PB%)Ji!IDuFPYK^BF03=?+kq@8g-+88nrCQDhN;i2DLll?*8OZ+ zWl{2IoHxO`g9TY#lJd%y!3xJa_yzZv=IuC#i;N7*WvV64!ciopE3gXAU1Fo3h@Yrk zlsAYhVoMBxl^+#W<%g(q#pRhv(sN?ys&cCwqzaih1MgfpiXJf@Au7e{l&w^Kajh&@ zp&y@+LK{*&3-WP>4tpxR6Z%QPBbxZ75%5lEM{U>}q!+p=J2Rz-Wtr4N9fH3_Eu-0b z@dL#O+8Vc&lQ_#(afD9-1NFY}hcr>n0mmn>XS~O4u#OlKo14J_-KccPI+2Og z<5v&4U22!x$_wC|bX57K75j@9$TIQ<8;`UB2dTh$Wm{s1XFMW@S8;$u5C1%-AP6HV z=4cVrhEeOneHA_Oh$_k|tHUSYT&IbqiofA0d8No3;u+#|L``r3siZp7Dkk@MwwkuY zqva&iWXGz?7q2M>kHay<>ZEzg=klzouam-A_CV)LNMpFdxw1FeLoyUq61z@rN zsrnY+2S{H#O9pgf<&%Td-4>Tq4}sc-{#@0^2(Ar3U}L6Xl&hZy!od^Z6mW!E_cg2L zQFW>_shB^BYIOj!CaOp^Wum!q)ua(Q;FxSKoD+JfUqtjMitrP^ErW)|Kg{l)^p{_a z(f$Vlf{1w2TV?#H2%@s6V@r@ES03g{@x=RTu?p^Eip=68VbPM#tP)ML_omb3;{ zMs!bMb10`CY7dNiv{Y`cd%kqUB3&DMM%IS_7!pWv0?mUx1^ z1jDO(5%OBSx5XE&BT|^Jth}X&BC^1^$UJmjj7cJngt|{S$C2p>i6wc}>k5!p3#{rP zwAiTZ)f?c~6|fIeE~!${m~;_K7jO3H&qs%fGdS^;Dj(rkvmGM49G2(c2%2q?ngKqB z55*1OjWz$OE>>-&jK&J!TH5L}ggL4kFI5?;XHj0U(%;D80W){#8qOOtB zErv)$QG4};Gf*Fac+5~H{Q`>4R1|Y=PgJu(7mB~iuR=xqDlg$P&`-XCpbAV3pGpWn?Y<6!FMA`T zjcBZS;3L5|<))E_uM+-Ac+iD*#Fc7SYgA=qcu882R35Q1A>AmX=HM=Pks^WI+ZX!Q+)+CT}qcT zzY9f1VuBCu!I`AeF_dw@GWjQXp;)_E3C{%j!RXZi(eo99j2bOEUl%mdsZJ7j2YY~t z(xYW@>NoYG>X2@S#WX+FRntW9F3<=ck(+`ylUuBbEg~o5hwueCDv!V~Vthmoe&TuI zVMJIhmhf=&A=C#Fr;`E%zDd8PdIe|6C*&P+4-u_j_7e)XX0^u|8&%{GL!sAmeMh=* z;&&s$OO?l3)IriTM;x2-ZuRPWncf8&i+G*17Cfn2p4%!I)_h+C~I9SJ|c|uubiT}P2JMjubO>C(I7s=+vFh-Q#p=Jzi}bX z9vUrbukx4}gl1Z~Fhg@zIs~;g9D?Z@O}}SWTx;xef6`08cO>OZ+P8Yyn$iR9h>OTN zct$x#o4P}zGJg|Xp@x0K$V_-r*~%K@UDQVM5qyCy^@ES}iEfa*)Fo3FkqMBu8D~nqHiX{G_nPPp`IX0K4h#f@}R#!YF{R#oMKr1ZH7WxXGp$dt-gU(u= zv7sJ@GzaN<>JFe7CE`W3EqQ=W4!5N9{i2V+Ep&9M80Gd0s(h)d@DYj*lgyk~D@Bm3 z@6=gfB7V{<*`&OaVVDRy?|Pli?aMzF^da<5G;noi(Y>jVTz;X4Bp$~ZxVkXCz@(ner5SHyxi5Vch1JwKqDxNH ziLv7^u(Fyni5dz0wil5qRTM7~OJE$;8qCgvCy+_VC%MWS>ZmBU*H|fgs&k|(&)nA8 zO#gIW{fW>MRIkQ!LiE5oK0_YNEl$5C`WW(<&L*oA=&NvXCXVRqu!8YXbt}42*oy9( z?1uf-rBjaA+3aG2a11btvv2T*&i+@{hZ}N!y?!Y`ze~ZU7^6-OKEgZH?+Zo(Q_wVu z`sP*M6WXx?$b#s3>i%ioD|0qg^vF1Sh9t^-3M^Ln0Tm2=OnoJtFUK#h!Ohg)reakj zQ5TKPV|_f6KogjKq;F(X=)X>7W`#4-m1N%E~<@O)obe-D@&vgVkWv_(G?5-D4NJeWD52lEl#)bOvFV*2yw!_Bm|Sv zpud4?yb?bVJ*tx8HN?{mb#aN8unXNCML}%xf#LywVC7sxHEgUrB0uPth~x$3rO>r& z$QDdZSSPI;KF=kdk>9Gvf_*55CF-T{deli|q+lvUvbebRkYfwP2u@DE4d%;=##$)Q z%24r}JY;+33edxu3J&G25pRh>h~a5cWlS2YiArW5=)pR~GA=~y*&6ackU!Xa+4^=Sdk`bHrI~^X zVR?{DeY2anC8_gAwo;CfZXJLy-$l#}EGbt#B3 z&D#-WW79a!vKAu7s1dnm7l(jZ3Yo5oiOu zBgS9~@C2=JtOvV`d=$Ayyre^zh&N%HSRL2o9()-7s%ln6jm{R8 z`b4Z*b?!}6w5ppzJ<@b5F_q53LNqZHY(~h=e#dXQh(@_8dY#cEKZ%d4+T^#ATxWQp z>evAFN5$S!6Iz~fl%^^14=NFHLiZd$5n=d_+bDW?O{$(|xikSjl=+{5ARYQpZB7g3 zr!G3Rt~$b16{V`0?nTs6;_0D^!z|F_&T!PNKG8A>uea=`vTV z+>Ck{KF7Po>w=-{w`opma;X++M3d?$sTe6V!3sZ#E>&A(JrI^T2=Nx}0pF-IFscd) z`irL58l2JZvZ}A9X^$@S6*M_7Ha!sKbg)Y$ml7d=sIpall9tEciUCHp66<4*6&)5l z3}3?FsiSnJ8MBYnVc{$IzNQz{Yn7IV>Iy>--8Fg=FmzT9cwG63wG@g&Ek3GzrN~eO zfnlsWO&;?%2cGGXidXPV#lGQo_~shtglm?n;&bu}b&>po_3wKKd&9b_zrnxwMMI*g zilxZ)oWl~_L%$QGxfg88b@e$sBE}XRPE%TXPCNvDPTU1!l<)A#{a+J`ZaWdE*~zow zh59tUQ7b`=LVQA)ugY7sJ62J(OOB}Zud!e?Z=e}dbt6D7Dk3H*scPw!S8M_$LeqI; zv-~o~`8~EgR`=R8aj<5zd3>(Mh} z-|!J0g11E!aVrpvJd?Tn0?p*7s>a2GaqfcVLd7ZMLt>~F4Ptjy1tdOvCCMi80#;9| zTXjyd?5}4cGGw>RbMd-}oSJ7<`&K!O=a?x|4;bI03*vWtDTa@75o;qnSM##IT~(~U zEAUg*l`bg1n*NF{x?h)B57H#~%}XJA7N0P>G)(wYN2z-teM0@Y=%;FCg~%E}71W?i zBX7a8rAkQG0|SY#;1dyJ+=5p`WZ|RH;Yl$GUJDaZXGG^`qQj~qs99p8a|@5qEKmn! zB`PQ>ankjKcER{$^N5;?pH;uuiE1DY!85|NxEEXjKEZ2ml842@6SU_tzOTkM~nu7*0P;=BRc&vc!{Xdeq(V~mX1|cttLOoF0zZ(Cw%}Aqjv0Kx3ZYd2+}4m%BJ_% zd}Yt7aw4W=dre%0S9D$;7LE)S$XH>ezBOJMTAx@46=-~}VkTk_)2F)peP9i#R4N=jq)*gMZLl*u7rZryl}&6vPji#bl923 z6qg`R5wTMIx)W3S4Vt#O()L{JA^5m>g4XYKVnS>8QU;A!mGVqXM#8jorp39KCkP!t z99jxaWcP|yD|^%~@(nhVKjrnXYsD*Mw@~r4F0frF7vhDoqOy9${$u6v9Pz5h^{U$Y z)P>NV%0G$^d6SAdK3yw9SgDBO+u8e=ZzT@JY;H(b1RtszJ$wXj5-S(kg-3vSLOlJy zI`oSe9YG+?=t#+COWnvInv>9`zAHQsJ`nT4#D}7)(#~T(8J-s!M8(lzgiS07g5l`ZBpqJt)@{7=%4GoP=9*XR& ziZPf|sGaJ)N!^S}GP>bX2BZq06NpcTA}hKn&?L5MxE=-Vj02G#UG-c z$|GXRl}aiROXR2Oj3uc@I@3i{lZqu(P@SXJtvXN40wpC*WvJ){X~kyYg^=%l4pCHH z&KD94IkYoXF!ELO6<|>{9a`Su@#rBi$s@*9^Qp9Ko{QLvPYoOdhZGHw#iJ??1Qjmb zU+>a7GI@iHs0dK~tZG5|QonGd%t)poKB^qbZM05Bu8JUPC3$H?hPT5P zDjin6_-ZKi?%m@866psC5w&SO>;HJ1J$eLo}enP1>2q{k_T zV?ptOK>Ny`6%)|eb<*1c_tJSVkY5{C+~^TMpU>&6Th;&QG*p-wg&?X=W*g->sd1r^ zst-}qRY6rDrI1m%Bv>VJqs$I}!LHh~%1_ka>YYe2QC-UZNkxev%5*j+3 zPbyN?Sy#VM%prI~f=8s7k|0}A@ltce%n@gpp+cmpryF@G^`@dGhWJMMPwGMOSN*5J zJoZ-qD!!-eq+gFx?ogJ-dYoBNox32OMSRgWQ1$T(Jx=}z6%=JV6w@ke;R)_VN661e za|^7DNaI#`i|7(I>h;y9Np+AeuG&-8Y#P2_ZuT&$|x#l0#F@W=eb>yYOwK#;B9utX`pXhE-�fP|7VT( zgV2vD36PJx1mmNYQso;lHC(J*3{SN!9Ad0$U6_MvDBTh#mpVa|xqih?Qxer=geHqL zi!3%C*%7@Q1%mwpjpZY_j#enVJGgAE&!emq)dszw-~+Hf9uw|q)>t#y5f?FgB9${# zYwF7?mUu4y{|Y(>?-Z{Q2FiQYd(@>v!BL+=UP4z0ZAjPB&C$_SiPlh8{4SWKI#}d1 z&@Rv`V(K=icn{3RFDiS43@QdAKDfsX&1MMCbYW5|G_pGC`>2fI3YE%92SGJ|SV$hC zYC=8gkTk2UzAl|8&9YP*9#f`ARf>)W{tG3cn#fm&HqQNI9z_gZ3L#uOF`v&ZP144c zcg$Kuw>>6`f;prvoJSE_IeW*%Nhl-wKaCMntflCj!*#@XG+8a&h;_;T>rC~p)+a~F zp=zzFzR+sb8}z9D#e30Qz;;dY#i|s7=+o(O|M6O`V=wgWaa()J9#xj)npqefgZ5iIO^>rz I5wETPKTTp~FaQ7m literal 0 HcmV?d00001 From 28e1210ae08fb6a9adaaa047c3e7b8bf2b37de97 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 15 Apr 2013 22:09:00 +0200 Subject: [PATCH 0617/1150] Correctif sur le message d'abandon. --- lib/form_message.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/form_message.php b/lib/form_message.php index 6be0ae3e8..90354b06b 100644 --- a/lib/form_message.php +++ b/lib/form_message.php @@ -164,7 +164,7 @@ } } -$themessage = 'Des appréciations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; +$themessage = 'Un message est en cours de rédaction. Voulez-vous vraiment quitter sans enregistrer ?'; $message_enregistrement = "Les modifications ont été enregistrées !"; $utilisation_prototype = "ok"; //**************** EN-TETE ***************** From 18443e154ccab08d46ff661322a8346dafa79ca1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:16:49 +0200 Subject: [PATCH 0618/1150] Ajout d'un calendrier pour choisir une date. --- utilitaires/clean_tables.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/utilitaires/clean_tables.php b/utilitaires/clean_tables.php index e3e4f1481..1b5d4b7cb 100644 --- a/utilitaires/clean_tables.php +++ b/utilitaires/clean_tables.php @@ -3562,14 +3562,17 @@ function clean_table_XXX() { echo "
        \n"; echo "

        Au changement d'année, il est recommandé de vider les entrées des tables 'absences_rb', 'absences_repas' et 'absences_eleves' du module abs1 de Gepi, ainsi que les tables a_agregation_decompte, a_notifications, a_saisies, a_saisies_version, a_traitements du module abs2 :

        \n"; - echo "
        \n"; + echo "\n"; echo add_token_field(); echo "
        \n"; echo "\n"; + include("../lib/calendrier/calendrier.class.php"); + $cal = new Calendrier("form_suppr_abs", "date_limite"); $annee=strftime("%Y"); $mois=strftime("%m"); if($mois<=7) {$annee--;} - echo "pour les absences antérieures au \n"; + echo "pour les absences antérieures au \n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit"; echo "
        \n"; echo "\n"; echo "

        NOTE : Prenez soin de faire une sauvegarde de la base et un archivage des données antérieures avant le changement d'année.

        \n"; From 2c03c37c4b48a370f0c0e58208ded1dc85d43861 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:16:53 +0200 Subject: [PATCH 0619/1150] Ajout d'attribut title pour expliquer un fonctionnement. --- lib/share.inc.php | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 54a164627..7d6621c7f 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6742,7 +6742,14 @@ function affiche_historique_messages($login_src, $mode="tous") {
      Date Destinataire SujetMessageMessageMessageLu/vu
      Date Source SujetMessageMessageMessageLu/vu
      - +

      @@ -358,6 +373,15 @@ function ajouter_dest_choisis() { if(document.getElementById('login_dest_'+i)) { if(document.getElementById('login_dest_'+i).checked==true) { document.getElementById('div_login_dest_js').innerHTML=document.getElementById('div_login_dest_js').innerHTML+"
      "+designation_u[i]+" "; + + // On décoche les cases pour que si on ajoute par la suite d'autres destinataires, + // ils ne soient pas pré-sélectionnés, au risque de faire apparaitre des doublons. + document.getElementById('login_dest_'+i).checked=false; + checkbox_change('login_dest_'+i); + + if(document.getElementById('id_classe')) {document.getElementById('id_classe').selectedIndex=0;} + + // Masquage du texte initial d'ajout de destinataires if(document.getElementById('span_ajoutez_un_ou_des_destinataires')) {document.getElementById('span_ajoutez_un_ou_des_destinataires').style.display='none';} } } From 394b8083bbddfe5ce2ee6e7ea82edf472be4fd57 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:17:00 +0200 Subject: [PATCH 0622/1150] =?UTF-8?q?Possibilit=C3=A9=20d'envoyer=20un=20r?= =?UTF-8?q?appel=20pour=20les=20appels=20non=20faits.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/tableau_des_appels.php | 48 ++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/mod_abs2/tableau_des_appels.php b/mod_abs2/tableau_des_appels.php index 65dbffe4c..90959894f 100644 --- a/mod_abs2/tableau_des_appels.php +++ b/mod_abs2/tableau_des_appels.php @@ -152,6 +152,7 @@ echo ' - '; } } +echo add_token_field(true); ?>
      @@ -164,6 +165,10 @@ orderByNom()->orderByNomComplet()->distinct() ->leftJoinWith('Classe.JGroupesClasses') @@ -188,7 +193,12 @@ // // '; - echo ' '; + echo ' '; //la classe a-t-elle des cours actuellement ? On récupère la liste des cours pour cette période. //on regarde au debut du creneau et a la fin car il peut y avoir des demi creneau @@ -224,6 +234,9 @@ $classe_deja_sorties = Array();//liste des appels deja affiché sous la form [id_classe, id_utilisateur] $groupe_deja_sortis = Array();//liste des appels deja affiché sous la form [id_groupe, id_utilisateur] foreach ($cours_col as $edtCours) {//on regarde tous les cours enregistrés dans l'edt + // 20130416 + $current_cours_appel_manquant=false; + $echo_str .= "getGroupe() != null) { $echo_str .= " (id_groupe:".$edtCours->getIdGroupe().")"; @@ -261,6 +274,8 @@ if($temoin_appel_non_fait_sur_le_groupe_courant) { $appel_manquant = true; $echo_str .= 'Non fait - '; + // 20130416 + $current_cours_appel_manquant=true; } //==================================================== } else { @@ -281,6 +296,24 @@ if ($edtCours->getEdtSalle() != null) { $echo_str .= '- ('.$edtCours->getEdtSalle()->getNumeroSalle().')'; } + + // 20130416 + if ($edtCours->getUtilisateurProfessionnel() != null) { + if($current_cours_appel_manquant) { + $tab_dest_message[]=$choix_creneau_obj->getHeuredebutDefiniePeriode('H:i')."-".$choix_creneau_obj->getHeurefinDefiniePeriode('H:i')."|".$classe->getNom()."|".$edtCours->getUtilisateurProfessionnel()->getLogin(); + + if((getSettingAOui('active_messagerie'))&&(getSettingAOui('PeutPosterMessage'.ucfirst($_SESSION['statut'])))) { + $echo_str.=" getHeurefinDefiniePeriode('H:i')." : Appel en ".$classe->getNom()."&message=Sauf erreur, vous avez oublié de faire l appel en ".$classe->getNom()." sur le créneau ".$choix_creneau_obj->getHeuredebutDefiniePeriode('H:i')."-".$choix_creneau_obj->getHeurefinDefiniePeriode('H:i').add_token_in_url()."' + target='_blank' + onclick=\"envoi_rappel_appel($cpt_user, + '".$edtCours->getUtilisateurProfessionnel()->getLogin()."', + '".$choix_creneau_obj->getHeuredebutDefiniePeriode('H:i')."-".$choix_creneau_obj->getHeurefinDefiniePeriode('H:i')." : Appel en ".$classe->getNom()."', + 'Sauf erreur, vous avez oublié de faire l appel en ".$classe->getNom()." sur le créneau ".$choix_creneau_obj->getHeuredebutDefiniePeriode('H:i')."-".$choix_creneau_obj->getHeurefinDefiniePeriode('H:i')."');return false;\">"; + } + } + $cpt_user++; + } + $echo_str .= ""; $echo_str .= '
      '; } @@ -467,6 +500,19 @@

      '.$classe->getNom().'

      '; + if((getSettingAOui('active_messagerie'))&&(getSettingAOui('PeutPosterMessage'.ucfirst($_SESSION['statut'])))) { + echo ""; + } + echo '

      '.$classe->getNom().'

      '; + echo '
      0)) { + echo ""; + + // A FAIRE: Boucle sur le $tab_dest_message pour envoyer des messages à tous ceux qui ont oublié de faire l'appel. + } + } echo ''; From 87e211683a5f470ca30aed5da2ca6b53d2f53644 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 12:18:03 +0200 Subject: [PATCH 0623/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20supprimer=20d?= =?UTF-8?q?e=20vieux=20messages.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../origine/messagerie/admin_template.php | 39 ++++++++++++++++--- 1 file changed, 33 insertions(+), 6 deletions(-) diff --git a/templates/origine/messagerie/admin_template.php b/templates/origine/messagerie/admin_template.php index fcb85c92a..7c1fee426 100644 --- a/templates/origine/messagerie/admin_template.php +++ b/templates/origine/messagerie/admin_template.php @@ -90,10 +90,10 @@
      -

      Activation du module

      +

      Activation et paramétrage du module

      -
      +
      @@ -132,7 +132,9 @@ $nb_min=1; } echo $nb_min; - ?>' /> minute(s). + ?>' + onkeydown="clavier_2(this.id,event,1,300);" + /> minute(s).


      @@ -196,10 +198,35 @@ +

      + +

      +
      + + + + +

      Suppression des messages

      + +
      +
      + + +

      + Supprimer les messages antérieurs au + + Petit calendrier +

      + + + +

      + +

      +
      -

      - -

      From 1a6e8dd033cf8e6a4a6043c19421cbedaee76930 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 22:13:58 +0200 Subject: [PATCH 0624/1150] Ajout d'un test sur une initialisation. --- mod_trombinoscopes/plan_de_classe.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod_trombinoscopes/plan_de_classe.php b/mod_trombinoscopes/plan_de_classe.php index 373804579..43acd92d0 100644 --- a/mod_trombinoscopes/plan_de_classe.php +++ b/mod_trombinoscopes/plan_de_classe.php @@ -188,7 +188,7 @@ $dim_photo=preg_replace('/[^0-9]/','',$dim_photo); if(($dim_photo=="")||($dim_photo==0)) {$dim_photo=100;} -if(in_array($_POST['trombi_plan_titre'],array('login', 'nom', 'prenom'))) { +if((isset($_POST['trombi_plan_titre']))&&(in_array($_POST['trombi_plan_titre'],array('login', 'nom', 'prenom')))) { savePref($_SESSION['login'] ,"trombi_plan_titre", $_POST['trombi_plan_titre']); } $trombi_plan_titre=getPref($_SESSION['login'], 'trombi_plan_titre', 'login'); From 2a6b2f49bb0618ea7cb4f6089f82231d9d3a477f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 16 Apr 2013 22:14:24 +0200 Subject: [PATCH 0625/1150] =?UTF-8?q?Affichage=20de=20t=C3=A9moins=20et=20?= =?UTF-8?q?tableau=20des=20saisies=20pr=C3=A9c=C3=A9dentes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe_plan.php | 181 +++++++++++++++++++++++++++----- 1 file changed, 154 insertions(+), 27 deletions(-) diff --git a/mod_abs2/saisir_groupe_plan.php b/mod_abs2/saisir_groupe_plan.php index a23e64fe0..6e95f32c6 100644 --- a/mod_abs2/saisir_groupe_plan.php +++ b/mod_abs2/saisir_groupe_plan.php @@ -494,7 +494,16 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev $tab_id_types_autorises=array(); $afficheEleve = array(); $elv = 0; + +// 20130416 +$chaine_tr_entete_veille_et_creneaux_precedents=array(); +$chaine_veille_et_creneaux_precedents=array(); +$temoin_saisie_veille_et_creneaux_precedents=array(); foreach($eleve_col as $eleve) { + // 20130416 + $chaine_tr_veille_et_creneaux_precedents[$eleve->getLogin()]="
      VeillegetLogin()].="Absence ou retard traité. "; + } + if($afficheEleve[$elv]['class_hier']!="") { + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].="Absence ou retard justifié. "; + } + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].="\">"; + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].=$afficheEleve[$elv]['text_hier']; + $chaine_veille_et_creneaux_precedents[$eleve->getLogin()].="".$col_creneaux[$i]."".$tmp_creneau->getNomDefiniePeriode()."   
      ".$chaine_tr_veille_et_creneaux_precedents[$eleve['accesFiche']].$chaine_veille_et_creneaux_precedents[$eleve['accesFiche']]."
      "; + $tabdiv_infobulle[]=creer_div_infobulle("div_infobulle_saisie_prec_".$eleve['position'], $titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n',2); + + } } if($compteur_nouvel_eleve>0) { @@ -1393,6 +1508,18 @@ function modif_type_courant() { //alert(type_courant); } \n"; + + + /* + echo "
      ";
      +	print_r($chaine_veille_et_creneaux_precedents);
      +	echo "
      "; + + //foreach($chaine_veille_et_creneaux_precedents as $login_ele => $tmp_tab) { + foreach($temoin_saisie_veille_et_creneaux_precedents as $login_ele => $tmp_tab) { + echo "

      $login_ele

      ".$chaine_tr_veille_et_creneaux_precedents[$login_ele].$chaine_veille_et_creneaux_precedents[$login_ele]."
      "; + } + */ } /* From 5cf5ac62b2bdced7db281d1033d8f55e65f37090 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 18 Apr 2013 14:54:52 +0200 Subject: [PATCH 0626/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20corriger=20de?= =?UTF-8?q?s=20notes=20de=20CN=20et=20bulletins=20en=20p=C3=A9riode=20part?= =?UTF-8?q?iellement=20close.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accueil_simpl_prof.php | 26 +- ...utorisation_exceptionnelle_saisie_note.php | 462 +++++++++++++++++ cahier_notes/add_modif_conteneur.php | 7 +- cahier_notes/add_modif_dev.php | 194 ++++--- .../autorisation_exceptionnelle_saisie.php | 485 ++++++++++++++++++ cahier_notes/index.php | 54 +- cahier_notes/saisie_notes.php | 89 +++- class_php/class_page_accueil.php | 21 + gestion/droits_acces.php | 10 + lib/share-html.inc.php | 6 +- lib/share-notes.inc.php | 50 ++ lib/share.inc.php | 33 ++ saisie/saisie_notes.php | 114 +++- sql/data_gepi.sql | 2 + sql/structure_gepi.sql | 21 + utilitaires/updates/162_to_dev.inc.php | 44 ++ utilitaires/updates/access_rights.inc.php | 4 + 17 files changed, 1513 insertions(+), 109 deletions(-) create mode 100644 bulletin/autorisation_exceptionnelle_saisie_note.php create mode 100644 cahier_notes/autorisation_exceptionnelle_saisie.php diff --git a/accueil_simpl_prof.php b/accueil_simpl_prof.php index e133b6c44..48743067f 100644 --- a/accueil_simpl_prof.php +++ b/accueil_simpl_prof.php @@ -723,8 +723,18 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ } // Saisie de notes dans le carnet de notes: - if($pref_accueil_cn=="y"){ - echo "\n"; + if($pref_accueil_cn=="y") { + if($class_style!="deverrouille") { + if(acces_exceptionnel_saisie_cn_groupe_periode($groups[$i]['id'], $j)) { + echo "\n"; + } + else { + echo "\n"; + } + } + else { + echo "\n"; + } if(!in_array($groups[$i]['id'],$invisibilite_groupe['cahier_notes'])) { echo "
      "; @@ -764,7 +774,17 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ // Note sur le bulletin: - echo "\n"; + if($class_style!="deverrouille") { + if(acces_exceptionnel_saisie_bull_note_groupe_periode($groups[$i]['id'], $j)) { + echo "\n"; + } + else { + echo "\n"; + } + } + else { + echo "\n"; + } if(!in_array($groups[$i]['id'],$invisibilite_groupe['bulletins'])) { echo "
      "; echo "security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +// SQL : INSERT INTO droits VALUES ( '/bulletin/autorisation_exceptionnelle_saisie_note.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F', 'F', 'Autorisation exceptionnelle de saisie de notes du bulletin.', ''); +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +/* + +DROP TABLE IF EXISTS acces_exceptionnel_matieres_notes; +CREATE TABLE acces_exceptionnel_matieres_notes ( +id INT( 11 ) NOT NULL AUTO_INCREMENT , +id_groupe INT( 11 ) NOT NULL , +periode INT( 11 ) NOT NULL , +date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +commentaires text NOT NULL, +PRIMARY KEY ( id ) +) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close'; + +*/ + +if(($_SESSION['statut']=='scolarité')&&(!getSettingAOui('PeutDonnerAccesBullNotePeriodeCloseScol'))) { + $mess=rawurlencode("Accès interdit !"); + header("Location: ../accueil.php?msg=$mess"); + die(); +} + +$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); +$id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : (isset($_GET['id_groupe']) ? $_GET['id_groupe'] : NULL); +$periode=isset($_POST['periode']) ? $_POST['periode'] : (isset($_GET['periode']) ? $_GET['periode'] : NULL); +$is_posted=isset($_POST['is_posted']) ? $_POST['is_posted'] : (isset($_GET['is_posted']) ? $_GET['is_posted'] : NULL); + +$display_date_limite=isset($_POST['display_date_limite']) ? $_POST['display_date_limite'] : (isset($_GET['display_date_limite']) ? $_GET['display_date_limite'] : NULL); +$display_heure_limite=isset($_POST['display_heure_limite']) ? $_POST['display_heure_limite'] : (isset($_GET['display_heure_limite']) ? $_GET['display_heure_limite'] : NULL); + +// Pour refermer la page plutôt que proposer un lien retour dans certains cas +$refermer_page=isset($_POST['refermer_page']) ? $_POST['refermer_page'] : (isset($_GET['refermer_page']) ? $_GET['refermer_page'] : NULL); + + +$msg=""; + +if((isset($is_posted))&&(isset($_POST['no_anti_inject_message_autorisation_exceptionnelle_bull_note']))&&($_SESSION['statut']=='administrateur')) { + check_token(); + //echo "BLIP"; + if (isset($NON_PROTECT["message_autorisation_exceptionnelle_bull_note"])){ + $message_autorisation_exceptionnelle_bull_note= traitement_magic_quotes(corriger_caracteres($NON_PROTECT["message_autorisation_exceptionnelle_bull_note"])); + } + else{ + $message_autorisation_exceptionnelle_bull_note=""; + } + + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $message_autorisation_exceptionnelle_bull_note=suppression_sauts_de_lignes_surnumeraires($message_autorisation_exceptionnelle_bull_note); + + if(!saveSetting('message_autorisation_exceptionnelle_bull_note',$message_autorisation_exceptionnelle_bull_note)) { + $msg="Erreur lors de l'enregistrement du message personnalisé.
      "; + } + else { + $msg="Enregistrement du message personnalisé effectué.
      "; + } +} + +if((isset($is_posted))&&(isset($id_classe))&&(isset($id_groupe))&&(isset($periode))&&(isset($display_date_limite))&&(isset($display_heure_limite))) { + check_token(); + if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['display_date_limite'])) { + $annee = mb_substr($_POST['display_date_limite'],6,4); + $mois = mb_substr($_POST['display_date_limite'],3,2); + $jour = mb_substr($_POST['display_date_limite'],0,2); + //echo "$jourd/$moisd/$anneed
      "; + + if(!checkdate($mois, $jour, $annee)) { + $msg.="ERREUR : La date $jour/$mois/$annee n'est pas valide.
      "; + } + else { + if (preg_match("/([0-9]{1,2}):([0-9]{0,2})/", str_ireplace('h',':',$display_heure_limite))) { + $heure = mb_substr($_POST['display_heure_limite'],0,2); + $minute = mb_substr($_POST['display_heure_limite'],3,2); + + if(($heure>23)||($heure<0)||($minute<0)||($minute>59)) { + $msg.="ERREUR : L'heure $heure/$minute n'est pas valide.
      "; + } + else { + $sql="DELETE FROM acces_exceptionnel_matieres_notes WHERE id_groupe='$id_groupe' AND periode='$periode';"; + $res=mysql_query($sql); + + $date_limite_email="$annee/$mois/$jour à $heure:$minute"; + $sql="INSERT INTO acces_exceptionnel_matieres_notes SET id_groupe='$id_groupe', periode='$periode', date_limite='$annee-$mois-$jour $heure:$minute:00';"; + $res=mysql_query($sql); + if(!$res) { + $msg.="ERREUR lors de l'insertion de l'enregistrement.
      "; + } + else { + $msg.="Enregistrement de l'autorisation effectué.
      "; + + $envoi_mail_actif=getSettingValue('envoi_mail_actif'); + if(($envoi_mail_actif!='n')&&($envoi_mail_actif!='y')) { + $envoi_mail_actif='y'; // Passer à 'n' pour faire des tests hors ligne... la phase d'envoi de mail peut sinon ensabler. + } + + if($envoi_mail_actif=='y') { + $email_personne_autorisant=""; + $nom_personne_autorisant=""; + $sql="select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."';"; + $req=mysql_query($sql); + if(mysql_num_rows($req)>0) { + $lig_u=mysql_fetch_object($req); + $nom_personne_autorisant=$lig_u->civilite." ".casse_mot($lig_u->nom,'maj')." ".casse_mot($lig_u->prenom,'majf'); + $email_personne_autorisant=$lig_u->email; + } + + $email_destinataires=""; + // Recherche des profs du groupe + $sql="SELECT DISTINCT u.email, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.id_groupe='$id_groupe' AND jgp.login=u.login AND u.email!='';"; + //echo "$sql
      "; + $req=mysql_query($sql); + if(mysql_num_rows($req)>0) { + $lig_u=mysql_fetch_object($req); + $email_destinataires.=remplace_accents($lig_u->civilite." ".$lig_u->nom." ".casse_mot($lig_u->prenom,'majf2'),'all_nospace')." <".$lig_u->email.">"; + while($lig_u=mysql_fetch_object($req)) {$email_destinataires.=",".$lig_u->email;} + + $sujet_mail="[GEPI] Autorisation exceptionnelle de saisie/correction de notes de bulletins"; + + //$gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : ""; + //if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";} + + $ajout_header=""; + if($email_personne_autorisant!="") { + $ajout_header.="Cc: $nom_personne_autorisant <".$email_personne_autorisant.">"; + $ajout_header.="\r\n"; + $ajout_header.="Reply-to: $nom_personne_autorisant <".$email_personne_autorisant.">\r\n"; + } + + $tab_champs=array('classes'); + $current_group=get_group($id_groupe,$tab_champs); + + $texte_mail="Vous avez jusqu'au $date_limite_email pour saisir/corriger une ou des notes de bulletins pour l'enseignement ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].") en période $periode.\n\n"; + $message_autorisation_exceptionnelle_bull_note=getSettingValue('message_autorisation_exceptionnelle_bull_note'); + + if($message_autorisation_exceptionnelle_bull_note=='') { + $texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; + } + else { + $texte_mail.=$message_autorisation_exceptionnelle_bull_note."\n"; + } + + $salutation=(date("H")>=18 OR date("H")<=5) ? "Bonsoir" : "Bonjour"; + $texte_mail=$salutation.",\n\n".$texte_mail."\nCordialement.\n-- \n".$nom_personne_autorisant; + + $envoi = envoi_mail($sujet_mail, $texte_mail, $email_destinataires, $ajout_header); + + if($envoi) {$msg.="Email expédié à ".htmlspecialchars($email_destinataires)."
      ";} + } + + } + } + } + } + else { + $msg = "ATTENTION : L'heure limite n'est pas valide.
      L'enregistrement ne peut avoir lieu.
      "; + } + } + } + else { + $msg = "ATTENTION : La date limite n'est pas valide.
      L'enregistrement ne peut avoir lieu.
      "; + } +} + + +//**************** EN-TETE ***************** +$titre_page = "Autorisation exceptionnelle de saisie de notes de bulletins"; +require_once("../lib/header.inc.php"); +//**************** FIN EN-TETE ***************** +//debug_var(); +echo "

      \n"; + +if($refermer_page=='y') { + echo "Retour Refermer la page \n"; +} +else { + echo "Retour Retour à l'accueil\n"; +} + +if(($_SESSION['statut']=='administrateur')&&(isset($_GET['definir_message']))) { + echo " | Autorisation exceptionnelle"; + echo "

      \n"; + + echo "

      Par défaut le message reçu par un professeur exceptionnellement autorisé à saisir en retard ou corriger des notes de bulletins est le suivant :
      \n"; + + $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes de bulletins pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; + $texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; + $texte_mail.="\nCordialement."; + + echo "

      ".$texte_mail."
      \n"; + + echo "

      Ce message peut être partiellement personnalisé.
      Vous pouvez intervenir sur la partie en gras du message.

      \n"; + + $message_autorisation_exceptionnelle_bull_note=getSettingValue('message_autorisation_exceptionnelle_bull_note'); + + if($message_autorisation_exceptionnelle_bull_note!='') { + echo "

      Votre message est actuellement personnalisé de la façon suivante :"; + $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes de bulletins pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; + $texte_mail.="$message_autorisation_exceptionnelle_bull_note\n"; + $texte_mail.="\nCordialement."; + + echo "

      ".$texte_mail."
      \n"; + } + else { + $texte_mail.=$message_autorisation_exceptionnelle_bull_note."\n"; + } + + echo "
      \n"; + echo "

      Message personnalisé :
      \n"; + echo "\n"; + echo "
      \n"; + echo add_token_field(); + echo "\n"; + echo "\n"; + echo "

      \n"; + + echo "


      \n"; + require("../lib/footer.inc.php"); + die(); +} + +if(!isset($id_classe)) { + if($_SESSION['statut']=='administrateur') { + echo " | Définir le message"; + } + echo "

      \n"; + + //echo "
      \n"; + + // On adapte la liste des classes selon le visiteur + if($_SESSION['statut']=='scolarite') { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_scol_classes jsc WHERE jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe"; + } + elseif($_SESSION['statut']=='administrateur') { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; + } + else { + // On ne doit pas arriver là + echo "

      Statut non autorisé.

      "; + require("../lib/footer.inc.php"); + die(); + } + + $res_clas=mysql_query($sql); + if(mysql_num_rows($res_clas)>0) { + echo "

      Choisir une classe :

      \n"; + + $tab_txt=array(); + $tab_lien=array(); + + while($lig_clas=mysql_fetch_object($res_clas)) { + $tab_txt[]=$lig_clas->classe; + if(isset($id_incident)) { + //$tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id."&id_incident=$id_incident"; + $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id.""; + } + else { + $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id; + } + } + + echo "
      \n"; + tab_liste($tab_txt,$tab_lien,4); + echo "
      \n"; + } +} +elseif((!isset($id_groupe))||(!isset($periode))) { + echo " | Choisir une autre classe\n"; + echo "

      \n"; + echo "

      Pour quel enseignement souhaitez-vous autoriser un enseignant à effectuer des modifications de notes de ses bulletins ?

      \n"; + $groups=get_groups_for_class($id_classe,"","n"); + + include("../lib/periodes.inc.php"); + + $date_courante=time(); + + $alt=1; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + foreach($groups as $current_group) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + for($i=1;$i<$nb_periode;$i++) { + if($ver_periode[$i]=='P') { + //echo "\n"; + echo "\n"; + } + elseif($ver_periode[$i]=='O') { + echo "\n"; + } + else { + echo "\n"; + } + } + echo "\n"; + } + echo "
      EnseignementsClasse(s)EnseignantsPériodes
      ".$current_group['name']." (".$current_group['description'].")".$current_group["classlist_string"]."\n"; + $sql="SELECT u.login, u.nom, u.prenom, u.civilite FROM utilisateurs u, j_groupes_professeurs j WHERE (u.login = j.login and j.id_groupe = '" . $current_group['id'] . "') ORDER BY u.nom, u.prenom"; + $get_profs=mysql_query($sql); + + $nb = mysql_num_rows($get_profs); + for ($i=0;$i<$nb;$i++){ + if($i>0) {echo ",
      \n";} + $p_login = mysql_result($get_profs, $i, "login"); + $p_nom = mysql_result($get_profs, $i, "nom"); + $p_prenom = mysql_result($get_profs, $i, "prenom"); + $civilite = mysql_result($get_profs, $i, "civilite"); + echo "$civilite $p_nom $p_prenom"; + } + echo "
      \n"; + echo "Période $i\n"; + $sql="SELECT UNIX_TIMESTAMP(date_limite) AS date_limite FROM acces_exceptionnel_matieres_notes WHERE id_groupe='".$current_group['id']."' AND periode='$i';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + if($lig->date_limite>$date_courante) { + echo "
      "; + echo "Autorisation jusqu'au
      ".strftime("%d/%m/%Y à %H:%M",$lig->date_limite); + } + } + echo "
      Période $i closePériode $i ouverte en saisie
      \n"; +} +else { + echo " | Choisir une autre classe\n"; + echo " | Choisir un autre enseignement de la classe\n"; + echo "

      \n"; + + echo "\n"; + echo add_token_field(); + $group=get_group($id_groupe); + echo "

      Vous souhaitez autoriser exceptionnellement un enseignant à effectuer des saisies/corrections de notes de bulletins pour l'enseignement ".$group['name']." (".$group['description']." en ".$group['classlist_string'].") en période $periode.

      \n"; + + $sql="SELECT commentaires, UNIX_TIMESTAMP(date_limite) AS date_limite FROM acces_exceptionnel_matieres_notes WHERE id_groupe='".$group['id']."' AND periode='$periode';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + $date_limite=$lig->date_limite; + $commentaires=$lig->commentaires; + + $date_courante=time(); + + //$tab_date_limite=get_date($date_limite); + echo "

      Une autorisation exceptionnelle de saisie existe pour cet enseignement/période : ".strftime("%d/%m/%Y à %H:%M",$date_limite)."

      \n"; + $display_date_limite=strftime("%d/%m/%Y",$date_limite); + $display_heure_limite=strftime("%H:%M",$date_limite); + + if($commentaires!="") { + echo "
      Compte-rendu des modifications effectuées :
      ".nl2br($commentaires)."
      \n"; + } + + if($date_courante>$date_limite) { + echo "

      Le délais imparti pour la saisie/correction est dépassé.

      \n"; + } + } + else { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + $display_date_limite=$jour."/".$mois."/".$annee; + + $date_courante=getdate(); + $heure_courante=$date_courante['hours']; + $minute_courante=$date_courante['minutes']; + if($minute_courante+15>=60) { + if($heure_courante+1>=24) { + $heure_limite=$heure_courante+1-24; + $minute_limite=$minute_courante+15-60; + // A charge au couche-tard d'augmenter d'un jour... + } + else { + $heure_limite=$heure_courante+1; + $minute_limite=$minute_courante+15-60; + } + } + else { + $heure_limite=$heure_courante; + $minute_limite=$minute_courante+15; + } + $display_heure_limite="$heure_limite:$minute_limite"; + } + + echo "

      Quelle doit être la date/heure limite de cette autorisation de modification de notes de bulletins ?
      \n"; + include("../lib/calendrier/calendrier.class.php"); + $cal = new Calendrier("formulaire", "display_date_limite"); + + if(isset($refermer_page)) { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Calendrier\"\n"; + echo " à \n"; + echo "\n"; + echo "

      \n"; + + // Mail + + echo "
      \n"; + + if((isset($commentaires))&&($commentaires!="")) { + echo "


      \n

      NOTES : Si vous définissez un nouveau délais, le texte des modifications effectuées (affiché ci-dessus) sera supprimé.
      Si vous souhaitez en conserver la trace, prenez soin de copier/coller le contenu vers un bloc-notes,...

      \n"; + } +} + +echo "


      \n"; + +require("../lib/footer.inc.php"); +?> diff --git a/cahier_notes/add_modif_conteneur.php b/cahier_notes/add_modif_conteneur.php index b343e3734..c83d7bd49 100644 --- a/cahier_notes/add_modif_conteneur.php +++ b/cahier_notes/add_modif_conteneur.php @@ -105,8 +105,13 @@ */ include "../lib/periodes.inc.php"; +$acces_exceptionnel_saisie=false; +if($_SESSION['statut']=='professeur') { + $acces_exceptionnel_saisie=acces_exceptionnel_saisie_cn_groupe_periode($id_groupe, $periode_num); +} + // On teste si la periode est vérouillée ! -if ($current_group["classe"]["ver_periode"]["all"][$periode_num] <= 1) { +if (($current_group["classe"]["ver_periode"]["all"][$periode_num] <= 1)&&(!$acces_exceptionnel_saisie)) { $mess=rawurlencode("Vous tentez de pénétrer dans un carnet de notes dont la période est bloquée !"); header("Location: index.php?msg=$mess"); die(); diff --git a/cahier_notes/add_modif_dev.php b/cahier_notes/add_modif_dev.php index 98215c83b..7493544b1 100644 --- a/cahier_notes/add_modif_dev.php +++ b/cahier_notes/add_modif_dev.php @@ -113,8 +113,13 @@ */ include "../lib/periodes.inc.php"; -// On teste si la periode est vérrouillée ! -if ($current_group["classe"]["ver_periode"]["all"][$periode_num] <= 1) { +$acces_exceptionnel_saisie=false; +if($_SESSION['statut']=='professeur') { + $acces_exceptionnel_saisie=acces_exceptionnel_saisie_cn_groupe_periode($id_groupe, $periode_num); +} + +// On teste si la periode est vérouillée ! +if (($current_group["classe"]["ver_periode"]["all"][$periode_num] <= 1)&&(!$acces_exceptionnel_saisie)) { $mess=rawurlencode("Vous tentez de pénétrer dans un carnet de notes dont la période est bloquée !"); header("Location: index.php?msg=$mess"); die(); @@ -170,7 +175,7 @@ // Boucle sur les autres enseignements sur lesquels créer le même devoir for($i=0;$i=2) { $tmp_id_racine=""; @@ -265,54 +270,75 @@ } - if (isset($_POST['nom_court'])) { - $nom_court = $_POST['nom_court']; - } else { - $nom_court = "Devoir ".$id_devoir; - } - $reg = mysql_query("UPDATE cn_devoirs SET nom_court = '".corriger_caracteres($nom_court)."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + // Pour loguer les modifications en période close: + $temoin_log="n"; + $chaine_log=""; + if ($current_group["classe"]["ver_periode"]["all"][$periode_num] <= 1) { + $sql="SELECT * FROM cn_devoirs WHERE id = '$id_devoir';"; + $res_old=mysql_query($sql); + $lig_old=mysql_fetch_object($res_old); + $temoin_log="y"; + } + + if (isset($_POST['nom_court'])) { + $nom_court = $_POST['nom_court']; + } else { + $nom_court = "Devoir ".$id_devoir; + } + if(($temoin_log=="y")&&($nom_court!=$lig_old->nom_court)) { + $chaine_log.=". Modification du nom court : $nom_court -> $lig_old->nom_court\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET nom_court = '".corriger_caracteres($nom_court)."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - if (isset($_POST['nom_complet'])) { - $nom_complet = $_POST['nom_complet']; - } else { - $nom_complet = $nom_court; - } - - $reg = mysql_query("UPDATE cn_devoirs SET nom_complet = '".corriger_caracteres($nom_complet)."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + if (isset($_POST['nom_complet'])) { + $nom_complet = $_POST['nom_complet']; + } else { + $nom_complet = $nom_court; + } + if(($temoin_log=="y")&&($nom_complet!=$lig_old->nom_complet)) { + $chaine_log.=". Modification du nom complet : $nom_complet -> $lig_old->nom_complet\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET nom_complet = '".corriger_caracteres($nom_complet)."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - if (isset($_POST['description'])) { - $reg = mysql_query("UPDATE cn_devoirs SET description = '".corriger_caracteres($_POST['description'])."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; - } + if (isset($_POST['description'])) { + if(($temoin_log=="y")&&($_POST['description']!=$lig_old->description)) { + $chaine_log.=". Modification de la description :\n$lig_old->description\n->\n".$_POST['description']."\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET description = '".corriger_caracteres($_POST['description'])."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; + } for($i=0;$i\n"; $reg=mysql_query($sql); } - if (isset($_POST['id_emplacement'])) { - $id_emplacement = $_POST['id_emplacement']; - $reg = mysql_query("UPDATE cn_devoirs SET id_conteneur = '".$id_emplacement."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + if (isset($_POST['id_emplacement'])) { + $id_emplacement = $_POST['id_emplacement']; + if(($temoin_log=="y")&&($lig_old->id_conteneur!=$id_emplacement)) { + $chaine_log.=". Modification du conteneur dans lequel se trouve le devoir : $lig_old->id_conteneur -> ".$id_emplacement."\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET id_conteneur = '".$id_emplacement."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - } + } $tmp_coef=isset($_POST['coef']) ? $_POST['coef'] : 0; if((preg_match("/^[0-9]*$/", $tmp_coef))||(preg_match("/^[0-9]*\.[0-9]$/", $tmp_coef))) { @@ -331,6 +357,9 @@ $msg.="Le coefficient proposé $tmp_coef est invalide. Mise à 1.0 du coefficient.
      "; $tmp_coef="1.0"; } + if(($temoin_log=="y")&&($lig_old->coef!=$tmp_coef)) { + $chaine_log.=". Modification du coefficient du devoir : $lig_old->coef -> ".$tmp_coef."\n"; + } $reg = mysql_query("UPDATE cn_devoirs SET coef='".$tmp_coef."' WHERE id='$id_devoir'"); if (!$reg) $reg_ok = "no"; for($i=0;$i"; $note_sur=getSettingValue("referentiel_note"); } + if(($temoin_log=="y")&&($lig_old->note_sur!=$note_sur)) { + $chaine_log.=". Modification du référentiel de note (note_sur) du devoir : $lig_old->note_sur -> ".$note_sur."\n"; + } $reg = mysql_query("UPDATE cn_devoirs SET note_sur='".$note_sur."' WHERE id='$id_devoir'"); if (!$reg) $reg_ok = "no"; for($i=0;$iramener_sur_referentiel!=$ramener_sur_referentiel)) { + $chaine_log.=". Modification du paramètre ramener_sur_referentiel du devoir : $lig_old->ramener_sur_referentiel -> ".$ramener_sur_referentiel."\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET ramener_sur_referentiel = '$ramener_sur_referentiel' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - if (isset($_POST['facultatif']) and preg_match("/^(O|N|B)$/", $_POST['facultatif'])) { - $reg = mysql_query("UPDATE cn_devoirs SET facultatif = '".$_POST['facultatif']."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + if (isset($_POST['facultatif']) and preg_match("/^(O|N|B)$/", $_POST['facultatif'])) { + $reg = mysql_query("UPDATE cn_devoirs SET facultatif = '".$_POST['facultatif']."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - } + } - if (isset($_POST['display_date'])) { - if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['display_date'])) { - $annee = mb_substr($_POST['display_date'],6,4); - $mois = mb_substr($_POST['display_date'],3,2); - $jour = mb_substr($_POST['display_date'],0,2); - } else { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - } - $date = $annee."-".$mois."-".$jour." 00:00:00"; - $reg = mysql_query("UPDATE cn_devoirs SET date = '".$date."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + if (isset($_POST['display_date'])) { + if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['display_date'])) { + $annee = mb_substr($_POST['display_date'],6,4); + $mois = mb_substr($_POST['display_date'],3,2); + $jour = mb_substr($_POST['display_date'],0,2); + } else { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + } + $date = $annee."-".$mois."-".$jour." 00:00:00"; + if(($temoin_log=="y")&&($lig_old->date!=$date)) { + $chaine_log.=". Modification de la date du devoir : ".formate_date($lig_old->date)." -> ".formate_date($date)."\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET date = '".$date."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - } + } //==================================================== - if (isset($_POST['date_ele_resp'])) { - if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['date_ele_resp'])) { - $annee = mb_substr($_POST['date_ele_resp'],6,4); - $mois = mb_substr($_POST['date_ele_resp'],3,2); - $jour = mb_substr($_POST['date_ele_resp'],0,2); - } else { - $annee = strftime("%Y"); - $mois = strftime("%m"); - $jour = strftime("%d"); - } - $date = $annee."-".$mois."-".$jour." 00:00:00"; - $reg = mysql_query("UPDATE cn_devoirs SET date_ele_resp='".$date."' WHERE id = '$id_devoir'"); - if (!$reg) $reg_ok = "no"; + if (isset($_POST['date_ele_resp'])) { + if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['date_ele_resp'])) { + $annee = mb_substr($_POST['date_ele_resp'],6,4); + $mois = mb_substr($_POST['date_ele_resp'],3,2); + $jour = mb_substr($_POST['date_ele_resp'],0,2); + } else { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + } + $date = $annee."-".$mois."-".$jour." 00:00:00"; + if(($temoin_log=="y")&&($lig_old->date_ele_resp!=$date)) { + $chaine_log.=". Modification de la date de visibilité élève/parent du devoir : ".formate_date($lig_old->date_ele_resp)." -> ".formate_date($date)."\n"; + } + $reg = mysql_query("UPDATE cn_devoirs SET date_ele_resp='".$date."' WHERE id = '$id_devoir'"); + if (!$reg) $reg_ok = "no"; for($i=0;$i\n"; $reg=mysql_query($sql); } - } + } //==================================================== if (isset($_POST['display_parents'])) { @@ -437,7 +477,9 @@ } else { $display_parents=0; } - + if(($temoin_log=="y")&&($lig_old->display_parents!=$display_parents)) { + $chaine_log.=". Modification de la visibilité du devoir pour les parents/élèves : $lig_old->display_parents -> ".$display_parents."\n"; + } $reg = mysql_query("UPDATE cn_devoirs SET display_parents = '$display_parents' WHERE id = '$id_devoir'"); if (!$reg) {$reg_ok = "no";} for($i=0;$idisplay_parents_app!=$display_parents_app)) { + $chaine_log.=". Modification de la visibilité par les parents/élèves du commentaire saisi : $lig_old->display_parents_app -> ".$display_parents_app."\n"; + } $reg = mysql_query("UPDATE cn_devoirs SET display_parents_app = '$display_parents_app' WHERE id = '$id_devoir'"); if (!$reg) {$reg_ok = "no";} for($i=0;$isecurity_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +// SQL : INSERT INTO droits VALUES ( '/cahier_notes/autorisation_exceptionnelle_saisie.php', 'V', 'F', 'F', 'V', 'F', 'F', 'F', 'F', 'Autorisation exceptionnelle de saisie dans le carnet de notes.', ''); +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +/* + +DROP TABLE IF EXISTS acces_cn; +CREATE TABLE acces_cn ( +id INT( 11 ) NOT NULL AUTO_INCREMENT , +id_groupe INT( 11 ) NOT NULL , +periode INT( 11 ) NOT NULL , +date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, +commentaires text NOT NULL, +PRIMARY KEY ( id ) +) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel au CN en periode close'; + +*/ + +if(($_SESSION['statut']=='scolarité')&&(!getSettingAOui('PeutDonnerAccesCNPeriodeCloseScol'))) { + $mess=rawurlencode("Accès interdit !"); + header("Location: ../accueil.php?msg=$mess"); + die(); +} + +$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); +$id_groupe=isset($_POST['id_groupe']) ? $_POST['id_groupe'] : (isset($_GET['id_groupe']) ? $_GET['id_groupe'] : NULL); +$periode=isset($_POST['periode']) ? $_POST['periode'] : (isset($_GET['periode']) ? $_GET['periode'] : NULL); +$is_posted=isset($_POST['is_posted']) ? $_POST['is_posted'] : (isset($_GET['is_posted']) ? $_GET['is_posted'] : NULL); + +$display_date_limite=isset($_POST['display_date_limite']) ? $_POST['display_date_limite'] : (isset($_GET['display_date_limite']) ? $_GET['display_date_limite'] : NULL); +$display_heure_limite=isset($_POST['display_heure_limite']) ? $_POST['display_heure_limite'] : (isset($_GET['display_heure_limite']) ? $_GET['display_heure_limite'] : NULL); + +// Pour refermer la page plutôt que proposer un lien retour dans certains cas +$refermer_page=isset($_POST['refermer_page']) ? $_POST['refermer_page'] : (isset($_GET['refermer_page']) ? $_GET['refermer_page'] : NULL); + + +$msg=""; + +if((isset($is_posted))&&(isset($_POST['no_anti_inject_message_autorisation_exceptionnelle_cn']))&&($_SESSION['statut']=='administrateur')) { + check_token(); + //echo "BLIP"; + if (isset($NON_PROTECT["message_autorisation_exceptionnelle_cn"])){ + $message_autorisation_exceptionnelle_cn= traitement_magic_quotes(corriger_caracteres($NON_PROTECT["message_autorisation_exceptionnelle_cn"])); + } + else{ + $message_autorisation_exceptionnelle_cn=""; + } + + // Contrôle des saisies pour supprimer les sauts de lignes surnuméraires. + $message_autorisation_exceptionnelle_cn=suppression_sauts_de_lignes_surnumeraires($message_autorisation_exceptionnelle_cn); + + if(!saveSetting('message_autorisation_exceptionnelle_cn',$message_autorisation_exceptionnelle_cn)) { + $msg="Erreur lors de l'enregistrement du message personnalisé.
      "; + } + else { + $msg="Enregistrement du message personnalisé effectué.
      "; + } +} + +if((isset($is_posted))&&(isset($id_classe))&&(isset($id_groupe))&&(isset($periode))&&(isset($display_date_limite))&&(isset($display_heure_limite))) { + check_token(); + if (preg_match("#([0-9]{2})/([0-9]{2})/([0-9]{4})#", $_POST['display_date_limite'])) { + $annee = mb_substr($_POST['display_date_limite'],6,4); + $mois = mb_substr($_POST['display_date_limite'],3,2); + $jour = mb_substr($_POST['display_date_limite'],0,2); + //echo "$jourd/$moisd/$anneed
      "; + + if(!checkdate($mois, $jour, $annee)) { + $msg.="ERREUR : La date $jour/$mois/$annee n'est pas valide.
      "; + } + else { + if (preg_match("/([0-9]{1,2}):([0-9]{0,2})/", str_ireplace('h',':',$display_heure_limite))) { + $heure = mb_substr($_POST['display_heure_limite'],0,2); + $minute = mb_substr($_POST['display_heure_limite'],3,2); + + if(($heure>23)||($heure<0)||($minute<0)||($minute>59)) { + $msg.="ERREUR : L'heure $heure/$minute n'est pas valide.
      "; + } + else { + $sql="DELETE FROM acces_cn WHERE id_groupe='$id_groupe' AND periode='$periode';"; + $res=mysql_query($sql); + + $date_limite_email="$annee/$mois/$jour à $heure:$minute"; + $sql="INSERT INTO acces_cn SET id_groupe='$id_groupe', periode='$periode', date_limite='$annee-$mois-$jour $heure:$minute:00';"; + $res=mysql_query($sql); + if(!$res) { + $msg.="ERREUR lors de l'insertion de l'enregistrement.
      "; + } + else { + $msg.="Enregistrement de l'autorisation effectué.
      "; + + $complement_texte_mail=""; + if(($_SESSION['statut']=='administrateur')||(($_SESSION['statut']=='scolarite')&&(getSettingAOui('PeutDonnerAccesCNPeriodeCloseScol')))) { + if((isset($_POST['donner_acces_modif_bull_note']))&&($_POST['donner_acces_modif_bull_note']=='y')) { + $sql="INSERT INTO acces_exceptionnel_matieres_notes SET id_groupe='$id_groupe', periode='$periode', date_limite='$annee-$mois-$jour $heure:$minute:00';"; + $res=mysql_query($sql); + if(!$res) { + $msg.="ERREUR lors de l'insertion de l'enregistrement pour les bulletins.
      "; + } + else { + $msg.="Enregistrement de l'autorisation pour les bulletins effectué.
      "; + $complement_texte_mail="Vous pourrez aussi corriger les moyennes du bulletin.\n\n"; + } + } + } + + $envoi_mail_actif=getSettingValue('envoi_mail_actif'); + if(($envoi_mail_actif!='n')&&($envoi_mail_actif!='y')) { + $envoi_mail_actif='y'; // Passer à 'n' pour faire des tests hors ligne... la phase d'envoi de mail peut sinon ensabler. + } + + if($envoi_mail_actif=='y') { + $email_personne_autorisant=""; + $nom_personne_autorisant=""; + $sql="select nom, prenom, civilite, email from utilisateurs where login = '".$_SESSION['login']."';"; + $req=mysql_query($sql); + if(mysql_num_rows($req)>0) { + $lig_u=mysql_fetch_object($req); + $nom_personne_autorisant=$lig_u->civilite." ".casse_mot($lig_u->nom,'maj')." ".casse_mot($lig_u->prenom,'majf'); + $email_personne_autorisant=$lig_u->email; + } + + $email_destinataires=""; + // Recherche des profs du groupe + $sql="SELECT DISTINCT u.email, u.civilite, u.nom, u.prenom FROM utilisateurs u, j_groupes_professeurs jgp WHERE jgp.id_groupe='$id_groupe' AND jgp.login=u.login AND u.email!='';"; + //echo "$sql
      "; + $req=mysql_query($sql); + if(mysql_num_rows($req)>0) { + $lig_u=mysql_fetch_object($req); + $email_destinataires.=remplace_accents($lig_u->civilite." ".$lig_u->nom." ".casse_mot($lig_u->prenom,'majf2'),'all_nospace')." <".$lig_u->email.">"; + while($lig_u=mysql_fetch_object($req)) {$email_destinataires.=",".$lig_u->email;} + + $sujet_mail="[GEPI] Autorisation exceptionnelle de saisie/correction de CN"; + + //$gepiPrefixeSujetMail=getSettingValue("gepiPrefixeSujetMail") ? getSettingValue("gepiPrefixeSujetMail") : ""; + //if($gepiPrefixeSujetMail!='') {$gepiPrefixeSujetMail.=" ";} + + $ajout_header=""; + if($email_personne_autorisant!="") { + $ajout_header.="Cc: $nom_personne_autorisant <".$email_personne_autorisant.">"; + $ajout_header.="\r\n"; + $ajout_header.="Reply-to: $nom_personne_autorisant <".$email_personne_autorisant.">\r\n"; + } + + $tab_champs=array('classes'); + $current_group=get_group($id_groupe,$tab_champs); + + $texte_mail="Vous avez jusqu'au $date_limite_email pour saisir/corriger une ou des notes du carnet de notes pour l'enseignement ".$current_group['name']." (".$current_group['description']." en ".$current_group['classlist_string'].") en période $periode.\n\n"; + $texte_mail.=$complement_texte_mail; + $message_autorisation_exceptionnelle_cn=getSettingValue('message_autorisation_exceptionnelle_cn'); + + if($message_autorisation_exceptionnelle_cn=='') { + $texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; + } + else { + $texte_mail.=$message_autorisation_exceptionnelle_cn."\n"; + } + + $salutation=(date("H")>=18 OR date("H")<=5) ? "Bonsoir" : "Bonjour"; + $texte_mail=$salutation.",\n\n".$texte_mail."\nCordialement.\n-- \n".$nom_personne_autorisant; + + $envoi = envoi_mail($sujet_mail, $texte_mail, $email_destinataires, $ajout_header); + + if($envoi) {$msg.="Email expédié à ".htmlspecialchars($email_destinataires)."
      ";} + } + + } + } + } + } + else { + $msg = "ATTENTION : L'heure limite n'est pas valide.
      L'enregistrement ne peut avoir lieu.
      "; + } + } + } + else { + $msg = "ATTENTION : La date limite n'est pas valide.
      L'enregistrement ne peut avoir lieu.
      "; + } +} + + +//**************** EN-TETE ***************** +$titre_page = "Autorisation exceptionnelle de saisie de CN"; +require_once("../lib/header.inc.php"); +//**************** FIN EN-TETE ***************** +//debug_var(); +echo "

      \n"; + +if($refermer_page=='y') { + echo "Retour Refermer la page \n"; +} +else { + echo "Retour Retour à l'accueil\n"; +} + +if(($_SESSION['statut']=='administrateur')&&(isset($_GET['definir_message']))) { + echo " | Autorisation exceptionnelle"; + echo "

      \n"; + + echo "

      Par défaut le message reçu par un professeur exceptionnellement autorisé à saisir en retard ou corriger des notes d'un de ses carnets de notes est le suivant :
      \n"; + + $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes du carnet de notes pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; + $texte_mail.="Cette autorisation est exceptionnelle.\nIl conviendra de veiller à effectuer les saisies dans les temps une prochaine fois.\n"; + $texte_mail.="\nCordialement."; + + echo "

      ".$texte_mail."
      \n"; + + echo "

      Ce message peut être partiellement personnalisé.
      Vous pouvez intervenir sur la partie en gras du message.

      \n"; + + $message_autorisation_exceptionnelle_cn=getSettingValue('message_autorisation_exceptionnelle_cn'); + + if($message_autorisation_exceptionnelle_cn!='') { + echo "

      Votre message est actuellement personnalisé de la façon suivante :"; + $texte_mail="Bonjour/Bonsoir\n\nVous avez jusqu'au TELLE DATE TELLE HEURE\npour saisir/corriger une ou des notes du carnet de notes pour l'enseignement XXXXXXXXXX\nen TELLE(S) CLASSE(S) en période NUMERO_PERIODE.\n\n"; + $texte_mail.="$message_autorisation_exceptionnelle_cn\n"; + $texte_mail.="\nCordialement."; + + echo "

      ".$texte_mail."
      \n"; + } + else { + $texte_mail.=$message_autorisation_exceptionnelle_cn."\n"; + } + + echo "
      \n"; + echo "

      Message personnalisé :
      \n"; + echo "\n"; + echo "
      \n"; + echo add_token_field(); + echo "\n"; + echo "\n"; + echo "

      \n"; + + echo "


      \n"; + require("../lib/footer.inc.php"); + die(); +} + +if(!isset($id_classe)) { + if($_SESSION['statut']=='administrateur') { + echo " | Définir le message"; + } + echo "

      \n"; + + //echo "
      \n"; + + // On adapte la liste des classes selon le visiteur + if($_SESSION['statut']=='scolarite') { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_scol_classes jsc WHERE jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe"; + } + elseif($_SESSION['statut']=='administrateur') { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c ORDER BY c.classe"; + } + else { + // On ne doit pas arriver là + echo "

      Statut non autorisé.

      "; + require("../lib/footer.inc.php"); + die(); + } + + $res_clas=mysql_query($sql); + if(mysql_num_rows($res_clas)>0) { + echo "

      Choisir une classe :

      \n"; + + $tab_txt=array(); + $tab_lien=array(); + + while($lig_clas=mysql_fetch_object($res_clas)) { + $tab_txt[]=$lig_clas->classe; + if(isset($id_incident)) { + //$tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id."&id_incident=$id_incident"; + $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id.""; + } + else { + $tab_lien[]=$_SERVER['PHP_SELF']."?id_classe=".$lig_clas->id; + } + } + + echo "
      \n"; + tab_liste($tab_txt,$tab_lien,4); + echo "
      \n"; + } +} +elseif((!isset($id_groupe))||(!isset($periode))) { + echo " | Choisir une autre classe\n"; + echo "

      \n"; + echo "

      Pour quel enseignement souhaitez-vous autoriser un enseignant à effectuer des modifications dans son carnet de notes ?

      \n"; + $groups=get_groups_for_class($id_classe,"","n"); + + include("../lib/periodes.inc.php"); + + $date_courante=time(); + + $alt=1; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + foreach($groups as $current_group) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + for($i=1;$i<$nb_periode;$i++) { + if($ver_periode[$i]=='P') { + //echo "\n"; + echo "\n"; + } + elseif($ver_periode[$i]=='O') { + echo "\n"; + } + else { + echo "\n"; + } + } + echo "\n"; + } + echo "
      EnseignementsClasse(s)EnseignantsPériodes
      ".$current_group['name']." (".$current_group['description'].")".$current_group["classlist_string"]."\n"; + $sql="SELECT u.login, u.nom, u.prenom, u.civilite FROM utilisateurs u, j_groupes_professeurs j WHERE (u.login = j.login and j.id_groupe = '" . $current_group['id'] . "') ORDER BY u.nom, u.prenom"; + $get_profs=mysql_query($sql); + + $nb = mysql_num_rows($get_profs); + for ($i=0;$i<$nb;$i++){ + if($i>0) {echo ",
      \n";} + $p_login = mysql_result($get_profs, $i, "login"); + $p_nom = mysql_result($get_profs, $i, "nom"); + $p_prenom = mysql_result($get_profs, $i, "prenom"); + $civilite = mysql_result($get_profs, $i, "civilite"); + echo "$civilite $p_nom $p_prenom"; + } + echo "
      \n"; + echo "Période $i\n"; + $sql="SELECT UNIX_TIMESTAMP(date_limite) AS date_limite FROM acces_cn WHERE id_groupe='".$current_group['id']."' AND periode='$i';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + if($lig->date_limite>$date_courante) { + echo "
      "; + echo "Autorisation jusqu'au
      ".strftime("%d/%m/%Y à %H:%M",$lig->date_limite); + } + } + echo "
      Période $i closePériode $i ouverte en saisie
      \n"; +} +else { + echo " | Choisir une autre classe\n"; + echo " | Choisir un autre enseignement de la classe\n"; + echo "

      \n"; + + echo "\n"; + echo add_token_field(); + $group=get_group($id_groupe); + echo "

      Vous souhaitez autoriser exceptionnellement un enseignant à effectuer des saisies/corrections de notes du carnet de notes pour l'enseignement ".$group['name']." (".$group['description']." en ".$group['classlist_string'].") en période $periode.

      \n"; + + $sql="SELECT commentaires, UNIX_TIMESTAMP(date_limite) AS date_limite FROM acces_cn WHERE id_groupe='".$group['id']."' AND periode='$periode';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + $date_limite=$lig->date_limite; + $commentaires=$lig->commentaires; + + $date_courante=time(); + + //$tab_date_limite=get_date($date_limite); + echo "

      Une autorisation exceptionnelle de saisie existe pour cet enseignement/période : ".strftime("%d/%m/%Y à %H:%M",$date_limite)."

      \n"; + $display_date_limite=strftime("%d/%m/%Y",$date_limite); + $display_heure_limite=strftime("%H:%M",$date_limite); + + if($commentaires!="") { + echo "
      Compte-rendu des modifications effectuées :
      ".nl2br($commentaires)."
      \n"; + } + + if($date_courante>$date_limite) { + echo "

      Le délais imparti pour la saisie/correction est dépassé.

      \n"; + } + } + else { + $annee = strftime("%Y"); + $mois = strftime("%m"); + $jour = strftime("%d"); + $display_date_limite=$jour."/".$mois."/".$annee; + + $date_courante=getdate(); + $heure_courante=$date_courante['hours']; + $minute_courante=$date_courante['minutes']; + if($minute_courante+15>=60) { + if($heure_courante+1>=24) { + $heure_limite=$heure_courante+1-24; + $minute_limite=$minute_courante+15-60; + // A charge au couche-tard d'augmenter d'un jour... + } + else { + $heure_limite=$heure_courante+1; + $minute_limite=$minute_courante+15-60; + } + } + else { + $heure_limite=$heure_courante; + $minute_limite=$minute_courante+15; + } + $display_heure_limite="$heure_limite:$minute_limite"; + } + + echo "

      Quelle doit être la date/heure limite de cette autorisation de modification de notes du carnet de notes ?
      \n"; + include("../lib/calendrier/calendrier.class.php"); + $cal = new Calendrier("formulaire", "display_date_limite"); + + if(isset($refermer_page)) { + echo "\n"; + } + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Calendrier\"\n"; + echo " à \n"; + + // A FAIRE: Donner aussi l'accès bull note... + if(($_SESSION['statut']=='administrateur')||(($_SESSION['statut']=='scolarite')&&(getSettingAOui('PeutDonnerAccesCNPeriodeCloseScol')))) { + echo "
      \n"; + echo ""; + echo "
      \n"; + } + echo "\n"; + echo "

      \n"; + + // Mail + + echo "
      \n"; + + if((isset($commentaires))&&($commentaires!="")) { + echo "


      \n

      NOTES : Si vous définissez un nouveau délais, le texte des modifications effectuées (affiché ci-dessus) sera supprimé.
      Si vous souhaitez en conserver la trace, prenez soin de copier/coller le contenu vers un bloc-notes,...

      \n"; + } +} + +echo "


      \n"; + +require("../lib/footer.inc.php"); +?> diff --git a/cahier_notes/index.php b/cahier_notes/index.php index 888c5fba2..90da7fb09 100644 --- a/cahier_notes/index.php +++ b/cahier_notes/index.php @@ -275,8 +275,13 @@ } } +$acces_exceptionnel_saisie=false; +if((isset($periode_num))&&($_SESSION['statut']=='professeur')) { + $acces_exceptionnel_saisie=acces_exceptionnel_saisie_cn_groupe_periode($id_groupe, $periode_num); +} + // Recopie de la structure de la periode précédente -if ((isset($_GET['creer_structure'])) and ($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)) { +if ((isset($_GET['creer_structure'])) and (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie))) { check_token(); function recopie_arbo($id_racine, $id_prec,$id_new) { @@ -353,6 +358,11 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { $periode_num = mysql_result($appel_cahier_notes, 0, 'periode'); include "../lib/periodes.inc.php"; + $acces_exceptionnel_saisie=false; + if((isset($periode_num))&&($_SESSION['statut']=='professeur')) { + $acces_exceptionnel_saisie=acces_exceptionnel_saisie_cn_groupe_periode($id_groupe, $periode_num); + } + /* $fich=fopen("/tmp/test_img.txt","a+"); fwrite($fich,"Juste avant test suppr\n"); @@ -375,6 +385,7 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { */ check_token(); + if (($current_group["classe"]["ver_periode"]["all"][$periode_num]==3)||($acces_exceptionnel_saisie)) { $sql0="SELECT id_conteneur FROM cn_devoirs WHERE id='$temp'"; //echo "$sql0
      "; $sql= mysql_query($sql0); @@ -383,6 +394,18 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { } else { $id_cont = mysql_result($sql, 0, 'id_conteneur'); + + if($current_group["classe"]["ver_periode"]["all"][$periode_num]!=3) { + $sql="SELECT * FROM cn_devoirs WHERE id='$temp';"; + //echo "$sql
      "; + $res_cd=mysql_query($sql); + if(mysql_num_rows($res_cd)>0) { + $lig_cd=mysql_fetch_object($res_cd); + $texte="Suppression du devoir n°$temp : ".$lig_cd->nom_court." (".$lig_cd->nom_complet.") du ".formate_date($lig_cd->date).".\n"; + $retour=log_modifs_acces_exceptionnel_saisie_cn_groupe_periode($id_groupe, $periode_num, $texte); + } + } + $sql = mysql_query("DELETE FROM cn_notes_devoirs WHERE id_devoir='$temp'"); $sql = mysql_query("DELETE FROM cn_devoirs WHERE id='$temp'"); @@ -407,7 +430,7 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { mise_a_jour_moyennes_conteneurs($current_group, $periode_num,$id_racine,$id_racine,$arret); } } - + } } // // Supression d'un conteneur @@ -415,7 +438,7 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { if ((isset($_GET['del_cont'])) and ($_GET['js_confirmed'] ==1)) { check_token(); - //if((isset($_GET['alea']))&&($_GET['alea']==$_SESSION['gepi_alea'])) { + if (($current_group["classe"]["ver_periode"]["all"][$periode_num]==3)||($acces_exceptionnel_saisie)) { $temp = $_GET['del_cont']; $sql= mysql_query("SELECT id FROM cn_devoirs WHERE id_conteneur='$temp'"); $nb_dev = mysql_num_rows($sql); @@ -439,9 +462,8 @@ function recopie_arbo($id_racine, $id_prec,$id_new) { $arret = 'no'; mise_a_jour_moyennes_conteneurs($current_group, $periode_num,$id_racine,$id_racine,$arret); } - } - + } } echo "
      \n"; @@ -633,13 +655,11 @@ function confirm_changement_periode(thechange, themessage) echo "Exporter les notes | \n"; //================================== - if ($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2) { - - //================================== - // AJOUT: boireaus EXPORT... + if ($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2) { echo "Importer les notes | \n"; - //================================== + } + if (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie)) { echo " Créer un"; if(getSettingValue("gepi_denom_boite_genre")=='f'){echo "e";} echo " ".htmlspecialchars(my_strtolower(getSettingValue("gepi_denom_boite")))." | \n"; @@ -732,6 +752,7 @@ function confirm_changement_periode(thechange, themessage) $sql="SELECT 1=1 FROM j_groupes_visibilite WHERE id_groupe='$id_groupe' AND domaine='bulletins' AND visible='n';"; $test_jgv=mysql_query($sql); if(mysql_num_rows($test_jgv)==0) { + //if (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie)) { if ($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2) { echo "

      Saisie du bulletin ($nom_periode[$periode_num])

      \n"; @@ -773,7 +794,13 @@ function confirm_changement_periode(thechange, themessage) echo "
    • Saisie des appréciations $info_ma
    \n"; } else { echo "

    Visualisation du bulletin ($nom_periode[$periode_num])

    \n"; - echo " "; require_once("../lib/footer.inc.php"); From 120cb365f4853b79cf6ea60f2a3de2de2c264459 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 18 Jun 2013 18:46:30 +0200 Subject: [PATCH 0813/1150] =?UTF-8?q?Correctif:=20Ajout=20des=20statistiqu?= =?UTF-8?q?es=20oubli=C3=A9es=20dans=20l'export=20PDF.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- prepa_conseil/index1.php | 63 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 62 insertions(+), 1 deletion(-) diff --git a/prepa_conseil/index1.php b/prepa_conseil/index1.php index 22b2c0196..41c9fa7ad 100644 --- a/prepa_conseil/index1.php +++ b/prepa_conseil/index1.php @@ -390,6 +390,58 @@ $k++; } + if((isset($_POST['moy_gen']))&&(isset($_POST['pourcent_i8']))&&(isset($_POST['pourcent_se8_ie12']))&&(isset($_POST['pourcent_se12']))) { + $y_courant=$pdf->GetY(); + + $largeur_dispo=$largeur_page-$marge_gauche-$marge_droite; + $alignement="L"; + $graisse="B"; + $bordure=""; + $h_decalage=5; + $decalage_horizontal=50; + + if($y_courant+6*$h_decalage>$hauteur_page-$marge_basse) { + $pdf->AddPage(); + + $y_stat=$y0; + } + else { + $y_stat=$y_courant+$h_decalage; + } + + $pdf->SetXY($x0,$y_stat); + $texte="Moyenne générale de la classe : ".$_POST['moy_gen']; + cell_ajustee_une_ligne(($texte),$x0,$pdf->GetY(),$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $y_courant=$y_stat+2*$h_decalage; + $texte="Pourcentage des élèves ayant une moyenne générale : "; + cell_ajustee_une_ligne(($texte),$x0,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $y_courant+=$h_decalage; + $graisse=""; + $texte=" inférieure strictement à 8 :"; + cell_ajustee_une_ligne(($texte),$x0,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + $graisse="B"; + $texte=$_POST['pourcent_i8']; + cell_ajustee_une_ligne(($texte),$x0+$decalage_horizontal,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $y_courant+=$h_decalage; + $graisse=""; + $texte=" entre 8 et 12 :"; + cell_ajustee_une_ligne(($texte),$x0,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + $graisse="B"; + $texte=$_POST['pourcent_se8_ie12']; + cell_ajustee_une_ligne(($texte),$x0+$decalage_horizontal,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + + $y_courant+=$h_decalage; + $graisse=""; + $texte=" supérieure ou égale à 12 :"; + cell_ajustee_une_ligne(($texte),$x0,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + $graisse="B"; + $texte=$_POST['pourcent_se12']; + cell_ajustee_une_ligne(($texte),$x0+$decalage_horizontal,$y_courant,$largeur_dispo,$hauteur_police,$taille_max_police,$fonte,$graisse,$alignement,$bordure); + } + send_file_download_headers('application/pdf',$nom_fic); $pdf->Output($nom_fic,'I'); die(); @@ -1907,9 +1959,18 @@ function checkbox_change(champ, cpt) { echo "\n"; //echo "
    \n"; } - + echo "\n"; echo "\n"; + + // 20130618: Exporter aussi les $moy_gen, $pourcent_i8, $pourcent_se12 et $pourcent_se8_ie12 + if ($test == 1 and $stat == "yes") { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + // On ne met le bouton que pour l'affichage avec entête if ($en_tete == "yes") { echo "\n"; From 0bb607ed7d5796113d041db91c70308dd822bd93 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 18 Jun 2013 18:55:44 +0200 Subject: [PATCH 0814/1150] Correction orthographique. --- gestion/droits_acces.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 36a65b522..da3d5316b 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -1105,7 +1105,7 @@ $tbs_message = 'Erreur lors du chargement de '.$titreItem; $titreItem='GepiAccesGraphParamEleve'; -$texteItem="a accès au paramètres des graphes"; +$texteItem="a accès aux paramètres des graphes"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; @@ -1332,7 +1332,7 @@ $tbs_message = 'Erreur lors du chargement de '.$titreItem; $titreItem='GepiAccesGraphParamParent'; -$texteItem="a accès au paramètres des graphes"; +$texteItem="a accès aux paramètres des graphes"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; From e7b2bc895fafe85b9e06a8e5f49b62af104abf80 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 18 Jun 2013 18:55:44 +0200 Subject: [PATCH 0815/1150] =?UTF-8?q?Correctif=20sur=20l'acc=C3=A8s=20pare?= =?UTF-8?q?nt/=C3=A9l=C3=A8ve=20en=20mode=20n=20jours=20apr=C3=A8s=20verro?= =?UTF-8?q?uillage.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 115 +++++++++++++++++++++++++--------------------- 1 file changed, 63 insertions(+), 52 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 1728a9933..40be20c4c 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6270,61 +6270,75 @@ function acces_appreciations($periode1, $periode2, $id_classe, $statut='') { } if(($statut=='eleve')||($statut=='responsable')) { - for($i=$periode1;$i<=$periode2;$i++) { - $sql="SELECT * FROM matieres_appreciations_acces WHERE id_classe='$id_classe' AND - statut='".$statut."' AND - periode='$i';"; - //echo "$sql
    "; - $res=mysql_query($sql); - if($res) { + if(getSettingValue('acces_app_ele_resp')=='periode_close') { + $timestamp_limite=time()+$delais_apres_cloture*24*3600; + for($i=$periode1;$i<=$periode2;$i++) { + $sql="SELECT 1=1 FROM periodes WHERE UNIX_TIMESTAMP(date_verrouillage)>'".$timestamp_limite."' AND id_classe='$id_classe';"; + //echo "$sql
    "; + $res=mysql_query($sql); if(mysql_num_rows($res)>0) { - $lig=mysql_fetch_object($res); - //echo "\$lig->acces=$lig->acces
    "; - if($lig->acces=="y") { - $tab_acces_app[$i]="y"; - } - elseif($lig->acces=="date") { - //echo "

    Période $i: Date limite: $lig->date
    "; - $tab_date=explode("-",$lig->date); - $timestamp_limite=mktime(0,0,0,$tab_date[1],$tab_date[2],$tab_date[0]); - //echo "$timestamp_limite
    "; - $timestamp_courant=time(); - //echo "$timestamp_courant
    "; - - $date_ouverture_acces_app_classe[$i]=$lig->date; - - if($timestamp_courant>$timestamp_limite){ - $tab_acces_app[$i]="y"; + $tab_acces_app[$i]="y"; + } + else { + $tab_acces_app[$i]="n"; + } + } + } + elseif(getSettingValue('acces_app_ele_resp')=='date') { + for($i=$periode1;$i<=$periode2;$i++) { + $sql="SELECT * FROM matieres_appreciations_acces WHERE id_classe='$id_classe' AND + statut='".$statut."' AND + periode='$i';"; + //echo "$sql
    "; + $res=mysql_query($sql); + if($res) { + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + //echo "\$lig->acces=$lig->acces
    "; + if($lig->acces=="date") { + //echo "

    Période $i: Date limite: $lig->date
    "; + $tab_date=explode("-",$lig->date); + $timestamp_limite=mktime(0,0,0,$tab_date[1],$tab_date[2],$tab_date[0]); + //echo "$timestamp_limite
    "; + $timestamp_courant=time(); + //echo "$timestamp_courant
    "; + + $date_ouverture_acces_app_classe[$i]=$lig->date; + + if($timestamp_courant>$timestamp_limite){ + $tab_acces_app[$i]="y"; + } + else { + $tab_acces_app[$i]="n"; + } } else { $tab_acces_app[$i]="n"; } } - elseif($lig->acces=="d") { - $sql="SELECT verouiller,UNIX_TIMESTAMP(date_verrouillage) AS date_verrouillage FROM periodes WHERE id_classe='$id_classe' AND num_periode='$i';"; - //echo "$sql
    "; - $res_dv=mysql_query($sql); - - if(mysql_num_rows($res_dv)>0) { - $lig_dv=mysql_fetch_object($res_dv); - - if($lig_dv->verouiller!='O') { - $tab_acces_app[$i]="n"; - } - else { - $timestamp_limite=$lig_dv->date_verrouillage+$delais_apres_cloture*24*3600; - $timestamp_courant=time(); - //echo "\$timestamp_limite=$timestamp_limite
    "; - //echo "\$timestamp_courant=$timestamp_courant
    "; - - if($timestamp_courant>$timestamp_limite){ - $tab_acces_app[$i]="y"; - } - else { - $tab_acces_app[$i]="n"; - } - //echo "\$tab_acces_app[$i]=$tab_acces_app[$i]
    "; - } + else { + $tab_acces_app[$i]="n"; + } + } + else { + $tab_acces_app[$i]="n"; + } + } + } + else { + // Ouverture manuelle + for($i=$periode1;$i<=$periode2;$i++) { + $sql="SELECT * FROM matieres_appreciations_acces WHERE id_classe='$id_classe' AND + statut='".$statut."' AND + periode='$i';"; + //echo "$sql
    "; + $res=mysql_query($sql); + if($res) { + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + //echo "\$lig->acces=$lig->acces
    "; + if($lig->acces=="y") { + $tab_acces_app[$i]="y"; } else { $tab_acces_app[$i]="n"; @@ -6338,9 +6352,6 @@ function acces_appreciations($periode1, $periode2, $id_classe, $statut='') { $tab_acces_app[$i]="n"; } } - else { - $tab_acces_app[$i]="n"; - } } } else { From cee222aac5f207416e0503ce442a6c507353e20a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 18 Jun 2013 21:40:28 +0200 Subject: [PATCH 0816/1150] Correctif sur le calcul pour le changement de page sur les stat en PDF. --- prepa_conseil/index1.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prepa_conseil/index1.php b/prepa_conseil/index1.php index 41c9fa7ad..cc36a97b1 100644 --- a/prepa_conseil/index1.php +++ b/prepa_conseil/index1.php @@ -400,7 +400,7 @@ $h_decalage=5; $decalage_horizontal=50; - if($y_courant+6*$h_decalage>$hauteur_page-$marge_basse) { + if($y_courant+8*$h_decalage>$hauteur_page-$marge_basse) { $pdf->AddPage(); $y_stat=$y0; From 597c33506babd8fac3589274a99853b1d075bbda Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 19 Jun 2013 14:52:56 +0200 Subject: [PATCH 0817/1150] =?UTF-8?q?Correctif=20sur=20l'acc=C3=A8s=20app?= =?UTF-8?q?=20parent/=C3=A9l=C3=A8ve=20en=20mode=20periode=5Fclose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 4 +- visualisation/affiche_eleve.php | 75 ++------------------------------- 2 files changed, 6 insertions(+), 73 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 40be20c4c..1c1b0a33f 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6271,9 +6271,9 @@ function acces_appreciations($periode1, $periode2, $id_classe, $statut='') { if(($statut=='eleve')||($statut=='responsable')) { if(getSettingValue('acces_app_ele_resp')=='periode_close') { - $timestamp_limite=time()+$delais_apres_cloture*24*3600; + $timestamp_limite=time()-$delais_apres_cloture*24*3600; for($i=$periode1;$i<=$periode2;$i++) { - $sql="SELECT 1=1 FROM periodes WHERE UNIX_TIMESTAMP(date_verrouillage)>'".$timestamp_limite."' AND id_classe='$id_classe';"; + $sql="SELECT 1=1 FROM periodes WHERE UNIX_TIMESTAMP(date_verrouillage)<='".$timestamp_limite."' AND id_classe='$id_classe' AND num_periode='$i';"; //echo "$sql
    "; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { diff --git a/visualisation/affiche_eleve.php b/visualisation/affiche_eleve.php index ac5e92ee5..d2864a0ab 100644 --- a/visualisation/affiche_eleve.php +++ b/visualisation/affiche_eleve.php @@ -70,6 +70,8 @@ function affiche_debug($texte) { } } +$delais_apres_cloture=getSettingValue("delais_apres_cloture"); + $gepi_denom_mention=getSettingValue("gepi_denom_mention"); if($gepi_denom_mention=="") { $gepi_denom_mention="mention"; @@ -667,81 +669,12 @@ function save_params_graphe($nom,$valeur) { //========================================================== - // AJOUT: boireaus 20080218 // Dispositif de restriction des accès aux appréciations pour les comptes responsables/eleves - unset($tab_acces_app); $tab_acces_app=array(); - if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { - for($i=1;$i<=$nb_periode;$i++) { - $sql="SELECT * FROM matieres_appreciations_acces WHERE id_classe='$id_classe' AND - statut='".$_SESSION['statut']."' AND - periode='$i';"; - //echo "$sql
    "; - $res=mysql_query($sql); - if($res) { - if(mysql_num_rows($res)>0) { - $lig=mysql_fetch_object($res); - if($lig->acces=="y") { - $tab_acces_app[$i]="y"; - } - elseif($lig->acces=="date") { - //echo "

    Période $i: Date limite: $lig->date
    "; - $tab_date=explode("-",$lig->date); - $timestamp_limite=mktime(0,0,0,$tab_date[1],$tab_date[2],$tab_date[0]); - //echo "$timestamp_limite
    "; - $timestamp_courant=time(); - //echo "$timestamp_courant
    "; - - if($timestamp_courant>$timestamp_limite) { - $tab_acces_app[$i]="y"; - } - else { - $tab_acces_app[$i]="n"; - } - } - elseif($lig->acces=="d") { - $sql="SELECT verouiller,UNIX_TIMESTAMP(date_verrouillage) AS date_verrouillage FROM periodes WHERE id_classe='$id_classe' AND num_periode='$i';"; - //echo "$sql
    "; - $res_dv=mysql_query($sql); - - if(mysql_num_rows($res_dv)>0) { - $lig_dv=mysql_fetch_object($res_dv); - - if($lig_dv->verouiller!='O') { - $tab_acces_app[$i]="n"; - } - else { - $timestamp_limite=$lig_dv->date_verrouillage+$delais_apres_cloture*24*3600; - $timestamp_courant=time(); - //echo "\$timestamp_limite=$timestamp_limite
    "; - //echo "\$timestamp_courant=$timestamp_courant
    "; - if($timestamp_courant>$timestamp_limite) { - $tab_acces_app[$i]="y"; - } - else { - $tab_acces_app[$i]="n"; - } - //echo "\$tab_acces_app[$i]=$tab_acces_app[$i]
    "; - } - } - else { - $tab_acces_app[$i]="n"; - } - } - else { - $tab_acces_app[$i]="n"; - } - } - else { - $tab_acces_app[$i]="n"; - } - } - else { - $tab_acces_app[$i]="n"; - } - } + if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { + $tab_acces_app=acces_appreciations(1, $nb_periode, $id_classe, $_SESSION['statut']); } else { // Pas de limitations d'accès pour les autres statuts. From 180e469af7c553b8d656701564b7d0b7717acc11 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 19 Jun 2013 15:19:40 +0200 Subject: [PATCH 0818/1150] =?UTF-8?q?Correction=20sur=20deux=20valeurs=20d?= =?UTF-8?q?'attribut=20non=20referm=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/add_modif_dev.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cahier_notes/add_modif_dev.php b/cahier_notes/add_modif_dev.php index 16a01f06f..180ef9c85 100644 --- a/cahier_notes/add_modif_dev.php +++ b/cahier_notes/add_modif_dev.php @@ -1069,8 +1069,8 @@ function confirm_changement_devoir(thechange, themessage) echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; From cc1cf51162b976b00cb4755c99a05b3459b8ed18 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 21 Jun 2013 08:39:17 +0200 Subject: [PATCH 0819/1150] Correctif sur les tests de lapsus sur les saisies d'avis de conseil de classe. --- saisie/ajax_appreciations.php | 97 ++++++++++++++++++++++------------- saisie/saisie_avis1.php | 4 +- saisie/scripts/js_saisie.js | 27 ++++++++++ 3 files changed, 91 insertions(+), 37 deletions(-) diff --git a/saisie/ajax_appreciations.php b/saisie/ajax_appreciations.php index 5ec82e2c2..e27acc299 100644 --- a/saisie/ajax_appreciations.php +++ b/saisie/ajax_appreciations.php @@ -3,8 +3,9 @@ /** * ajax_appreciations.php * Fichier qui permet la sauvegarde automatique des appréciations au fur et à mesure de leur saisie + * Ajout du contrôle des lapsus sur les appréciations et avis des conseils de classe * - * @copyright 2007-2011 + * @copyright 2007-2013 */ // ============== Initialisation =================== @@ -65,7 +66,7 @@ function log_ajax_app($texte) { $appreciation = isset($_POST["var3"]) ? $_POST["var3"] : (isset($_GET["var3"]) ? $_GET["var3"] : NULL); $professeur = isset($_SESSION["statut"]) ? $_SESSION["statut"] : NULL; -//$mode=isset($_POST['mode']) ? $_POST['mode'] : ""; +$mode=isset($_POST['mode']) ? $_POST['mode'] : ""; // ========== Fin de l'initialisation de la page ============= @@ -88,6 +89,8 @@ function log_ajax_app($texte) { // On vérifie que le prof logué peut saisir ces appréciations //$verif_prof = mysql_query("SELECT login FROM j_groupes_professeurs WHERE id_groupe = '".$var2."'"); //if($mode!="verif") { + if($mode!="verif_avis") { + // On ne vient pas de la page de saisie d'avis du conseil de classe $verif_prof = mysql_query("SELECT login FROM j_groupes_professeurs WHERE id_groupe = '".$var2."' AND login='".$_SESSION['login']."'"); if (mysql_num_rows($verif_prof) >= 1) { // On ne fait rien @@ -96,6 +99,22 @@ function log_ajax_app($texte) { log_ajax_app("Vous ne pouvez pas saisir d'appreciations pour cet eleve"); die('Vous ne pouvez pas saisir d\'appréciations pour cet élève'); } + } + else { + // On vient de la page de saisie d'avis du conseil de classe + $sql="SELECT login FROM j_eleves_professeurs WHERE login = '".$verif_var1[0]."' AND id_classe='".$var2."' AND professeur='".$_SESSION['login']."'"; + //echo "$sql
    "; + $verif_prof = mysql_query($sql); + if (mysql_num_rows($verif_prof) >= 1) { + // On ne fait rien + $temoin_prof=mysql_num_rows($verif_prof); + $temoin_eleve=1; + } else { + log_ajax_app("Vous ne pouvez pas saisir d'avis pour cet eleve"); + die('Vous ne pouvez pas saisir d\'avis pour cet élève'); + } + } + /* } else { @@ -105,48 +124,55 @@ function log_ajax_app($texte) { */ } -if (($_SESSION['statut']=='scolarite') || ($_SESSION['statut']=='secours') || ($_SESSION['statut']=='cpe') || (($temoin_eleve !== 0 AND $temoin_prof !== 0))) { +//echo "\$temoin_eleve=$temoin_eleve
    "; +//echo "\$temoin_prof=$temoin_prof
    "; - if($_SESSION['statut']=='professeur') { - // Enregistrement ou pas de l'appréciation temporaire: - $insertion_ou_maj_tempo="y"; - $sql="SELECT appreciation FROM matieres_appreciations WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."';"; - log_ajax_app($sql); - $test_app_enregistree=mysql_query($sql); - if(mysql_num_rows($test_app_enregistree)>0) { - $lig_app_enregistree=mysql_fetch_object($test_app_enregistree); - if($lig_app_enregistree->appreciation==$appreciation) { - // On supprime l'enregistrement tempo pour éviter de conserver un tempo qui est déjà enregistré dans la table principale. - $sql="DELETE FROM matieres_appreciations_tempo WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."';"; - log_ajax_app($sql); - $menage=mysql_query($sql); - $insertion_ou_maj_tempo="n"; +if (($_SESSION['statut']=='scolarite') || ($_SESSION['statut']=='secours') || ($_SESSION['statut']=='cpe') || (($temoin_eleve !== 0 AND $temoin_prof !== 0))) { + if($mode!="verif_avis") { + // On ne vient pas de la page de saisie d'avis du conseil de classe + // On va enregistrer les appréciations temporaires + + if($_SESSION['statut']=='professeur') { + // Enregistrement ou pas de l'appréciation temporaire: + $insertion_ou_maj_tempo="y"; + $sql="SELECT appreciation FROM matieres_appreciations WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."';"; + log_ajax_app($sql); + $test_app_enregistree=mysql_query($sql); + if(mysql_num_rows($test_app_enregistree)>0) { + $lig_app_enregistree=mysql_fetch_object($test_app_enregistree); + if($lig_app_enregistree->appreciation==$appreciation) { + // On supprime l'enregistrement tempo pour éviter de conserver un tempo qui est déjà enregistré dans la table principale. + $sql="DELETE FROM matieres_appreciations_tempo WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."';"; + log_ajax_app($sql); + $menage=mysql_query($sql); + $insertion_ou_maj_tempo="n"; + } } - } - if($insertion_ou_maj_tempo=="y") { - // On vérifie si cette appréciation existe déjà ou non - $verif_appreciation = mysql_query("SELECT appreciation FROM matieres_appreciations_tempo WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."'"); - // Si elle existe, on la met à jour - if (mysql_num_rows($verif_appreciation) == 1) { - $sql="UPDATE matieres_appreciations_tempo SET appreciation = '".$appreciation."' WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."'"; - log_ajax_app($sql); - $miseajour = mysql_query($sql); - } else { - //sinon on crée une nouvelle appréciation si l'appréciation n'est pas vide - if ($appreciation != "") { - $sql="INSERT INTO matieres_appreciations_tempo SET login = '".$verif_var1[0]."', id_groupe = '".$var2."', periode = '".$verif_var1[1]."', appreciation = '".$appreciation."'"; + if($insertion_ou_maj_tempo=="y") { + // On vérifie si cette appréciation existe déjà ou non + $verif_appreciation = mysql_query("SELECT appreciation FROM matieres_appreciations_tempo WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."'"); + // Si elle existe, on la met à jour + if (mysql_num_rows($verif_appreciation) == 1) { + $sql="UPDATE matieres_appreciations_tempo SET appreciation = '".$appreciation."' WHERE login = '".$verif_var1[0]."' AND id_groupe = '".$var2."' AND periode = '".$verif_var1[1]."'"; log_ajax_app($sql); - $sauvegarde = mysql_query($sql); + $miseajour = mysql_query($sql); + } else { + //sinon on crée une nouvelle appréciation si l'appréciation n'est pas vide + if ($appreciation != "") { + $sql="INSERT INTO matieres_appreciations_tempo SET login = '".$verif_var1[0]."', id_groupe = '".$var2."', periode = '".$verif_var1[1]."', appreciation = '".$appreciation."'"; + log_ajax_app($sql); + $sauvegarde = mysql_query($sql); + } } } + // et on renvoie une réponse valide + //header("HTTP/1.0 200 OK"); + //echo ' '; } - // et on renvoie une réponse valide - //header("HTTP/1.0 200 OK"); - //echo ' '; } - // Vérification des fautes de frappe/lapsus + // Vérification des fautes de frappe/lapsus que l'on saisisse une appréciation ou un avis du conseil de classe //if($mode=='verif') { $sql="CREATE TABLE IF NOT EXISTS vocabulaire (id INT(11) NOT NULL auto_increment, terme VARCHAR(255) NOT NULL DEFAULT '', @@ -177,6 +203,7 @@ function log_ajax_app($texte) { } */ $appreciation_test=" ".preg_replace("/[',;\.]/"," ",casse_mot($appreciation,'min'))." "; + //echo "$appreciation_test
    "; $chaine_retour=""; for($loop=0;$loop\n"; echo ""; + + $oCKeditor = new CKeditor('../ckeditor/'); + $oCKeditor->editor('MonCompteInfo'.ucfirst($tab_statuts_MonCompteAfficheInfo[$loop]).'FCK',getSettingValue('MonCompteInfo'.ucfirst($tab_statuts_MonCompteAfficheInfo[$loop]))) ; + + echo " + + "; + } + + echo " +
    "; - echo "/\n"; - echo "\n"; + echo "Tout cocher/\n"; + echo "Tout décocher\n"; echo "Enseignement
    + + +

    + + +


    \n"; + + require("../lib/footer.inc.php"); + die(); +} +elseif ($mode != "personnels") { ?>

    Retour Retour @@ -300,6 +401,8 @@ function test_ecriture_backup() {

    Personnels Personnels de l'établissement (professeurs, scolarité, CPE, administrateurs)

    Responsables Responsables d'élèves (parents)

    Eleves Élèves

    +

    +

    Définir des informations par statut à afficher dans la page 'Gérer mon compte'.

    diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index 52ef8521a..1ed7d7a5b 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -1685,6 +1685,14 @@ function unhtmlentities($chaineHtml) + +

    Information ".$_SESSION['statut']."

    + +".getSettingValue('MonCompteInfo'.ucfirst($_SESSION['statut'])); +} //========================================== // Changement du mot de passe From 3dd690889303dfdeea8fb4f03dc691fac450df16 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 25 Jul 2013 12:51:55 +0200 Subject: [PATCH 0915/1150] =?UTF-8?q?Mise=20=C3=A0=20jour=20de=20la=20list?= =?UTF-8?q?e=20des=20profs=20possibles=20en=20cas=20de=20changement=20de?= =?UTF-8?q?=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_group.php | 343 ++++++++++++++++++++++++----------------- 1 file changed, 202 insertions(+), 141 deletions(-) diff --git a/groupes/edit_group.php b/groupes/edit_group.php index 0dc698208..67ee6445f 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -1,7 +1,7 @@ 1) { + $liste_prof_suivi=""; + for($loop=0;$loop0) {$liste_prof_suivi.=", ";} + $liste_prof_suivi.=civ_nom_prenom($tab_prof_suivi[$loop]); + } + } + } + + $sql="SELECT u.login, u.nom, u.prenom, u.civilite, u.statut FROM utilisateurs u, j_professeurs_matieres j WHERE (j.id_matiere = '$reg_matiere' and j.id_professeur = u.login and u.etat!='inactif') ORDER BY u.nom;"; + //echo "$sql
    "; + $calldata = mysql_query($sql); + $nb = mysql_num_rows($calldata); + $prof_list = array(); + $prof_list["list"] = array(); + for ($i=0;$i<$nb;$i++) { + $prof_login = mysql_result($calldata, $i, "login"); + $prof_nom = mysql_result($calldata, $i, "nom"); + $prof_prenom = mysql_result($calldata, $i, "prenom"); + $civilite = mysql_result($calldata, $i, "civilite"); + $prof_statut = mysql_result($calldata, $i, "statut"); + + $prof_list["list"][] = $prof_login; + $prof_list["users"][$prof_login] = array("login" => $prof_login, "nom" => casse_mot($prof_nom,'maj'), "prenom" => casse_mot($prof_prenom,'majf2'), "civilite" => $civilite, "statut" => $prof_statut); + } + + if (count($prof_list["list"]) == "0") { + echo "

    ERREUR ! Aucun professeur n'a été défini comme compétent dans la matière considérée.
    Associer des professeurs à $reg_matiere

    \n"; + } else { + $total_profs = array_merge($prof_list["list"], $reg_professeurs); + $total_profs = array_unique($total_profs); + + $p = 0; + echo "\n"; + $alt=1; + $temoin_nettoyage_requis='n'; + foreach($total_profs as $prof_login) { + $alt=$alt*(-1); + if((isset($prof_list["users"][$prof_login]["statut"]))&&($prof_list["users"][$prof_login]["statut"]=='professeur')) { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $p++; + } + else { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + } + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } else { + echo " checked />\n"; + echo "\n"; + echo "\n"; + } + } else { + echo " />\n"; + echo "\n"; + echo ""; + } + + if(in_array($prof_login,$tab_prof_suivi)) { + echo " 1) {echo " La liste des ".getSettingValue('prof_suivi')." est ".$liste_prof_suivi.".";} + echo "\" />\n"; + } + + echo "
    \n"; + + echo "
    \n"; + echo "  "; + echo "\n"; + echo "ANOMALIE :"; + //echo " " . $prof_list["users"][$prof_login]["nom"] . " " . $prof_list["users"][$prof_login]["prenom"]; + echo " ".civ_nom_prenom($prof_login).""; + if(isset($prof_list["users"][$prof_login]["statut"])) { + echo " (compte ".$prof_list["users"][$prof_login]["statut"].")"; + } + echo "
    \n"; + $temoin_nettoyage_requis='y'; + //echo "Un nettoyage des tables s'impose."; + echo "
    \n"; + if($temoin_nettoyage_requis!='n') { + echo "Un nettoyage des tables s'impose."; + } + + if ($mode == "groupe") { + echo "
    +
    +
    + "; + } + else { + echo "
    +
    +
    + "; + } + } +} + +if((isset($_GET['maj_liste_profs_matiere']))&&(isset($_GET['matiere']))) { + check_token(false); + + $matiere=$_GET['matiere']; + afficher_liste_profs_du_groupe($matiere); + + die(); +} + +if((isset($_GET['maj_liste_autres_groupes_meme_matiere']))&&(isset($_GET['matiere']))&&(isset($_GET['id_classe']))) { + check_token(false); + + $matiere=$_GET['matiere']; + $id_classe=$_GET['id_classe']; + + $avec_lien_edit_group="y"; + $tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $matiere, array($id_groupe)); + if($tab_autres_groupes!="") { + echo "

    Il existe d'autres enseignements dans la même matière pour cette classe :

    \n"; + echo $tab_autres_groupes; + } + else { + echo ""; + } + die(); +} + if (isset($_POST['is_posted'])) { check_token(); @@ -623,11 +782,8 @@ ?> - - - Visibilité de l'enseignement sur :
    \n"; for($loop=0;$loop\n"; -// Edition des professeurs -echo "
    \n"; //================================================= +// Matière +echo "
    \n"; + echo "

    Sélectionnez la matière enseignée à ce groupe : "; $query = mysql_query("SELECT matiere, nom_complet FROM matieres ORDER BY matiere"); $nb_mat = mysql_num_rows($query); -echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - } else { - echo " checked />\n"; - echo "\n"; - echo "\n"; - echo "\n"; - } - } else { - echo " />\n"; - echo "\n"; - echo "\n"; - echo ""; - } - - if(in_array($prof_login,$tab_prof_suivi)) { - echo " 1) {echo " La liste des ".getSettingValue('prof_suivi')." est ".$liste_prof_suivi.".";} - echo "\" />\n"; - } - - echo "
    \n"; - - echo "\n"; - echo "\n"; - $p++; - } - else { - echo "\n"; - echo "\n"; - echo "  "; - echo "\n"; - echo "\n"; - echo "ANOMALIE :"; - //echo " " . $prof_list["users"][$prof_login]["nom"] . " " . $prof_list["users"][$prof_login]["prenom"]; - echo " ".civ_nom_prenom($prof_login).""; - if(isset($prof_list["users"][$prof_login]["statut"])) { - echo " (compte ".$prof_list["users"][$prof_login]["statut"].")"; - } - echo "
    \n"; - $temoin_nettoyage_requis='y'; - //echo "Un nettoyage des tables s'impose."; - echo "\n"; - echo "\n"; - } - } - echo "\n"; - if($temoin_nettoyage_requis!='n') { - echo "Un nettoyage des tables s'impose."; - } - - - if ($mode == "groupe") { - echo "
    -
    -
    -"; - } - else { - echo "
    -
    -
    -"; - } - +echo "

    \n"; +afficher_liste_profs_du_groupe($reg_matiere); +echo "
    \n"; +if (count($prof_list["list"]) != "0") { echo " + +
    \n"; + +echo "
    \n"; $avec_lien_edit_group="y"; $tab_autres_groupes=tableau_html_groupe_matiere_telle_classe($id_classe, $reg_matiere, array($id_groupe)); if($tab_autres_groupes!="") { - echo "
    \n"; echo "

    Il existe d'autres enseignements dans la même matière pour cette classe :

    \n"; echo $tab_autres_groupes; - echo "
    \n"; } +echo "
    \n"; echo "
    \n"; echo "\n"; From 9df776a701888cd5d9963d5dac1b6f376e0b89aa Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 25 Jul 2013 20:00:11 +0200 Subject: [PATCH 0916/1150] =?UTF-8?q?Possibilit=C3=A9=20d'acc=C3=A9der=20?= =?UTF-8?q?=C3=A0=20la=20date=20de=20derni=C3=A8re=20connexion=20d'=C3=A9l?= =?UTF-8?q?=C3=A8ves/responsables.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/visu_ele_func.lib.php | 24 +++++++++++++++ eleves/visu_eleve.inc.php | 41 +++++++++++++++++++++++++- gestion/droits_acces.php | 30 +++++++++++++++++++ lib/share.inc.php | 57 ++++++++++++++++++++++++++++++++++++ 4 files changed, 151 insertions(+), 1 deletion(-) diff --git a/eleves/visu_ele_func.lib.php b/eleves/visu_ele_func.lib.php index 3626719f3..e98c39ca6 100644 --- a/eleves/visu_ele_func.lib.php +++ b/eleves/visu_ele_func.lib.php @@ -118,6 +118,14 @@ function info_eleve($ele_login) { $champ=$tab_user[$loop]; $tab_ele['compte_utilisateur'][$champ]=$lig_user->$champ; } + + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionEleScolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionEleCpe')))|| + (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionEleProfesseur')))) { + $tab_ele['compte_utilisateur']['DerniereConnexionEle']=get_last_connexion($ele_login); + $tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']=get_last_connexion($ele_login, "n"); + } } @@ -591,6 +599,14 @@ function info_eleve($ele_login) { $lig_u=mysql_fetch_object($res_u); $tab_ele['resp'][$cpt]['etat']=$lig_u->etat; $tab_ele['resp'][$cpt]['auth_mode']=$lig_u->auth_mode; + + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionRespScolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionRespCpe')))|| + (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionRespProfesseur')))) { + $tab_ele['resp'][$cpt]['DerniereConnexionResp']=get_last_connexion($lig_resp->login); + $tab_ele['resp'][$cpt]['DerniereConnexionResp_Echec']=get_last_connexion($lig_resp->login,"n"); + } } } @@ -647,6 +663,14 @@ function info_eleve($ele_login) { $lig_u=mysql_fetch_object($res_u); $tab_ele['resp'][$cpt]['etat']=$lig_u->etat; $tab_ele['resp'][$cpt]['auth_mode']=$lig_u->auth_mode; + + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionRespScolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionRespCpe')))|| + (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionRespProfesseur')))) { + $tab_ele['resp'][$cpt]['DerniereConnexionResp']=get_last_connexion($lig_resp->login); + $tab_ele['resp'][$cpt]['DerniereConnexionResp_Echec']=get_last_connexion($lig_resp->login,"n"); + } } } diff --git a/eleves/visu_eleve.inc.php b/eleves/visu_eleve.inc.php index 464edf00f..762fee25c 100644 --- a/eleves/visu_eleve.inc.php +++ b/eleves/visu_eleve.inc.php @@ -1180,6 +1180,22 @@ function affiche_edt_en_infobulle() { echo "Compte :".$tab_ele['compte_utilisateur']['login'].""; $alt=$alt*(-1); echo "Etat :".$tab_ele['compte_utilisateur']['etat'].""; + if(isset($tab_ele['compte_utilisateur']['DerniereConnexionEle'])) { + $alt=$alt*(-1); + if(isset($tab_ele['compte_utilisateur']['DerniereConnexionEle']['START'])) { + echo "Dernière connexion :"; + echo formate_date($tab_ele['compte_utilisateur']['DerniereConnexionEle']['START'], 'y'); + } + elseif(isset($tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']['START'])) { + echo "Dernière tentative de connexion :"; + echo formate_date($tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']['START'], 'y'); + } + else { + echo "Dernière connexion :"; + echo ""; + } + echo ""; + } $alt=$alt*(-1); echo "Authentification :"; } + + if(isset($tab_ele['resp'][$i]['DerniereConnexionResp'])) { + if(isset($tab_ele['resp'][$i]['DerniereConnexionResp']['START'])) { + echo "
    Dernière connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp']['START'], 'y'); + } + elseif(isset($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'])) { + echo "
    Dernière tentative de connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'], 'y').""; + } + else { + echo "
    Dernière connexion : "; + } + } echo "\n"; if(($_SESSION['statut']=='administrateur')|| @@ -1550,7 +1578,6 @@ function affiche_edt_en_infobulle() { else { echo " "; } - } else { echo "Oui"; @@ -1574,6 +1601,18 @@ function affiche_edt_en_infobulle() { echo "Auth.: ".$tab_ele['resp'][$i]['auth_mode']; echo ""; } + + if(isset($tab_ele['resp'][$i]['DerniereConnexionResp'])) { + if(isset($tab_ele['resp'][$i]['DerniereConnexionResp']['START'])) { + echo "
    Dernière connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp']['START'], 'y'); + } + elseif(isset($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'])) { + echo "
    Dernière tentative de connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'], 'y').""; + } + else { + echo "
    Dernière connexion : "; + } + } echo "\n"; diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index fb6a9703f..3e90bb080 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -198,6 +198,16 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesDerniereConnexionEleProfesseur'; +$texteItem="a accès à la date de la dernière connexion des ".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDerniereConnexionRespProfesseur'; +$texteItem="a accès à la date de la dernière connexion des responsables d'".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + $titreItem='AccesProf_EdtProfs'; $texteItem="a accès aux emplois du temps des autres professeurs (sous réserve que le module EDT soit activé)"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) @@ -545,6 +555,16 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesDerniereConnexionEleScolarite'; +$texteItem="a accès à la date de la dernière connexion des ".$gepiSettings['denomination_eleves']."."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDerniereConnexionRespScolarite'; +$texteItem="a accès à la date de la dernière connexion des responsables d'".$gepiSettings['denomination_eleves']."."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + $titreItem='GepiAccesMajSconetScol'; $texteItem="a le droit d'effectuer les mises à jour des tables élèves et responsables d'après les XML de Sconet"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) @@ -897,6 +917,16 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesDerniereConnexionEleCpe'; +$texteItem="a accès à la date de la dernière connexion des ".$gepiSettings['denomination_eleves']."."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDerniereConnexionRespCpe'; +$texteItem="a accès à la date de la dernière connexion des responsables d'".$gepiSettings['denomination_eleves']."."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + $titreItem='CpeAccesUploadPhotosEleves'; $texteItem="a accès à l'upload des photos des ".$gepiSettings['denomination_eleves']."
    sous réserve d'activation du module Trombinoscopes ("; if(!getSettingAOui('active_module_trombinoscopes')) { diff --git a/lib/share.inc.php b/lib/share.inc.php index 70d541665..8c1cbb6f4 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -7627,4 +7627,61 @@ function get_tab_signature_bull($login_user="") { return $tab; } + +/* +# 1 : session ouverte, mais pas refermée (encore ouverte, ou fermée en fermant le navigateur) +# 0 : logout normal +# 2 : logout renvoyé par la fonction checkAccess (problème gepiPath ou accès interdit) +# 3 : logout lié à un timeout +# 10 : logout lié à une nouvelle connexion sous un nouveau profil + +# 4 : Erreur MDP +*/ +function get_last_connexion($login, $reussie="y") { + $tab=array(); + + if($reussie=="y") { + $sql="SELECT * FROM log WHERE LOGIN='$login' AND (AUTOCLOSE='0' OR AUTOCLOSE='1' OR AUTOCLOSE='2' OR AUTOCLOSE='3' OR AUTOCLOSE='10') ORDER BY START DESC LIMIT 1;"; + } + else { + $sql="SELECT * FROM log WHERE LOGIN='$login' AND AUTOCLOSE='4' ORDER BY START DESC LIMIT 1;"; + } + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + + $tab['START']=$lig->START; + $tab['REMOTE_ADDR']=$lig->REMOTE_ADDR; + $tab['USER_AGENT']=$lig->USER_AGENT; + $tab['REFERER']=$lig->REFERER; + $tab['AUTOCLOSE']=$lig->AUTOCLOSE; + $tab['END']=$lig->END; + } + + return $tab; +} + +function get_ele_clas_connexions($id_classe, $timestamp1, $timestamp2, $tab_autoclose=array()) { + $tab=array(); + + $chaine_autoclose=""; + if(count($tab_autoclose)>0) { + $chaine_autoclose.=" AND ("; + for($loop=0;$loop0) {$chaine_autoclose.=" OR ";} + $chaine_autoclose.="AUTOCLOSE='".$tab_autoclose[$loop]."'"; + } + $chaine_autoclose.=")"; + } + + $sql="SELECT DISTINCT jec.login FROM log l, j_eleves_classes jec WHERE jec.id_classe='$id_classe' AND jec.login=l.LOGIN AND l.START>='$timestamp1' AND l.START<='$timestamp2'".$chaine_autoclose.";"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + $tab[]=$lig->login; + } + } + return $tab; +} + ?> From 71790002c39b1d741df479d8f7f0c7783b88c093 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 25 Jul 2013 20:00:40 +0200 Subject: [PATCH 0917/1150] =?UTF-8?q?Possibilit=C3=A9=20d'acc=C3=A9der=20?= =?UTF-8?q?=C3=A0=20la=20date=20de=20derni=C3=A8re=20connexion=20d'=C3=A9l?= =?UTF-8?q?=C3=A8ves/responsables.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog.txt b/changelog.txt index 9148fcd0c..cc52efbd8 100644 --- a/changelog.txt +++ b/changelog.txt @@ -33,6 +33,7 @@ Gestion: - Possibilité d'ajouter un préfixe au sujet des mails envoyés par Gepi. - Possibilité de donner l'accès à l'impression de leur Fiche Bienvenue pour les différents statuts depuis la page Gérer mon compte. - Possibilité de définir des messages d'information à faire apparaître dans 'Gérer mon compte' (messages éventuellement différents pour chaque statut). +- Possibilité d'accéder à la date de dernière connexion d'élèves/responsables. Divers: - Ajout d'une page pour que les parents puissent contrôler les informations élève/resp. From 9e312054e8589624de327536dc56fdc9d474a1fa Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 27 Jul 2013 16:54:33 +0200 Subject: [PATCH 0918/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20pointer=20en?= =?UTF-8?q?=20=C3=A9l=C3=A8ve/resp=20les=20travaux=20faits=20ou=20non.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accessibilite.css | 3 + cahier_texte/consultation.php | 83 +++++++++++++- cahier_texte/index.php | 17 ++- cahier_texte/see_all.php | 51 ++++++++- cahier_texte_2/ajax_enregistrement_devoir.php | 9 +- cahier_texte_2/consultation.php | 59 +++++++++- cahier_texte_2/consultation2.php | 81 +++++++++---- cahier_texte_2/see_all.php | 108 ++++++++++++++++-- changelog.txt | 1 + gestion/droits_acces.php | 10 ++ images/edit16b.png | Bin 0 -> 741 bytes images/icons/sens_interdit.png | Bin 0 -> 741 bytes lib/initialisation_annee.inc.php | 1 + lib/share-html.inc.php | 35 ++++++ lib/share.inc.php | 48 ++++++++ sql/data_gepi.sql | 1 + sql/structure_gepi.sql | 12 ++ utilitaires/updates/163_to_dev.inc.php | 24 ++++ utilitaires/updates/access_rights.inc.php | 2 + 19 files changed, 509 insertions(+), 36 deletions(-) create mode 100644 images/edit16b.png create mode 100644 images/icons/sens_interdit.png diff --git a/accessibilite.css b/accessibilite.css index 60b5ffa13..7eb7036e6 100644 --- a/accessibilite.css +++ b/accessibilite.css @@ -484,6 +484,9 @@ table.menu td { .color_fond_notices_t { background-color: #FFCCCF; } +.color_fond_notices_t_fait { + background-color:grey; +} .couleur_entete_fond_t { background-color: #FFCCCF; } diff --git a/cahier_texte/consultation.php b/cahier_texte/consultation.php index dc77c1565..33c05f8b2 100644 --- a/cahier_texte/consultation.php +++ b/cahier_texte/consultation.php @@ -185,6 +185,16 @@ require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ************* +// 20130727 +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +$class_notice_dev_fait="cdt_fond_not_dev color_fond_notices_t_fait"; +$class_notice_dev_non_fait="cdt_fond_not_dev couleur_cellule_gen"; +if(($selected_eleve_login!='')&&($CDTPeutPointerTravailFait)) { + $tab_etat_travail_fait=get_tab_etat_travail_fait($selected_eleve_login); + echo js_cdt_modif_etat_travail(); +} + //debug_var(); //echo "

    \$selected_eleve_login=$selected_eleve_login

    "; @@ -386,6 +396,10 @@ //echo "
    Travaux personnels pour le ".strftime("%a %d %b", $jour)."\n"; echo "

    \nTravaux personnels pour le ".strftime("%a %d %b", $jour)."

    \n"; + // 20130727 + $class_notice_dev_fait="matiere_a_faire couleur_bord_tableau_notice color_police_matieres color_fond_notices_t_fait"; + $class_notice_dev_non_fait="matiere_a_faire couleur_bord_tableau_notice couleur_cellule_f color_police_matieres"; + // Affichage des devoirs dans chaque matière while ($ind < $nb_devoirs_cahier_texte) { $content = mysql_result($appel_devoirs_cahier_texte, $ind, 'contenu'); @@ -407,7 +421,22 @@ // ??????????????????????????????? } //$content = "
    ".$matiere_devoirs." (".$chaine."):".$content; - $content = "
    \n

    ".$matiere_devoirs." (".$chaine."):

    \n".$content; + + // 20130727 + $class_color_fond_notice="couleur_cellule_f"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($id_devoirs); + } + + $content_ini=$content; + + $content = "
    \n

    ".$matiere_devoirs." (".$chaine."):

    \n"; + + if($CDTPeutPointerTravailFait) { + $content.="\n"; + } + + $content .= $content_ini; // fichier joint $content .= affiche_docs_joints($id_devoirs,"t"); $content .="
    "; @@ -740,7 +769,50 @@ // echo "\n"; // ---------------------------- Titre notices (div div div div div div) -- // choisir le fond en fonction de $devoir ou $notice - echo "
    "; + + if ($not_dev->type == "c") { + echo "
    "; + } + else { + // 20130727 + //$class_color_fond_notice="color_fond_notices_t"; + $class_color_fond_notice="couleur_cellule_gen"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($not_dev->id_ct); + /* + if(array_key_exists($not_dev->id_ct, $tab_etat_travail_fait)) { + if($tab_etat_travail_fait[$not_dev->id_ct]['etat']=='fait') { + $image_etat="../images/edit16b.png"; + $texte_etat_travail="FAIT: Le travail est actuellement pointé comme fait.\n"; + if($tab_etat_travail_fait[$not_dev->id_ct]['date_modif']!=$tab_etat_travail_fait[$not_dev->id_ct]['date_initiale']) { + $texte_etat_travail.="Le travail a été pointé comme fait la première fois le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\net modifié pour la dernière fois par la suite le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_modif'], "y")."\n"; + } + else { + $texte_etat_travail.="Le travail a été pointé comme fait le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\n"; + } + $texte_etat_travail.="Cliquer pour corriger si le travail n'est pas encore fait."; + $class_color_fond_notice="color_fond_notices_t_fait"; + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + */ + } + + echo "
    "; + + if($CDTPeutPointerTravailFait) { + echo "\n"; + } + + } + /* if ($not_dev->type == "c") { echo "c'>"; } else { @@ -751,7 +823,12 @@ // echo "\n"; // ---------------------------- contenu notices (div div div div div div) -- // echo "\n"; - echo "
    ".$content."
    \n"; + if ($not_dev->type == "c") { + echo "
    ".$content."
    \n"; + } + else { + echo "
    ".$content."
    \n"; + } // ---------------------------- Fin contenu notices (div div div div div /div) -- // echo "\n"; echo "
    \n"; diff --git a/cahier_texte/index.php b/cahier_texte/index.php index 3c2ceb68b..96f68b0dc 100644 --- a/cahier_texte/index.php +++ b/cahier_texte/index.php @@ -381,7 +381,22 @@ if ($contenu_cor == '') {$contenu_cor="...";} if (!isset($msg_error_date)) { - if (isset($id_ct)) { + if (isset($id_ct)) { + // 20130727: + $contenu_precedent=""; + $sql="SELECT * FROM ct_devoirs_entry WHERE id_ct='$id_ct';"; + //echo "$sql
    "; + $req = mysql_query($sql); + if(mysql_num_rows($req)>0) { + $contenu_precedent=mysql_result($req, 0, 'contenu'); + if($contenu_precedent!=$contenu_cor) { + $date_modif=strftime("%Y-%m-%d %H:%M:%S"); + $sql="UPDATE ct_devoirs_faits SET etat='', commentaire='Le professeur a modifié la notice de travail à faire ($date_modif).', date_modif='".$date_modif."' WHERE id_ct='$id_ct';"; + //echo "$sql
    "; + $update=mysql_query($sql); + } + } + // Modification d'un devoir $sql="UPDATE ct_devoirs_entry SET contenu = '$contenu_cor', id_login='".$_SESSION['login']."', date_ct='$date_travail_a_faire'"; if((isset($date_visibilite_eleve))&&($date_visibilite_mal_formatee=="n")) {$sql.=", date_visibilite_eleve='$date_visibilite_eleve'";} diff --git a/cahier_texte/see_all.php b/cahier_texte/see_all.php index 10cf0d021..7727b9ec3 100644 --- a/cahier_texte/see_all.php +++ b/cahier_texte/see_all.php @@ -288,6 +288,16 @@ $res_notices = mysql_query($req_notices); $notice = mysql_fetch_object($res_notices); +// 20130727 +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +$class_notice_dev_fait="see_all_notice couleur_bord_tableau_notice color_fond_notices_t_fait"; +$class_notice_dev_non_fait="see_all_notice couleur_bord_tableau_notice color_fond_notices_t"; +if(($selected_eleve_login!='')&&($CDTPeutPointerTravailFait)) { + $tab_etat_travail_fait=get_tab_etat_travail_fait($selected_eleve_login); + echo js_cdt_modif_etat_travail(); +} + $ts_limite_visibilite_devoirs_pour_eleves=time()+getSettingValue('delai_devoirs')*24*3600; if(($_SESSION['statut']=='eleve')||($_SESSION['statut']=='responsable')) { @@ -386,7 +396,42 @@ } } // echo("type]."\">\n\n\n\n
    \n$content
    \n
    \n"); - echo "
    "; + if($type_notice=='devoir') { + // 20130727 + $class_color_fond_notice="color_fond_notices_t"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($not_dev->id_ct); + /* + if(array_key_exists($not_dev->id_ct, $tab_etat_travail_fait)) { + if($tab_etat_travail_fait[$not_dev->id_ct]['etat']=='fait') { + $image_etat="../images/edit16b.png"; + $texte_etat_travail="FAIT: Le travail est actuellement pointé comme fait.\n"; + if($tab_etat_travail_fait[$not_dev->id_ct]['date_modif']!=$tab_etat_travail_fait[$not_dev->id_ct]['date_initiale']) { + $texte_etat_travail.="Le travail a été pointé comme fait la première fois le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\net modifié pour la dernière fois par la suite le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_modif'], "y")."\n"; + } + else { + $texte_etat_travail.="Le travail a été pointé comme fait le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\n"; + } + $texte_etat_travail.="Cliquer pour corriger si le travail n'est pas encore fait."; + $class_color_fond_notice="color_fond_notices_t_fait"; + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + */ + } + + echo "
    "; + } + else { + echo "
    "; + } /* if ($not_dev->type == "t") { echo "see_all_a_faire'>\n"; } else { @@ -397,6 +442,10 @@ echo "
    Donné le ".formate_date($not_dev->date_visibilite_eleve)."
    \n"; } + if(($type_notice=='devoir')&&($CDTPeutPointerTravailFait)) { + echo "\n"; + } + echo "$content\n
    \n"; if ($not_dev->type == "c") $date_ct_old = $not_dev->date_ct; } diff --git a/cahier_texte_2/ajax_enregistrement_devoir.php b/cahier_texte_2/ajax_enregistrement_devoir.php index e504c34f3..83fe05367 100644 --- a/cahier_texte_2/ajax_enregistrement_devoir.php +++ b/cahier_texte_2/ajax_enregistrement_devoir.php @@ -1,7 +1,7 @@ getContenu()!=$contenu_cor) { + $date_modif=strftime("%Y-%m-%d %H:%M:%S"); + $sql="UPDATE ct_devoirs_faits SET etat='', commentaire='Le professeur a modifié la notice de travail à faire ($date_modif).', date_modif='".$date_modif."' WHERE id_ct='$id_devoir';"; + $update=mysql_query($sql); +} + $ctTravailAFaire->setContenu($contenu_cor); $ctTravailAFaire->setDateCt($date_devoir); $ctTravailAFaire->setGroupe($groupe); diff --git a/cahier_texte_2/consultation.php b/cahier_texte_2/consultation.php index db5b5eee6..eb56119e6 100644 --- a/cahier_texte_2/consultation.php +++ b/cahier_texte_2/consultation.php @@ -212,6 +212,16 @@ function aff_debug($tableau){ require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ************* +// 20130727 +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +$class_notice_dev_fait="cdt_fond_not_dev color_fond_notices_t_fait"; +$class_notice_dev_non_fait="cdt_fond_not_dev couleur_cellule_gen"; +if(($selected_eleve_login!='')&&($CDTPeutPointerTravailFait)) { + $tab_etat_travail_fait=get_tab_etat_travail_fait($selected_eleve_login); + echo js_cdt_modif_etat_travail(); +} + //debug_var(); //echo "

    \$selected_eleve_login=$selected_eleve_login

    "; @@ -441,6 +451,10 @@ function aff_debug($tableau){ echo "

    \n Travaux personnels pour le ".strftime("%a %d %b", $jour)."

    \n"; + // 20130727 + $class_notice_dev_fait="matiere_a_faire couleur_bord_tableau_notice color_police_matieres color_fond_notices_t_fait"; + $class_notice_dev_non_fait="matiere_a_faire couleur_bord_tableau_notice couleur_cellule_f color_police_matieres"; + // Affichage des devoirs dans chaque matière while ($ind < $nb_devoirs_cahier_texte) { $content = mysql_result($appel_devoirs_cahier_texte, $ind, 'contenu'); @@ -475,8 +489,26 @@ function aff_debug($tableau){ $aff_titre_seq = '

    - ' . $rep_seq["titre"] . ' -

    '; } + /* $content = "
    \n

    ".$matiere_devoirs." (".$chaine."):

    \n".$aff_titre_seq."".$content; + */ + // 20130727 + $class_color_fond_notice="couleur_cellule_f"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($id_devoirs); + } + + $content_ini=$content; + + $content = "
    \n

    ".$matiere_devoirs." (".$chaine."):

    \n"; + + if($CDTPeutPointerTravailFait) { + $content.="\n"; + } + + $content .= $aff_titre_seq.$content_ini; + // fichier joint $content .= affiche_docs_joints($id_devoirs,"t"); $content .="
    "; @@ -850,7 +882,25 @@ function aff_debug($tableau){ // echo "\n"; // ---------------------------- Titre notices (div div div div div div) -- // choisir le fond en fonction de $devoir ou $notice - echo "
    "; + + if ($not_dev->type == "c") { + echo "
    "; + } + else { + // 20130727 + //$class_color_fond_notice="color_fond_notices_t"; + $class_color_fond_notice="couleur_cellule_gen"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($not_dev->id_ct); + } + + echo "
    "; + + if($CDTPeutPointerTravailFait) { + echo "\n"; + } + } + /* if ($not_dev->type == "c") { echo "c'>"; } else { @@ -861,7 +911,12 @@ function aff_debug($tableau){ // echo "\n"; // ---------------------------- contenu notices (div div div div div div) -- // echo "\n"; - echo "
    ".$content."
    \n"; + if ($not_dev->type == "c") { + echo "
    ".$content."
    \n"; + } + else { + echo "
    ".$content."
    \n"; + } // ---------------------------- Fin contenu notices (div div div div div /div) -- // echo "\n"; echo "
    \n"; diff --git a/cahier_texte_2/consultation2.php b/cahier_texte_2/consultation2.php index 9576a3326..f7441e53f 100644 --- a/cahier_texte_2/consultation2.php +++ b/cahier_texte_2/consultation2.php @@ -463,7 +463,9 @@ function aff_debug($tableau){ } // Passage à la semaine précédente/courante/suivante - echo "\n"; + echo "
    Aujourd'hui "; + + echo " - Semaines précédente / suivante
    \n"; $classe=get_class_from_id($id_classe); @@ -491,7 +493,15 @@ function aff_debug($tableau){ $groups=get_groups_for_eleve($login_eleve, $id_classe); // Passage à la semaine précédente/courante/suivante - echo "\n"; + echo "
    Aujourd'hui"; + /* + include("../lib/mincals.inc"); + $titre_infobulle="Choix d'une date"; + $texte_infobulle=minicals($year, $month, $day, "-1", 'consultation2.php?mincal=y', "return"); + $tabdiv_infobulle[]=creer_div_infobulle('div_choix_date',$titre_infobulle,"",$texte_infobulle,"",14,0,'y','y','n','n'); + echo " "; + */ + echo " - Semaines précédente / suivante
    \n"; echo "

    Affichage pour un élève : ".civ_nom_prenom($login_eleve)." ($classe)

    \n"; @@ -615,18 +625,19 @@ function aff_debug($tableau){ if((($_SESSION['statut']=='professeur')&&(in_array($id_groupe,$tab_mes_groupes)))|| ($ligne_ct->date_ct<=$ts_aujourdhui)) { //echo "
    ".$current_group['name']."
    ".$ligne_ct->contenu."
    \n"; - $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]=""; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['id_ct']=$ligne_ct->id_ct; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['contenu']=""; // Lien d'édition de la notice: //if(($_SESSION['statut']=='professeur')&&(in_array($id_groupe,$tab_mes_groupes))) { if(($_SESSION['statut']=='professeur')&&(($ligne_ct->id_login==$_SESSION['login'])||(getSettingAOui('cdt_autoriser_modif_multiprof')))) { if((!getSettingAOui('visa_cdt_inter_modif_notices_visees'))||($ligne_ct->vise!='y')){ - $tab_notice[$i][$id_groupe]['ct_entry'][$cpt].="
    "; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['contenu'].="
    "; } } // Notice proprement dite: - $tab_notice[$i][$id_groupe]['ct_entry'][$cpt].=$ligne_ct->contenu; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['contenu'].=$ligne_ct->contenu; /* } else { @@ -644,13 +655,13 @@ function aff_debug($tableau){ $sql="SELECT * FROM ct_documents where id_ct='$ligne_ct->id_ct';"; $res_doc=mysql_query($sql); if(mysql_num_rows($res_doc)>0) { - $tab_notice[$i][$id_groupe]['ct_entry'][$cpt].="
    Documents joints :"; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['contenu'].="
    Documents joints :"; while($ligne_ct_doc=mysql_fetch_object($res_doc)) { // Tester si le document est visible ou non dans le cas ele/resp if((($_SESSION['statut']!='eleve')&&($_SESSION['statut']!='responsable'))|| ($ligne_ct_doc->visible_eleve_parent==1)) { - $tab_notice[$i][$id_groupe]['ct_entry'][$cpt].="
    \ntitre\" target='_blank'>".$ligne_ct_doc->titre.""; + $tab_notice[$i][$id_groupe]['ct_entry'][$cpt]['contenu'].="
    \ntitre\" target='_blank'>".$ligne_ct_doc->titre.""; } } } @@ -667,30 +678,31 @@ function aff_debug($tableau){ if((($_SESSION['statut']!='eleve')&&($_SESSION['statut']!='responsable'))|| ($ligne_ct->date_ct<=$ts_limite_visibilite_devoirs_pour_eleves)) { - $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]=""; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['id_ct']=$ligne_ct->id_ct; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['contenu']=""; // Lien d'édition de la notice: if(($_SESSION['statut']=='professeur')&&(in_array($id_groupe,$tab_mes_groupes))) { if(($ligne_ct->id_login==$_SESSION['login'])||(getSettingAOui('cdt_autoriser_modif_multiprof'))) { if((!getSettingAOui('visa_cdt_inter_modif_notices_visees'))||($ligne_ct->vise!='y')){ - $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt].="
    "; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['contenu'].="
    "; } } } // Notice proprement dite: - $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt].=$ligne_ct->contenu; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['contenu'].=$ligne_ct->contenu; // Documents joints: $sql="SELECT * FROM ct_devoirs_documents where id_ct_devoir='$ligne_ct->id_ct';"; $res_doc=mysql_query($sql); if(mysql_num_rows($res_doc)>0) { - $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt].="
    Documents joints :"; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['contenu'].="
    Documents joints :"; while($ligne_ct_doc=mysql_fetch_object($res_doc)) { if((($_SESSION['statut']!='eleve')&&($_SESSION['statut']!='responsable'))|| ($ligne_ct_doc->visible_eleve_parent==1)) { - $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt].="
    \ntitre\" target='_blank'>".$ligne_ct_doc->titre.""; + $tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$cpt]['contenu'].="
    \ntitre\" target='_blank'>".$ligne_ct_doc->titre.""; } } } @@ -709,10 +721,10 @@ function aff_debug($tableau){ // Les notices privées en multiprof??? sont-elles visibles du seul prof ou des profs du groupe? if(($_SESSION['statut']=='professeur')&&(in_array($id_groupe,$tab_mes_groupes))) { if(($ligne_ct->id_login==$_SESSION['login'])||(getSettingAOui('cdt_autoriser_modif_multiprof'))) { - $tab_notice[$i][$id_groupe]['ct_private_entry'][$cpt]="
    "; + $tab_notice[$i][$id_groupe]['ct_private_entry'][$cpt]['contenu']="
    "; // Notice proprement dite: - $tab_notice[$i][$id_groupe]['ct_private_entry'][$cpt].=$ligne_ct->contenu; + $tab_notice[$i][$id_groupe]['ct_private_entry'][$cpt]['contenu'].=$ligne_ct->contenu; $cpt++; } } @@ -730,6 +742,21 @@ function aff_debug($tableau){ } //============================================================= +//================================================ +// 20130727 +$class_notice_dev_fait="color_fond_notices_t_fait"; +$class_notice_dev_non_fait="color_fond_notices_t"; + +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +if($CDTPeutPointerTravailFait) { + if($login_eleve!='') { + $tab_etat_travail_fait=get_tab_etat_travail_fait($login_eleve); + echo js_cdt_modif_etat_travail(); + } +} +//================================================ + //============================================================= // Boucle sur les 14 jours affichés $max_cpt_grp=0; @@ -808,8 +835,20 @@ function aff_debug($tableau){ if(isset($tab_notice[$i][$id_groupe]['ct_devoirs_entry'])) { // Liste des devoirs donnés pour ce jour dans ce groupe: for($j=0;$j\n"; - $texte_dev_courant.=$tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$j]; + // 20130727 + $class_color_fond_notice="color_fond_notices_t"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$j]['id_ct']); + } + + //$texte_dev_courant.="
    \n"; + $texte_dev_courant.="
    \n"; + + if($CDTPeutPointerTravailFait) { + $texte_dev_courant.="
    \n"; + } + + $texte_dev_courant.=$tab_notice[$i][$id_groupe]['ct_devoirs_entry'][$j]['contenu']; $texte_dev_courant.="
    \n"; $temoin_dev_non_vides++; } @@ -833,7 +872,7 @@ function aff_debug($tableau){ // Liste des compte-renddus pour ce jour dans ce groupe: for($j=0;$j\n"; - $texte_np_courant.=$tab_notice[$i][$id_groupe]['ct_private_entry'][$j]; + $texte_np_courant.=$tab_notice[$i][$id_groupe]['ct_private_entry'][$j]['contenu']; $texte_np_courant.="
    \n"; $temoin_np_non_vides++; } @@ -977,21 +1016,21 @@ function aff_debug($tableau){ if(($temoin_dev_non_vides>0)||($temoin_cr_non_vides>0)||($temoin_np_non_vides>0)) { $ajout=""; if($temoin_cr_non_vides>0) { - $ajout.=""; + $ajout.=""; $ajout.="C"; $ajout.="\n"; } if($temoin_dev_non_vides>0) { $ajout.=" "; - $ajout.=""; + $ajout.=""; $ajout.="T"; $ajout.="\n"; } if($temoin_np_non_vides>0) { $ajout.=" "; - $ajout.=""; + $ajout.=""; $ajout.="P"; $ajout.="\n"; } diff --git a/cahier_texte_2/see_all.php b/cahier_texte_2/see_all.php index e461e7baa..d10081c46 100644 --- a/cahier_texte_2/see_all.php +++ b/cahier_texte_2/see_all.php @@ -1,7 +1,7 @@ \n"; } +//================================================ +// 20130727 +$afficher_compte_rendus_seulement=isset($_GET['afficher_compte_rendus_seulement']) ? $_GET['afficher_compte_rendus_seulement'] : "n"; +$afficher_travail_a_faire_seulement=isset($_GET['afficher_travail_a_faire_seulement']) ? $_GET['afficher_travail_a_faire_seulement'] : "n"; + +$class_notice_dev_fait="see_all_notice couleur_bord_tableau_notice color_fond_notices_t_fait"; +$class_notice_dev_non_fait="see_all_notice couleur_bord_tableau_notice color_fond_notices_t"; + +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +if(($afficher_compte_rendus_seulement!='y')&&($CDTPeutPointerTravailFait)) { + if($selected_eleve_login!='') { + $tab_etat_travail_fait=get_tab_etat_travail_fait($selected_eleve_login); + echo js_cdt_modif_etat_travail(); + } +} +//================================================ + //echo "\$id_classe=$id_classe
    "; //if(($id_groupe=='Toutes_matieres')&&($id_classe!=-1)) { if(($id_groupe=='Toutes_matieres')&& @@ -358,8 +376,8 @@ echo "\n$text_imprime\n\n"; // } retour ne s'affichait pas sur la page imprimable - $afficher_compte_rendus_seulement=isset($_GET['afficher_compte_rendus_seulement']) ? $_GET['afficher_compte_rendus_seulement'] : "n"; - $afficher_travail_a_faire_seulement=isset($_GET['afficher_travail_a_faire_seulement']) ? $_GET['afficher_travail_a_faire_seulement'] : "n"; + //$afficher_compte_rendus_seulement=isset($_GET['afficher_compte_rendus_seulement']) ? $_GET['afficher_compte_rendus_seulement'] : "n"; + //$afficher_travail_a_faire_seulement=isset($_GET['afficher_travail_a_faire_seulement']) ? $_GET['afficher_travail_a_faire_seulement'] : "n"; if($afficher_travail_a_faire_seulement=='n') { echo "- "; @@ -538,13 +556,45 @@ //for($k=0;$k".$tab_dev[$tab_dates[$i]][$tab_id_grp[$j]][$k]['contenu']."
    \n"; foreach($tab_dev[$tab_dates[$i]][$tab_id_grp[$j]] as $key => $value) { - echo "
    "; + // 20130727 + $class_color_fond_notice="color_fond_notices_t"; + if($CDTPeutPointerTravailFait) { + if(array_key_exists($value['id_ct'], $tab_etat_travail_fait)) { + if($tab_etat_travail_fait[$value['id_ct']]['etat']=='fait') { + $image_etat="../images/edit16b.png"; + $texte_etat_travail="FAIT: Le travail est actuellement pointé comme fait.\n"; + if($tab_etat_travail_fait[$value['id_ct']]['date_modif']!=$tab_etat_travail_fait[$value['id_ct']]['date_initiale']) { + $texte_etat_travail.="Le travail a été pointé comme fait la première fois le ".formate_date($tab_etat_travail_fait[$value['id_ct']]['date_initiale'], "y")."\net modifié pour la dernière fois par la suite le ".formate_date($tab_etat_travail_fait[$value['id_ct']]['date_modif'], "y")."\n"; + } + else { + $texte_etat_travail.="Le travail a été pointé comme fait le ".formate_date($tab_etat_travail_fait[$value['id_ct']]['date_initiale'], "y")."\n"; + } + $texte_etat_travail.="Cliquer pour corriger si le travail n'est pas encore fait."; + $class_color_fond_notice="color_fond_notices_t_fait"; + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + } + + echo "
    "; if($value['date_visibilite_eleve']!='0000-00-00 00:00:00') { - echo "
    Donné le ".formate_date($value['date_visibilite_eleve'])."
    \n"; + $donne_le=formate_date($value['date_visibilite_eleve']); + echo "
    Donné le ".$donne_le."
    \n"; //$chaine_travail_a_faire_futur.="Donné le ".formate_date($value['date_visibilite_eleve'])."
    "; } + if($CDTPeutPointerTravailFait) { + echo "
    \n"; + } + echo $value['contenu']; //$chaine_travail_a_faire_futur.=$value['contenu']; $adj=affiche_docs_joints($value['id_ct'],"t"); @@ -782,7 +832,46 @@ } } // echo("type]."\">\n\n\n\n
    \n$content
    \n
    \n"); - echo "
    "; + if($not_dev->type=="t") { + + // 20130727 + $class_color_fond_notice="color_fond_notices_t"; + if($CDTPeutPointerTravailFait) { + get_etat_et_img_cdt_travail_fait($not_dev->id_ct); + /* + if(array_key_exists($not_dev->id_ct, $tab_etat_travail_fait)) { + if($tab_etat_travail_fait[$not_dev->id_ct]['etat']=='fait') { + $image_etat="../images/edit16b.png"; + $texte_etat_travail="FAIT: Le travail est actuellement pointé comme fait.\n"; + if($tab_etat_travail_fait[$not_dev->id_ct]['date_modif']!=$tab_etat_travail_fait[$not_dev->id_ct]['date_initiale']) { + $texte_etat_travail.="Le travail a été pointé comme fait la première fois le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\net modifié pour la dernière fois par la suite le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_modif'], "y")."\n"; + } + else { + $texte_etat_travail.="Le travail a été pointé comme fait le ".formate_date($tab_etat_travail_fait[$not_dev->id_ct]['date_initiale'], "y")."\n"; + } + $texte_etat_travail.="Cliquer pour corriger si le travail n'est pas encore fait."; + $class_color_fond_notice="color_fond_notices_t_fait"; + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } + */ + } + + echo "
    "; + } + else { + echo "
    "; + } + +// id='div_travail_".$value['id_ct']."' class='see_all_notice couleur_bord_tableau_notice $class_color_fond_notice + /* if ($not_dev->type == "t") { echo "see_all_a_faire'>\n"; } else { @@ -790,7 +879,12 @@ }*/ if(($type_notice=='devoir')&&($not_dev->date_visibilite_eleve!='0000-00-00 00:00:00')) { - echo "
    Donné le ".formate_date($not_dev->date_visibilite_eleve)."
    \n"; + $donne_le=formate_date($not_dev->date_visibilite_eleve); + echo "
    Donné le ".$donne_le."
    \n"; + } + + if(($type_notice=='devoir')&&($CDTPeutPointerTravailFait)) { + echo "\n"; } echo "$content\n
    \n"; diff --git a/changelog.txt b/changelog.txt index cc52efbd8..42136fa72 100644 --- a/changelog.txt +++ b/changelog.txt @@ -14,6 +14,7 @@ Bulletins: Cahier de textes: - Possibilité d'afficher la liste des documents joints à un CDT. +- Possibilité pour les parents et élèves de pointer leurs travaux faits ou non. Absences2: - Possibilité de modifier les dates/heure de début et fin d'une saisie depuis la page de saisie d'un traitement. diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 3e90bb080..317234763 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -1146,6 +1146,11 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='CDTPeutPointerTravailFaitEleve'; +$texteItem="peut pointer les travaux faits ou non du CDT"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + //+++++++++++++++++++++++++++ $titreItem=''; @@ -1377,6 +1382,11 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='CDTPeutPointerTravailFaitResponsable'; +$texteItem="peut pointer les travaux faits ou non du CDT pour les ".$gepiSettings['denomination_eleves']." dont il est responsable."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + //+++++++++++++++++++++++++++ diff --git a/images/edit16b.png b/images/edit16b.png new file mode 100644 index 0000000000000000000000000000000000000000..6e40b0a9edfe70a058d464259086a7f1797719e8 GIT binary patch literal 741 zcmVPx#24YJ`L;(K){{a7>y{D4^000SaNLh0L01FZT01FZU(%pXi00007bV*G`2i*o9 z4;(KW2v=kP00L!6L_t(I%Wc!oOO!zz$MN?(JI}5?uBMOdW>_SYLRNN&BFdl$f(nmy z@DxNWbm-6@&?V~DDLU*af(}X7$b-U;8XPO-ri)KzMn~?SyWRV{8XO}xU1Vl- z1nD>l_IGz~95%*K3lw3XDJ>0??w>&vyIN8S_j+#3dYA5>c`S-uq!KQ(p6@*aG9g*UY`^wWLcMgIM|@zZ^)7i6>9x+e$>qBu%CJ^>3cbiw9p z(?Dx=D07d6!GSeX9m+H&0C@D^E>`6wmghs1U~#b-@8~6rR;Rak`vmIGC^CGFs5PTX zahAKz)82Q2mE00)uC>nFCU|(GgzY4u02R-r+I^O0H-%kTq2hJcxgkNc@Cg=gKq(0| zo0a$hoW3)}5^=@C^c)pw)WR1;bR1=RnEmw*efR_@h0z8f1VRYZ7E1tW$B@A6_*;H_{E90y=HMW9 zY7fS&7T2;Y5>5YmX5AJ*7)I1;Az`2?{>)<^xq!2`2g{0K+cwE$Gp^f?<2VhLn?E7F zZ$ItVZXui`MuUnpQcAQoXsr=K;JR&f7GrNdn5oIhx^6T82F&V$S=*P(68H!c;9Rh$3-02y>e zSad^gZEa<4bO1wgWnpw>WFU8GbZ8()Nlj2!fese{00K=(L_t(I%Z-!2OIuMK#n1P9 z-;cb6s7+KT0Y_8N$>LHP-5d&1>=fweU*PJ}*@CN!bQPV%ss(8gN~u$et3#=^6%oZD z)yCw#`|j!RY|u)7oaJ(d&pDg}U*I>9947gk)_!uw$LBmcx?rnyK=K922l$&vzGsq< zGc$CR3Rx=AmCJOM3f=TH-RUVE`Rz~e7p|?*MG*jm;bE4l%GC3i1_5m@ zq>Umbg#zPZk#ScS+dVyOm&$BK5#9DSNzMq#cc|4Kx}6=+7>FvI2%rk6f-0aIKm=3; zR6zA0{e1{`cTYT=oQ%4?J-~R7dsT2~2tooPfMkFGpa?`21mL!|z-ANf;Go}QqY=_t zfGJR~!_3a&Uuu@iSwNCNp$hsQXgrAT+g&KRFPT>xl=;4umFE@^0SECy}hn;&q$_r zbCZ|#I?ro0o{x?3$J7+#\n"; + return $retour; +} + ?> diff --git a/lib/share.inc.php b/lib/share.inc.php index 8c1cbb6f4..da732d40d 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -7684,4 +7684,52 @@ function get_ele_clas_connexions($id_classe, $timestamp1, $timestamp2, $tab_auto return $tab; } +function get_tab_etat_travail_fait($eleve_login) { + $tab_etat_travail_fait=array(); + $sql="SELECT * FROM ct_devoirs_faits WHERE login='$eleve_login';"; + $res_cdf=mysql_query($sql); + if(mysql_num_rows($res_cdf)>0) { + while($lig_cdf=mysql_fetch_object($res_cdf)) { + $tab_etat_travail_fait[$lig_cdf->id_ct]['etat']=$lig_cdf->etat; + $tab_etat_travail_fait[$lig_cdf->id_ct]['date_initiale']=$lig_cdf->date_initiale; + $tab_etat_travail_fait[$lig_cdf->id_ct]['date_modif']=$lig_cdf->date_modif; + $tab_etat_travail_fait[$lig_cdf->id_ct]['commentaire']=$lig_cdf->commentaire; + } + } + return $tab_etat_travail_fait; +} + +function get_etat_et_img_cdt_travail_fait($id_ct) { + global $tab_etat_travail_fait, + $image_etat, + $texte_etat_travail, + $class_color_fond_notice; + + if(array_key_exists($id_ct, $tab_etat_travail_fait)) { + if($tab_etat_travail_fait[$id_ct]['etat']=='fait') { + $image_etat="../images/edit16b.png"; + $texte_etat_travail="FAIT: Le travail est actuellement pointé comme fait.\n"; + if($tab_etat_travail_fait[$id_ct]['date_modif']!=$tab_etat_travail_fait[$id_ct]['date_initiale']) { + $texte_etat_travail.="Le travail a été pointé comme fait la première fois le ".formate_date($tab_etat_travail_fait[$id_ct]['date_initiale'], "y")."\net modifié pour la dernière fois par la suite le ".formate_date($tab_etat_travail_fait[$id_ct]['date_modif'], "y")."\n"; + } + else { + $texte_etat_travail.="Le travail a été pointé comme fait le ".formate_date($tab_etat_travail_fait[$id_ct]['date_initiale'], "y")."\n"; + } + $texte_etat_travail.="Cliquer pour corriger si le travail n'est pas encore fait."; + $class_color_fond_notice="color_fond_notices_t_fait"; + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\n"; + if($tab_etat_travail_fait[$id_ct]['commentaire']!='') { + $texte_etat_travail.=$tab_etat_travail_fait[$id_ct]['commentaire']."\n"; + } + $texte_etat_travail.="Cliquer pour pointer le travail comme fait."; + } + } + else { + $image_etat="../images/edit16.png"; + $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; + } +} ?> diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 01c945108..d6f1c811d 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1215,3 +1215,4 @@ INSERT INTO droits SET id='/mod_abs2/admin/admin_table_totaux_absences.php', adm INSERT INTO setting SET name='mod_disc_terme_incident', value='incident'; INSERT INTO setting SET name='mod_disc_terme_sanction', value='sanction'; INSERT INTO droits SET id='/responsables/infos_parent.php', administrateur='F', scolarite='F', cpe='F', professeur='F', secours='F', eleve='F', responsable='V'; +INSERT INTO droits SET id='/cahier_texte_2/ajax_cdt.php', administrateur='F', professeur='F', cpe='F', scolarite='F', eleve='V', responsable='V', secours='F', autre='F', description='Enregistrement des modifications sur CDT',statut=''; diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index fb6e8b03a..58a9d0437 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -847,3 +847,15 @@ commentaires text NOT NULL, PRIMARY KEY ( id ) ) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close'; +DROP TABLE IF EXISTS ct_devoirs_faits; +CREATE TABLE ct_devoirs_faits ( +id INT(11) unsigned NOT NULL auto_increment, +id_ct INT(11) unsigned NOT NULL, +login VARCHAR( 255 ) NOT NULL , +etat VARCHAR( 50 ) NOT NULL, +date_initiale DATETIME, +date_modif DATETIME, +commentaire VARCHAR( 255 ) NOT NULL, +PRIMARY KEY ( id ) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index e69ca4399..1e3fcd456 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -214,4 +214,28 @@ } } +$result .= "
    "; +$result .= "Ajout d'une table 'ct_devoirs_faits' :
    "; +$test = sql_query1("SHOW TABLES LIKE 'ct_devoirs_faits'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS ct_devoirs_faits ( + id INT(11) unsigned NOT NULL auto_increment, + id_ct INT(11) unsigned NOT NULL, + login VARCHAR( 255 ) NOT NULL , + etat VARCHAR( 50 ) NOT NULL, + date_initiale DATETIME, + date_modif DATETIME, + commentaire VARCHAR( 255 ) NOT NULL, + PRIMARY KEY ( id ) + ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + ?> diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 214d7b6de..6779171d1 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -1019,6 +1019,8 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits SET id='/responsables/infos_parent.php', administrateur='F', scolarite='F', cpe='F', professeur='F', secours='F', eleve='F', responsable='V';"; +$tab_req[] = "INSERT INTO droits SET id='/cahier_texte_2/ajax_cdt.php', administrateur='F', professeur='F', cpe='F', scolarite='F', eleve='V', responsable='V', secours='F', autre='F', description='Enregistrement des modifications sur CDT',statut='';"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From fcc5eb1d7cdf245a0b6fd2c862375e4f930e2b54 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 27 Jul 2013 19:27:58 +0200 Subject: [PATCH 0919/1150] =?UTF-8?q?Ajout=20de=20liens=20pour=20cr=C3=A9e?= =?UTF-8?q?r=20le=20compte=20d'utilisateur=20depuis=20la=20fiche=20Respons?= =?UTF-8?q?able.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- responsables/modify_resp.php | 27 ++++++++++++++++++++++++++- utilisateurs/create_responsable.php | 3 ++- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/responsables/modify_resp.php b/responsables/modify_resp.php index a4499204e..e561b5f2d 100644 --- a/responsables/modify_resp.php +++ b/responsables/modify_resp.php @@ -808,7 +808,9 @@ function refresh_opener() { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($resp_login, "responsable", "_blank", $avec_lien); if($_SESSION['statut']=='administrateur') { - echo " ($resp_login"; + echo " ($resp_login"; if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} echo ")"; } @@ -820,6 +822,29 @@ function refresh_opener() { } else { $compte_resp_existe="n"; + + if($_SESSION['statut']=="administrateur") { + $tmp_tab=get_enfants_from_pers_id($pers_id, 'simple', "n"); + if(count($tmp_tab)>0) { + echo " "; + } + elseif(getSettingAOui('GepiMemesDroitsRespNonLegaux')) { + // Il ne faut pas "yy" parce que le droit spécial ne peut être donné qu'une fois le compte créé. + $tmp_tab=get_enfants_from_pers_id($pers_id, 'simple', "y"); + /* + echo "
    ";
    +					print_r($tmp_tab);
    +					echo "
    "; + */ + if(count($tmp_tab)>0) { + echo " "; + } + } + } } if(($compte_resp_existe=="y")&&(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite"))) { diff --git a/utilisateurs/create_responsable.php b/utilisateurs/create_responsable.php index 6c2ba1e65..f30b4c5de 100644 --- a/utilisateurs/create_responsable.php +++ b/utilisateurs/create_responsable.php @@ -321,7 +321,8 @@ $critere_recherche_rl0=isset($_POST['critere_recherche_rl0']) ? $_POST['critere_recherche_rl0'] : (isset($_GET['critere_recherche_rl0']) ? $_GET['critere_recherche_rl0'] : ""); $critere_recherche_rl0=preg_replace("/[^a-zA-ZÀÄÂÉÈÊËÎÏÔÖÙÛܽ¼Ççàäâéèêëîïôöùûü_ -]/u", "", $critere_recherche_rl0); -if(isset($_POST['filtrage_rl0'])) { +$filtrage_rl0=isset($_POST['filtrage_rl0']) ? $_POST['filtrage_rl0'] : (isset($_GET['filtrage_rl0']) ? $_GET['filtrage_rl0'] : NULL); +if(isset($filtrage_rl0)) { $critere_recherche=$critere_recherche_rl0; $mode_recherche='rl0'; } From 50adbd9fe8dd030ce20437ed999e44ec7920ca48 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 27 Jul 2013 19:45:28 +0200 Subject: [PATCH 0920/1150] =?UTF-8?q?R=C3=A9cup=C3=A9ration=20de=20l'?= =?UTF-8?q?=C3=A9l=C3=A8ve=20dont=20la=20personne=20est=20resp=5Flegal=3D0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/reset_passwords.php | 54 ++++++++++++++++++++++++++++++-- 1 file changed, 52 insertions(+), 2 deletions(-) diff --git a/utilisateurs/reset_passwords.php b/utilisateurs/reset_passwords.php index 27e2c3e7f..cee2714f0 100644 --- a/utilisateurs/reset_passwords.php +++ b/utilisateurs/reset_passwords.php @@ -522,6 +522,46 @@ classes c, $i++; } + $liste_elv_resp_0=""; + $liste_elv_resp_0_non_html=""; + if(($liste_elv_resp=="")&&(getSettingAOui('GepiMemesDroitsRespNonLegaux'))) { + $sql_resp_eleves="SELECT DISTINCT c.id, e.* , c.* + FROM responsables2 r2, eleves e, classes c, j_eleves_classes jec + WHERE ( + r2.pers_id = '$resp_pers_id' + AND r2.ele_id = e.ele_id + AND e.login = jec.login + AND jec.id_classe = c.id + AND r2.resp_legal='0' + )"; + //echo "
    \$sql_resp_eleves=".$sql_resp_eleves."
    "; + if($debug_create_resp=="y") {echo "
    $sql_resp_eleves
    \n";} + $call_resp_eleves=mysql_query($sql_resp_eleves); + $nb_elv_resp = mysql_num_rows($call_resp_eleves); + //echo "\$nb_elv_resp=$nb_elv_resp
    "; + if($debug_create_resp=="y") {echo "\$nb_elv_resp=$nb_elv_resp
    \n";} + + $i = 0; + while ($i < $nb_elv_resp){ + + $elv_resp0['login'][$i] = mysql_result($call_resp_eleves, $i, "login"); + $elv_resp0['nom'][$i] = mysql_result($call_resp_eleves, $i, "nom"); + $elv_resp0['prenom'][$i] = mysql_result($call_resp_eleves, $i, "prenom"); + $elv_resp0['classe'][$i] = mysql_result($call_resp_eleves, $i, "classe"); + $elv_resp0['nom_complet_classe'][$i] = mysql_result($call_resp_eleves, $i, "nom_complet"); + + if($i>0){ + $liste_elv_resp_0.=", "; + $liste_elv_resp_0_non_html.=", "; + } + $liste_elv_resp_0.=casse_mot($elv_resp0['nom'][$i],'maj')." ".casse_mot($elv_resp0['prenom'][$i],'majf2')." (".$elv_resp0['classe'][$i].")"; + $liste_elv_resp_0_non_html.=casse_mot($elv_resp0['nom'][$i],'maj')." ".casse_mot($elv_resp0['prenom'][$i],'majf2')." (".$elv_resp0['classe'][$i].")"; + + $i++; + } + } + + // il va y avoir la classe à récuperer if ($cas_traite==2) { $user_classe = $resp_pers_id=mysql_result($call_user_info, $p, "id_classe"); @@ -862,7 +902,12 @@ classes c, if ($user_statut == "responsable") { echo "Responsable de : "; if($liste_elv_resp==""){ - echo " "; + if($liste_elv_resp_0==""){ + echo " "; + } + else{ + echo $liste_elv_resp_0." (resp.non légal)"; + } } else{ echo $liste_elv_resp; @@ -1220,7 +1265,12 @@ classes c, if ($user_statut == "responsable") { echo "Responsable de : "; if($liste_elv_resp==""){ - echo " "; + if($liste_elv_resp_0==""){ + echo " "; + } + else{ + echo $liste_elv_resp_0." (resp.non légal)"; + } } else{ echo $liste_elv_resp; From 094da13b70cf58237d7ca80ff45bdf76146509bf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 28 Jul 2013 10:49:38 +0200 Subject: [PATCH 0921/1150] =?UTF-8?q?Acc=C3=A8s=20=C3=A0=20l'onglet=20'Sai?= =?UTF-8?q?sir=20un=20groupe'=20pour=20les=20statuts=20'autre'=20avec=20le?= =?UTF-8?q?=20droit=20'Saisir=20les=20absences=20de=20tous=20les=20=C3=A9l?= =?UTF-8?q?=C3=A8ves'.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 1 + mod_abs2/menu_abs2.inc.php | 5 +++++ mod_abs2/saisir_eleve.php | 4 ++-- mod_abs2/saisir_groupe.php | 8 ++++---- utilisateurs/creer_statut_autorisation.php | 4 +++- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/changelog.txt b/changelog.txt index 42136fa72..0dc21ed42 100644 --- a/changelog.txt +++ b/changelog.txt @@ -18,6 +18,7 @@ Cahier de textes: Absences2: - Possibilité de modifier les dates/heure de début et fin d'une saisie depuis la page de saisie d'un traitement. +- Accès à l'onglet 'Saisir un groupe' pour les statuts 'autre' avec le droit 'Saisir les absences de tous les élèves'. Discipline: - Affichage par tranches des incidents à traiter (pour limiter le temps de chargement de la page). diff --git a/mod_abs2/menu_abs2.inc.php b/mod_abs2/menu_abs2.inc.php index c8cc59951..309b65877 100644 --- a/mod_abs2/menu_abs2.inc.php +++ b/mod_abs2/menu_abs2.inc.php @@ -121,6 +121,11 @@ echo "'."\n"; $menus .= ''."\n"; //======================================================= diff --git a/lib/header_barre_scolarite_template.php b/lib/header_barre_scolarite_template.php index 45ef2e6df..4b2ac806e 100644 --- a/lib/header_barre_scolarite_template.php +++ b/lib/header_barre_scolarite_template.php @@ -252,6 +252,7 @@ $menus .= ' '."\n"; $menus .= ' '."\n"; $menus .= '
  • Panneau affichage
  • '."\n"; + $menus .= '
  • Statistiques
  • '."\n"; $menus .= ' '."\n"; $menus .= ''."\n"; //======================================================= diff --git a/responsables/modify_resp.php b/responsables/modify_resp.php index e561b5f2d..9e53f57ac 100644 --- a/responsables/modify_resp.php +++ b/responsables/modify_resp.php @@ -1,7 +1,7 @@ \n"; echo "\n"; -if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='n')&&(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite"))) { - +if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='n')&& + ( + ($_SESSION['statut']=="administrateur")|| + (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| + (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) + ) + ) { echo "
    \n"; echo "

    Journal des connexions

    \n"; } -if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='y')&&(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite"))) { +if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='y')&& + ( + ($_SESSION['statut']=="administrateur")|| + (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| + (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) + ) + ) { echo "
    \n"; // Journal des connexions echo "\n"; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index d6f1c811d..9cececc2a 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -954,7 +954,7 @@ INSERT INTO `setting` VALUES ('sso_cas_table', 'no'); INSERT INTO droits VALUES ('/mod_sso_table/index.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Gestion de la table de correspondance sso', ''); INSERT INTO droits SET id='/gestion/changement_d_annee.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Changement d\'année.',statut=''; INSERT INTO droits VALUES ('/absences/import_absences_csv.php', 'F', 'F', 'V', 'F', 'F', 'F', 'V', 'F', 'Saisie des absences', ''); -INSERT INTO droits SET id='/statistiques/stat_connexions.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Statistiques de connexion',statut=''; +INSERT INTO droits SET id='/statistiques/stat_connexions.php',administrateur='V',professeur='F',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Statistiques de connexion',statut=''; INSERT INTO droits SET id='/groupes/check_enseignements.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Controle des enseignements',statut=''; INSERT INTO droits VALUES ('/bulletin/index.php', 'V', 'V', 'F', 'V', 'F', 'F', 'F', 'F', 'Edition des bulletins', '1'); INSERT INTO droits SET id='/lib/ajax_corriger_app.php',administrateur='F',professeur='V',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='V',description='Correction appreciation',statut=''; diff --git a/statistiques/export_donnees_bulletins.php b/statistiques/export_donnees_bulletins.php index 65fd5dcc1..e9db169ff 100644 --- a/statistiques/export_donnees_bulletins.php +++ b/statistiques/export_donnees_bulletins.php @@ -45,7 +45,7 @@ administrateur='V', professeur='F', cpe='F', -scolarite='F', +scolarite='V', eleve='F', responsable='F', secours='F', diff --git a/statistiques/index.php b/statistiques/index.php index d8ed2916c..248861885 100644 --- a/statistiques/index.php +++ b/statistiques/index.php @@ -73,9 +73,35 @@ echo "
      \n"; echo "
    • Classes, effectifs,...
    • \n"; if($_SESSION['statut']=='administrateur') { - echo "
    • Export de données des bulletins
    • \n"; + if(getSettingAOui('active_bulletins')) { + echo "
    • Export de données des bulletins
    • \n"; + } echo "
    • Statistiques de connexion
    • \n"; } +elseif($_SESSION['statut']=='scolarite') { + if(getSettingAOui('active_bulletins')) { + echo "
    • Export de données des bulletins
    • \n"; + } + if((getSettingAOui('AccesStatConnexionEleScolarite'))|| + (getSettingAOui('AccesDetailConnexionEleScolarite'))|| + (getSettingAOui('AccesStatConnexionRespScolarite'))|| + (getSettingAOui('AccesDetailConnexionRespScolarite'))) { + echo "
    • Statistiques de connexion
    • \n"; + } +} +elseif($_SESSION['statut']=='cpe') { + /* + if(getSettingAOui('active_bulletins')) { + echo "
    • Export de données des bulletins
    • \n"; + } + */ + if((getSettingAOui('AccesStatConnexionEleCpe'))|| + (getSettingAOui('AccesDetailConnexionEleCpe'))|| + (getSettingAOui('AccesStatConnexionRespCpe'))|| + (getSettingAOui('AccesDetailConnexionRespCpe'))) { + echo "
    • Statistiques de connexion
    • \n"; + } +} if(getSettingAOui('active_mod_discipline')) { if(acces("/mod_discipline/stats2/index.php", $_SESSION['statut'])) { diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index 901a749aa..eb7aa56a5 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -3,7 +3,7 @@ * * @version $Id$ * - * Copyright 2001, 2011 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun, Julien Jocal + * Copyright 2001, 2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun, Julien Jocal * * This file is part of GEPI. * @@ -45,8 +45,8 @@ $sql="INSERT INTO droits SET id='/statistiques/stat_connexions.php', administrateur='V', professeur='F', -cpe='F', -scolarite='F', +cpe='V', +scolarite='V', eleve='F', responsable='F', secours='F', @@ -61,7 +61,58 @@ die(); } + +if($_SESSION['statut']=='administrateur') { + // On n'a pas de restrictions +} +elseif($_SESSION['statut']=='scolarite') { + if((!getSettingAOui('AccesStatConnexionEleScolarite'))&& + (!getSettingAOui('AccesDetailConnexionEleScolarite'))&& + (!getSettingAOui('AccesStatConnexionRespScolarite'))&& + (!getSettingAOui('AccesDetailConnexionRespScolarite'))) { + header("Location: ../accueil.php?msg=Accès non autorisé."); + die(); + } +} +elseif($_SESSION['statut']=='cpe') { + if((!getSettingAOui('AccesStatConnexionEleCpe'))&& + (!getSettingAOui('AccesDetailConnexionEleCpe'))&& + (!getSettingAOui('AccesStatConnexionRespCpe'))&& + (!getSettingAOui('AccesDetailConnexionRespCpe'))) { + header("Location: ../accueil.php?msg=Accès non autorisé."); + die(); + } +} +else { + // On ne devrait pas arriver là pour le moment + header("Location: ../accueil.php?msg=Accès non autorisé."); + die(); +} + $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); +if(isset($mode)) { + if($_SESSION['statut']=='administrateur') { + // On n'a pas de restrictions + } + elseif($_SESSION['statut']=='scolarite') { + if(($mode==2)&&(!getSettingAOui('AccesStatConnexionRespScolarite'))&&(!getSettingAOui('AccesDetailConnexionRespScolarite'))) { + unset($mode); + } + + if(($mode==3)&&(!getSettingAOui('AccesStatConnexionEleScolarite'))&&(!getSettingAOui('AccesDetailConnexionEleScolarite'))) { + unset($mode); + } + } + elseif($_SESSION['statut']=='cpe') { + if(($mode==2)&&(!getSettingAOui('AccesStatConnexionRespCpe'))&&(!getSettingAOui('AccesDetailConnexionRespCpe'))) { + unset($mode); + } + if(($mode==3)&&(!getSettingAOui('AccesStatConnexionEleCpe'))&&(!getSettingAOui('AccesDetailConnexionEleCpe'))) { + unset($mode); + } + } +} + $id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL; $display_date_debut=isset($_POST['display_date_debut']) ? $_POST['display_date_debut'] : NULL; @@ -145,8 +196,16 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "

      Choisissez :

      \n"; echo "\n"; echo "

      Faire une autre graphique avec le nombre de connexions par semaine.

      "; @@ -825,35 +884,42 @@ function tracer_ligne(ctx,x1,y1,x2,y2) { \n"; - $ligne_date=""; - $ligne_eff=""; - $ligne_personnes=""; - $alt=1; - $tab_designation=array(); - foreach($tab_connexions as $date => $tab_login) { - $alt=$alt*(-1); - $ligne_date.="".formate_date($date).""; - $ligne_eff.="".count($tab_login['login']).""; - $ligne_personnes.=""; - for($loop=0;$loop $tab_login) { + $alt=$alt*(-1); + $ligne_date.="".formate_date($date).""; + $ligne_eff.="".count($tab_login['login']).""; + $ligne_personnes.=""; + for($loop=0;$loop"; } - $ligne_personnes.=$tab_designation[$tab_login['login'][$loop]]."
      "; + $ligne_personnes.=""; } - $ligne_personnes.=""; - } - $ligne_date.=""; - $ligne_eff.=""; - $ligne_personnes.=""; - echo " + $ligne_date.=""; + $ligne_eff.=""; + $ligne_personnes.=""; + echo "
      $ligne_date $ligne_eff $ligne_personnes
      "; + } } } } diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 6779171d1..7d2075f39 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -746,7 +746,7 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits SET id='/groupes/menage_eleves_groupes.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Groupes: Desinscription des eleves sans notes ni appreciations',statut='';"; -$tab_req[] = "INSERT INTO droits SET id='/eleves/export_donnees_bulletins.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Export de données des bulletins',statut='';"; +$tab_req[] = "INSERT INTO droits SET id='/statistiques/export_donnees_bulletins.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Export de données des bulletins',statut='';"; $tab_req[] = "INSERT INTO droits SET id='/statistiques/index.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Statistiques: Index',statut='';"; @@ -851,8 +851,8 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits SET id='/statistiques/stat_connexions.php', administrateur='V', professeur='F', -cpe='F', -scolarite='F', +cpe='V', +scolarite='V', eleve='F', responsable='F', secours='F', From 788c7b169890013d5d6c31338d9c114645b4942f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 29 Jul 2013 14:48:46 +0200 Subject: [PATCH 0926/1150] Correctif sur un effectif. --- statistiques/stat_connexions.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index 6f39fbc31..e339652a1 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -70,7 +70,7 @@ $sql="SELECT DISTINCT id, classe FROM classes ORDER BY classe;"; //echo "$sql
      \n"; $res_classes=mysql_query($sql); -$nb_classes=mysql_num_rows($res); +$nb_classes=mysql_num_rows($res_classes); if($nb_classes>0) { $tab_classe=array(); $cpt=0; From dac5d4cd2114634c41dd70495154b40b54d83276 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 29 Jul 2013 16:44:21 +0200 Subject: [PATCH 0927/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20donner=20l'ac?= =?UTF-8?q?c=C3=A8s=20aux=20statistiques,=20voire=20aux=20d=C3=A9tails=20d?= =?UTF-8?q?e=20connexion=20pour=20les=20comptes=20scolarit=C3=A9,=20cpe,?= =?UTF-8?q?=20professeurs=20principaux=20et/ou=20professeurs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 1 + eleves/modify_eleve.php | 33 +- eleves/visu_ele_func.lib.php | 22 +- eleves/visu_eleve.inc.php | 12 +- gestion/droits_acces.php | 56 +++- lib/header_barre_prof_template.php | 2 + lib/share.inc.php | 192 +++++++++++- responsables/modify_resp.php | 22 +- sql/data_gepi.sql | 2 +- statistiques/index.php | 25 ++ statistiques/stat_connexions.php | 365 ++++++++++++++++++---- utilitaires/updates/access_rights.inc.php | 2 +- 12 files changed, 625 insertions(+), 109 deletions(-) diff --git a/changelog.txt b/changelog.txt index 0dc21ed42..f6edf2763 100644 --- a/changelog.txt +++ b/changelog.txt @@ -36,6 +36,7 @@ Gestion: - Possibilité de donner l'accès à l'impression de leur Fiche Bienvenue pour les différents statuts depuis la page Gérer mon compte. - Possibilité de définir des messages d'information à faire apparaître dans 'Gérer mon compte' (messages éventuellement différents pour chaque statut). - Possibilité d'accéder à la date de dernière connexion d'élèves/responsables. +- Possibilité de donner l'accès aux statistiques, voire aux détails de connexion pour les comptes scolarité, cpe, professeurs principaux et/ou professeurs. Divers: - Ajout d'une page pour que les parents puissent contrôler les informations élève/resp. diff --git a/eleves/modify_eleve.php b/eleves/modify_eleve.php index cb2e79378..542cc907b 100644 --- a/eleves/modify_eleve.php +++ b/eleves/modify_eleve.php @@ -177,6 +177,12 @@ $rep_photos="../photos/eleves/"; } +$is_pp=false; +if(($_SESSION['statut']=="professeur")&&(isset($eleve_login))&&(is_pp($_SESSION['login'], "", $eleve_login))) { + $is_pp=true; + // Est-ce que dans le cas false, un prof peut accéder à cette page? +} + if(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite")) { // Le deuxième responsable prend l'adresse du premier if((isset($modif_adr_pers_id))&&(isset($adr_id))) { @@ -768,7 +774,7 @@ //================================================ } -elseif(($_SESSION['statut']=="professeur")||($_SESSION['statut']=="cpe")) { +elseif((($_SESSION['statut']=="professeur")&&($is_pp))||($_SESSION['statut']=="cpe")) { if (isset($_POST['is_posted']) and ($_POST['is_posted'] == "1")) { if(!isset($msg)){$msg="";} @@ -1621,7 +1627,7 @@ if (isset($motif_rech)) echo "\n"; if (isset($mode_rech)) echo "\n"; - if(isset($calldata)) { + if((isset($calldata))&&(mysql_num_rows($calldata)>0)) { echo " | \n"; } - elseif(isset($tab_eleve)) { + elseif((isset($tab_eleve))&&(count($tab_eleve)>0)) { echo " | \n"; if($_SESSION['statut']=='professeur'){ - if ((getSettingValue("active_module_trombinoscopes")=='y') && (getSettingValue("GepiAccesGestPhotoElevesProfP")=='yes')){ + if (($is_pp)&&(getSettingValue("active_module_trombinoscopes")=='y') && (getSettingValue("GepiAccesGestPhotoElevesProfP")=='yes')){ echo "
      \n"; } } @@ -2779,11 +2784,7 @@ function affiche_message_raffraichissement() { } if((isset($eleve_login))&&($compte_eleve_existe=="y")&&($journal_connexions=='n')&& - ( - ($_SESSION['statut']=="administrateur")|| - (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| - (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) - ) + ($AccesDetailConnexionEle) ) { echo "
      \n"; @@ -2793,11 +2794,7 @@ function affiche_message_raffraichissement() { if((isset($eleve_login))&&($compte_eleve_existe=="y")&&($journal_connexions=='y')&& - ( - ($_SESSION['statut']=="administrateur")|| - (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| - (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) - ) + ($AccesDetailConnexionEle) ) { echo "
      \n"; // Journal des connexions diff --git a/eleves/visu_ele_func.lib.php b/eleves/visu_ele_func.lib.php index e98c39ca6..0c7e3d983 100644 --- a/eleves/visu_ele_func.lib.php +++ b/eleves/visu_ele_func.lib.php @@ -108,6 +108,13 @@ function info_eleve($ele_login) { $tab_ele['lieu_naissance']=""; } + if($_SESSION['statut']=="professeur") { + $is_pp=is_pp($_SESSION['login'], "", $ele_login); + } + + $AccesDerniereConnexionEle=AccesDerniereConnexionEle($ele_login); + $AccesDerniereConnexionResp=AccesDerniereConnexionResp("", $ele_login); + $sql="SELECT * FROM utilisateurs WHERE statut='eleve' AND login='$ele_login';"; $res_user=mysql_query($sql); if(mysql_num_rows($res_user)==1) { @@ -119,10 +126,7 @@ function info_eleve($ele_login) { $tab_ele['compte_utilisateur'][$champ]=$lig_user->$champ; } - if(($_SESSION['statut']=='administrateur')|| - (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionEleScolarite')))|| - (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionEleCpe')))|| - (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionEleProfesseur')))) { + if($AccesDerniereConnexionEle) { $tab_ele['compte_utilisateur']['DerniereConnexionEle']=get_last_connexion($ele_login); $tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']=get_last_connexion($ele_login, "n"); } @@ -600,10 +604,7 @@ function info_eleve($ele_login) { $tab_ele['resp'][$cpt]['etat']=$lig_u->etat; $tab_ele['resp'][$cpt]['auth_mode']=$lig_u->auth_mode; - if(($_SESSION['statut']=='administrateur')|| - (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionRespScolarite')))|| - (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionRespCpe')))|| - (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionRespProfesseur')))) { + if($AccesDerniereConnexionResp) { $tab_ele['resp'][$cpt]['DerniereConnexionResp']=get_last_connexion($lig_resp->login); $tab_ele['resp'][$cpt]['DerniereConnexionResp_Echec']=get_last_connexion($lig_resp->login,"n"); } @@ -664,10 +665,7 @@ function info_eleve($ele_login) { $tab_ele['resp'][$cpt]['etat']=$lig_u->etat; $tab_ele['resp'][$cpt]['auth_mode']=$lig_u->auth_mode; - if(($_SESSION['statut']=='administrateur')|| - (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionRespScolarite')))|| - (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionRespCpe')))|| - (($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionRespProfesseur')))) { + if($AccesDerniereConnexionResp) { $tab_ele['resp'][$cpt]['DerniereConnexionResp']=get_last_connexion($lig_resp->login); $tab_ele['resp'][$cpt]['DerniereConnexionResp_Echec']=get_last_connexion($lig_resp->login,"n"); } diff --git a/eleves/visu_eleve.inc.php b/eleves/visu_eleve.inc.php index 4d70f91bc..733aa82d2 100644 --- a/eleves/visu_eleve.inc.php +++ b/eleves/visu_eleve.inc.php @@ -928,6 +928,7 @@ function passer_a_eleve(ele_login,id_classe) { // On extrait un tableau de l'ensemble des infos sur l'élève (bulletins, relevés de notes,... inclus) $tab_ele=info_eleve($ele_login); + $date_debut_log=get_date_debut_log(); /* echo "
      ";
       		print_r($tab_ele);
      @@ -1171,7 +1172,8 @@ function affiche_edt_en_infobulle() {
       		}
       
       		if(isset($tab_ele['compte_utilisateur'])) {
      -			if(in_array($_SESSION['statut'], array('administrateur', 'scolarite', 'cpe'))) {
      +			if((in_array($_SESSION['statut'], array('administrateur', 'scolarite', 'cpe')))||
      +			(($_SESSION['statut']=='professeur')&&((isset($tab_ele['compte_utilisateur']['DerniereConnexionEle']))||(isset($tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']))))) {
       				echo "
      \n"; echo "Compte\n"; echo "\n"; @@ -1187,12 +1189,12 @@ function affiche_edt_en_infobulle() { echo formate_date($tab_ele['compte_utilisateur']['DerniereConnexionEle']['START'], 'y'); } elseif(isset($tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']['START'])) { - echo ""; } @@ -1441,7 +1443,7 @@ function affiche_edt_en_infobulle() { echo "
      Dernière tentative de connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'], 'y').""; } else { - echo "
      Dernière connexion : "; + echo "
      Dernière connexion : "; } } echo "\n"; @@ -1610,7 +1612,7 @@ function affiche_edt_en_infobulle() { echo "
      Dernière tentative de connexion : ".formate_date($tab_ele['resp'][$i]['DerniereConnexionResp_Echec']['START'], 'y').""; } else { - echo "
      Dernière connexion : "; + echo "
      Dernière connexion : "; } } echo "\n"; diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index f3b9d0297..d11030ae3 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -198,16 +198,38 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; + $titreItem='AccesDerniereConnexionEleProfesseur'; $texteItem="a accès à la date de la dernière connexion des ".$gepiSettings['denomination_eleves']." dont il est professeur."; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesStatConnexionEleProfesseur'; +$texteItem="a accès aux statistiques de connexion des ".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDetailConnexionEleProfesseur'; +$texteItem="a accès au détail de connexion des ".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + $titreItem='AccesDerniereConnexionRespProfesseur'; -$texteItem="a accès à la date de la dernière connexion des responsables d'".$gepiSettings['denomination_eleves']." dont il est professeur."; +$texteItem="a accès à la date de la dernière connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est professeur."; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='AccesStatConnexionRespProfesseur'; +$texteItem="a accès aux statistiques de connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDetailConnexionRespProfesseur'; +$texteItem="a accès au détail de connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est professeur."; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + + $titreItem='AccesProf_EdtProfs'; $texteItem="a accès aux emplois du temps des autres professeurs (sous réserve que le module EDT soit activé)"; if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) @@ -397,6 +419,38 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDerniereConnexionEleProfP'; +$texteItem="a accès à la date de la dernière connexion des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesStatConnexionEleProfP'; +$texteItem="a accès aux statistiques de connexion des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDetailConnexionEleProfP'; +$texteItem="a accès au détail de connexion des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDerniereConnexionRespProfP'; +$texteItem="a accès à la date de la dernière connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesStatConnexionRespProfP'; +$texteItem="a accès aux statistiques de connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + +$titreItem='AccesDetailConnexionRespProfP'; +$texteItem="a accès au détail de connexion des responsables des ".$gepiSettings['denomination_eleves']." dont il est ".getSettingValue("gepi_prof_suivi"); +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + + //+++++++++++++++++++++++++++ $titreItem=''; diff --git a/lib/header_barre_prof_template.php b/lib/header_barre_prof_template.php index b49428529..f4aa0b7e9 100644 --- a/lib/header_barre_prof_template.php +++ b/lib/header_barre_prof_template.php @@ -642,6 +642,8 @@ $tmp_sous_menu[$cpt_sous_menu]['niveau_sous_menu']=3; $cpt_sous_menu++; + $tmp_sous_menu[$cpt_sous_menu]=array("lien"=> '/statistiques/index.php' , "texte"=>"Statistiques"); + $cpt_sous_menu++; $tbs_menu_prof[$compteur_menu]['sous_menu']=$tmp_sous_menu; $tbs_menu_prof[$compteur_menu]['niveau_sous_menu']=2; diff --git a/lib/share.inc.php b/lib/share.inc.php index da732d40d..7fa7735ca 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -4355,9 +4355,11 @@ function lignes_options_select_eleve($id_classe,$login_eleve_courant,$sql_ele="" * @param type string $login_prof login de l'utilisateur à tester * @param type integer $id_classe identifiant de la classe * @param type string $login_eleve login de l'élève + * @param type integer $num_periode numéro de la période + * @param type string $login_resp login d'un responsable de l'élève * @return boolean */ -function is_pp($login_prof,$id_classe="",$login_eleve="", $num_periode="") { +function is_pp($login_prof,$id_classe="",$login_eleve="", $num_periode="", $login_resp="") { $retour=FALSE; if($login_eleve=='') { @@ -4365,6 +4367,17 @@ function is_pp($login_prof,$id_classe="",$login_eleve="", $num_periode="") { if($id_classe!="") {$sql.="id_classe='$id_classe' AND ";} $sql.="professeur='$login_prof';"; } + elseif($login_resp!="") { + $sql="SELECT 1=1 FROM j_eleves_professeurs jep, + eleves e, + responsables2 r, + resp_pers rp + WHERE jep.professeur='".$login_prof."' AND + jep.login=e.login AND + e.ele_id=r.ele_id AND + r.pers_id=rp.pers_id AND + rp.login='$login_resp'"; + } else { $sql="SELECT 1=1 FROM j_eleves_professeurs WHERE "; if($id_classe!="") {$sql.="id_classe='$id_classe' AND ";} @@ -7732,4 +7745,181 @@ function get_etat_et_img_cdt_travail_fait($id_ct) { $texte_etat_travail="NON FAIT: Le travail n'est actuellement pas fait.\nCliquer pour pointer le travail comme fait."; } } + +function is_prof_ele($login_prof, $login_ele="", $login_resp="", $id_classe="") { + $is_prof_ele=false; + + if($login_ele!="") { + $sql="SELECT 1=1 FROM j_eleves_groupes jeg, + j_groupes_professeurs jgp + WHERE jgp.login='".$login_prof."' AND + jgp.id_groupe=jeg.id_groupe AND + jeg.login='$login_ele' LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $is_prof_ele=true; + } + } + elseif($login_resp!="") { + $sql="SELECT 1=1 FROM j_eleves_groupes jeg, + j_groupes_professeurs jgp, + eleves e, + responsables2 r, + resp_pers rp + WHERE jgp.login='".$login_prof."' AND + jgp.id_groupe=jeg.id_groupe AND + jeg.login=e.login AND + e.ele_id=r.ele_id AND + r.pers_id=rp.pers_id AND + rp.login='$login_resp' LIMIT 1"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $is_prof_ele=true; + } + } + elseif($id_classe!="") { + $is_prof_ele=is_prof_classe($login_prof, $id_classe); + } + else { + // Est-ce un prof avec des élèves? + $sql="SELECT 1=1 FROM j_eleves_groupes jeg, + j_groupes_professeurs jgp + WHERE jgp.login='".$login_prof."' AND + jgp.id_groupe=jeg.id_groupe LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $is_prof_ele=true; + } + } + + return $is_prof_ele; +} + +function is_prof_classe($login_prof, $id_classe) { + $is_prof_classe=false; + + $sql="SELECT 1=1 FROM j_groupes_classes jgc, + j_groupes_professeurs jgp + WHERE jgp.login='".$login_prof."' AND + jgp.id_groupe=jgc.id_groupe AND + jgc.id_classe='$id_classe' LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $is_prof_classe=true; + } + + return $is_prof_classe; +} + +function AccesDerniereConnexionEle($login_ele) { + $AccesDerniereConnexionEle=false; + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionEleScolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionEleCpe')))|| + (($_SESSION['statut']=='professeur')&&(is_prof_ele($_SESSION['login'], $login_ele))&&((getSettingAOui('AccesDerniereConnexionEleProfesseur'))||(getSettingAOui('AccesDetailConnexionEleProfesseur'))))|| + (($_SESSION['statut']=='professeur')&&(is_pp($_SESSION['login'], "", $login_ele))&&((getSettingAOui('AccesDerniereConnexionEleProfP'))||(getSettingAOui('AccesDetailConnexionEleProfP'))))) { + $AccesDerniereConnexionEle=true; + } + return $AccesDerniereConnexionEle; +} + +function AccesDerniereConnexionResp($login_resp, $login_ele="") { + $is_pp=false; + $is_prof_ele=false; + if($login_ele=="") { + if(($_SESSION['statut']=='professeur')&&((getSettingAOui('AccesDerniereConnexionRespProfesseur'))||(getSettingAOui('AccesDetailConnexionRespProfesseur')))) { + $is_prof_ele=is_prof_ele($_SESSION['login'], "", $login_resp); + } + + if(($_SESSION['statut']=='professeur')&&((getSettingAOui('AccesDerniereConnexionRespProfP'))||(getSettingAOui('AccesDetailConnexionRespProfP')))) { + $is_pp=is_pp($_SESSION['login'], "", "", "", $login_resp); + } + } + else { + if(($_SESSION['statut']=='professeur')&&((getSettingAOui('AccesDerniereConnexionRespProfesseur'))||(getSettingAOui('AccesDetailConnexionRespProfesseur')))) { + $is_prof_ele=is_prof_ele($_SESSION['login'], $login_ele); + } + + if(($_SESSION['statut']=='professeur')&&(getSettingAOui('AccesDerniereConnexionRespProfP'))) { + $is_pp=is_pp($_SESSION['login'], "", $login_ele); + } + } + + $AccesDerniereConnexionResp=false; + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui('AccesDerniereConnexionRespScolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui('AccesDerniereConnexionRespCpe')))|| + (($_SESSION['statut']=='professeur')&&($is_prof_ele)&&((getSettingAOui('AccesDerniereConnexionRespProfesseur'))||(getSettingAOui('AccesDetailConnexionRespProfesseur'))))|| + (($_SESSION['statut']=='professeur')&&($is_pp)&&((getSettingAOui('AccesDerniereConnexionRespProfP'))||(getSettingAOui('AccesDetailConnexionRespProfP'))))) { + $AccesDerniereConnexionResp=true; + } + return $AccesDerniereConnexionResp; +} + +function AccesInfoEle($mode, $login_ele="", $id_classe="") { + $AccesInfoEle=false; + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui($mode.'Scolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui($mode.'Cpe')))|| + (($_SESSION['statut']=='professeur')&&(is_prof_ele($_SESSION['login'], $login_ele, "", $id_classe))&&(getSettingAOui($mode.'Professeur')))|| + (($_SESSION['statut']=='professeur')&&(is_pp($_SESSION['login'], $id_classe, $login_ele))&&(getSettingAOui($mode.'ProfP')))) { + $AccesInfoEle=true; + } + return $AccesInfoEle; +} + +function AccesInfoResp($mode, $login_resp="", $login_ele="", $id_classe="") { + $is_pp=false; + $is_prof_ele=false; + if($login_resp!="") { + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'Professeur'))) { + $is_prof_ele=is_prof_ele($_SESSION['login'], "", $login_resp); + } + + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'ProfP'))) { + $is_pp=is_pp($_SESSION['login'], "", "", "", $login_resp); + } + } + elseif($id_classe!="") { + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'Professeur'))) { + $is_prof_ele=is_prof_ele($_SESSION['login'], $login_ele, "", $id_classe); + } + + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'ProfP'))) { + $is_pp=is_pp($_SESSION['login'], $id_classe, $login_ele); + } + } + else { + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'Professeur'))) { + $is_prof_ele=is_prof_ele($_SESSION['login'], $login_ele); + } + + if(($_SESSION['statut']=='professeur')&&(getSettingAOui($mode.'ProfP'))) { + $is_pp=is_pp($_SESSION['login'], "", $login_ele); + } + } + + $AccesInfoResp=false; + if(($_SESSION['statut']=='administrateur')|| + (($_SESSION['statut']=='scolarite')&&(getSettingAOui($mode.'Scolarite')))|| + (($_SESSION['statut']=='cpe')&&(getSettingAOui($mode.'Cpe')))|| + (($_SESSION['statut']=='professeur')&&($is_prof_ele)&&(getSettingAOui($mode.'Professeur')))|| + (($_SESSION['statut']=='professeur')&&($is_pp)&&(getSettingAOui($mode.'ProfP')))) { + $AccesInfoResp=true; + } + return $AccesInfoResp; +} + +function get_date_debut_log() { + $retour=""; + + $sql="SELECT START FROM log ORDER BY START LIMIT 1;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $retour=formate_date(mysql_result($res, 0, "START"), "y"); + } + + return $retour; +} + ?> diff --git a/responsables/modify_resp.php b/responsables/modify_resp.php index 9e53f57ac..9a8c411f2 100644 --- a/responsables/modify_resp.php +++ b/responsables/modify_resp.php @@ -780,6 +780,8 @@ function refresh_opener() { if (!isset($tel_prof)) $tel_prof=''; if (!isset($mel)) $mel=''; +$AccesDetailConnexionResp=false; + echo "
      Dernière tentative de connexion :"; + echo "
      Dernière tentative de connexion :"; echo formate_date($tab_ele['compte_utilisateur']['DerniereConnexionEle_Echec']['START'], 'y'); } else { echo "
      Dernière connexion :"; - echo ""; + echo ""; } echo "
      \n"; echo "\n"; // Colonne nom, prénom, adresse, tel du responsable: @@ -803,6 +805,8 @@ function refresh_opener() { $resp_u_email=$lig_resp_login->email; $resp_auth_mode=$lig_resp_login->auth_mode; + $AccesDetailConnexionResp=AccesInfoResp('AccesDetailConnexionResp', $resp_login); + if($_SESSION['statut']=='administrateur') {$avec_lien="y";} else {$avec_lien="n";} $lien_image_compte_utilisateur=lien_image_compte_utilisateur($resp_login, "responsable", "_blank", $avec_lien); @@ -848,11 +852,7 @@ function refresh_opener() { } if(($compte_resp_existe=="y")&& - ( - ($_SESSION['statut']=="administrateur")|| - (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| - (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) - ) + ($AccesDetailConnexionResp) ) { $journal_connexions=isset($_POST['journal_connexions']) ? $_POST['journal_connexions'] : (isset($_GET['journal_connexions']) ? $_GET['journal_connexions'] : 'n'); $duree=isset($_POST['duree']) ? $_POST['duree'] : NULL; @@ -1231,22 +1231,14 @@ function creer_pers_id_puis_choisir_adr_exist(theLink, thechange, themessage){ echo "\n"; if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='n')&& - ( - ($_SESSION['statut']=="administrateur")|| - (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| - (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) - ) + ($AccesDetailConnexionResp) ) { echo "
      \n"; echo "

      Journal des connexions

      \n"; } if((isset($pers_id))&&($compte_resp_existe=="y")&&($journal_connexions=='y')&& - ( - ($_SESSION['statut']=="administrateur")|| - (($_SESSION['statut']=="scolarite")&&(getSettingAOui('AccesDetailConnexionEleScolarite')))|| - (($_SESSION['statut']=="cpe")&&(getSettingAOui('AccesDetailConnexionEleCpe'))) - ) + ($AccesDetailConnexionResp) ) { echo "
      \n"; // Journal des connexions diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index 9cececc2a..eb8eb092c 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -954,7 +954,7 @@ INSERT INTO `setting` VALUES ('sso_cas_table', 'no'); INSERT INTO droits VALUES ('/mod_sso_table/index.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Gestion de la table de correspondance sso', ''); INSERT INTO droits SET id='/gestion/changement_d_annee.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Changement d\'année.',statut=''; INSERT INTO droits VALUES ('/absences/import_absences_csv.php', 'F', 'F', 'V', 'F', 'F', 'F', 'V', 'F', 'Saisie des absences', ''); -INSERT INTO droits SET id='/statistiques/stat_connexions.php',administrateur='V',professeur='F',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Statistiques de connexion',statut=''; +INSERT INTO droits SET id='/statistiques/stat_connexions.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Statistiques de connexion',statut=''; INSERT INTO droits SET id='/groupes/check_enseignements.php',administrateur='V',professeur='F',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Controle des enseignements',statut=''; INSERT INTO droits VALUES ('/bulletin/index.php', 'V', 'V', 'F', 'V', 'F', 'F', 'F', 'F', 'Edition des bulletins', '1'); INSERT INTO droits SET id='/lib/ajax_corriger_app.php',administrateur='F',professeur='V',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='V',description='Correction appreciation',statut=''; diff --git a/statistiques/index.php b/statistiques/index.php index 248861885..2645ade22 100644 --- a/statistiques/index.php +++ b/statistiques/index.php @@ -102,6 +102,31 @@ echo "
    • Statistiques de connexion
    • \n"; } } +elseif($_SESSION['statut']=='professeur') { + $acces="n"; + + if((getSettingAOui('AccesStatConnexionEleProfesseur'))|| + (getSettingAOui('AccesDetailConnexionEleProfesseur'))|| + (getSettingAOui('AccesStatConnexionRespProfesseur'))|| + (getSettingAOui('AccesDetailConnexionRespProfesseur'))) { + $acces="y"; + } + + if($acces=="n") { + if(is_pp($_SESSION['login'])) { + if((getSettingAOui('AccesStatConnexionEleProfP'))|| + (getSettingAOui('AccesDetailConnexionEleProfP'))|| + (getSettingAOui('AccesStatConnexionRespProfP'))|| + (getSettingAOui('AccesDetailConnexionRespProfP'))) { + $acces="y"; + } + } + } + + if($acces=="y") { + echo "
    • Statistiques de connexion
    • \n"; + } +} if(getSettingAOui('active_mod_discipline')) { if(acces("/mod_discipline/stats2/index.php", $_SESSION['statut'])) { diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index 4825f0f12..99f57dc00 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -44,7 +44,7 @@ if(mysql_num_rows($test)==0) { $sql="INSERT INTO droits SET id='/statistiques/stat_connexions.php', administrateur='V', -professeur='F', +professeur='V', cpe='V', scolarite='V', eleve='F', @@ -83,6 +83,32 @@ die(); } } +elseif($_SESSION['statut']=='professeur') { + $acces="n"; + + if((getSettingAOui('AccesStatConnexionEleProfesseur'))|| + (getSettingAOui('AccesDetailConnexionEleProfesseur'))|| + (getSettingAOui('AccesStatConnexionRespProfesseur'))|| + (getSettingAOui('AccesDetailConnexionRespProfesseur'))) { + $acces="y"; + } + + if($acces=="n") { + if(is_pp($_SESSION['login'])) { + if((getSettingAOui('AccesStatConnexionEleProfP'))|| + (getSettingAOui('AccesDetailConnexionEleProfP'))|| + (getSettingAOui('AccesStatConnexionRespProfP'))|| + (getSettingAOui('AccesDetailConnexionRespProfP'))) { + $acces="y"; + } + } + } + + if($acces=="n") { + header("Location: ../accueil.php?msg=Accès non autorisé."); + die(); + } +} else { // On ne devrait pas arriver là pour le moment header("Location: ../accueil.php?msg=Accès non autorisé."); @@ -90,6 +116,8 @@ } $mode=isset($_POST['mode']) ? $_POST['mode'] : (isset($_GET['mode']) ? $_GET['mode'] : NULL); +$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL; + if(isset($mode)) { if($_SESSION['statut']=='administrateur') { // On n'a pas de restrictions @@ -111,17 +139,174 @@ unset($mode); } } -} + elseif($_SESSION['statut']=='professeur') { + if($mode==2) { + if(!isset($id_classe)) { + $is_pp=is_pp($_SESSION['login']); -$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL; + $acces="n"; + if((getSettingAOui('AccesStatConnexionRespProfesseur'))||(getSettingAOui('AccesDetailConnexionRespProfesseur'))|| + (($is_pp)&&((getSettingAOui('AccesStatConnexionRespProfP'))||(getSettingAOui('AccesDetailConnexionRespProfP'))))) { + $acces="y"; + } + + if($acces=="n") { + unset($mode); + $msg="Accès non autorisé
      "; + } + } + else { + $is_pp=is_pp($_SESSION['login'], $id_classe); + $is_prof_classe=is_prof_classe($_SESSION['login'], $id_classe); + + $acces="n"; + if(($is_prof_classe)&&(getSettingAOui('AccesStatConnexionRespProfesseur'))||(getSettingAOui('AccesDetailConnexionRespProfesseur'))|| + (($is_pp)&&((getSettingAOui('AccesStatConnexionRespProfP'))||(getSettingAOui('AccesDetailConnexionRespProfP'))))) { + $acces="y"; + } + + if($acces=="n") { + unset($mode); + $msg="Accès non autorisé
      "; + } + } + } + + if($mode==3) { + if(!isset($id_classe)) { + $is_pp=is_pp($_SESSION['login']); + + $acces="n"; + if((getSettingAOui('AccesStatConnexionEleProfesseur'))||(getSettingAOui('AccesDetailConnexionEleProfesseur'))|| + (($is_pp)&&((getSettingAOui('AccesStatConnexionEleProfP'))||(getSettingAOui('AccesDetailConnexionEleProfP'))))) { + $acces="y"; + } + + if($acces=="n") { + unset($mode); + $msg="Accès non autorisé
      "; + } + } + else { + $is_pp=is_pp($_SESSION['login'], $id_classe); + $is_prof_classe=is_prof_classe($_SESSION['login'], $id_classe); + + $acces="n"; + if(($is_prof_classe)&&(getSettingAOui('AccesStatConnexionEleProfesseur'))||(getSettingAOui('AccesDetailConnexionEleProfesseur'))|| + (($is_pp)&&((getSettingAOui('AccesStatConnexionEleProfP'))||(getSettingAOui('AccesDetailConnexionEleProfP'))))) { + $acces="y"; + } + + if($acces=="n") { + unset($mode); + $msg="Accès non autorisé
      "; + } + } + } + } +} $display_date_debut=isset($_POST['display_date_debut']) ? $_POST['display_date_debut'] : NULL; $display_date_fin=isset($_POST['display_date_fin']) ? $_POST['display_date_fin'] : NULL; + $sql="SELECT DISTINCT id, classe FROM classes ORDER BY classe;"; //echo "$sql
      \n"; $res_classes=mysql_query($sql); +$nb_classes_0=mysql_num_rows($res_classes); + +if($_SESSION['statut']=='administrateur') { + $sql="SELECT DISTINCT id, classe FROM classes ORDER BY classe;"; +} +elseif($_SESSION['statut']=='scolarite') { + $sql="SELECT DISTINCT c.id, c.classe FROM classes c, j_scol_classes jsc WHERE c.id=jsc.id_classe AND jsc.login='".$_SESSION['login']."' ORDER BY c.classe;"; +} +elseif($_SESSION['statut']=='cpe') { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_eleves_cpe jec,j_eleves_classes jecl WHERE jec.cpe_login = '".$_SESSION['login']."' AND jec.e_login=jecl.login AND jecl.id_classe=c.id ORDER BY c.classe"; +} +elseif($_SESSION['statut']=='professeur') { + //*********** + // A FAIRE + //*********** + // Il faut restreindre la liste des classes selon qu'on a donné des accès PP ou Prof + if(!isset($mode)) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgp.login = '".$_SESSION['login']."' AND jgp.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY c.classe"; + } + elseif($mode==1) { + if((getSettingAOui('AccesStatConnexionEleProfesseur'))|| + (getSettingAOui('AccesStatConnexionRespProfesseur'))|| + (getSettingAOui('AccesDetailConnexionEleProfesseur'))|| + (getSettingAOui('AccesDetailConnexionRespProfesseur')) + ) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgp.login = '".$_SESSION['login']."' AND jgp.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY c.classe"; + } + elseif((is_pp($_SESSION['login']))&&( + (getSettingAOui('AccesStatConnexionEleProfP'))|| + (getSettingAOui('AccesStatConnexionRespProfP'))|| + (getSettingAOui('AccesDetailConnexionEleProfP'))|| + (getSettingAOui('AccesDetailConnexionRespProfP')) + )) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_eleves_classes jec, j_eleves_professeurs jep WHERE jep.professeur = '".$_SESSION['login']."' AND jep.login=jec.login AND jec.id_classe=c.id ORDER BY c.classe"; + } + else { + header("Location: ./index.php?msg=Aucune classe n'a été trouvée pour vous."); + die(); + } + } + elseif($mode==2) { + if((getSettingAOui('AccesStatConnexionRespProfesseur'))|| + (getSettingAOui('AccesDetailConnexionRespProfesseur')) + ) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgp.login = '".$_SESSION['login']."' AND jgp.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY c.classe"; + } + elseif((is_pp($_SESSION['login']))&&( + (getSettingAOui('AccesStatConnexionRespProfP'))|| + (getSettingAOui('AccesDetailConnexionRespProfP')) + )) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_eleves_classes jec, j_eleves_professeurs jep WHERE jep.professeur = '".$_SESSION['login']."' AND jep.login=jec.login AND jec.id_classe=c.id ORDER BY c.classe"; + } + else { + header("Location: ./index.php?msg=Aucune classe n'a été trouvée pour vous."); + die(); + } + } + elseif($mode==3) { + if((getSettingAOui('AccesStatConnexionEleProfesseur'))|| + (getSettingAOui('AccesDetailConnexionEleProfesseur')) + ) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgp.login = '".$_SESSION['login']."' AND jgp.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY c.classe"; + } + elseif((is_pp($_SESSION['login']))&&( + (getSettingAOui('AccesStatConnexionEleProfP'))|| + (getSettingAOui('AccesDetailConnexionEleProfP')) + )) { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_eleves_classes jec, j_eleves_professeurs jep WHERE jep.professeur = '".$_SESSION['login']."' AND jep.login=jec.login AND jec.id_classe=c.id ORDER BY c.classe"; + } + else { + header("Location: ./index.php?msg=Aucune classe n'a été trouvée pour vous."); + die(); + } + } + else { + // On ne devrait pas arriver là + $sql="SELECT DISTINCT c.id,c.classe FROM classes c,j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgp.login = '".$_SESSION['login']."' AND jgp.id_groupe=jgc.id_groupe AND jgc.id_classe=c.id ORDER BY c.classe"; + } +} +else { + // On ne devrait pas arriver là. + header("Location: ../accueil.php?msg=Accès non autorisé."); + die(); +} +//echo "$sql
      \n"; +$res_classes=mysql_query($sql); $nb_classes=mysql_num_rows($res_classes); + +$acces_toutes_classes="n"; +if($nb_classes==$nb_classes_0) { + $acces_toutes_classes="y"; +} +//echo "\$acces_toutes_classes=$acces_toutes_classes
      "; + if($nb_classes>0) { $tab_classe=array(); $cpt=0; @@ -183,6 +368,11 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { # 4 : logout lié à une nouvelle connexion sous un nouveau profil */ +$AccesStatConnexionEle=AccesInfoEle("AccesStatConnexionEle"); +$AccesDetailConnexionEle=AccesInfoEle("AccesDetailConnexionEle"); +$AccesStatConnexionResp=AccesInfoResp("AccesStatConnexionResp"); +$AccesDetailConnexionResp=AccesInfoResp("AccesDetailConnexionResp"); + if(!isset($mode)) { echo "

      Retour Retour

      \n"; @@ -196,14 +386,10 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "

      Choisissez :

      \n"; echo "
        \n"; echo "
      • Statistiques globales de connexions élèves et responsables
      • \n"; - if(($_SESSION['statut']=='administrateur')|| - (($_SESSION['statut']=='scolarite')&&((getSettingAOui('AccesStatConnexionRespScolarite'))||(getSettingAOui('AccesDetailConnexionRespScolarite'))))|| - (($_SESSION['statut']=='cpe')&&((getSettingAOui('AccesStatConnexionRespCpe'))||(getSettingAOui('AccesDetailConnexionRespCpe'))))) { + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { echo "
      • Statistiques des connexions parents d'une classe
      • \n"; } - if(($_SESSION['statut']=='administrateur')|| - (($_SESSION['statut']=='scolarite')&&((getSettingAOui('AccesStatConnexionEleScolarite'))||(getSettingAOui('AccesDetailConnexionEleScolarite'))))|| - (($_SESSION['statut']=='cpe')&&((getSettingAOui('AccesStatConnexionEleCpe'))||(getSettingAOui('AccesDetailConnexionEleCpe'))))) { + if(($AccesStatConnexionEle)||($AccesDetailConnexionEle)) { echo "
      • Statistiques des connexions élèves d'une classe
      • \n"; } echo "
      \n"; @@ -231,7 +417,7 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "

      Aucun compte parent n'a encore essayé de (ou réussi à) se connecter.

      \n"; } else { - echo "

      ".mysql_num_rows($res)." parent(s) a(ont) réussi à se connecter à ce jour.

      \n"; + echo "

      ".mysql_num_rows($res)." parent(s) a(ont) réussi à se connecter à ce jour (pour toutes les classes de l'établissement).

      \n"; $tab_parents_connectes_avec_succes=array(); while($lig=mysql_fetch_object($res)) { @@ -294,6 +480,14 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "\n"; $alt=1; for($i=0;$i='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; //echo "$sql
      "; $res=mysql_query($sql); @@ -304,10 +498,13 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $tab_ele[]=$lig->login; } } - $titre_infobulle="Elèves connectés au moins une fois (".$tab_classe[$i]['classe'].")\n"; - $texte_infobulle="
      ".tableau_php_tableau_html($tab_ele)."
      "; - $tabdiv_infobulle[]=creer_div_infobulle('div_ele_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); - + + if(($AccesStatConnexionEle)||($AccesDetailConnexionEle)) { + $titre_infobulle="Elèves connectés au moins une fois (".$tab_classe[$i]['classe'].")\n"; + $texte_infobulle="
      ".tableau_php_tableau_html($tab_ele)."
      "; + $tabdiv_infobulle[]=creer_div_infobulle('div_ele_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); + } + $sql="SELECT DISTINCT l.login FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; //echo "$sql
      "; $res=mysql_query($sql); @@ -324,10 +521,12 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { print_r($tab_resp); } */ - $titre_infobulle="Parents connectés au moins une fois\n"; - $texte_infobulle="
      ".tableau_php_tableau_html($tab_resp)."
      "; - $tabdiv_infobulle[]=creer_div_infobulle('div_resp_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); - + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { + $titre_infobulle="Parents connectés au moins une fois\n"; + $texte_infobulle="
      ".tableau_php_tableau_html($tab_resp)."
      "; + $tabdiv_infobulle[]=creer_div_infobulle('div_resp_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); + } + $sql="SELECT DISTINCT l.login, r.pers_id FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose='4' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; //echo "$sql
      "; $res=mysql_query($sql); @@ -341,7 +540,9 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes[]=$lig->login; if(!in_array($lig->login, $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes)) { - $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes[]=$lig->login; + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { + $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes[]=$lig->login; + } $sql="SELECT DISTINCT ele_id FROM responsables2 WHERE pers_id='$lig->pers_id';"; $res2=mysql_query($sql); @@ -361,9 +562,11 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { print_r($tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes); } */ - $titre_infobulle="Parents en échec de connexion\n"; - $texte_infobulle="
      ".tableau_php_tableau_html($tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes)."
      "; - $tabdiv_infobulle[]=creer_div_infobulle('div_resp_echec_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { + $titre_infobulle="Parents en échec de connexion\n"; + $texte_infobulle="
      ".tableau_php_tableau_html($tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes)."
      "; + $tabdiv_infobulle[]=creer_div_infobulle('div_resp_echec_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); + } // ********************************************************************************************** /* @@ -405,11 +608,15 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { if($nb_ele>0) { echo "
      \n"; echo "\n"; echo "\n"; + flush(); } $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes=count($tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes); - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; - echo "\n"; + if($acces_toutes_classes=="y") { + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } echo "
      "; - //echo ""; - echo ""; - echo $nb_ele."/".$tab_classe[$i]['effectif']; + if(($AccesStatConnexionEle)||($AccesDetailConnexionEle)) { + echo ""; + echo $nb_ele."/".$tab_classe[$i]['effectif']; + echo ""; + } + else { + echo $nb_ele."/".$tab_classe[$i]['effectif']; + } $effectif_total_eleve_connectes+=$nb_ele; - echo ""; echo "\n"; echo (round(100*10*$nb_ele/$tab_classe[$i]['effectif'])/10); @@ -427,11 +634,14 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo ""; if($nb_parents>0) { - //echo ""; - echo ""; - echo $nb_parents; - //echo "
      ".(round(100*10*$nb_parents/$tab_classe[$i]['effectif'])/10)."%"; - echo "
      "; + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { + echo ""; + echo $nb_parents; + echo ""; + } + else { + echo $nb_parents; + } } else { echo $nb_parents; @@ -459,31 +669,37 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "
      "; if($nb_parents_erreur_mdp_et_jamais_connectes_avec_succes>0) { - //echo ""; - echo ""; - echo $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes; - //echo "
      ".(round(100*10*$nb_parents_erreur_mdp_et_jamais_connectes_avec_succes/$tab_classe[$i]['effectif'])/10)."%"; - echo "
      "; + if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { + echo ""; + echo $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes; + echo ""; + } + else { + echo $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes; + } } else { echo $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes; } echo "
      Total$effectif_total_eleve$effectif_total_eleve_connectes".(100*round($effectif_total_eleve_connectes/$effectif_total_eleve,3))."".count($tab_parents_connectes_avec_succes)."$nb_parents_differents_toutes_classes-".$nb_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes."
      Total$effectif_total_eleve$effectif_total_eleve_connectes".(100*round($effectif_total_eleve_connectes/$effectif_total_eleve,3))."".count($tab_parents_connectes_avec_succes)."$nb_parents_differents_toutes_classes-".$nb_parents_erreur_mdp_et_jamais_connectes_avec_succes_toutes_classes."
      \n"; @@ -573,14 +789,36 @@ function afficher_div_stat(id) { // ================================= // AJOUT: boireaus $chaine_options_classes=""; - $sql="SELECT id, classe FROM classes ORDER BY classe"; - $res_class_tmp=mysql_query($sql); - if(mysql_num_rows($res_class_tmp)>0){ + + if(count($tab_classe)>0) { $id_class_prec=0; $id_class_suiv=0; $temoin_tmp=0; - $cpt_classe=0; + //$cpt_classe=0; $num_classe=-1; + for($loop=0;$loop + $num_classe=$loop; + + $chaine_options_classes.="\n"; + $temoin_tmp=1; + if($loop+1".$tab_classe[$loop]['classe']."\n"; + } + + if($temoin_tmp==0){ + $id_class_prec=$tab_classe[$loop]['id']; + } + } + /* while($lig_class_tmp=mysql_fetch_object($res_class_tmp)){ if((isset($id_classe))&&($lig_class_tmp->id==$id_classe)) { // Index de la classe dans les
      \n"; echo "

      Affichage pour un élève : ".civ_nom_prenom($login_eleve)." ($classe)

      \n"; @@ -529,7 +590,34 @@ function aff_debug($tableau){ $groups=get_groups_for_prof($login_prof); // Passage à la semaine précédente/courante/suivante - echo "\n"; + include("../lib/calendrier/calendrier.class.php"); + $cal1 = new Calendrier("form_choix_date", "today_jjmmaaaa"); + + echo "
      +
      + + + + Aujourd'hui + get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170).";\">\"Calendrier + - Semaines précédente / suivante +
      + + +
      \n"; echo "

      Affichage pour un professeur : ".$tab_profs2[$login_prof]."

      \n"; } From 77f5d568659abf2784bc7aab893f89c9e3f0445f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Aug 2013 15:10:02 +0200 Subject: [PATCH 0932/1150] Affichage de la moyenne annuelle. --- cahier_notes/toutes_notes.php | 279 ++++++++++++++++++++++------------ 1 file changed, 183 insertions(+), 96 deletions(-) diff --git a/cahier_notes/toutes_notes.php b/cahier_notes/toutes_notes.php index dcde83550..4eda0aec2 100644 --- a/cahier_notes/toutes_notes.php +++ b/cahier_notes/toutes_notes.php @@ -335,6 +335,14 @@ function confirm_changement_classe(thechange, themessage) echo "
      ".ucfirst($nom_periode[$num_per])."
      \n"; $num_per++; } + +// Année +if($avec_moy_bull=="y") { + echo "
      Année
      \n"; +} +else { + echo "
      Année
      \n"; +} echo "\n"; // Affichage deuxième ligne @@ -384,8 +392,16 @@ function confirm_changement_classe(thechange, themessage) echo "
      Moy.
      Bull.
      \n"; } */ + $num_per++; } +// Année +if($avec_moy_bull=="y") { + echo "
      ".$current_group["name"]."
      \n"; +} +else { + echo "
      ".$current_group["name"]."
      \n"; +} echo ""; // Troisième ligne @@ -474,6 +490,15 @@ function confirm_changement_classe(thechange, themessage) $num_per++; } +// Année +echo "
      Moy.
      CN
      \n"; +$header_pdf[] = "Moy.CN (Année)"; +$w_pdf[] = $w2; +if($avec_moy_bull=="y") { + echo "
      Moy.
      Bull.
      \n"; + $header_pdf[] = "Moy.Bull (Année)"; + $w_pdf[] = $w2; +} echo ""; @@ -531,118 +556,162 @@ function confirm_changement_classe(thechange, themessage) $data_pdf[0][] = ""; } } + +// Année +echo "
       
      \n"; +$data_pdf[0][] = ""; +if($avec_moy_bull=="y") { + echo "
       
      \n"; + $data_pdf[0][] = ""; +} echo "\n"; // // Affichage des lignes "elèves" // +$total_points_annee=0; +$nb_moy_ele_annee=0; +$total_points_annee_bull=0; +$nb_moy_ele_annee_bull=0; + $i = 0; $tot_data_pdf = 1; while($i < $nombre_lignes) { - $tot_data_pdf++; - $data_pdf[$i+1][] = $eleve_nom[$i]." ".$eleve_prenom[$i]; - echo "$eleve_nom[$i] $eleve_prenom[$i]\n"; - $num_per = 0; - while ($num_per < $nb_cahier_note) { - $num_periode=$num_per+1; - //$moy=""; - $k=$nb_dev[$num_per-1]; - while ($k < $nb_dev[$num_per]) { - echo $mess_note[$i][$k]; - $data_pdf[$i+1][] = $mess_note_pdf[$i][$k]; - $k++; - } - // - // Affichage de la moyenne de tous les sous-conteneurs - // - $k=$nb_sous_cont[$num_per-1]; - while ($k < $nb_sous_cont[$num_per]) { - $moy=""; - $m = 0; - while ($m < $nb_dev_s_cont[$k]) { - $temp = $id_s_dev[$k][$m]; - $note_query = mysql_query("SELECT * FROM cn_notes_devoirs WHERE (login='$eleve_login[$i]' AND id_devoir='$temp')"); - $eleve_statut = @mysql_result($note_query, 0, "statut"); - $eleve_note = @mysql_result($note_query, 0, "note"); - if (($eleve_statut != '') and ($eleve_statut != 'v')) { - $tmp = $eleve_statut; - $data_pdf[$i+1][] = $eleve_statut; - } else if ($eleve_statut == 'v') { + $total_point_ele=0; + $nb_moy_ele=0; + $total_point_ele_bull=0; + $nb_moy_ele_bull=0; + + $tot_data_pdf++; + $data_pdf[$i+1][] = $eleve_nom[$i]." ".$eleve_prenom[$i]; + echo "$eleve_nom[$i] $eleve_prenom[$i]\n"; + $num_per = 0; + while ($num_per < $nb_cahier_note) { + $num_periode=$num_per+1; + //$moy=""; + $k=$nb_dev[$num_per-1]; + while ($k < $nb_dev[$num_per]) { + echo $mess_note[$i][$k]; + $data_pdf[$i+1][] = $mess_note_pdf[$i][$k]; + $k++; + } + // + // Affichage de la moyenne de tous les sous-conteneurs + // + $k=$nb_sous_cont[$num_per-1]; + while ($k < $nb_sous_cont[$num_per]) { + $moy=""; + $m = 0; + while ($m < $nb_dev_s_cont[$k]) { + $temp = $id_s_dev[$k][$m]; + $note_query = mysql_query("SELECT * FROM cn_notes_devoirs WHERE (login='$eleve_login[$i]' AND id_devoir='$temp')"); + $eleve_statut = @mysql_result($note_query, 0, "statut"); + $eleve_note = @mysql_result($note_query, 0, "note"); + if (($eleve_statut != '') and ($eleve_statut != 'v')) { + $tmp = $eleve_statut; + $data_pdf[$i+1][] = $eleve_statut; + } else if ($eleve_statut == 'v') { + $tmp = " "; + $data_pdf[$i+1][] = ""; + } else { + if ($eleve_note != '') { + $tmp = $eleve_note; + $data_pdf[$i+1][] = $eleve_note; + } else { $tmp = " "; $data_pdf[$i+1][] = ""; - } else { - if ($eleve_note != '') { - $tmp = $eleve_note; - $data_pdf[$i+1][] = $eleve_note; - } else { - $tmp = " "; - $data_pdf[$i+1][] = ""; - } } - echo "
      $tmp
      \n"; - $m++; - } - $moyenne_query = mysql_query("SELECT * FROM cn_notes_conteneurs WHERE (login='$eleve_login[$i]' AND id_conteneur='$id_sous_cont[$k]')"); - $statut_moy = @mysql_result($moyenne_query, 0, "statut"); - if ($statut_moy == 'y') { - $moy = @mysql_result($moyenne_query, 0, "note"); - $data_pdf[$i+1][] = $moy; - } else { - $moy = ' '; - $data_pdf[$i+1][] = ""; } - echo "
      $moy
      \n"; - $k++; + echo "
      $tmp
      \n"; + $m++; + } + $moyenne_query = mysql_query("SELECT * FROM cn_notes_conteneurs WHERE (login='$eleve_login[$i]' AND id_conteneur='$id_sous_cont[$k]')"); + $statut_moy = @mysql_result($moyenne_query, 0, "statut"); + if ($statut_moy == 'y') { + $moy = @mysql_result($moyenne_query, 0, "note"); + $data_pdf[$i+1][] = $moy; + } else { + $moy = ' '; + $data_pdf[$i+1][] = ""; } - // - // affichage des moyennes du conteneur - // - //$moy=""; - $sql = "SELECT * FROM cn_notes_conteneurs WHERE (login='$eleve_login[$i]' AND id_conteneur='".$id_conteneur[$num_per]."')"; - $moyenne_query = mysql_query($sql); - if(mysql_num_rows($moyenne_query)==0) { + echo "
      $moy
      \n"; + $k++; + } + // + // affichage des moyennes du conteneur + // + //$moy=""; + $sql = "SELECT * FROM cn_notes_conteneurs WHERE (login='$eleve_login[$i]' AND id_conteneur='".$id_conteneur[$num_per]."')"; + $moyenne_query = mysql_query($sql); + if(mysql_num_rows($moyenne_query)==0) { + $moy = ' '; + $data_pdf[$i+1][] = ""; + } + else { + $statut_moy = @mysql_result($moyenne_query, 0, "statut"); + if ($statut_moy == 'y') { + $moy = @mysql_result($moyenne_query, 0, "note"); + $data_pdf[$i+1][] = $moy; + // Calcul de la moyenne annuelle + $total_point_ele+=$moy; + $nb_moy_ele++; + } else { $moy = ' '; $data_pdf[$i+1][] = ""; - } - else { - $statut_moy = @mysql_result($moyenne_query, 0, "statut"); - if ($statut_moy == 'y') { - $moy = @mysql_result($moyenne_query, 0, "note"); - $data_pdf[$i+1][] = $moy; - } else { - $moy = ' '; - $data_pdf[$i+1][] = ""; - } - } - echo "
      $moy
      \n"; - - // - // Moyenne du bulletin - // - if($avec_moy_bull=="y") { - $sql="SELECT * FROM matieres_notes WHERE login='$eleve_login[$i]' AND id_groupe='$id_groupe' AND periode='$num_periode';"; - $res_moy_bull=mysql_query($sql); - if(mysql_num_rows($res_moy_bull)==0) { - $moy_bull = ' '; - $data_pdf[$i+1][] = ""; - } - else { - $lig_moy_bull=mysql_fetch_object($res_moy_bull); - if($lig_moy_bull->statut!="") { - $moy_bull = $lig_moy_bull->statut; - $data_pdf[$i+1][] = $lig_moy_bull->statut; - } - else { - $moy_bull = $lig_moy_bull->note; - $data_pdf[$i+1][] = $lig_moy_bull->note; - } - } - - echo "
      $moy_bull
      \n"; - } + } + } + echo "
      $moy
      \n"; + + // + // Moyenne du bulletin + // + if($avec_moy_bull=="y") { + $sql="SELECT * FROM matieres_notes WHERE login='$eleve_login[$i]' AND id_groupe='$id_groupe' AND periode='$num_periode';"; + $res_moy_bull=mysql_query($sql); + if(mysql_num_rows($res_moy_bull)==0) { + $moy_bull = ' '; + $data_pdf[$i+1][] = ""; + } + else { + $lig_moy_bull=mysql_fetch_object($res_moy_bull); + if($lig_moy_bull->statut!="") { + $moy_bull = $lig_moy_bull->statut; + $data_pdf[$i+1][] = $lig_moy_bull->statut; + } + else { + $moy_bull = $lig_moy_bull->note; + $data_pdf[$i+1][] = $lig_moy_bull->note; + // Calcul de la moyenne annuelle des bulletins + $total_point_ele_bull+=$moy_bull; + $nb_moy_ele_bull++; + } + } + + echo "
      $moy_bull
      \n"; + } + $num_per++; + } - $num_per++; - } + // Année + //$data_pdf[$i+1][] = $lig_moy_bull->note; + $moy_annee=""; + if($nb_moy_ele>0) { + $moy_annee=round($total_point_ele/$nb_moy_ele,1); + $total_points_annee+=$moy_annee; + $nb_moy_ele_annee++; + } + echo "
      $moy_annee
      \n"; + $data_pdf[$i+1][] = $moy_annee; + if($avec_moy_bull=="y") { + $moy_annee_bull=""; + if($nb_moy_ele_bull>0) { + $moy_annee_bull=round($total_point_ele_bull/$nb_moy_ele_bull,1); + $total_points_annee_bull+=$moy_annee_bull; + $nb_moy_ele_annee_bull++; + } + echo "
      $moy_annee_bull
      \n"; + $data_pdf[$i+1][] = $moy_annee_bull; + } echo "\n"; $i++; @@ -761,6 +830,24 @@ function confirm_changement_classe(thechange, themessage) } $num_per++; } + +// Année +//$data_pdf[$tot_data_pdf][] = ""; +$moy_annee=""; +if($nb_moy_ele_annee>0) { + $moy_annee=round($total_points_annee/$nb_moy_ele_annee,1); +} +$data_pdf[$tot_data_pdf][] = $moy_annee; +echo "
      $moy_annee
      \n"; +if($avec_moy_bull=="y") { + $moy_annee_bull=""; + if($nb_moy_ele_annee_bull>0) { + $moy_annee_bull=round($total_points_annee_bull/$nb_moy_ele_annee_bull,1); + } + echo "
      $moy_annee_bull
      \n"; + $data_pdf[$tot_data_pdf][] = $moy_annee_bull; +} + echo "\n"; // Préparation du pdf From 1836cdbf26dc373375a4a542da67ca80ddded2cf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Aug 2013 16:42:08 +0200 Subject: [PATCH 0933/1150] =?UTF-8?q?On=20ne=20propose=20pas=20les=20num?= =?UTF-8?q?=C3=A9ros=20de=20p=C3=A9riodes=20ne=20convenant=20pas=20pour=20?= =?UTF-8?q?la=20classe=20choisie=20lors=20de=20l'ajout=20=C3=A0=20une=20cl?= =?UTF-8?q?asse.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/index.php | 25 ++++++++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/eleves/index.php b/eleves/index.php index e11140183..59bc2398e 100644 --- a/eleves/index.php +++ b/eleves/index.php @@ -60,6 +60,19 @@ function log_debug($texte) { //debug_var(); +if((isset($_GET['mode']))&&(isset($_GET['id_classe']))) { + check_token(); + + $sql="SELECT * FROM periodes WHERE id_classe='".$_GET['id_classe']."' ORDER BY num_periode;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + echo "
      "; + } + } + die(); +} + $mode_rech=isset($_POST['mode_rech']) ? $_POST['mode_rech'] : (isset($_GET['mode_rech']) ? $_GET['mode_rech'] : NULL); if((isset($quelles_classes))&&(isset($mode_rech))&&($mode_rech=='contient')) { // On initialise des variables pour index_call_data.php @@ -1729,6 +1742,16 @@ function affiche_ajout_ele_clas(login_ele) { } } } + + function update_champs_periode() { + if(document.getElementById('form_ajout_ele_clas_id_classe')) { + id_classe=document.getElementById('form_ajout_ele_clas_id_classe').options[document.getElementById('form_ajout_ele_clas_id_classe').selectedIndex].value; + //alert(id_classe); + if((id_classe!='')&&(document.getElementById('span_periodes'))) { + new Ajax.Updater($('span_periodes'),'index.php?id_classe='+id_classe+'&mode=update_champs_periode".add_token_in_url(false)."',{method: 'get'}); + } + } + } \n"; echo "\n"; @@ -1767,7 +1790,7 @@ function affiche_ajout_ele_clas(login_ele) { ".add_token_field()."

      Choisissez une classe : - "; while($lig_classe=mysql_fetch_object($res_classe)) { $texte_infobulle.=" From f0f1cce5213fcd9c9e30d67c61f5091bd7def8ec Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Aug 2013 16:42:09 +0200 Subject: [PATCH 0934/1150] Suppression des liens sur qui ne fonctionnent pas. --- classes/ajout_eleve_classe.php | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/classes/ajout_eleve_classe.php b/classes/ajout_eleve_classe.php index 91556da35..6a9b3c288 100644 --- a/classes/ajout_eleve_classe.php +++ b/classes/ajout_eleve_classe.php @@ -75,7 +75,8 @@ $sql="SELECT num_periode FROM periodes WHERE id_classe='$id_classe';"; $res_per=mysql_query($sql); if(mysql_num_rows($res_per)==0) { - $msg="Aucune période n'existe pour la classe $classe."; + //$msg="Aucune période n'existe pour la classe $classe."; + $msg="Aucune période n'existe pour la classe $classe."; $erreur="y"; } else { @@ -100,7 +101,8 @@ $test_clas_per=mysql_query($sql); if(mysql_num_rows($test_clas_per)>0) { $lig_clas_per=mysql_fetch_object($test_clas_per); - $msg.=$login_eleve." est déjà dans une autre classe : id_classe>".get_class_from_id($lig_clas_per->id_classe)." en période $i.
      \n"; + //$msg.=$login_eleve." est déjà dans une autre classe : id_classe>".get_class_from_id($lig_clas_per->id_classe)." en période $i.
      \n"; + $msg.=$login_eleve." est déjà dans une autre classe : ".get_class_from_id($lig_clas_per->id_classe)." en période $i.
      \n"; } else { $sql="SELECT login FROM j_eleves_classes WHERE @@ -113,8 +115,8 @@ $reg_data = mysql_query($sql); if (!($reg_data)) {$msg.="Erreur lors de l'inscription de $nom_prenom dans la classe $classe en période $i.
      ";} else { - $msg.="$nom_prenom a été inscrit(e) dans la classe $classe en période $i.
      "; - + //$msg.="$nom_prenom a été inscrit(e) dans la classe $classe en période $i.
      "; + $msg.="$nom_prenom a été inscrit(e) dans la classe $classe en période $i.
      "; // Ménage: $sql="SELECT id FROM infos_actions WHERE titre LIKE 'Ajout dans une classe % effectuer pour %($login_eleve)';"; $res_actions=mysql_query($sql); @@ -138,7 +140,10 @@ if(mysql_num_rows($test)==0){ $sql="INSERT INTO j_eleves_groupes SET login='$login_eleve',id_groupe='$lig_tmp->id_groupe',periode='$i'"; $insert_grp=mysql_query($sql); - if (!($insert_grp)) {$msg.="Erreur lors de l'inscription de $nom_prenom dans le groupe n°$lig_tmp->id_groupe en période $i.
      ";} + if (!($insert_grp)) { + //$msg.="Erreur lors de l'inscription de $nom_prenom dans le groupe n°$lig_tmp->id_groupe en période $i.
      "; + $msg.="Erreur lors de l'inscription de $nom_prenom dans le groupe n°$lig_tmp->id_groupe en période $i.
      "; + } } } } @@ -163,9 +168,12 @@ } else { if(!in_array($login_eleve, $tab_ele_sans_cpe_defini)) { + /* $msg.="
      L'élève $login_eleve n'a pas été associé à un CPE."; + */ + $msg.="
      L'élève $login_eleve n'a pas été associé à un CPE."; $tab_ele_sans_cpe_defini[]=$login_eleve; } } @@ -188,6 +196,7 @@ } else { if(!in_array($login_eleve, $tab_ele_sans_pp_defini)) { + /* $msg.="
      L'élève $login_eleve n'a pas été associé à un ".$gepiProfSuivi."."; + */ + $msg.="
      L'élève $login_eleve n'a pas été associé à un ".$gepiProfSuivi."."; + $tab_ele_sans_pp_defini[]=$login_eleve; } } From 1b55ad626530ef6e0a25d42b32ff558d852d020a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Aug 2013 17:59:23 +0200 Subject: [PATCH 0935/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20choisir=20le?= =?UTF-8?q?=20professeur=20principal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/index.php | 151 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 142 insertions(+), 9 deletions(-) diff --git a/eleves/index.php b/eleves/index.php index 59bc2398e..ac61b9e54 100644 --- a/eleves/index.php +++ b/eleves/index.php @@ -60,17 +60,104 @@ function log_debug($texte) { //debug_var(); -if((isset($_GET['mode']))&&(isset($_GET['id_classe']))) { - check_token(); +if(($_SESSION['statut']=='administrateur')||($_SESSION['statut']=='scolarite')) { + if((isset($_GET['mode']))&&($_GET['mode']=='update_champs_periode')&&(isset($_GET['id_classe']))) { + check_token(); - $sql="SELECT * FROM periodes WHERE id_classe='".$_GET['id_classe']."' ORDER BY num_periode;"; - $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { - while($lig=mysql_fetch_object($res)) { - echo "
      "; + $sql="SELECT * FROM periodes WHERE id_classe='".$_GET['id_classe']."' ORDER BY num_periode;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + echo "
      "; + } } + die(); + } + + if((isset($_GET['mode']))&&($_GET['mode']=='update_champs_choix_prof_suivi')&&(isset($_GET['login_ele']))) { + check_token(); + + // Afficher la liste des classes en opt group, puis la liste des profs de chaque classe en mettant en couleur ceux qui sont déjà PP d'autres élèves de la classe + $sql="SELECT DISTINCT id_classe, classe FROM j_eleves_classes jec, classes c WHERE jec.login='".$_GET['login_ele']."' AND jec.id_classe=c.id ORDER BY periode;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "Cet élève n'est dans aucune classe ???"; + } + else { + echo ""; + } + + die(); + } + + if((isset($_GET['mode']))&&($_GET['mode']=='modif_prof_suivi')&&(isset($_GET['login_ele']))&&(isset($_GET['prof_suivi']))) { + check_token(); + + // On reçoit prof_suivi_choisi au format id_classe|login + + $tab=explode("|", $_GET['prof_suivi']); + if(isset($tab[1])) { + $sql="SELECT 1=1 FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE jgc.id_groupe=jgp.id_groupe AND jgp.login='$tab[1]' AND jgc.id_classe='$tab[0]'"; + //echo "$sql
      "; + $test=mysql_query($sql); + if(mysql_num_rows($test)>0) { + $sql="SELECT 1=1 FROM j_eleves_classes WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'"; + $test=mysql_query($sql); + if(mysql_num_rows($test)>0) { + $sql="SELECT 1=1 FROM j_eleves_professeurs WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'"; + $test=mysql_query($sql); + if(mysql_num_rows($test)>0) { + $sql="UPDATE j_eleves_professeurs SET professeur='$tab[1]' WHERE login='".$_GET['login_ele']."' AND id_classe='$tab[0]'"; + } + else { + $sql="INSERT INTO j_eleves_professeurs SET professeur='$tab[1]', login='".$_GET['login_ele']."', id_classe='$tab[0]'"; + } + $res=mysql_query($sql); + if($res) { + echo civ_nom_prenom($tab[1]); + } + else { + echo "Erreur"; + } + } + } + } + die(); } - die(); } $mode_rech=isset($_POST['mode_rech']) ? $_POST['mode_rech'] : (isset($_GET['mode_rech']) ? $_GET['mode_rech'] : NULL); @@ -1628,7 +1715,19 @@ function change_style_classe(num) { //$csv.=";"; // Professeur principal - echo "

      $info_pp

      \n"; + // 20130802 + if(($_SESSION['statut']=='administrateur')||($_SESSION['statut']=='scolarite')) { + echo "

      "; + echo ""; + echo ""; + echo $info_pp; + echo ""; + echo ""; + echo "

      \n"; + } + else { + echo "

      $info_pp

      \n"; + } $csv.="$info_pp;"; //if(($_SESSION['statut']=="administrateur")||($_SESSION['statut']=="scolarite")){ @@ -1752,6 +1851,29 @@ function update_champs_periode() { } } } + + function afficher_changement_prof_suivi(login_ele) { + if(document.getElementById('prof_suivi_'+login_ele)) { + new Ajax.Updater($('span_choix_prof_suivi'),'index.php?login_ele='+login_ele+'&mode=update_champs_choix_prof_suivi".add_token_in_url(false)."',{method: 'get'}); + + document.getElementById('login_ele_prof_suivi').value=login_ele; + afficher_div('div_form_choix_prof_suivi_ele', 'y',-20,20); + } + } + + function modifier_prof_suivi() { + login_ele=document.getElementById('login_ele_prof_suivi').value; + //alert(login_ele); + if(document.getElementById('prof_suivi_choisi')) { + prof_suivi=document.getElementById('prof_suivi_choisi').options[document.getElementById('prof_suivi_choisi').selectedIndex].value; + //alert(prof_suivi); + + if($('prof_suivi_'+login_ele)) { + new Ajax.Updater($('prof_suivi_'+login_ele),'index.php?login_ele='+login_ele+'&prof_suivi='+prof_suivi+'&mode=modif_prof_suivi".add_token_in_url(false)."',{method: 'get'}); + cacher_div('div_form_choix_prof_suivi_ele'); + } + } + } \n"; echo "\n"; @@ -1811,6 +1933,17 @@ function update_champs_periode() { "; $tabdiv_infobulle[]=creer_div_infobulle('div_form_ajout_ele_clas',$titre_infobulle,"",$texte_infobulle,"",20,0,'y','y','n','n'); //========================= + $titre_infobulle="Choix du ".getSettingValue('gepi_prof_suivi'); + $texte_infobulle="
      + ".add_token_field()." + + +

      Choisissez un ".getSettingValue('gepi_prof_suivi')." : +
      + +

      "; + $tabdiv_infobulle[]=creer_div_infobulle('div_form_choix_prof_suivi_ele',$titre_infobulle,"",$texte_infobulle,"",20,0,'y','y','n','n'); + //========================= echo "
      \n"; $temoin_notes_bas_de_page="n"; From b6e41629c070dd48d1cd9b30fea08fe3ce711520 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 2 Aug 2013 17:59:23 +0200 Subject: [PATCH 0936/1150] Compte-rendu des modifs. --- changelog.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/changelog.txt b/changelog.txt index f6edf2763..0b500b1b6 100644 --- a/changelog.txt +++ b/changelog.txt @@ -12,6 +12,10 @@ Bulletins: - Possibilité de modifier l'accès parent/élève aux appréciations depuis les pages de saisie de l'avis du conseil de classe dans le cas où l'accès est basculé manuellement. +Carnets de notes: +- Visualiser toutes les notes de l'année: Affichage de la moyenne annuelle. +- Visualiser toutes les notes de l'année: Possibilité d'afficher les moyennes de bulletins en plus des moyennes de carnets de notes. + Cahier de textes: - Possibilité d'afficher la liste des documents joints à un CDT. - Possibilité pour les parents et élèves de pointer leurs travaux faits ou non. @@ -37,6 +41,7 @@ Gestion: - Possibilité de définir des messages d'information à faire apparaître dans 'Gérer mon compte' (messages éventuellement différents pour chaque statut). - Possibilité d'accéder à la date de dernière connexion d'élèves/responsables. - Possibilité de donner l'accès aux statistiques, voire aux détails de connexion pour les comptes scolarité, cpe, professeurs principaux et/ou professeurs. +- Possibilité de choisir le professeur principal depuis la page d'index Élèves. Divers: - Ajout d'une page pour que les parents puissent contrôler les informations élève/resp. From adfa4a79ca3440b2c683046bc06b49aebf12259e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 6 Aug 2013 15:53:53 +0200 Subject: [PATCH 0937/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20d=C3=A9finir?= =?UTF-8?q?=20la=20taille=20du=20texte=20sous=20le=20graphique.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- visualisation/affiche_eleve.php | 48 +++++++++++++++++++++++++++++---- 1 file changed, 43 insertions(+), 5 deletions(-) diff --git a/visualisation/affiche_eleve.php b/visualisation/affiche_eleve.php index 7cc40a911..4747d67a4 100644 --- a/visualisation/affiche_eleve.php +++ b/visualisation/affiche_eleve.php @@ -2,7 +2,7 @@ /* * $Id$ * -* Copyright 2001, 2012 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun +* Copyright 2001, 2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * * This file is part of GEPI. * @@ -127,6 +127,7 @@ function affiche_debug($texte) { 'graphe_epaisseur_croissante_traits_periodes', 'graphe_hauteur_affichage_deroulant', 'graphe_app_deroulantes_taille_police', +'graphe_taille_police_nom_sous_graphe', 'graphe_hauteur_graphe', 'graphe_largeur_graphe', 'graphe_largeur_imposee_photo', @@ -207,6 +208,8 @@ function save_params_graphe($nom,$valeur) { if(isset($_POST['graphe_app_deroulantes_taille_police'])) {save_params_graphe('graphe_app_deroulantes_taille_police',$_POST['graphe_app_deroulantes_taille_police']);} + if(isset($_POST['graphe_taille_police_nom_sous_graphe'])) {save_params_graphe('graphe_taille_police_nom_sous_graphe',$_POST['graphe_taille_police_nom_sous_graphe']);} + if(isset($_POST['click_plutot_que_survol_aff_app'])) {save_params_graphe('graphe_click_plutot_que_survol_aff_app',$_POST['click_plutot_que_survol_aff_app']);} if(isset($_POST['graphe_pointille'])) {save_params_graphe('graphe_pointille',$_POST['graphe_pointille']);} @@ -269,6 +272,8 @@ function save_params_graphe($nom,$valeur) { if(isset($_POST['graphe_app_deroulantes_taille_police'])) {savePref($_SESSION['login'],'graphe_app_deroulantes_taille_police',$_POST['graphe_app_deroulantes_taille_police']);} + if(isset($_POST['graphe_taille_police_nom_sous_graphe'])) {savePref($_SESSION['login'],'graphe_taille_police_nom_sous_graphe',$_POST['graphe_taille_police_nom_sous_graphe']);} + if(isset($_POST['click_plutot_que_survol_aff_app'])) {savePref($_SESSION['login'],'graphe_click_plutot_que_survol_aff_app',$_POST['click_plutot_que_survol_aff_app']);} if(isset($_POST['graphe_pointille'])) {savePref($_SESSION['login'],'graphe_pointille',$_POST['graphe_pointille']);} @@ -1503,6 +1508,28 @@ function save_params_graphe($nom,$valeur) { } + if(isset($_POST['graphe_taille_police_nom_sous_graphe'])) { + $graphe_taille_police_nom_sous_graphe=$_POST['graphe_taille_police_nom_sous_graphe']; + } + else{ + $pref_graphe_taille_police_nom_sous_graphe=getPref($_SESSION['login'],'graphe_graphe_taille_police_nom_sous_graphe',''); + if($pref_graphe_taille_police_nom_sous_graphe!='') { + $graphe_taille_police_nom_sous_graphe=$pref_graphe_taille_police_nom_sous_graphe; + } + else { + if(getSettingValue('graphe_taille_police_nom_sous_graphe')) { + $graphe_taille_police_nom_sous_graphe=getSettingValue('graphe_taille_police_nom_sous_graphe'); + } + else{ + $graphe_taille_police_nom_sous_graphe=16; + } + } + } + if((mb_strlen(preg_replace("/[0-9]/","",$graphe_taille_police_nom_sous_graphe))!=0)||($graphe_taille_police_nom_sous_graphe=="")) { + $graphe_taille_police_nom_sous_graphe=16; + } + + //====================================================================== //====================================================================== //====================================================================== @@ -1725,7 +1752,10 @@ function save_params_graphe($nom,$valeur) { echo "\n"; echo "\n"; echo "\n"; - + echo "\n"; + + echo "

      Divers

      \n"; + echo "
      \n"; //Ajout Eric 11/12/10 echo "\n"; if(($graphe_affiche_deroulant_appreciations=='')||($graphe_affiche_deroulant_appreciations=='oui')) {$checked=" checked='yes'";} else {$checked="";} @@ -1735,10 +1765,11 @@ function save_params_graphe($nom,$valeur) { echo "\n"; - echo "\n"; + echo "\n"; + + echo "\n"; echo "
      \n"; - echo "
      \n"; @@ -2186,6 +2217,8 @@ function eleve_suivant() { echo "\n"; + echo "\n"; + echo "\n"; echo "\n"; @@ -4443,7 +4476,12 @@ function coordcirc($note,$angle) { */ if(isset($prenom1)) { - echo "

      $prenom1 $nom1"; + // 20130806 + echo "

      $prenom1 $nom1"; //if($doublant1!="-") {echo " ($doublant1)";} if(($doublant1!="-")&&($doublant1!="")) {echo " ($doublant1)";} echo " né"; From b17da7bab6dfe04ae6b41c16a5ef8c75ad897ecc Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 6 Aug 2013 15:53:58 +0200 Subject: [PATCH 0938/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20redimensionne?= =?UTF-8?q?r=20des=20infobulles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/consultation2.php | 7 +- css/twinhelix_dragresize.css | 83 +++++++ lib/header.inc.php | 5 + lib/share-html.inc.php | 64 +++++ lib/share.inc.php | 165 +++++++++++++ lib/twinhelix_dragresize.js | 385 +++++++++++++++++++++++++++++++ 6 files changed, 708 insertions(+), 1 deletion(-) create mode 100644 css/twinhelix_dragresize.css create mode 100644 lib/twinhelix_dragresize.js diff --git a/cahier_texte_2/consultation2.php b/cahier_texte_2/consultation2.php index 0bc42fb59..f363f518e 100644 --- a/cahier_texte_2/consultation2.php +++ b/cahier_texte_2/consultation2.php @@ -158,6 +158,10 @@ function aff_debug($tableau){ $style_specifique[] = "cahier_texte_2/consultation2"; $javascript_specifique[] = "cahier_texte_2/consultation2"; +//$chaine_handles="'ml', 'mr'"; +$mode_handles="m"; +$charger_js_dragresize="y"; + //**************** EN-TETE ***************** $titre_page = "Cahier de textes"; require_once("../lib/header.inc.php"); @@ -1139,7 +1143,8 @@ function teste_modif_date() { \n"; } - $tabdiv_infobulle[]=creer_div_infobulle("travail_jour_".$i,$titre_infobulle_jour,"",$texte_infobulle_jour,"pink",20,0,'y','y','n','n'); + //$tabdiv_infobulle[]=creer_div_infobulle("travail_jour_".$i,$titre_infobulle_jour,"",$texte_infobulle_jour,"pink",20,0,'y','y','n','n'); + $tabdiv_infobulle[]=creer_div_infobulle2("travail_jour_".$i,$titre_infobulle_jour,"",$texte_infobulle_jour,"pink",20,0,'y','y','n','n'); echo "

    \n"; } diff --git a/css/twinhelix_dragresize.css b/css/twinhelix_dragresize.css new file mode 100644 index 000000000..b35406c90 --- /dev/null +++ b/css/twinhelix_dragresize.css @@ -0,0 +1,83 @@ +/* Required CSS classes: must be included in all pages using this script */ + +/* Apply the element you want to drag/resize */ +.drsElement { + position: absolute; + border: 1px solid #333; +} + +/* + The main mouse handle that moves the whole element. + You can apply to the same tag as drsElement if you want. +*/ +.drsMoveHandle { + height: 20px; + /* background-color: #CCC; */ + border-bottom: 1px solid #666; + cursor: move; +} + +/* + The DragResize object name is automatically applied to all generated + corner resize handles, as well as one of the individual classes below. +*/ +.dragresize { + position: absolute; + width: 5px; + height: 5px; + font-size: 1px; + /*background: #EEE;*/ + border: 1px solid #333; +} + +/* + Individual corner classes - required for resize support. + These are based on the object name plus the handle ID. +*/ +.dragresize-tl { + top: -8px; + left: -8px; + cursor: nw-resize; +} +.dragresize-tm { + top: -8px; + left: 50%; + margin-left: -4px; + cursor: n-resize; +} +.dragresize-tr { + top: -8px; + right: -8px; + cursor: ne-resize; +} + +.dragresize-ml { + top: 50%; + margin-top: -4px; + left: -8px; + cursor: w-resize; +} +.dragresize-mr { + top: 50%; + margin-top: -4px; + right: -8px; + cursor: e-resize; +} + +.dragresize-bl { + bottom: -8px; + left: -8px; + cursor: sw-resize; +} +.dragresize-bm { + bottom: -8px; + left: 50%; + margin-left: -4px; + cursor: s-resize; +} +.dragresize-br { + bottom: -8px; + right: -8px; + cursor: se-resize; +} + diff --git a/lib/header.inc.php b/lib/header.inc.php index 6816f56be..b29e14c82 100644 --- a/lib/header.inc.php +++ b/lib/header.inc.php @@ -95,6 +95,11 @@ echo ''."\n"; echo ''; } +if((isset($charger_js_dragresize))&&($charger_js_dragresize=="y")) { + echo ''."\n"; + echo ''."\n"; + echo js_dragresize(); +} ?> diff --git a/lib/share-html.inc.php b/lib/share-html.inc.php index f2db02311..41e2237b5 100644 --- a/lib/share-html.inc.php +++ b/lib/share-html.inc.php @@ -2515,4 +2515,68 @@ function cdt_maj_class_div_dev(id_ct) { return $retour; } +function js_dragresize($minWidth=50, $minHeight=50, $minLeft=0, $minTop=0, $maxLeft=10000, $maxTop=100000) { + /* + global $chaine_handles; + if($chaine_handles=="") { + $chaine_handles="'tl', 'tm', 'tr', 'ml', 'mr', 'bl', 'bm', 'br'"; + } + + // Reserve... + var dragresize = new DragResize('dragresize', + { minWidth: $minWidth, minHeight: $minHeight, minLeft: $minLeft, minTop: $minTop, maxLeft: $maxLeft, maxTop: $maxTop }, + \"$chaine_handles\"); + + */ + global $mode_handles; + + $retour=""; + + return $retour; +} ?> diff --git a/lib/share.inc.php b/lib/share.inc.php index 7fa7735ca..e4a73ba1b 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -2798,6 +2798,171 @@ function creer_div_infobulle($id,$titre,$bg_titre,$texte,$bg_texte,$largeur,$hau return $div; } +// Fonction de création d'infobulle redimensionnable (http://www.twinhelix.com/javascript/dragresize/) +function creer_div_infobulle2($id,$titre,$bg_titre,$texte,$bg_texte,$largeur,$hauteur,$drag,$bouton_close,$survol_close,$overflow,$zindex_infobulle=1){ + /* + + $overflow: + */ + global $posDiv_infobulle; + global $tabid_infobulle; + global $unite_div_infobulle; + global $niveau_arbo; + global $pas_de_decalage_infobulle; + global $class_special_infobulle; + + $style_box="color: #000000; border: 1px solid #000000; padding: 0px; position: absolute; z-index:$zindex_infobulle;"; + + $style_bar="color: #ffffff; cursor: move; font-weight: bold; padding: 0px;"; + $style_close="color: #ffffff; cursor: move; font-weight: bold; float:right; width: 16px; margin-right: 1px;"; + + // On fait la liste des identifiants de DIV pour cacher les Div avec javascript en fin de chargement de la page (dans /lib/footer.inc.php). + $tabid_infobulle[]=$id; + + // Conteneur: + if($bg_texte==''){ + $div="\n"; + } + + + // Partie texte: + //================== + // 20110113 + $div.="
    maxLeft) mOffX = (dX - (diffX = maxLeft - elmX - elmW)); + // ...and up-down. + if (elmY + dY < minTop) mOffY = (dY - (diffY = minTop - elmY)); + else if (elmY + elmH + dY > maxTop) mOffY = (dY - (diffY = maxTop - elmY - elmH)); + elmX += diffX; + elmY += diffY; + } + + // Assign new info back to the element, with minimum dimensions. + with (element.style) + { + left = elmX + 'px'; + width = elmW + 'px'; + top = elmY + 'px'; + height = elmH + 'px'; + } + + // Evil, dirty, hackish Opera select-as-you-drag fix. + if (window.opera && document.documentElement) + { + var oDF = document.getElementById('op-drag-fix'); + if (!oDF) + { + var oDF = document.createElement('input'); + oDF.id = 'op-drag-fix'; + oDF.style.display = 'none'; + document.body.appendChild(oDF); + } + oDF.focus(); + } + + if (ondragmove) this.ondragmove(isResize); + + // Stop a normal drag event. + cancelEvent(e); +}}; + + +DragResize.prototype.mouseUp = function(e) { with (this) +{ + // On mouseup, stop dragging, but don't reset handler visibility. + if (!document.getElementById || !enabled) return; + + var hRE = new RegExp(myName + '-([trmbl]{2})', ''); + if (handle && ondragend) this.ondragend(hRE.test(handle.className)); + deselect(false); +}}; + + + +/* Resize Code -- can be deleted if you're not using it. */ + +DragResize.prototype.resizeHandleSet = function(elm, show) { with (this) +{ + // Either creates, shows or hides the resize handles within an element. + + // If we're showing them, and no handles have been created, create 4 new ones. + if (!elm._handle_tr) + { + for (var h = 0; h < handles.length; h++) + { + // Create 4 news divs, assign each a generic + specific class. + var hDiv = document.createElement('div'); + hDiv.className = myName + ' ' + myName + '-' + handles[h]; + elm['_handle_' + handles[h]] = elm.appendChild(hDiv); + } + } + + // We now have handles. Find them all and show/hide. + for (var h = 0; h < handles.length; h++) + { + elm['_handle_' + handles[h]].style.visibility = show ? 'inherit' : 'hidden'; + } +}}; + + +DragResize.prototype.resizeHandleDrag = function(diffX, diffY) { with (this) +{ + // Passed the mouse movement amounts. This function checks to see whether the + // drag is from a resize handle created above; if so, it changes the stored + // elm* dimensions and mOffX/Y. + + var hClass = handle && handle.className && + handle.className.match(new RegExp(myName + '-([tmblr]{2})')) ? RegExp.$1 : ''; + + // If the hClass is one of the resize handles, resize one or two dimensions. + // Bounds checking is the hard bit -- basically for each edge, check that the + // element doesn't go under minimum size, and doesn't go beyond its boundary. + var dY = diffY, dX = diffX, processed = false; + if (hClass.indexOf('t') >= 0) + { + rs = 1; + if (elmH - dY < minHeight) mOffY = (dY - (diffY = elmH - minHeight)); + else if (elmY + dY < minTop) mOffY = (dY - (diffY = minTop - elmY)); + elmY += diffY; + elmH -= diffY; + processed = true; + } + if (hClass.indexOf('b') >= 0) + { + rs = 1; + if (elmH + dY < minHeight) mOffY = (dY - (diffY = minHeight - elmH)); + else if (elmY + elmH + dY > maxTop) mOffY = (dY - (diffY = maxTop - elmY - elmH)); + elmH += diffY; + processed = true; + } + if (hClass.indexOf('l') >= 0) + { + rs = 1; + if (elmW - dX < minWidth) mOffX = (dX - (diffX = elmW - minWidth)); + else if (elmX + dX < minLeft) mOffX = (dX - (diffX = minLeft - elmX)); + elmX += diffX; + elmW -= diffX; + processed = true; + } + if (hClass.indexOf('r') >= 0) + { + rs = 1; + if (elmW + dX < minWidth) mOffX = (dX - (diffX = minWidth - elmW)); + else if (elmX + elmW + dX > maxLeft) mOffX = (dX - (diffX = maxLeft - elmX - elmW)); + elmW += diffX; + processed = true; + } + + return processed; +}}; From 74b18c3a060b14d9f00fb2e99a6065e7a7d479e5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 6 Aug 2013 15:54:55 +0200 Subject: [PATCH 0939/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20redimensionne?= =?UTF-8?q?r=20des=20infobulles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/changelog.txt b/changelog.txt index 0b500b1b6..ebdcaccee 100644 --- a/changelog.txt +++ b/changelog.txt @@ -12,6 +12,9 @@ Bulletins: - Possibilité de modifier l'accès parent/élève aux appréciations depuis les pages de saisie de l'avis du conseil de classe dans le cas où l'accès est basculé manuellement. +Graphes: +- Possibilité de définir la taille du texte sous le graphique. + Carnets de notes: - Visualiser toutes les notes de l'année: Affichage de la moyenne annuelle. - Visualiser toutes les notes de l'année: Possibilité d'afficher les moyennes de bulletins en plus des moyennes de carnets de notes. @@ -19,6 +22,7 @@ Carnets de notes: Cahier de textes: - Possibilité d'afficher la liste des documents joints à un CDT. - Possibilité pour les parents et élèves de pointer leurs travaux faits ou non. +- Possibilité de redimensionner les infobulles dans l'affichage semaine. Absences2: - Possibilité de modifier les dates/heure de début et fin d'une saisie depuis la page de saisie d'un traitement. From 706f8aef7f4193556093bfa11cb5b3f8631cde26 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 8 Aug 2013 18:14:51 +0200 Subject: [PATCH 0940/1150] =?UTF-8?q?Correctif=20sur=20un=20JS=20de=20s?= =?UTF-8?q?=C3=A9lection?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- statistiques/export_donnees_bulletins.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/statistiques/export_donnees_bulletins.php b/statistiques/export_donnees_bulletins.php index e9db169ff..a37ce0c06 100644 --- a/statistiques/export_donnees_bulletins.php +++ b/statistiques/export_donnees_bulletins.php @@ -791,10 +791,12 @@ function change_style_per(num) { if(!isset($chaine_array_index[$j])) { //$chaine_array_index[$j]="tab_index_$j=new Array("; $chaine_array_index[$j]="tab_index[$j]=new Array("; - $chaine_array_index[$j].=$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]; + //$chaine_array_index[$j].=$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]; + $chaine_array_index[$j].="'".$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]."'"; } else { - $chaine_array_index[$j].=", ".$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]; + //$chaine_array_index[$j].=", ".$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]; + $chaine_array_index[$j].=", "."'".$tab_liste_index_grp_matiere[$tab_id_matiere[$j]][$k]."'"; } } if(isset($chaine_array_index[$j])) { From eb2b669ed2191ffd13f262ccdb72509c347d4d2f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 8 Aug 2013 18:14:59 +0200 Subject: [PATCH 0941/1150] =?UTF-8?q?Possibilit=C3=A9=20d'interdire=20la?= =?UTF-8?q?=20cr=C3=A9ation/param=C3=A9trage=20de=20boites/conteneurs=20pa?= =?UTF-8?q?r=20les=20professeurs.=20Possibilit=C3=A9,=20en=20tant=20qu'adm?= =?UTF-8?q?inistrateur,=20de=20cr=C3=A9er=20des=20boites/conteneurs=20par?= =?UTF-8?q?=20lots=20dans=20les=20carnets=20de=20notes=20d'une=20s=C3=A9le?= =?UTF-8?q?ction=20d'enseignements.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/add_modif_conteneur.php | 8 +- cahier_notes/index.php | 16 +- cahier_notes/saisie_notes.php | 21 +- .../creation_conteneurs_par_lots.php | 1882 +++++++++++++++++ changelog.txt | 2 + classes/index.php | 3 + gestion/droits_acces.php | 5 + sql/data_gepi.sql | 2 + sql/structure_gepi.sql | 30 +- utilitaires/updates/163_to_dev.inc.php | 81 + utilitaires/updates/access_rights.inc.php | 2 + 11 files changed, 2036 insertions(+), 16 deletions(-) create mode 100644 cahier_notes_admin/creation_conteneurs_par_lots.php diff --git a/cahier_notes/add_modif_conteneur.php b/cahier_notes/add_modif_conteneur.php index 95c0a38e6..6436f8435 100644 --- a/cahier_notes/add_modif_conteneur.php +++ b/cahier_notes/add_modif_conteneur.php @@ -94,6 +94,12 @@ } +if(!getSettingAOui('GepiPeutCreerBoitesProf')) { + $msg=rawurlencode("Vous n'avez pas le droit de créer des ".getSettingValue('gepi_denom_boite'))."s."; + header("Location: ./index.php?id_racine=$id_racine&msg=$msg"); + die(); +} + $appel_cahier_notes = mysql_query("SELECT * FROM cn_cahier_notes WHERE id_cahier_notes = '$id_racine'"); $id_groupe = mysql_result($appel_cahier_notes, 0, 'id_groupe'); @@ -658,7 +664,7 @@ echo "
    \n"; } -else{ +else { // AFFICHAGE CLASSIQUE COMPLET: echo "\n"; echo "\n"; diff --git a/cahier_notes/index.php b/cahier_notes/index.php index c71a2e5df..ce47061ba 100644 --- a/cahier_notes/index.php +++ b/cahier_notes/index.php @@ -281,7 +281,7 @@ } // Recopie de la structure de la periode précédente -if ((isset($_GET['creer_structure'])) and (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie))) { +if ((isset($_GET['creer_structure'])) and (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie)) and (getSettingAOui('GepiPeutCreerBoitesProf'))) { check_token(); function recopie_arbo($id_racine, $id_prec,$id_new) { @@ -668,14 +668,18 @@ function confirm_changement_periode(thechange, themessage) } if (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie)) { - echo " Créer un"; - if(getSettingValue("gepi_denom_boite_genre")=='f'){echo "e";} - echo " ".htmlspecialchars(my_strtolower(getSettingValue("gepi_denom_boite")))." | \n"; + if(getSettingAOui('GepiPeutCreerBoitesProf')) { + echo " Créer un"; + if(getSettingValue("gepi_denom_boite_genre")=='f'){echo "e";} + echo " ".htmlspecialchars(my_strtolower(getSettingValue("gepi_denom_boite")))." | \n"; + } echo " Créer une évaluation | \n"; if ($periode_num!='1') { $themessage = 'En cliquant sur OK, vous allez créer la même structure de boîtes que celle de la période précédente. Si des boîtes existent déjà, elles ne seront pas supprimées.'; - echo " Créer la même structure que la période précédente | \n"; + if(getSettingAOui('GepiPeutCreerBoitesProf')) { + echo " Créer la même structure que la période précédente | \n"; + } } } @@ -832,7 +836,7 @@ function confirm_changement_periode(thechange, themessage) echo "


    \n"; echo "

    Choisir le mode par défaut pour mes ".getSettingValue('gepi_denom_boite')."s.
    Cela ne vous empêchera pas de choisir un autre mode pour des ".getSettingValue('gepi_denom_boite')."s particulier(e)s.
    Cela ne modifie pas non plus le mode de calcul dans les carnets de notes existants.

    \n"; echo "


    \n"; - if(isset($id_racine)) { + if((isset($id_racine))&&(getSettingAOui('GepiPeutCreerBoitesProf'))) { echo "

    Paramétrer le mode de calcul pour les ".getSettingValue('gepi_denom_boite')."s de ce carnet de notes (". htmlspecialchars($current_group["description"])." (".$nom_periode[$periode_num].")) en particulier.

    \n"; } echo ""; diff --git a/cahier_notes/saisie_notes.php b/cahier_notes/saisie_notes.php index ca9acd863..781030380 100644 --- a/cahier_notes/saisie_notes.php +++ b/cahier_notes/saisie_notes.php @@ -781,12 +781,11 @@ function confirm_changement_periode(thechange, themessage) } if (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 2)||($acces_exceptionnel_saisie)) { - //echo "Créer une boîte|"; - echo " Créer un"; - - if(getSettingValue("gepi_denom_boite_genre")=='f'){echo "e";} - - echo " ".htmlspecialchars(my_strtolower(getSettingValue("gepi_denom_boite")))." |"; + if(getSettingAOui('GepiPeutCreerBoitesProf')) { + echo " Créer un"; + if(getSettingValue("gepi_denom_boite_genre")=='f'){echo "e";} + echo " ".htmlspecialchars(my_strtolower(getSettingValue("gepi_denom_boite")))." |"; + } echo " Créer une évaluation |"; } @@ -1263,7 +1262,9 @@ function verifcol(num_id){ echo "\n"; + + if(getSettingAOui('GepiPeutCreerBoitesProf')) { + echo "Configuration
    "; + } + echo "
    Aff. bull.\n"; } echo "\n"; diff --git a/cahier_notes_admin/creation_conteneurs_par_lots.php b/cahier_notes_admin/creation_conteneurs_par_lots.php new file mode 100644 index 000000000..32cb65d55 --- /dev/null +++ b/cahier_notes_admin/creation_conteneurs_par_lots.php @@ -0,0 +1,1882 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + + + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +//On vérifie si le module est activé +if (getSettingValue("active_carnets_notes")!='y') { + die("Le module n'est pas activé."); +} + +$id_modele = isset($_POST["id_modele"]) ? $_POST["id_modele"] : (isset($_GET["id_modele"]) ? $_GET["id_modele"] : NULL); +$id_conteneur = isset($_POST["id_conteneur"]) ? $_POST["id_conteneur"] : (isset($_GET["id_conteneur"]) ? $_GET["id_conteneur"] : NULL); +$mode = isset($_POST["mode"]) ? $_POST["mode"] : (isset($_GET["mode"]) ? $_GET["mode"] : NULL); +$mode_modif = isset($_POST["mode_modif"]) ? $_POST["mode_modif"] : (isset($_GET["mode_modif"]) ? $_GET["mode_modif"] : NULL); + +$id_classe=isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); +$choix_periodes=isset($_POST['choix_periodes']) ? $_POST['choix_periodes'] : (isset($_GET['choix_periodes']) ? $_GET['choix_periodes'] : NULL); +$choix_matieres=isset($_POST['choix_matieres']) ? $_POST['choix_matieres'] : (isset($_GET['choix_matieres']) ? $_GET['choix_matieres'] : NULL); +$max_per=isset($_POST['max_per']) ? $_POST['max_per'] : (isset($_GET['max_per']) ? $_GET['max_per'] : NULL); + + +$msg=""; + +$gepi_denom_boite=casse_mot(getSettingValue("gepi_denom_boite"), 'min'); + +$tab_arrondir=array(); +$tab_arrondir['s1']="dixième supérieur"; +$tab_arrondir['s5']="demi-point supérieur"; +$tab_arrondir['se']="entier supérieur"; +$tab_arrondir['p1']="dixième le plus proche"; +$tab_arrondir['p5']="demi-point le plus proche"; +$tab_arrondir['pe']="entier le plus proche"; + +//debug_var(); + +/* +function get_arbo_boites($id_cahier_notes, $id_groupe="", $periode="") { + $tab=array(); + if($id_cahier_notes=="") { + $sql="SELECT id_cahier_notes FROM cn_cahier_notes WHERE id_groupe='$id_groupe' AND periode='$periode';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $id_cahier_notes=mysql_result($res, 0, "id_cahier_notes"); + } + } + + if($id_cahier_notes!="") { + $sql="SELECT * FROM cn_conteneurs WHERE id_racine='$id_cahier_notes';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + + } + } + } + return $tab; +} +*/ +if((isset($_POST['valider_nouveau_modele']))&&(isset($_POST['nom_court']))&&(isset($NON_PROTECT['description']))) { + check_token(); + + $nom_court=$_POST['nom_court']; + + $description=traitement_magic_quotes(corriger_caracteres($NON_PROTECT["description"])); + + $sql="INSERT INTO cn_conteneurs_modele SET nom_court='$nom_court', description='$description';"; + if($insert=mysql_query($sql)) { + $id_modele=mysql_insert_id(); + $msg="Modèle n°$id_modele : '$nom_court' créé.
    "; + } + else { + $msg="ERREUR lors de la création du modèle '$nom_court'.
    "; + } + + unset($mode); +} + +if((isset($_GET['suppr_conteneur']))&&(is_numeric($_GET['suppr_conteneur']))) { + check_token(); + +// + + $sql="DELETE FROM cn_conteneurs_modele_conteneurs WHERE id='".$_GET['suppr_conteneur']."';"; + $res=mysql_query($sql); + if($res) { + $msg="Suppression du(de la) $gepi_denom_boite n°".$_GET['suppr_conteneur']." effectuée.
    "; + } + else { + $msg="ERREUR lors de la suppression du(de la) $gepi_denom_boite n°".$_GET['suppr_conteneur'].".
    "; + } + + unset($mode_modif); +} + +if((isset($_POST['enregistrer_conteneur']))&&(isset($id_modele))&&(is_numeric($id_modele))) { + check_token(); + + $reg_ok = "yes"; + $new='no'; + if(!isset($_POST['id_conteneur'])) { + //$sql="insert into cn_conteneurs_modele_conteneurs (id_racine,nom_court,parent) values ('$id_racine','nouveau','$id_racine')"; + $sql="insert into cn_conteneurs_modele_conteneurs (nom_court, id_modele) values ('nouveau', '$id_modele')"; + //echo "$sql
    "; + $reg = mysql_query($sql); + $id_conteneur = mysql_insert_id(); + if (!$reg) {$reg_ok = "no";} + $new='yes'; + } + + /* + if (isset($_POST['mode']) and ($_POST['mode']) and my_ereg("^[12]{1}$", $_POST['mode'])) { + if ($_POST['mode'] == 1) $_SESSION['affiche_tous'] = 'yes'; + $sql="UPDATE cn_conteneurs_modele_conteneurs SET mode = '".$_POST['mode']."' WHERE id = '$id_conteneur'"; + */ + $sql="UPDATE cn_conteneurs_modele_conteneurs SET mode = '2' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + //} + + if ($_POST['nom_court']) { + $nom_court = $_POST['nom_court']; + } else { + $nom_court = "Cont. ".$id_conteneur; + } + $sql="UPDATE cn_conteneurs_modele_conteneurs SET nom_court = '".corriger_caracteres($nom_court)."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + + + if ($_POST['nom_complet']) { + $nom_complet = $_POST['nom_complet']; + } else { + $nom_complet = $nom_court; + } + + $sql="UPDATE cn_conteneurs_modele_conteneurs SET nom_complet = '".corriger_caracteres($nom_complet)."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + + if ($_POST['description']) { + $sql="UPDATE cn_conteneurs_modele_conteneurs SET description = '".corriger_caracteres($_POST['description'])."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } + /* + if (isset($_POST['parent'])) { + $parent = $_POST['parent']; + $sql="UPDATE cn_conteneurs_modele_conteneurs SET parent = '".$parent."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } + */ + + if (isset($_POST['coef'])) { + $tmp_coef=$_POST['coef']; + if((preg_match("/^[0-9]*$/", $tmp_coef))||(preg_match("/^[0-9]*\.[0-9]$/", $tmp_coef))) { + // Le coef a le bon format + //$msg.="Le coefficient proposé $tmp_coef est valide.
    "; + } + elseif(preg_match("/^[0-9]*\.[0-9]*$/", $tmp_coef)) { + $msg.="Le coefficient ne peut avoir plus d'un chiffre après la virgule. Le coefficient va être tronqué.
    "; + } + elseif(preg_match("/^[0-9]*,[0-9]$/", $tmp_coef)) { + $msg.="Correction du séparateur des décimales dans le coefficient de $tmp_coef en "; + $tmp_coef=preg_replace("/,/", ".", $tmp_coef); + $msg.=$tmp_coef."
    "; + } + else { + $msg.="Le coefficient proposé $tmp_coef est invalide. Mise à 1.0 du coefficient.
    "; + $tmp_coef="1.0"; + } + $sql="UPDATE cn_conteneurs_modele_conteneurs SET coef = '" . $tmp_coef . "' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } else { + $sql="UPDATE cn_conteneurs_modele_conteneurs SET coef = '0' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } + + if ($_POST['ponderation']) { + $sql="UPDATE cn_conteneurs_modele_conteneurs SET ponderation = '". $_POST['ponderation']."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } else { + $sql="UPDATE cn_conteneurs_modele_conteneurs SET ponderation = '0' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } + + if (($_POST['precision']) and my_ereg("^(s1|s5|se|p1|p5|pe)$", $_POST['precision'])) { + $sql="UPDATE cn_conteneurs_modele_conteneurs SET arrondir = '". $_POST['precision']."' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + } + + if (isset($_POST['display_parents'])) { + $display_parents = 1; + } else { + $display_parents = 0; + } + $sql="UPDATE cn_conteneurs_modele_conteneurs SET display_parents = '$display_parents' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + + if (isset($_POST['display_bulletin'])) { + $display_bulletin = 1; + } else { + $display_bulletin = 0; + } + $sql="UPDATE cn_conteneurs_modele_conteneurs SET display_bulletin = '$display_bulletin' WHERE id = '$id_conteneur'"; + //echo "$sql
    "; + $reg = mysql_query($sql); + if (!$reg) {$reg_ok = "no";} + + if ($reg_ok=='yes') { + if ($new=='yes') $msg.="Nouvel enregistrement réussi."; + else $msg.="Les modifications ont été effectuées avec succès."; + } else { + $msg.="Il y a eu un problème lors de l'enregistrement"; + } + +} + + +if((isset($_POST['appliquer_le_modele']))&&(isset($id_modele))&&(is_numeric($id_modele))&&(isset($choix_periodes))&&(isset($choix_matieres))) { + check_token(); + + $debug_appliquer_modele=false; + + // Récupérer le détail du modèle + $tab_modele=array(); + $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele' ORDER BY nom_court, nom_complet, description;"; + if($debug_appliquer_modele) echo "$sql
    "; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $tab_modele[$cpt]['modele_id_conteneur']=$lig->id; + $tab_modele[$cpt]['nom_court']=$lig->nom_court; + $tab_modele[$cpt]['nom_complet']=$lig->nom_complet; + $tab_modele[$cpt]['description']=$lig->description; + $tab_modele[$cpt]['coef']=$lig->coef; + $tab_modele[$cpt]['arrondir']=$lig->arrondir; + $tab_modele[$cpt]['ponderation']=$lig->ponderation; + $tab_modele[$cpt]['display_parents']=$lig->display_parents; + $tab_modele[$cpt]['display_bulletin']=$lig->display_bulletin; + $tab_modele[$cpt]['mode']=$lig->mode; + /* + echo "\$tab_modele[$cpt]
    ";
    +			print_r($tab_modele[$cpt]);
    +			echo "

    "; + */ + $cpt++; + } + } + + if(count($tab_modele)==0) { + $msg.="Aucun(e) ".$gepi_denom_boite." n'existe dans le modèle n°$id_modele.
    Il n'est pas possible d'appliquer ce modèle.
    "; + } + else { + $nb_insert=0; + $nb_update=0; + $nb_erreur=0; + // Parcourir les classes, puis boucler sur les enseignements et enfin sur les périodes + for($i=0;$i

    ".get_nom_classe($id_classe[$i])."
    "; + + unset($id_groupe); + if($choix_matieres=="certaines") { + $id_groupe=isset($_POST['id_groupe_'.$id_classe[$i]]) ? $_POST['id_groupe_'.$id_classe[$i]] : array(); + } + else { + $id_groupe=array(); + //$sql="SELECT g.* FROM groupes g, j_groupes_classes jgc WHERE g.id=jgc.id_groupe AND jgc.id_classe='".$id_classe[$i]."' AND g.id NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n');"; + $sql="SELECT jgc.id_groupe FROM j_groupes_classes jgc WHERE jgc.id_classe='".$id_classe[$i]."' AND jgc.id_groupe NOT IN (SELECT id_groupe FROM j_groupes_visibilite WHERE domaine='cahier_notes' AND visible='n');"; + if($debug_appliquer_modele) echo "$sql
    "; + $res_grp=mysql_query($sql); + while($lig_grp=mysql_fetch_object($res_grp)) { + $id_groupe[]=$lig_grp->id; + } + } + + unset($num_periode); + if($choix_periodes=="certaines") { + $num_periode=isset($_POST['num_periode_'.$id_classe[$i]]) ? $_POST['num_periode_'.$id_classe[$i]] : array(); + } + else { + $num_periode=array(); + $sql="SELECT num_periode FROM periodes WHERE id_classe='".$id_classe[$i]."' ORDER BY num_periode;"; + if($debug_appliquer_modele) echo "$sql
    "; + $res_per=mysql_query($sql); + while($lig_per=mysql_fetch_object($res_per)) { + $num_periode[]=$lig_per->num_periode; + } + } + + // Boucler sur les enseignements + for($j=0;$j

    ".$current_group['name']." ".$current_group['classlist_string']." ".$current_group['profs']['proflist_string']."
    "; + // Boucler sur les périodes + for($k=0;$k"; + $res_ccn=mysql_query($sql); + // Créer le carnet de notes s'il n'existe pas. + if(mysql_num_rows($res_ccn)==0) { + // Créer le carnet de notes + if($debug_appliquer_modele) echo "Le carnet de notes n'existe pas en période ".$num_periode[$k].".
    "; + $current_group=get_group($id_groupe[$j]); + + $nom_complet_matiere = $current_group["matiere"]["nom_complet"]; + $nom_court_matiere = $current_group["matiere"]["matiere"]; + $sql="INSERT INTO cn_conteneurs SET id_racine='', + nom_court='".traitement_magic_quotes($current_group["description"])."', + nom_complet='". traitement_magic_quotes($nom_complet_matiere)."', + description = '', + mode = '2', + coef = '1.0', + arrondir = 's1', + ponderation = '0.0', + display_parents = '0', + display_bulletin = '1', + parent = '0'"; + if($debug_appliquer_modele) echo "$sql
    "; + $reg = mysql_query($sql); + if ($reg) { + $id_cahier_notes = mysql_insert_id(); + $sql="UPDATE cn_conteneurs SET id_racine='$id_cahier_notes', parent = '0' WHERE id='$id_cahier_notes'"; + if($debug_appliquer_modele) echo "$sql
    "; + $reg = mysql_query($sql); + $sql="INSERT INTO cn_cahier_notes SET id_groupe = '".$id_groupe[$j]."', periode = '".$num_periode[$k]."', id_cahier_notes='$id_cahier_notes'"; + if($debug_appliquer_modele) echo "$sql
    "; + $reg = mysql_query($sql); + } + } + else { + if($debug_appliquer_modele) echo "Le carnet de notes existait déjà en période ".$num_periode[$k].".
    "; + $id_cahier_notes=mysql_result($res_ccn, 0, "id_cahier_notes"); + } + if($debug_appliquer_modele) echo "\$id_cahier_notes=$id_cahier_notes
    "; + + if(isset($id_cahier_notes)) { + // Récupérer la liste des conteneurs existants... ou comparer avec les modele_id_conteneur + + // Boucler sur les conteneurs du modèle + for($m=0;$m

    On va tester si un conteneur correspondant à modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."' existe ou non déjà
    "; + $sql="SELECT * FROM cn_conteneurs WHERE id_racine='$id_cahier_notes' AND modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."';"; + if($debug_appliquer_modele) echo "$sql
    "; + $res_cn=mysql_query($sql); + if(mysql_num_rows($res_cn)==0) { + if($debug_appliquer_modele) echo "Aucun conteneur n'existe encore avec modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."'
    "; + $sql="INSERT INTO cn_conteneurs SET id_racine='$id_cahier_notes', + nom_court='".mysql_real_escape_string($tab_modele[$m]['nom_court'])."', + nom_complet='".mysql_real_escape_string($tab_modele[$m]['nom_complet'])."', + description='".mysql_real_escape_string($tab_modele[$m]['description'])."', + mode='".$tab_modele[$m]['mode']."', + coef='".$tab_modele[$m]['coef']."', + arrondir='".$tab_modele[$m]['arrondir']."', + ponderation='".$tab_modele[$m]['ponderation']."', + display_parents='".$tab_modele[$m]['display_parents']."', + display_bulletin='".$tab_modele[$m]['display_bulletin']."', + modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."', + parent='$id_cahier_notes';"; + if($debug_appliquer_modele) echo "$sql
    "; + $insert=mysql_query($sql); + if($insert) { + $nb_insert++; + } + else { + $nb_erreur++; + } + } + else { + if($debug_appliquer_modele) echo "Un conteneur existe déjà avec modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."'
    "; + $id_conteneur=mysql_result($res_cn, 0, "id"); + // Faut-il modifier parent pour remettre à la racine du carnet de notes? + // Faut-il réimposer le id_racine qui doit déjà être à $id_cahier_notes + $sql="UPDATE cn_conteneurs SET id_racine='$id_cahier_notes', + nom_court='".mysql_real_escape_string($tab_modele[$m]['nom_court'])."', + nom_complet='".mysql_real_escape_string($tab_modele[$m]['nom_complet'])."', + description='".mysql_real_escape_string($tab_modele[$m]['description'])."', + mode='".$tab_modele[$m]['mode']."', + coef='".$tab_modele[$m]['coef']."', + arrondir='".$tab_modele[$m]['arrondir']."', + ponderation='".$tab_modele[$m]['ponderation']."', + display_parents='".$tab_modele[$m]['display_parents']."', + display_bulletin='".$tab_modele[$m]['display_bulletin']."', + modele_id_conteneur='".$tab_modele[$m]['modele_id_conteneur']."', + parent='$id_cahier_notes' + WHERE id='$id_conteneur';"; + if($debug_appliquer_modele) echo "$sql
    "; + $update=mysql_query($sql); + if($update) { + $nb_update++; + } + else { + $nb_erreur++; + } + } + } + } + } + } + } + if($nb_insert>0) { + $msg.="$nb_insert ".$gepi_denom_boite."s ont été créées.
    "; + } + if($nb_update>0) { + $msg.="$nb_update ".$gepi_denom_boite."s ont été mises à jour.
    "; + } + if($nb_erreur>0) { + $msg.=$nb_erreur." erreurs se sont produites.
    "; + } + } +} + +/* +CREATE TABLE cn_conteneurs_modele_conteneurs ( +id int(11) NOT NULL auto_increment, +id_modele int(11) NOT NULL default '0', +id_racine int(11) NOT NULL default '0', +nom_court varchar(32) NOT NULL default '', +nom_complet varchar(64) NOT NULL default '', +description varchar(128) NOT NULL default '', +mode char(1) NOT NULL default '2', +coef decimal(3,1) NOT NULL default '1.0', +arrondir char(2) NOT NULL default 's1', +ponderation decimal(3,1) NOT NULL default '0.0', +display_parents char(1) NOT NULL default '0', +display_bulletin char(1) NOT NULL default '1', +parent int(11) NOT NULL default '0', +PRIMARY KEY (id), +INDEX parent_racine (parent,id_racine), +INDEX racine_bulletin (id_racine,display_bulletin) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + +CREATE TABLE cn_conteneurs_modele ( +id_modele int(11) NOT NULL auto_increment, +nom_court varchar(32) NOT NULL default '', +description varchar(128) NOT NULL default '', +PRIMARY KEY (id_modele) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + +INSERT INTO droits VALUES ('/cahier_notes_admin/creation_conteneurs_par_lots.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Création de conteneurs/boites par lots', '1'); + +==================================================================== + +DROP TABLE IF EXISTS `cn_conteneurs`; +CREATE TABLE `cn_conteneurs` ( `id` int(11) NOT NULL auto_increment, `id_racine` int(11) NOT NULL default '0', `nom_court` varchar(32) NOT NULL default '', `nom_complet` varchar(64) NOT NULL default '', `description` varchar(128) NOT NULL default '', `mode` char(1) NOT NULL default '2', `coef` decimal(3,1) NOT NULL default '1.0', `arrondir` char(2) NOT NULL default 's1', `ponderation` decimal(3,1) NOT NULL default '0.0', `display_parents` char(1) NOT NULL default '0', `display_bulletin` char(1) NOT NULL default '1', `parent` int(11) NOT NULL default '0', PRIMARY KEY (`id`), INDEX parent_racine (`parent`,`id_racine`), INDEX racine_bulletin (`id_racine`,`display_bulletin`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + +mysql> select * from cn_conteneurs limit 5; ++------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ +| id | id_racine | nom_court | nom_complet | description | mode | coef | arrondir | ponderation | display_parents | display_bulletin | parent | ++------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ +| 4798 | 4798 | ED.PHYSIQUE & SPORT. | ED.PHYSIQUE & SPORT. | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | +| 4799 | 4799 | ANGLAIS LV2 (BIL) | ANGLAIS LV2 | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | +| 4800 | 4800 | ARTS PLASTIQUES | ARTS PLASTIQUES | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | +| 4801 | 4801 | ACCOMPAGNEMT. PERSO. (AP5) | ACCOMPAGNEMT. PERSO. | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | +| 4802 | 4802 | ESPAGNOL LV2 | ESPAGNOL LV2 | | 2 | 1.0 | s1 | 0.0 | 0 | 1 | 0 | ++------+-----------+----------------------------+----------------------+-------------+------+------+----------+-------------+-----------------+------------------+--------+ +5 rows in set (0.02 sec) + +mysql> show fields from cn_conteneurs limit 5; +ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'limit 5' at line 1 +mysql> show fields from cn_conteneurs; ++------------------+--------------+------+-----+---------+----------------+ +| Field | Type | Null | Key | Default | Extra | ++------------------+--------------+------+-----+---------+----------------+ +| id | int(11) | NO | PRI | NULL | auto_increment | +| id_racine | int(11) | NO | MUL | 0 | | +| nom_court | varchar(32) | NO | | | | +| nom_complet | varchar(64) | NO | | | | +| description | varchar(128) | NO | | NULL | | +| mode | char(1) | NO | | 2 | | +| coef | decimal(3,1) | NO | | 1.0 | | +| arrondir | char(2) | NO | | s1 | | +| ponderation | decimal(3,1) | NO | | 0.0 | | +| display_parents | char(1) | NO | | 0 | | +| display_bulletin | char(1) | NO | | 1 | | +| parent | int(11) | NO | MUL | 0 | | ++------------------+--------------+------+-----+---------+----------------+ +12 rows in set (0.03 sec) + +mysql> + +*/ + +$themessage = 'Des informations ont été modifiées. Voulez-vous vraiment quitter sans enregistrer ?'; +//**************** EN-TETE ***************** +$titre_page = "Carnet de notes - Ajout/modification de ".my_strtolower(getSettingValue("gepi_denom_boite"))." par lots"; +/** + * Entête de la page + */ +require_once("../lib/header.inc.php"); +//**************** FIN EN-TETE ***************** + +if((isset($_POST['temoin_suhosin_1']))&&(!isset($_POST['temoin_suhosin_2']))) { + echo "

    Il semble que certaines variables n'ont pas été transmises.
    Cela peut arriver lorsqu'on tente de transmettre (cocher trop de cases) trop de variables.
    Vous devriez tenter de créer des ".$gepi_denom_boite."s pour moins de classes/périodes/enseignements à la fois.

    \n"; + echo alerte_config_suhosin(); +} + +echo "

    Retour Retour"; + +if(!isset($mode)) { + echo " +

    +
    "; + + $tab_modele=array(); + $sql="SELECT id_modele, nom_court, description FROM cn_conteneurs_modele ORDER BY nom_court;"; + $res=mysql_query($sql); + $nb_modeles=mysql_num_rows($res); + $cpt=0; + while($lig=mysql_fetch_object($res)) { + $tab_modele[$cpt]['id_modele']=$lig->id_modele; + $tab_modele[$cpt]['nom_court']=$lig->nom_court; + $tab_modele[$cpt]['description']=$lig->description; + $cpt++; + } + + echo " +

    La présente page est destinée à créer des modèles de carnets de notes, en y paramétrant des ".$gepi_denom_boite."s.
    +Une fois un ou des modèles créés, vous pourrez appliquer ces modèles à un ensemble d'enseignements choisis parmi une sélection de classes.
    +Toutes les classes et enseignements choisis auront ainsi la même structure de ".$gepi_denom_boite."s.

    + + + +

    NOTES 

    +
      +
    • A faire: Permettre de consulter l'état actuel des boites des enseignements...
      + Modifier: choisir les classes, périodes, enseignements, puis choisir le modèle à appliquer.
    • +
    • Ce dispositif ne permet pas de supprimer des ".$gepi_denom_boite."s existant(e)s.
    • +
    "; +} +//============================================================================== +elseif($mode=="creer_modele") { + echo " | Index de la création de modèles +

    +"; + + echo "
    + ".add_token_field()." +

    Création d'un modèle :

    +
    +
    Nom court :
     
    \n"; } if (($current_group["classe"]["ver_periode"]["all"][$periode_num] >= 3)||($acces_exceptionnel_saisie)) { - echo "Configuration
    \n"; + if(getSettingAOui('GepiPeutCreerBoitesProf')) { + echo "Configuration
    \n"; + } } echo "Visualisation\n"; @@ -1286,7 +1287,11 @@ function verifcol(num_id){ else{ echo "
     
    "; } - echo "Configuration

    Aff. bull.
    id".add_token_in_url()."'>
    + + + + + + + + +
    Nom court :
    Description :
    + +

    +

    Il est recommandé de saisir des noms explicites si vous créez plusieurs modèles.

    + +\n"; +} +//============================================================================== +elseif($mode=="supprimer_modele") { + echo " | Index de la création de modèles +

    +
    "; + + $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "

    Le modèle n°$id_modele est inconnu.

    "; + require("../lib/footer.inc.php"); + die(); + } + + check_token(false); + + echo "

    Suppression du modèle n°$id_modele et de ses ".$gepi_denom_boite."s :
    +Suppression d'éventuel(le)s ".$gepi_denom_boite."s : "; + $sql="DELETE FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele';"; + $res=mysql_query($sql); + if(!$res) { + echo "ERREUR
    +On ne supprime pas le modèle lui-même.
    +Essayez de trouver la cause de l'erreur.

    "; + } + else { + echo "OK
    +Suppression du modèle lui-même : "; + + $sql="DELETE FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; + $res=mysql_query($sql); + if(!$res) { + echo "ERREUR
    +Essayez de trouver la cause de l'erreur.

    "; + } + else { + echo "OK

    "; + } + } +} +//============================================================================== +elseif($mode=="modifier_modele") { + echo " | Index de la création de modèles"; + if(isset($mode_modif)) { + echo " | Modèle courant"; + } + echo " +

    +
    "; + + $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "

    Le modèle n°$id_modele est inconnu.

    "; + require("../lib/footer.inc.php"); + die(); + } + + $lig=mysql_fetch_object($res); + $nom_court_modele=$lig->nom_court; + $description_modele=$lig->description; + + echo " +

    Modèle $nom_court_modele
    +$description_modele

    "; + + //++++++++++++++++++++++++++++++++++++++++++ + if(!isset($mode_modif)) { + echo " +

    Ajouter un(e) ".$gepi_denom_boite." dans le modèle.

    "; + + $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id_modele='$id_modele' ORDER BY nom_court, nom_complet, description;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + echo " +

    Voici la liste des ".$gepi_denom_boite."s du modèle :

    +
    + + + + + + + + + + + + + + "; + + while($lig=mysql_fetch_object($res)) { + echo " + + + + + + + + + + + + "; + + } + } + echo " +
    ModifSupprNom courtNom completDescriptionCoefArrondiPondérationRel.NotBulletin
    id".add_token_in_url()."'>id".add_token_in_url()."' onclick=\"return confirm('Etes-vous sûr de vouloir supprimer ce(tte) ".addslashes($gepi_denom_boite)." ?')\">$lig->nom_court$lig->nom_complet$lig->description$lig->coefarrondir]."\">$lig->arrondir$lig->ponderation
    +
    "; + } + //++++++++++++++++++++++++++++++++++++++++++ + else { + echo "
    "; + + // Valeurs par défaut: + $nom_court="Nouvelle boite"; + $nom_complet=""; + $description=""; + $coef=1; + $arrondir="s1"; + $ponderation=0; + $display_parents=1; + $display_bulletin=0; + + if($mode_modif=="modifier_conteneur") { + // Récupération des valeurs du conteneur: + $sql="SELECT * FROM cn_conteneurs_modele_conteneurs WHERE id='$id_conteneur';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "

    Anomalie le(la) $gepi_denom_boite n°$id_conteneur n'existe pas.

    "; + require("../lib/footer.inc.php"); + die(); + } + + $lig=mysql_fetch_object($res); + $nom_court=$lig->nom_court; + $nom_complet=$lig->nom_complet; + $description=$lig->description; + $coef=$lig->coef; + $arrondir=$lig->arrondir; + $ponderation=$lig->ponderation; + $display_parents=$lig->display_parents; + $display_bulletin=$lig->display_bulletin; + + echo " + +
    +

    Modifier les paramètres du(de la) $gepi_denom_boite $nom_court :

    "; + } + else { + echo " +
    +

    Nouveau(elle) $gepi_denom_boite :

    "; + } + + echo " + ".add_token_field()." +
    + + + + +
    Nom court :
    Nom complet :
    Description :
    +
    "; + + // Pour le moment, on ne permet pas de faire plusieurs niveaux + /* + if(getSettingValue("gepi_denom_boite_genre")=='f'){ + echo "\n\n"; echo "\n"; echo "\n"; echo "\n"; echo"\n"; $k++; diff --git a/classes/periodes.php b/classes/periodes.php index e250d34ca..aed32ea7f 100644 --- a/classes/periodes.php +++ b/classes/periodes.php @@ -274,7 +274,7 @@ function modif_mode_infobulle_nav() { ?> - +

    Classe :

    Remarque : Le verrouillage/déverrouillage d'une période est possible en étant connecté sous un compte ayant le statut "scolarité"
    @@ -333,9 +333,15 @@ function modif_mode_infobulle_nav() { \n"; echo "

    \n"; echo "\n"; + echo " value=\"".strftime("%d/%m/%Y", mysql_date_to_unix_timestamp($date_fin_periode[$k]))."\" size='10' />"; + + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; + + echo "\n"; echo "\n"; $k++; } From 7783829bb2f0eaf367d3d8d8981d0243100c8f2e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 17:33:39 +0200 Subject: [PATCH 1004/1150] =?UTF-8?q?Mise=20=C3=A0=20jour=20du=20plugin=20?= =?UTF-8?q?ckeditor=20Equation,=20qui=20ne=20fonctionnait=20plus,=20vers?= =?UTF-8?q?=20la=20version=201.3=20du=2019/06/2013.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/init_cahier_texte_2.js | 4 +- ckeditor/plugins/equation/icons/equation.png | Bin 0 -> 1093 bytes ckeditor/plugins/equation/plugin.js | 46 +++++++++---------- 3 files changed, 23 insertions(+), 27 deletions(-) create mode 100644 ckeditor/plugins/equation/icons/equation.png diff --git a/cahier_texte_2/init_cahier_texte_2.js b/cahier_texte_2/init_cahier_texte_2.js index f17b27f34..dc5f3813b 100644 --- a/cahier_texte_2/init_cahier_texte_2.js +++ b/cahier_texte_2/init_cahier_texte_2.js @@ -451,7 +451,7 @@ function initWysiwyg() { ['NumberedList','BulletedList'], ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], ['Outdent','Indent'], - ['Link','Unlink','Table','HorizontalRule','SpecialChar','equation'], + ['Link','Unlink','Table','HorizontalRule','SpecialChar','Equation'], ['Styles','Format','Font','FontSize'], ['TextColor','BGColor'], ['Maximize', 'About','-','Print'] @@ -474,7 +474,7 @@ function initWysiwyg() { ['JustifyLeft','JustifyCenter','JustifyRight','JustifyBlock'], '/', ['Outdent','Indent'], - ['Link','Unlink','Table','HorizontalRule','SpecialChar','equation'], + ['Link','Unlink','Table','HorizontalRule','SpecialChar','Equation'], ['Styles','Format','Font','FontSize'], ['TextColor','BGColor'], ['Maximize', 'About','-','Print'] diff --git a/ckeditor/plugins/equation/icons/equation.png b/ckeditor/plugins/equation/icons/equation.png new file mode 100644 index 0000000000000000000000000000000000000000..2915f424ee0b711a8f4b2d47cc953049654e8994 GIT binary patch literal 1093 zcmaJ=TSyd97@jgDB*AV_5p|d~&}!$lj_nR^vb*DD!?A5$a(k+A=BSg-oN4ChuKN&V z^w0%Ck)Y`E(1jo@D5{5&$m$`i2qKDlDX8c|7pNW*!p^8`J+uv+Ip_TR-}m3Xvp>KQQ;Ij20M+$ zoC8~O%_%L{rG<35b|a|CN`%0KSOrJs4BD`2prF`yuflB{5&U#8zhbgGapT&IeNR4lF4wesvLM$h+g5W0}ez(uUYSwSLzC42rUCl9UY#+Rws{FCoLiQQD64cR1gQIDgM!L|FmP_`6v zpo)=`La006#Y88<$n8Wnh_#3e4-{21EYC89P!uU{xmdL{7?;B|;b06ymx5eSs20Sk zfE)?(e4P-9@`0c%M;awL^~ zek>U&y~8ayKX9vJI9fRztvEDRv1Ghrcx=lvFdVhQa0tG+`jLLKc+J44@_DsqeNTN) zF74a%?lxNXd0PWj(!I23<$(v(;jch=G~j#D@pyEw_sYbGksJK6{lnbY-3R+ zu#j5hFB|gpo_Q<&${j5MJ9oqGwAD2Jdc5`F!Se6Vj=yTmWiEa>z4hFQmpAT~uYKH5 ubob}|;*;+;jS5_-wQ|+oiPw|0a~DvFQ%%v2>jp-=haInLmM=ti^#2CB<7#98 literal 0 HcmV?d00001 diff --git a/ckeditor/plugins/equation/plugin.js b/ckeditor/plugins/equation/plugin.js index 9cb21bf2b..0314b548c 100755 --- a/ckeditor/plugins/equation/plugin.js +++ b/ckeditor/plugins/equation/plugin.js @@ -23,12 +23,13 @@ var currentEdit=null; editorFocus:false, exec : function(editor, latex) { - currentEdit=CKEDITOR.currentInstance; +// currentEdit=CKEDITOR.currentInstance; + currentEdit=editor; //open a popup window when the button is clicked if (popupEqnwin==null || popupEqnwin.closed || !popupEqnwin.location) { - var url='http://latex.codecogs.com/editor_json3.php?type=url&editor=CKEditor'; + var url='https://latex.codecogs.com/editor_json6.php?type=url&editor=CKEditor'; //if(language!='') url+='&lang='+language; if(latex!==undefined) @@ -41,7 +42,7 @@ var currentEdit=null; popupEqnwin=window.open('','LaTexEditor','width=700,height=450,status=1,scrollbars=yes,resizable=1'); if (!popupEqnwin.opener) popupEqnwin.opener = self; popupEqnwin.document.open(); - popupEqnwin.document.write(''); + popupEqnwin.document.write(''); popupEqnwin.document.close(); } else if (window.focus) @@ -50,24 +51,18 @@ var currentEdit=null; if(latex!==undefined) { latex=unescape(latex); - latex = latex.replace(/\\/g,'\\\\'); - latex = latex.replace(/\'/g,'\\\''); - latex = latex.replace(/\"/g,'\\"'); - latex = latex.replace(/\0/g,'\\0'); - - eval("var old = popupEqnwin.document.getElementById('JSONload')"); - if (old != null) { - old.parentNode.removeChild(old); - delete old; + + try + { + popupEqnwin.EqEditor.load(latex); + } + catch(err) + { + alert(err.message); } - - var head = popupEqnwin.document.getElementsByTagName("head")[0]; - var script = document.createElement("script"); - script.type = "text/javascript"; - script.id = 'JSONload'; - script.innerHTML = 'EqEditor.load(\''+(latex)+'\');'; - head.appendChild(script); } + popupEqnwin.document.getElementById("latex_formula").focus(); + popupEqnwin.document.getElementById("latex_formula").select(); } } }; @@ -83,11 +78,11 @@ var currentEdit=null; // Add the link and unlink buttons. editor.addCommand( com, createEqnDefinition); - editor.ui.addButton( 'equation', + editor.ui.addButton( 'Equation', { label : editor.lang.equation.title, command : com, - icon: this.path + 'images/equation.gif' + icon: this.path + 'icons/equation.png' }); // If the "menu" plugin is loaded, register the menu items. @@ -112,10 +107,10 @@ var currentEdit=null; var sName = element.getAttribute('src').match( /(gif|svg)\.latex\?(.*)/ ); if(sName!=null) { - createEqnDefinition.exec(null, sName[2]); + createEqnDefinition.exec(this, sName[2]); evt.cancelBubble = true; - evt.returnValue = false; - evt.stopPropagation(); + evt.returnValue = false; + evt.stop(); } } }, null, null, 1); @@ -134,7 +129,8 @@ var currentEdit=null; latex = latex.replace(/@plus;/g,'+'); latex = latex.replace(/+/g,'+'); latex = latex.replace(/&space;/g,' '); - + latex = latex.replace(/&hash;/g,'#'); + currentEdit.insertHtml(''+latex+''); } From 9c6aae64d974339267429f8956f668ae177c050c Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 17:40:20 +0200 Subject: [PATCH 1005/1150] =?UTF-8?q?Correctif=20pour=20les=20PDF=20sur=20?= =?UTF-8?q?des=20=C3=A9l=C3=A8ves=20qui=20n'ont=20aucune=20note=20dans=20a?= =?UTF-8?q?ucune=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/visu_toutes_notes2.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cahier_notes/visu_toutes_notes2.php b/cahier_notes/visu_toutes_notes2.php index 3b058382a..8b8e8bc10 100644 --- a/cahier_notes/visu_toutes_notes2.php +++ b/cahier_notes/visu_toutes_notes2.php @@ -1695,10 +1695,18 @@ function ajuste_FontSize($texte, $largeur_dispo, $hauteur_caractere_initiale, $g $longueur_max_nom_prenom=0; $largeur_col[1]=$largeur_col_nom_ele; for($i=1;$i<=count($col_csv[1]);$i++) { - $longueur_courante=$pdf->GetStringWidth($col_csv[1][$i]); - if($longueur_courante>$longueur_max_nom_prenom) { - $texte_test[1]=$col_csv[1][$i]; - $longueur_max_nom_prenom=$longueur_courante; + /* + // Le COL_CSV ne contient pas le nom prénom d'un élève qui n'a aucune note dans aucune matière + echo "
    ";
    +			print_r($col_csv);
    +			echo "
    "; + */ + if(isset($col_csv[1][$i])) { + $longueur_courante=$pdf->GetStringWidth($col_csv[1][$i]); + if($longueur_courante>$longueur_max_nom_prenom) { + $texte_test[1]=$col_csv[1][$i]; + $longueur_max_nom_prenom=$longueur_courante; + } } } $taille_police_col[1]=ajuste_FontSize($texte_test[1], $largeur_col[1], 12, 'B', 3); From 549f0674be0cb481965a7fe1540a9d48315a6a3a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 17:47:45 +0200 Subject: [PATCH 1006/1150] =?UTF-8?q?Acc=C3=A8s=20PP=20=C3=A0=20Moyennes?= =?UTF-8?q?=20des=20carnets=20de=20notes=20si=20acc=C3=A8s=20=C3=A0=20la?= =?UTF-8?q?=20visualisation=20des=20carnets=20de=20notes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/index2.php | 63 ++++++++++++++----- cahier_notes/visu_toutes_notes2.php | 95 ++++++++++++++++++++--------- changelog.txt | 1 + class_php/class_page_accueil.php | 2 +- 4 files changed, 114 insertions(+), 47 deletions(-) diff --git a/cahier_notes/index2.php b/cahier_notes/index2.php index 8603040f8..ade8cf9c8 100644 --- a/cahier_notes/index2.php +++ b/cahier_notes/index2.php @@ -53,26 +53,46 @@ die(); } +$id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); + // On fait quelques tests si le statut est 'prof', pour vérifier les restrictions d'accès if ($_SESSION['statut'] == "professeur") { - if ( (getSettingValue("GepiAccesMoyennesProf") != "yes") AND - (getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes") AND - (getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") - ) { - tentative_intrusion("1","Tentative d'accès par un prof aux moyennes des carnets de notes sans avoir les autorisations nécessaires."); - echo "Vous n'êtes pas autorisé à être ici."; -/** - * inclusion du pied de page - */ - require ("../lib/footer.inc.php"); - die(); - } + if ( (getSettingValue("GepiAccesMoyennesProf") != "yes") AND + (getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes") AND + (getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") + ) { + + if((getSettingAOui('GepiAccesReleveProfP'))&&(is_pp($_SESSION['login']))) { + if(isset($id_classe)) { + if(!is_pp($_SESSION['login'], $id_classe)) { + $classe=get_nom_classe($id_classe); + tentative_intrusion("1","Tentative d'accès par un ".getSettingValue('gepi_prof_suivi')." aux moyennes des carnets de notes pour une classe qu'il n'a pas en responsabilité (".$classe.")."); + header("Location: ../accueil.php?msg=Vous n'êtes pas ".getSettingValue('gepi_prof_suivi')." de la classe de $classe."); + //echo "Vous n'êtes pas autorisé à être ici."; + //require ("../lib/footer.inc.php"); + die(); + } + } + else { + $sql="SELECT DISTINCT id_classe FROM j_eleves_professeurs jep, classes c WHERE jep.id_classe=c.id AND jep.professeur='".$_SESSION['login']."';"; + $res_clas_pp=mysql_query($sql); + if(mysql_num_rows($res_clas_pp)==1) { + $id_classe=mysql_result($res_clas_pp, 0, "id_classe"); + } + } + } + else { + tentative_intrusion("1","Tentative d'accès par un prof aux moyennes des carnets de notes sans avoir les autorisations nécessaires."); + header("Location: ../accueil.php?msg=Vous n'êtes pas autorisé à être ici."); + //echo "Vous n'êtes pas autorisé à être ici."; + //require ("../lib/footer.inc.php"); + die(); + } + } } -$id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); - if (isset($id_classe)) { // On regarde si le type est correct : if (!is_numeric($id_classe)) { @@ -126,7 +146,18 @@ $sql = "SELECT DISTINCT c.id,c.classe FROM classes c, periodes p, j_scol_classes jsc WHERE p.id_classe = c.id AND jsc.id_classe=c.id AND jsc.login='".$_SESSION['login']."' ORDER BY classe"; } elseif($_SESSION['statut']=='professeur'){ - $sql="SELECT DISTINCT c.id,c.classe FROM classes c, periodes p, j_groupes_classes jgc, j_groupes_professeurs jgp WHERE p.id_classe = c.id AND jgc.id_classe=c.id AND jgp.id_groupe=jgc.id_groupe AND jgp.login='".$_SESSION['login']."' ORDER BY c.classe"; + //$sql="SELECT DISTINCT c.id,c.classe FROM classes c, periodes p, j_groupes_classes jgc, j_groupes_professeurs jgp WHERE p.id_classe = c.id AND jgc.id_classe=c.id AND jgp.id_groupe=jgc.id_groupe AND jgp.login='".$_SESSION['login']."' ORDER BY c.classe"; + + if ( (getSettingValue("GepiAccesMoyennesProf") != "yes") AND + (getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes") AND + (getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") + ) { + $sql="SELECT DISTINCT c.id, c.classe FROM j_eleves_professeurs jep, classes c WHERE jep.id_classe=c.id AND jep.professeur='".$_SESSION['login']."';"; + } + else { + $sql="SELECT DISTINCT c.id,c.classe FROM classes c, periodes p, j_groupes_classes jgc, j_groupes_professeurs jgp WHERE p.id_classe = c.id AND jgc.id_classe=c.id AND jgp.id_groupe=jgc.id_groupe AND jgp.login='".$_SESSION['login']."' ORDER BY c.classe"; + } + } elseif($_SESSION['statut']=='cpe'){ $sql="SELECT DISTINCT c.id,c.classe FROM classes c, periodes p, j_eleves_classes jec, j_eleves_cpe jecpe WHERE @@ -566,4 +597,4 @@ function display_div_coloriser() { * inclusion du pied de page */ require ("../lib/footer.inc.php"); -?> \ No newline at end of file +?> diff --git a/cahier_notes/visu_toutes_notes2.php b/cahier_notes/visu_toutes_notes2.php index 303e62375..94e8ce283 100644 --- a/cahier_notes/visu_toutes_notes2.php +++ b/cahier_notes/visu_toutes_notes2.php @@ -48,7 +48,18 @@ // Modifié pour pouvoir récupérer ces variables en GET pour les CSV //$id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : NULL; -$id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); + +//$id_classe = isset($_POST['id_classe']) ? $_POST['id_classe'] : (isset($_GET['id_classe']) ? $_GET['id_classe'] : NULL); +$id_classe=NULL; +$id_classe_recu_en_post="n"; +if(isset($_POST['id_classe'])) { + $id_classe=$_POST['id_classe']; + $id_classe_recu_en_post="y"; +} +elseif(isset($_GET['id_classe'])) { + $id_classe=$_GET['id_classe']; +} + //$num_periode = isset($_POST['num_periode']) ? $_POST['num_periode'] : NULL; //$num_periode = isset($_POST['num_periode']) ? $_POST['num_periode'] : (isset($_GET['num_periode']) ? $_GET['num_periode'] : NULL); $num_periode = isset($_POST['num_periode']) ? $_POST['num_periode'] : (isset($_GET['num_periode']) ? $_GET['num_periode'] : "1"); @@ -71,14 +82,27 @@ require ("../lib/footer.inc.php"); die(); } + // On teste si le professeur a le droit d'accéder à cette classe - if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") { + if ($_SESSION['statut'] == "professeur" AND + getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes" AND + getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") { $test = mysql_num_rows(mysql_query("SELECT jgc.* FROM j_groupes_classes jgc, j_groupes_professeurs jgp WHERE (jgp.login='".$_SESSION['login']."' AND jgc.id_groupe = jgp.id_groupe AND jgc.id_classe = '".$id_classe."')")); if ($test == "0") { - tentative_intrusion("3", "Tentative d'accès par un prof à une classe dans laquelle il n'enseigne pas, sans en avoir l'autorisation. Tentative avancée : changement des valeurs de champs de type 'hidden' du formulaire."); - echo "Vous ne pouvez pas accéder à cette classe car vous n'y êtes pas professeur !"; - require ("../lib/footer.inc.php"); - die(); + if((!is_pp($_SESSION['login'], $id_classe))||(!getSettingAOui('GepiAccesReleveProfP'))) { + $classe=get_nom_classe($id_classe); + if($id_classe_recu_en_post=="y") { + tentative_intrusion("3", "Tentative d'accès par un prof à une classe ($classe) dans laquelle il n'enseigne pas, sans en avoir l'autorisation. Tentative avancée : changement des valeurs de champs de type 'hidden' du formulaire."); + } + else { + tentative_intrusion("3", "Tentative d'accès par un prof à une classe ($classe) dans laquelle il n'enseigne pas, sans en avoir l'autorisation. Changement des valeurs de id_classe dans la barre d'adresse."); + } + + //echo "Vous ne pouvez pas accéder à cette classe car vous n'y êtes pas professeur !"; + //require ("../lib/footer.inc.php"); + header("Location: ../accueil.php?msg=Vous n'êtes pas professeur de la classe de $classe."); + die(); + } } } } @@ -142,31 +166,42 @@ function my_echo($texte) { // On appelle les élèves if ($_SESSION['statut'] == "professeur" AND getSettingValue("GepiAccesMoyennesProfTousEleves") != "yes" AND getSettingValue("GepiAccesMoyennesProfToutesClasses") != "yes") { - // On ne sélectionne que les élèves que le professeur a en cours - if ($referent=="une_periode") - // Calcul sur une seule période - $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* " . - "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . - "WHERE (" . - "jec.id_classe='$id_classe' AND " . - "e.login = jeg.login AND " . - "jeg.login = jec.login AND " . - "jeg.id_groupe = jgp.id_groupe AND " . - "jgp.login = '".$_SESSION['login']."' AND " . - "jec.periode = '$num_periode' AND " . - "jeg.periode = '$num_periode') " . - "ORDER BY e.nom,e.prenom"); + if((!is_pp($_SESSION['login'], $id_classe))||(!getSettingAOui('GepiAccesReleveProfP'))) { + // On ne sélectionne que les élèves que le professeur a en cours + if ($referent=="une_periode") + // Calcul sur une seule période + $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."' AND " . + "jec.periode = '$num_periode' AND " . + "jeg.periode = '$num_periode') " . + "ORDER BY e.nom,e.prenom"); + else { + // Calcul sur l'année + $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* " . + "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . + "WHERE (" . + "jec.id_classe='$id_classe' AND " . + "e.login = jeg.login AND " . + "jeg.login = jec.login AND " . + "jeg.id_groupe = jgp.id_groupe AND " . + "jgp.login = '".$_SESSION['login']."') " . + "ORDER BY e.nom,e.prenom"); + } + } else { - // Calcul sur l'année - $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* " . - "FROM eleves e, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp " . - "WHERE (" . - "jec.id_classe='$id_classe' AND " . - "e.login = jeg.login AND " . - "jeg.login = jec.login AND " . - "jeg.id_groupe = jgp.id_groupe AND " . - "jgp.login = '".$_SESSION['login']."') " . - "ORDER BY e.nom,e.prenom"); + if ($referent=="une_periode") + // Calcul sur une seule période + $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* FROM eleves e, j_eleves_classes j WHERE (j.id_classe='$id_classe' AND j.login = e.login AND j.periode='$num_periode') ORDER BY nom,prenom"); + else { + // Calcul sur l'année + $appel_donnees_eleves = mysql_query("SELECT DISTINCT e.* FROM eleves e, j_eleves_classes j WHERE (j.id_classe='$id_classe' AND j.login = e.login) ORDER BY nom,prenom"); + } } } else { if ($referent=="une_periode") diff --git a/changelog.txt b/changelog.txt index 79bf17610..4d79096a1 100644 --- a/changelog.txt +++ b/changelog.txt @@ -21,6 +21,7 @@ Carnets de notes: - Visualiser toutes les notes de l'année: Possibilité d'afficher les moyennes de bulletins en plus des moyennes de carnets de notes. - Possibilité d'interdire la création/paramétrage de boites/conteneurs par les professeurs. - Possibilité, en tant qu'administrateur, de créer des boites/conteneurs par lots dans les carnets de notes d'une sélection d'enseignements. +- Accès des professeurs principaux à la page Moyennes des carnets de notes si ils ont accès à la Visualisation des carnets de notes. Cahier de textes: - Possibilité d'afficher la liste des documents joints à un CDT. diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index 14b873076..2cfd88ff6 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -739,7 +739,7 @@ protected function releve_notes(){ "Visualisation et impression des relevés de notes", "Cet outil vous permet de visualiser à l'écran et d'imprimer les relevés de notes, ".$this->gepiSettings['denomination_eleve']." par ".$this->gepiSettings['denomination_eleve'].", classe par classe."); - if ($condition && $condition2) + if ($condition && (($condition2)||(is_pp($this->loginUtilisateur)))) $this->creeNouveauItem("/cahier_notes/index2.php", "Visualisation des moyennes des carnets de notes", "Cet outil vous permet de visualiser à l'écran les moyennes calculées d'après le contenu des carnets de notes, indépendamment de la saisie des moyennes sur les bulletins."); From 70a54fabdb767ea275e7f2827855a6e8e88e04e1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 6 Sep 2013 19:46:31 +0200 Subject: [PATCH 1007/1150] =?UTF-8?q?Correction=20d'un=20message=20erron?= =?UTF-8?q?=C3=A9=20en=20title.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_eleves.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/groupes/edit_eleves.php b/groupes/edit_eleves.php index a7231138c..8f4dc90e1 100644 --- a/groupes/edit_eleves.php +++ b/groupes/edit_eleves.php @@ -790,7 +790,7 @@ function confirm_changement_grp(thechange, themessage) } echo "
    \n"; + echo "\n"; echo "\n"; +echo " +\n"; echo "\n"; // Marqueurs pour identifier quand on change de classe dans la liste @@ -708,7 +716,6 @@ function confirm_changement_grp2(thechange, themessage) $empty_td = false; //===================================== -// AJOUT: boireaus 20080229 $chaine_sql_classe="("; for($i=0;$i0) {$chaine_sql_classe.=" OR ";} @@ -722,7 +729,6 @@ function confirm_changement_grp2(thechange, themessage) foreach($total_eleves as $e_login) { //========================= - // AJOUT: boireaus 20071010 // Récupération du numéro de l'élève: $num_eleve=-1; for($i=0;$i Date: Fri, 6 Sep 2013 19:57:09 +0200 Subject: [PATCH 1010/1150] Effectifs des regroupements. --- lib/share.inc.php | 12 ++++ statistiques/classes_effectifs.php | 90 ++++++++++++++++++++++++++++++ 2 files changed, 102 insertions(+) diff --git a/lib/share.inc.php b/lib/share.inc.php index 6c4187b10..97957ca48 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -8170,4 +8170,16 @@ function get_date_debut_log() { return $retour; } + +function get_info_grp($id_groupe, $tab_infos=array('description', 'matieres', 'classes', 'profs')) { + $group=get_group($id_groupe, $tab_infos); + + $retour=$group['name']; + if(in_array('description', $tab_infos)) {$retour.=" (".$group['description'].")";} + if(in_array('matieres', $tab_infos)) {$retour.=" ".$group['matiere']['matiere'];} + if(in_array('classes', $tab_infos)) {$retour.=" en ".$group['classlist_string'];} + if(in_array('profs', $tab_infos)) {$retour.=" (".$group['profs']['proflist_string'].")";} + + return $retour; +} ?> diff --git a/statistiques/classes_effectifs.php b/statistiques/classes_effectifs.php index 22ddc0bfb..1dc3ad563 100644 --- a/statistiques/classes_effectifs.php +++ b/statistiques/classes_effectifs.php @@ -101,6 +101,38 @@ echo echo_csv_encoded($csv); die(); } + elseif($_GET['export_csv']=='effectifs_grp') { + $nom_fic = "export_regroupements_effectifs_".date("Ymd_His").".csv"; + + $csv="Groupe;Effectifs;\r\n"; + $sql="SELECT distinct id_groupe, count(id_classe) FROM j_groupes_classes jgc, classes c WHERE jgc.id_classe=c.id group by id_groupe HAVING COUNT(id_classe)>1 order by c.classe;"; + $res_grp=mysql_query($sql); + if(mysql_num_rows($res_grp)>0) { + $tab_grp=array(); + while($lig_grp=mysql_fetch_object($res_grp)) { + $tab_grp[]=$lig_grp->id_groupe; + } + + for($i=0;$i"; + $res_eff=mysql_query($sql); + $csv.=mysql_num_rows($res_eff).";\r\n"; + */ + } + + send_file_download_headers('text/x-csv',$nom_fic); + //echo $csv; + echo echo_csv_encoded($csv); + die(); + } elseif($_GET['export_csv']=='effectifs_sexe') { $nom_fic = "export_classes_effectifs_sexe_".date("Ymd_His").".csv"; @@ -212,6 +244,64 @@ echo "
     
    \n"; echo "


    \n"; + //======================================================= + + //$sql="SELECT distinct id_groupe, count(id_classe) FROM j_groupes_classes group by id_groupe HAVING COUNT(id_classe)>1;"; + $sql="SELECT distinct id_groupe, count(id_classe) FROM j_groupes_classes jgc, classes c WHERE jgc.id_classe=c.id group by id_groupe HAVING COUNT(id_classe)>1 order by c.classe;"; + $res_grp=mysql_query($sql); + if(mysql_num_rows($res_grp)>0) { + $tab_grp=array(); + while($lig_grp=mysql_fetch_object($res_grp)) { + $tab_grp[]=$lig_grp->id_groupe; + } + + for($loop=1;$loop<=$max_per;$loop++) { + echo "
    \n"; + echo "

    Effectifs en période $loop : Export CSV

    \n"; + echo "

    Emplacement de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." :

    \n"; + } + else{ + echo "\n

    Emplacement du ".my_strtolower(getSettingValue("gepi_denom_boite"))." :

    \n"; + } + echo "
    \n"; + */ + + if(getSettingValue("gepi_denom_boite_genre")=='f'){ + echo " +

    Coefficient de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

    \n"; + } + else{ + echo " +

    Coefficient du ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

    \n"; + } + + echo " +
    "; + echo " + + + + + +
    + Valeur de la pondération dans le calcul de la moyenne de l'enseignement
    + (si 0, la moyenne de $nom_court n'intervient pas dans le calcul de la moyenne du carnet de note). +
    + +
    \n"; + echo " +
    "; + + // On force actuellement le mode à 2 + /* + if ($nb_sous_cont != 0) { + $chaine_sous_cont=""; + $i=0; + while ($i < $nb_sous_cont) { + $chaine_sous_cont.="$nom_sous_cont[$i], "; + $i++; + } + + if(getSettingValue("gepi_denom_boite_genre")=='f'){ + echo "

    Notes prises en comptes dans le calcul de la moyenne de la ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

    \n"; + } + else{ + echo "

    Notes prises en comptes dans le calcul de la moyenne du ".my_strtolower(getSettingValue("gepi_denom_boite"))." $nom_court

    \n"; + } + if($i>1){ + echo "\n"; + echo ""; + echo "\n"; + + echo ""; + echo "\n"; @@ -963,6 +1015,22 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ } } + if($afficher_col_notanet=="y") { + if(isset($tab_groupes_notanet[$groups[$i]['id']]['verrouillage'])) { + if($tab_groupes_notanet[$groups[$i]['id']]['verrouillage']=="N") { + //style='background-color:green' + echo "\n"; + } + else { + //style='background-color:orange' + echo "\n"; + } + } + else { + echo "\n"; + } + } + echo "\n"; flush(); /* From 771237d555eab1618a9cf0b06056cae583195dee Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 11 Aug 2013 15:34:00 +0200 Subject: [PATCH 0947/1150] Correctif: Ajout d'insert_confirm_abandon() sur le menu plugins. --- lib/menu_plugins.inc.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/menu_plugins.inc.php b/lib/menu_plugins.inc.php index 0620faba1..7d4e8bc32 100644 --- a/lib/menu_plugins.inc.php +++ b/lib/menu_plugins.inc.php @@ -60,8 +60,8 @@ function menu_plugins() if ($autorise) { $nb_items++; - $tmp_sous_menu_plugins.="
  • attributes()->description."\">".$menu_script->attributes()->titre."
  • \n"; - $tmp_sous_menu_plugins_solo="
  • attributes()->description."\">".$plugin['description']." "."
  • \n"; + $tmp_sous_menu_plugins.="
  • attributes()->description."\"".insert_confirm_abandon().">".$menu_script->attributes()->titre."
  • \n"; + $tmp_sous_menu_plugins_solo="
  • attributes()->description."\"".insert_confirm_abandon().">".$plugin['description']." "."
  • \n"; } } } From e417a1bcde75cf5605b59d4cced8d34c7708e4fa Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 11 Aug 2013 15:41:44 +0200 Subject: [PATCH 0948/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20d=C3=A9sactiv?= =?UTF-8?q?er=20la=20recherche=20de=20lapsus.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- saisie/ajax_appreciations.php | 100 +++++++++++++------------ saisie/saisie_appreciations.php | 6 +- saisie/saisie_avis1.php | 7 +- saisie/saisie_vocabulaire.php | 24 ++++++ sql/data_gepi.sql | 1 + utilitaires/updates/163_to_dev.inc.php | 13 ++++ 6 files changed, 99 insertions(+), 52 deletions(-) diff --git a/saisie/ajax_appreciations.php b/saisie/ajax_appreciations.php index e27acc299..c0f18929c 100644 --- a/saisie/ajax_appreciations.php +++ b/saisie/ajax_appreciations.php @@ -172,50 +172,62 @@ function log_ajax_app($texte) { } } - // Vérification des fautes de frappe/lapsus que l'on saisisse une appréciation ou un avis du conseil de classe - //if($mode=='verif') { - $sql="CREATE TABLE IF NOT EXISTS vocabulaire (id INT(11) NOT NULL auto_increment, - terme VARCHAR(255) NOT NULL DEFAULT '', - terme_corrige VARCHAR(255) NOT NULL DEFAULT '', - PRIMARY KEY (id) - ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; - log_ajax_app($sql); - $create_table=mysql_query($sql); - if(!$create_table) { - echo "Erreur lors de la création de la table 'vocabulaire'."; - } - else { - $sql="SELECT * FROM vocabulaire;"; - //echo "$sql
    "; + if(getSettingValue('active_recherche_lapsus')=='n') { + // on renvoie une réponse valide + header("HTTP/1.0 200 OK"); + echo ' '; + } + else { + // Vérification des fautes de frappe/lapsus que l'on saisisse une appréciation ou un avis du conseil de classe + //if($mode=='verif') { + $sql="CREATE TABLE IF NOT EXISTS vocabulaire (id INT(11) NOT NULL auto_increment, + terme VARCHAR(255) NOT NULL DEFAULT '', + terme_corrige VARCHAR(255) NOT NULL DEFAULT '', + PRIMARY KEY (id) + ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"; log_ajax_app($sql); - $res=mysql_query($sql); - if(mysql_num_rows($res)>0) { - while($lig_voc=mysql_fetch_object($res)) { - $tab_voc[]=$lig_voc->terme; - $tab_voc_corrige[]=$lig_voc->terme_corrige; - log_ajax_app("Tableau des corrections possibles : ".$lig_voc->terme." -> ".$lig_voc->terme_corrige); - } + $create_table=mysql_query($sql); + if(!$create_table) { + echo "Erreur lors de la création de la table 'vocabulaire'."; + } + else { + $sql="SELECT * FROM vocabulaire;"; + //echo "$sql
    "; + log_ajax_app($sql); + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig_voc=mysql_fetch_object($res)) { + $tab_voc[]=$lig_voc->terme; + $tab_voc_corrige[]=$lig_voc->terme_corrige; + log_ajax_app("Tableau des corrections possibles : ".$lig_voc->terme." -> ".$lig_voc->terme_corrige); + } - /* - $tab_tmp=explode(" ",preg_replace("//"," ",$appreciation); - for($loop=0;$loop"; - $chaine_retour=""; - for($loop=0;$loop"; - log_ajax_app("Suspicion de faute de frappe : ".$tab_voc[$loop]." / ".$tab_voc_corrige[$loop]); } - } + */ + $appreciation_test=" ".preg_replace("/[',;\.]/"," ",casse_mot($appreciation,'min'))." "; + //echo "$appreciation_test
    "; + $chaine_retour=""; + for($loop=0;$loop"; + log_ajax_app("Suspicion de faute de frappe : ".$tab_voc[$loop]." / ".$tab_voc_corrige[$loop]); + } + } - if($chaine_retour!="") { - echo $chaine_retour; - log_ajax_app("\$chaine_retour=".$chaine_retour); + if($chaine_retour!="") { + echo $chaine_retour; + log_ajax_app("\$chaine_retour=".$chaine_retour); + } + else { + // et on renvoie une réponse valide + header("HTTP/1.0 200 OK"); + echo ' '; + } } else { // et on renvoie une réponse valide @@ -223,14 +235,8 @@ function log_ajax_app($texte) { echo ' '; } } - else { - // et on renvoie une réponse valide - header("HTTP/1.0 200 OK"); - echo ' '; - } - } - //} - + //} + } } else { // et on renvoie une réponse valide diff --git a/saisie/saisie_appreciations.php b/saisie/saisie_appreciations.php index 654ec3668..099412e27 100644 --- a/saisie/saisie_appreciations.php +++ b/saisie/saisie_appreciations.php @@ -1899,8 +1899,10 @@ function valider_signalement_faute() { } \n"; -if((isset($chaine_test_vocabulaire))&&($chaine_test_vocabulaire!="")) { - echo $chaine_test_vocabulaire; +if(getSettingValue('active_recherche_lapsus')!='n') { + if((isset($chaine_test_vocabulaire))&&($chaine_test_vocabulaire!="")) { + echo $chaine_test_vocabulaire; + } } echo " diff --git a/saisie/saisie_avis1.php b/saisie/saisie_avis1.php index 1afe35c83..378843e1c 100644 --- a/saisie/saisie_avis1.php +++ b/saisie/saisie_avis1.php @@ -903,9 +903,10 @@ function vider_tous_les_avis() { echo "\n"; echo " - -
    - - - -
    "; + echo ""; + echo "
    "; + echo ""; + } + else{ + if(getSettingValue("gepi_denom_boite_genre")=='f'){ + echo "\n"; + echo ""; + echo "\n"; + + echo ""; + echo "
    "; + echo ""; + echo "
    "; + echo ""; + } + else{ + echo "\n"; + echo ""; + echo "\n"; + + echo ""; + echo ""; + echo "\n
    "; + echo ""; + echo "
    "; + echo ""; + } + } + echo "
    \n"; + } + */ + + echo "

    Précision du calcul de la moyenne de $nom_court :

    \n"; + echo " +
    "; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo " +
    "; + + + + + echo "

    Pondération

    \n"; + echo " +
    "; + echo "\n\n"; + echo "\n
    "; + echo "Pour chaque élève, le coefficient de la meilleure note de $nom_court augmente ou diminue de :  
    \n"; + echo " +
    "; + + + + + echo "

    Affichage de la moyenne de $nom_court :

    \n"; + echo " +
    "; + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo ""; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo ""; + echo "
    \n"; + echo " +
    "; + + + echo " + + + + + +

    +"; + + + } +} +//============================================================================== +elseif($mode=="appliquer_modele") { + echo " | Index de la création de modèles"; + + $sql="SELECT * FROM cn_conteneurs_modele WHERE id_modele='$id_modele';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo "

    Le modèle n°$id_modele est inconnu.

    "; + require("../lib/footer.inc.php"); + die(); + } + + $lig=mysql_fetch_object($res); + $nom_court_modele=$lig->nom_court; + $description_modele=$lig->description; + + // Choisir des classes, puis des enseignements + + if(!isset($id_classe)) { + + echo " +

    + + +

    Modèle $nom_court_modele
    +$description_modele

    + +

    Vous allez choisir les classes, les périodes, puis les enseignements dans lesquels créer l'arborescence de ".$gepi_denom_boite."s du modèle choisi.

    "; + + echo "

    Choix des classes :

    \n"; + + // Liste des classes avec élève: + //$sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; + // Liste des classes avec périodes: + $sql="SELECT DISTINCT c.* FROM periodes p, classes c WHERE (c.id=p.id_classe) ORDER BY c.classe;"; + $call_classes=mysql_query($sql); + + $nb_classes=mysql_num_rows($call_classes); + if($nb_classes==0){ + echo "

    Aucune classe avec périodes définies n'a été trouvée.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + + echo "
    + + + \n"; + + // Affichage sur 3 colonnes + $nb_classes_par_colonne=round($nb_classes/3); + + echo "\n"; + echo "\n"; + + $cpt = 0; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
         \n"; + + while($lig_clas=mysql_fetch_object($call_classes)) { + + //affichage 2 colonnes + if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ + echo "\n"; + } + + echo ""; + echo "
    \n"; + $cpt++; + } + + echo "
    \n"; + + echo "

    Tout cocher / Tout décocher

    \n"; + + echo "

    \n"; + echo "
    \n"; + + echo "\n"; + } + elseif(!isset($choix_periodes)) { + echo " | Retour au choix des classes"; + + echo " +

    + + +

    Modèle $nom_court_modele
    +$description_modele

    "; + + echo "

    Choix des périodes :

    \n"; + + //echo "

    A FAIRE: afficher les périodes closes...

    \n"; + + echo "
    + + \n"; + + echo "
      \n"; + echo "
    • \n"; + echo "\n"; + echo "
    • \n"; + echo "
    • \n"; + echo "\n"; + + echo "
      \n"; + + echo "
      \n"; + + $max_per=0; + $cpt=0; + for($i=0;$i"; + $call_per=mysql_query($sql); + $nombre_ligne=mysql_num_rows($call_per); + if($nombre_ligne==0) { + echo "

      Aucune période n'est définie dans la classe de ".get_class_from_id($id_classe[$i]).".

      \n"; + } + else { + echo "\n"; + + $first_per[$id_classe[$i]]=$cpt; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=1; + while($lig_per=mysql_fetch_object($call_per)) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + + echo "\n"; + $cpt++; + } + echo "
      \n"; + echo "Classe de ".get_class_from_id($id_classe[$i])."\n"; + echo "
      \n"; + //echo "Cocher/décocher\n"; + echo "

      Tout cocher / Tout décocher

      \n"; + echo "
      NumPériodeEtat
      \n"; + echo "\n"; + echo "\n"; + if($lig_per->num_periode>$max_per) {$max_per=$lig_per->num_periode;} + echo $lig_per->num_periode; + echo ""; + if($lig_per->verouiller=='O') {echo "Close";} + elseif($lig_per->verouiller=='P') {echo "Partiellement close";} + elseif($lig_per->verouiller=='N') {echo "Ouverte en saisie";} + else {echo "???";} + echo "
      \n"; + $last_per[$id_classe[$i]]=$cpt; + } + echo "
      \n"; + } + + echo "

      Cocher / décocher toutes les périodes

      \n"; + + echo "
      \n"; + + echo "
    • \n"; + + echo "
    \n"; + + echo "\n"; + echo "

    \n"; + echo "
    \n"; + + $chaine_div_coche_lot="Pour toutes les classes,
    "; + for($j=1;$j<=$max_per;$j++) { + $chaine_div_coche_lot.="Cocher / décocher la période $j
    "; + } + $chaine_div_coche_lot.="Cocher / décocher toutes les périodes"; + + echo "\n"; + + } + elseif(!isset($choix_matieres)) { + echo " | Retour au choix des classes"; + //echo " | Retour au choix des périodes"; + echo " | Retour au choix des périodes"; + echo " +

    + + +

    Modèle $nom_court_modele
    +$description_modele

    \n"; + + echo "

    Choix des matières/enseignements :

    \n"; + + echo "
    \n"; + echo "\n"; + echo " + + + \n"; + + echo "
      \n"; + echo "
    • \n"; + echo "\n"; + echo "
    • \n"; + echo "
    • \n"; + echo "\n"; + + echo "
      \n"; + + echo "
      \n"; + + $tab_id_matiere=array(); + $tab_liste_index_grp_matiere=array(); + $cpt=0; + for($i=0;$i"; + $call_group = mysql_query($sql); + $nombre_ligne = mysql_num_rows($call_group); + if($nombre_ligne==0) { + echo "

      Aucun enseignement n'est défini dans la classe de ".get_class_from_id($id_classe[$i]).".

      \n"; + } + else { + + $temoin_classe[$i]='y'; + if($choix_periodes=='certaines') { + // ============= + // AJOUTER UN TEST... si on a choisi 'certaines' périodes, mais sans aucune période cochée + // ============= + if(isset($_POST['num_periode_'.$id_classe[$i]])) { + $tmp_per=$_POST['num_periode_'.$id_classe[$i]]; + for($loop=0;$loop<$max_per;$loop++) { + if(isset($tmp_per[$loop])) { + echo "\n"; + } + } + } + else { + $temoin_classe[$i]='n'; + } + } + + if($temoin_classe[$i]=='y') { + echo "\n"; + + $first_grp[$id_classe[$i]]=$cpt; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $alt=1; + while($lig_grp=mysql_fetch_object($call_group)) { + $alt=$alt*(-1); + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + + $tab_liste_index_grp_matiere[$lig_grp->id_matiere][]=$cpt; + if(!in_array($lig_grp->id_matiere, $tab_id_matiere)) {$tab_id_matiere[]=$lig_grp->id_matiere;} + + $cpt++; + } + echo "
      \n"; + echo "Classe de ".get_class_from_id($id_classe[$i])."\n"; + echo "
      \n"; + //echo "Cocher/décocher\n"; + echo "

      Tout cocher / Tout décocher

      \n"; + echo "
      EnseignementProfesseur
      \n"; + echo "\n"; + echo "\n"; + $sql="SELECT DISTINCT nom,prenom,civilite FROM utilisateurs u, j_groupes_professeurs jgp WHERE u.login=jgp.login AND jgp.id_groupe='$lig_grp->id' ORDER BY u.nom, u.prenom;"; + $res_prof_grp=mysql_query($sql); + if(mysql_num_rows($res_prof_grp)>0) { + $lig_prof_grp=mysql_fetch_object($res_prof_grp); + echo $lig_prof_grp->civilite." ".strtoupper($lig_prof_grp->nom)." ".casse_mot($lig_prof_grp->prenom,"majf2"); + while($lig_prof_grp=mysql_fetch_object($res_prof_grp)) { + echo ", "; + echo $lig_prof_grp->civilite." ".strtoupper($lig_prof_grp->nom)." ".casse_mot($lig_prof_grp->prenom,"majf2"); + } + } + echo "
      \n"; + $last_grp[$id_classe[$i]]=$cpt; + } + } + echo "
      \n"; + } + + + echo "

      Cocher / décocher tous les enseignements

      \n"; + + + echo "
      \n"; + + echo "
    • \n"; + + echo "
    \n"; + + echo "

    \n"; + echo " +
    \n"; + + $chaine_div_coche_lot="Pour toutes les classes,
    "; + + for($j=0;$j + document.getElementById('div_liste_enseignements').style.display='none'; + + function display_div_liste_enseignements() { + if(document.getElementById('choix_matieres_certaines').checked==true) { + document.getElementById('div_liste_enseignements').style.display='block'; + } + else { + document.getElementById('div_liste_enseignements').style.display='none'; + } + } + + if(document.getElementById('div_coche_lot')) { + document.getElementById('div_coche_lot').innerHTML=\"$chaine_div_coche_lot\"; + } + + function coche_lot(num,mode) { + tab_index=new Array(); + "; + + for($j=0;$j\n"; + } + else { + echo " | Retour au choix des classes"; + //echo " | Retour au choix des périodes"; + echo " | Retour au choix des périodes"; + /* + echo " | Retour au choix des enseignements"; + */ + echo " +

    + + +

    Modèle $nom_court_modele
    +$description_modele

    \n"; + + echo "

    Vous allez maintenant créer les ".$gepi_denom_boite."s du modèle $nom_court_modele dans les enseignements sélectionnés :

    \n"; + + // Récapituler avant de valider + + echo "
    + ".add_token_field()." + + + + + + + + + + + + + "; + + /* + for($i=0;$i + + + + "; + } + */ + + + for($i=0;$i0) { + $lig_per=mysql_fetch_object($res_per); + $tab_per[$lig_per->num_periode]=$lig_per->nom_periode; + } + } + } + } + } + else { + $sql="SELECT * FROM periodes WHERE id_classe='".$id_classe[$i]."' ORDER BY num_periode;"; + $res_per=mysql_query($sql); + while($lig_per=mysql_fetch_object($res_per)) { + $tab_per[$lig_per->num_periode]=$lig_per->nom_periode; + } + } + + echo " + + "; + + $cpt_per=0; + foreach($tab_per as $key => $value) { + if($cpt_per>0) { + echo " + "; + } + echo " + + + "; + $cpt_per++; + } + } + + echo " +
    ClassesPériodesEnseignements
    + ".get_nom_classe($id_classe[$i])." + "; + + if($choix_periodes=='certaines') { + if(isset($_POST['num_periode_'.$id_classe[$i]])) { + $tmp_per=$_POST['num_periode_'.$id_classe[$i]]; + $temoin_periode=0; + for($loop=0;$loop<$max_per;$loop++) { + if(isset($tmp_per[$loop])) { + if($temoin_periode>0) {echo ", ";} + echo " + P".$tmp_per[$loop]; + $temoin_periode++; + } + } + } + } + else { + echo " + Toutes"; + } + + echo " + "; + + + if($choix_matieres=='certaines') { + if(isset($_POST['id_groupe_'.$id_classe[$i]])) { + $tmp_grp=$_POST['id_groupe_'.$id_classe[$i]]; + $temoin_grp=0; + for($loop=0;$loop<$max_per;$loop++) { + if(isset($tmp_grp[$loop])) { + if($temoin_grp>0) { + //echo ", "; + echo "
    "; + } + echo " + "; + + $current_group=get_group($tmp_grp[$loop]); + //echo $current_group['id']." "; + echo $current_group['name']." (".$current_group['description'].") ".$current_group['profs']['proflist_string']; + + $temoin_grp++; + } + } + } + } + else { + echo " + Tous"; + } + + echo " +
    + ".get_nom_classe($id_classe[$i])." +
    $value"; + + if($choix_matieres=='certaines') { + if(isset($_POST['id_groupe_'.$id_classe[$i]])) { + $tmp_grp=$_POST['id_groupe_'.$id_classe[$i]]; + $temoin_grp=0; + + for($loop=0;$loop0) { + //echo ", "; + echo "
    "; + } + + // Pour ne pas pas mettre autant de fois le groupe qu'il y a de période: + if($cpt_per==0) { + echo " + "; + } + + $current_group=get_group($tmp_grp[$loop]); + //echo $current_group['id']." "; + echo $current_group['name']." (".$current_group['description'].") ".$current_group['profs']['proflist_string']; + + $temoin_grp++; + } + } + } + } + else { + echo " + Tous"; + } + + echo " +
    + + + + +
    \n"; + //debug_var(); + } +} +else { + echo " | Index de la création de modèles +

    +"; + + echo "

    Mode non implémenté.

    "; +} + +/** + * Pied de page + */ +require("../lib/footer.inc.php"); +?> diff --git a/changelog.txt b/changelog.txt index ebdcaccee..af240e8fb 100644 --- a/changelog.txt +++ b/changelog.txt @@ -18,6 +18,8 @@ Graphes: Carnets de notes: - Visualiser toutes les notes de l'année: Affichage de la moyenne annuelle. - Visualiser toutes les notes de l'année: Possibilité d'afficher les moyennes de bulletins en plus des moyennes de carnets de notes. +- Possibilité d'interdire la création/paramétrage de boites/conteneurs par les professeurs. +- Possibilité, en tant qu'administrateur, de créer des boites/conteneurs par lots dans les carnets de notes d'une sélection d'enseignements. Cahier de textes: - Possibilité d'afficher la liste des documents joints à un CDT. diff --git a/classes/index.php b/classes/index.php index 34d9c658e..7f0ec8a0b 100644 --- a/classes/index.php +++ b/classes/index.php @@ -54,6 +54,9 @@ | Paramétrage de l'accès aux appréciations | Répartir des élèves entre plusieurs groupes | Vérifications +Créer des ".casse_mot(getSettingValue("gepi_denom_boite"), 'min')."s par lots";} +?>

    Ajouter une classe diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index d11030ae3..198d3ffd4 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -107,6 +107,11 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='GepiPeutCreerBoitesProf'; +$texteItem="a le droit de créer et paramétrer des ".$gepiSettings['gepi_denom_boite']."s dans ses carnets de notes"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + //+++++++++++++++++++++++++++ $titreItem=''; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index eb8eb092c..e99fc7024 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1216,3 +1216,5 @@ INSERT INTO setting SET name='mod_disc_terme_incident', value='incident'; INSERT INTO setting SET name='mod_disc_terme_sanction', value='sanction'; INSERT INTO droits SET id='/responsables/infos_parent.php', administrateur='F', scolarite='F', cpe='F', professeur='F', secours='F', eleve='F', responsable='V'; INSERT INTO droits SET id='/cahier_texte_2/ajax_cdt.php', administrateur='F', professeur='F', cpe='F', scolarite='F', eleve='V', responsable='V', secours='F', autre='F', description='Enregistrement des modifications sur CDT',statut=''; +INSERT INTO droits VALUES ('/cahier_notes_admin/creation_conteneurs_par_lots.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Création de conteneurs/boites par lots', '1'); +INSERT INTO setting SET name='GepiPeutCreerBoitesProf', value='yes'; diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index 58a9d0437..fe980d842 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -17,7 +17,7 @@ CREATE TABLE `classes` (`id` smallint(6) unsigned NOT NULL auto_increment, `clas DROP TABLE IF EXISTS `cn_cahier_notes`; CREATE TABLE `cn_cahier_notes` ( `id_cahier_notes` int(11) NOT NULL auto_increment, `id_groupe` INT(11) NOT NULL, `periode` int(11) NOT NULL default '0', PRIMARY KEY (`id_cahier_notes`, `id_groupe`, `periode`), INDEX groupe_periode (`id_groupe`, `periode`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS `cn_conteneurs`; -CREATE TABLE `cn_conteneurs` ( `id` int(11) NOT NULL auto_increment, `id_racine` int(11) NOT NULL default '0', `nom_court` varchar(32) NOT NULL default '', `nom_complet` varchar(64) NOT NULL default '', `description` varchar(128) NOT NULL default '', `mode` char(1) NOT NULL default '2', `coef` decimal(3,1) NOT NULL default '1.0', `arrondir` char(2) NOT NULL default 's1', `ponderation` decimal(3,1) NOT NULL default '0.0', `display_parents` char(1) NOT NULL default '0', `display_bulletin` char(1) NOT NULL default '1', `parent` int(11) NOT NULL default '0', PRIMARY KEY (`id`), INDEX parent_racine (`parent`,`id_racine`), INDEX racine_bulletin (`id_racine`,`display_bulletin`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +CREATE TABLE `cn_conteneurs` ( `id` int(11) NOT NULL auto_increment, `id_racine` int(11) NOT NULL default '0', `nom_court` varchar(32) NOT NULL default '', `nom_complet` varchar(64) NOT NULL default '', `description` varchar(128) NOT NULL default '', `mode` char(1) NOT NULL default '2', `coef` decimal(3,1) NOT NULL default '1.0', `arrondir` char(2) NOT NULL default 's1', `ponderation` decimal(3,1) NOT NULL default '0.0', `display_parents` char(1) NOT NULL default '0', `display_bulletin` char(1) NOT NULL default '1', `parent` int(11) NOT NULL default '0', modele_id_conteneur int(11) NOT NULL default '0', PRIMARY KEY (`id`), INDEX parent_racine (`parent`,`id_racine`), INDEX racine_bulletin (`id_racine`,`display_bulletin`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS `cn_devoirs`; CREATE TABLE `cn_devoirs` (`id` int(11) NOT NULL auto_increment, `id_conteneur` int(11) NOT NULL default '0', `id_racine` int(11) NOT NULL default '0', `nom_court` varchar(32) NOT NULL default '', `nom_complet` varchar(64) NOT NULL default '', `description` varchar(128) NOT NULL default '', `facultatif` char(1) NOT NULL default '', `date` datetime NOT NULL default '0000-00-00 00:00:00', `coef` decimal(3,1) NOT NULL default '0.0', `note_sur` int(11) default '20', `ramener_sur_referentiel` char(1) NOT NULL default 'F', `display_parents` char(1) NOT NULL default '', `display_parents_app` char(1) NOT NULL default '0', `date_ele_resp` datetime NOT NULL, PRIMARY KEY (`id`), INDEX conteneur_date (`id_conteneur`, `date`)) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS `cn_notes_conteneurs`; @@ -859,3 +859,31 @@ commentaire VARCHAR( 255 ) NOT NULL, PRIMARY KEY ( id ) ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; +DROP TABLE IF EXISTS cn_conteneurs_modele; +CREATE TABLE cn_conteneurs_modele ( +id_modele int(11) NOT NULL auto_increment, +nom_court varchar(32) NOT NULL default '', +description varchar(128) NOT NULL default '', +PRIMARY KEY (id_modele) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + +DROP TABLE IF EXISTS cn_conteneurs_modele_conteneurs; +CREATE TABLE cn_conteneurs_modele_conteneurs ( +id int(11) NOT NULL auto_increment, +id_modele int(11) NOT NULL default '0', +id_racine int(11) NOT NULL default '0', +nom_court varchar(32) NOT NULL default '', +nom_complet varchar(64) NOT NULL default '', +description varchar(128) NOT NULL default '', +mode char(1) NOT NULL default '2', +coef decimal(3,1) NOT NULL default '1.0', +arrondir char(2) NOT NULL default 's1', +ponderation decimal(3,1) NOT NULL default '0.0', +display_parents char(1) NOT NULL default '0', +display_bulletin char(1) NOT NULL default '1', +parent int(11) NOT NULL default '0', +PRIMARY KEY (id), +INDEX parent_racine (parent,id_racine), +INDEX racine_bulletin (id_racine,display_bulletin) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci; + diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index 1e3fcd456..11cb41e06 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -238,4 +238,85 @@ $result .= msj_present("La table existe déjà"); } +$result .= "
    "; +$result .= "Ajout d'une table 'cn_conteneurs_modele' :
    "; +$test = sql_query1("SHOW TABLES LIKE 'cn_conteneurs_modele'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE cn_conteneurs_modele ( +id_modele int(11) NOT NULL auto_increment, +nom_court varchar(32) NOT NULL default '', +description varchar(128) NOT NULL default '', +PRIMARY KEY (id_modele) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + + +$result .= "
    "; +$result .= "Ajout d'une table 'cn_conteneurs_modele_conteneurs' :
    "; +$test = sql_query1("SHOW TABLES LIKE 'cn_conteneurs_modele_conteneurs'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE cn_conteneurs_modele_conteneurs ( +id int(11) NOT NULL auto_increment, +id_modele int(11) NOT NULL default '0', +id_racine int(11) NOT NULL default '0', +nom_court varchar(32) NOT NULL default '', +nom_complet varchar(64) NOT NULL default '', +description varchar(128) NOT NULL default '', +mode char(1) NOT NULL default '2', +coef decimal(3,1) NOT NULL default '1.0', +arrondir char(2) NOT NULL default 's1', +ponderation decimal(3,1) NOT NULL default '0.0', +display_parents char(1) NOT NULL default '0', +display_bulletin char(1) NOT NULL default '1', +parent int(11) NOT NULL default '0', +PRIMARY KEY (id), +INDEX parent_racine (parent,id_racine), +INDEX racine_bulletin (id_racine,display_bulletin) +) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + +$result .= "
    "; +$result .= "Initialisation du droit pour un professeur de créer des ".getSettingValue('gepi_denom_boite')."s dans ses carnets de notes : "; +$test = sql_query1("SELECT 1=1 FROM setting WHERE name='GepiPeutCreerBoitesProf'"); +if ($test == -1) { + $result_inter = traite_requete("INSERT INTO setting SET name='GepiPeutCreerBoitesProf', value='yes';"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("Le droit existe déjà (validé ou non)"); +} + +$result .= " -> Ajout d'un champ 'modele_id_conteneur' à la table 'cn_conteneurs' : "; +$test_champ=mysql_num_rows(mysql_query("SHOW COLUMNS FROM cn_conteneurs LIKE 'modele_id_conteneur';")); +if ($test_champ==0) { + $query = mysql_query("ALTER TABLE cn_conteneurs ADD modele_id_conteneur int(11) NOT NULL default '0';"); + if ($query) { + $result .= msj_ok("Ok !"); + } else { + $result .= msj_erreur(); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} + ?> diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index a84bb6f97..d8ecee5ef 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -1021,6 +1021,8 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits SET id='/cahier_texte_2/ajax_cdt.php', administrateur='F', professeur='F', cpe='F', scolarite='F', eleve='V', responsable='V', secours='F', autre='F', description='Enregistrement des modifications sur CDT',statut='';"; +$tab_req[] = "INSERT INTO droits VALUES ('/cahier_notes_admin/creation_conteneurs_par_lots.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F','F', 'Création de conteneurs/boites par lots', '1');"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From 98f6b16f4e06ce58a5d279e60c7b923231f56853 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 8 Aug 2013 21:42:35 +0200 Subject: [PATCH 0942/1150] Initialisation de cnBoitesModeMoy --- utilitaires/updates/161_to_162.inc.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utilitaires/updates/161_to_162.inc.php b/utilitaires/updates/161_to_162.inc.php index a85b42ef7..04a924c1a 100755 --- a/utilitaires/updates/161_to_162.inc.php +++ b/utilitaires/updates/161_to_162.inc.php @@ -402,4 +402,19 @@ $result .= msj_present("Le champ existe déjà"); } +$result .= "
    "; +$result .= "Initialisation du mode de calcul de moyenne quand il y a des ".getSettingValue('gepi_denom_boite')."s dans les carnets de notes : "; +$test = sql_query1("SELECT 1=1 FROM setting WHERE name='cnBoitesModeMoy'"); +if ($test == -1) { + $result_inter = traite_requete("INSERT INTO setting SET name='cnBoitesModeMoy', value='2';"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("Déjà faite."); +} + ?> From ad74f7110f99c0d104e95cf548d06af76b10d66a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 9 Aug 2013 16:21:58 +0200 Subject: [PATCH 0943/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20restreindre?= =?UTF-8?q?=20dans=20Mon=20compte=20ce=20qui=20a=20=C3=A9t=C3=A9=20d=C3=A9?= =?UTF-8?q?fini=20dans=20D=C3=A9finir=20les=20destinataires=20d'alertes,?= =?UTF-8?q?=20les=20cat=C3=A9gories=20d'incidents=20pour=20lesquelles=20on?= =?UTF-8?q?=20souhaite=20=C3=AAtre=20averti.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.txt | 2 + mod_discipline/saisie_incident.php | 2 +- mod_discipline/sanctions_func_lib.php | 48 ++++-- utilisateurs/mon_compte.php | 223 +++++++++++++++++++++++++- 4 files changed, 259 insertions(+), 16 deletions(-) diff --git a/changelog.txt b/changelog.txt index af240e8fb..1ad4f1e94 100644 --- a/changelog.txt +++ b/changelog.txt @@ -35,6 +35,8 @@ Discipline: - Possibilité d'imprimer des fichiers OOo pour les sanctions de type travail et autre. - Possibilité de modifier les termes 'incident' et 'sanction'. - Possibilité de saisir certaines sanctions en tant que professeur (liste à préciser dans Définir les sanctions). +- Possibilité de restreindre dans Mon compte ce qui a été défini dans Définir les destinataires d'alertes, + les catégories d'incidents pour lesquelles on souhaite être averti. Modèles Ooo: - Possibilité de gérer des modèles OOo en compte scolarité ou cpe. diff --git a/mod_discipline/saisie_incident.php b/mod_discipline/saisie_incident.php index 5fcde959f..d0359bd5c 100644 --- a/mod_discipline/saisie_incident.php +++ b/mod_discipline/saisie_incident.php @@ -929,7 +929,7 @@ function recherche_utilisateur($rech_nom,$page) { //echo "\$texte_mail=$texte_mail
    "; if(count($tab_alerte_classe)>0) { - $destinataires=get_destinataires_mail_alerte_discipline($tab_alerte_classe); + $destinataires=get_destinataires_mail_alerte_discipline($tab_alerte_classe, $nature); // La liste des destinataires, admin inclus doivent être définis dans "Définition des destinataires d'alertes" //if($destinataires=="") { // $destinataires=getSettingValue("gepiAdminAdress"); diff --git a/mod_discipline/sanctions_func_lib.php b/mod_discipline/sanctions_func_lib.php index 505a297be..b4d7f5e00 100644 --- a/mod_discipline/sanctions_func_lib.php +++ b/mod_discipline/sanctions_func_lib.php @@ -1020,33 +1020,42 @@ function tab_mod_discipline($ele_login,$mode,$date_debut,$date_fin) { return $retour; } -function get_destinataires_mail_alerte_discipline($tab_id_classe) { +function get_destinataires_mail_alerte_discipline($tab_id_classe, $nature="") { $retour=""; + $id_nature=""; + if($nature!="") { + $sql="SELECT sn.id FROM s_natures sn WHERE sn.nature='".mysql_real_escape_string($nature)."';"; + $res_nature=mysql_query($sql); + if(mysql_num_rows($res_nature)) { + $id_nature=mysql_result($res_nature, 0, "id"); + } + } + $tab_dest=array(); - $temoin=false; + $temoin=false; for($i=0;$i0) { while($lig=mysql_fetch_object($res)) { if($lig->destinataire=='cpe') { - $sql="SELECT DISTINCT u.nom,u.prenom,u.email FROM utilisateurs u, j_eleves_cpe jecpe, j_eleves_classes jec WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.login=jecpe.e_login AND jecpe.cpe_login=u.login AND u.email!='';"; + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.login FROM utilisateurs u, j_eleves_cpe jecpe, j_eleves_classes jec WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.login=jecpe.e_login AND jecpe.cpe_login=u.login AND u.email!='';"; } elseif($lig->destinataire=='professeurs') { - $sql="SELECT DISTINCT u.nom,u.prenom,u.email FROM utilisateurs u, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.login=jeg.login AND jeg.id_groupe=jgp.id_groupe AND jgp.login=u.login AND u.email!='';"; + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.login FROM utilisateurs u, j_eleves_classes jec, j_eleves_groupes jeg, j_groupes_professeurs jgp WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.login=jeg.login AND jeg.id_groupe=jgp.id_groupe AND jgp.login=u.login AND u.email!='';"; } elseif($lig->destinataire=='pp') { - $sql="SELECT DISTINCT u.nom,u.prenom,u.email FROM utilisateurs u, j_eleves_professeurs jep, j_eleves_classes jec WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.id_classe=jep.id_classe AND jec.login=jep.login AND jep.professeur=u.login AND u.email!='';"; + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.login FROM utilisateurs u, j_eleves_professeurs jep, j_eleves_classes jec WHERE jec.id_classe='".$tab_id_classe[$i]."' AND jec.id_classe=jep.id_classe AND jec.login=jep.login AND jep.professeur=u.login AND u.email!='';"; } elseif($lig->destinataire=='administrateur') { - $sql="SELECT DISTINCT u.nom,u.prenom,u.email FROM utilisateurs u WHERE u.statut='administrateur' AND u.email!='';"; + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.login FROM utilisateurs u WHERE u.statut='administrateur' AND u.email!='';"; } elseif($lig->destinataire=='scolarite') { - $sql="SELECT DISTINCT u.nom,u.prenom,u.email FROM utilisateurs u, j_scol_classes jsc WHERE jsc.id_classe='".$tab_id_classe[$i]."' AND jsc.login=u.login AND u.email!='';"; + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.login FROM utilisateurs u, j_scol_classes jsc WHERE jsc.id_classe='".$tab_id_classe[$i]."' AND jsc.login=u.login AND u.email!='';"; } elseif($lig->destinataire=='mail') { - $temoin=true; + $temoin=true; $adresse_sup = $lig->adresse; } @@ -1057,9 +1066,26 @@ function get_destinataires_mail_alerte_discipline($tab_id_classe) { $res2=mysql_query($sql); if(mysql_num_rows($res2)>0) { while($lig2=mysql_fetch_object($res2)) { - if(!in_array($lig2->email,$tab_dest)) { - $tab_dest[]=$lig2->email; - //$tab_dest[]="$lig2->prenom $lig2->nom <$lig2->email>"; + $ajouter_mail="y"; + if($id_nature!="") { + $sql="SELECT * FROM preferences WHERE login='$lig2->login' AND name='mod_discipline_natures_exclues_mail' AND value LIKE '%|$id_nature|%';"; + $test_nat=mysql_query($sql); + if(mysql_num_rows($test_nat)>0) { + $ajouter_mail="n"; + } + } + else { + $mod_discipline_natures_non_categorisees_exclues_mail=getPref($_SESSION['login'],'mod_discipline_natures_non_categorisees_exclues_mail',"n"); + if($mod_discipline_natures_non_categorisees_exclues_mail=="y") { + $ajouter_mail="n"; + } + } + + if($ajouter_mail!="n") { + if(!in_array($lig2->email,$tab_dest)) { + $tab_dest[]=$lig2->email; + //$tab_dest[]="$lig2->prenom $lig2->nom <$lig2->email>"; + } } } } diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index 1ed7d7a5b..ab5c12b44 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -911,6 +911,59 @@ function unhtmlentities($chaineHtml) $msg.="Enregistrement de mod_discipline_travail_par_defaut.
    "; $message_mod_discipline="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; } + + debug_var(); + /* + $_POST['mod_disc_mail_cat_incluse']= Array (*) + $_POST[mod_disc_mail_cat_incluse]['0']= 2 + $_POST[mod_disc_mail_cat_incluse]['1']= 5 + $_POST[mod_disc_mail_cat_incluse]['2']= 6 + $_POST['mod_disc_mail_cat_incluse_NC']= y + + for($loop=0;$loop0) { + while($lig=mysql_fetch_object($res)) { + if(!in_array($lig->id, $mod_disc_mail_cat_incluse)) { + $chaine.="|".$lig->id; + } + } + $chaine.="|"; + + if(!savePref($_SESSION['login'],'mod_discipline_natures_exclues_mail', $chaine)) { + $msg.="Erreur lors de l'enregistrement de mod_discipline_natures_exclues_mail.
    "; + $message_mod_discipline="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + else { + $msg.="Enregistrement de mod_discipline_natures_exclues_mail.
    "; + $message_mod_discipline="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + } + + + if(isset($_POST['mod_disc_mail_cat_incluse_NC'])) { + $value="n"; + } + else { + $value="y"; + } + + if(!savePref($_SESSION['login'],'mod_discipline_natures_non_categorisees_exclues_mail', $value)) { + $msg.="Erreur lors de l'enregistrement de mod_discipline_natures_non_categorisees_exclues_mail.
    "; + $message_mod_discipline="

    Erreur lors de l'enregistrement : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + else { + $msg.="Enregistrement de mod_discipline_natures_non_categorisees_exclues_mail.
    "; + $message_mod_discipline="

    Enregistrement effectué : ".strftime('%d/%m/%Y à %H:%M:%S').".

    \n"; + } + } @@ -2261,7 +2314,8 @@ function cellule_checkbox($prof_login,$item,$num,$special){ } //============================================================================== - +//debug_var(); +$chaine_champs_checkbox_mod_discipline=""; $tab_statuts_mod_discipline=array('professeur', 'administrateur', 'scolarite', 'cpe'); if ((getSettingValue('active_mod_discipline')!='n')&&(in_array($_SESSION['statut'], $tab_statuts_mod_discipline))) { $mod_discipline_travail_par_defaut=getPref($_SESSION['login'], 'mod_discipline_travail_par_defaut', 'Travail : '); @@ -2294,13 +2348,174 @@ function cellule_checkbox($prof_login,$item,$num,$special){ Signalement d'incidents par mail :

    \n"; + $sql2=""; + if($_SESSION['statut']=='cpe') { + $sql="(SELECT DISTINCT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, + classes c, + j_eleves_cpe jecpe, + j_eleves_classes jec + WHERE sam.id_classe=c.id AND + sam.destinataire='cpe' AND + jec.id_classe=sam.id_classe AND + jec.login=jecpe.e_login AND + jecpe.cpe_login='".$_SESSION['login']."' + ORDER BY c.classe)"; + $qualite="CPE"; + } + elseif($_SESSION['statut']=='professeur') { + $sql="(SELECT DISTINCT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, + classes c, + j_eleves_groupes jeg, + j_eleves_classes jec, + j_groupes_professeurs jgp + WHERE sam.id_classe=c.id AND + sam.destinataire='professeur' AND + jec.id_classe=sam.id_classe AND + jec.login=jeg.login AND + jeg.id_groupe=jgp.id_groupe AND + jgp.login='".$_SESSION['login']."' + ORDER BY c.classe)"; + $qualite="professeur"; + if(is_pp($_SESSION['login'])) { + $sql2="(SELECT DISTINCT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, + classes c, + j_eleves_professeurs jep, + j_eleves_classes jec + WHERE sam.id_classe=c.id AND + sam.destinataire='professeur' AND + jec.id_classe=sam.id_classe AND + jec.login=jep.login AND + jep.id_classe=jec.id_classe AND + jep.professeur='".$_SESSION['login']."' + ORDER BY c.classe)"; + } + } + elseif($_SESSION['statut']=='administrateur') { + $sql="(SELECT DISTINCT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, classes c WHERE sam.id_classe=c.id AND destinataire='administrateur' ORDER BY c.classe)"; + $qualite="Administrateur"; + } + elseif($_SESSION['statut']=='scolarite') { + $sql="(SELECT DISTINCT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, + classes c, + j_scol_classes jsc + WHERE sam.id_classe=c.id AND + sam.destinataire='scolarite' AND + jsc.id_classe=sam.id_classe AND + jsc.login='".$_SESSION['login']."' + ORDER BY c.classe)"; + $qualite="compte Scolarité"; + } + $res_mail=mysql_query($sql); + if(mysql_num_rows($res_mail)>0) { + echo "

    Vous êtes destinataire, en tant que $qualite, des mail concernant les incidents impliquant des élèves des classes suivantes :
    "; + $cpt=0; + $tab_classe_mail=array(); + while($lig_mail=mysql_fetch_object($res_mail)) { + if(!in_array($lig_mail->id_classe, $tab_classe_mail)) { + if($cpt>0) { + echo ", "; + } + echo $lig_mail->classe; + $tab_classe_mail[]=$lig_mail->id_classe; + } + $cpt++; + } + + } + else { + echo "

    Vous n'êtes destinataire, en tant que $qualite, d'aucun mail signalant des incidents.
    Si vous pensez que c'est une erreur, contactez l'administrateur.

    "; + } + + echo "

    Dans le cas où vous recevez des signalements par mail, vous pouvez restreindre les catégories d'incidents pour lesquelles vous souhaitez être informé :
    \n"; + $tab_id_categories_exclues=array(); + $mod_discipline_natures_exclues_mail=getPref($_SESSION['login'], 'mod_discipline_natures_exclues_mail', ''); + if($mod_discipline_natures_exclues_mail!="") { + $tmp_tab=explode("|", $mod_discipline_natures_exclues_mail); + for($loop=0;$loopAucune catégorie n'est définie ???

    "; + } + else { + while($lig=mysql_fetch_object($res)) { + echo "id')\" "; + if(!in_array($lig->id, $tab_id_categories_exclues)) { + echo "checked "; + } + echo "/>
    "; + if($chaine_champs_checkbox_mod_discipline!="") {$chaine_champs_checkbox_mod_discipline.=", ";} + $chaine_champs_checkbox_mod_discipline.="'mod_disc_mail_cat_incluse_$lig->id'"; + } + + echo "
    "; + if($chaine_champs_checkbox_mod_discipline!="") {$chaine_champs_checkbox_mod_discipline.=", ";} + $chaine_champs_checkbox_mod_discipline.="'mod_disc_mail_cat_incluse_NC'"; + } + + if($sql2!="") { + $res_mail=mysql_query($sql2); + if(mysql_num_rows($res_mail)>0) { + echo "

    Vous êtes destinataire, en tant que ".getSettingValue('gepi_prof_suivi').", des mail concernant les incidents impliquant des élèves des classes suivantes : "; + $cpt=0; + $tab_classe_mail=array(); + while($lig_mail=mysql_fetch_object($res_mail)) { + if(!in_array($lig_mail->id_classe, $tab_classe_mail)) { + if($cpt>0) { + echo ", "; + } + echo $lig_mail->classe; + $tab_classe_mail[]=$lig_mail->id_classe; + } + $cpt++; + } + echo "

    \n"; + } + else { + echo "

    Vous n'êtes destinataire, en tant que ".getSettingValue('gepi_prof_suivi').", d'aucun mail signalant des incidents.
    Si vous pensez que c'est une erreur, contactez l'administrateur.

    "; + } + } + //$sql.=" UNION (SELECT c.id, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, classes c WHERE sam.id_classe=c.id AND destinataire='mail' AND adresse='".$_SESSION['adresse']."' ORDER BY c.classe))"; + + $sql="(SELECT c.classe, sam.id_classe, sam.destinataire FROM s_alerte_mail sam, classes c WHERE sam.id_classe=c.id AND destinataire='mail' AND adresse='".$_SESSION['email']."' ORDER BY c.classe)"; + //echo "$sql
    "; + $res_mail=mysql_query($sql); + if(mysql_num_rows($res_mail)>0) { + echo "

    Vous êtes destinataire, par l'adresse mail saisie directement par l'administrateur, des mail concernant les incidents impliquant des élèves des classes suivantes : "; + $cpt=0; + $tab_classe_mail=array(); + while($lig_mail=mysql_fetch_object($res_mail)) { + if(!in_array($lig_mail->id_classe, $tab_classe_mail)) { + if($cpt>0) { + echo ", "; + } + echo $lig_mail->classe; + $tab_classe_mail[]=$lig_mail->id_classe; + } + $cpt++; + } + echo "

    \n"; + + echo "

    Il n'est pas possible actuellement de restreindre les signalements par mail à certaines catégories d'incidents avec ce mode.

    "; + } + echo "

    \n"; echo "\n"; echo "

    \n"; if(isset($message_mod_discipline)) {echo $message_mod_discipline;} - + echo "\n"; echo "\n"; @@ -2754,7 +2969,7 @@ function test_play_footer_sound() { echo js_checkbox_change_style('checkbox_change', 'texte_', 'y'); echo "\n"; - //============================================ + \n"; + //============================================ + + } else { + echo "
    \n"; + echo "

    Attention : aucune classe n'a été définie dans la base GEPI !

    \n"; + } ?> diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index ab5c12b44..e963545ab 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -2462,6 +2462,10 @@ classes c, echo "/>
    "; if($chaine_champs_checkbox_mod_discipline!="") {$chaine_champs_checkbox_mod_discipline.=", ";} $chaine_champs_checkbox_mod_discipline.="'mod_disc_mail_cat_incluse_NC'"; + + if(getSettingValue('DisciplineNaturesRestreintes')=='2') { + echo "

    Vous utilisez une liste figée/restreinte de natures d'incidents.
    Vous ne devriez pas avoir d'incidents de nature non catégorisée.

    \n"; + } } if($sql2!="") { @@ -2516,6 +2520,12 @@ classes c, if(isset($message_mod_discipline)) {echo $message_mod_discipline;} + if(getSettingValue('DisciplineNaturesRestreintes')!='2') { + echo "

    NOTES : Les natures d'incidents ne sont pas figées/restreintes.
    + Les utilisateurs peuvent taper librement de nouvelles natures d'incidents.
    + Si vous refusez de recevoir les incidents de nature non catégorisée, vous risquez de rater un incident qui sera par la suite catégorisé dans une catégorie que vous suivez.

    "; + } + echo "\n"; echo "\n"; @@ -2837,6 +2847,7 @@ function test_play_footer_sound() { if(getSettingAOui("active_bulletins")) { $sql="SELECT 1=1 FROM signature_droits WHERE login='".$_SESSION['login']."';"; + //echo "$sql
    "; $test=mysql_query($sql); if(mysql_num_rows($test)>0) { $tab_signature=get_tab_signature_bull(); From ddb9fbf0d25291e5ee9aa40840bdf64b8f2b1924 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 10 Aug 2013 19:34:47 +0200 Subject: [PATCH 0946/1150] =?UTF-8?q?Affichage=20d'une=20colonne=20notanet?= =?UTF-8?q?=20quand=20des=20saisies=20d'appr=C3=A9ciations=20pour=20les=20?= =?UTF-8?q?fiches=20brevet=20sont=20possibles.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accueil_simpl_prof.php | 70 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/accueil_simpl_prof.php b/accueil_simpl_prof.php index 48743067f..d50ff3dc0 100644 --- a/accueil_simpl_prof.php +++ b/accueil_simpl_prof.php @@ -107,6 +107,51 @@ if($pref_accueil_liste_pdf=="y"){$colspan++;} +$afficher_col_notanet="n"; +/* +$sql="SELECT nv.*, jgc.id_groupe FROM notanet_verrou nv, + j_groupes_classes jgc, + j_groupes_professeurs jgp + WHERE nv.verrouillage='N' AND + nv.id_classe=jgc.id_classe AND + jgc.id_groupe=jgp.id_groupe AND + jgp.login='".$_SESSION['login']."';"; +*/ +$sql="SELECT nv.*, jgc.id_groupe FROM notanet_verrou nv, + j_groupes_classes jgc, + j_groupes_professeurs jgp + WHERE nv.id_classe=jgc.id_classe AND + jgc.id_groupe=jgp.id_groupe AND + jgp.login='".$_SESSION['login']."';"; +//echo "$sql
    "; +$res_notanet=mysql_query($sql); +if(mysql_num_rows($res_notanet)>0) { + //$afficher_col_notanet="y"; + $tab_groupes_notanet=array(); + while($lig_notanet=mysql_fetch_object($res_notanet)) { + // On peut avoir plusieurs lignes retournées, s'il y a plusieurs types_brevet dans une classe/groupe + if(isset($tab_groupes_notanet[$lig_notanet->id_groupe]['verrouillage'])) { + if($lig_notanet->verrouillage=="N") { + $tab_groupes_notanet[$lig_notanet->id_groupe]['verrouillage']=$lig_notanet->verrouillage; + } + } + else { + $tab_groupes_notanet[$lig_notanet->id_groupe]['verrouillage']=$lig_notanet->verrouillage; + } + //echo "\$tab_groupes_notanet[$lig_notanet->id_groupe]['verrouillage']=".$tab_groupes_notanet[$lig_notanet->id_groupe]['verrouillage']."
    "; + + if($lig_notanet->verrouillage=="N") { + $afficher_col_notanet="y"; + } + // mod_notanet/saisie_app.php?id_groupe=2253 + } +} +/* +echo "
    ";
    +print_r($tab_groupes_notanet);
    +echo "
    "; +*/ + // Préférences des profs à récupérer par la suite dans la table 'preferences': // 1: icones // 2: textes @@ -118,7 +163,7 @@ // CELA A ETE DESACTIVE... PARCE QUE LISIBLE UNIQUEMENT EN MODE icones seuls -// Styles spacifiques à la page avec chemin relatif à la racine du Gepi: +// Styles specifiques à la page avec chemin relatif à la racine du Gepi: //$style_specifique="accueil_simpl_prof.css"; $style_specifique="accueil_simpl_prof"; @@ -519,6 +564,13 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ } } } +if($afficher_col_notanet=="y") { + echo "0)){echo " rowspan='3'";} + echo ">\n"; + echo "Notanet\n"; + echo "\n"; +} echo "
     
    Visible à compter du - - - - Petit calendrier - à - -
    - -

    - - -


    - -Cochez les destinataires de votre message et validez.

    "; -$tab_statut=array('professeur', 'scolarite', 'cpe', 'administrateur'); -$cpt_u=0; -$chaine_js_login_u="var login_u=new Array("; -$chaine_js_designation_u="var designation_u=new Array("; -$chaine_prof_classe=""; -for($loop=0;$loop0) { - $texte_infobulle.="

    ".ucfirst($tab_statut[$loop]).""; - - if($tab_statut[$loop]=='professeur') { - //$chaine_prof_classe=""; - $sql="SELECT c.id, c.classe FROM classes c ORDER BY classe;"; - $res_classe=mysql_query($sql); - if(mysql_num_rows($res_classe)>0) { - $texte_infobulle.=" de "; - } - } - - $texte_infobulle.="

    "; - $texte_infobulle.="
    "; - - while($lig_u=mysql_fetch_object($res_u)) { - $designation_u="$lig_u->civilite ".casse_mot($lig_u->nom, 'maj')." ".casse_mot($lig_u->prenom, 'majf2'); - $texte_infobulle.=""; - $chaine_js_login_u.="'$lig_u->login',"; - $chaine_js_designation_u.="'".preg_replace("/'/", " ", $designation_u)."',"; - $cpt_u++; - } - $texte_infobulle.="
    "; - } -} -if($cpt_u>0) { - $chaine_js_login_u=substr($chaine_js_login_u,0,-1); - $chaine_js_designation_u=substr($chaine_js_designation_u,0,-1); -} -$chaine_js_login_u.=");"; -$chaine_js_designation_u.=");"; -$texte_infobulle.="


    "; -$tabdiv_infobulle[]=creer_div_infobulle("div_choix_dest",$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); - -?> - - - -?> - - - -

    Historique de vos messages envoyés :

    - - -\n"; - } - elseif(mysql_num_rows($test)<=4) { - echo "
    \n"; - } - else { - echo "
    \n"; - } - echo "
    \n"; - echo affiche_historique_messages($_SESSION['login']); -?> -
    -
    - - - - -

    Historique de vos messages reçus :

    - -
    -
    - -
    -
    - - - -


    - - From e9cb22aab9ccaab80b65e381ccd9449d7e1a65dd Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 31 Aug 2013 19:54:21 +0200 Subject: [PATCH 0994/1150] =?UTF-8?q?Correctif=20pour=20=C3=A9viter=20des?= =?UTF-8?q?=20imbrications=20de=20logout.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 4 ++-- mod_alerte/form_message.php | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 84826334a..3ee9a1514 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -7253,10 +7253,10 @@ function affichage_temoin_messages_recus($portee="header_et_fixe") { var nb_millisec_check_message=$nb_sec*1000; function function_check_message() { - new Ajax.Updater($('span_messages_recus'),'$gepiPath/mod_alerte/form_message.php?mode=check',{method: 'get'});"; + new Ajax.Updater($('span_messages_recus'),'$gepiPath/mod_alerte/form_message.php?mode_js=y&mode=check',{method: 'get'});"; if($portee!="header_seul") { $retour.=" - new Ajax.Updater($('temoin_messagerie_non_vide'),'$gepiPath/mod_alerte/form_message.php?mode=check2',{method: 'get'});"; + new Ajax.Updater($('temoin_messagerie_non_vide'),'$gepiPath/mod_alerte/form_message.php?mode_js=y&mode=check2',{method: 'get'});"; } $retour.=" setTimeout('function_check_message()', nb_millisec_check_message); diff --git a/mod_alerte/form_message.php b/mod_alerte/form_message.php index 30f93e45e..0516febbf 100644 --- a/mod_alerte/form_message.php +++ b/mod_alerte/form_message.php @@ -38,7 +38,9 @@ header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); die(); } else if ($resultat_session == '0') { - header("Location: ../logout.php?auto=1"); + if(!isset($_GET['mode_js'])) { + header("Location: ../logout.php?auto=1"); + } die(); } From 480e2fef95440a4410fab6586bac8959d170b22c Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Sep 2013 17:52:20 +0200 Subject: [PATCH 0995/1150] =?UTF-8?q?Modification=20cosm=C3=A9tique.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- responsables/maj_import3.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index 84653e8b3..0232ec842 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -450,13 +450,14 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ echo "

    Vous allez importer des fichiers d'exports XML de Sconet.
    \nLes fichiers requis au cours de la procédure sont dans un premier temps ElevesAvecAdresses.xml, puis le fichier ResponsablesAvecAdresses.xml

    \n"; echo "
    \n"; + echo "
    \n"; echo add_token_field(); //echo "\n"; echo "\n"; //echo "\n"; echo "

    Sélectionnez le fichier ElevesAvecAdresses.xml (ou ElevesSansAdresses.xml):
    \n"; - echo "
    \n"; + echo "
    \n"; if ($gepiSettings['unzipped_max_filesize']>=0) { echo "

    REMARQUE : Vous pouvez fournir à Gepi le fichier compressé issu directement de SCONET. (Ex : ElevesAvecAdresses.zip)

    "; } @@ -628,6 +629,7 @@ function check_champ_file() { } \n"; + echo "
    \n"; echo "
    \n"; echo "

    Il est recommandé d'importer les informations élèves et de ne passer qu'ensuite à l'import des informations responsables.
    \n"; @@ -5393,13 +5395,14 @@ function modif_case(rang,type,statut){ echo "

    \n"; + echo "
    \n"; //============================== // AJOUT pour tenir compte de l'automatisation ou non: //echo "\n"; //============================== echo "

    Veuillez fournir le fichier ResponsablesAvecAdresses.xml :
    \n"; if(isset($_GET['maj_eleve_sautee'])) {echo "";} - echo "
    \n"; + echo "
    \n"; echo "\n"; //echo "\n"; if ($gepiSettings['unzipped_max_filesize']>=0) { @@ -5488,6 +5491,7 @@ function check_champ_file() { } \n"; + echo "

    \n"; echo "
    \n"; echo "


    \n"; From f0f81b1620b8e99cb0a540aa6e6bc607db71b326 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Sep 2013 21:05:16 +0200 Subject: [PATCH 0996/1150] =?UTF-8?q?Ajout=20d'un=20droit=20oubli=C3=A9.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sql/data_gepi.sql | 1 + 1 file changed, 1 insertion(+) diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index cc1ea4d91..38242eb57 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -1172,3 +1172,4 @@ INSERT INTO droits SET id='/mod_notanet/OOo/imprime_ooo.php',administrateur='V', INSERT INTO droits SET id='/mod_notanet/OOo/fiches_brevet.php',administrateur='V',professeur='F',cpe='F',scolarite='V',eleve='F',responsable='F',secours='F',autre='F',description='Fiches brevet OpenOffice',statut=''; INSERT INTO droits SET id='/cahier_texte_2/consultation2.php',administrateur='V',professeur='V',cpe='V',scolarite='V',eleve='V',responsable='V',secours='F',autre='V',description='Cahiers de textes: Consultation',statut=''; INSERT INTO droits SET id='/mod_trombinoscopes/plan_de_classe.php',administrateur='F',professeur='V',cpe='F',scolarite='F',eleve='F',responsable='F',secours='F',autre='F',description='Plan de classe',statut=''; +INSERT INTO droits VALUES ('/gestion/param_ordre_item.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Modifier l ordre des items dans les menus', ''); From 8f436c6236718a27d15cae37802c42ee035c3c98 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 2 Sep 2013 21:12:32 +0200 Subject: [PATCH 0997/1150] =?UTF-8?q?Correctif=20sur=20les=20groupes=20?= =?UTF-8?q?=C3=A0=20cheval=20sur=20plusieurs=20classes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/repartition_ele_grp.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/groupes/repartition_ele_grp.php b/groupes/repartition_ele_grp.php index c60c9649f..2d7c1e7a1 100644 --- a/groupes/repartition_ele_grp.php +++ b/groupes/repartition_ele_grp.php @@ -604,7 +604,7 @@ function controle_doublons(num) { //=============================== echo "
    \n"; echo "
    \n"; - echo "
    \n"; + echo "
    \n"; for($i=0;$i\n";} for($i=0;$i\n";} echo "\n"; @@ -678,7 +678,7 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) \n"; echo "\n"; - echo "
    \n"; + echo "
    \n"; echo add_token_field(); for($i=0;$i\n";} for($i=0;$i\n";} @@ -775,7 +775,8 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) } } else { - $sql="SELECT jeg.login FROM j_eleves_groupes jeg, eleves e WHERE jeg.login=e.login AND ($chaine_groupes) AND jeg.periode='$num_periode' ORDER BY e.nom, e.prenom;"; + $sql="SELECT DISTINCT jeg.login FROM j_eleves_groupes jeg, eleves e WHERE jeg.login=e.login AND ($chaine_groupes) AND jeg.periode='$num_periode' ORDER BY e.nom, e.prenom;"; + //echo "$sql
    "; $res_ele_grp=mysql_query($sql); if(mysql_num_rows($res_ele_grp)>0) { while($lig_ele_grp=mysql_fetch_object($res_ele_grp)) { @@ -936,7 +937,7 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) //=============================== echo "\n"; - echo "
    \n"; + echo "
    \n"; echo add_token_field(); for($i=0;$i\n";} for($i=0;$i\n";} From 6c276c72b067caaeeb27e1a5facab34dbdb5be36 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 07:53:44 +0200 Subject: [PATCH 0998/1150] Correctif MyISAM --- responsables/maj_import3.php | 14 +++++++------- utilitaires/updates/161_to_162.inc.php | 2 +- utilitaires/updates/162_to_163.inc.php | 6 +++--- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index 22122ddc3..e0ff78bb1 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -809,7 +809,7 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ `TEL_PORT` varchar(255) $chaine_mysql_collate NOT NULL default '', `TEL_PROF` varchar(255) $chaine_mysql_collate NOT NULL default '', MEF_CODE VARCHAR(50) DEFAULT '' NOT NULL - );"; + ) ENGINE=MyISAM;"; info_debug($sql); $create_table = mysql_query($sql); @@ -1943,7 +1943,7 @@ function modifcase(mode){ //========================================= // 20110911 - $sql="CREATE TABLE IF NOT EXISTS tempo4 ( col1 varchar(100) NOT NULL default '', col2 varchar(100) NOT NULL default '', col3 varchar(100) NOT NULL default '', col4 varchar(100) NOT NULL default '');"; + $sql="CREATE TABLE IF NOT EXISTS tempo4 ( col1 varchar(100) NOT NULL default '', col2 varchar(100) NOT NULL default '', col3 varchar(100) NOT NULL default '', col4 varchar(100) NOT NULL default '') ENGINE=MyISAM;"; info_debug($sql); $res_tempo4=mysql_query($sql); @@ -4093,7 +4093,7 @@ function modifcase(mode){ $sql="CREATE TABLE IF NOT EXISTS temp_ele_classe ( `ele_id` varchar(40) $chaine_mysql_collate NOT NULL default '', `divcod` varchar(40) $chaine_mysql_collate NOT NULL default '' - );"; + ) ENGINE=MyISAM;"; info_debug($sql); $create_table = mysql_query($sql); @@ -5494,7 +5494,7 @@ function modif_case(rang,type,statut){ `mel` varchar(100) $chaine_mysql_collate NOT NULL, `adr_id` varchar(10) $chaine_mysql_collate NOT NULL, `statut` varchar(100) $chaine_mysql_collate NOT NULL, - PRIMARY KEY (`pers_id`));"; + PRIMARY KEY (`pers_id`)) ENGINE=MyISAM;"; info_debug($sql); $create_table = mysql_query($sql); @@ -5750,7 +5750,7 @@ function modif_case(rang,type,statut){ `pers_id` varchar(10) $chaine_mysql_collate NOT NULL, `resp_legal` varchar(1) $chaine_mysql_collate NOT NULL, `pers_contact` varchar(1) $chaine_mysql_collate NOT NULL - );"; + ) ENGINE=MyISAM;"; info_debug($sql); $create_table = mysql_query($sql); @@ -5912,7 +5912,7 @@ function modif_case(rang,type,statut){ `pays` varchar(50) $chaine_mysql_collate NOT NULL, `commune` varchar(50) $chaine_mysql_collate NOT NULL, `statut` varchar(100) $chaine_mysql_collate NOT NULL, - PRIMARY KEY (`adr_id`));"; + PRIMARY KEY (`adr_id`)) ENGINE=MyISAM;"; info_debug($sql); //echo "$sql
    "; $create_table = mysql_query($sql); @@ -9497,7 +9497,7 @@ function modifcase(mode){ //========================================= // 20110911 - $sql="CREATE TABLE IF NOT EXISTS tempo4 ( col1 varchar(100) $chaine_mysql_collate NOT NULL default '', col2 varchar(100) $chaine_mysql_collate NOT NULL default '', col3 varchar(100) $chaine_mysql_collate NOT NULL default '', col4 varchar(100) $chaine_mysql_collate NOT NULL default '');"; + $sql="CREATE TABLE IF NOT EXISTS tempo4 ( col1 varchar(100) $chaine_mysql_collate NOT NULL default '', col2 varchar(100) $chaine_mysql_collate NOT NULL default '', col3 varchar(100) $chaine_mysql_collate NOT NULL default '', col4 varchar(100) $chaine_mysql_collate NOT NULL default '') ENGINE=MyISAM;"; info_debug($sql); $res_tempo4=mysql_query($sql); diff --git a/utilitaires/updates/161_to_162.inc.php b/utilitaires/updates/161_to_162.inc.php index 04a924c1a..b7803014c 100755 --- a/utilitaires/updates/161_to_162.inc.php +++ b/utilitaires/updates/161_to_162.inc.php @@ -274,7 +274,7 @@ value varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY id_classe_name (id_classe,name) - ) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } diff --git a/utilitaires/updates/162_to_163.inc.php b/utilitaires/updates/162_to_163.inc.php index 04291700d..6db313b43 100755 --- a/utilitaires/updates/162_to_163.inc.php +++ b/utilitaires/updates/162_to_163.inc.php @@ -103,7 +103,7 @@ vu tinyint(4) NOT NULL, date_vu timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (id) - ) CHARACTER SET utf8 COLLATE utf8_general_ci;"); + ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } @@ -185,7 +185,7 @@ date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, commentaires text NOT NULL, PRIMARY KEY ( id ) - ) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel au CN en periode close';"); + ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel au CN en periode close';"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } @@ -207,7 +207,7 @@ date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, commentaires text NOT NULL, PRIMARY KEY ( id ) - ) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close';"); + ) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close';"); if ($result_inter == '') { $result .= msj_ok("SUCCES !"); } From fe68c0e1d3fedbbeda2aac095a7f748c45ff83d2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 07:53:45 +0200 Subject: [PATCH 0999/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20vider=20les?= =?UTF-8?q?=20tables=20temporaires.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 46 ++++++++++++++++++++++++++++++++++++ utilitaires/clean_tables.php | 25 +++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 3ee9a1514..cdabc4d84 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -7559,4 +7559,50 @@ function get_tab_mef($mode="indice_mef_code") { } return $tab_mef; } + +function clean_temp_tables() { + $retour=""; + $tab_table=array("temp_abs_import", + "temp_ele_classe", + "temp_etab_import", + "temp_gep_import", + "temp_gep_import2", + "temp_grp", + "temp_matieres_import", + "temp_resp_adr_import", + "temp_resp_pers_import", + "temp_responsables2_import", + "tempo", + "tempo2", + "tempo3", + "tempo3_cdt", + "tempo4", + "tempo_utilisateurs"); + $nb_tables_videes=0; + for($i=0;$i\n"; + $res_test=mysql_query($sql); + if(mysql_num_rows($res_test)>0) { + if($i>0) {$retour.=", ";} + $retour.=$tab_table[$i]; + + $sql="SELECT 1=1 FROM $tab_table[$i];"; + //echo "$sql
    \n"; + $res_nb=mysql_query($sql); + $nb_reg=mysql_num_rows($res_nb); + $retour.=" (".$nb_reg.")"; + + if($nb_reg>0) { + $sql="TRUNCATE TABLE $tab_table[$i];"; + //echo "$sql
    \n"; + $suppr=mysql_query($sql); + if(!$suppr) {$retour.=" ERREUR";} + else {$nb_tables_videes++;} + } + } + } + $retour.="
    $nb_tables_videes table(s) vidée(s)."; + return $retour; +} ?> diff --git a/utilitaires/clean_tables.php b/utilitaires/clean_tables.php index 59b16432a..9a17c3ff7 100644 --- a/utilitaires/clean_tables.php +++ b/utilitaires/clean_tables.php @@ -3,7 +3,7 @@ /* * $Id$ * -* Copyright 2001-2012 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun +* Copyright 2001-2013 Thomas Belliard, Laurent Delineau, Edouard Hue, Eric Lebrun * This file is part of GEPI. * * GEPI is free software; you can redistribute it and/or modify @@ -2452,6 +2452,16 @@ function clean_table_XXX() { } echo "

    \n"; + echo "

    Terminé.

    \n"; +} elseif (isset($_POST['action']) AND $_POST['action'] == 'clean_temp_tables') { + echo "

    Retour Retour accueil "; + echo "| Retour page Vérification / Nettoyage des tables\n"; + echo "

    \n"; + + echo "

    Nettoyage des tables temporaires : \n"; + echo clean_temp_tables(); + echo "

    \n"; + echo "

    Terminé.

    \n"; } elseif((isset($_POST['action']) AND $_POST['action'] == 'verif_interclassements')||(isset($_POST['maj']) AND $_POST['maj'] == 'verif_interclassements')||(isset($_GET['maj']) AND $_GET['maj'] == 'verif_interclassements')) { echo "

    Retour Retour accueil "; @@ -3612,6 +3622,19 @@ function clean_table_XXX() { \n"; echo "

    \n"; + echo "
    \n"; + + echo "

    Vider les tables temporaires utilisées lors de l'initialisation de l'année, lors de l'archivage des cahiers de textes en fin d'année, lors de l'import des absences depuis un XML de Sconet,...
    + Ces tables peuvent prendre inutilement de la place lorsque vous faites une sauvegarde.
    + En revanche, évitez de les vider lorsqu'une opération d'initialisation, archive, import,... est en cours (vous perturberiez cette opération).

    \n"; + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "\n"; + echo "
    \n"; + echo "
    \n"; //echo "
    \n"; From 8c77efd5dcf90e20a4deb6b13d7b171c44a7f93a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 07:53:46 +0200 Subject: [PATCH 1000/1150] Suppression d'une coquille de copier/coller --- bulletin/verrouillage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bulletin/verrouillage.php b/bulletin/verrouillage.php index 9f3d1a18f..ee52c3396 100644 --- a/bulletin/verrouillage.php +++ b/bulletin/verrouillage.php @@ -470,7 +470,7 @@ function actualise_cell_(id_classe,i) {
  • Si vous ne voyez pas toutes les classes, il se peut que certaines classes ne vous soient pas associées.
    Demandez alors à un compte administrateur de vous associer des classes dans Gestion des bases/Gestion des classes/Paramétrage scolarité

  • "; if(getSettingValue("active_module_absence")=="2"){ echo " -
  • Il est possible de mettre à jour d'un coup, en compte administrateur, les dates de fin de période depuis le paramétrage du module Emploi du temps : Menu Gestion/Gestion du calendrier/Mettre à jour les dates de fin de période pour le module Absences, d'après les date de périodes de cours ci-dessous.\">Date Fin

  • "; +
  • Il est possible de mettre à jour d'un coup, en compte administrateur, les dates de fin de période depuis le paramétrage du module Emploi du temps : Menu Gestion/Gestion du calendrier/Mettre à jour les dates de fin de période pour le module Absences, d'après les date de périodes de cours ci-dessous.

  • "; } echo " \n"; From 5d620e9ff8e6e0d0e2a245e4dd927afc13b47ec6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 07:54:21 +0200 Subject: [PATCH 1001/1150] Correctif MyISAM --- sql/structure_gepi.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sql/structure_gepi.sql b/sql/structure_gepi.sql index e1f7b31a2..336566f28 100644 --- a/sql/structure_gepi.sql +++ b/sql/structure_gepi.sql @@ -823,7 +823,7 @@ name varchar(100) NOT NULL, value varchar(255) NOT NULL, PRIMARY KEY (id), UNIQUE KEY id_classe_name (id_classe,name) -) CHARACTER SET utf8 COLLATE utf8_general_ci; +) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS messagerie; CREATE TABLE IF NOT EXISTS messagerie ( @@ -838,7 +838,7 @@ date_visibilite timestamp NOT NULL, vu tinyint(4) NOT NULL, date_vu timestamp NOT NULL DEFAULT '0000-00-00 00:00:00', PRIMARY KEY (id) -) CHARACTER SET utf8 COLLATE utf8_general_ci; +) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci; DROP TABLE IF EXISTS acces_cn; CREATE TABLE acces_cn ( @@ -848,7 +848,7 @@ periode INT( 11 ) NOT NULL , date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, commentaires text NOT NULL, PRIMARY KEY ( id ) -) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel au CN en periode close'; +) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel au CN en periode close'; DROP TABLE IF EXISTS acces_exceptionnel_matieres_notes; CREATE TABLE acces_exceptionnel_matieres_notes ( @@ -858,5 +858,5 @@ periode INT( 11 ) NOT NULL , date_limite timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, commentaires text NOT NULL, PRIMARY KEY ( id ) -) CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close'; +) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci COMMENT = 'Acces exceptionnel à la modif de notes du bulletin en periode close'; From 2a9687b5bf75072c40b8c564611df15cf2c542bf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 08:01:09 +0200 Subject: [PATCH 1002/1150] =?UTF-8?q?On=20vide=20les=20tables=20temporaire?= =?UTF-8?q?s=20en=20fin=20de=20m=C3=A0j=20Sconet.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- responsables/maj_import3.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index e0ff78bb1..10096dba8 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -10940,6 +10940,16 @@ function modifcase(mode){ $sql="DELETE FROM setting WHERE name='ts_maj_sconet';"; $menage=mysql_query($sql); + $tab_tables_temp=array("temp_gep_import2", "tempo2", "temp_ele_classe", "temp_resp_pers_import", "temp_responsables2_import", "temp_resp_adr_import"); + for($loop⁼0;$loop0) { + $sql="TRUNCATE TABLE ".$tab_tables_temp[$loop].";"; + $menage=mysql_query($sql); + } + } + break; } } From e3d4c6858db781d2bf0be0c7dce0c0ed1ab209bf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 4 Sep 2013 08:01:45 +0200 Subject: [PATCH 1003/1150] =?UTF-8?q?Ajout=20d'un=20bouton=20de=20s=C3=A9l?= =?UTF-8?q?ection=20dans=20un=20calendrier.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 7 ++++++- classes/periodes.php | 14 ++++++++++++-- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index fe718f8bd..347896cbc 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -677,7 +677,7 @@ echo "Aucune classe comportant des périodes n'a été définie."; die(); } -echo "
    \n"; +echo "\n"; echo add_token_field(); echo "

    Retour Retour |

    "; echo "Sur cette page, vous pouvez modifier différents paramètres par lots de classes cochées ci-dessous."; @@ -861,16 +861,21 @@ function change_style_classe(num) {
    Période ".$k.""; + echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; echo "
    Période $k
    "; if((isset($tab_sig))&&(count($tab_sig)>0)) { - echo "  Prendre en compte tous les signalements d erreurs pour la période ".$period["num_periode"].""; + echo "  Prendre en compte tous les signalements d erreurs toutes les périodes."; } else { echo " "; @@ -947,4 +947,4 @@ function prise_en_compte_signalement(num_periode) { } ?> - \ No newline at end of file + From f0115dacca0a72a0487b624d8ea1f0426a195795 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 6 Sep 2013 19:57:08 +0200 Subject: [PATCH 1008/1150] =?UTF-8?q?Liens=20pour=20passer=20au=20groupe?= =?UTF-8?q?=20pr=C3=A9c=C3=A9dent/suivant.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 6 ++- groupes/popup.php | 88 +++++++++++++++++++++++++++++++++--------- 2 files changed, 74 insertions(+), 20 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 8c79c895e..d6641de39 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -659,7 +659,11 @@ function modif_mode_infobulle_nav() { echo "\n"; -echo "

    Gestion des enseignements pour la classe : " . $classe["classe"]."

    \n"; +echo "

    Gestion des enseignements pour la classe : " . $classe["classe"].""; +if(acces("/eleves/index.php", $_SESSION['statut'])) { + echo " (Élèves)"; +} +echo "

    \n"; echo "\n"; echo "
    \n"; diff --git a/groupes/popup.php b/groupes/popup.php index 862d10c0f..90176e866 100644 --- a/groupes/popup.php +++ b/groupes/popup.php @@ -1,7 +1,7 @@ ".$msg."

    \n"; } + // Récupérer la liste des groupes pour un prof + if($_SESSION['statut']=='professeur') { + $groups=get_groups_for_prof($_SESSION["login"],'',array('matieres', 'classes')); + + // Groupe précédent/suivant à trouver + $id_groupe_boucle_precedent=""; + $id_groupe_precedent=""; + $infos_groupe_precedent=""; + $id_groupe_suivant=""; + $infos_groupe_suivant=""; + $id_groupe_courant_trouve=""; + foreach($groups as $current_group) { + if(($id_groupe_courant_trouve=="y")&&($id_groupe_suivant=="")) { + $id_groupe_suivant=$current_group['id']; + $infos_groupe_suivant=$current_group['name']." (".$current_group['description'].") en ".$current_group['classlist_string']; + } + if($current_group['id']==$id_groupe) { + $id_groupe_courant_trouve="y"; + if($id_groupe_boucle_precedent!="") { + $id_groupe_precedent=$id_groupe_boucle_precedent; + $infos_groupe_precedent=$current_group['name']." (".$current_group['description'].") en ".$current_group['classlist_string']; + } + } + $id_groupe_boucle_precedent=$current_group['id']; + } + } + + echo "

    "; + + if((isset($id_groupe_precedent))&&($id_groupe_precedent!="")) { + echo " "; + } + //echo "

    Elèves de l'enseignement $enseignement

    \n"; if(isset($id_classe)){ //echo "

    Elèves de l'enseignement ".htmlspecialchars($enseignement)." en ".htmlspecialchars($classe)."

    \n"; - echo "

    ".htmlspecialchars($enseignement)." en "; + echo htmlspecialchars($enseignement)." en "; if(acces('/groupes/visu_profs_class.php',$_SESSION['statut'])) { echo "".htmlspecialchars($classe).""; } else { echo htmlspecialchars($classe); } - echo "

    \n"; } else{ //echo "

    Elèves de l'enseignement ".htmlspecialchars($enseignement)."

    \n"; - echo "

    ".htmlspecialchars($enseignement)."

    \n"; + echo htmlspecialchars($enseignement); + } + + if((isset($id_groupe_suivant))&&($id_groupe_suivant!="")) { + echo " "; + } + + echo "\n"; + + if(($_SESSION['statut']=='professeur')&&(isset($id_groupe))&&($id_groupe!="VIE_SCOLAIRE")) { + echo "\n"; } echo ""; @@ -228,23 +278,23 @@ $tabmail=array(); - if($id_groupe=="VIE_SCOLAIRE"){ - // Liste des CPE: - //$sql="SELECT DISTINCT u.nom,u.prenom,u.email,jec.cpe_login FROM utilisateurs u,j_eleves_cpe jec,j_eleves_classes jecl WHERE jec.e_login=jecl.login AND jecl.id_classe='$id_classe' AND u.login=jec.cpe_login ORDER BY jec.cpe_login"; - $sql="SELECT DISTINCT u.login, u.nom, u.prenom, u.email, jec.cpe_login FROM utilisateurs u, j_eleves_cpe jec,j_eleves_classes jecl WHERE jec.e_login=jecl.login AND jecl.id_classe='$id_classe' AND u.login=jec.cpe_login ORDER BY jec.cpe_login"; - $result_cpe=mysql_query($sql); - if(mysql_num_rows($result_cpe)>0){ + if($id_groupe=="VIE_SCOLAIRE") { + // Liste des CPE: + //$sql="SELECT DISTINCT u.nom,u.prenom,u.email,jec.cpe_login FROM utilisateurs u,j_eleves_cpe jec,j_eleves_classes jecl WHERE jec.e_login=jecl.login AND jecl.id_classe='$id_classe' AND u.login=jec.cpe_login ORDER BY jec.cpe_login"; + $sql="SELECT DISTINCT u.login, u.nom, u.prenom, u.email, jec.cpe_login FROM utilisateurs u, j_eleves_cpe jec,j_eleves_classes jecl WHERE jec.e_login=jecl.login AND jecl.id_classe='$id_classe' AND u.login=jec.cpe_login ORDER BY jec.cpe_login"; + $result_cpe=mysql_query($sql); + if(mysql_num_rows($result_cpe)>0) { echo "\n"; $alt=1; - while($lig_cpe=mysql_fetch_object($result_cpe)){ + while($lig_cpe=mysql_fetch_object($result_cpe)) { $alt=$alt*(-1); - echo "\n"; - echo "\n"; - } + echo "\n"; + echo "\n"; + } echo "
    CPE:"; - echo affiche_utilisateur($lig_cpe->login,$id_classe); - echo "
    CPE:"; + echo affiche_utilisateur($lig_cpe->login,$id_classe); + echo "
    \n"; - } + } if(isset($periode_num)) { //$sql="SELECT DISTINCT e.nom,e.prenom,e.email FROM eleves e, j_eleves_classes jec WHERE jec.login=e.login AND jec.id_classe='$id_classe' AND jec.periode='$periode_num' ORDER BY e.nom,e.prenom"; @@ -264,7 +314,7 @@ $alt=1; while($lig_eleve=mysql_fetch_object($res_eleves)){ $alt=$alt*(-1); - echo "
    \n"; if($lig_eleve->email!=""){ echo ""; From 745b6c96d451b01371eb4437ee53201f74657456 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 6 Sep 2013 19:57:08 +0200 Subject: [PATCH 1009/1150] Lien Prise en compte des signalements, en haut du tableau. --- groupes/edit_eleves.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/groupes/edit_eleves.php b/groupes/edit_eleves.php index a118dafa9..25dd36784 100644 --- a/groupes/edit_eleves.php +++ b/groupes/edit_eleves.php @@ -699,7 +699,15 @@ function confirm_changement_grp2(thechange, themessage) echo "\n"; } } -echo "  \n"; +if((isset($tab_sig))&&(count($tab_sig)>0)) { + echo "  Prendre en compte tous les signalements d erreurs pour toutes les périodes."; +} +else { + echo " "; +} +echo " 
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + $alt=1; + for($i=0;$i\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + } + + /* + echo "\n"; + echo "\n"; + + echo "\n"; + echo "\n"; + */ + + echo "
    RegroupementsEffectifs
    "; + echo get_info_grp($tab_grp[$i], array('classes')); + echo ""; + $sql="SELECT e.login FROM j_eleves_groupes jeg, eleves e WHERE jeg.id_groupe='".$tab_grp[$i]."' AND e.login=jeg.login AND jeg.periode='$loop';"; + //echo "$sql
    \n"; + $res_eff=mysql_query($sql); + echo mysql_num_rows($res_eff); + echo "
    Total"; + $sql="SELECT e.login FROM j_eleves_classes jec, eleves e WHERE e.login=jec.login AND jec.periode='$loop';"; + //echo "$sql
    \n"; + $res_eff=mysql_query($sql); + echo mysql_num_rows($res_eff); + echo "
    \n"; + echo "
    \n"; + } + echo "
     
    \n"; + echo "


    \n"; + } + + //======================================================= + for($loop=1;$loop<=$max_per;$loop++) { echo "
    \n"; echo "

    Effectifs par sexe en période $loop : Export CSV

    \n"; From 3660469eb854452f3eca2861f490bffbac35e545 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 6 Sep 2013 19:58:04 +0200 Subject: [PATCH 1011/1150] Lien Enseignements->Eleves de la classe. --- eleves/index.php | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/eleves/index.php b/eleves/index.php index 8844528a4..4bcdfa4cf 100644 --- a/eleves/index.php +++ b/eleves/index.php @@ -319,6 +319,30 @@ function log_debug($texte) { } } } +elseif ((isset($quelles_classes))&&($quelles_classes == 'certaines')&&(isset($id_classe))&&(is_numeric($id_classe))) { + // On efface les enregistrements liés à la session en cours + // + mysql_query("DELETE FROM tempo WHERE num = '".SESSION_ID()."'"); + // + // On efface les enregistrements obsolètes + // + $call_data = mysql_query("SELECT * FROM tempo"); + $nb_enr = mysql_num_rows($call_data); + $nb = 0; + while ($nb < $nb_enr) { + $num = mysql_result($call_data, $nb, 'num'); + $test = mysql_query("SELECT * FROM log WHERE SESSION_ID = '$num'"); + $nb_en = mysql_num_rows($test); + if ($nb_en == 0) { + mysql_query("DELETE FROM tempo WHERE num = '$num'"); + } + $nb++; + } + + $periode_query = mysql_query("SELECT * FROM periodes WHERE id_classe = '$id_classe' ORDER BY num_periode"); + $nb_periode = mysql_num_rows($periode_query); + $call_reg = mysql_query("insert into tempo Values('$id_classe','$nb_periode', '".SESSION_ID()."')"); +} // Le statut scolarite ne devrait pas être proposé ici. // La page confirm_query.php n'est accessible qu'en administrateur From d9dc2d0ccc54eff27bc6fb32a5bfc46b3c2aa9b7 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 7 Sep 2013 11:14:39 +0200 Subject: [PATCH 1012/1150] =?UTF-8?q?Affichage=20du=20nom=20du=20groupe=20?= =?UTF-8?q?en=20plus=20du=20nom=20de=20mati=C3=A8re=20(on=20peut=20avoir?= =?UTF-8?q?=20plusieurs=20groupes=20d'une=20m=C3=AAme=20mati=C3=A8re).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/visu_profs_eleve.php | 27 ++++++++++++++++++--------- 1 file changed, 18 insertions(+), 9 deletions(-) diff --git a/groupes/visu_profs_eleve.php b/groupes/visu_profs_eleve.php index 05d7b5bee..c2432cf3c 100644 --- a/groupes/visu_profs_eleve.php +++ b/groupes/visu_profs_eleve.php @@ -225,20 +225,26 @@ */ echo "\n"; - echo "\n"; + echo "
    + + + + + \n"; - // On commence par le CPE - $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . - "FROM utilisateurs u,j_eleves_cpe jec " . - "WHERE jec.e_login='".$login_eleve."' AND " . - "u.login=jec.cpe_login " . - "ORDER BY jec.cpe_login;"; + // On commence par le CPE + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . + "FROM utilisateurs u,j_eleves_cpe jec " . + "WHERE jec.e_login='".$login_eleve."' AND " . + "u.login=jec.cpe_login " . + "ORDER BY jec.cpe_login;"; //echo "$sql
    "; $req = mysql_query($sql); if(mysql_num_rows($req)>0) { // Il ne doit y en avoir qu'un... $cpe = mysql_fetch_object($req); echo "\n"; + echo ""; echo "\n"; + echo ""; + // Professeurs echo "\n"; + echo "\n"; + } + // On a fini le traitement. + echo "
    MatièreEnseignement/groupeProfesseur
    VIE SCOLAIRE"; // On affiche l'email s'il est non nul, si le cpe l'a autorisé, et si l'utilisateur est autorisé par les droits d'accès globaux if ($cpe->email!="" AND $cpe->show_email == "yes" AND ( @@ -260,8 +266,9 @@ // On passe maintenant les groupes un par un, sans se préoccuper de la période : on affiche tous les groupes // auxquel l'élève appartient ou a appartenu - $groupes = mysql_query("SELECT DISTINCT jeg.id_groupe, m.nom_complet " . - "FROM j_eleves_groupes jeg, matieres m, j_groupes_matieres jgm, j_groupes_classes jgc WHERE " . + $groupes = mysql_query("SELECT DISTINCT jeg.id_groupe, m.nom_complet, g.* " . + "FROM j_eleves_groupes jeg, matieres m, j_groupes_matieres jgm, j_groupes_classes jgc, groupes g WHERE " . + "g.id=jeg.id_groupe AND ". "jeg.login = '".$login_eleve."' AND " . "m.matiere = jgm.id_matiere AND " . "jgm.id_groupe = jeg.id_groupe AND " . @@ -274,6 +281,8 @@ // Matière correspondant au groupe: echo "
    ".htmlspecialchars($groupe->nom_complet)."".$groupe->name." (".$groupe->description.")".""; $sql="SELECT jgp.login,u.nom,u.prenom,u.email,u.show_email FROM j_groupes_professeurs jgp,utilisateurs u WHERE jgp.id_groupe='".$groupe->id_groupe."' AND u.login=jgp.login"; From ed53fd72e42f6501b5a9dc4a4a25387c0b4a22d4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 7 Sep 2013 11:14:45 +0200 Subject: [PATCH 1013/1150] =?UTF-8?q?Possibilit=C3=A9=20d'afficher=20le=20?= =?UTF-8?q?mot=20de=20passe=20lors=20de=20la=20saisie=20(pour=20ceux=20qui?= =?UTF-8?q?=20s'emp=C3=AAtrent=20dans=20les=20majuscules/minuscules,=20cla?= =?UTF-8?q?vier=20avec=20ou=20sans=20pav=C3=A9=20nu=C3=A9rique).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share-html.inc.php | 36 +++++++++++++++++++++++++++ login.php | 2 ++ templates/origine/login_template.html | 4 +-- utilisateurs/change_pwd.php | 28 +++++++++++++++------ utilisateurs/mon_compte.php | 12 ++++++--- 5 files changed, 69 insertions(+), 13 deletions(-) diff --git a/lib/share-html.inc.php b/lib/share-html.inc.php index 41e2237b5..920463a6f 100644 --- a/lib/share-html.inc.php +++ b/lib/share-html.inc.php @@ -2579,4 +2579,40 @@ function js_dragresize($minWidth=50, $minHeight=50, $minLeft=0, $minTop=0, $maxL return $retour; } + +function input_password_to_text($id_champ) { + global $gepiPath; + + $retour=" + + +"; + + return $retour; +} ?> diff --git a/login.php b/login.php index 141b9c6c4..e80e8610f 100644 --- a/login.php +++ b/login.php @@ -189,6 +189,8 @@ $tbs_message[] =array("classe"=>"","texte" => "Afin d'utiliser Gepi, vous devez vous identifier."); } + $tbs_input_password_to_text= input_password_to_text('no_anti_inject_password'); + //================================== // Mot de passe oublié $tbs_password_recovery = ""; diff --git a/templates/origine/login_template.html b/templates/origine/login_template.html index 0aea63293..368dd1533 100644 --- a/templates/origine/login_template.html +++ b/templates/origine/login_template.html @@ -104,8 +104,8 @@

    [onshow.tbs_gepiSchoolName]

    - - + [onshow.tbs_input_password_to_text;magnet=p;htmlconv=no] +

    diff --git a/utilisateurs/change_pwd.php b/utilisateurs/change_pwd.php index a50aa713c..9d0e373c9 100644 --- a/utilisateurs/change_pwd.php +++ b/utilisateurs/change_pwd.php @@ -1,7 +1,7 @@

    \n"; echo "
    \n"; - echo "\n\n\n"; - echo "\n"; - echo "
    Nouveau mot de passe (".getSettingValue("longmin_pwd")." caractères minimum) :
    Nouveau mot de passe (à confirmer) :
    \n"; - echo "\n"; - - echo "
    "; + echo " + + + + + + + + +
    Nouveau mot de passe (".getSettingValue("longmin_pwd")." caractères minimum) : + + ".input_password_to_text('no_anti_inject_password')." +
    Nouveau mot de passe (à confirmer) : + + ".input_password_to_text('reg_password2')." +
    + +\n"; + + echo "
    "; $user_statut = sql_query1("select statut from utilisateurs where login='".$user_login."';"); if($user_statut=='eleve') { diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index 1b6ec4a00..bd4d29b2d 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -1784,16 +1784,20 @@ function unhtmlentities($chaineHtml) - + - + - - + +
    Ancien mot de passe :
    Nouveau mot de passe ( caractères minimum) :Nouveau mot de passe ( caractères minimum) : + Complexité de votre mot de passe : @@ -1804,8 +1808,8 @@ function unhtmlentities($chaineHtml)
    Nouveau mot de passe (à confirmer) : Nouveau mot de passe (à confirmer) :
    Date: Sat, 7 Sep 2013 11:32:53 +0200 Subject: [PATCH 1014/1150] =?UTF-8?q?Correctif=20sur=20la=20liste=20des=20?= =?UTF-8?q?enseignements=20affich=C3=A9s=20(on=20scindait=20en=20apparence?= =?UTF-8?q?=20les=20groupes=20=C3=A0=20cheval=20sur=20deux=20classes).?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/modify_user.php | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) diff --git a/utilisateurs/modify_user.php b/utilisateurs/modify_user.php index 73d0e6ef9..55cdf8e2f 100644 --- a/utilisateurs/modify_user.php +++ b/utilisateurs/modify_user.php @@ -924,28 +924,21 @@ function display_password_fields(id,rw){ 0) { + $groups=get_groups_for_prof($user_login,NULL,array('classes', 'matieres')); + if(count($groups)>0) { echo "

     

    \n"; echo "
    \n"; echo "
    \n"; echo add_token_field(); echo "

    Le professeur est associé aux enseignements suivants.
    Vous pouvez supprimer (décocher) l'association avec certains enseignements :

    "; $k = 0; - while ($k < $nb_classes) { - $user_classe['classe_nom_court'] = mysql_result($call_classes, $k, "classe"); - $user_classe['matiere_nom_court'] = mysql_result($call_classes, $k, "name"); - $user_classe['classe_id'] = mysql_result($call_classes, $k, "classe_id"); - $user_classe['group_id'] = mysql_result($call_classes, $k, "group_id"); - - echo "
    \n"; - + foreach($groups as $current_group) { + echo "
    \n"; $k++; } echo "\n"; From 0bbfd723e2ec6040ecec2407adc9722e2484eacf Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 7 Sep 2013 21:12:30 +0200 Subject: [PATCH 1015/1150] =?UTF-8?q?Correction=20sur=20l'association=20de?= =?UTF-8?q?s=20profs=20dans=20le=20cas=20o=C3=B9=20il=20n'y=20a=20pas=20de?= =?UTF-8?q?=20cat=C3=A9gorie=20de=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- matieres/modify_matiere.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/matieres/modify_matiere.php b/matieres/modify_matiere.php index 9b6d7424b..38d2e46ff 100644 --- a/matieres/modify_matiere.php +++ b/matieres/modify_matiere.php @@ -38,16 +38,19 @@ die(); } +//debug_var(); if (isset($_POST['isposted'])) { check_token(); $ok = 'yes'; + $ok_categorie = 'yes'; if (isset($_POST['reg_current_matiere'])) { // On vérifie d'abord que l'identifiant est constitué uniquement de lettres et de chiffres : $matiere_name = $_POST['reg_current_matiere']; - if (!is_numeric($_POST['matiere_categorie'])) { + if ((!isset($_POST['matiere_categorie']))||(!is_numeric($_POST['matiere_categorie']))) { // On empêche les mise à jour globale automatiques, car on n'est pas sûr de ce qui s'est passé si l'ID n'est pas numérique... - $ok = "no"; + //$ok = "no"; + $ok_categorie = 'no'; $matiere_categorie = "0"; } else { $matiere_categorie = $_POST['matiere_categorie']; @@ -89,8 +92,9 @@ $matiere_nom_complet = html_entity_decode($_POST['matiere_nom_complet']); $matiere_priorite = $_POST['matiere_priorite']; $matiere_name = $_POST['matiere_name']; - if (!is_numeric($_POST['matiere_categorie'])) { + if ((!isset($_POST['matiere_categorie']))||(!is_numeric($_POST['matiere_categorie']))) { $matiere_categorie = "0"; + $ok_categorie = 'no'; } else { $matiere_categorie = $_POST['matiere_categorie']; } @@ -106,6 +110,7 @@ $msg = "Les modifications ont été enregistrées !
    "; } } + if ((isset($_POST['force_defaut'])) and ($ok == 'yes')) { $sql="UPDATE j_groupes_matieres jgm, j_groupes_classes jgc SET jgc.priorite='".$matiere_priorite."' WHERE (jgc.id_groupe = jgm.id_groupe AND jgm.id_matiere='".$matiere_name."')"; @@ -113,7 +118,8 @@ //$msg = rawurlencode($sql); $req = mysql_query($sql); } - if ((isset($_POST['force_defaut_categorie'])) and ($ok == 'yes')) { + + if ((isset($_POST['force_defaut_categorie'])) and ($ok == 'yes') and ($ok_categorie == 'yes')) { $sql="UPDATE j_groupes_classes jgc, j_groupes_matieres jgm SET jgc.categorie_id='".$matiere_categorie."' WHERE (jgc.id_groupe = jgm.id_groupe AND jgm.id_matiere='".$matiere_name."')"; //echo "$sql
    "; @@ -121,13 +127,13 @@ $req = mysql_query($sql); } - if($ok=='yes') { $login_prof=isset($_POST['login_prof']) ? $_POST['login_prof'] : NULL; if(isset($login_prof)) { // Récupérer la liste des profs actuellement associés $tab_profs_associes=array(); $sql="SELECT u.login FROM j_professeurs_matieres jpm, utilisateurs u WHERE jpm.id_professeur=u.login and id_matiere='$matiere_name' ORDER BY u.nom, u.prenom;"; + //echo "$sql
    \n"; $res_profs=mysql_query($sql); if(mysql_num_rows($res_profs)>0) { while($lig=mysql_fetch_object($res_profs)) { @@ -140,6 +146,7 @@ if(!in_array($login_prof[$loop], $tab_profs_associes)) { // Recherche de l'ordre matière le plus élevé pour ce prof $sql="SELECT MAX(ordre_matieres) max_ordre FROM j_professeurs_matieres WHERE id_professeur='".$login_prof[$loop]."';"; + //echo "$sql
    \n"; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { $ordre_matieres=1; @@ -150,6 +157,7 @@ // On ajoute le prof $sql="INSERT INTO j_professeurs_matieres SET id_professeur='$login_prof[$loop]', id_matiere='$matiere_name', ordre_matieres='$ordre_matieres';"; + //echo "$sql
    \n"; $insert=mysql_query($sql); if(!$insert) { $msg.="Erreur lors de l'association de ".$login_prof[$loop]." avec la matière $matiere_name
    "; @@ -178,6 +186,7 @@ */ $sql="DELETE FROM j_professeurs_matieres WHERE id_professeur='".$tab_profs_associes[$loop]."' AND id_matiere='$matiere_name';"; + //echo "$sql
    \n"; $suppr=mysql_query($sql); if(!$suppr) { $msg.="Erreur lors de la suppression de l'association de ".$tab_profs_associes[$loop]." avec la matière $matiere_name
    "; From 4e32c44ac889ef2c6235c682e60e9d7eec748af8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Sep 2013 18:07:10 +0200 Subject: [PATCH 1016/1150] =?UTF-8?q?Am=C3=A9lioration=20sur=20les=20liens?= =?UTF-8?q?=20de=20retours.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/change_pwd.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/utilisateurs/change_pwd.php b/utilisateurs/change_pwd.php index 9d0e373c9..50c95b6b2 100644 --- a/utilisateurs/change_pwd.php +++ b/utilisateurs/change_pwd.php @@ -129,9 +129,19 @@ $titre_page = "Gestion des utilisateurs | Modifier un mot de passe"; require_once("../lib/header.inc.php"); //**************** FIN EN-TETE ***************** -?> -

    Retour Retour | Aide

    -Retour Retour | Aide

    \n"; + // dans le cas de LCS, existence d'utilisateurs locaux reprérés grâce au champ password non vide. $testpassword = sql_query1("select password from utilisateurs where login = '".$user_login."'"); if ($testpassword == -1) $testpassword = ''; From ed6c422423aa2439c078f65010c27f23b974164e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Sep 2013 18:07:11 +0200 Subject: [PATCH 1017/1150] Ajout d'une fonction get_adresse_responsable(). --- lib/share.inc.php | 57 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/lib/share.inc.php b/lib/share.inc.php index 97957ca48..68e108945 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -8182,4 +8182,61 @@ function get_info_grp($id_groupe, $tab_infos=array('description', 'matieres', 'c return $retour; } + +function get_adresse_responsable($pers_id) { + $tab_adresse=array(); + + $tab_adresse['adr_id']=""; + $tab_adresse['adr1']=""; + $tab_adresse['adr2']=""; + $tab_adresse['adr3']=""; + $tab_adresse['cp']=""; + $tab_adresse['commune']=""; + $tab_adresse['pays']=""; + $tab_adresse['en_ligne']=""; + + $sql="SELECT * FROM resp_adr ra, resp_pers rp WHERE rp.adr_id=ra.adr_id AND rp.pers_id='$pers_id';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + $lig=mysql_fetch_object($res); + $tab_adresse['adr_id']=$lig->adr_id; + $tab_adresse['adr1']=$lig->adr1; + $tab_adresse['adr2']=$lig->adr2; + $tab_adresse['adr3']=$lig->adr3; + $tab_adresse['cp']=$lig->cp; + $tab_adresse['commune']=$lig->commune; + $tab_adresse['pays']=$lig->pays; + + $tab_adresse['en_ligne']=$lig->adr1; + + if($lig->adr2!="") { + if($tab_adresse['en_ligne']!="") {$tab_adresse['en_ligne'].=", ";} + $tab_adresse['en_ligne'].=$lig->adr2; + } + + if($lig->adr3!="") { + if($tab_adresse['en_ligne']!="") {$tab_adresse['en_ligne'].=", ";} + $tab_adresse['en_ligne'].=$lig->adr3; + } + + if($lig->cp!="") { + if($tab_adresse['en_ligne']!="") {$tab_adresse['en_ligne'].=", ";} + $tab_adresse['en_ligne'].=$lig->cp; + } + + if($lig->commune!="") { + if($tab_adresse['en_ligne']!="") {$tab_adresse['en_ligne'].=", ";} + $tab_adresse['en_ligne'].=$lig->commune; + } + + if(($tab_adresse['pays']!='')&&($tab_adresse['pays']!=getSettingValue('gepiSchoolPays'))) { + if($tab_adresse['en_ligne']!="") {$tab_adresse['en_ligne'].=", ";} + $tab_adresse['en_ligne'].=$tab_adresse['pays']; + } + + } + + return $tab_adresse; +} + ?> From ea972cef69cee4e2c89c12736d82cfc0014d9cf0 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sun, 8 Sep 2013 18:07:12 +0200 Subject: [PATCH 1018/1150] =?UTF-8?q?Possibilit=C3=A9=20d'imposer=20les=20?= =?UTF-8?q?login/mdp=20responsables.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 587 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 586 insertions(+), 1 deletion(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index fff2dc0eb..8e599a5ca 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -84,6 +84,18 @@ function formate_date2($chaine, $from, $to) { $msg.="Il semble que certaines variables n'ont pas été transmises.
    Cela peut arriver lorsqu'on tente de transmettre (cocher trop de cases) trop de variables.
    Vous devriez tenter de cocher moins de cases et vous y prendre en plusieurs fois.
    "; } +if(isset($_GET['supprimer_comptes_parents'])) { + check_token(); + + $sql="DELETE FROM utilisateurs WHERE statut='responsable';"; + $suppr=mysql_query($sql); + + $sql="UPDATE resp_pers SET login='';"; + $vider_login=mysql_query($sql); + + $msg.="Les comptes d'utilisateurs responsables ont été supprimés et leur login vidé dans la table 'resp_pers'.
    "; +} + if(isset($_POST['recherche'])) { check_token(); @@ -933,6 +945,216 @@ function formate_date2($chaine, $from, $to) { unset($mode); } +if($mode=='valider_forcer_logins_mdp_responsables') { + check_token(); + + $nb_nouveaux_comptes=0; + $nb_comptes_remplaces=0; + $nb_erreur=0; + $ligne=isset($_POST['ligne']) ? $_POST['ligne'] : array(); + + /* + echo "
    ";
    +		print_r($ligne);
    +		echo "
    "; + + Posté depuis le formulaire: + Array + ( + [col1] => pers_id choisi + [0] => 1510775 + [49] => 1432901 + [50] => 1432902 + [106] => 1432905 + ) + + Enregistré préalablement dans la table tempo4; + mysql> select * from tempo4 where col1='0' or col1='49' or col1='50' or col1='106'; + +------+----------------------+----------------------------------+------+ + | col1 | col2 | col3 | col4 | + +------+----------------------+----------------------------------+------+ + | 0 | denis.XXXX1 | 64ce0ed8cXXXXXXXXXXXXXXXXXXXXXXX | | + | 49 | christelle.XXXXXXXX1 | e5e610953XXXXXXXXXXXXXXXXXXXXXXX | | + | 50 | joel.XXXXXXXXX | f8bad8df0XXXXXXXXXXXXXXXXXXXXXXX | | + | 106 | ludovic.XXXXXX | fac5cb6f2XXXXXXXXXXXXXXXXXXXXXXX | | + +------+----------------------+----------------------------------+------+ + 4 rows in set (0.01 sec) + + mysql> + */ + + $tab_tempo4=array(); + $sql="SELECT * FROM tempo4;"; + $res=mysql_query($sql); + if(mysql_num_rows($res)>0) { + while($lig=mysql_fetch_object($res)) { + $tab_tempo4[$lig->col1]['login']=$lig->col2; + $tab_tempo4[$lig->col1]['md5_password']=$lig->col3; + } + } + + foreach($ligne as $id_col1 => $pers_id) { + if($pers_id!="") { + $sql="SELECT * FROM resp_pers WHERE pers_id='$pers_id';"; + echo "$sql
    "; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $msg.="ERREUR : Le responsable n°$pers_id n'existe pas dans la table 'resp_pers'.
    "; + $nb_erreur++; + } + else { + $lig=mysql_fetch_object($res); + + if(!isset($tab_tempo4[$id_col1])) { + $msg.="ERREUR : Le numéro $id_col1 de l'enregistrement 'tempo4' que vous souhaitez associer au responsable n°$pers_id ($lig->nom $lig->prenom) n'existe pas dans la table 'tempo4'.
    "; + $nb_erreur++; + } + else { + $sql="SELECT * FROM utilisateurs WHERE login='".$tab_tempo4[$id_col1]['login']."';"; + echo "$sql
    "; + $test_u=mysql_query($sql); + if(mysql_num_rows($test_u)>0) { + $lig_u=mysql_fetch_object($test_u); + + $msg.="ERREUR : Le login ".$tab_tempo4[$id_col1]['login']." que vous souhaitez associer au responsable n°$pers_id ($lig->nom $lig->prenom) est déjà associé à un utilisateur de statut '$lig_u->statut' nommé $lig_u->nom $lig_u->prenom.
    "; + $nb_erreur++; + } + else { + if($lig->login!="") { + $sql="SELECT * FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; + echo "$sql
    "; + $test_u=mysql_query($sql); + if(mysql_num_rows($test_u)>0) { + $sql="DELETE FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; + echo "$sql
    "; + $menage=mysql_query($sql); + if(!$menage) { + $msg.="ERREUR : La suppression de l'ancien compte d'utilisateur $lig->login associé au responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; + $nb_erreur++; + } + else { + $sql="INSERT INTO utilisateurs SET login='".$tab_tempo4[$id_col1]['login']."', + password='".$tab_tempo4[$id_col1]['md5_password']."', + salt='', + nom='".mysql_real_escape_string($lig->nom)."', + prenom='".mysql_real_escape_string($lig->prenom)."', + civilite='$lig->civilite', + change_mdp='n', + email='".mysql_real_escape_string($lig->mel)."', + auth_mode='gepi', + statut='responsable', + etat='inactif';"; + echo "$sql
    "; + $insert=mysql_query($sql); + if($insert) { + $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; + echo "$sql
    "; + $update=mysql_query($sql); + if($update) { + $nb_comptes_remplaces++; + } + else { + $msg.="ERREUR : Le remplacement du login dans 'resp_pers' par ".$tab_tempo4[$id_col1]['login']." pour le responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; + $nb_erreur++; + } + } + else { + $nb_erreur++; + } + } + } + else { + // Il y avait un login dans resp_pers, mais il n'existait pas d'enregistrement dans utilisateurs + $sql="INSERT INTO utilisateurs SET login='".$tab_tempo4[$id_col1]['login']."', + password='".$tab_tempo4[$id_col1]['md5_password']."', + salt='', + nom='".mysql_real_escape_string($lig->nom)."', + prenom='".mysql_real_escape_string($lig->prenom)."', + civilite='$lig->civilite', + change_mdp='n', + email='".mysql_real_escape_string($lig->mel)."', + auth_mode='gepi', + statut='responsable', + etat='inactif';"; + echo "$sql
    "; + $insert=mysql_query($sql); + if($insert) { + $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; + echo "$sql
    "; + $update=mysql_query($sql); + if($update) { + $nb_nouveaux_comptes++; + } + else { + $msg.="ERREUR : Le remplacement du login dans 'resp_pers' par ".$tab_tempo4[$id_col1]['login']." pour le responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; + $nb_erreur++; + } + } + else { + $nb_erreur++; + } + } + } + else { + $sql="INSERT INTO utilisateurs SET login='".$tab_tempo4[$id_col1]['login']."', + password='".$tab_tempo4[$id_col1]['md5_password']."', + salt='', + nom='".mysql_real_escape_string($lig->nom)."', + prenom='".mysql_real_escape_string($lig->prenom)."', + civilite='$lig->civilite', + change_mdp='n', + email='".mysql_real_escape_string($lig->mel)."', + auth_mode='gepi', + statut='responsable', + etat='inactif';"; + echo "$sql
    "; + $insert=mysql_query($sql); + if($insert) { + $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; + echo "$sql
    "; + $update=mysql_query($sql); + if($update) { + $nb_nouveaux_comptes++; + } + else { + $msg.="ERREUR : L'enregistrement du login dans 'resp_pers' par ".$tab_tempo4[$id_col1]['login']." pour le responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; + $nb_erreur++; + } + } + else { + $msg.="ERREUR : L'enregistrement du compte d'utilisateur ".$tab_tempo4[$id_col1]['login']." pour le responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; + $nb_erreur++; + } + } + } + } + } + } + } + + // Les comptes créés sont pour le moment inactifs. + if($nb_erreur>0) { + $msg.="
    "; + $msg.="$nb_erreur erreurs se sont produites.
    "; + } + + if($nb_nouveaux_comptes>0) { + $msg.="
    "; + $msg.="$nb_nouveaux_comptes nouveaux comptes ont été enregistrés.
    "; + } + + if($nb_comptes_remplaces>0) { + $msg.="
    "; + $msg.="$nb_comptes_remplaces comptes d'utilisateurs ont été remplacés.
    "; + } + + // Ménage: + //$sql="TRUNCATE tempo4;"; + $menage=mysql_query($sql); + + unset($mode); +} + //**************** EN-TETE ***************** $titre_page = "ENT ITOP : Rapprochement"; require_once("../lib/header.inc.php"); @@ -986,6 +1208,7 @@ function recherche_utilisateur(statut) {

    Rapprochement des comptes ENT ITOP/GEPI

    +

    Saisir manuellement une association

    Ou importer un CSV :

      @@ -1106,7 +1329,49 @@ function recherche_utilisateur(statut) { echo "

      NOTES : Les CSV réclamés dans les pages d'importation sont accessibles en suivant le cheminement suivant :
      Se connecter avec un compte administrateur de l'ENT.
      Menu Administration puis Gérer les utilisateurs puis Outils puis Traitement en masse puis Action (Choisir Exportation SSO au format CSV) puis dans Profil sélectionner le profil (Elève, Parent,...)
      - puis Traiter cette action puis Valider.

      \n"; + puis Traiter cette action puis Valider.

      + +
    + +

    Forcer les logins (expérimental)

    + +
    +

    Si l'accès SSO de l'ENT vers Gepi tarde à être mis en place, vous pouvez ouvrir l'accès aux parents en limitant les difficultés :
    + Il s'agit de créer des comptes dans Gepi avec les logins et mots de passe proposés par l'ENT.
    + Les parents auront donc les mêmes comptes et mots de passe initiaux dans l'ENT et dans Gepi
    (s'ils changent leur mot de passe d'un côté ou de l'autre, la synchronisation des mots de passe n'est pas assurée)

    + +


    + +

    Supprimer les comptes parents actuels.
    + Dans cette opération (irréversible), les entrées parents sont supprimées de la table 'utilisateurs' et les logins des responsables sont réinitialisés/vidés dans la table 'resp_pers'.
    + Les responsables ne sont pas pour autant supprimés (ils n'auront plus de compte utilisateur).

    + +


    + + +
    + ".add_token_field()." +

    Fournir le fichier CSV de mots de passe de l'ENT pour créer les comptes parents avec ces logins et mots de passe.
    +

    +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    + +
    + +
    + + +


    + +

    NOTES :

    +
      +
    • Le fichier CSV attendu doit avoir le format suivant :
      + Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Adresse;Code postal;Ville;Nom enfant 1;Prénom enfant 1;Classe enfant 1;Etat;Date de désactivation
      + DUPRE;Denis;denis.dupre1;MENESR$1234567;azerty&*;Denis.DUPRE1@ent27.fr;3 RUE DES PRIMEVERES;27300;BERNAY;DUPRE;Thomas;6 A;Actif
      + ...
    • +
    + +
    +\n"; require("../lib/footer.inc.php"); die(); @@ -3091,7 +3356,327 @@ function change_graisse(num) { die(); } +//================================================================================== +if($mode=="forcer_logins_mdp_responsables") { + echo " + | Index rapprochement ENT ITOP +

    "; + + $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; + + echo " +

    Création des comptes responsables

    "; + + if((!isset($csv_file))||($csv_file['tmp_name']=='')) { + echo "

    Aucun fichier n'a été fourni.

    "; + } + else { + check_token(false); + $fp=fopen($csv_file['tmp_name'],"r"); + + $impression=getSettingValue('ImpressionFicheParent'); + + if(!$fp){ + echo "

    Impossible d'ouvrir le fichier CSV !

    "; + echo "

    Cliquer ici pour recommencer !

    \n"; + require("../lib/footer.inc.php"); + die(); + } + + $sql="TRUNCATE tempo4;"; + $menage=mysql_query($sql); + + $cpt=0; + $cpt2=0; + //$classe_precedente=""; + $tab_classe_parent=array(); + while (!feof($fp)) { + $ligne = trim(fgets($fp, 4096)); + if((substr($ligne,0,3) == "\xEF\xBB\xBF")) { + $ligne=substr($ligne,3); + } + + if($ligne!='') { + $tab=explode(";", ensure_utf8($ligne)); + if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + /* + if($tab[11]!=$classe_precedente) { + $cpt=0; + $classe_precedente=$tab[11]; + } + */ + if(!isset($tab_classe_parent[$tab[11]])) { + $cpt=0; + } + else { + $cpt=count($tab_classe_parent[$tab[11]]); + } + $tab_classe_parent[$tab[11]][$cpt]['nom']=$tab[0]; + $tab_classe_parent[$tab[11]][$cpt]['prenom']=$tab[1]; + $tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; + //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; + $tab_classe_parent[$tab[11]][$cpt]['login_ent']=$tab[2]; + $tab_classe_parent[$tab[11]][$cpt]['mdp_ent']=$tab[4]; + $tab_classe_parent[$tab[11]][$cpt]['email_ent']=$tab[5]; + $tab_classe_parent[$tab[11]][$cpt]['adresse']=$tab[6]."
    ".$tab[7]." ".$tab[8]; + $tab_classe_parent[$tab[11]][$cpt]['enfant']=$tab[9]." ".$tab[10]; + $tab_classe_parent[$tab[11]][$cpt]['classe']=$tab[11]; + $tab_classe_parent[$tab[11]][$cpt]['resp_de']=$tab[9]." ".$tab[10]." (".$tab[11].")"; + + $tab_classe_parent[$tab[11]][$cpt]['cpt_tempo4']=$cpt2; + + $sql="INSERT INTO tempo4 SET col1='$cpt2', col2='".$tab[2]."', col3=MD5('".$tab[4]."');"; + $insert=mysql_query($sql); + + $cpt2++; + } + } + } + + echo " +
    + ".add_token_field()." + + + + + + + + + + + + + + + + + + + + "; + $cpt=0; + $ancre_doublon_ou_pas=""; + $style_css=""; + $nb_comptes_login_deja_ok=0; + foreach($tab_classe_parent as $classe => $tab_parent) { + /* + echo "
    ";
    +			print_r($tab_parent);
    +			echo "
    "; + */ + for($loop=0;$loop1) { + $rowspan=" rowspan='".($nb_resp+1)."'"; + } + + //============================================================== + if($nb_resp==0) { + // Aucun nom prénom identique trouvé + echo " + + ".$tab_parent[$loop]['nom_prenom']." + ".$tab_parent[$loop]['adresse']." + ".$tab_parent[$loop]['enfant']." + ".$tab_parent[$loop]['classe']." + ".$tab_parent[$loop]['login_ent']." + ".$tab_parent[$loop]['mdp_ent'].""; + + echo " + + + "; + $cpt++; + } + //============================================================== + elseif($nb_resp==1) { + // Un seul nom prénom identique trouvé + $lig_resp=mysql_fetch_object($res_resp); + + if($lig_resp->login==$tab_parent[$loop]['login_ent']) { + $nb_comptes_login_deja_ok++; + } + else { + echo " + + + + + + + "; + + $tab_ele=get_enfants_from_pers_id($lig_resp->pers_id, 'avec_classe'); + $chaine_ele=""; + for($loop_ele=1;$loop_ele1) {$chaine_ele.=",
    ";} + $chaine_ele.=$tab_ele[$loop_ele]; + } + + $tab_adresse=get_adresse_responsable($lig_resp->pers_id); + $chaine_adresse=$tab_adresse['en_ligne']; + + echo " +
    + + + + "; + $cpt++; + } + } + //============================================================== + else { + // Plusieurs nom prénom identiques trouvés + echo " + + ".$tab_parent[$loop]['nom_prenom']." + ".$tab_parent[$loop]['adresse']." + ".$tab_parent[$loop]['enfant']." + ".$tab_parent[$loop]['classe']." + ".$tab_parent[$loop]['login_ent']." + ".$tab_parent[$loop]['mdp_ent'].""; + + $chaine_change_graisse=""; + for($loop_resp=0;$loop_resp<=$nb_resp;$loop_resp++) { + if($loop_resp>0) { + $chaine_change_graisse.=";"; + } + $chaine_change_graisse.="change_graisse(".($cpt+$loop_resp).")"; + } + + // Ne pas associer + echo " + + + + + "; + $cpt++; + $cpt_resp=0; + while($lig_resp=mysql_fetch_object($res_resp)) { + /* + if($cpt_resp>0) { + echo " + "; + } + */ + echo " + "; + $tab_ele=get_enfants_from_pers_id($lig_resp->pers_id, 'avec_classe'); + $chaine_ele=""; + for($loop_ele=1;$loop_ele1) {$chaine_ele.=",
    ";} + $chaine_ele.=$tab_ele[$loop_ele]; + } + + $tab_adresse=get_adresse_responsable($lig_resp->pers_id); + $chaine_adresse=$tab_adresse['en_ligne']; + + // Responsable n°$cpt_resp trouvé pour le nom_prenom proposé dans le CSV + echo " +
    + + + + "; + $cpt_resp++; + $cpt++; + } + } + //============================================================== + + //$cpt++; + flush(); + } + } + echo " +
    Informations ENTInformations Gepi
    Nom prénomAdresseEnfantClasseLoginMot de passe + Cocher + + Nom prénomAdresseEnfants
    Aucun nom prénom identique
    $ancre_doublon_ou_pas
    $ancre_doublon_ou_pas"; + //echo $cpt; + echo "
    $ancre_doublon_ou_pas"; + //echo $cpt; + echo "
    + +

    +


    + +

    NOTES :

    +
      +
    • Les comptes vont être créés dans Gepi d'après les login/mdp ENT pour les responsables sélectionnés.
    • + ".(($nb_comptes_login_deja_ok>0) ? "
    • $nb_comptes_login_deja_ok comptes parents ont déjà été créés d'après le login ENT (ils peuvent en revanche avoir depuis modifié leur mot de passe).
    • " : "")." +
    • Les nouveaux comptes créés sont inactifs.
    • +
    • Le changement de mot de passe n'est pas imposé pour les nouveaux comptes.
      + Ce serait préférable, mais si l'accès via l'ENT est mis en place par la suite avec les comptes et mots de passe présentement mis en place, ne pas changer de mot de passe peut simplifier des choses.
    • +
    + + +
    + + +\n"; + } + + require("../lib/footer.inc.php"); + die(); +} //================================================================================== From 773a6402874ff0db385bc93d8037bbdbbf7d2838 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 13:13:17 +0200 Subject: [PATCH 1019/1150] =?UTF-8?q?S=C3=A9curit=C3=A9=20pour=20=C3=A9vit?= =?UTF-8?q?er=20des=20d=C3=A9sactivations=20des=20comptes=20'autre'=20en?= =?UTF-8?q?=20cas=20d'utilisation=20de=20change=5Fcompte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_alerte/form_message.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mod_alerte/form_message.php b/mod_alerte/form_message.php index 0516febbf..0454bb03c 100644 --- a/mod_alerte/form_message.php +++ b/mod_alerte/form_message.php @@ -61,7 +61,9 @@ $insert=mysql_query($sql); } -if (!checkAccess()) { +// Pour éviter des blagues avec le plugin change_compte (sinon les comptes 'autre' sont désactivés en quelques secondes) +//if (!checkAccess()) { +if ((!checkAccess())&&($_SESSION['statut']!='autre')) { // Si in reste sur une page sans se déconnecter, on n'envoie pas, en fin de session, de redir, ni de message par mail du type: /* ** Alerte automatique sécurité Gepi ** From 8d8ea7f6490bc2fa394e503158e9fc3a2c40c5d5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 13:57:29 +0200 Subject: [PATCH 1020/1150] =?UTF-8?q?S=C3=A9curit=C3=A9=20pour=20=C3=A9vit?= =?UTF-8?q?er=20des=20d=C3=A9sactivations=20des=20comptes=20'autre'=20en?= =?UTF-8?q?=20cas=20d'utilisation=20de=20change=5Fcompte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_alerte/form_message.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mod_alerte/form_message.php b/mod_alerte/form_message.php index 0454bb03c..35fb5dec5 100644 --- a/mod_alerte/form_message.php +++ b/mod_alerte/form_message.php @@ -63,7 +63,8 @@ // Pour éviter des blagues avec le plugin change_compte (sinon les comptes 'autre' sont désactivés en quelques secondes) //if (!checkAccess()) { -if ((!checkAccess())&&($_SESSION['statut']!='autre')) { +//if ((!checkAccess())&&($_SESSION['statut']!='autre')) { +if (($_SESSION['statut']!='autre')&&(!checkAccess())) { // Si in reste sur une page sans se déconnecter, on n'envoie pas, en fin de session, de redir, ni de message par mail du type: /* ** Alerte automatique sécurité Gepi ** From c5bdfd17c49a6f1b71ececf495dc7e8cf98e9583 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 14:02:32 +0200 Subject: [PATCH 1021/1150] =?UTF-8?q?Cas=20des=20=C3=A9l=C3=A8ves=20qui=20?= =?UTF-8?q?changent=20de=20classe=20en=20cours=20d'ann=C3=A9e.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/visu_profs_eleve.php | 213 ++++++++++++++++++----------------- 1 file changed, 108 insertions(+), 105 deletions(-) diff --git a/groupes/visu_profs_eleve.php b/groupes/visu_profs_eleve.php index c2432cf3c..04813a613 100644 --- a/groupes/visu_profs_eleve.php +++ b/groupes/visu_profs_eleve.php @@ -201,130 +201,133 @@ $prenom_eleve = mysql_result($eleve, 0, "prenom"); //$id_classe = mysql_result(mysql_query("SELECT id_classe FROM j_eleves_classes WHERE login = '" . $login_eleve ."' LIMIT 1"), 0); - echo "

    Equipe pédagogique de l'élève : ".$prenom_eleve ." " . $nom_eleve.""; - - $sql="SELECT jec.id_classe, c.* FROM j_eleves_classes jec, classes c WHERE jec.login='".$login_eleve."' AND jec.id_classe=c.id ORDER BY periode DESC LIMIT 1"; + //$sql="SELECT DISTINCT jec.id_classe, c.* FROM j_eleves_classes jec, classes c WHERE jec.login='".$login_eleve."' AND jec.id_classe=c.id ORDER BY periode DESC LIMIT 1"; + $sql="SELECT DISTINCT jec.id_classe, c.* FROM j_eleves_classes jec, classes c WHERE jec.login='".$login_eleve."' AND jec.id_classe=c.id ORDER BY periode;"; $res_class=mysql_query($sql); if(mysql_num_rows($res_class)==0) { + echo "

    Equipe pédagogique de l'élève : ".$prenom_eleve ." " . $nom_eleve.""; echo "

    \n"; echo "

    L'élève n'est dans aucune classe???

    \n"; require "../lib/footer.inc.php"; die(); } - $lig_clas=mysql_fetch_object($res_class); - $id_classe=$lig_clas->id_classe; - echo " de ".$lig_clas->nom_complet." (".$lig_clas->classe.")"; - /* - $tmp_classes=get_noms_classes_from_ele_login($login_eleve); - echo " ("; - for($i=0;$i0) {echo ", ";} - echo $tmp_classes[$i]; - } - echo ")"; - */ - echo "\n"; - echo " - - - - - \n"; + while($lig_clas=mysql_fetch_object($res_class)) { + echo "

    Equipe pédagogique de l'élève : ".$prenom_eleve ." " . $nom_eleve.""; - // On commence par le CPE - $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . - "FROM utilisateurs u,j_eleves_cpe jec " . - "WHERE jec.e_login='".$login_eleve."' AND " . - "u.login=jec.cpe_login " . - "ORDER BY jec.cpe_login;"; - //echo "$sql
    "; - $req = mysql_query($sql); - if(mysql_num_rows($req)>0) { - // Il ne doit y en avoir qu'un... - $cpe = mysql_fetch_object($req); - echo "

    \n"; - echo ""; - echo "\n"; - } + echo ")"; + */ + echo "\n"; + + echo "
    MatièreEnseignement/groupeProfesseur
    VIE SCOLAIRE"; - // On affiche l'email s'il est non nul, si le cpe l'a autorisé, et si l'utilisateur est autorisé par les droits d'accès globaux - if ($cpe->email!="" AND $cpe->show_email == "yes" AND ( - ($_SESSION['statut'] == "responsable" AND - (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" OR - getSettingValue("GepiAccesCpePPEmailParent") == "yes")) - OR - ($_SESSION['statut'] == "eleve" AND - (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" OR - getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes") - ) - )){ - echo "".affiche_utilisateur($cpe->cpe_login,$id_classe).""; - } else { - echo affiche_utilisateur($cpe->cpe_login,$id_classe); + $id_classe=$lig_clas->id_classe; + echo " de ".$lig_clas->nom_complet." (".$lig_clas->classe.")"; + /* + $tmp_classes=get_noms_classes_from_ele_login($login_eleve); + echo " ("; + for($i=0;$i0) {echo ", ";} + echo $tmp_classes[$i]; } - echo "
    + + + + + \n"; - // On passe maintenant les groupes un par un, sans se préoccuper de la période : on affiche tous les groupes - // auxquel l'élève appartient ou a appartenu - $groupes = mysql_query("SELECT DISTINCT jeg.id_groupe, m.nom_complet, g.* " . - "FROM j_eleves_groupes jeg, matieres m, j_groupes_matieres jgm, j_groupes_classes jgc, groupes g WHERE " . - "g.id=jeg.id_groupe AND ". - "jeg.login = '".$login_eleve."' AND " . - "m.matiere = jgm.id_matiere AND " . - "jgm.id_groupe = jeg.id_groupe AND " . - "jgc.id_groupe = jeg.id_groupe AND " . - "jgc.id_classe = '".$id_classe . "' " . - "ORDER BY jgc.priorite, m.matiere"); - while ($groupe = mysql_fetch_object($groupes)) { - // On est dans la boucle 'groupes'. On traite les groupes un par un. + // On commence par le CPE + $sql="SELECT DISTINCT u.nom,u.prenom,u.email,u.show_email,jec.cpe_login " . + "FROM utilisateurs u,j_eleves_cpe jec " . + "WHERE jec.e_login='".$login_eleve."' AND " . + "u.login=jec.cpe_login " . + "ORDER BY jec.cpe_login;"; + //echo "$sql
    "; + $req = mysql_query($sql); + if(mysql_num_rows($req)>0) { + // Il ne doit y en avoir qu'un... + $cpe = mysql_fetch_object($req); + echo "\n"; + echo ""; + echo "\n"; + } - // Matière correspondant au groupe: - echo "\n"; + // On passe maintenant les groupes un par un, sans se préoccuper de la période : on affiche tous les groupes + // auxquel l'élève appartient ou a appartenu + $groupes = mysql_query("SELECT DISTINCT jeg.id_groupe, m.nom_complet, g.* " . + "FROM j_eleves_groupes jeg, matieres m, j_groupes_matieres jgm, j_groupes_classes jgc, groupes g WHERE " . + "g.id=jeg.id_groupe AND ". + "jeg.login = '".$login_eleve."' AND " . + "m.matiere = jgm.id_matiere AND " . + "jgm.id_groupe = jeg.id_groupe AND " . + "jgc.id_groupe = jeg.id_groupe AND " . + "jgc.id_classe = '".$id_classe . "' " . + "ORDER BY jgc.priorite, m.matiere"); + while ($groupe = mysql_fetch_object($groupes)) { + // On est dans la boucle 'groupes'. On traite les groupes un par un. - echo ""; + // Matière correspondant au groupe: + echo "\n"; - // Professeurs - echo ""; - // Le prof est-il PP de l'élève ? - $sql="SELECT * FROM j_eleves_professeurs WHERE login = '".$login_eleve."' AND professeur='".$lig_prof->login."'"; - $res_pp=mysql_query($sql); + // Professeurs + echo "\n"; - echo "\n"; - } - // On a fini le traitement. - echo "
    MatièreEnseignement/groupeProfesseur
    VIE SCOLAIRE"; + // On affiche l'email s'il est non nul, si le cpe l'a autorisé, et si l'utilisateur est autorisé par les droits d'accès globaux + if ($cpe->email!="" AND $cpe->show_email == "yes" AND ( + ($_SESSION['statut'] == "responsable" AND + (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" OR + getSettingValue("GepiAccesCpePPEmailParent") == "yes")) + OR + ($_SESSION['statut'] == "eleve" AND + (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" OR + getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes") + ) + )){ + echo "".affiche_utilisateur($cpe->cpe_login,$id_classe).""; + } else { + echo affiche_utilisateur($cpe->cpe_login,$id_classe); + } + echo "
    ".htmlspecialchars($groupe->nom_complet)."".$groupe->name." (".$groupe->description.")"."
    ".htmlspecialchars($groupe->nom_complet).""; - $sql="SELECT jgp.login,u.nom,u.prenom,u.email,u.show_email FROM j_groupes_professeurs jgp,utilisateurs u WHERE jgp.id_groupe='".$groupe->id_groupe."' AND u.login=jgp.login"; - $result_prof=mysql_query($sql); - while($lig_prof=mysql_fetch_object($result_prof)){ + echo "".$groupe->name." (".$groupe->description.")".""; + $sql="SELECT jgp.login,u.nom,u.prenom,u.email,u.show_email FROM j_groupes_professeurs jgp,utilisateurs u WHERE jgp.id_groupe='".$groupe->id_groupe."' AND u.login=jgp.login"; + $result_prof=mysql_query($sql); + while($lig_prof=mysql_fetch_object($result_prof)){ - if($lig_prof->email!="" AND $lig_prof->show_email == "yes" AND - (($_SESSION['statut'] == "responsable" AND - (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" - OR - (getSettingValue("GepiAccesCpePPEmailParent") == "yes" AND mysql_num_rows($res_pp)>0) - ) - ) OR ( - $_SESSION['statut'] == "eleve" AND - (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" - OR - (getSettingValue("GepiAccesCpePPEmailEleve") == "yes" AND mysql_num_rows($res_pp)>0) - ) - ) - )){ - echo "".affiche_utilisateur($lig_prof->login,$id_classe).""; - } - else{ - echo affiche_utilisateur($lig_prof->login,$id_classe); - } + // Le prof est-il PP de l'élève ? + $sql="SELECT * FROM j_eleves_professeurs WHERE login = '".$login_eleve."' AND professeur='".$lig_prof->login."'"; + $res_pp=mysql_query($sql); + if($lig_prof->email!="" AND $lig_prof->show_email == "yes" AND + (($_SESSION['statut'] == "responsable" AND + (getSettingValue("GepiAccesEquipePedaEmailParent") == "yes" + OR + (getSettingValue("GepiAccesCpePPEmailParent") == "yes" AND mysql_num_rows($res_pp)>0) + ) + ) OR ( + $_SESSION['statut'] == "eleve" AND + (getSettingValue("GepiAccesEquipePedaEmailEleve") == "yes" + OR + (getSettingValue("GepiAccesCpePPEmailEleve") == "yes" AND mysql_num_rows($res_pp)>0) + ) + ) + )){ + echo "".affiche_utilisateur($lig_prof->login,$id_classe).""; + } + else{ + echo affiche_utilisateur($lig_prof->login,$id_classe); + } - if(mysql_num_rows($res_pp)>0){ - echo " (".getSettingValue('gepi_prof_suivi').")"; - } - echo "
    \n"; - } - echo "
    \n"; + if(mysql_num_rows($res_pp)>0){ + echo " (".getSettingValue('gepi_prof_suivi').")"; + } + echo "
    \n"; + } + echo "
    \n"; + } } require "../lib/footer.inc.php"; From 059b129aa704d275137127a8bd0d6d872646c910 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 14:02:34 +0200 Subject: [PATCH 1022/1150] =?UTF-8?q?Possibilit=C3=A9=20d'utiliser=20le=20?= =?UTF-8?q?module=20Alertes=20en=20compte=20'autre'.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 2 +- mod_alerte/admin.php | 2 +- sql/data_gepi.sql | 2 +- templates/origine/bandeau_template.php | 2 +- templates/origine/mod_alerte/admin_template.php | 11 +++++++++++ utilitaires/updates/access_rights.inc.php | 2 +- 6 files changed, 16 insertions(+), 5 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index 68e108945..341fa1bc3 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -7436,7 +7436,7 @@ function clore_declore_message($id_msg) { function peut_poster_message($statut) { // A FAIRE: Gérer le statut Autre... if(getSettingAOui('active_mod_alerte')) { - if(!acces('/mod_alerte/form_message.php', $statut)) { + if(($_SESSION['statut']!='autre')&&(!acces('/mod_alerte/form_message.php', $statut))) { return false; } else { diff --git a/mod_alerte/admin.php b/mod_alerte/admin.php index 0bb716f95..7e69dce5a 100644 --- a/mod_alerte/admin.php +++ b/mod_alerte/admin.php @@ -117,7 +117,7 @@ saveSetting("PeutPosterMessageAdministrateur", 'y'); - $tab_statut=array('Professeur', 'Scolarite', 'Cpe'); + $tab_statut=array('Professeur', 'Scolarite', 'Cpe', 'Autre'); for($loop=0;$loop
    + /> + +
    +

    diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 68cf238f7..26f635b60 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -985,7 +985,7 @@ function traite_requete($requete = "") { eleve='F', responsable='F', secours='V', -autre='F', +autre='V', description='Dispositif d alerte', statut='';"; From 1a189b00ab0120673c10c55157337a0d74cfbeb3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 18:48:24 +0200 Subject: [PATCH 1023/1150] =?UTF-8?q?Remplacement=20de=20l'icone=20trop=20?= =?UTF-8?q?discr=C3=A8te=20et=20correction=20de=20formulation.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/signalement_eleves.php | 5 +++-- mod_abs2/saisir_groupe.php | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/groupes/signalement_eleves.php b/groupes/signalement_eleves.php index 4bbf4f368..12a1a7c51 100644 --- a/groupes/signalement_eleves.php +++ b/groupes/signalement_eleves.php @@ -440,8 +440,9 @@ function confirm_changement_grp(thechange, themessage) echo add_token_field(); echo "

    \n"; - echo "

    Cochez les cases de façon à griser les élèves qui ne doivent pas faire partie du groupe et à dé-griser les élèves qui vous manquent dans le groupe :

    \n"; - + echo "

    Décochez les cases de façon à griser les élèves qui ne doivent pas faire partie du groupe
    +et cocher pour dé-griser les élèves qui vous manquent dans le groupe :

    \n"; + echo "\n"; echo "\n"; echo "
    -
    +
    From 09638866ea340c81ca5410ef6347c70ed38f8066 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 9 Sep 2013 21:02:58 +0200 Subject: [PATCH 1024/1150] Correction d'une formulation. --- groupes/signalement_eleves.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/groupes/signalement_eleves.php b/groupes/signalement_eleves.php index 12a1a7c51..2bd0a7d5d 100644 --- a/groupes/signalement_eleves.php +++ b/groupes/signalement_eleves.php @@ -440,8 +440,7 @@ function confirm_changement_grp(thechange, themessage) echo add_token_field(); echo "

    \n"; - echo "

    Décochez les cases de façon à griser les élèves qui ne doivent pas faire partie du groupe
    -et cocher pour dé-griser les élèves qui vous manquent dans le groupe :

    \n"; + echo "

    Cochez les élèves qui vous manquent, décochez ceux que vous avez en trop. :

    \n"; echo "\n"; echo "\n"; From 0f72352c35d85aba62f1b868dd9b86d2efaee0c3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 10 Sep 2013 18:31:25 +0200 Subject: [PATCH 1025/1150] =?UTF-8?q?Correctif=20sur=20le=20rang=20max=20d?= =?UTF-8?q?'une=20mati=C3=A8re.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- matieres/modify_matiere.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/matieres/modify_matiere.php b/matieres/modify_matiere.php index 38d2e46ff..e7077920b 100644 --- a/matieres/modify_matiere.php +++ b/matieres/modify_matiere.php @@ -331,7 +331,8 @@ function checkbox_change(cpt) { echo "\n"; $k='11'; $j = '1'; -while ($k < '51'){ +//while ($k < '51'){ +while ($k < '61'){ echo "\n"; $k++; $j = $k - 10; From 044e95ac858dbe8b6e95cd5718fe783bb5c1f837 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 10 Sep 2013 18:59:56 +0200 Subject: [PATCH 1026/1150] Ajout de liens de navigation. --- classes/eleve_options.php | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/classes/eleve_options.php b/classes/eleve_options.php index e8287b121..ee411d93e 100644 --- a/classes/eleve_options.php +++ b/classes/eleve_options.php @@ -305,7 +305,26 @@ function confirm_close(theLink, thechange, themessage) $nom_eleve = @mysql_result($call_data_eleves, '0', 'nom'); $prenom_eleve = @mysql_result($call_data_eleves, '0', 'prenom'); -echo "

    ".$nom_eleve." ".$prenom_eleve." - Classe : $classe

    \n"; + +echo "

    "; +if(acces("/eleves/modify_eleve.php", $_SESSION['statut'])) { + echo "".$nom_eleve." ".$prenom_eleve.""; +} +else { + echo $nom_eleve." ".$prenom_eleve; +} +echo " - Classe : "; +if(acces("/classes/classes_const.php", $_SESSION['statut'])) { + echo "".$classe.""; +} +else { + echo $classe; +} +echo "

    \n"; if($_SESSION['statut']=="administrateur"){ //echo "

    Pour valider les modifications, cliquez sur le bouton qui apparait en bas de la page.

    \n"; From 8956713ecd7a033100e4a5b5c4ffbd2777b46751 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 07:20:08 +0200 Subject: [PATCH 1027/1150] Suppression d'affichages de debug --- mod_ent/index_itop.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 8e599a5ca..383551d8d 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -996,7 +996,7 @@ function formate_date2($chaine, $from, $to) { foreach($ligne as $id_col1 => $pers_id) { if($pers_id!="") { $sql="SELECT * FROM resp_pers WHERE pers_id='$pers_id';"; - echo "$sql
    "; + //echo "$sql
    "; $res=mysql_query($sql); if(mysql_num_rows($res)==0) { $msg.="ERREUR : Le responsable n°$pers_id n'existe pas dans la table 'resp_pers'.
    "; @@ -1011,7 +1011,7 @@ function formate_date2($chaine, $from, $to) { } else { $sql="SELECT * FROM utilisateurs WHERE login='".$tab_tempo4[$id_col1]['login']."';"; - echo "$sql
    "; + //echo "$sql
    "; $test_u=mysql_query($sql); if(mysql_num_rows($test_u)>0) { $lig_u=mysql_fetch_object($test_u); @@ -1022,11 +1022,11 @@ function formate_date2($chaine, $from, $to) { else { if($lig->login!="") { $sql="SELECT * FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; - echo "$sql
    "; + //echo "$sql
    "; $test_u=mysql_query($sql); if(mysql_num_rows($test_u)>0) { $sql="DELETE FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; - echo "$sql
    "; + //echo "$sql
    "; $menage=mysql_query($sql); if(!$menage) { $msg.="ERREUR : La suppression de l'ancien compte d'utilisateur $lig->login associé au responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; @@ -1044,11 +1044,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - echo "$sql
    "; + //echo "$sql
    "; $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - echo "$sql
    "; + //echo "$sql
    "; $update=mysql_query($sql); if($update) { $nb_comptes_remplaces++; @@ -1076,11 +1076,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - echo "$sql
    "; + //echo "$sql
    "; $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - echo "$sql
    "; + //echo "$sql
    "; $update=mysql_query($sql); if($update) { $nb_nouveaux_comptes++; @@ -1107,11 +1107,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - echo "$sql
    "; + //echo "$sql
    "; $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - echo "$sql
    "; + //echo "$sql
    "; $update=mysql_query($sql); if($update) { $nb_nouveaux_comptes++; From 7eaf2bd05224ed057fe3926c190a3f6372bbbd48 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 07:32:50 +0200 Subject: [PATCH 1028/1150] =?UTF-8?q?On=20exclut=20des=20scories=20de=20l'?= =?UTF-8?q?ann=C3=A9e=20pr=C3=A9c=C3=A9dente=20BASE2012-2013?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 383551d8d..ec1b53d43 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -3036,7 +3036,8 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { if(!isset($tab_classe_eleve[$tab[6]])) { $cpt=0; } @@ -3162,7 +3163,8 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { /* if($tab[11]!=$classe_precedente) { $cpt=0; @@ -3300,7 +3302,8 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { /* $sql="SELECT e.* FROM eleves e, sso_table_correspondance stc WHERE stc.login_gepi=e.login AND ;"; $res_ele=mysql_query($sql); @@ -3398,7 +3401,11 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + + // On exclut la ligne Nom;Prénom + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + // On exclut aussi les classes BASE2012-2013 + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { /* if($tab[11]!=$classe_precedente) { $cpt=0; From 822517f8f07d9ffcdf48b6e938673c5e6ede98b8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 07:44:29 +0200 Subject: [PATCH 1029/1150] =?UTF-8?q?On=20exclut=20les=20comptes=20D=C3=A9?= =?UTF-8?q?sactiv=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index ec1b53d43..0280977ef 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -3036,8 +3036,11 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + // Erreur: Ce n'est pas le fichier Mot de passe parents + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + // On exclut également les comptes "Désactivé" + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { if(!isset($tab_classe_eleve[$tab[6]])) { $cpt=0; } @@ -3164,7 +3167,9 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + // On exclut également les comptes "Désactivé" + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[11]=='Actif')) { /* if($tab[11]!=$classe_precedente) { $cpt=0; @@ -3302,8 +3307,10 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + // On exclut également les comptes "Désactivé" + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { /* $sql="SELECT e.* FROM eleves e, sso_table_correspondance stc WHERE stc.login_gepi=e.login AND ;"; $res_ele=mysql_query($sql); @@ -3405,7 +3412,9 @@ function change_graisse(num) { // On exclut la ligne Nom;Prénom //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { // On exclut aussi les classes BASE2012-2013 - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + // On exclut également les comptes "Désactivé" + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[11]=='Actif')) { /* if($tab[11]!=$classe_precedente) { $cpt=0; From 81fc7940da5d21455014b36b7da999e4c1e9a51d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 07:59:27 +0200 Subject: [PATCH 1030/1150] Correctif coquilles. --- mod_ent/index_itop.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 0280977ef..a0586e00a 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -3036,7 +3036,7 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { // Erreur: Ce n'est pas le fichier Mot de passe parents //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" @@ -3307,7 +3307,7 @@ function change_graisse(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { From 6176a3fa4ab2bbcb0426d4c8ffd4936b95e2ea3e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 15:27:16 +0200 Subject: [PATCH 1031/1150] Suppression d'affichages de debug. --- eleves/visu_eleve.inc.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/eleves/visu_eleve.inc.php b/eleves/visu_eleve.inc.php index 464edf00f..7107b9192 100644 --- a/eleves/visu_eleve.inc.php +++ b/eleves/visu_eleve.inc.php @@ -2265,12 +2265,12 @@ function affiche_edt_en_infobulle() { if($onglet!="cdt") {echo " display:none;";} echo "background-color: ".$tab_couleur['cdt']."; "; echo "'>"; -echo "a"; + //echo "a"; if(isset($tab_ele['classe'])) { -echo "b"; + //echo "b"; $id_derniere_classe=$tab_ele['classe'][count($tab_ele['classe'])-1]['id_classe']; if(acces("/cahier_texte_2/consultation2.php", $_SESSION['statut'])) { -echo "c"; + //echo "c"; echo "
    \n"; } } From 2cb4f546005c1eeadcbbf7e469a1d8870b1bc60e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 16:39:17 +0200 Subject: [PATCH 1032/1150] Formulaire de passage vers les autres signalements d'erreur. --- groupes/edit_eleves.php | 68 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/groupes/edit_eleves.php b/groupes/edit_eleves.php index 25dd36784..1eb3380e7 100644 --- a/groupes/edit_eleves.php +++ b/groupes/edit_eleves.php @@ -242,6 +242,16 @@ function debug_edit_eleves($texte) { $nb_periode=$current_group['nb_periode']; //========================= +$tab_autres_sig=array(); +$sql="SELECT DISTINCT id_groupe FROM j_signalement WHERE nature='erreur_affect' AND id_groupe!='$id_groupe';"; +//echo "$sql
    "; +$res_autres_sig=mysql_query($sql); +if(mysql_num_rows($res_autres_sig)>0) { + while($lig_autres_sig=mysql_fetch_object($res_autres_sig)) { + $tab_autres_sig[]=$lig_autres_sig->id_groupe; + } +} + $tab_sig=array(); $sql="SELECT * FROM j_signalement WHERE id_groupe='$id_groupe' AND nature='erreur_affect' ORDER BY periode, login;"; //echo "$sql
    "; @@ -353,6 +363,7 @@ function DecochePeriode() { $cpt_grp=0; $chaine_js=array(); //echo "\n"; + $indice_grp_courant=0; while($lig_grp=mysql_fetch_object($res_grp)) { $tmp_grp=get_group($lig_grp->id_groupe); @@ -412,6 +423,7 @@ function confirm_changement_grp(thechange, themessage) echo " | "; + $indice_grp_courant=0; echo "\n"; + $cpt_grp=0; + $chaine_js=array(); + $indice_grp_courant=0; + echo "\n"; + for($loop=0;$loop".$tmp_grp['description']." (".$tmp_grp['name']." en ".$tmp_grp["classlist_string"].")\n"; + $cpt_grp++; + } + echo "\n"; + + echo " \n"; + + echo "\n"; + + echo "

    "; + + echo "\n"; + echo "\n"; +} echo "
    \n"; ?> From 042c30df91cc118ca218fdc6003fec0fc8690841 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 16:39:18 +0200 Subject: [PATCH 1033/1150] =?UTF-8?q?Correctifs=20divers.=20Possibilit?= =?UTF-8?q?=C3=A9=20de=20forcer=20les=20logins=20des=20parents=20aux=20val?= =?UTF-8?q?eurs=20ENT.=20Possibilit=C3=A9=20d'envoyer=20par=20mail=20les?= =?UTF-8?q?=20fiches=20bienvenue.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 653 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 582 insertions(+), 71 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index a0586e00a..d7cf2d9ec 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -1,7 +1,7 @@ "; + echo_debug_itop("$sql
    "); $test=mysql_query($sql); if(mysql_num_rows($test)==0) { $naissance=(isset($tab[5])) ? $tab[5] : ""; @@ -445,7 +452,7 @@ function formate_date2($chaine, $from, $to) { else { $sql="SELECT * FROM eleves WHERE nom LIKE '".$nom_remplacement."' AND prenom LIKE '".$prenom_remplacement."' ORDER BY naissance;"; } - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res=mysql_query($sql); if(mysql_num_rows($res)==0) { $msg.="Aucun enregistrement dans la table 'eleves' pour ".$tab[1]." ".$tab[2]." !
    \n"; @@ -456,11 +463,11 @@ function formate_date2($chaine, $from, $to) { $lig=mysql_fetch_object($res); $sql="SELECT 1=1 FROM sso_table_correspondance WHERE login_gepi='$lig->login';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $test=mysql_query($sql); if(mysql_num_rows($test)==0) { $sql="INSERT INTO sso_table_correspondance SET login_gepi='$lig->login', login_sso='".mysql_real_escape_string($tab[0])."';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $insert=mysql_query($sql); if(!$insert) { $msg.="Erreur lors de l'insertion de l'association ".$tab[0]." > ".$lig->login."
    \n"; @@ -471,7 +478,7 @@ function formate_date2($chaine, $from, $to) { } else { $sql="UPDATE sso_table_correspondance SET login_sso='".mysql_real_escape_string($tab[0])."' WHERE login_gepi='$lig->login';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $update=mysql_query($sql); if(!$update) { $msg.="Erreur lors de la mise à jour de l'association ".$tab[0]." > ".$lig->login."
    \n"; @@ -602,13 +609,13 @@ function formate_date2($chaine, $from, $to) { $tab_resp_login=array(); if($chaine!="") { $sql="SELECT e.* FROM eleves e, sso_table_correspondance s WHERE ($chaine) AND e.login=s.login_gepi ORDER BY e.nom, e.prenom;"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res_ele=mysql_query($sql); if(mysql_num_rows($res_ele)>0) { $cpt_ele=0; while($lig_ele=mysql_fetch_object($res_ele)) { $sql="SELECT rp.*, r.resp_legal FROM resp_pers rp, responsables2 r WHERE r.pers_id=rp.pers_id AND r.ele_id='$lig_ele->ele_id' AND rp.nom='".mysql_real_escape_string($tab[1])."' AND rp.prenom='".mysql_real_escape_string($tab[2])."' AND rp.login!='';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res_resp=mysql_query($sql); if(mysql_num_rows($res_resp)>0) { while($lig_resp=mysql_fetch_object($res_resp)) { @@ -629,7 +636,7 @@ function formate_date2($chaine, $from, $to) { } else { $sql="SELECT rp.*, r.resp_legal FROM resp_pers rp, responsables2 r WHERE r.pers_id=rp.pers_id AND r.ele_id='$lig_ele->ele_id' AND rp.login!='';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res_resp=mysql_query($sql); if(mysql_num_rows($res_resp)>0) { while($lig_resp=mysql_fetch_object($res_resp)) { @@ -996,7 +1003,7 @@ function formate_date2($chaine, $from, $to) { foreach($ligne as $id_col1 => $pers_id) { if($pers_id!="") { $sql="SELECT * FROM resp_pers WHERE pers_id='$pers_id';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res=mysql_query($sql); if(mysql_num_rows($res)==0) { $msg.="ERREUR : Le responsable n°$pers_id n'existe pas dans la table 'resp_pers'.
    "; @@ -1011,7 +1018,7 @@ function formate_date2($chaine, $from, $to) { } else { $sql="SELECT * FROM utilisateurs WHERE login='".$tab_tempo4[$id_col1]['login']."';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $test_u=mysql_query($sql); if(mysql_num_rows($test_u)>0) { $lig_u=mysql_fetch_object($test_u); @@ -1022,11 +1029,11 @@ function formate_date2($chaine, $from, $to) { else { if($lig->login!="") { $sql="SELECT * FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $test_u=mysql_query($sql); if(mysql_num_rows($test_u)>0) { $sql="DELETE FROM utilisateurs WHERE login='".$lig->login."' AND statut='responsable';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $menage=mysql_query($sql); if(!$menage) { $msg.="ERREUR : La suppression de l'ancien compte d'utilisateur $lig->login associé au responsable n°$pers_id ($lig->nom $lig->prenom) a échoué.
    "; @@ -1044,11 +1051,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $update=mysql_query($sql); if($update) { $nb_comptes_remplaces++; @@ -1076,11 +1083,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $update=mysql_query($sql); if($update) { $nb_nouveaux_comptes++; @@ -1107,11 +1114,11 @@ function formate_date2($chaine, $from, $to) { auth_mode='gepi', statut='responsable', etat='inactif';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $insert=mysql_query($sql); if($insert) { $sql="UPDATE resp_pers SET login='".$tab_tempo4[$id_col1]['login']."' WHERE pers_id='$pers_id';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $update=mysql_query($sql); if($update) { $nb_nouveaux_comptes++; @@ -1333,7 +1340,7 @@ function recherche_utilisateur(statut) { -

    Forcer les logins (expérimental)

    +

    Forcer les logins des responsables (expérimental)

    Si l'accès SSO de l'ENT vers Gepi tarde à être mis en place, vous pouvez ouvrir l'accès aux parents en limitant les difficultés :
    @@ -1342,9 +1349,10 @@ function recherche_utilisateur(statut) {


    -

    Supprimer les comptes parents actuels.
    +

    Supprimer les comptes d'utilisateurs des parents actuels.
    Dans cette opération (irréversible), les entrées parents sont supprimées de la table 'utilisateurs' et les logins des responsables sont réinitialisés/vidés dans la table 'resp_pers'.
    - Les responsables ne sont pas pour autant supprimés (ils n'auront plus de compte utilisateur).

    + Les responsables ne sont pas pour autant supprimés (simplement, ils n'auront plus de compte utilisateur).
    + Les bulletins pourront toujours porter leurs noms et adresses, les courriers d'absence, pourront leur être adressés,...


    @@ -1353,7 +1361,7 @@ function recherche_utilisateur(statut) { ".add_token_field()."

    Fournir le fichier CSV de mots de passe de l'ENT pour créer les comptes parents avec ces logins et mots de passe.

    -

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.


    @@ -1370,6 +1378,10 @@ function recherche_utilisateur(statut) { ... +


    + +

    Si les logins des responsables ont été forcés pour coïncider avec leurs logins dans l'ENT, et si votre base Sconet contenait les adresses email des parents (si elles étaient demandées sur le dossier d'inscription dans l'établissement, si votre secrétaire s'est embêté(e) à les saisir;), vous pouvez envoyer par mail les fiches bienvenues avec les logins et mots de passe.

    +
    \n"; @@ -1416,7 +1428,7 @@ function recherche_utilisateur(statut) { ".add_token_field()."
    -
    +
    @@ -1430,10 +1442,10 @@ function recherche_utilisateur(statut) { f73d0f72-0958-4b8f-85f7-a58a96d95220;DISSOIR;Alain;National_1;0310000Z$1L1;16/06/1987
    ...
  • Il peut arriver que le CSV fourni contienne des élèves de l'année précédente.
    - La classe est alors par exemple : BASE_2011-2012
    + La classe est alors par exemple : BASE2011-2012
    Proposer d'effectuer un rapprochement pour des élèves qui ne sont plus là n'est pas souhaitable.
    Vous pouvez aussi avoir un même élève qui apparaît avec deux lignes dans le fichier :
    - Une ligne avec le GUID de l'année passée et associé à une classe BASE_20XX-20XX
    + Une ligne avec le GUID de l'année passée et associé à une classe BASE20XX-20XX
    et une ligne avec le GUID de cette année (c'est celui qu'il faut retenir).
  • Il est recommandé d'envoyer deux fois le même CSV.
    La première fois pour prendre en compte les élèves correctement identifiés.
    @@ -1451,6 +1463,15 @@ function recherche_utilisateur(statut) { die(); } + $motif_nom_fichier="ExportSSO_Eleve_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $sql="TRUNCATE tempo2_sso;"; $menage=mysql_query($sql); @@ -1531,7 +1552,7 @@ function recherche_utilisateur(statut) { if(mysql_num_rows($test)>0) { $cpt_deja_enregistres++; } - elseif((!isset($_POST['exclure_classes_anormales']))||(!preg_match("/BASE_20/", $tab[4]))) { + elseif((!isset($_POST['exclure_classes_anormales']))||(!preg_match("/BASE20/", $tab[4]))) { $naissance=(isset($tab[5])) ? $tab[5] : ""; if(!preg_match("#[0-9]{2}/[0-9]{2}/[0-9]{4}#", $naissance)) {$naissance="";} @@ -1963,6 +1984,15 @@ function change_graisse(num) { die(); } + $motif_nom_fichier="ExportSSO_Parent_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $sql="TRUNCATE tempo2_sso;"; $menage=mysql_query($sql); @@ -2094,7 +2124,7 @@ function change_graisse(num) { // Si la chaine est vide, proposer un champ TEXT if($chaine!="") { $sql="SELECT e.* FROM eleves e, sso_table_correspondance s WHERE ($chaine) AND e.login=s.login_gepi ORDER BY e.nom, e.prenom;"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res_ele=mysql_query($sql); if(mysql_num_rows($res_ele)>0) { $temoin_eleve_associe="y"; @@ -2106,7 +2136,7 @@ function change_graisse(num) { if(isset($tab_classe['liste_nbsp'])) {echo " (".$tab_classe['liste_nbsp'].")";} $sql="SELECT rp.*, r.resp_legal FROM resp_pers rp, responsables2 r WHERE r.pers_id=rp.pers_id AND r.ele_id='$lig_ele->ele_id' AND rp.nom='".mysql_real_escape_string($tab[1])."' AND rp.prenom='".mysql_real_escape_string($tab[2])."' AND rp.login!='';"; - //echo "$sql
    "; + echo_debug_itop("$sql
    "); $res_resp=mysql_query($sql); if(mysql_num_rows($res_resp)>0) { while($lig_resp=mysql_fetch_object($res_resp)) { @@ -2542,6 +2572,15 @@ function change_graisse(num) { die(); } + $motif_nom_fichier="ExportSSO_Professeur_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $sql="TRUNCATE tempo2_sso;"; $menage=mysql_query($sql); @@ -2985,13 +3024,64 @@ function change_graisse(num) {

    Fiches bienvenue élèves

    "; if(!isset($csv_file)) { + // Liste des classes avec élève: + $sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; + $call_classes=mysql_query($sql); + + $nb_classes=mysql_num_rows($call_classes); + if($nb_classes==0){ + echo "

    Aucune classe avec élève affecté n'a été trouvée.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + // Affichage sur 3 colonnes + $nb_classes_par_colonne=round($nb_classes/3); + + echo "
    ".add_token_field()." -

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Eleve_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    + +


    + ou
    +
    + "; + echo "

  • \n"; + echo "\n"; + + $cpt = 0; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
         \n"; + + while($lig_clas=mysql_fetch_object($call_classes)) { + + //affichage 2 colonnes + if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ + echo "\n"; + } + + //echo ""; + echo ""; + echo "
    \n"; + $cpt++; + } + + echo "
    \n"; + + echo "

    Tout cocher / Tout décocher

    \n"; + + echo " +
    + +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Eleve_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.


    - +

    @@ -3011,7 +3101,36 @@ function change_graisse(num) { Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Classe;Etat;Date de désactivation
    DUPRE;Thomas;thomas.dupre;MENESR$12345;mdp&*;Thomas.DUPRE@ent27.fr;6 A;Actif
    ... -\n"; + + + +\n"; + + } else { check_token(false); @@ -3026,6 +3145,15 @@ function change_graisse(num) { die(); } + $motif_nom_fichier="Miseajour_Motdepasse_Eleve_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $cpt=0; $tab_classe_eleve=array(); while (!feof($fp)) { @@ -3040,19 +3168,23 @@ function change_graisse(num) { // Erreur: Ce n'est pas le fichier Mot de passe parents //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { - if(!isset($tab_classe_eleve[$tab[6]])) { - $cpt=0; - } - else { - $cpt=count($tab_classe_eleve[$tab[6]]); + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(preg_match("/Actif$/", $ligne))) { + + if(($_POST['toutes_les_classes']=="y")||(in_array($tab[6], $_POST['classe']))) { + if(!isset($tab_classe_eleve[$tab[6]])) { + $cpt=0; + } + else { + $cpt=count($tab_classe_eleve[$tab[6]]); + } + $tab_classe_eleve[$tab[6]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; + //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; + $tab_classe_eleve[$tab[6]][$cpt]['login_ent']=$tab[2]; + $tab_classe_eleve[$tab[6]][$cpt]['mdp_ent']=$tab[4]; + $tab_classe_eleve[$tab[6]][$cpt]['email_ent']=$tab[5]; + //$cpt++; } - $tab_classe_eleve[$tab[6]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; - //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; - $tab_classe_eleve[$tab[6]][$cpt]['login_ent']=$tab[2]; - $tab_classe_eleve[$tab[6]][$cpt]['mdp_ent']=$tab[4]; - $tab_classe_eleve[$tab[6]][$cpt]['email_ent']=$tab[5]; - //$cpt++; } } } @@ -3092,7 +3224,7 @@ function change_graisse(num) {
    $impression -

    "; +


    "; } } @@ -3114,10 +3246,61 @@ function change_graisse(num) {

    Fiches bienvenue responsables

    "; if(!isset($csv_file)) { + // Liste des classes avec élève: + $sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; + $call_classes=mysql_query($sql); + + $nb_classes=mysql_num_rows($call_classes); + if($nb_classes==0){ + echo "

    Aucune classe avec élève affecté n'a été trouvée.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + // Affichage sur 3 colonnes + $nb_classes_par_colonne=round($nb_classes/3); + + echo "
    ".add_token_field()." -

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    + +


    + ou
    +
    + "; + echo "\n"; + echo "\n"; + + $cpt = 0; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
         \n"; + + while($lig_clas=mysql_fetch_object($call_classes)) { + + //affichage 2 colonnes + if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ + echo "\n"; + } + + //echo ""; + echo ""; + echo "
    \n"; + $cpt++; + } + + echo "
    \n"; + + echo "

    Tout cocher / Tout décocher

    \n"; + + echo " +
    + +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.


    @@ -3140,7 +3323,38 @@ function change_graisse(num) { Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Adresse;Code postal;Ville;Nom enfant 1;Prénom enfant 1;Classe enfant 1;Etat;Date de désactivation
    DUPRE;Denis;denis.dupre1;MENESR$1234567;azerty&*;Denis.DUPRE1@ent27.fr;3 RUE DES PRIMEVERES;27300;BERNAY;DUPRE;Thomas;6 A;Actif
    ... -\n"; +
  • + Le fichier demandé n'associe chaque parent qu'à un seul enfant.
    + Un parent de plusieurs enfants dans l'établissement n'apparaitra que dans les fiches bienvenue de la classe de l'enfant auquel il est associé dans le fichier. +
  • + + + +\n"; } else { check_token(false); @@ -3155,6 +3369,15 @@ function change_graisse(num) { die(); } + $motif_nom_fichier="Miseajour_Motdepasse_Parent_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $cpt=0; //$classe_precedente=""; $tab_classe_parent=array(); @@ -3169,27 +3392,30 @@ function change_graisse(num) { //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[11]=='Actif')) { - /* - if($tab[11]!=$classe_precedente) { - $cpt=0; - $classe_precedente=$tab[11]; - } - */ - if(!isset($tab_classe_parent[$tab[11]])) { - $cpt=0; - } - else { - $cpt=count($tab_classe_parent[$tab[11]]); + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(isset($tab[11]))&&(isset($tab[12]))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { + if(($_POST['toutes_les_classes']=="y")||(in_array($tab[11], $_POST['classe']))) { + /* + if($tab[11]!=$classe_precedente) { + $cpt=0; + $classe_precedente=$tab[11]; + } + */ + if(!isset($tab_classe_parent[$tab[11]])) { + $cpt=0; + } + else { + $cpt=count($tab_classe_parent[$tab[11]]); + } + $tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; + //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; + $tab_classe_parent[$tab[11]][$cpt]['login_ent']=$tab[2]; + $tab_classe_parent[$tab[11]][$cpt]['mdp_ent']=$tab[4]; + $tab_classe_parent[$tab[11]][$cpt]['email_ent']=$tab[5]; + $tab_classe_parent[$tab[11]][$cpt]['adresse']=$tab[6]."
    ".$tab[7]." ".$tab[8]; + $tab_classe_parent[$tab[11]][$cpt]['resp_de']=$tab[9]." ".$tab[10]." (".$tab[11].")"; + //$cpt++; } - $tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; - //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; - $tab_classe_parent[$tab[11]][$cpt]['login_ent']=$tab[2]; - $tab_classe_parent[$tab[11]][$cpt]['mdp_ent']=$tab[4]; - $tab_classe_parent[$tab[11]][$cpt]['email_ent']=$tab[5]; - $tab_classe_parent[$tab[11]][$cpt]['adresse']=$tab[6]."
    ".$tab[7]." ".$tab[8]; - $tab_classe_parent[$tab[11]][$cpt]['resp_de']=$tab[9]." ".$tab[10]." (".$tab[11].")"; - //$cpt++; } } } @@ -3234,7 +3460,7 @@ function change_graisse(num) { $impression -

    "; +


    "; //} flush(); } @@ -3299,6 +3525,15 @@ function change_graisse(num) { die(); } + $motif_nom_fichier="Miseajour_Motdepasse_Professeur_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + while (!feof($fp)) { $ligne = trim(fgets($fp, 4096)); if((substr($ligne,0,3) == "\xEF\xBB\xBF")) { @@ -3310,7 +3545,7 @@ function change_graisse(num) { //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&($tab[7]=='Actif')) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(preg_match("/Actif$/", $ligne))) { /* $sql="SELECT e.* FROM eleves e, sso_table_correspondance stc WHERE stc.login_gepi=e.login AND ;"; $res_ele=mysql_query($sql); @@ -3353,7 +3588,7 @@ function change_graisse(num) { $impression -

    "; +


    "; //} } @@ -3393,6 +3628,16 @@ function change_graisse(num) { die(); } + + $motif_nom_fichier="Miseajour_Motdepasse_Parent_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + $sql="TRUNCATE tempo4;"; $menage=mysql_query($sql); @@ -3414,7 +3659,7 @@ function change_graisse(num) { // On exclut aussi les classes BASE2012-2013 //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { // On exclut également les comptes "Désactivé" - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[11]=='Actif')) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(isset($tab[11]))&&(isset($tab[12]))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { /* if($tab[11]!=$classe_precedente) { $cpt=0; @@ -3452,6 +3697,7 @@ function change_graisse(num) { echo " ".add_token_field()." + @@ -3632,6 +3878,7 @@ function change_graisse(num) {

    +


    NOTES :

    @@ -3696,6 +3943,270 @@ function change_graisse(num) { //================================================================================== +if($mode=="envoi_mail_logins_mdp") { + echo " + | Index rapprochement ENT ITOP +

    "; + + $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; + + echo " +

    Envoi par mail des fiches bienvenue responsables

    "; + + if(!isset($csv_file)) { + echo "

    ATTENTION : Cette démarche ne fonctionne que dans le cas où les logins Gepi des responsables et leurs logins ENT coïncident (et si les adresses mail sont correctement renseignées dans votre table 'resp_pers').

    "; + + // Liste des classes avec élève: + $sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; + $call_classes=mysql_query($sql); + + $nb_classes=mysql_num_rows($call_classes); + if($nb_classes==0){ + echo "

    Aucune classe avec élève affecté n'a été trouvée.

    \n"; + require("../lib/footer.inc.php"); + die(); + } + // Affichage sur 3 colonnes + $nb_classes_par_colonne=round($nb_classes/3); + + + echo " +
    + ".add_token_field()." + +


    + ou
    +
    + "; + echo "\n"; + echo "\n"; + + $cpt = 0; + + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
         \n"; + + while($lig_clas=mysql_fetch_object($call_classes)) { + + //affichage 2 colonnes + if(($cpt>0)&&(round($cpt/$nb_classes_par_colonne)==$cpt/$nb_classes_par_colonne)){ + echo "\n"; + } + + //echo ""; + echo ""; + echo "
    \n"; + $cpt++; + } + + echo "
    \n"; + + echo "

    Tout cocher / Tout décocher

    \n"; + + echo " +
    + +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    + +
    + +
    + + +


    + +

    NOTES :

    +
      +
    • Cette rubrique est destinée à générer des Fiches Bienvenue avec compte et mot de passe de l'ENT et à les envoyer à l'adresse mail saisie pour le responsable dans Gestion des responsables.
    • +
    • Modifier les Fiches Bienvenue responsables
    • +
    • Le fichier CSV attendu doit avoir le format suivant :
      + Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Adresse;Code postal;Ville;Nom enfant 1;Prénom enfant 1;Classe enfant 1;Etat;Date de désactivation
      + DUPRE;Denis;denis.dupre1;MENESR$1234567;azerty&*;Denis.DUPRE1@ent27.fr;3 RUE DES PRIMEVERES;27300;BERNAY;DUPRE;Thomas;6 A;Actif
      + ...
    • +
    • + Le fichier demandé n'associe chaque parent qu'à un seul enfant.
      + Un parent de plusieurs enfants dans l'établissement n'apparaitra que dans les fiches bienvenue de la classe de l'enfant auquel il est associé dans le fichier. +
    • +
    + + +\n"; + } + else { + check_token(false); + $fp=fopen($csv_file['tmp_name'],"r"); + + $impression=getSettingValue('ImpressionFicheParent'); + + if(!$fp){ + echo "

    Impossible d'ouvrir le fichier CSV !

    "; + echo "

    Cliquer ici pour recommencer !

    \n"; + require("../lib/footer.inc.php"); + die(); + } + + $motif_nom_fichier="Miseajour_Motdepasse_Parent_"; + echo "

    Le fichier fourni se nomme ".$csv_file['name'].""; + if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { + echo "
    +Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    +Vous seriez-vous trompé de fichier ?
    "; + } + echo "

    \n"; + + echo "

    Les parents pour lesquels les fiches bienvenues n'auront pas pu être envoyées par mail, apparaitront dans la page (pour que vous puissiez les imprimer et les remettre manuellement).
    + Les parents pour lesquels l'envoi aura réussi seront listés en bas de page.


    "; + + $cpt=0; + //$classe_precedente=""; + $tab_classe_parent=array(); + while (!feof($fp)) { + $ligne = trim(fgets($fp, 4096)); + if((substr($ligne,0,3) == "\xEF\xBB\xBF")) { + $ligne=substr($ligne,3); + } + + if($ligne!='') { + $tab=explode(";", ensure_utf8($ligne)); + //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { + // On exclut également les comptes "Désactivé" + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { + if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(isset($tab[11]))&&(isset($tab[12]))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { + if(($_POST['toutes_les_classes']=="y")||(in_array($tab[11], $_POST['classe']))) { + /* + if($tab[11]!=$classe_precedente) { + $cpt=0; + $classe_precedente=$tab[11]; + } + */ + if(!isset($tab_classe_parent[$tab[11]])) { + $cpt=0; + } + else { + $cpt=count($tab_classe_parent[$tab[11]]); + } + $tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; + //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; + $tab_classe_parent[$tab[11]][$cpt]['login_ent']=$tab[2]; + $tab_classe_parent[$tab[11]][$cpt]['mdp_ent']=$tab[4]; + $tab_classe_parent[$tab[11]][$cpt]['email_ent']=$tab[5]; + $tab_classe_parent[$tab[11]][$cpt]['adresse']=$tab[6]."
    ".$tab[7]." ".$tab[8]; + $tab_classe_parent[$tab[11]][$cpt]['resp_de']=$tab[9]." ".$tab[10]." (".$tab[11].")"; + + $sql="SELECT mel FROM resp_pers WHERE login='".$tab[2]."' AND mel LIKE '%@%';"; + $res_mel=mysql_query($sql); + if(mysql_num_rows($res_mel)>0) { + $mel=mysql_result($res_mel, 0, 'mel'); + if(check_mail($mel, "", "y")) { + $tab_classe_parent[$tab[11]][$cpt]['email_gepi']=$mel; + } + } + + //$cpt++; + } + } + } + } + + $tab_envoi_reussi=array(); + foreach($tab_classe_parent as $classe => $tab_parent) { + /* + echo "
    ";
    +			print_r($tab_parent);
    +			echo "
    "; + */ + for($loop=0;$loop + + + Login ENT + : + ".$tab_parent[$loop]['login_ent']." + + + Mot de passe ENT + : + ".$tab_parent[$loop]['mdp_ent']." + + + Email ENT + : + ".$tab_parent[$loop]['email_ent']." + + + Adresse + : + ".$tab_parent[$loop]['adresse']." + + + Responsable notamment de + : + ".$tab_parent[$loop]['resp_de']." + + +$impression"; + + if((isset($tab_parent[$loop]['email_gepi']))&&($envoi=envoi_mail("Compte Gepi", "Bonjour(soir),\n".$chaine, $tab_parent[$loop]['email_gepi'], "", "html"))) { + $tab_envoi_reussi[]=$tab_parent[$loop]['nom_prenom']." (".$tab_parent[$loop]['email_gepi'].") parent de ".$tab_parent[$loop]['resp_de']; + } + else { + echo $chaine." +


    "; + } + flush(); + } + } + + + $nb_envois=count($tab_envoi_reussi); + echo "

    Récapitulatif : ".$nb_envois." mail ont été envoyés avec succès.

    "; + if($nb_envois>0) { + echo "

    Liste des responsables contactés par mail :
    "; + for($loop=0;$loop<$nb_envois;$loop++) { + echo $tab_envoi_reussi[$loop]."
    "; + } + } + } + + require("../lib/footer.inc.php"); + die(); +} + +//================================================================================== + echo "

    Mode non encore développé

    \n"; echo "


    \n"; From 041d0b81c7285b48a6acb56cacf76a1bb7dbe4e8 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 16:39:19 +0200 Subject: [PATCH 1034/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20fixer=20les?= =?UTF-8?q?=20rangs=20de=20mati=C3=A8res=20entre=201=20et=2099.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 2 +- matieres/index.php | 2 +- matieres/modify_matiere.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index d6641de39..9047bea4f 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -1070,7 +1070,7 @@ function modif_mode_infobulle_nav() { $k=11; $j = 1; - while ($k < 61) { + while ($k < 110){ echo "\n"; $k++; $j = $k - 10; diff --git a/matieres/modify_matiere.php b/matieres/modify_matiere.php index a0207cdc5..06b15b321 100644 --- a/matieres/modify_matiere.php +++ b/matieres/modify_matiere.php @@ -332,7 +332,7 @@ function checkbox_change(cpt) { $k='11'; $j = '1'; //while ($k < '51'){ -while ($k < '61'){ +while ($k < 110){ echo "\n"; $k++; $j = $k - 10; From d27c731fa3772ef65ad1ecf2d2a9151e82cc4802 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 18:52:04 +0200 Subject: [PATCH 1035/1150] =?UTF-8?q?Affichage=20en=20title=20de=20la=20li?= =?UTF-8?q?ste=20des=20profs=20associ=C3=A9s=20=C3=A0=20l'enseignement=20q?= =?UTF-8?q?ue=20l'on=20veut=20ajouter.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_class.php | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 9047bea4f..5380eb7b6 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -686,9 +686,28 @@ function modif_mode_infobulle_nav() { for ($i=0;$i<$nb_mat;$i++) { $matiere = mysql_result($query, $i, "matiere"); $nom_matiere = mysql_result($query, $i, "nom_complet"); + + $sql="SELECT u.nom, u.prenom FROM utilisateurs u, j_professeurs_matieres jpm WHERE jpm.id_professeur=u.login AND jpm.id_matiere='".$matiere."' ORDER BY u.nom, u.prenom;"; + $res_profs_matiere=mysql_query($sql); + if(mysql_num_rows($res_profs_matiere)==0) { + $style_opt=" style='color:grey;'"; + $texte_opt=" - Aucun professeur n'est associé à cette matière."; + } + else { + $style_opt=""; + $texte_opt=" - Professeurs associés: "; + $cpt_prof_opt=0; + while($lig_prof_opt=mysql_fetch_object($res_profs_matiere)) { + if($cpt_prof_opt>0) {$texte_opt.=", ";} + $texte_opt.=casse_mot($lig_prof_opt->prenom, 'majf2')." ".casse_mot($lig_prof_opt->nom, 'maj'); + $cpt_prof_opt++; + } + } + //echo "\n"; echo ">" . htmlspecialchars($nom_matiere,ENT_QUOTES,"UTF-8") . "\n"; } @@ -788,7 +807,7 @@ function modif_mode_infobulle_nav() {
  • égales aux valeurs définies par défaut,
  • suivant l'ordre alphabétique des matières.
  • -
    +
    From ef65ea2b7897a1b595fdaad75955c72f2488caf2 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 18:52:06 +0200 Subject: [PATCH 1036/1150] =?UTF-8?q?Possibilit=C3=A9=20d'associer=20une?= =?UTF-8?q?=20moiti=C3=A9=20des=20=C3=A9l=C3=A8ves=20au=20nouveau=20groupe?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/add_group.php | 73 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 67 insertions(+), 6 deletions(-) diff --git a/groupes/add_group.php b/groupes/add_group.php index e8705cc23..38e921518 100644 --- a/groupes/add_group.php +++ b/groupes/add_group.php @@ -225,24 +225,64 @@ } } + //debug_var(); // METTRE TOUS LES ELEVES DES CLASSES CONCERNEES DANS LE GROUPE $reg_eleves=array(); $current_group=get_group($create); foreach ($current_group["periodes"] as $period) { $reg_eleves[$period['num_periode']]=array(); - foreach($reg_clazz as $tmp_id_classe){ - $sql="SELECT login FROM j_eleves_classes WHERE id_classe='$tmp_id_classe' AND periode='".$period['num_periode']."'"; + + if((isset($_POST['eleves_order_by']))&&($_POST['eleves_order_by']=='classe')) { + $cpt_clas=0; + $sql=""; + foreach($reg_clazz as $tmp_id_classe){ + if($cpt_clas>0) {$sql.=" UNION ";} + $sql.="(SELECT jec.login FROM j_eleves_classes jec, eleves e, classes c WHERE id_classe='$tmp_id_classe' AND periode='".$period['num_periode']."' AND jec.login=e.login AND jec.id_classe=c.id ORDER BY e.nom, e.prenom)"; + $cpt_clas++; + } + //$sql.=" ORDER BY c.classe, e.nom, e.prenom;"; + //echo "$sql
    "; $res_ele=mysql_query($sql); - if(mysql_num_rows($res_ele)>0){ - while($lig_ele=mysql_fetch_object($res_ele)){ - $reg_eleves[$period['num_periode']][]=$lig_ele->login; + $nb_ele=mysql_num_rows($res_ele); + if($nb_ele>0){ + $cpt_ele=1; + while($lig_ele=mysql_fetch_object($res_ele)) { + if((!isset($_POST['eleves_frac_classe']))|| + (($_POST['eleves_frac_classe']=='tous'))|| + (($_POST['eleves_frac_classe']==1)&&($cpt_ele<=ceil($nb_ele/2)))|| + (($_POST['eleves_frac_classe']==2)&&($cpt_ele>ceil($nb_ele/2)))) { + $reg_eleves[$period['num_periode']][]=$lig_ele->login; + //echo $lig_ele->login."
    "; + } + $cpt_ele++; + } + } + } + else { + foreach($reg_clazz as $tmp_id_classe){ + $sql="SELECT jec.login FROM j_eleves_classes jec, eleves e, classes c WHERE id_classe='$tmp_id_classe' AND periode='".$period['num_periode']."' AND jec.login=e.login AND jec.id_classe=c.id ORDER BY e.nom, e.prenom;"; + //echo "$sql
    "; + $res_ele=mysql_query($sql); + $nb_ele=mysql_num_rows($res_ele); + if($nb_ele>0){ + $cpt_ele=1; + while($lig_ele=mysql_fetch_object($res_ele)) { + if((!isset($_POST['eleves_frac_classe']))|| + (($_POST['eleves_frac_classe']=='tous'))|| + (($_POST['eleves_frac_classe']==1)&&($cpt_ele<=ceil($nb_ele/2)))|| + (($_POST['eleves_frac_classe']==2)&&($cpt_ele>ceil($nb_ele/2)))) { + $reg_eleves[$period['num_periode']][]=$lig_ele->login; + //echo $lig_ele->login."
    "; + } + $cpt_ele++; + } } } } } - if (count($reg_professeurs) == 0) { + if ((count($reg_professeurs) == 0)&&(count($reg_eleves) == 0)) { header("Location: ./edit_group.php?id_groupe=$create&msg=$msg&id_classe=$id_classe&mode=$mode"); } else { //$res = update_group($create, $reg_nom_groupe, $reg_nom_complet, $reg_matiere, $reg_clazz, $reg_professeurs, array()); @@ -255,6 +295,9 @@ else{ if($res){$msg.="Affectation des professeurs à cet enseignement effectuée. ";}else{$msg.="Echec de l'affectation des professeurs à cet enseignement. ";} } + + //die(); + //header("Location: ./edit_class.php?id_classe=$id_classe"); header("Location: ./edit_class.php?id_classe=$id_classe&msg=$msg"); } @@ -418,6 +461,22 @@ echo ">".$tab_domaines_texte[$loop]."
    \n"; } +echo "
    +

    Affecter dans l'enseignement :
    +
    +
    +

    "; + +if($mode == "regroupement") { + echo "

    Dans le cas où vous ne mettez qu'une moitié des élèves dans le groupe, veuillez choisir le tri 
    +
    +

    "; + +} +else { + echo ""; +} + echo "
    \n"; // On affiche une sélection des profs si la matière a été choisie @@ -544,6 +603,8 @@ function checkbox_change(cpt) { echo "\n"; From fdcd03669b50c6ceffb880942487f8d50ee6ecbc Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 11 Sep 2013 20:31:50 +0200 Subject: [PATCH 1037/1150] =?UTF-8?q?Facilit=C3=A9s=20pour=20renommer=20le?= =?UTF-8?q?s=20enseignements=20que=20l'on=20cr=C3=A9e=20ou=20modifie.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/add_group.php | 17 ++++++++--- groupes/edit_group.php | 29 ++++++++++++++++--- lib/share-html.inc.php | 64 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 102 insertions(+), 8 deletions(-) diff --git a/groupes/add_group.php b/groupes/add_group.php index 38e921518..0e953d86d 100644 --- a/groupes/add_group.php +++ b/groupes/add_group.php @@ -328,9 +328,16 @@
    -

    Nom court :

    +

    Nom court : Nom complet :

    +$titre_infobulle="Ajouter un suffixe au nom de l'enseignement"; +$texte_infobulle="
    ".html_ajout_suffixe_ou_renommer('groupe_nom_court', 'groupe_nom_complet', 'matiere')."
    "; +$tabdiv_infobulle[]=creer_div_infobulle('suffixe_nom_grp',$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); +echo " Suffixe"; + +?>

    + +

    Nom complet :

    Matière enseignée à ce groupe : \n"; +echo "\n"; echo "

    \n"; @@ -605,6 +613,7 @@ function checkbox_change(cpt) { echo js_checkbox_change_style('checkbox_change_visibilite'); echo js_checkbox_change_style('checkbox_change_frac_classe'); echo js_checkbox_change_style('checkbox_change_tri_eleves'); + echo "\n"; diff --git a/groupes/edit_group.php b/groupes/edit_group.php index 67ee6445f..ea7cc4d18 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -642,9 +642,17 @@ function afficher_liste_profs_du_groupe($reg_matiere) {
    -

    Nom court :

    +

    Nom court : Nom complet :

    + $titre_infobulle="Ajouter un suffixe au nom de l'enseignement"; + $texte_infobulle="
    ".html_ajout_suffixe_ou_renommer('groupe_nom_court', 'groupe_nom_complet', 'matiere')."
    "; + $tabdiv_infobulle[]=creer_div_infobulle('suffixe_nom_grp',$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); + echo " Suffixe"; + +?>

    + +

    Nom complet :

    \n"; -echo "

    Sélectionnez la matière enseignée à ce groupe : "; +echo "

    Sélectionnez la matière enseignée à ce groupe : "; $query = mysql_query("SELECT matiere, nom_complet FROM matieres ORDER BY matiere"); $nb_mat = mysql_num_rows($query); @@ -820,7 +828,8 @@ function afficher_liste_profs_du_groupe($reg_matiere) { $nom_matiere = mysql_result($query, $i, "nom_complet"); echo "\n"; + echo " nom_matiere=\"$nom_matiere\""; + echo ">".$matiere." (".htmlspecialchars($nom_matiere).")"."\n"; //echo ">" . html_entity_decode($nom_matiere) . "\n"; //echo ">" . htmlspecialchars($nom_matiere) . "\n"; } @@ -889,6 +898,18 @@ function maj_liste_autres_groupes_meme_matiere() { } } + /* + function ajout_suffixe_nom_grp(suffixe_nom_court, suffixe_nom_complet) { + document.getElementById('groupe_nom_court').value=document.getElementById('groupe_nom_court').value+suffixe_nom_court; + document.getElementById('groupe_nom_complet').value=document.getElementById('groupe_nom_complet').value+suffixe_nom_complet; + } + + function modif_nom_grp(suffixe_nom_court, suffixe_nom_complet) { + prefixe=document.getElementById('matiere').options[document.getElementById('matiere').selectedIndex].value; + document.getElementById('groupe_nom_court').value=prefixe+suffixe_nom_court; + document.getElementById('groupe_nom_complet').value=prefixe+suffixe_nom_complet; + } + */

    \n"; diff --git a/lib/share-html.inc.php b/lib/share-html.inc.php index 920463a6f..09ba520d0 100644 --- a/lib/share-html.inc.php +++ b/lib/share-html.inc.php @@ -2615,4 +2615,68 @@ function champ_password_".$id_champ."() { return $retour; } + +function html_ajout_suffixe_ou_renommer($id_nom_court, $id_nom_complet, $id_nom_matiere) { + $retour=" +

    Ajouter un suffixe au nom court actuel de l'enseignement et au nom complet actuel :

    + + + + + + +
    + _1 et (groupe 1)
    + _2 et (groupe 2)
    + _3 et (groupe 3)

    +
    + _g1 et (groupe 1)
    + _g2 et (groupe 2)
    + _g3 et (groupe 3)

    +
    + _A et (groupe A)
    + _B et (groupe B)
    + _C et (groupe C) +
    + +
    +

    ou

    + +

    Renommer l'enseignement en :

    + + + + + + +
    + _1 et (groupe 1)
    + _2 et (groupe 2)
    + _3 et (groupe 3)

    +
    + _g1 et (groupe 1)
    + _g2 et (groupe 2)
    + _g3 et (groupe 3)

    +
    + _A et (groupe A)
    + _B et (groupe B)
    + _C et (groupe C) +
    + + \n"; + + return $retour; +} ?> From d65f1e8c33bb79bc41317e4ac287c1770b9f0d92 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 07:26:49 +0200 Subject: [PATCH 1038/1150] =?UTF-8?q?Ajout=20d'un=20lien=20permettant=20de?= =?UTF-8?q?=20refaire=20la=20m=C3=AAme=20s=C3=A9lection=20de=20classes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 40 +++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index 347896cbc..69f695381 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -674,8 +674,8 @@ //**************** FIN EN-TETE ***************** //debug_var(); if($max_periode <= 0) { -echo "Aucune classe comportant des périodes n'a été définie."; -die(); + echo "

    Aucune classe comportant des périodes n'a été définie.

    "; + die(); } echo "\n"; echo add_token_field(); @@ -712,6 +712,8 @@ function UncheckAll(){ echo "

    Cocher toutes les classes / Tout décocher

    \n"; */ +$tab_id_cases_classes_postees_precedemment=array(); +$liste_classes_postees_precedemment=""; // Première boucle sur le nombre de periodes $per = 0; while ($per < $max_periode) { @@ -733,7 +735,7 @@ function UncheckAll(){ } $nbc++; } - If ($nb != 0) { + if ($nb != 0) { echo "

    Classes ayant ".$per." période"; if ($per > 1) echo "s"; echo "

    \n"; @@ -756,6 +758,13 @@ function UncheckAll(){ echo "\n"; if ($nom_classe != '') { echo "\n"; + if(isset($_POST[$nom_case])) { + $tab_id_cases_classes_postees_precedemment[]="case_".$per."_".$i."_".$j; + if($liste_classes_postees_precedemment!="") { + $liste_classes_postees_precedemment.=", "; + } + $liste_classes_postees_precedemment.=$nom_classe; + } } echo "\n"; @@ -838,14 +847,33 @@ function change_style_classe(num) { document.getElementById('label_case_'+num).style.fontWeight='normal'; } } - } + }"; -\n"; + if(count($tab_id_cases_classes_postees_precedemment)>0) { + echo " + function cocher_classes_post_precedent() { + tout_cocher($per, false);"; + for($loop=0;$loop\n"; + if(count($tab_id_cases_classes_postees_precedemment)>0) { + echo "

    Effectuer la même sélection de classes qu'à l'opération précédente ($liste_classes_postees_precedemment).

    "; + } ?> -

    Remarque : Les modifications ne concernent que les cases cochées ci-dessus.
    +

    Remarque : Les modifications qui seront apportées ne concerneront que les cases cochées ci-dessus.
    Aucune modification n'est apportée aux champs laissés vides ci-dessous.


    From 114db65f6552d0b4a65edebc007e6ce43d2dffd9 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 07:45:54 +0200 Subject: [PATCH 1039/1150] =?UTF-8?q?Possibilit=C3=A9=20d'ajouter=20un=20s?= =?UTF-8?q?uffixe=20dans=20la=20groupe=20=C3=A0=20cr=C3=A9er.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- classes/classes_param.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/classes/classes_param.php b/classes/classes_param.php index 69f695381..255cf8133 100644 --- a/classes/classes_param.php +++ b/classes/classes_param.php @@ -1104,7 +1104,7 @@ function cocher_classes_post_precedent() { echo "\n"; echo "\n"; @@ -1132,7 +1132,14 @@ function cocher_classes_post_precedent() { echo "\n"; echo "Nom : "; echo "\n"; - echo "\n"; + echo ""; + + $titre_infobulle="Ajouter un suffixe au nom de l'enseignement"; + $texte_infobulle="
    ".html_ajout_suffixe_ou_renommer('nom_nouvel_enseignement', 'description_nouvel_enseignement', 'matiere_nouvel_enseignement')."
    "; + $tabdiv_infobulle[]=creer_div_infobulle('suffixe_nom_grp',$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); + echo " Suffixe"; + + echo "\n"; echo "\n"; echo "\n"; From 9b37abc4c3151901c560b9d0955ebe399836a912 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 13:26:32 +0200 Subject: [PATCH 1040/1150] Ajout d'un lien vers la modification de la fiche bienvenue. --- utilisateurs/impression_bienvenue.php | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/utilisateurs/impression_bienvenue.php b/utilisateurs/impression_bienvenue.php index 7d79fff24..7f80de532 100644 --- a/utilisateurs/impression_bienvenue.php +++ b/utilisateurs/impression_bienvenue.php @@ -78,6 +78,9 @@ echo "

    "; echo "Retour Retour"; echo " | Fiches bienvenue"; + if(acces("/gestion/modify_impression.php", $_SESSION['statut'])) { + echo " | Modifier les fiches bienvenue"; + } echo "

    \n"; echo "\n"; @@ -114,6 +117,9 @@ echo "

    "; echo "Retour Retour"; echo " | Fiches bienvenue"; + if(acces("/gestion/modify_impression.php", $_SESSION['statut'])) { + echo " | Modifier les fiches bienvenue"; + } echo "

    \n"; $sql="SELECT DISTINCT c.id,c.classe FROM classes c, @@ -224,6 +230,9 @@ function change_style_classe(num) { echo "

    "; echo "Retour Retour"; echo " | Fiches bienvenue"; + if(acces("/gestion/modify_impression.php", $_SESSION['statut'])) { + echo " | Modifier les fiches bienvenue"; + } echo "

    \n"; $sql="SELECT DISTINCT c.id,c.classe FROM classes c, j_eleves_classes jec, utilisateurs u @@ -296,6 +305,9 @@ function change_style_classe(num) { echo "

    "; echo "Retour Retour index utilisateurs"; + if(acces("/gestion/modify_impression.php", $_SESSION['statut'])) { + echo " | Modifier les fiches bienvenue"; + } echo "

    \n"; echo "

    Fiches bienvenue :

    "; @@ -317,6 +329,9 @@ function change_style_classe(num) { echo "

    "; echo "Retour Retour index utilisateurs"; echo " | Fiches bienvenue"; + if(acces("/gestion/modify_impression.php", $_SESSION['statut'])) { + echo " | Modifier les fiches bienvenue"; + } echo "

    \n"; echo "

    Aucun utilisateur ($mode) n'a été sélectionné.

    \n"; From 5ebcb8324c46667c3f1f98b076114c4578b1e078 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 14:24:52 +0200 Subject: [PATCH 1041/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20cr=C3=A9er=20?= =?UTF-8?q?des=20'sous-groupes'=20d'un=20groupe=20existant.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_group.php | 174 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 173 insertions(+), 1 deletion(-) diff --git a/groupes/edit_group.php b/groupes/edit_group.php index ea7cc4d18..fe0292aed 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -512,10 +512,124 @@ function afficher_liste_profs_du_groupe($reg_matiere) { if (!$create) { $msg .= "Erreur lors de la mise à jour du groupe."; } else { + //====================================== // MODIF: boireaus //$msg = "Le groupe a bien été mis à jour."; - $msg = "Enseignement ". stripslashes($reg_nom_complet) . " bien mis à jour."; + $msg = "Enseignement ". stripslashes($reg_nom_complet) . " bien mis à jour.
    "; + + if(isset($_POST['creer_sous_groupes'])) { + if((!isset($_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']=='')||(!preg_match("/^[0-9]*$/", $_POST['nb_sous_groupes_a_creer']))||($_POST['nb_sous_groupes_a_creer']<1)) { + $msg.="Erreur : Le nombre de sous-groupes demandés est invalide.
    "; + } + else { + //20130912 $reg_categorie à récupérer... + $current_group=get_group($id_groupe); + $reg_categorie=$current_group["classes"]["classes"][$reg_clazz[0]]["categorie_id"]; + + $nb_sous_groupes_a_creer=$_POST['nb_sous_groupes_a_creer']; + + $suffixe_sous_groupe_a_creer=isset($_POST['suffixe_sous_groupe_a_creer']) ? $_POST['suffixe_sous_groupe_a_creer'] : ""; + + for($loop=0;$loop<$nb_sous_groupes_a_creer;$loop++) { + $reg_nom_sous_groupe=$reg_nom_groupe; + $reg_nom_complet_sous_groupe=$reg_nom_complet; + + if($suffixe_sous_groupe_a_creer=="1") { + $reg_nom_sous_groupe.="_".($loop+1); + $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")"; + } + elseif($suffixe_sous_groupe_a_creer=="g1") { + $reg_nom_sous_groupe.="_g".($loop+1); + $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".($loop+1).")"; + } + elseif($suffixe_sous_groupe_a_creer=="A") { + $alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"; + $reg_nom_sous_groupe.="_".substr($alphabet, $loop, 1); + $reg_nom_complet_sous_groupe=$reg_nom_complet." (groupe ".substr($alphabet, $loop, 1).")"; + } + + $create = create_group($reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_categorie); + if (!$create) { + $msg .= "Erreur lors de la création du sous-groupe $reg_nom_sous_groupe.
    "; + } else { + // Puis mise à jour avec la liste des élèves, la visibilité + $id_sous_groupe=$create; + + // Visibilité du sous-groupe + for($loo=0;$loo"; + $suppr=mysql_query($sql); + if(!$suppr) {$msg.="Erreur lors de la suppression de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].".
    ";} + } + } + else { + if($visibilite_groupe_domaine_courant=='n') { + $sql="INSERT j_groupes_visibilite SET id_groupe='".$id_sous_groupe."', domaine='".$tab_domaines[$loo]."', visible='n';"; + //echo "$sql
    "; + $insert=mysql_query($sql); + if(!$insert) {$msg.="Erreur lors de l'enregistrement de l'invisibilité du groupe n°".$id_sous_groupe." sur les ".$tab_domaines_texte[$loo].".
    ";} + } + } + } + + // Elèves du sous-groupe + $reg_eleves_sous_groupe=array(); + if($nb_sous_groupes_a_creer==1) { + $reg_eleves_sous_groupe=$reg_eleves; + } + else { + foreach ($current_group["periodes"] as $period) { + $reg_eleves_sous_groupe[$period["num_periode"]]=array(); + + $nb_ele_restants=count($current_group["eleves"][$period["num_periode"]]["list"]); + $nb_sous_groupes_restants=$nb_sous_groupes_a_creer; + $rang_prec=0; + $rang[-1]=0; + for($loop_grp=0;$loop_grp<$nb_sous_groupes_a_creer;$loop_grp++) { + $tranche[$loop_grp]=ceil($nb_ele_restants/$nb_sous_groupes_restants); + + $rang[$loop_grp]=$rang_prec+$tranche[$loop_grp]; + + $nb_ele_restants-=$tranche[$loop_grp]; + $nb_sous_groupes_restants--; + $rang_prec=$rang[$loop_grp]; + } + + for($loop_ele=$rang[$loop-1];$loop_ele<$rang[$loop];$loop_ele++) { + $reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele]; + } + + /* + for($loop_ele=0;$loop_ele=$loop*$tranche+1)&& + ($loop_ele+1<($loop+1)*$tranche+1)) { + $reg_eleves_sous_groupe[$period["num_periode"]][]=$current_group["eleves"][$period["num_periode"]]["list"][$loop_ele]; + } + } + */ + } + } + + $update = update_group($id_sous_groupe, $reg_nom_sous_groupe, $reg_nom_complet_sous_groupe, $reg_matiere, $reg_clazz, $reg_professeurs, $reg_eleves_sous_groupe); + if (!$update) { + $msg .= "Erreur lors de la mise à jour du sous-groupe ".$reg_nom_sous_groupe.".
    "; + } + + } + } + + } + } + $msg = urlencode($msg); if(isset($chemin_retour)) { @@ -808,6 +922,64 @@ function afficher_liste_profs_du_groupe($reg_matiere) { echo ">".$tab_domaines_texte[$loop]."
    \n"; } +echo " +
    +
    +

    Création de sous-groupes :

    +

    + +  groupes
    + d'élèves rangés par ordre 
    + avec des suffixes 
    + visibles sur
    "; + +for($loop=0;$loop
    \n"; +} + +echo " +

    + + + +

    NOTE : Ce sont de nouveaux groupes (à part entière), mais créés avec les mêmes professeurs, des noms (au suffixe près) et au partage des élèves près.

    +
    "; + echo "
    \n"; //================================================= From 98bc593e829de54a6334a5622aa8562bdccbcb05 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 17:28:00 +0200 Subject: [PATCH 1042/1150] Retouche sur une formulation. --- groupes/edit_class.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groupes/edit_class.php b/groupes/edit_class.php index 5380eb7b6..e74b52ba8 100644 --- a/groupes/edit_class.php +++ b/groupes/edit_class.php @@ -682,7 +682,7 @@ function modif_mode_infobulle_nav() { echo "\n"; echo " -
    +

    Création de sous-groupes :

    - -  groupes
    - d'élèves rangés par ordre 
    - avec des suffixes 
    - visibles sur
    "; +
    +

    + en fractionnant l'enseignement en +  groupes
    + d'élèves rangés par ordre 
    + avec des suffixes 
    + visibles sur
    "; for($loop=0;$loop
    \n"; + echo " +    
    \n"; } -echo " + echo "

    +

    NOTE : Ce sont de nouveaux groupes (à part entière), mais créés avec les mêmes professeurs, des noms (au suffixe près) et au partage des élèves près.

    +
    + -

    NOTE : Ce sont de nouveaux groupes (à part entière), mais créés avec les mêmes professeurs, des noms (au suffixe près) et au partage des élèves près.

    "; echo "
    \n"; @@ -1111,7 +1124,8 @@ function modif_nom_grp(suffixe_nom_court, suffixe_nom_complet) { echo "
    \n"; echo "
    \n"; -echo "
    \n"; +echo " +\n"; echo "

    From 9a20153d2a531f34d6bc7bb13949ca8cd0800a53 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 12 Sep 2013 18:38:32 +0200 Subject: [PATCH 1044/1150] =?UTF-8?q?Ajout=20de=20t=C3=A9moins=20pour=20le?= =?UTF-8?q?s=20login=20d=C3=A9j=C3=A0=20associ=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 94 +++++++++++++++++++++++++++++++++++------- 1 file changed, 80 insertions(+), 14 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index d7cf2d9ec..b5a28765d 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -949,7 +949,8 @@ function echo_debug_itop($chaine) { else { $msg.="Erreur lors du 'vidage' de sso_table_correspondance.
    "; } - unset($mode); + //unset($mode); + $mode=""; } if($mode=='valider_forcer_logins_mdp_responsables') { @@ -1159,7 +1160,8 @@ function echo_debug_itop($chaine) { //$sql="TRUNCATE tempo4;"; $menage=mysql_query($sql); - unset($mode); + //unset($mode); + $mode=""; } //**************** EN-TETE ***************** @@ -1209,7 +1211,7 @@ function recherche_utilisateur(statut) {

    Retour Retour"; -if(!isset($mode)) { +if((!isset($mode))||($mode=="")) { echo "

    @@ -1528,6 +1530,19 @@ function recherche_utilisateur(statut) { Naissance "; + + //$tab_login_associe_a_un_guid=array(); + $tab_guid_associe_a_un_login=array(); + $sql="SELECT u.statut, u.nom, u.prenom, stc.* FROM sso_table_correspondance stc, utilisateurs u WHERE stc.login_gepi=u.login;"; + $res=mysql_query($sql); + while($lig=mysql_fetch_object($res)) { + //$tab_login_associe_a_un_guid[$lig->login_sso]['login_gepi']=$lig->login_gepi; + //$tab_login_associe_a_un_guid[$lig->login_sso]['info']=$lig->nom." ".$lig->prenom." (".$lig->statut.")"; + + $tab_guid_associe_a_un_login[$lig->login_gepi]['login_sso']=$lig->login_sso; + $tab_guid_associe_a_un_login[$lig->login_gepi]['info']=$lig->nom." ".$lig->prenom." (".$lig->statut.")"; + } + $alt=1; $cpt=0; $cpt_deja_enregistres=0; @@ -1619,7 +1634,14 @@ function recherche_utilisateur(statut) { if(!document.getElementById('login_$cpt')) {ajout_champ_saisie_login($cpt);}; return false;\"> Chercher - + "; + + // + if(array_key_exists($lig->login, $tab_guid_associe_a_un_login)) { + echo "login]['login_sso']."\net concerne l'utilisateur Gepi ".$tab_guid_associe_a_un_login[$lig->login]['info']."\" />"; + } + + echo " "; @@ -1629,7 +1651,12 @@ function recherche_utilisateur(statut) { // Il va falloir choisir $chaine_options=""; while($lig=mysql_fetch_object($res)) { - $chaine_options.="
    \n"; From 57e2967f103dda94bd16d008ee86d9cdae708948 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 09:23:00 +0200 Subject: [PATCH 1059/1150] Ajout d'un lien de retour. --- mod_ent/index_itop.php | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 27b594921..eb89528c4 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -1348,7 +1348,7 @@ function recherche_utilisateur(statut) {

    Si l'accès SSO de l'ENT vers Gepi tarde à être mis en place, vous pouvez ouvrir l'accès aux parents en limitant les difficultés :
    Il s'agit de créer des comptes dans Gepi avec les logins et mots de passe proposés par l'ENT.
    Les parents auront donc les mêmes comptes et mots de passe initiaux dans l'ENT et dans Gepi
    (s'ils changent leur mot de passe d'un côté ou de l'autre, la synchronisation des mots de passe n'est pas assurée)

    -

    L'authentification des parents sera locale (non SSO CAS).

    +

    L'authentification des parents sera locale (sur la base GEPI et non en SSO CAS).


    @@ -4016,15 +4016,15 @@ function change_graisse(num) { if($mode=="envoi_mail_logins_mdp") { echo " - | Index rapprochement ENT ITOP -

    "; + | Index rapprochement ENT ITOP"; $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; - echo " + if(!isset($csv_file)) { + echo "

    +

    Envoi par mail des fiches bienvenue responsables

    "; - if(!isset($csv_file)) { echo "

    ATTENTION : Cette démarche ne fonctionne que dans le cas où les logins Gepi des responsables et leurs logins ENT coïncident (et si les adresses mail sont correctement renseignées dans votre table 'resp_pers').

    "; // Liste des classes avec élève: @@ -4132,6 +4132,10 @@ function change_style_classe(num) { \n"; } else { + echo " | Envoi par mail

    + +

    Envoi par mail des fiches bienvenue responsables

    "; + check_token(false); $fp=fopen($csv_file['tmp_name'],"r"); From 07c5951a0c5dc41f7ba0dc793397e27a702c81e5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 09:41:12 +0200 Subject: [PATCH 1060/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20ne=20pas=20ra?= =?UTF-8?q?ppeler=20l'adresse=20responsable=20sur=20les=20Fiches=20Bienven?= =?UTF-8?q?ue=20responsables.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index eb89528c4..8e3b5f11e 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -3369,6 +3369,7 @@ function change_style_classe(num) { echo "
    +

    Veuillez fournir le fichier ".getSettingValue("gepiSchoolRne")."_MiseaJour_Motdepasse_Parent_JJ_MM_AAAA_HH_MM_SS.csv généré par l'ENT.

    @@ -3518,12 +3519,16 @@ function change_style_classe(num) { Email ENT : ".$tab_parent[$loop]['email_ent']." - + "; + if(isset($_POST['avec_adresse'])) { + echo " Adresse : ".$tab_parent[$loop]['adresse']." - + "; + } + echo " Responsable notamment de : From 5531aeee0576a3f1f9df49522c45ce9c57d8c192 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 18:53:57 +0200 Subject: [PATCH 1061/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20g=C3=A9n?= =?UTF-8?q?=C3=A9rer=20des=20fiches=20bienvenue=20pour=20les=20comptes=20a?= =?UTF-8?q?jout=C3=A9s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 424 +++++++++++++++++++++++++++++++++-------- 1 file changed, 346 insertions(+), 78 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 98d6ae601..f5cc9f54b 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -1311,7 +1311,7 @@ function recherche_utilisateur(statut) { echo " -

    Cette rubrique permet de fournir les fichiers CSV de rénitialisation de mots de passe générés par l'ENT.

    "; +

    Cette rubrique permet de fournir les fichiers CSV de rénitialisation de mots de passe générés par l'ENT, ou les CSV des nouveaux élèves.

    "; @@ -1319,6 +1319,7 @@ function recherche_utilisateur(statut) { $res=mysql_query($sql); if(mysql_num_rows($res)>0) { echo " +

    ou vider la table des correspondances

    "; echo "

    La table de correspondances contient actuellement ".mysql_num_rows($res)." enregistrements.

    \n"; } @@ -1335,10 +1336,18 @@ function recherche_utilisateur(statut) { "; } - echo "

    NOTES : Les CSV réclamés dans les pages d'importation sont accessibles en suivant le cheminement suivant :
    - Se connecter avec un compte administrateur de l'ENT.
    - Menu Administration puis Gérer les utilisateurs puis Outils puis Traitement en masse puis Action (Choisir Exportation SSO au format CSV) puis dans Profil sélectionner le profil (Elève, Parent,...)
    - puis Traiter cette action puis Valider.

    + echo "

    NOTES :

    +
      +
    • +

      Les CSV réclamés dans les pages d'importation sont accessibles en suivant le cheminement suivant :
      + Se connecter avec un compte administrateur de l'ENT.
      + Menu Administration puis Gérer les utilisateurs puis Outils puis Traitement en masse puis Action (Choisir Exportation SSO au format CSV) puis dans Profil sélectionner le profil (Elève, Parent,...)
      + puis Traiter cette action puis Valider.

      +
    • +
    • +

      Les CSV pour les Fiches bienvenue peuvent aussi être ceux des nouveaux élèves ou parents
      ([V2]CLG-".getSettingValue('gepiSchoolName')."-ac-ROUEN - [".getSettingValue('gepiSchoolRne')."] - [ANNEEMOISJOURHEURE].xlsx
      ou ".getSettingValue('gepiSchoolRne')."_CSV_ANNEEMOISJOURHEURE.zip
      ).

      +
    • +
    @@ -1348,6 +1357,7 @@ function recherche_utilisateur(statut) {

    Si l'accès SSO de l'ENT vers Gepi tarde à être mis en place, vous pouvez ouvrir l'accès aux parents en limitant les difficultés :
    Il s'agit de créer des comptes dans Gepi avec les logins et mots de passe proposés par l'ENT.
    Les parents auront donc les mêmes comptes et mots de passe initiaux dans l'ENT et dans Gepi
    (s'ils changent leur mot de passe d'un côté ou de l'autre, la synchronisation des mots de passe n'est pas assurée)

    +

    L'authentification des parents sera locale (sur la base GEPI et non en SSO CAS).


    @@ -1382,7 +1392,9 @@ function recherche_utilisateur(statut) {


    -

    Si les logins des responsables ont été forcés pour coïncider avec leurs logins dans l'ENT, et si votre base Sconet contenait les adresses email des parents (si elles étaient demandées sur le dossier d'inscription dans l'établissement, si votre secrétaire s'est embêté(e) à les saisir;), vous pouvez envoyer par mail les fiches bienvenues avec les logins et mots de passe.

    +

    Si les logins des responsables ont été forcés pour coïncider avec leurs logins dans l'ENT, et si votre base Sconet contenait les adresses email des parents (si elles étaient demandées sur le dossier d'inscription dans l'établissement, si votre secrétaire s'est embêté(e) à les saisir;), vous pouvez envoyer par mail les fiches bienvenues avec les logins et mots de passe.

    +

    Pour que l'envoi fonctionne, il faut que les logins coïncident.
    + En revanche, que les comptes parents soient en authentification locale ou en authentification SSO (CAS) importe peu.

    \n"; @@ -3081,15 +3093,15 @@ function change_graisse(num) { //================================================================================== if($mode=="publipostage_eleves") { echo " - | Index rapprochement ENT ITOP -

    "; + | Index rapprochement ENT ITOP"; $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; - echo " + if(!isset($csv_file)) { + echo " | Fiches bienvenue élèves

    +

    Fiches bienvenue élèves

    "; - if(!isset($csv_file)) { // Liste des classes avec élève: $sql="SELECT DISTINCT c.* FROM j_eleves_classes jec, classes c WHERE (c.id=jec.id_classe) ORDER BY c.classe;"; $call_classes=mysql_query($sql); @@ -3167,10 +3179,39 @@ function change_graisse(num) { Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Classe;Etat;Date de désactivation
    DUPRE;Thomas;thomas.dupre;MENESR$12345;mdp&*;Thomas.DUPRE@ent27.fr;6 A;Actif
    ... -
  • A FAIRE : Permettre d'importer les CSV rapportant les nouveaux comptes créés.
  • +
  • Le fichier CSV attendu doit comporter une ligne d'entête avec au moins les champs Nom;Prénom;Login;Mot de passe;Classe
  • +
  • Le fichier CSV attendu peut être :
    +
      +
    • +

      celui de regénération de tous les mots de passe élèves.
      + Il aura alors le format suivant :
      + Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Classe;Etat;Date de désactivation
      + DUPRE;Denis;denis.dupre1;MENESR$1234567;azerty&*;Denis.DUPRE1@ent27.fr;6 A;Actif
      + ...
      + Avec le champ Etat, on peut exclure les comptes désactivés.

      +
      +
    • +
    • +

      un fichier CSV obtenu en enregistrant au format CSV avec séparateur point-virgule (édition des paramètres du filtre requise) le feuillet Elève d'un fichier [V2]CLG-".getSettingValue('gepiSchoolName')."-ac-ROUEN - [".getSettingValue('gepiSchoolRne')."] - [ANNEEMOISJOURHEURE].xlsx de l'espace Documents. + Il aura alors le format suivant :
      + Nom;Prénom;Login;Mot de passe;Adresse Mail;Classe
      + DUPRE;Denis;denis.dupre1;azerty&*;Denis.DUPRE1@ent27.fr;6 A
      + ...
      + Il manque le champ Etat, mais le reste y est.

      +
      +
    • +
    • +

      le fichier CSV ".getSettingValue('gepiSchoolRne')."_Extraction_Elève.csv que vous pouvez trouver dans les fichiers ".getSettingValue('gepiSchoolRne')."_CSV_ANNEEMOISJOURHEURE.zip de l'espace Documents. + Il aura alors le format suivant :
      + Nom;Prénom;Login;Mot de passe;Email;Classe
      + DUPRE;Denis;denis.dupre1;azerty&*;Thomas.DUPRE@ent27.fr;6 A
      + ...
      +

      +
    • +
    +
  • - \n"; } else { + + echo " | Fiches bienvenue responsables

    + +

    Fiches bienvenue responsables

    "; + check_token(false); $fp=fopen($csv_file['tmp_name'],"r"); @@ -3442,10 +3591,42 @@ function change_style_classe(num) { if(!preg_match("/$motif_nom_fichier/", $csv_file['name'])) { echo "
    Le nom du fichier contient habituellement la chaine $motif_nom_fichier.
    -Vous seriez-vous trompé de fichier ?
    "; +Vous seriez-vous trompé de fichier ?
    +Si vous n'avez fourni qu'un fichier CSV des nouveaux arrivants (sans regénérer tous les mots de passe), le nom de fichier sera celui de votre choix; ne tenez donc pas compte de cette alerte."; } echo "

    \n"; + // 20130916 + // Lire la ligne d'entête pour repérer les indices des colonnes recherchées + $tabchamps = array("Nom", "Prénom", "Login", "Mot de passe", "Email", "Adresse", "Code postal", "Ville", "Nom enfant 1", "Prénom enfant 1", "Classe enfant 1", "Etat", "Date de désactivation"); + + // Lecture de la ligne 1 et la mettre dans $temp + $temp=fgets($fp,4096); + //echo "$temp
    "; + $en_tete=explode(";", trim($temp)); + + $tabindice=array(); + + // On range dans tabindice les indices des champs retenus + for ($k = 0; $k < count($tabchamps); $k++) { + //echo "

    Recherche du champ ".$tabchamps[$k]."
    "; + for ($i = 0; $i < count($en_tete); $i++) { + //echo "\$en_tete[$i]=$en_tete[$i]
    "; + if (casse_mot(remplace_accents($en_tete[$i]),'min') == casse_mot(remplace_accents($tabchamps[$k]), 'min')) { + $tabindice[$tabchamps[$k]] = $i; + //echo "\$tabindice[$tabchamps[$k]]=$i
    "; + } + } + } + if((!isset($tabindice['Nom']))||(!isset($tabindice['Prénom']))||(!isset($tabindice['Login']))||(!isset($tabindice['Mot de passe']))) { + echo "

    La ligne d'entête ne comporte pas un des champs indispensables (Nom, Prénom, Login, Mot de passe).

    "; + require("../lib/footer.inc.php"); + die(); + } + + echo " +
    "; + $cpt=0; //$classe_precedente=""; $tab_classe_parent=array(); @@ -3457,37 +3638,67 @@ function change_style_classe(num) { if($ligne!='') { $tab=explode(";", ensure_utf8($ligne)); - //if(!preg_match("/^Nom;Pr/i", trim($ligne))) { - //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))) { - // On exclut également les comptes "Désactivé" - //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { - if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(isset($tab[11]))&&(isset($tab[12]))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { - if(($_POST['toutes_les_classes']=="y")||(in_array($tab[11], $_POST['classe']))) { - /* - if($tab[11]!=$classe_precedente) { - $cpt=0; - $classe_precedente=$tab[11]; + + $ligne_a_prendre_en_compte="y"; + if(preg_match("/^Nom;Pr/i", trim($ligne))) { + $ligne_a_prendre_en_compte="n"; + } + elseif((isset($tabindice['Classe enfant 1']))&&(preg_match("/^BASE20/",$tab[$tabindice['Classe enfant 1']]))) { + // On exclut l'année précédente + $ligne_a_prendre_en_compte="n"; + } + elseif((isset($tabindice['Etat']))&&($tab[$tabindice['Etat']]!='Actif')) { + // On exclut les comptes "Désactivé" + $ligne_a_prendre_en_compte="n"; + } + + //if((!preg_match("/^Nom;Pr/i", trim($ligne)))&&(isset($tab[11]))&&(isset($tab[12]))&&(!preg_match("/^BASE20/",$tab[11]))&&($tab[12]=='Actif')) { + if($ligne_a_prendre_en_compte=="y") { + if(($_POST['toutes_les_classes']=="y")|| + (!isset($tabindice['Classe enfant 1']))|| + ((isset($tabindice['Classe enfant 1']))&&(in_array($tab[$tabindice['Classe enfant 1']], $_POST['classe'])))) { + + if(!isset($tabindice['Classe enfant 1'])) { + $classe_courante="classe_inconnue"; } - */ - if(!isset($tab_classe_parent[$tab[11]])) { + else { + $classe_courante=$tab[$tabindice['Classe enfant 1']]; + } + + if(!isset($tab_classe_parent[$classe_courante])) { $cpt=0; } else { - $cpt=count($tab_classe_parent[$tab[11]]); + $cpt=count($tab_classe_parent[$classe_courante]); + } + + $tab_classe_parent[$classe_courante][$cpt]['nom_prenom']=$tab[$tabindice['Nom']]." ".$tab[$tabindice['Prénom']]; + //echo "\$tab_classe_parent[$classe_courante][$cpt]['nom_prenom']=".$tab_classe_parent[$classe_courante][$cpt]['nom_prenom']."
    "; + $tab_classe_parent[$classe_courante][$cpt]['login_ent']=$tab[$tabindice['Login']]; + $tab_classe_parent[$classe_courante][$cpt]['mdp_ent']=$tab[$tabindice['Mot de passe']]; + + if(isset($tabindice['Email'])) { + $tab_classe_parent[$classe_courante][$cpt]['email_ent']=$tab[$tabindice['Email']]; + } + + if((isset($tabindice['Adresse']))&&(isset($tabindice['Code postal']))&&(isset($tabindice['Ville']))) { + $tab_classe_parent[$classe_courante][$cpt]['adresse']=$tab[$tabindice['Adresse']]."
    ".$tab[$tabindice['Code postal']]." ".$tab[$tabindice['Ville']]; + } + + if((isset($tabindice['Nom enfant 1']))&&(isset($tabindice['Prénom enfant 1']))) { + $tab_classe_parent[$classe_courante][$cpt]['resp_de']=$tab[$tabindice['Nom enfant 1']]." ".$tab[$tabindice['Prénom enfant 1']]; + if($classe_courante!='classe_inconnue') { + $tab_classe_parent[$classe_courante][$cpt]['resp_de'].=" (".$classe_courante.")"; + } } - $tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=$tab[0]." ".$tab[1]; - //echo "\$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']=".$tab_classe_parent[$tab[11]][$cpt]['nom_prenom']."
    "; - $tab_classe_parent[$tab[11]][$cpt]['login_ent']=$tab[2]; - $tab_classe_parent[$tab[11]][$cpt]['mdp_ent']=$tab[4]; - $tab_classe_parent[$tab[11]][$cpt]['email_ent']=$tab[5]; - $tab_classe_parent[$tab[11]][$cpt]['adresse']=$tab[6]."
    ".$tab[7]." ".$tab[8]; - $tab_classe_parent[$tab[11]][$cpt]['resp_de']=$tab[9]." ".$tab[10]." (".$tab[11].")"; //$cpt++; } } } } + $saut=1; + $nb_fiches=getSettingValue("ImpressionNombreParent"); foreach($tab_classe_parent as $classe => $tab_parent) { /* echo "
    ";
    @@ -3510,25 +3721,49 @@ function change_style_classe(num) {
     		Mot de passe ENT
     		: 
     		".$tab_parent[$loop]['mdp_ent']."
    -	
    +	";
    +
    +				if(isset($tab_parent[$loop]['email_ent'])) {
    +					echo "
     	
     		Email ENT
     		: 
     		".$tab_parent[$loop]['email_ent']."
    -	
    +	";
    +				}
    +
    +				if((isset($_POST['avec_adresse']))&&(isset($tab_parent[$loop]['adresse']))) {
    +					echo "
     	
     		Adresse
     		: 
     		".$tab_parent[$loop]['adresse']."
    -	
    +	";
    +				}
    +
    +				if(isset($tab_parent[$loop]['resp_de'])) {
    +					echo "
     	
     		Responsable notamment de
     		: 
     		".$tab_parent[$loop]['resp_de']."
    -	
    +	";
    +				}
    +
    +				echo "
     
    -$impression
    -


    "; +$impression"; + + // Saut de page toutes les $nb_fiches fiches + if ($saut == $nb_fiches) { + echo "

     

    \n"; + $saut = 1; + } else { + $saut++; + } + + echo " +
    "; //} flush(); } @@ -3543,15 +3778,17 @@ function change_style_classe(num) { //================================================================================== if($mode=="publipostage_personnels") { echo " - | Index rapprochement ENT ITOP -

    "; + | Index rapprochement ENT ITOP"; $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; - echo " + if(!isset($csv_file)) { + + echo "

    +

    Fiches bienvenue professeurs

    "; - if(!isset($csv_file)) { + echo "
    ".add_token_field()." @@ -3581,6 +3818,10 @@ function change_style_classe(num) { \n"; } else { + echo " | Fiches bienvenue personnels

    + +

    Fiches bienvenue personnels

    "; + check_token(false); $fp=fopen($csv_file['tmp_name'],"r"); @@ -3602,6 +3843,8 @@ function change_style_classe(num) { } echo "

    \n"; + $saut=1; + $nb_fiches=getSettingValue("ImpressionNombre"); while (!feof($fp)) { $ligne = trim(fgets($fp, 4096)); if((substr($ligne,0,3) == "\xEF\xBB\xBF")) { @@ -3655,8 +3898,17 @@ function change_style_classe(num) { ".$tab[6]." -$impression -


    "; +$impression"; + + // Saut de page toutes les $nb_fiches fiches + if ($saut == $nb_fiches) { + echo "

     

    \n"; + $saut = 1; + } else { + $saut++; + } + + echo "
    "; //} } @@ -4013,15 +4265,15 @@ function change_graisse(num) { if($mode=="envoi_mail_logins_mdp") { echo " - | Index rapprochement ENT ITOP -

    "; + | Index rapprochement ENT ITOP"; $csv_file = isset($_FILES["csv_file"]) ? $_FILES["csv_file"] : NULL; - echo " + if(!isset($csv_file)) { + echo "

    +

    Envoi par mail des fiches bienvenue responsables

    "; - if(!isset($csv_file)) { echo "

    ATTENTION : Cette démarche ne fonctionne que dans le cas où les logins Gepi des responsables et leurs logins ENT coïncident (et si les adresses mail sont correctement renseignées dans votre table 'resp_pers').

    "; // Liste des classes avec élève: @@ -4129,6 +4381,10 @@ function change_style_classe(num) { \n"; } else { + echo " | Envoi par mail

    + +

    Envoi par mail des fiches bienvenue responsables

    "; + check_token(false); $fp=fopen($csv_file['tmp_name'],"r"); @@ -4205,6 +4461,9 @@ function change_style_classe(num) { } } + $saut=1; + $nb_fiches=getSettingValue("ImpressionNombreParent"); + $tab_envoi_reussi=array(); foreach($tab_classe_parent as $classe => $tab_parent) { /* @@ -4251,8 +4510,17 @@ function change_style_classe(num) { $tab_envoi_reussi[]=$tab_parent[$loop]['nom_prenom']." (".$tab_parent[$loop]['email_gepi'].") parent de ".$tab_parent[$loop]['resp_de']; } else { - echo $chaine." -


    "; + echo $chaine.""; + + // Saut de page toutes les $nb_fiches fiches + if ($saut == $nb_fiches) { + echo "

     

    \n"; + $saut = 1; + } else { + $saut++; + } + + echo "
    "; } flush(); } From efd6cbc67eaed76b0b4c69dcf94e72a0a422c6e3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:21:32 +0200 Subject: [PATCH 1062/1150] =?UTF-8?q?Par=20d=C3=A9faut,=20on=20met=20mode?= =?UTF-8?q?=3Dregroupement=20pour=20ne=20pas=20perdre=20des=20associations?= =?UTF-8?q?=20classes=20accidentellement.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/edit_group.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/groupes/edit_group.php b/groupes/edit_group.php index 40522fd50..ba6ef04e6 100644 --- a/groupes/edit_group.php +++ b/groupes/edit_group.php @@ -65,6 +65,10 @@ $mode = isset($_GET['mode']) ? $_GET['mode'] : (isset($_POST['mode']) ? $_POST["mode"] : null); if ($mode == null and $id_classe == null) { $mode = "groupe"; + + if ((isset($current_group["classes"]["list"]))&&(count($current_group["classes"]["list"]) > 1)) { + $mode = "regroupement"; + } } else if ($mode == null and $current_group) { if (count($current_group["classes"]["list"]) > 1) { $mode = "regroupement"; From be625a0a204078e8155f72d158e4cdc18c409a20 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:25:12 +0200 Subject: [PATCH 1063/1150] Modification de la todo list. --- groupes/ajout_groupes_csv.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/groupes/ajout_groupes_csv.php b/groupes/ajout_groupes_csv.php index e87be8034..32ddf5d84 100644 --- a/groupes/ajout_groupes_csv.php +++ b/groupes/ajout_groupes_csv.php @@ -119,7 +119,7 @@ function get_nom_complet_from_matiere($mat) { Pour le moment, aucun élève n'est mis dans les groupes créés, mais il faudra permettre de mettre tous/aucun/1ère_moitié/...
  • - Si le prof proposé n'est pas prof dans la matière indiquée, faire l'association. + Pouvoir choisir le coef et la visibilité.
  • \n"; From feb5aa599a66b29544205f026d20a4c5bfaaeeb7 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:25:12 +0200 Subject: [PATCH 1064/1150] =?UTF-8?q?Ajout=20de=20lien=20et=20d=C3=A9place?= =?UTF-8?q?ment=20du=20title=20sur=20le=20TD.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- groupes/repartition_ele_grp.php | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/groupes/repartition_ele_grp.php b/groupes/repartition_ele_grp.php index 2d7c1e7a1..dc9ad5a05 100644 --- a/groupes/repartition_ele_grp.php +++ b/groupes/repartition_ele_grp.php @@ -709,7 +709,7 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) echo $group[$i]['name']; echo "
    \n"; echo "".$group[$i]['classlist_string']."\n"; - echo "
    ".$id_groupe[$i].""; + echo "
    ".$id_groupe[$i].""; echo "
    ".preg_replace("/,/","
    ",$group[$i]['profs']['proflist_string']); /* @@ -843,7 +843,8 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) echo "\n"; echo "\n"; echo "\n"; - echo get_nom_prenom_eleve($login_ele); + $nom_prenom_ele=get_nom_prenom_eleve($login_ele); + echo $nom_prenom_ele; echo "\n"; echo "\n"; @@ -870,8 +871,8 @@ function confirm_Passer_a_tel_tri(thechange, themessage, tri) echo "\n"; */ - $ligne_si_desinscription_possible.="\n"; - $ligne_si_desinscription_possible.="\n"; + $ligne_si_desinscription_possible.="0) {$info_plusieurs_grp_ele.=", ";} From 0e0c7fa219c7628b24ffa9f89009acbeaf6fa978 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:25:13 +0200 Subject: [PATCH 1065/1150] =?UTF-8?q?Cr=C3=A9ation=20de=20l'URI=20RSS=20da?= =?UTF-8?q?ns=20le=20cas=20o=C3=B9=20le=20module=20est=20actif=20et=20la?= =?UTF-8?q?=20r=C3=A9cup=20dans=20la=20page=20accueil.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/create_eleve.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/utilisateurs/create_eleve.php b/utilisateurs/create_eleve.php index cd8c3ea29..b4305a909 100644 --- a/utilisateurs/create_eleve.php +++ b/utilisateurs/create_eleve.php @@ -157,6 +157,20 @@ } } + // Génération de l'URI RSS si l'accès y est donné directement dans la page d'accueil pour le compte élève/resp connecté: + if((getSettingValue('rss_acces_ele')=='direct')&&((getSettingAOui('rss_cdt_ele'))||(getSettingAOui('rss_cdt_responsable')))) { + $sql="SELECT 1=1 FROM rss_users WHERE user_login='".$current_eleve->login."';"; + $test_rss = mysql_query($sql); + if(mysql_num_rows($test_rss)==0) { + $uri_el = md5($current_eleve->login.getSettingValue("gepiSchoolRne").mt_rand()); + $sql = "INSERT INTO rss_users (id, user_login, user_uri) VALUES ('', '".$current_eleve->login."', '".$uri_el."');"; + $insert_rss = mysql_query($sql); + if (!$insert_rss) { + $msg.="Erreur lors de l'initialisation de l'URI RSS pour ".$current_eleve->login."
    "; + } + } + } + $nb_comptes++; } } From abf8dcc4057cd88e77d4da222534651183a61643 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:25:14 +0200 Subject: [PATCH 1066/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20donner=20l'ac?= =?UTF-8?q?c=C3=A8s=20aux=20grilles=20PDF=20et=20listes=20CSV=20aux=20stat?= =?UTF-8?q?uts=20autres.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/creer_statut.php | 4 +++- utilisateurs/creer_statut_autorisation.php | 4 ++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/utilisateurs/creer_statut.php b/utilisateurs/creer_statut.php index dccff3ebc..c90b015f9 100644 --- a/utilisateurs/creer_statut.php +++ b/utilisateurs/creer_statut.php @@ -3,7 +3,7 @@ /** * * Modif table `droits` : ALTER TABLE `droits` ADD `autre` VARCHAR( 1 ) NOT NULL DEFAULT 'F' AFTER `secours` ; - * @copyright 2008 + * @copyright 2008-2013 */ $affiche_connexion = 'yes'; $niveau_arbo = 1; @@ -187,6 +187,8 @@ function verifChecked($id){ $test[$a][22] = isset($_POST["abs_totaux|".$b]) ? $_POST["abs_totaux|".$b] : NULL; $test[$a][23] = isset($_POST["bul_print|".$b]) ? $_POST["bul_print|".$b] : NULL; $test[$a][24] = isset($_POST["visu_equipes_peda|".$b]) ? $_POST["visu_equipes_peda|".$b] : NULL; + $test[$a][25] = isset($_POST["visu_listes_ele|".$b]) ? $_POST["visu_listes_ele|".$b] : NULL; + $test[$a][26] = isset($_POST["listes_ele_csv|".$b]) ? $_POST["listes_ele_csv|".$b] : NULL; // On assure les différents traitements if ($test[$a][0] == 'on') { diff --git a/utilisateurs/creer_statut_autorisation.php b/utilisateurs/creer_statut_autorisation.php index e6f968f6e..aa47cf8ec 100644 --- a/utilisateurs/creer_statut_autorisation.php +++ b/utilisateurs/creer_statut_autorisation.php @@ -72,6 +72,8 @@ $autorise[22]= array('/mod_abs2/totaux_du_jour.php' ); $autorise[23]= array('/bulletin/bull_index.php' ); $autorise[24]= array('/groupes/visu_profs_class.php', '/groupes/popup.php'); +$autorise[25]= array('/groupes/visu_mes_listes.php', '/groupes/popup.php', '/impression/liste_pdf.php', '/impression/impression.php', '/impression/impression_serie.php', '/impression/parametres_impression_pdf.php'); +$autorise[26]= array('/groupes/mes_listes.php', '/groupes/get_csv.php'); $iter = count($autorise); @@ -102,6 +104,8 @@ $menu_accueil[22] = array('Absence2', 'Absence2 : accéder à la page totaux du jour.', 'abs_totaux'); $menu_accueil[23] = array('Bulletin', 'Visualisation et impression des bulletins ','bul_print'); $menu_accueil[24] = array('Visualisation équipes', 'Visualisation des équipes pédagogiques', 'visu_equipes_peda'); +$menu_accueil[25] = array('Visualisation listes élèves et grilles PDF', 'Visualisation listes élèves et grilles PDF', 'visu_listes_ele'); +$menu_accueil[26] = array('Accès aux listes CSV élèves', 'Accès aux listes CSV élèves', 'listes_ele_csv'); ?> From cca1ff80399c3b76298e3ea0fe72feed762926d3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 16 Sep 2013 19:32:57 +0200 Subject: [PATCH 1067/1150] Ajout d'un lien vers l'edt du prof choisi. --- edt_organisation/saisie_edt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edt_organisation/saisie_edt.php b/edt_organisation/saisie_edt.php index 456f50d06..af294829a 100644 --- a/edt_organisation/saisie_edt.php +++ b/edt_organisation/saisie_edt.php @@ -377,7 +377,7 @@ function get_infos_cours($id_cours) { echo " "; } - echo ""; + echo " | Voir EDT"; } echo "

    From 56a09ea070afcb73a8b7cc84551d4d30c4e7cc85 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 17 Sep 2013 17:34:49 +0200 Subject: [PATCH 1068/1150] Correctif sur un pb de droits sur les statuts autres. --- lib/share.inc.php | 54 +++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index f47c86e90..6734e4119 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -870,35 +870,35 @@ function checkAccess() { } } - $url = parse_url($_SERVER['SCRIPT_NAME']); - if ($_SESSION["statut"] == 'autre') { - - $sql = "SELECT autorisation - from droits_speciaux - where nom_fichier = '" . mb_substr($url['path'], mb_strlen($gepiPath)) . "' - AND id_statut = '" . $_SESSION['statut_special_id'] . "'"; - - }else{ - - $sql = "select " . $_SESSION['statut'] . " - from droits - where id = '" . mb_substr($url['path'], mb_strlen($gepiPath)) . "' - ;"; + $url = parse_url($_SERVER['SCRIPT_NAME']); + if (mb_substr($url['path'], 0, mb_strlen($gepiPath)) != $gepiPath) { + tentative_intrusion(2, "Tentative d'accès avec modification sauvage de gepiPath"); + return (FALSE); + } + else { + if ($_SESSION["statut"] == 'autre') { + $sql = "SELECT autorisation + FROM droits_speciaux + WHERE nom_fichier = '" . mb_substr($url['path'], mb_strlen($gepiPath)) . "' + AND id_statut = '" . $_SESSION['statut_special_id'] . "' + AND autorisation='V'"; + } + else { + $sql = "SELECT " . $_SESSION['statut'] . " AS autorisation + FROM droits + WHERE id = '" . mb_substr($url['path'], mb_strlen($gepiPath)) . "' + AND ".$_SESSION['statut']."='V';"; + } + $dbCheckAccess = mysql_query($sql); + if (mysql_num_rows($dbCheckAccess)>0) { + return (TRUE); + } + else { + tentative_intrusion(1, "Tentative d'accès à un fichier sans avoir les droits nécessaires"); + return (FALSE); + } } - - $dbCheckAccess = sql_query1($sql); - if (mb_substr($url['path'], 0, mb_strlen($gepiPath)) != $gepiPath) { - tentative_intrusion(2, "Tentative d'accès avec modification sauvage de gepiPath"); - return (FALSE); - } else { - if ($dbCheckAccess == 'V') { - return (TRUE); - } else { - tentative_intrusion(1, "Tentative d'accès à un fichier sans avoir les droits nécessaires"); - return (FALSE); - } - } } /** From e2f46b4a26f3a67655b69c620d2a3602303932d6 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 17 Sep 2013 18:07:50 +0200 Subject: [PATCH 1069/1150] Suppression des scories dans sso_table_correspondance lors de la suppression d'utilisateur. --- lib/confirm_query.php | 5 +++++ utilisateurs/edit_eleve.php | 5 +++++ utilisateurs/edit_responsable.php | 8 ++++++++ 3 files changed, 18 insertions(+) diff --git a/lib/confirm_query.php b/lib/confirm_query.php index 8d7cc633e..a76f97693 100644 --- a/lib/confirm_query.php +++ b/lib/confirm_query.php @@ -175,6 +175,11 @@ function AfficheNiveauGraviteRequete($_texte,$_niveau){ $nombre_req = 4; + $mess[] = "Table de correspondance SSO :"; + $test_nb[] = "SELECT * FROM sso_table_correspondance WHERE login_gepi='$cible1'"; + $req[] = "DELETE FROM sso_table_correspondance WHERE login_gepi='$cible1';"; + $nombre_req++; + $mess[] = "Table de définition cpe/élève :"; $test_nb[] = "SELECT * FROM j_eleves_cpe WHERE cpe_login='$cible1'"; $req[] = "DELETE FROM j_eleves_cpe WHERE cpe_login='$cible1';"; diff --git a/utilisateurs/edit_eleve.php b/utilisateurs/edit_eleve.php index 623be44ae..00e460b70 100644 --- a/utilisateurs/edit_eleve.php +++ b/utilisateurs/edit_eleve.php @@ -158,6 +158,7 @@ if ($test == "0") { $msg .= "Erreur lors de la suppression de l'utilisateur : celui-ci n'existe pas."; } else { + // Suppression du compte proprement dite: $res = mysql_query("DELETE FROM utilisateurs WHERE (login = '".$_GET['eleve_login']."')"); if ($res) { $msg .= "L'utilisateur ".$_GET['eleve_login'] . " a été supprimé."; @@ -169,6 +170,8 @@ } } } + // Suppression de scorie éventuelle: + $res3 = mysql_query("DELETE FROM sso_table_correspondance WHERE login_gepi = '".$_GET['eleve_login']."'"); } else { $msg .= "Erreur lors de la suppression de l'utilisateur."; } @@ -192,6 +195,8 @@ $write_ldap_success = $ldap_server->delete_user($current_eleve->login); } } + // Suppression de scorie éventuelle: + $res3 = mysql_query("DELETE FROM sso_table_correspondance WHERE login_gepi = '".$current_eleve->login."'"); } } } diff --git a/utilisateurs/edit_responsable.php b/utilisateurs/edit_responsable.php index a63871c2e..daf2cbc4a 100644 --- a/utilisateurs/edit_responsable.php +++ b/utilisateurs/edit_responsable.php @@ -179,10 +179,14 @@ function aff_time() { if ($test == "0") { $msg .= "Erreur lors de la suppression de l'utilisateur : celui-ci n'existe pas."; } else { + // Suppression du compte proprement dite: $res = mysql_query("DELETE FROM utilisateurs WHERE (login = '".$_GET['parent_login']."')"); if ($res) { $msg .= "L'utilisateur ".$_GET['parent_login'] . " a été supprimé."; + // Réinitialisation du champ login dans la table 'resp_pers': $res2 = mysql_query("UPDATE resp_pers SET login='' WHERE login = '".$_GET['parent_login'] . "'"); + // Suppression de scorie éventuelle: + $res3 = mysql_query("DELETE FROM sso_table_correspondance WHERE login_gepi = '".$_GET['parent_login']."'"); } else { $msg .= "Erreur lors de la suppression de l'utilisateur."; } @@ -193,11 +197,15 @@ function aff_time() { $test = mysql_result(mysql_query("SELECT count(login) FROM utilisateurs WHERE login = '" . $current_parent->login ."'"), 0); if ($test > 0) { // L'utilisateur existe bien dans la tables utilisateurs, on désactive + // Suppression du compte proprement dite: $res = mysql_query("DELETE FROM utilisateurs WHERE login = '" . $current_parent->login . "'"); if (!$res) { $msg .= "Erreur lors de l'activation du compte ".$current_parent->login."
    "; } else { + // Réinitialisation du champ login dans la table 'resp_pers': $res = mysql_query("UPDATE resp_pers SET login = '' WHERE login = '" . $current_parent->login ."'"); + // Suppression de scorie éventuelle: + $res3 = mysql_query("DELETE FROM sso_table_correspondance WHERE login_gepi = '".$current_parent->login."'"); $nb_comptes++; } } From adc1639f3598eb2d3dfaf097f2dd2e3c0b7948da Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 17 Sep 2013 19:33:49 +0200 Subject: [PATCH 1070/1150] Suppression des scories dans sso_table_correspondance lors de la suppression d'utilisateur. --- mod_ent/index_itop.php | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index f5cc9f54b..400134c57 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -953,6 +953,30 @@ function echo_debug_itop($chaine) { $mode=""; } +if($mode=='suppr_scories') { + check_token(); + + $sql="SELECT login_gepi FROM sso_table_correspondance WHERE login_gepi NOT IN (SELECT login FROM utilisateurs);"; + $res=mysql_query($sql); + $nb_scories=mysql_num_rows($res); + if($nb_scories>0) { + $sql="DELETE FROM sso_table_correspondance WHERE login_gepi NOT IN (SELECT login FROM utilisateurs);"; + $res=mysql_query($sql); + if($res) { + $msg.="$nb_scories association(s) obsolète(s) supprimée(s).
    "; + } + else { + $msg.="Erreur lors de la suppression des $nb_scories association(s) obsolète(s).
    "; + } + } + else { + $msg.="Aucune association .
    "; + } + + //unset($mode); + $mode=""; +} + if($mode=='valider_forcer_logins_mdp_responsables') { check_token(); @@ -1314,6 +1338,16 @@ function recherche_utilisateur(statut) {

    Cette rubrique permet de fournir les fichiers CSV de rénitialisation de mots de passe générés par l'ENT, ou les CSV des nouveaux élèves.

    "; + $sql="SELECT login_gepi FROM sso_table_correspondance WHERE login_gepi NOT IN (SELECT login FROM utilisateurs);"; + $res=mysql_query($sql); + $nb_scories=mysql_num_rows($res); + if($nb_scories>0) { + echo " +
    +

    SCORIES : ".$nb_scories." association(s) existent dans la table 'sso_table_correspondance' pour des login qui n'existent plus dans Gepi.
    +Ces scories peuvent perturber l'association GUID_ENT/Login_GEPI.
    +Supprimer ces scories

    "; + } $sql="SELECT 1=1 FROM sso_table_correspondance;"; $res=mysql_query($sql); From ef3c1ca7af2e73bb2ceb027225cbe0a1deed9613 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 17 Sep 2013 19:40:17 +0200 Subject: [PATCH 1071/1150] =?UTF-8?q?Affichage=20de=20t=C3=A9moins=20sur?= =?UTF-8?q?=20les=20associations=20sso=5Ftable=5Fcorrespondance=20manquant?= =?UTF-8?q?es.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/index.php | 8 +++++- eleves/modify_eleve.php | 1 + eleves/visu_eleve.inc.php | 6 ++++- lib/share.inc.php | 25 ++++++++++++++++++ responsables/index.php | 50 ++++++++++++++++++++++++++++-------- responsables/modify_resp.php | 1 + 6 files changed, 79 insertions(+), 12 deletions(-) diff --git a/eleves/index.php b/eleves/index.php index 4bcdfa4cf..ddc6c539a 100644 --- a/eleves/index.php +++ b/eleves/index.php @@ -1654,7 +1654,13 @@ function change_style_classe(num) { if($_SESSION['statut']=='administrateur') {$avec_lien="y";} else {$avec_lien="n";} $lien_image_compte_utilisateur=lien_image_compte_utilisateur($eleve_login, "eleve", "", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo "
    ".$lien_image_compte_utilisateur."
    ";} + if($lien_image_compte_utilisateur!="") { + $correspondance_sso=temoin_compte_sso($eleve_login); + if($correspondance_sso!="") { + echo "
    ".$correspondance_sso."
    "; + } + echo "
    ".$lien_image_compte_utilisateur."
    "; + } if(($_SESSION['statut']=='administrateur')||($_SESSION['statut']=='scolarite')||($_SESSION['statut']=='autre')|| (($_SESSION['statut']=='cpe')&&(getSettingAOui('GepiAccesTouteFicheEleveCpe')))|| diff --git a/eleves/modify_eleve.php b/eleves/modify_eleve.php index da897fe56..db2dc6a78 100644 --- a/eleves/modify_eleve.php +++ b/eleves/modify_eleve.php @@ -1747,6 +1747,7 @@ function confirm_changement_eleve(thechange, themessage) echo $eleve_login; if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} } + echo temoin_compte_sso($eleve_login); echo "\n"; diff --git a/eleves/visu_eleve.inc.php b/eleves/visu_eleve.inc.php index 72d245391..8bb49dd17 100644 --- a/eleves/visu_eleve.inc.php +++ b/eleves/visu_eleve.inc.php @@ -1202,7 +1202,9 @@ function affiche_edt_en_infobulle() { echo "Authentification :".$tab_ele['compte_utilisateur']['auth_mode'].""; +- ldap : Authentification en recherchant la correspondance login/mot_de_passe dans un annuaire LDAP.\">".$tab_ele['compte_utilisateur']['auth_mode']; + echo temoin_compte_sso($tab_ele['login']); + echo ""; if(($_SESSION['statut']=='administrateur')|| (($_SESSION['statut']=='scolarite')&&(getSettingAOui('ScolResetPassEle')))|| @@ -1432,6 +1434,7 @@ function affiche_edt_en_infobulle() { - sso : Authentification CAS ou LCS assurée par une autre machine, - ldap : Authentification en recherchant la correspondance login/mot_de_passe dans un annuaire LDAP.\">"; echo "Auth.: ".$tab_ele['resp'][$i]['auth_mode']; + echo temoin_compte_sso($tab_ele['resp'][$i]['login']); echo ""; } @@ -1601,6 +1604,7 @@ function affiche_edt_en_infobulle() { - sso : Authentification CAS ou LCS assurée par une autre machine, - ldap : Authentification en recherchant la correspondance login/mot_de_passe dans un annuaire LDAP.\">"; echo "Auth.: ".$tab_ele['resp'][$i]['auth_mode']; + echo temoin_compte_sso($tab_ele['resp'][$i]['login']); echo ""; } diff --git a/lib/share.inc.php b/lib/share.inc.php index 373c62598..affa6a368 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -899,6 +899,7 @@ function checkAccess() { return (FALSE); } } + } /** @@ -8255,4 +8256,28 @@ function enregistrer_udt_corresp($champ, $nom_udt, $nom_gepi) { } } +/** + * Affichage si le compte est auth_mode=sso et si on utilise la table de correspondance, + * si l'association est faite. + * + * @global string + * @param string $login id de l'utilisateur cherché + * @return string Le code html + */ +function temoin_compte_sso($login_user) { + global $gepiPath; + + $retour=""; + + if(getSettingAOui('sso_cas_table')) { + $sql="SELECT auth_mode FROM utilisateurs WHERE login='$login_user' AND auth_mode='sso';"; + $test=mysql_query($sql); + if(mysql_num_rows($test)>0) { + $retour.="\"Correspondance"; + } + } + + return $retour; +} + ?> diff --git a/responsables/index.php b/responsables/index.php index 49a6a58ec..968a1a992 100644 --- a/responsables/index.php +++ b/responsables/index.php @@ -1004,7 +1004,10 @@ function modifcase(mode){ if($lig1->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig1->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig1->login); + } } echo "\n"; @@ -1216,7 +1219,10 @@ function modifcase(mode){ if($lig2->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig2->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig2->login); + } } echo "\n"; @@ -1255,7 +1261,10 @@ function modifcase(mode){ echo "$lig3->nom $lig3->prenom"; $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig3->login, "eleve", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig3->login); + } echo "
    ".liens_class_from_ele_login($lig3->login); echo "\n"; @@ -1284,7 +1293,10 @@ function modifcase(mode){ if($lig4->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig4->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig4->login); + } } echo "\n"; @@ -1412,7 +1424,10 @@ function modifcase(mode){ if($lig4->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig4->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig4->login); + } } echo "\n"; @@ -1448,7 +1463,10 @@ function modifcase(mode){ echo "$lig3->nom $lig3->prenom"; $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig3->login, "eleve", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig3->login); + } echo "\n"; @@ -1467,7 +1485,10 @@ function modifcase(mode){ if($lig2->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig2->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig2->login); + } } echo "\n"; @@ -1620,7 +1641,10 @@ function modifcase(mode){ if($lig2->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig2->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig2->login); + } } echo "\n"; @@ -1649,7 +1673,10 @@ function modifcase(mode){ echo "$lig1->nom $lig1->prenom"; $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig1->login, "eleve", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig1->login); + } echo "\n"; @@ -1670,7 +1697,10 @@ function modifcase(mode){ if($lig3->login!="") { $lien_image_compte_utilisateur=lien_image_compte_utilisateur($lig3->login, "responsable", "_blank", $avec_lien); - if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} + if($lien_image_compte_utilisateur!="") { + echo " ".$lien_image_compte_utilisateur; + echo temoin_compte_sso($lig3->login); + } } echo "\n"; diff --git a/responsables/modify_resp.php b/responsables/modify_resp.php index 9a8c411f2..a2092387e 100644 --- a/responsables/modify_resp.php +++ b/responsables/modify_resp.php @@ -823,6 +823,7 @@ function refresh_opener() { if($lien_image_compte_utilisateur!="") {echo " ".$lien_image_compte_utilisateur;} echo "
    )"; } + echo temoin_compte_sso($resp_login); } else { $compte_resp_existe="n"; From 2f0094c97c2d284c06719d78629cd63c8be5d589 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 17 Sep 2013 21:03:00 +0200 Subject: [PATCH 1072/1150] =?UTF-8?q?Affichage=20de=20pr=C3=A9cisions=20su?= =?UTF-8?q?r=20des=20associations=20manquantes,...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_ent/index_itop.php | 142 +++++++++++++++++++++++++++++++++++++++-- 1 file changed, 137 insertions(+), 5 deletions(-) diff --git a/mod_ent/index_itop.php b/mod_ent/index_itop.php index 400134c57..076d3a941 100644 --- a/mod_ent/index_itop.php +++ b/mod_ent/index_itop.php @@ -1292,7 +1292,7 @@ function recherche_utilisateur(statut) { "; //====================================================================== - + // Fiches bienvenue Elèves //Nom;Prénom;Login;Numéro de jointure;Mot de passe;Email;Classe;Etat;Date de désactivation //DUPRE;Thomas;thomas.dupre;MENESR$12345;mdp&*;Thomas.DUPRE@ent27.fr;6 A;Actif echo "

    ou générer des Fiches Bienvenue :

    @@ -1300,7 +1300,8 @@ function recherche_utilisateur(statut) { $sql="SELECT 1=1 FROM eleves e, sso_table_correspondance s WHERE s.login_gepi=e.login;"; $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { + $nb_corresp_ele=mysql_num_rows($res); + if($nb_corresp_ele==0) { echo "
  • Aucune association élève n'est encore enregistrée.
  • "; } @@ -1309,10 +1310,13 @@ function recherche_utilisateur(statut) {
  • Générer les Fiches Bienvenue élèves (".mysql_num_rows($res)." association(s) enregistrée(s))
  • "; } + //=================================================== + // Fiches bienvenue Responsables //$sql="SELECT rp.*, s.* FROM resp_pers rp, sso_table_correspondance s WHERE s.login_gepi=rp.login ORDER BY rp.nom, rp.prenom LIMIT 1;"; $sql="SELECT 1=1 FROM resp_pers rp, sso_table_correspondance s WHERE s.login_gepi=rp.login;"; $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { + $nb_corresp_resp=mysql_num_rows($res); + if($nb_corresp_resp==0) { echo "
  • Aucune association responsable n'est encore enregistrée.
  • "; } @@ -1321,10 +1325,13 @@ function recherche_utilisateur(statut) {
  • Générer les Fiches Bienvenue responsables (".mysql_num_rows($res)." association(s) enregistrée(s))
  • "; } + //=================================================== + // Fiches bienvenue Personnels //$sql="SELECT u.*, s.* FROM utilisateurs u, sso_table_correspondance s WHERE s.login_gepi=u.login AND u.statut!='eleve' AND u.statut!='responsable' LIMIT 1;"; $sql="SELECT 1=1 FROM utilisateurs u, sso_table_correspondance s WHERE s.login_gepi=u.login AND u.statut!='eleve' AND u.statut!='responsable';"; $res=mysql_query($sql); - if(mysql_num_rows($res)==0) { + $nb_corresp_pers=mysql_num_rows($res); + if($nb_corresp_pers==0) { echo "
  • Aucune association n'est encore enregistrée pour les personnels de l'établissement.
  • "; } @@ -1337,7 +1344,8 @@ function recherche_utilisateur(statut) {

    Cette rubrique permet de fournir les fichiers CSV de rénitialisation de mots de passe générés par l'ENT, ou les CSV des nouveaux élèves.

    "; - + //=================================================== + // Scories: $sql="SELECT login_gepi FROM sso_table_correspondance WHERE login_gepi NOT IN (SELECT login FROM utilisateurs);"; $res=mysql_query($sql); $nb_scories=mysql_num_rows($res); @@ -1349,6 +1357,8 @@ function recherche_utilisateur(statut) { Supprimer ces scories

    "; } + //=================================================== + // Vider: $sql="SELECT 1=1 FROM sso_table_correspondance;"; $res=mysql_query($sql); if(mysql_num_rows($res)>0) { @@ -1358,6 +1368,65 @@ function recherche_utilisateur(statut) { echo "

    La table de correspondances contient actuellement ".mysql_num_rows($res)." enregistrements.

    \n"; } + //=================================================== + // Associations manquantes + if(($nb_corresp_resp>0)||($nb_corresp_ele>0)||($nb_corresp_pers>0)) { + echo "
    +

    Associations manquantes :

    "; + + $sql="select distinct e.login, e.nom, e.prenom from eleves e, utilisateurs u where e.login=u.login AND u.auth_mode='sso' and e.login not in (select login_gepi from sso_table_correspondance);"; + $res=mysql_query($sql); + $nb_assoc_manquantes_ele=mysql_num_rows($res); + if($nb_assoc_manquantes_ele>0) { + echo " +
    +

    Il manque $nb_assoc_manquantes_ele association(s) élève(s) :"; + $cpt=0; + while($lig=mysql_fetch_object($res)) { + if($cpt>0) {echo ", ";} + echo "".casse_mot($lig->nom, 'maj')." ".casse_mot($lig->prenom, 'majf2').""; + $cpt++; + } + echo "

    "; + } + + $sql="select distinct rp.login, rp.nom, rp.prenom, rp.civilite, rp.pers_id FROM resp_pers rp, utilisateurs u where u.auth_mode='sso' AND u.login=rp.login AND rp.login!='' and rp.login not in (select login_gepi from sso_table_correspondance);"; + $res=mysql_query($sql); + $nb_assoc_manquantes_resp=mysql_num_rows($res); + if($nb_assoc_manquantes_resp>0) { + echo " +
    +

    Il manque $nb_assoc_manquantes_resp association(s) responsable(s) :"; + $cpt=0; + while($lig=mysql_fetch_object($res)) { + if($cpt>0) {echo ", ";} + echo "".$lig->civilite." ".casse_mot($lig->nom, 'maj')." ".casse_mot($lig->prenom, 'majf2').""; + $cpt++; + } + echo "

    "; + } + + $sql="select distinct u.login, u.nom, u.prenom, u.civilite from utilisateurs u where u.auth_mode='sso' AND u.statut!='eleve' and u.statut!='responsable' and u.login not in (select login_gepi from sso_table_correspondance);"; + $res=mysql_query($sql); + $nb_assoc_manquantes_resp=mysql_num_rows($res); + if($nb_assoc_manquantes_resp>0) { + echo " +
    +

    Il manque $nb_assoc_manquantes_resp association(s) personnel(s) :"; + $cpt=0; + while($lig=mysql_fetch_object($res)) { + if($cpt>0) {echo ", ";} + echo "".$lig->civilite." ".casse_mot($lig->nom, 'maj')." ".casse_mot($lig->prenom, 'majf2').""; + $cpt++; + } + echo "

    "; + } + + echo "

    Ces utilisateurs disposent d'un compte dans Gepi, mais n'ont pas d'association SSO.
    + Vous devriez refaire un import des fichiers ExportSSO_...

    "; + } + + //=================================================== echo "

    A FAIRE : Détecter et permettre de supprimer des associations pour des élèves,... qui ne sont plus dans le CSV.

    @@ -1370,6 +1439,36 @@ function recherche_utilisateur(statut) { "; } + $sql="SELECT 1=1 FROM utilisateurs WHERE statut!='eleve' AND statut!='responsable' AND auth_mode='sso';"; + $res=mysql_query($sql); + $nb_pers_sso=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs WHERE statut!='eleve' AND statut!='responsable' AND auth_mode='ldap';"; + $res=mysql_query($sql); + $nb_pers_ldap=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs WHERE statut!='eleve' AND statut!='responsable' AND auth_mode='gepi';"; + $res=mysql_query($sql); + $nb_pers_gepi=mysql_num_rows($res); + + $sql="SELECT 1=1 FROM utilisateurs u, eleves e WHERE u.statut='eleve' AND e.login=u.login AND auth_mode='sso';"; + $res=mysql_query($sql); + $nb_ele_sso=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs u, eleves e WHERE u.statut='eleve' AND e.login=u.login AND auth_mode='ldap';"; + $res=mysql_query($sql); + $nb_ele_ldap=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs u, eleves e WHERE u.statut='eleve' AND e.login=u.login AND auth_mode='gepi';"; + $res=mysql_query($sql); + $nb_ele_gepi=mysql_num_rows($res); + + $sql="SELECT 1=1 FROM utilisateurs u, resp_pers rp WHERE u.statut='responsable' AND rp.login=u.login AND auth_mode='sso';"; + $res=mysql_query($sql); + $nb_resp_sso=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs u, resp_pers rp WHERE u.statut='responsable' AND rp.login=u.login AND auth_mode='ldap';"; + $res=mysql_query($sql); + $nb_resp_ldap=mysql_num_rows($res); + $sql="SELECT 1=1 FROM utilisateurs u, resp_pers rp WHERE u.statut='responsable' AND rp.login=u.login AND auth_mode='gepi';"; + $res=mysql_query($sql); + $nb_resp_gepi=mysql_num_rows($res); + echo "

    NOTES :

    • @@ -1381,6 +1480,39 @@ function recherche_utilisateur(statut) {
    • Les CSV pour les Fiches bienvenue peuvent aussi être ceux des nouveaux élèves ou parents
      ([V2]CLG-".getSettingValue('gepiSchoolName')."-ac-ROUEN - [".getSettingValue('gepiSchoolRne')."] - [ANNEEMOISJOURHEURE].xlsx
      ou ".getSettingValue('gepiSchoolRne')."_CSV_ANNEEMOISJOURHEURE.zip
      ).

    • +
    • +

      Votre base compte des utilisateurs des statuts suivants avec les modes d'authentification suivants :

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      StatutMode d'authentification
      GepiSSOLDAP
      Personnels$nb_pers_gepi$nb_pers_sso$nb_pers_ldap
      Responsables$nb_resp_gepi$nb_resp_sso$nb_resp_ldap
      Élèves$nb_ele_gepi$nb_ele_sso$nb_ele_ldap
      +

      Certains comptes peuvent être inactifs (à détailler dans le futur).

      +
    From 5b65b8e8e9b87020a51ee92e144bf2f73b0905df Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 18 Sep 2013 16:06:22 +0200 Subject: [PATCH 1073/1150] =?UTF-8?q?Ajout=20de=20pr=C3=A9cisions=20sur=20?= =?UTF-8?q?l'emplacement=20du=20mod=C3=A8le=20de=20SMS=20et=20ajout=20d'an?= =?UTF-8?q?cres.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/admin/index.php | 6 +++++- mod_ooo/gerer_modeles_ooo.php | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/mod_abs2/admin/index.php b/mod_abs2/admin/index.php index 66caa63c6..2e84a8538 100644 --- a/mod_abs2/admin/index.php +++ b/mod_abs2/admin/index.php @@ -418,6 +418,10 @@ Mot de passe "/>

    +

    + NOTE : Le fichier modèle de SMS, comme les fichiers modèles OpenOffice.org générés par ce module peuvent être modifiés/remplacés dans la rubrique Gérer ses propres modèles de documents du module. +

    +

    Configuration des saisies

    Définir les motifs des absences
    Définir les lieux des absences
    Définir les justifications
    - Gérer ses propres modèles de documents du module
    + Gérer ses propres modèles de documents du module
    Gérér la table d'agrégation des demi-journées d'absences diff --git a/mod_ooo/gerer_modeles_ooo.php b/mod_ooo/gerer_modeles_ooo.php index 49f810194..07fc74918 100644 --- a/mod_ooo/gerer_modeles_ooo.php +++ b/mod_ooo/gerer_modeles_ooo.php @@ -267,6 +267,7 @@ if ($entete_section[$i] != "") { // Cas d'un entête echo ""; echo "

    $entete_section[$i]"; + echo ""; if($lien_wiki[$i] != "") {echo " ";} echo "



    "; echo ""; From cc734a6632d828452e7c4db0b211452327a6a447 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 18 Sep 2013 16:34:12 +0200 Subject: [PATCH 1074/1150] Ajout de tabindex. --- templates/origine/login_template.html | 6 +- utilisateurs/change_pwd.php | 8 +- utilisateurs/mon_compte.php | 245 +++++++++++++++++++------- 3 files changed, 187 insertions(+), 72 deletions(-) diff --git a/templates/origine/login_template.html b/templates/origine/login_template.html index 368dd1533..43abf4768 100644 --- a/templates/origine/login_template.html +++ b/templates/origine/login_template.html @@ -99,18 +99,18 @@

    [onshow.tbs_gepiSchoolName]

    - +

    [onshow.tbs_input_password_to_text;magnet=p;htmlconv=no] - +

    - +

    diff --git a/utilisateurs/change_pwd.php b/utilisateurs/change_pwd.php index 50c95b6b2..95ec53aa7 100644 --- a/utilisateurs/change_pwd.php +++ b/utilisateurs/change_pwd.php @@ -196,14 +196,14 @@ Nouveau mot de passe (".getSettingValue("longmin_pwd")." caractères minimum) : - + ".input_password_to_text('no_anti_inject_password')." Nouveau mot de passe (à confirmer) : - + ".input_password_to_text('reg_password2')." @@ -211,7 +211,7 @@ \n"; - echo "
    "; + echo "
    "; $user_statut = sql_query1("select statut from utilisateurs where login='".$user_login."';"); if($user_statut=='eleve') { @@ -221,7 +221,7 @@ $lig_ine=mysql_fetch_object($res_ine); if($lig_ine->no_gep!='') { echo "no_gep\" />\n"; - echo "

    \n"; + echo "

    \n"; } } } diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index bd4d29b2d..e4e2023c0 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -1338,6 +1338,8 @@ function unhtmlentities($chaineHtml) echo "

    \n"; echo "\n"; +$tabindex=1; + echo "
    \n"; @@ -1376,7 +1378,7 @@ function unhtmlentities($chaineHtml) ($_SESSION['statut']=='scolarite')|| ($_SESSION['statut']=='cpe')) { ?> - > @@ -1441,6 +1443,7 @@ function unhtmlentities($chaineHtml) name=reg_email size=30 + /> \n"; } echo "Statut : ".statut_accentue($user_statut)."\n"; @@ -1578,8 +1583,10 @@ function unhtmlentities($chaineHtml) //echo "\n"; echo "
    \n"; echo "\n"; -include("../lib/calendrier/calendrier.class.php"); +//include("../lib/calendrier/calendrier.class.php"); if(($_SESSION['statut']=='administrateur')||($_SESSION['statut']=='scolarite')||($acces_mod_exb_prof=="y")) { if(!isset($id_exam)) { @@ -1111,7 +1117,7 @@ echo "\n"; echo "\n"; - $cal = new Calendrier("form1", "date"); + //$cal = new Calendrier("form1", "date"); $annee=strftime("%Y"); $mois=strftime("%m"); @@ -1122,8 +1128,11 @@ echo "Date de l'examen :\n"; echo "\n"; //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; + //echo "\n"; + //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; + + echo "\n"; + echo img_calendrier_js("date_examen", "img_bouton_date_examen"); echo "\n"; echo "\n"; @@ -1275,7 +1284,7 @@ //} echo "\n"; - $cal = new Calendrier("form1", "date"); + //$cal = new Calendrier("form1", "date"); /* $annee = strftime("%Y"); @@ -1295,8 +1304,12 @@ //if($etat!='clos') { //echo "\n"; - echo "\n"; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; + //echo "\n"; + //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Petit\n"; + + echo "\n"; + echo img_calendrier_js("date_examen", "img_bouton_date_examen"); + //} //else { // echo $date_defaut; diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index f9f43f1c1..592f3b9ea 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -323,6 +323,11 @@ } } +$style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; +$javascript_specifique[] = "lib/DHTMLcalendar/calendar"; +$javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; +$javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; + // ===================== entete Gepi ======================================// $titre_page = "Statistiques de connexion"; require_once("../lib/header.inc.php"); @@ -811,11 +816,9 @@ function afficher_div_stat(id) { //======================= //Configuration du calendrier - include("../lib/calendrier/calendrier.class.php"); - //$cal1 = new Calendrier("form_choix_edit", "display_date_debut"); - //$cal2 = new Calendrier("form_choix_edit", "display_date_fin"); - $cal1 = new Calendrier("formulaire", "display_date_debut"); - $cal2 = new Calendrier("formulaire", "display_date_fin"); + //include("../lib/calendrier/calendrier.class.php"); + //$cal1 = new Calendrier("formulaire", "display_date_debut"); + //$cal2 = new Calendrier("formulaire", "display_date_fin"); $annee = strftime("%Y"); $mois = strftime("%m"); @@ -907,11 +910,15 @@ function afficher_div_stat(id) { echo ""; - echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Calendrier\"\n"; - + //echo "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"Calendrier\"\n"; + echo img_calendrier_js("display_date_debut", "img_bouton_display_date_debut"); + echo " à la date : "; echo ""; - echo "
    \n"; @@ -659,10 +676,18 @@ function confirm_changement_grp3(thechange, themessage) if ($multiclasses) { echo "Classe\n"; } + +$acces_mes_listes="y"; +if(!acces('/groupes/mes_listes.php', $_SESSION['statut'])) { + $acces_mes_listes="n"; +} + foreach ($current_group["periodes"] as $period) { if($period["num_periode"]!=""){ echo "" . $period["nom_periode"]; - echo " "; + if($acces_mes_listes=="y") { + echo " "; + } echo "\n"; } } @@ -796,6 +821,16 @@ function confirm_changement_grp3(thechange, themessage) $chaine_sql_classe.=")"; //===================================== +$acces_eleve_options="y"; +if(!acces('/classes/eleve_options.php', $_SESSION['statut'])) { + $acces_eleve_options="n"; +} + +$acces_prepa_conseil_edit_limite="y"; +if(!acces('/prepa_conseil/edit_limite.php', $_SESSION['statut'])) { + $acces_prepa_conseil_edit_limite="n"; +} + if(count($total_eleves)>0) { $alt=1; foreach($total_eleves as $e_login) { @@ -856,13 +891,20 @@ function confirm_changement_grp3(thechange, themessage) ""; */ echo ""; - echo ""; - echo $eleves_list["users"][$e_login]["nom"]; - echo " "; - echo $eleves_list["users"][$e_login]["prenom"]; - echo "\n"; + if($acces_eleve_options=="y") { + echo ""; + echo $eleves_list["users"][$e_login]["nom"]; + echo " "; + echo $eleves_list["users"][$e_login]["prenom"]; + echo "\n"; + } + else { + echo $eleves_list["users"][$e_login]["nom"]; + echo " "; + echo $eleves_list["users"][$e_login]["prenom"]; + } //echo "
    ".print_r($eleves_list["users"][$e_login])."
    "; echo "\n"; @@ -915,9 +957,14 @@ function confirm_changement_grp3(thechange, themessage) // Test sur la présence de notes dans cn ou de notes/app sur bulletin if (!test_before_eleve_removal($e_login, $current_group['id'], $period["num_periode"])) { - echo ""; - echo "Bulletin non vide"; - echo ""; + if($acces_prepa_conseil_edit_limite=="y") { + echo ""; + echo "Bulletin non vide"; + echo ""; + } + else { + echo "Bulletin non vide"; + } } $sql="SELECT DISTINCT id_devoir FROM cn_notes_devoirs cnd, cn_devoirs cd, cn_cahier_notes ccn WHERE (cnd.login = '".$e_login."' AND cnd.statut='' AND cnd.id_devoir=cd.id AND cd.id_racine=ccn.id_cahier_notes AND ccn.id_groupe = '".$current_group['id']."' AND ccn.periode = '".$period["num_periode"]."')"; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index ffbb0c66d..c41a87397 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -137,7 +137,7 @@ INSERT INTO droits VALUES ('/gestion/gestion_base_test.php', 'V', 'F', 'F', 'F', INSERT INTO droits VALUES ('/groupes/index.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des groupes', ''); INSERT INTO droits VALUES ('/groupes/add_group.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Ajout de groupes', ''); INSERT INTO droits VALUES ('/groupes/edit_group.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition de groupes', ''); -INSERT INTO droits VALUES ('/groupes/edit_eleves.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des élèves des groupes', ''); +INSERT INTO droits VALUES ('/groupes/edit_eleves.php', 'V', 'F', 'V', 'V', 'F', 'F', 'F', 'F', 'Edition des élèves des groupes', ''); INSERT INTO droits VALUES ('/groupes/edit_class.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des groupes de la classe', ''); INSERT INTO droits VALUES ('/gestion/accueil_sauve.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Restauration, suppression et sauvegarde de la base', ''); INSERT INTO droits VALUES ('/gestion/savebackup.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Téléchargement de sauvegardes la base', ''); diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index 26f635b60..dffd0b00d 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -193,7 +193,7 @@ function traite_requete($requete = "") { $tab_req[] = "INSERT INTO droits VALUES ('/groupes/index.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des groupes', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/groupes/add_group.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Ajout de groupes', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/groupes/edit_group.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition de groupes', '');"; -$tab_req[] = "INSERT INTO droits VALUES ('/groupes/edit_eleves.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des élèves des groupes', '');"; +$tab_req[] = "INSERT INTO droits VALUES ('/groupes/edit_eleves.php', 'V', 'F', 'V', 'V', 'F', 'F', 'F', 'F', 'Edition des élèves des groupes', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/groupes/edit_class.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Edition des groupes de la classe', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/groupes/edit_class_grp_lot.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Affectation des matières aux professeurs', '');"; $tab_req[] = "INSERT INTO droits VALUES ('/init_csv/index.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Initialisation CSV de l\'année scolaire', '');"; From ef0183df8816ef7864702ba07c1388826871b796 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 1 Oct 2013 17:05:56 +0200 Subject: [PATCH 1112/1150] Ajout de l'icone signalement erreur. --- cahier_notes/index.php | 2 +- cahier_notes/saisie_notes.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cahier_notes/index.php b/cahier_notes/index.php index ce47061ba..97ddcbdb0 100644 --- a/cahier_notes/index.php +++ b/cahier_notes/index.php @@ -685,7 +685,7 @@ function confirm_changement_periode(thechange, themessage) // Le retour n'est pas parfait... il faudrait aussi periode_num dans chemin_retour // ou alors stocker ici l'info en session pour la période... - echo " Signaler des erreurs d'affectation"; + echo " Signaler des erreurs d'affectation Erreur"; echo " | "; echo " ".ucfirst($nom_cc).""; diff --git a/cahier_notes/saisie_notes.php b/cahier_notes/saisie_notes.php index 781030380..991eb003a 100644 --- a/cahier_notes/saisie_notes.php +++ b/cahier_notes/saisie_notes.php @@ -794,7 +794,7 @@ function confirm_changement_periode(thechange, themessage) if((isset($id_devoir))&&($id_devoir!=0)) {echo "title=\"Impression des notes de l'évaluation au format PDF\"";} else {echo "title=\"Impression du Carnet de Notes au format PDF\"";} echo "> Imprimer au format PDF |"; -echo " Signaler des erreurs d'affectation"; +echo " Signaler des erreurs d'affectation Erreur"; echo "| ".ucfirst($nom_cc).""; From 74729e10db2d56fd4ea8679ffca24552201d70d4 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 1 Oct 2013 17:06:29 +0200 Subject: [PATCH 1113/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20donner=20le?= =?UTF-8?q?=20droit=20aux=20comptes=20scolarit=C3=A9/cpe=20de=20modifier?= =?UTF-8?q?=20la=20composition=20des=20groupes.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- accueil.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/accueil.php b/accueil.php index 7846a4a0a..26b1d073d 100644 --- a/accueil.php +++ b/accueil.php @@ -380,6 +380,25 @@ } } +// Cas particulier CPE et SCOL: +if((($_SESSION['statut']=='cpe')&&(getSettingAOui('CpeEditElevesGroupes'))&&(acces('/groupes/edit_eleves.php', 'cpe')))|| +(($_SESSION['statut']=='scolarite')&&(getSettingAOui('ScolEditElevesGroupes'))&&(acces('/groupes/edit_eleves.php', 'scolarite')))) { + + $sql="SELECT DISTINCT id_groupe, declarant FROM j_signalement WHERE nature='erreur_affect';"; + $res_sign=mysql_query($sql); + if(mysql_num_rows($res_sign)>0) { + $tbs_signalement="

    Une ou des erreurs d'affectation d'élèves ont été signalées dans le ou les enseignements suivants :
    \n"; + while($lig_sign=mysql_fetch_object($res_sign)) { + $tmp_tab_champ=array('classes'); + $current_group_sign=get_group($lig_sign->id_groupe,$tmp_tab_champ); + $current_group_sign['description']=str_replace ( "&" , "&" , $current_group_sign['description'] ); + $tbs_signalement.="".$current_group_sign['name']." (".$current_group_sign['description']." ".$current_group_sign['classlist_string'].") signalé par ".affiche_utilisateur($lig_sign->declarant,$current_group_sign['classes']['list'][0])."
    \n"; + } + $tbs_signalement.="

    \n"; + $afficheAccueil->signalement=$tbs_signalement; + } +} + // ----- interface graphique prof ----- if($_SESSION['statut']=="professeur"){ $tbs_interface_graphique[]=array("classe"=>"bold","lien"=>"accueil_simpl_prof.php","titre"=>"Interface graphique"); From 95d1626f00cb573c5ca12652cdf859a5751ba3d7 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Tue, 1 Oct 2013 18:58:15 +0200 Subject: [PATCH 1114/1150] Ajout de images/.test au .gitignore --- .gitignore | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 51e8eb3f2..b8254e802 100644 --- a/.gitignore +++ b/.gitignore @@ -34,11 +34,11 @@ nbproject # Ignore others files style_screen_ajout.css photos/eleves/* -images/logo.jpg images/background/degrade1.png images/background/degrade1_small.png images/background/degrade1_very_small.png images/logo.jpg +images/.test artichow/cache/* From 757b97d12afc8216b3ec501a6db6178bee2967e0 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 1 Oct 2013 21:50:57 +0200 Subject: [PATCH 1115/1150] Ajout d'un test. --- mod_alerte/admin.php | 1 + 1 file changed, 1 insertion(+) diff --git a/mod_alerte/admin.php b/mod_alerte/admin.php index 0bb716f95..725dd4bf5 100644 --- a/mod_alerte/admin.php +++ b/mod_alerte/admin.php @@ -141,6 +141,7 @@ $date_limite=isset($_POST['date_limite']) ? $_POST['date_limite'] : strftime("%d/%m/%Y"); if (isset($_POST['is_posted2'])) { + check_token(); if(isset($date_limite)) { $tmp_tab=explode("/",$date_limite); $jour=$tmp_tab[0]; From 0c52a6c46de0401da35f2be529f8709b2fb8a4fb Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 1 Oct 2013 22:41:15 +0200 Subject: [PATCH 1116/1150] =?UTF-8?q?Correctif=20sur=20un=20pb=20de=20droi?= =?UTF-8?q?ts=20d'acc=C3=A8s=20prof.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_discipline/saisie_sanction.php | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/mod_discipline/saisie_sanction.php b/mod_discipline/saisie_sanction.php index 001715c4b..87a4271ea 100644 --- a/mod_discipline/saisie_sanction.php +++ b/mod_discipline/saisie_sanction.php @@ -958,20 +958,33 @@ // La fonction est ramenée de saisie_sanction.inc.php dans saisie_sanction.php // parce que les javascript définis dans la page saisie_sanction.inc.php appelée via ajax ne sont pas pris en compte. function occupation_lieu_heure(id_sanction) { +"; +if(acces("/mod_discipline/occupation_lieu_heure.php", $_SESSION['statut'])) { + echo " lieu=document.getElementById('lieu_retenue').value; date_retenue=document.getElementById('date_retenue').value; heure_debut=document.getElementById('heure_debut').options[document.getElementById('heure_debut').selectedIndex].value; duree_retenue=document.getElementById('duree_retenue').value; centrerpopup('occupation_lieu_heure.php?id_sanction='+id_sanction+'&lieu='+lieu+'&date='+date_retenue+'&heure='+heure_debut+'&duree='+duree_retenue,600,480,'scrollbars=yes,statusbar=no,resizable=yes'); - } +"; +} +echo " + }"; +echo " function maj_div_liste_retenues_jour() { +"; +if(acces("/mod_discipline/liste_retenues_jour.php", $_SESSION['statut'])) { +echo " if($('date_retenue')) { date=$('date_retenue').value; //alert('date='+date); new Ajax.Updater($('div_liste_retenues_jour'),'liste_retenues_jour.php?date='+date,{method: 'get'}); } +"; +} +echo " } \n"; @@ -1472,6 +1485,7 @@ function edt_eleve() { */ echo "\n"; + echo ""; echo "

    \n"; echo "
    \n"; From d1dc5a05c8181e4eee6eb440251609e50cdb233f Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 1 Oct 2013 22:41:16 +0200 Subject: [PATCH 1117/1150] =?UTF-8?q?Possibilit=C3=A9=20d'exclure=20du=20m?= =?UTF-8?q?od=5Falerte=20certains=20utilisateurs.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/share.inc.php | 16 ++++ mod_alerte/admin.php | 42 +++++++++ templates/origine/accueil_template.php | 13 ++- templates/origine/bandeau_template.php | 88 ++++++++++--------- .../origine/mod_alerte/admin_template.php | 35 ++++++++ utilitaires/updates/163_to_dev.inc.php | 20 +++++ 6 files changed, 170 insertions(+), 44 deletions(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index db9f5d3a2..69e8b28ac 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -8284,4 +8284,20 @@ function temoin_compte_sso($login_user) { return $retour; } +function check_mae($login_user) { + $test = sql_query1("SHOW TABLES LIKE 'mod_alerte_divers'"); + if ($test == -1) { + return true; + } + else { + $sql="SELECT 1=1 FROM mod_alerte_divers WHERE name='login_exclus' AND value='".$login_user."';"; + $test_mae=mysql_query($sql); + if(mysql_num_rows($test_mae)==0) { + return true; + } + else { + return false; + } + } +} ?> diff --git a/mod_alerte/admin.php b/mod_alerte/admin.php index 8f6360cb4..9b5a5e685 100644 --- a/mod_alerte/admin.php +++ b/mod_alerte/admin.php @@ -171,6 +171,48 @@ } } +if (isset($_POST['is_posted3'])) { + check_token(); + + $login_user=isset($_POST['login_user']) ? $_POST['login_user'] : array(); + + $tab_user_mae=array(); + + $sql="SELECT value FROM mod_alerte_divers WHERE name='login_exclus';"; + $res_mae=mysql_query($sql); + if(mysql_num_rows($res_mae)>0) { + while($lig_mae=mysql_fetch_object($res_mae)) { + $tab_user_mae[]=$lig_mae->value; + } + } + + $cpt_comptes_exclus_ajoutes=0; + for($loop=0;$loopFin session nom_connecte as $newentree) { + + + } + */ + foreach ($afficheAccueil->nom_connecte as $newentree) { ?> '> courriel
    "; + if(check_mae($_SESSION['login'])) { + echo "
    courriel
    "; + } } if(($newentree['courriel']!="")&&(check_mail($newentree['courriel']))) { diff --git a/templates/origine/bandeau_template.php b/templates/origine/bandeau_template.php index 4bc43e518..fd9c3181a 100644 --- a/templates/origine/bandeau_template.php +++ b/templates/origine/bandeau_template.php @@ -111,52 +111,54 @@ ".affichage_temoin_messages_recus()." - "; - } - else { - // Il se passe un truc bizarre sur /utilisateurs/mon_compte.php dans le cas où on doit changer de mot de passe - /* - echo " -
  • ".affichage_temoin_messages_recus("header_seul")." -
  • - "; - */ + "; + } + else { + // Il se passe un truc bizarre sur /utilisateurs/mon_compte.php dans le cas où on doit changer de mot de passe + /* + echo " +
  • ".affichage_temoin_messages_recus("header_seul")." +
  • + "; + */ + } } } } diff --git a/templates/origine/mod_alerte/admin_template.php b/templates/origine/mod_alerte/admin_template.php index 211694010..75c1e08d9 100644 --- a/templates/origine/mod_alerte/admin_template.php +++ b/templates/origine/mod_alerte/admin_template.php @@ -263,7 +263,42 @@ + + +

    Comptes exclus du dispositif alertes

    + +
    +
    + + + + 0) { + while($lig_mae=mysql_fetch_object($res_mae)) { + $tab_user_preselectionnes[]=$lig_mae->value; + } + } + echo liste_checkbox_utilisateurs($tab_statuts, $tab_user_preselectionnes); + ?> + + + +

    + +

    + +
    +
    + + diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index e76672d81..55fc92c32 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -393,4 +393,24 @@ $result .= msj_present("déjà faite"); } +$result .= "
    "; +$result .= "Ajout d'une table 'mod_alerte_divers' :
    "; +$test = sql_query1("SHOW TABLES LIKE 'mod_alerte_divers'"); +if ($test == -1) { + $result_inter = traite_requete("CREATE TABLE IF NOT EXISTS mod_alerte_divers ( + id INT(11) unsigned NOT NULL auto_increment, + name VARCHAR( 255 ) NOT NULL , + value VARCHAR( 255 ) NOT NULL , + PRIMARY KEY ( id ) + ) ENGINE=MyISAM CHARACTER SET utf8 COLLATE utf8_general_ci;"); + if ($result_inter == '') { + $result .= msj_ok("SUCCES !"); + } + else { + $result .= msj_erreur("ECHEC !"); + } +} else { + $result .= msj_present("La table existe déjà"); +} + ?> From b51925118859ebf874d1aa1d73d19619b76d14e3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 2 Oct 2013 14:35:49 +0200 Subject: [PATCH 1118/1150] Ajout d'un test sur l'initialisation d'indices d'un tableau. --- lib/share.inc.php | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lib/share.inc.php b/lib/share.inc.php index ca9d62672..7b0f6a6c0 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -6010,7 +6010,7 @@ function tableau_tel_resp_ele($ele_login) { $tab_style[1]="impair"; $tab_style[-1]="pair"; - if((count($tab_tel['responsable'])>0)||(count($tab_tel['eleve'])>0)) { + if(((isset($tab_tel['responsable']))&&(count($tab_tel['responsable'])>0))||((isset($tab_tel['eleve']))&&(count($tab_tel['eleve'])>0))) { $retour.="\n"; //$retour.="
    \n"; $retour.="\n"; @@ -6062,6 +6062,9 @@ function tableau_tel_resp_ele($ele_login) { } $retour.="
    \n"; } + else { + $retour.="

    Aucun numéro de téléphone n'a été trouvé.

    \n"; + } return $retour; } From ee3c1ad8d4d602de64a50addaa3644846564213e Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 2 Oct 2013 14:50:02 +0200 Subject: [PATCH 1119/1150] =?UTF-8?q?Modifications=20cosm=C3=A9tiques.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/visu_releve_notes_func.lib.php | 31 +++++++++++++++++---- css/style.css | 11 ++++++++ mod_abs2/stat_justifications.php | 4 +-- mod_abs2/totaux_du_jour.php | 29 ++++++++++++------- 4 files changed, 57 insertions(+), 18 deletions(-) diff --git a/cahier_notes/visu_releve_notes_func.lib.php b/cahier_notes/visu_releve_notes_func.lib.php index f27db3dd5..0c5df85d8 100644 --- a/cahier_notes/visu_releve_notes_func.lib.php +++ b/cahier_notes/visu_releve_notes_func.lib.php @@ -181,13 +181,27 @@ function liste_notes_html($tab_rel,$i,$j,$tab_id_conteneur=array()) { } // 20100626 + /* if($tab_rel['rn_moy_min_max_classe']=='y') { $retour.=" (".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].")"; } elseif($tab_rel['rn_moy_classe']=='y') { $retour.=" (classe:".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'].")"; } - + */ + if($tab_rel['rn_moy_min_max_classe']=='y') { + // 20131002: Mettre des couleurs particulières + $retour.=" ("; + $retour.=""; + $retour.="".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].")"; + } + elseif($tab_rel['rn_moy_classe']=='y') { + $retour.=" (classe:".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'].")"; + } + //==================================================================== // Après un tour avec affichage dans la boucle: $tiret = "yes"; @@ -1499,13 +1513,15 @@ function releve_html($tab_rel,$i,$num_releve_specifie) { echo " (".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].")"; +Note maximale : ".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']."\">"; + //echo $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']; + echo "".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].""; + echo "
    )"; } elseif($tab_rel['rn_moy_classe']=='y') { - echo " (classe:".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'].")"; + echo " (classe:".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe'].")"; } - - + //==================================================================== // Après un tour avec affichage dans la boucle: $tiret = "yes"; @@ -1614,7 +1630,10 @@ function releve_html($tab_rel,$i,$num_releve_specifie) { echo " (".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].")"; +Note maximale : ".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']."\">"; + //echo $tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max']; + echo "".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].""; + echo "
    )"; //echo " (".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['min']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['moy_classe']."|".$tab_rel['eleve'][$i]['groupe'][$j]['devoir'][$m]['max'].")"; } elseif($tab_rel['rn_moy_classe']=='y') { diff --git a/css/style.css b/css/style.css index 880c56aa8..c0d9e15bd 100644 --- a/css/style.css +++ b/css/style.css @@ -242,4 +242,15 @@ TD.calendarHeader {border:0px; font-size: 10pt} width: 15px; } +.cn_moymin { + color:red; +} + +.cn_moyclasse { + color:blue; +} + +.cn_moymax { + color:green; +} diff --git a/mod_abs2/stat_justifications.php b/mod_abs2/stat_justifications.php index ddb1f09b8..c36a26b12 100644 --- a/mod_abs2/stat_justifications.php +++ b/mod_abs2/stat_justifications.php @@ -603,7 +603,7 @@ function creeODS($donnees, $justifications) { - +
    + diff --git a/mod_abs2/totaux_du_jour.php b/mod_abs2/totaux_du_jour.php index f8f325fd2..303d21391 100644 --- a/mod_abs2/totaux_du_jour.php +++ b/mod_abs2/totaux_du_jour.php @@ -130,8 +130,8 @@ Cette page affiche par créneau le nombre d'élèves ayant une saisie correspondant au filtre défini.
    Les saisies renseignées en retard ne sont pas comptabilisées.

    -
    Justifications du @@ -644,7 +644,7 @@ function creeODS($donnees, $justifications) { -
    - +
    + @@ -148,7 +148,7 @@ ?> - + @@ -175,7 +175,7 @@ ?> - + @@ -232,7 +232,7 @@ '; + echo'
    Filtre actif
    Types de saisies concernées :
    Commentaire
    '; echo' @@ -242,6 +242,7 @@ '; + $cpt_eleve=0; $nbre_total_retards=0; $eleves_absents=array (); foreach($col_creneaux as $creneau){ @@ -275,7 +276,15 @@ $eleves_absents[$eleve->getId()]=$eleve->getId(); } } - echo' + + if ($cpt_eleve%2==0) { + $background_couleur="silver;"; + } else { + $background_couleur="lightblue;"; + } + $cpt_eleve++; + + echo ' @@ -286,9 +295,9 @@ } echo'
    Créneau HeureNombre d\'externes
    '.$creneau->getNomDefiniePeriode().' De '.$creneau->getHeureDebutDefiniePeriode().' à '.$creneau->getHeureFinDefiniePeriode().' '.$decompte_du_creneau.'
    '; echo'
    '; - echo''; - echo''; - echo''; + echo'
    Nombre d\'élèves différents comptabilisés dans le tableau ci-dessus '.count($eleves_absents).'
    Nombre de retards sur la journée correspondant au filtre sélectionné'.$nbre_total_retards.'
    '; + echo''; + echo''; echo'
    Nombre d\'élèves différents comptabilisés dans le tableau ci-dessus '.count($eleves_absents).'
    Nombre de retards sur la journée correspondant au filtre sélectionné'.$nbre_total_retards.'
    '; ?> @@ -302,4 +311,4 @@ '; require_once("../lib/footer.inc.php"); -?> \ No newline at end of file +?> From c0bf5ab099ee8f68292bdf81ac51013c191f5358 Mon Sep 17 00:00:00 2001 From: Marc Leygnac Date: Wed, 2 Oct 2013 19:40:35 +0200 Subject: [PATCH 1120/1150] Rectificatifs, les fichiers .test doivent etre ignores dans tous les dossiers, tous les plugins doivent etre ignores --- .gitignore | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b8254e802..286a153d0 100644 --- a/.gitignore +++ b/.gitignore @@ -38,11 +38,14 @@ images/background/degrade1.png images/background/degrade1_small.png images/background/degrade1_very_small.png images/logo.jpg -images/.test artichow/cache/* +.test # Ignore Les plugins -mod_plugins/plugin* -mod_plugins/change_statut* +mod_plugins/ +!mod_plugins/index.php +!mod_plugins/plugins.class.php +!mod_plugins/traiterRequetes.class.php +!mod_plugins/traiterXml.class.php From dd342667809882ddb6ee0470f9e859c964aa9d7a Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 3 Oct 2013 12:11:27 +0200 Subject: [PATCH 1121/1150] =?UTF-8?q?R=C3=A9tablissement=20de=20l'ancien?= =?UTF-8?q?=20calendrier.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte/index.php | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/cahier_texte/index.php b/cahier_texte/index.php index 3c1394a23..5c755c98d 100644 --- a/cahier_texte/index.php +++ b/cahier_texte/index.php @@ -491,12 +491,13 @@ // Il s'agit d'une nouvelle notice $contenu = ''; } - +/* +// PB: Cela fait sauter le mini-calendrier... $style_specifique[] = "lib/DHTMLcalendar/calendarstyle"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar"; $javascript_specifique[] = "lib/DHTMLcalendar/lang/calendar-fr"; $javascript_specifique[] = "lib/DHTMLcalendar/calendar-setup"; - +*/ // On met le header en petit par défaut $_SESSION['cacher_header'] = "y"; //**************** EN-TETE ***************** @@ -1127,12 +1128,12 @@ $temp = "Informations Générales : "; else if (isset($edit_devoir)) { //Configuration du calendrier - //include("../lib/calendrier/calendrier.class.php"); - //$cal = new Calendrier("mef", "display_date"); + include("../lib/calendrier/calendrier.class.php"); + $cal = new Calendrier("mef", "display_date"); $temp = "A faire pour le : "; $temp .= "\n"; - //$temp .= "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"calendrier\"/\n"; - $temp .= img_calendrier_js("display_date", "img_bouton_display_date");; + $temp .= "get_strPopup('../lib/calendrier/pop.calendrier.php', 350, 170)."\">\"calendrier\"/\n"; + //$temp .= img_calendrier_js("display_date", "img_bouton_display_date");; } else { $temp = strftime("%A %d %B %Y", $today); } ?> From 836158d6f4a5e77f24878a7b7d0105d90f8c278d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 3 Oct 2013 18:33:31 +0200 Subject: [PATCH 1122/1150] Correctif sur les tabindex. --- utilisateurs/mon_compte.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utilisateurs/mon_compte.php b/utilisateurs/mon_compte.php index e4e2023c0..343a86a20 100644 --- a/utilisateurs/mon_compte.php +++ b/utilisateurs/mon_compte.php @@ -2083,14 +2083,15 @@ function cellule_checkbox($prof_login,$item,$num,$special){ echo "
    \n"; echo " tabindex='$tabindex'"; + echo " />
    \n"; $tabindex++; + echo "
    \n"; echo " tabindex='$tabindex'"; + echo " />
    \n"; $tabindex++; echo "

    \n"; From e152e13a642fd6c8456d35cea07b2367ff562209 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Thu, 3 Oct 2013 18:43:31 +0200 Subject: [PATCH 1123/1150] Ombre sur le menu horizontal et les infobulles. --- gestion/param_couleurs.php | 16 ++++++++++++++++ lib/share.inc.php | 4 ++-- templates/origine/css/accueil.css | 4 ++++ templates/origine/css/bandeau.css | 4 +++- 4 files changed, 25 insertions(+), 3 deletions(-) diff --git a/gestion/param_couleurs.php b/gestion/param_couleurs.php index 008e36903..455ee3dce 100644 --- a/gestion/param_couleurs.php +++ b/gestion/param_couleurs.php @@ -686,6 +686,10 @@ function genere_degrade($couleur_haut,$couleur_bas,$hauteur,$chemin_img,$mode="" border: 1px solid #$couleur_infobulle_fond_entete; border-top: 4px solid #$couleur_infobulle_fond_entete; } + +.div_conteneur_infobulle { + box-shadow: 4px 2px 6px #$couleur_infobulle_fond_entete; +} /*=====================================================*/ /* Style des DIV d'aide,... accessibles par F2,... */ div.info_abs { @@ -698,6 +702,18 @@ function genere_degrade($couleur_haut,$couleur_bas,$hauteur,$chemin_img,$mode="" background-color: #$couleur_infobulle_fond_corps; } /*=====================================================*/ + +#menu_barre ul ul { + box-shadow: 4px 2px 6px #$couleur_infobulle_fond_entete; + border-right: #$couleur_infobulle_fond_corps 1px solid; + border-top: #$couleur_infobulle_fond_corps 1px solid; + border-left: #$couleur_infobulle_fond_corps 1px solid; + border-bottom: #$couleur_infobulle_fond_corps 1px solid; +} + +#menu_barre li.plus { + border-bottom: #$couleur_infobulle_fond_entete 1px solid; +} "); fclose($fich); } diff --git a/lib/share.inc.php b/lib/share.inc.php index 98b227f19..49414c69a 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -2706,7 +2706,7 @@ function creer_div_infobulle($id,$titre,$bg_titre,$texte,$bg_texte,$largeur,$hau // Conteneur: if($bg_texte==''){ - $div="
    Date: Thu, 3 Oct 2013 18:43:32 +0200 Subject: [PATCH 1124/1150] Modification de style sur le tableau. --- accueil_simpl_prof.php | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/accueil_simpl_prof.php b/accueil_simpl_prof.php index 342596896..34cdee5fa 100644 --- a/accueil_simpl_prof.php +++ b/accueil_simpl_prof.php @@ -483,7 +483,7 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ //echo "\n"; -echo "
    \n"; +echo "
    \n"; echo "\n"; echo "\n"; + //echo "\n"; - $retour.="\n"; + $retour.="".civ_nom_prenom($tab[$loop])."\n"; $retour.="\n"; //$compteur++; } @@ -241,7 +246,7 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes=array(); if($nb_parents_erreur_mdp>0) { while($lig=mysql_fetch_object($res)) { - if(!in_array(mb_strtoupper($lig->login), $tab_resp)) { + if(!in_array(trim(mb_strtoupper($lig->login)), $tab_resp)) { $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes++; $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes[]=$lig->login; } From 756a8ad4fa08059e6e05f119206ca25104650456 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 5 Oct 2013 13:58:41 +0200 Subject: [PATCH 1127/1150] Ajout de lignes pour debug et ajout marge. --- statistiques/stat_connexions.php | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index 8cb94bcae..a4502ce11 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -98,7 +98,7 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $retour=""; //$retour.="
    \n"; - $retour.="
    \n"; + echo "\n"; } if(!in_array($groups[$i]['id'],$invisibilite_groupe['cahier_notes'])) { @@ -851,7 +852,8 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ } } else { - echo "\n"; + //echo "\n"; + echo "\n"; } if(!in_array($groups[$i]['id'],$invisibilite_groupe['bulletins'])) { echo "
    "; @@ -882,7 +884,12 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ // Appréciation sur le bulletin: - echo "
    \n"; + if($class_style!="deverrouille") { + echo "\n"; + } + else { + echo "\n"; + } echo "
    "; if(!in_array($groups[$i]['id'],$invisibilite_groupe['bulletins'])) { echo "\n"; + if($class_style!="deverrouille") { + echo "
    \n"; + } + else { + echo "\n"; + } echo "
    "; $cpt=0; foreach($groups[$i]["classes"]["classes"] as $classe){ @@ -950,7 +962,12 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ // if($test_acces_bull_simp[$j]=="y") { - echo "
    \n"; + if($class_style!="deverrouille") { + echo "\n"; + } + else { + echo "\n"; + } echo "
    "; $cpt=0; foreach($groups[$i]["classes"]["classes"] as $classe){ @@ -1003,7 +1020,12 @@ function ouvre_popup_visu_groupe(id_groupe,id_classe){ if($pref_accueil_liste_pdf=="y"){ - echo "
    \n"; + if($class_style!="deverrouille") { + echo "\n"; + } + else { + echo "\n"; + } echo "
    ".civ_nom_prenom($tab[$loop])."
    \n"; + $retour.="
    \n"; $alt=1; //$compteur=0; for($loop=0;$loopRetour Retour

    \n"; @@ -204,6 +211,9 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { echo "\n"; $alt=1; for($i=0;$i
    "); + $alt=$alt*(-1); echo "\n"; echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + else{ + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + $sql="select 1=1 from eleves e, utilisateurs u WHERE u.login=e.login AND u.etat='inactif';"; + $test_compte_inactif=mysql_query($sql); + if(mysql_num_rows($test_compte_inactif)==0){ + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + else{ + echo "\n"; + echo "\n"; + echo "\n"; + echo "\n"; + } + + echo "\n"; echo "\n"; echo "\n"; echo "\n"; @@ -395,7 +418,7 @@ echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
    ".$tab_classe[$i]['classe'].""); + $sql="SELECT DISTINCT l.login FROM log l, j_eleves_classes jec WHERE jec.login=l.login AND jec.id_classe='".$tab_classe[$i]['id']."' AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; //echo "$sql
    "; $res=mysql_query($sql); @@ -217,9 +227,10 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $titre_infobulle="Elèves connectés au moins une fois (".$tab_classe[$i]['classe'].")\n"; $texte_infobulle="
    ".tableau_php_tableau_html($tab_ele)."
    "; $tabdiv_infobulle[]=creer_div_infobulle('div_ele_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); - + + stat_echo_debug("

    Parents connectés au moins une fois :

    "); $sql="SELECT DISTINCT l.login FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; - //echo "$sql
    "; + stat_echo_debug("$sql
    "); $res=mysql_query($sql); $nb_parents=mysql_num_rows($res); $tab_resp=array(); @@ -234,22 +245,30 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { print_r($tab_resp); } */ + //stat_echo_debug("
    ".print_r($tab_resp)."
    "); $titre_infobulle="Parents connectés au moins une fois\n"; $texte_infobulle="
    ".tableau_php_tableau_html($tab_resp)."
    "; $tabdiv_infobulle[]=creer_div_infobulle('div_resp_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); - + + + stat_echo_debug("

    Parents jamais connectés avec succès :
    "); $sql="SELECT DISTINCT l.login FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose='4' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; - //echo "$sql
    "; + stat_echo_debug("$sql
    "); $res=mysql_query($sql); $nb_parents_erreur_mdp=mysql_num_rows($res); $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes=0; $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes=array(); if($nb_parents_erreur_mdp>0) { while($lig=mysql_fetch_object($res)) { + stat_echo_debug("Test $lig->login -> ".mb_strtoupper($lig->login)." : "); if(!in_array(trim(mb_strtoupper($lig->login)), $tab_resp)) { + stat_echo_debug("$lig->login
    "); $nb_parents_erreur_mdp_et_jamais_connectes_avec_succes++; $tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes[]=$lig->login; } + else { + stat_echo_debug("$lig->login
    "); + } } } /* @@ -288,6 +307,8 @@ function tableau_php_tableau_html($tab, $nb_lig_max=5) { $nb_parents_differents=count($tab_parents_enfants_differents_connectes_avec_succes_cette_classe); // ********************************************************************************************** + stat_echo_debug("

    "; From 2ba64301eef387075478f7363ad9c1674c5e9bc1 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 5 Oct 2013 14:18:02 +0200 Subject: [PATCH 1128/1150] Ajout du nom de la classe dans les titres infobulle. Modification de tri dans les infobulles. --- statistiques/stat_connexions.php | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/statistiques/stat_connexions.php b/statistiques/stat_connexions.php index afff9b752..bc82827f2 100644 --- a/statistiques/stat_connexions.php +++ b/statistiques/stat_connexions.php @@ -528,7 +528,7 @@ function stat_echo_debug($chaine) { stat_echo_debug("
    ".$tab_classe[$i]['classe'].""); - $sql="SELECT DISTINCT l.login FROM log l, j_eleves_classes jec WHERE jec.login=l.login AND jec.id_classe='".$tab_classe[$i]['id']."' AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; + $sql="SELECT DISTINCT l.login FROM log l, j_eleves_classes jec, eleves e WHERE e.login=jec.login AND jec.login=l.login AND jec.id_classe='".$tab_classe[$i]['id']."' AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY e.nom, e.prenom, l.login;"; //echo "$sql
    "; $res=mysql_query($sql); $nb_ele=mysql_num_rows($res); @@ -539,7 +539,7 @@ function stat_echo_debug($chaine) { } } - $sql="SELECT DISTINCT l.login FROM log l, j_eleves_classes jec WHERE jec.login=l.login AND jec.id_classe='".$tab_classe[$i]['id']."' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; + $sql="SELECT DISTINCT l.login FROM log l, j_eleves_classes jec, eleves e WHERE e.login=jec.login AND jec.login=l.login AND jec.id_classe='".$tab_classe[$i]['id']."' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY e.nom, e.prenom, l.login;"; //echo "$sql
    "; $res=mysql_query($sql); $nb_ele=mysql_num_rows($res); @@ -565,7 +565,7 @@ function stat_echo_debug($chaine) { stat_echo_debug("

    Parents connectés au moins une fois :

    "); - $sql="SELECT DISTINCT l.login FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; + $sql="SELECT DISTINCT l.login FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY rp.nom, rp.prenom, l.login;"; stat_echo_debug("$sql
    "); $res=mysql_query($sql); $nb_parents=mysql_num_rows($res); @@ -583,7 +583,7 @@ function stat_echo_debug($chaine) { */ if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { - $titre_infobulle="Parents connectés au moins une fois\n"; + $titre_infobulle="Parents connectés au moins une fois (".$tab_classe[$i]['classe'].")\n"; $texte_infobulle="
    ".tableau_php_tableau_html($tab_resp, "y", "responsable")."
    "; $tabdiv_infobulle[]=creer_div_infobulle('div_resp_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); } @@ -592,7 +592,7 @@ function stat_echo_debug($chaine) { stat_echo_debug("

    Parents jamais connectés avec succès :
    "); - $sql="SELECT DISTINCT l.login, r.pers_id FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose='4' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; + $sql="SELECT DISTINCT l.login, r.pers_id FROM log l, resp_pers rp, eleves e, j_eleves_classes jec, responsables2 r WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose='4' AND l.login!='' AND START>='$mysql_begin_bookings' ORDER BY rp.nom, rp.prenom, l.login;"; //echo "$sql
    "; stat_echo_debug("$sql
    "); $res=mysql_query($sql); @@ -634,7 +634,7 @@ function stat_echo_debug($chaine) { } */ if(($AccesStatConnexionResp)||($AccesDetailConnexionResp)) { - $titre_infobulle="Parents en échec de connexion\n"; + $titre_infobulle="Parents en échec de connexion (".$tab_classe[$i]['classe'].")\n"; $texte_infobulle="

    ".tableau_php_tableau_html($tab_liste_parents_erreur_mdp_et_jamais_connectes_avec_succes)."
    "; $tabdiv_infobulle[]=creer_div_infobulle('div_resp_echec_'.$i,$titre_infobulle,"",$texte_infobulle,"",25,0,'y','y','n','n'); } @@ -650,7 +650,7 @@ function stat_echo_debug($chaine) { $tab_ele_id_enfants_dont_un_parent_au_moins_a_reussi_a_se_connecter_cette_classe=array(); $tab_parents_enfants_differents_connectes_avec_succes_cette_classe=array(); - $sql="SELECT DISTINCT l.login, r.pers_id FROM log l, resp_pers rp, eleves e, responsables2 r, j_eleves_classes jec WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND START>='$mysql_begin_bookings' ORDER BY l.login;"; + $sql="SELECT DISTINCT l.login, r.pers_id FROM log l, resp_pers rp, eleves e, responsables2 r, j_eleves_classes jec WHERE jec.id_classe='".$tab_classe[$i]['id']."' AND jec.login=e.login AND e.ele_id=r.ele_id AND rp.pers_id=r.pers_id AND rp.login=l.login AND l.autoclose>='0' AND l.autoclose<='3' AND START>='$mysql_begin_bookings' ORDER BY rp.nom, rp.prenom, l.login;"; //echo "$sql
    "; $res=mysql_query($sql); while($lig=mysql_fetch_object($res)) { From ffb232c4eccb0da86a6e621b49c569e3d1b6ff0d Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Sat, 5 Oct 2013 21:09:42 +0200 Subject: [PATCH 1129/1150] =?UTF-8?q?Correctif=20sur=20l'affichage=20des?= =?UTF-8?q?=20travaux=20=C3=A0=20faire.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte/consultation.php | 18 ++++++++++++++---- cahier_texte_2/consultation.php | 18 ++++++++++++++---- 2 files changed, 28 insertions(+), 8 deletions(-) diff --git a/cahier_texte/consultation.php b/cahier_texte/consultation.php index f00ef5ca1..82bd62066 100644 --- a/cahier_texte/consultation.php +++ b/cahier_texte/consultation.php @@ -295,6 +295,7 @@ //$aujourhui = $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y")); $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y")); $jour = mktime(0, 0, 0, date('m',$aujourdhui), (date('d',$aujourdhui) + $i), date('Y',$aujourdhui) ); + $jour_suivant=$jour+24*3600; if (is_numeric($id_classe) AND $id_classe > 0) { $appel_devoirs_cahier_texte = mysql_query("SELECT ct.contenu, g.id, g.description, ct.date_ct, ct.id_ct " . "FROM ct_devoirs_entry ct, groupes g, j_groupes_classes jc WHERE (" . @@ -302,7 +303,9 @@ "g.id = jc.id_groupe and " . "jc.id_classe = '" . $id_classe . "' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour')"); + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + )"); } elseif ($selected_eleve) { /* @@ -339,7 +342,9 @@ "jeg.periode = '".$periode_courante."' and " . "jec.login = '" . $selected_eleve->login ."' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour')"; + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + )"; //echo "$sql
    "; $appel_devoirs_cahier_texte = mysql_query($sql); @@ -447,6 +452,7 @@ $nb_dev = 0; for ($i = 0; $i <= $delai; $i++) { $jour = mktime(0, 0, 0, date('m',$today), (date('d',$today) + $i), date('Y',$today) ); + $jour_suivant=$jour+24*3600; // On regarde pour chaque jour, s'il y a des devoirs dans à faire if ($selected_eleve) { // On détermine la période active, pour ne pas avoir de duplication des entrées @@ -461,7 +467,9 @@ "jec.login = '" . $selected_eleve->login ."' and " . "jec.periode = '1' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour')"); + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + )"); } else { $appel_devoirs_cahier_texte = mysql_query("SELECT ct.contenu, g.id, g.description, ct.date_ct, ct.id_ct " . "FROM ct_devoirs_entry ct, groupes g, j_groupes_classes jgc WHERE (" . @@ -469,7 +477,9 @@ "g.id = jgc.id_groupe and " . "jgc.id_classe = '" . $id_classe . "' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour')"); + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + )"); } $nb_devoirs_cahier_texte = mysql_num_rows($appel_devoirs_cahier_texte); $ind = 0; diff --git a/cahier_texte_2/consultation.php b/cahier_texte_2/consultation.php index 80a8348ef..f0a74cb7c 100644 --- a/cahier_texte_2/consultation.php +++ b/cahier_texte_2/consultation.php @@ -341,6 +341,7 @@ function aff_debug($tableau){ //$aujourhui = $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y")); $aujourdhui = mktime(0,0,0,date("m"),date("d"),date("Y")); $jour = mktime(0, 0, 0, date('m',$aujourdhui), (date('d',$aujourdhui) + $i), date('Y',$aujourdhui) ); + $jour_suivant=$jour+24*3600; if (is_numeric($id_classe) AND $id_classe > 0) { $sql="SELECT ct.id_sequence, ct.contenu, g.id, g.description, ct.date_ct, ct.id_ct " . "FROM ct_devoirs_entry ct, groupes g, j_groupes_classes jc WHERE (" . @@ -348,7 +349,9 @@ function aff_debug($tableau){ "g.id = jc.id_groupe and " . "jc.id_classe = '" . $id_classe . "' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour');"; + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + );"; } elseif ($selected_eleve) { // Le DISTINCT est quand même utile parce que si plusieurs périodes sont ouvertes en saisie, on a une multiplication des retours par le nombre de périodes ouvertes en saisie @@ -386,7 +389,9 @@ function aff_debug($tableau){ "jeg.periode = '".$periode_courante."' and " . "jec.login = '" . $selected_eleve->login ."' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour')"; + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + )"; } //echo strftime("%a %d/%m/%y",$jour)."
    "; @@ -515,6 +520,7 @@ function aff_debug($tableau){ $nb_dev = 0; for ($i = 0; $i <= $delai; $i++) { $jour = mktime(0, 0, 0, date('m',$today), (date('d',$today) + $i), date('Y',$today) ); + $jour_suivant=$jour+24*3600; // On regarde pour chaque jour, s'il y a des devoirs dans à faire if ($selected_eleve) { // On détermine la période active, pour ne pas avoir de duplication des entrées @@ -530,7 +536,9 @@ function aff_debug($tableau){ "p.id_classe = jec.id_classe and " . "jec.login = '" . $selected_eleve->login ."' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour');"; + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + );"; } else { $sql="SELECT ct.id_sequence, ct.contenu, g.id, g.description, ct.date_ct, ct.id_ct " . "FROM ct_devoirs_entry ct, groupes g, j_groupes_classes jgc WHERE (" . @@ -538,7 +546,9 @@ function aff_debug($tableau){ "g.id = jgc.id_groupe and " . "jgc.id_classe = '" . $id_classe . "' and " . "ct.contenu != '' and " . - "ct.date_ct = '$jour');"; + "ct.date_ct >= '$jour' and + ct.date_ct < '$jour_suivant' + );"; } //echo strftime("%a %d/%m/%y",$jour)."
    "; //echo "$sql

    "; From 941c6642da453b0cf0532eba0334402965f15f8b Mon Sep 17 00:00:00 2001 From: Regis85 Date: Sun, 6 Oct 2013 22:48:05 +0200 Subject: [PATCH 1130/1150] =?UTF-8?q?d=C3=A9veloppement=20=E2=86=92=20perm?= =?UTF-8?q?ettre=20aux=20=C3=A9l=C3=A8ves=20de=20suivre=20les=20=C3=A9valu?= =?UTF-8?q?ations=20cumul=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Conflicts: css/style.css --- cahier_notes/visu_cc_elv.php | 790 +++++++++++++++++++++++++++++++ class_php/class_page_accueil.php | 27 ++ css/style.css | 91 ++++ gestion/droits_acces.php | 5 + 4 files changed, 913 insertions(+) create mode 100644 cahier_notes/visu_cc_elv.php diff --git a/cahier_notes/visu_cc_elv.php b/cahier_notes/visu_cc_elv.php new file mode 100644 index 000000000..a461de65c --- /dev/null +++ b/cahier_notes/visu_cc_elv.php @@ -0,0 +1,790 @@ +set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + } + return $connection; +} + +// ***** En attendant la gestion des droits par les mises à jours ***** + +// On vérifie si les droits existent et au besoin, on les crée +$mysqli = connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb); + +/* Modification du jeu de résultats en utf8 */ +if (!$mysqli->set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + die(); +} + + +$result = $mysqli->query("SELECT * FROM `droits` WHERE id = '/cahier_notes/visu_cc_elv.php' "); +if (!$result->num_rows) { + $result->close(); + $result = $mysqli->query("INSERT INTO `gepi`.`droits` (`id`, `administrateur`, `professeur`, `cpe`, `scolarite`, `eleve`, `responsable`, `secours`, `autre`, `description`, `statut`) VALUES ('/cahier_notes/visu_cc_elv.php', 'F', 'V', 'F', 'F', 'V', 'V', 'F', 'F', 'Carnet de notes - visualisation par les élèves', '');"); +} + +// ***** Fin en attendant la gestion des droits par les mises à jours ***** +// +// Resume session +$resultat_session = $session_gepi->security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +// recherche de l'utilisateur avec propel +$utilisateur = UtilisateurProfessionnelPeer::getUtilisateursSessionEnCours(); +if ($utilisateur == null) { + header("Location: ../logout.php?auto=1"); + die(); +} + +// On vérifie si le module est activé +if (getSettingValue("active_carnets_notes")!='y') { + die("Le module carnets de notes n'est pas activé."); +} + /* + * Autorisation de voir les évaluations cumules + */ +if (getSettingValue("GepiAccesEvalCumulEleve")!='yes') { + die("Les évaluations cumules ne sont pas visibles"); +} + +@setlocale(LC_NUMERIC,'C'); + +require('cc_lib.php'); + +$javascript_specifique[] = "lib/tablekit"; + + +/**************************************************************** + FIN HAUT DE PAGE +****************************************************************/ +// debug_var(); + +$titre_page = $nom_cc; + + +/**************************************************************** + On récupère les évaluations +****************************************************************/ + +/* + * - Si on a un parents, on récupère l'enfant qu'il suit + * - On récupère les évaluations des groupes dont il fait parti → `cc_dev` + * - On récupère chaque évaluation → `cc_eval` + * - On récupère les notes → `cc_notes_eval` +*/ + + /* + * TODO : Autorisation spécifique de voir l'évaluation + */ + + if ('eleve' == $utilisateur->getStatut()) { + $eleve = clone $utilisateur; + } elseif ('responsable' == $utilisateur->getStatut()) { + $enfants = $utilisateur->getEleves(); + + $login = isset($_POST['choixEleve']) ? $_POST['choixEleve'] : (isset($_SESSION['enfant']) ? $_SESSION['enfant'] : $enfants[0]->getLogin()); + $_SESSION['enfant'] = $login; + $eleve = ElevePeer::retrieveByLOGIN($login); + + } else { + die("Vous n'avez pas droit à cette page"); +} + + /***** - On récupère les évaluations des groupes dont l'élève fait parti → `cc_dev` *****/ + +$tableauNotesCumules=array(); +$NotesCumulesSaisies=array(); +$Notes=array(); + + +$query = "SELECT DISTINCT `cc_dev`.* , `jgm`.id_matiere FROM `cc_dev` + INNER JOIN `j_eleves_groupes` jeg + ON (cc_dev.id_groupe = jeg.id_groupe) + INNER JOIN `j_groupes_matieres` jgm + ON (jgm.id_groupe = jeg.id_groupe) + WHERE jeg.login = '".$eleve->getLogin()."' + ORDER BY cc_dev.id_cn_dev ASC, cc_dev.id_groupe ASC + "; +// echo $query; + +if ($result = $mysqli->query($query)) { + + while ($obj = $result->fetch_object()) { + + /***** - On récupère chaque évaluation → `cc_eval` *****/ + $queryEval = "SELECT cce.* FROM `cc_eval` cce + WHERE cce.id_dev = '".$obj->id."' + "; + if ($resultEval = $mysqli->query($queryEval)) { + while ($objEval = $resultEval->fetch_object()) { + +/***** - On récupère les notes → `cc_notes_eval` *****/ + $queryNotes = "SELECT cne.* FROM `cc_notes_eval` cne + WHERE cne.id_eval = $objEval->id + AND cne.login = '".$eleve->getLogin()."' + "; + if ($resultNotes = $mysqli->query($queryNotes)) { + while ($objNotes = $resultNotes->fetch_object()) { + $Notes[] = array("nom_court"=>stripslashes($objEval->nom_court), "nom_complet"=>stripslashes($objEval->nom_complet), "description"=>stripslashes($objEval->description), "date"=>$objEval->date , "note_sur"=>$objEval->note_sur , "note"=>$objNotes->note, "statut"=>$objNotes->statut, "comment"=>stripslashes($objNotes->comment)); + } + } + } + } + $cumulNote = $noteSur = 0; + foreach ($Notes as $eval) { + if (!$eval["statut"]) { + $cumulNote += $eval["note"]; + $noteSur += $eval["note_sur"]; + } + } + + if ($obj->id_cn_dev) { + $NotesCumulesSaisies[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); + } else { + $tableauNotesCumules[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); + } + + unset($Notes); + $resultEval->close(); + } + + /* free result set */ + $result->close(); +} + +/**************************************************************** + Fin de la récupération des évaluations +****************************************************************/ +$mysqli->close(); +/***************************************************************/ + +// tamporisation de sortie +ob_start(); +?> +getStatut() && (count($enfants)>1)) { ?> +
    + +

    + + + +

    + + +
    + + + +

    Évaluations non intégrées au carnet de notes

    + +'; +print_r($tableauNotesCumules); +echo ''; +*/ +$i=0; +?> + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + Nom + + Date + + Note + + Sur +
    + + + + + + + +
    Total-
    Moyenne-
    +
    + +
    + + + + + + + + + + + + +

    Évaluations intégrées dans le carnet de notes

    + + + + + +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
    + +
    + Nom + + Date + + Note + + Sur +
    + + + + + + + +
    Total-
    Moyenne-
    +
    + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + <?php echo "$titre_page : $tbs_gepiSchoolName" ?> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \n"; + } + } + unset($value); + } + ?> + + + + + + + // + + "; + } + + //maintien_de_la_session(); +?> + + + + + + + + + + + + + + + + + + + +
    + + + + + +
    +Page générée en "; + echo $tbs_microtime; + echo " sec

    + "; + } +?> + + + // + + "; + } +?> + + + + + +
     
    +
    alerte
    +
    +
    +
    +
    ok
    +
    +
    + + + + + diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index 2cfd88ff6..ab433e893 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -180,6 +180,12 @@ function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { $this->verif_exist_ordre_menu('bloc_carnet_notes_famille'); if ($this->releveNotesFamille()) $this->chargeAutreNom('bloc_carnet_notes_famille'); +// Relevés de notes cumulées +if(getSettingAOui('GepiAccesEvalCumulEleve')) { + $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); + if ($this->notesCumulFamille()) + $this->chargeAutreNom('bloc_carnet_notes_cumules'); +} // Equipes pédagogiques $this->verif_exist_ordre_menu('bloc_equipe_peda_famille'); if ($this->equipePedaFamille()) @@ -891,6 +897,27 @@ private function releveNotesFamille(){ } } + private function notesCumulFamille(){ + $this->b=0; + + $condition = ( + getSettingValue("active_carnets_notes")=='y' AND ( + ($this->statutUtilisateur == "responsable" AND getSettingValue("GepiAccesReleveParent") == 'yes') + OR ($this->statutUtilisateur == "eleve" AND getSettingValue("GepiAccesReleveEleve") == 'yes') + OR ($this->statutUtilisateur == "professeur") + )); + + if ($condition) { + $this->creeNouveauItem("/cahier_notes/visu_cc_elv.php", + "Notes cumulées", + "Permet de consulter les notes cumulées."); + } + if ($this->b>0){ + $this->creeNouveauTitre('accueil',"Notes cumulées",'images/icons/releve.png'); + return true; + } + } + private function modDiscFamille(){ $this->b=0; diff --git a/css/style.css b/css/style.css index c0d9e15bd..46e3b2361 100644 --- a/css/style.css +++ b/css/style.css @@ -254,3 +254,94 @@ TD.calendarHeader {border:0px; font-size: 10pt} color:green; } +/* ===================== */ +table.boireaus { + border-style: solid; + border-width: 1px; + border-color: black; + border-collapse: collapse; +} + +.boireaus th { + border-style: solid; + border-width: 1px; + border-color: black; + /*background-color: khaki;*/ + background-color: #fff5b1; + font-weight:bold; + text-align:center; + vertical-align: middle; + padding: .2em .5em; +} + +.boireaus td { + text-align:center; + vertical-align: middle; + border-style: solid; + border-width: 1px; + border-color: black; + padding: .2em .5em; +} + +.boireaus .lig-1 { + background-color: #C8FFC8; +} +.boireaus .lig1 { + background-color: #FFE6AA; +} + + +/* =======================================* +* Affichage de div sous forme de tableau +*=========================================*/ + +/* ===== 2 colonnes → 1ère colonne 30% ===== */ +.colonne { + display:table-cell; + padding:0.5em; + vertical-align:middle; + border-width:thin; + border-style:solid; + border-color:#d3d3d3; +} + +.colonne:first-child { + width:30%; + font-size:medium; + font-weight:normal; +} + +.colonne + .colonne { + border-left: none; +} + + +/* ===== 3 colonnes ===== */ +.ligne3 { + display:table-row; +} + +.col3 { + display:table-cell; + padding:0.5em ; +} + +.col3_0 { + width:30%; + font-size:medium; + font-weight:normal; +} + +.col3_1 { + width:30%; + font-size:medium; + font-weight:normal; +} + +.col3_2 { + width:30%; + font-size:medium; + font-weight:normal; +} + + diff --git a/gestion/droits_acces.php b/gestion/droits_acces.php index 2a626ca21..d152e8f16 100644 --- a/gestion/droits_acces.php +++ b/gestion/droits_acces.php @@ -1245,6 +1245,11 @@ if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) $tbs_message = 'Erreur lors du chargement de '.$titreItem; +$titreItem='GepiAccesEvalCumulEleve'; +$texteItem="peut voir les évaluations cumulées (ouvre également le droit aux parents)"; +if (!$droitAffiche->set_entree($statutItem, $titreItem, $texteItem)) + $tbs_message = 'Erreur lors du chargement de '.$titreItem; + //+++++++++++++++++++++++++++ $titreItem=''; From 4b49ed1771e302c13f12ef600cf35a6c6adeab59 Mon Sep 17 00:00:00 2001 From: Regis85 Date: Mon, 7 Oct 2013 16:00:40 +0200 Subject: [PATCH 1131/1150] Ajout des droits sur la page /cahier_notes/visu_cc_elv.php --- cahier_notes/visu_cc_elv.php | 14 ++++------- sql/data_gepi.sql | 1 + utilitaires/updates/163_to_dev.inc.php | 34 ++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 9 deletions(-) diff --git a/cahier_notes/visu_cc_elv.php b/cahier_notes/visu_cc_elv.php index a461de65c..cca838e0c 100644 --- a/cahier_notes/visu_cc_elv.php +++ b/cahier_notes/visu_cc_elv.php @@ -42,23 +42,19 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { $connection = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); +/* Modification du jeu de résultats en utf8 */ if (!$connection->set_charset("utf8")) { - printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $connection->error); } return $connection; } -// ***** En attendant la gestion des droits par les mises à jours ***** - -// On vérifie si les droits existent et au besoin, on les crée +// ***** Ouverture d'une liaison à la base en utilisant mysqli ***** $mysqli = connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb); -/* Modification du jeu de résultats en utf8 */ -if (!$mysqli->set_charset("utf8")) { - printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); - die(); -} +// ***** En attendant la gestion des droits par les mises à jours ***** +// On vérifie si les droits existent et au besoin, on les crée $result = $mysqli->query("SELECT * FROM `droits` WHERE id = '/cahier_notes/visu_cc_elv.php' "); if (!$result->num_rows) { diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index c41a87397..a4b0dac23 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -247,6 +247,7 @@ INSERT INTO droits VALUES ('/cahier_notes/visu_toutes_notes2.php', 'F', 'V', 'V' INSERT INTO droits VALUES ('/cahier_notes/index2.php', 'F', 'V', 'V', 'V', 'F', 'F', 'F', 'F', 'Visualisation des moyennes des carnets de notes', ''); INSERT INTO droits VALUES ('/utilitaires/verif_groupes.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Vérification des incohérences d appartenances à des groupes', ''); INSERT INTO droits VALUES ('/referencement.php', 'V', 'F', 'F', 'F', 'F', 'F', 'F', 'F', 'Référencement de Gepi sur la base centralisée des utilisateurs de Gepi', ''); +INSERT INTO droits VALUES ('/cahier_notes/visu_cc_elv.php', 'F', 'F', 'F', 'F', 'V', 'V', 'F', 'F', 'Carnet de notes - visualisation par les élèves', ''); INSERT INTO ct_types_documents VALUES (1, 'JPEG', 'jpg', 'oui'); INSERT INTO ct_types_documents VALUES (2, 'PNG', 'png', 'oui'); INSERT INTO ct_types_documents VALUES (3, 'GIF', 'gif', 'oui'); diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index 55fc92c32..fad45648a 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -413,4 +413,38 @@ $result .= msj_present("La table existe déjà"); } + +$result .= "
    "; +$result .= "Ajout des droits sur la page d'affichage des évaluations cumules pour les familles :
    "; + +/* + * mysql_query est obsolète depuis PHP 5.5.0, on utilise mysqli à la place + */ + +$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); + +/* Modification du jeu de résultats en utf8 */ +if (!$mysqli->set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + die(); +} + +$requete = $mysqli->query("SELECT * FROM `droits` WHERE id = '/cahier_notes/visu_cc_elv.php' "); +if (!$requete->num_rows) { + //$requete->num_rows est toujours à 0, la ligne est effacée dans la table lors de la mise à jour ????????? + $requete->close(); + $requete2 = $mysqli->query("INSERT INTO `gepi`.`droits` (`id`, `administrateur`, `professeur`, `cpe`, `scolarite`, `eleve`, `responsable`, `secours`, `autre`, `description`, `statut`) VALUES ('/cahier_notes/visu_cc_elv.php', 'F', 'F', 'F', 'F', 'V', 'V', 'F', 'F', 'Carnet de notes - visualisation par les élèves', '');"); + if ($requete2 ) { + $result .= msj_ok("Succes !"); + } + else { + $result .= msj_erreur("Échec !"); + } +} else { + $result .= msj_present("L'enregistrement existe déjà"); + $requete->close(); +} + +$mysqli->close(); + ?> From 5b891f8a469f0b89155f28addc3d3614b272578a Mon Sep 17 00:00:00 2001 From: Regis85 Date: Mon, 7 Oct 2013 18:17:51 +0200 Subject: [PATCH 1132/1150] correction des droits dans acces_rights.inc.php --- utilitaires/updates/163_to_dev.inc.php | 32 ----------------------- utilitaires/updates/access_rights.inc.php | 2 ++ 2 files changed, 2 insertions(+), 32 deletions(-) diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index fad45648a..4014ff929 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -414,37 +414,5 @@ } -$result .= "
    "; -$result .= "Ajout des droits sur la page d'affichage des évaluations cumules pour les familles :
    "; - -/* - * mysql_query est obsolète depuis PHP 5.5.0, on utilise mysqli à la place - */ - -$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); - -/* Modification du jeu de résultats en utf8 */ -if (!$mysqli->set_charset("utf8")) { - printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); - die(); -} - -$requete = $mysqli->query("SELECT * FROM `droits` WHERE id = '/cahier_notes/visu_cc_elv.php' "); -if (!$requete->num_rows) { - //$requete->num_rows est toujours à 0, la ligne est effacée dans la table lors de la mise à jour ????????? - $requete->close(); - $requete2 = $mysqli->query("INSERT INTO `gepi`.`droits` (`id`, `administrateur`, `professeur`, `cpe`, `scolarite`, `eleve`, `responsable`, `secours`, `autre`, `description`, `statut`) VALUES ('/cahier_notes/visu_cc_elv.php', 'F', 'F', 'F', 'F', 'V', 'V', 'F', 'F', 'Carnet de notes - visualisation par les élèves', '');"); - if ($requete2 ) { - $result .= msj_ok("Succes !"); - } - else { - $result .= msj_erreur("Échec !"); - } -} else { - $result .= msj_present("L'enregistrement existe déjà"); - $requete->close(); -} - -$mysqli->close(); ?> diff --git a/utilitaires/updates/access_rights.inc.php b/utilitaires/updates/access_rights.inc.php index dffd0b00d..c8dd7387b 100644 --- a/utilitaires/updates/access_rights.inc.php +++ b/utilitaires/updates/access_rights.inc.php @@ -1035,6 +1035,8 @@ function traite_requete($requete = "") { description='Abs2: Creation lot de traitements', statut='';"; +$tab_req[] = "INSERT INTO droits VALUES ('/cahier_notes/visu_cc_elv.php', 'F', 'F', 'F', 'F', 'V', 'V', 'F', 'F', 'Carnet de notes - visualisation par les élèves', '');"; + $test1 = mysql_num_rows(mysql_query("SHOW COLUMNS FROM droits LIKE 'responsable'")); if ($test1 == 1) { foreach ($tab_req as $key => $value) { From e8ae89cadd21adde18701d3b540a5696f2f0ea17 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 7 Oct 2013 19:00:07 +0200 Subject: [PATCH 1133/1150] =?UTF-8?q?Possibilit=C3=A9=20d'extraire=20les?= =?UTF-8?q?=20=C3=A9l=C3=A8ves=20sans=20compte=20d'utilisateur=20ou=20avec?= =?UTF-8?q?=20compte=20inactif.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- eleves/index.php | 60 ++++++++++++++++++++++++++++++++++++++ eleves/index_call_data.php | 29 ++++++++++++++++++ 2 files changed, 89 insertions(+) diff --git a/eleves/index.php b/eleves/index.php index ddc6c539a..2e9af744f 100644 --- a/eleves/index.php +++ b/eleves/index.php @@ -1314,6 +1314,66 @@ function verif7(){ } + // 20131007 + $sql="select 1=1 from eleves e + LEFT JOIN utilisateurs u ON u.login=e.login + where u.login is NULL;"; + $test_sans_compte=mysql_query($sql); + if(mysql_num_rows($test_sans_compte)==0){ + echo "
    \n"; + echo " \n"; + echo "\n"; + + echo "\n"; + + echo "Tous les élèves ont leur compte d'utilisateur dans la table 'utilisateurs'.
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; + echo " \n"; + echo "\n"; + + echo "\n"; + + echo "Tous les élèves disposant d'un compte d'utilisateur ont leur compte actif.
    \n"; + echo "
    \n"; + echo "\n"; + echo "\n"; + echo "\n"; + echo "
    \n"; echo "\n"; diff --git a/eleves/index_call_data.php b/eleves/index_call_data.php index 8df3de132..01adb45e8 100644 --- a/eleves/index_call_data.php +++ b/eleves/index_call_data.php @@ -192,6 +192,35 @@ // Message alternatif depuis modify_eleve.php } + } else if ($quelles_classes == 'compte_user_manquant') { + $sql="select e.*,jer.* FROM j_eleves_regime jer, eleves e + LEFT JOIN utilisateurs u ON u.login=e.login + WHERE u.login is NULL AND jer.login=e.login + ORDER BY $order_type;"; + //echo "$sql
    "; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

    Liste des élèves ne disposant pas de compte d'utilisateur.

    \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + + } else if ($quelles_classes == 'compte_inactif') { + $sql="select e.*,jer.* FROM j_eleves_regime jer, eleves e, utilisateurs u + WHERE u.login=e.login AND jer.login=e.login AND u.etat='inactif' + ORDER BY $order_type;"; + //echo "$sql
    "; + $calldata = mysql_query($sql); + + if((!isset($page_courante))||($page_courante!="modify_eleve")) { + echo "

    Liste des élèves dont le compte d'utilisateur est inactif.

    \n"; + } + else { + // Message alternatif depuis modify_eleve.php + } + } else if ($quelles_classes == 'incomplet') { /* $calldata = mysql_query("SELECT e.* FROM eleves e WHERE elenoet='' OR no_gep='' From 253653f06db3aea37f3142a5601109e69590c041 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Mon, 7 Oct 2013 19:00:12 +0200 Subject: [PATCH 1134/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20tri=20sur=20l?= =?UTF-8?q?es=20colonnes=20nom=5Fpr=C3=A9nom=20et=20classe.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- utilisateurs/create_eleve.php | 75 ++++++++++++++++++++++++++++------- 1 file changed, 61 insertions(+), 14 deletions(-) diff --git a/utilisateurs/create_eleve.php b/utilisateurs/create_eleve.php index bb7f8ba8b..1954dc926 100644 --- a/utilisateurs/create_eleve.php +++ b/utilisateurs/create_eleve.php @@ -46,6 +46,11 @@ $mdp_INE=isset($_POST["mdp_INE"]) ? $_POST["mdp_INE"] : (isset($_GET["mdp_INE"]) ? $_GET["mdp_INE"] : NULL); +$order_by=isset($_GET['order_by']) ? $_GET['order_by'] : "nom_prenom"; +if(!in_array($order_by, array('nom_prenom', 'classe'))) { + $order_by='nom_prenom'; +} + if ($create_mode == "classe" OR $create_mode == "individual") { // On a une demande de création, on continue check_token(); @@ -352,16 +357,34 @@ $critere_recherche=preg_replace("/[^a-zA-ZÀÄÂÉÈÊËÎÏÔÖÙÛܽ¼Ççàäâéèêëîïôöùûü_ -]/", "", $critere_recherche); - $sql="SELECT e.* FROM eleves e LEFT JOIN utilisateurs u ON e.login=u.login WHERE (u.login IS NULL"; - if($afficher_tous_les_eleves!='y'){ - if($critere_recherche!=""){ - $sql.=" AND e.nom like '%".$critere_recherche."%'"; + if($order_by=='classe') { + $sql="SELECT DISTINCT e.* FROM j_eleves_classes jec, classes c, eleves e LEFT JOIN utilisateurs u ON e.login=u.login WHERE (u.login IS NULL AND jec.login=e.login AND jec.id_classe=c.id"; + if($afficher_tous_les_eleves!='y'){ + if($critere_recherche!=""){ + $sql.=" AND e.nom like '%".$critere_recherche."%'"; + } + } + + $sql.=") ORDER BY c.classe, e.nom,e.prenom"; + if($afficher_tous_les_eleves!='y'){ + if($critere_recherche==""){ + $sql.=" LIMIT 20"; + } } } - $sql.=") ORDER BY e.nom,e.prenom"; - if($afficher_tous_les_eleves!='y'){ - if($critere_recherche==""){ - $sql.=" LIMIT 20"; + else { + $sql="SELECT e.* FROM eleves e LEFT JOIN utilisateurs u ON e.login=u.login WHERE (u.login IS NULL"; + if($afficher_tous_les_eleves!='y'){ + if($critere_recherche!=""){ + $sql.=" AND e.nom like '%".$critere_recherche."%'"; + } + } + + $sql.=") ORDER BY e.nom,e.prenom"; + if($afficher_tous_les_eleves!='y'){ + if($critere_recherche==""){ + $sql.=" LIMIT 20"; + } } } //echo "$sql
    "; @@ -384,7 +407,7 @@ echo "Filtrage:"; echo "
    \n"; - echo " les élèves sans login dont le nom contient: "; + echo " les élèves sans compte d'utilisateur dont le nom contient: "; echo "\n"; echo "
    \n"; - echo "\n"; + echo "\n"; echo "
    \n"; @@ -441,7 +464,26 @@ echo ""; echo "

    "; - echo "\n"; + echo "
    + + + + + \n"; $alt=1; while ($current_eleve = mysql_fetch_object($quels_eleves)) { $alt=$alt*(-1); @@ -451,11 +493,15 @@ echo "\n"; echo "\n"; - echo "\n"; + echo "\n"; echo "\n"; } echo "
    Création du compteNom prénomClasse
    \n"; - echo "login."';$('indiv_mdp_INE').value='y'; $('form_create_one_eleve').submit();\" />\n"; - //echo "login."';$('indiv_mdp_INE').value='y';\" />\n"; + if($current_eleve->no_gep!="") { + echo "login."';$('indiv_mdp_INE').value='y'; $('form_create_one_eleve').submit();\" />\n"; + } + else { + echo "INE non renseigné"; + } echo "".$current_eleve->nom." ".$current_eleve->prenom."".$current_eleve->nom." ".$current_eleve->prenom."\n"; @@ -471,6 +517,7 @@ echo "
    \n"; + echo "

    $nb2 élèves affichés.

    "; echo ""; echo "\n"; } From 0e29b1800843074868290b026163fda847eec85b Mon Sep 17 00:00:00 2001 From: Regis85 Date: Mon, 7 Oct 2013 21:21:06 +0200 Subject: [PATCH 1135/1150] =?UTF-8?q?Gestion=20par=20les=20enseignants=20d?= =?UTF-8?q?e=20l'affichage=20des=20=C3=A9valuations=20cumules?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/add_modif_cc_dev.php | 29 ++++++++++- cahier_notes/add_modif_cc_eval.php | 32 ++++++++++++- cahier_notes/visu_cc_elv.php | 36 ++++++++------ utilitaires/updates/163_to_dev.inc.php | 66 ++++++++++++++++++++++++++ 4 files changed, 145 insertions(+), 18 deletions(-) diff --git a/cahier_notes/add_modif_cc_dev.php b/cahier_notes/add_modif_cc_dev.php index 4d63c1c01..7406df5ca 100644 --- a/cahier_notes/add_modif_cc_dev.php +++ b/cahier_notes/add_modif_cc_dev.php @@ -99,6 +99,7 @@ $nom_complet = mysql_result($query, 0, 'nom_complet'); $description = nettoyage_retours_ligne_surnumeraires(mysql_result($query, 0, 'description')); $precision = mysql_result($query, 0, 'arrondir'); + $famille=mysql_result($query, 0, 'vision_famille'); } else { header("Location: index.php?msg=".rawurlencode("Le numéro de devoir n est pas associé à ce groupe.")); @@ -112,6 +113,7 @@ $description = ""; //$precision="s1"; $precision=getPref($_SESSION['login'], 'eval_cumul_precision', 's1'); + $famille = ""; } $matiere_nom = $current_group["matiere"]["nom_complet"]; @@ -128,6 +130,7 @@ $nom_complet=traitement_magic_quotes($_POST['nom_complet']); $description=traitement_magic_quotes($_POST['description']); $precision=$_POST['precision']; + $famille=$_POST['famille']; if(!my_ereg("^(s1|s5|se|p1|p5|pe)$", $precision)) { $msg.="Précision '$precision' invalide; Elle a été remplacée par 's1'."; } @@ -135,7 +138,7 @@ savePref($_SESSION['login'], 'eval_cumul_precision', $precision); if(!isset($id_dev)) { - $sql="INSERT INTO cc_dev SET id_groupe='$id_groupe', nom_court='$nom_court', nom_complet='$nom_complet', description='$description', arrondir='$precision';"; + $sql="INSERT INTO cc_dev SET id_groupe='$id_groupe', nom_court='$nom_court', nom_complet='$nom_complet', description='$description', arrondir='$precision', vision_famille='$famille';"; $insert=mysql_query($sql); if(!$insert) { $msg.="Erreur lors de la création du $nom_cc."; @@ -153,7 +156,7 @@ // Sinon, il faut mettre à jour le devoir associé - $sql="UPDATE cc_dev SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description', arrondir='$precision' WHERE id_groupe='$id_groupe' AND id='$id_dev';"; + $sql="UPDATE cc_dev SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description', arrondir='$precision', vision_famille='$famille' WHERE id_groupe='$id_groupe' AND id='$id_dev';"; $update=mysql_query($sql); if(!$update) { $msg.="Erreur lors de la mise à jour du $nom_cc."; @@ -339,7 +342,29 @@ echo "\n"; echo "\n"; } +?> + + + + + + + value="yes" /> + +
    + + value="no" /> + +
    + + +\n"; if(isset($id_dev)) { diff --git a/cahier_notes/add_modif_cc_eval.php b/cahier_notes/add_modif_cc_eval.php index 1eceae6c5..9dcb3aa00 100644 --- a/cahier_notes/add_modif_cc_eval.php +++ b/cahier_notes/add_modif_cc_eval.php @@ -132,6 +132,7 @@ $description=nettoyage_retours_ligne_surnumeraires(mysql_result($query, 0, 'description')); $display_date=mysql_result($query, 0, 'date'); + $vision_famille =mysql_result($query, 0, 'vision_famille'); $note_sur=mysql_result($query, 0, 'note_sur'); } else { @@ -145,6 +146,7 @@ $nom_complet="Evaluation n°"; $description=""; $display_date=strftime('%d/%m/%Y'); + $vision_famille =strftime('%d/%m/%Y'); $note_sur=5; } @@ -202,8 +204,26 @@ $jour=strftime("%d"); } $date=$annee."-".$mois."-".$jour." 00:00:00"; + + + if ($_POST['vision_famille ']) { + if (my_ereg("([0-9]{2})/([0-9]{2})/([0-9]{4})", $_POST['vision_famille '])) { + $annee=mb_substr($_POST['vision_famille '],6,4); + $mois=mb_substr($_POST['vision_famille '],3,2); + $jour=mb_substr($_POST['vision_famille '],0,2); + } else { + $annee=strftime("%Y"); + $mois=strftime("%m"); + $jour=strftime("%d"); + } + } else { + $annee=strftime("%Y"); + $mois=strftime("%m"); + $jour=strftime("%d"); + } + $vision_famille = $annee."-".$mois."-".$jour." 00:00:00"; - $sql="UPDATE cc_eval SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description', note_sur='$note_sur', date='".$date."' WHERE id='$id_eval';"; + $sql="UPDATE cc_eval SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description', note_sur='$note_sur', date='".$date."', vision_famille ='".$vision_famille ."' WHERE id='$id_eval';"; $update=mysql_query($sql); if(!$insert) { $msg="Erreur lors de la création ou mise à jour de l'évaluation associée au $nom_cc n°$id_dev. $sql"; @@ -348,6 +368,16 @@ echo "\n"; } + + echo "\n"; + echo "Date de visibilité:\n"; + echo "\n"; + echo "\n"; + echo img_calendrier_js("vision_famille ", "img_bouton_vision_famille "); + echo "\n"; + echo "\n"; + + echo "\n"; echo "
    \n"; echo "\n"; diff --git a/cahier_notes/visu_cc_elv.php b/cahier_notes/visu_cc_elv.php index cca838e0c..1b10c37ee 100644 --- a/cahier_notes/visu_cc_elv.php +++ b/cahier_notes/visu_cc_elv.php @@ -145,7 +145,7 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { $tableauNotesCumules=array(); $NotesCumulesSaisies=array(); $Notes=array(); - +$now=new DateTime('NOW'); $query = "SELECT DISTINCT `cc_dev`.* , `jgm`.id_matiere FROM `cc_dev` INNER JOIN `j_eleves_groupes` jeg @@ -153,6 +153,7 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { INNER JOIN `j_groupes_matieres` jgm ON (jgm.id_groupe = jeg.id_groupe) WHERE jeg.login = '".$eleve->getLogin()."' + AND `cc_dev`.vision_famille = 'yes' ORDER BY cc_dev.id_cn_dev ASC, cc_dev.id_groupe ASC "; // echo $query; @@ -175,26 +176,31 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { "; if ($resultNotes = $mysqli->query($queryNotes)) { while ($objNotes = $resultNotes->fetch_object()) { - $Notes[] = array("nom_court"=>stripslashes($objEval->nom_court), "nom_complet"=>stripslashes($objEval->nom_complet), "description"=>stripslashes($objEval->description), "date"=>$objEval->date , "note_sur"=>$objEval->note_sur , "note"=>$objNotes->note, "statut"=>$objNotes->statut, "comment"=>stripslashes($objNotes->comment)); + $d1=new DateTime($objEval->vision_famille."00:00:00"); + if ($d1 <= $now) { + $Notes[] = array("nom_court"=>stripslashes($objEval->nom_court), "nom_complet"=>stripslashes($objEval->nom_complet), "description"=>stripslashes($objEval->description), "date"=>$objEval->date , "vision_famille"=>$objEval->vision_famille , "note_sur"=>$objEval->note_sur , "note"=>$objNotes->note, "statut"=>$objNotes->statut, "comment"=>stripslashes($objNotes->comment)); + } } } } } $cumulNote = $noteSur = 0; - foreach ($Notes as $eval) { - if (!$eval["statut"]) { - $cumulNote += $eval["note"]; - $noteSur += $eval["note_sur"]; + if (isset($Notes)) { + foreach ($Notes as $eval) { + if (!$eval["statut"]) { + $cumulNote += $eval["note"]; + $noteSur += $eval["note_sur"]; + } } + + if ($obj->id_cn_dev) { + $NotesCumulesSaisies[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); + } else { + $tableauNotesCumules[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); + } + + unset($Notes); } - - if ($obj->id_cn_dev) { - $NotesCumulesSaisies[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); - } else { - $tableauNotesCumules[] = array("id"=>$obj->id , "id_cn_dev"=>$obj->id_cn_dev , "id_matiere"=>$obj->id_matiere, "id_groupe"=>$obj->id_groupe , "nom_court"=>stripslashes($obj->nom_court) , "nom_complet"=>stripslashes($obj->nom_complet) , "description"=>stripslashes($obj->description) , "arrondir"=>$obj->arrondir, "notes"=>$Notes, "total"=>$cumulNote, "note_sur"=>$noteSur); - } - - unset($Notes); $resultEval->close(); } @@ -280,7 +286,7 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { - + diff --git a/utilitaires/updates/163_to_dev.inc.php b/utilitaires/updates/163_to_dev.inc.php index 4014ff929..406df6723 100755 --- a/utilitaires/updates/163_to_dev.inc.php +++ b/utilitaires/updates/163_to_dev.inc.php @@ -414,5 +414,71 @@ } +/* + * mysql_query est obsolète depuis PHP 5.5.0, on utilise mysqli à la place + */ +$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); +/* Modification du jeu de résultats en utf8 */ +if (!$mysqli->set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + die(); +} + + +$result .= "
    "; +$result .= "Ajout d'un champ pour autoriser l'affichage des évaluations cumules pour les familles :
    "; + +$requete = $mysqli->query("SHOW COLUMNS FROM `cc_dev` LIKE 'vision_famille';"); +if (!$requete->num_rows) { + $requete2 = $mysqli->query("ALTER TABLE `cc_dev` ADD `vision_famille` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'Autorisation de voir pour les familles';"); + if ($requete2 ) { + $result .= msj_ok("Succes !"); + } + else { + $result .= msj_erreur("Échec !"); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} +$requete->close(); + + +$result .= "
    "; +$result .= "Ajout d'un champ date d'affichage pour chaque évaluation cumule, pour les familles :
    "; + +$requete = $mysqli->query("SHOW COLUMNS FROM `cc_eval` LIKE 'vision_famille';"); +if (!$requete->num_rows) { + $requete2 = $mysqli->query("ALTER TABLE `cc_eval` ADD `vision_famille` DATE NOT NULL COMMENT 'Autorisation de voir pour les familles';"); + if ($requete2 ) { + $result .= msj_ok("Succes !"); + } + else { + $result .= msj_erreur("Échec !"); + } +} else { + $result .= msj_present("Le champ existe déjà"); +} +$requete->close(); + + + + + + + + + + + + + + + + + + + + +$mysqli->close(); ?> From 58e02878e4af09fc9eadc88a6a92f287068b6cd8 Mon Sep 17 00:00:00 2001 From: Regis85 Date: Mon, 7 Oct 2013 22:14:23 +0200 Subject: [PATCH 1136/1150] Gestion de l'ordre d'affichage du menu dans la page d'accueil --- cahier_notes/add_modif_cc_eval.php | 2 +- class_php/class_accueil_ordre_menu.php | 8 ++++++++ class_php/class_page_accueil.php | 13 ++++++------- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/cahier_notes/add_modif_cc_eval.php b/cahier_notes/add_modif_cc_eval.php index 9dcb3aa00..e76853c03 100644 --- a/cahier_notes/add_modif_cc_eval.php +++ b/cahier_notes/add_modif_cc_eval.php @@ -370,7 +370,7 @@ echo "\n"; - echo "Date de visibilité:\n"; + echo "Date de visibilité (si le droit est ouvert) :\n"; echo "\n"; echo "\n"; echo img_calendrier_js("vision_famille ", "img_bouton_vision_famille "); diff --git a/class_php/class_accueil_ordre_menu.php b/class_php/class_accueil_ordre_menu.php index ccb93f968..2d836393d 100644 --- a/class_php/class_accueil_ordre_menu.php +++ b/class_php/class_accueil_ordre_menu.php @@ -129,6 +129,14 @@ function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { if ($this->releve_notes()) $this->chargeAutreNom('bloc_releve_notes'); +/***** Vision des évaluations cumules *****/ + if(getSettingAOui('GepiAccesEvalCumulEleve')) { + $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); + if ($this->notesCumulFamille()) + $this->chargeAutreNom('bloc_carnet_notes_cumules'); + } + + /***** Outils de relevé ECTS *****/ $this->verif_exist_ordre_menu('bloc_releve_ects'); if ($this->releve_ECTS()) diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index ab433e893..b41d2d928 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -181,11 +181,11 @@ function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { if ($this->releveNotesFamille()) $this->chargeAutreNom('bloc_carnet_notes_famille'); // Relevés de notes cumulées -if(getSettingAOui('GepiAccesEvalCumulEleve')) { - $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); - if ($this->notesCumulFamille()) - $this->chargeAutreNom('bloc_carnet_notes_cumules'); -} + if(getSettingAOui('GepiAccesEvalCumulEleve')) { + $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); + if ($this->notesCumulFamille()) + $this->chargeAutreNom('bloc_carnet_notes_cumules'); + } // Equipes pédagogiques $this->verif_exist_ordre_menu('bloc_equipe_peda_famille'); if ($this->equipePedaFamille()) @@ -897,14 +897,13 @@ private function releveNotesFamille(){ } } - private function notesCumulFamille(){ + protected function notesCumulFamille(){ $this->b=0; $condition = ( getSettingValue("active_carnets_notes")=='y' AND ( ($this->statutUtilisateur == "responsable" AND getSettingValue("GepiAccesReleveParent") == 'yes') OR ($this->statutUtilisateur == "eleve" AND getSettingValue("GepiAccesReleveEleve") == 'yes') - OR ($this->statutUtilisateur == "professeur") )); if ($condition) { From b20cf381bf1db1b4aa3d8d462749d295a816ef4a Mon Sep 17 00:00:00 2001 From: Regis85 Date: Mon, 7 Oct 2013 23:27:29 +0200 Subject: [PATCH 1137/1150] =?UTF-8?q?Am=C3=A9liorations=20cosm=C3=A9tiques?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/visu_cc_elv.php | 12 ++++++++++++ cahier_notes/visu_releve_notes_ter.php | 22 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/cahier_notes/visu_cc_elv.php b/cahier_notes/visu_cc_elv.php index 1b10c37ee..14b56042e 100644 --- a/cahier_notes/visu_cc_elv.php +++ b/cahier_notes/visu_cc_elv.php @@ -243,6 +243,14 @@ function connectMysqli ($dbHost, $dbUser, $dbPass, $dbDb) { + + +

    + Aucune disponible +

    + + +

    Évaluations non intégrées au carnet de notes

    @@ -725,6 +733,10 @@ function show_message_deconnexion() {
    +
    + : regroupement de plusieurs évaluations en une seule qui sera ensuite intégré dans le carnet de notes +
    + Retour à l'accueil"; echo " | Interface classique"; +// l'élève a-t-il des évaluations cumules + +if ($ele_login) { + $mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); +/* Modification du jeu de résultats en utf8 */ + if (!$mysqli->set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + } + + $result = $mysqli->query("SELECT 1=1 FROM `cc_notes_eval` WHERE login ='".$ele_login."'"); + if ($result->num_rows) { + echo " | $nom_cc"; + } +} + + if($_SESSION['statut']=='eleve') { echo "

    \n"; From 791417da1b81a88e360c74b43219d639db0730fa Mon Sep 17 00:00:00 2001 From: Regis85 Date: Tue, 8 Oct 2013 19:55:48 +0200 Subject: [PATCH 1138/1150] =?UTF-8?q?Cacher=20le=20choix=20=C3=A9valuation?= =?UTF-8?q?-cumul=20en=20page=20d'accueil=20si=20pas=20d'=C3=A9valuations-?= =?UTF-8?q?cumul=C3=A9es?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- class_php/class_page_accueil.php | 41 ++++++++++++++++++++++++++++---- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/class_php/class_page_accueil.php b/class_php/class_page_accueil.php index b41d2d928..c437f9aa7 100644 --- a/class_php/class_page_accueil.php +++ b/class_php/class_page_accueil.php @@ -65,6 +65,13 @@ class class_page_accueil { function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { + + //$mysqli = new mysqli($dbHost, $dbUser, $dbPass, $dbDb); +/* Modification du jeu de résultats en utf8 + if (!$mysqli->set_charset("utf8")) { + printf("Erreur lors du chargement du jeu de caractères utf8 : %s\n", $mysqli->error); + } */ + switch ($niveau_arbo){ case 0: $this->cheminRelatif = './'; @@ -81,7 +88,9 @@ function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { default: $this->cheminRelatif = './'; } - + + + $this->statutUtilisateur = $statut; $this->gepiSettings=$gepiSettings; $this->loginUtilisateur=$_SESSION['login']; @@ -181,11 +190,33 @@ function __construct($statut, $gepiSettings, $niveau_arbo,$ordre_menus) { if ($this->releveNotesFamille()) $this->chargeAutreNom('bloc_carnet_notes_famille'); // Relevés de notes cumulées - if(getSettingAOui('GepiAccesEvalCumulEleve')) { - $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); - if ($this->notesCumulFamille()) - $this->chargeAutreNom('bloc_carnet_notes_cumules'); + if ('eleve' == $this->statutUtilisateur) { + $result = sql_count(sql_query("SELECT 1=1 FROM `cc_notes_eval` WHERE login ='".$this->loginUtilisateur."'")); + // $result += 1; + } elseif ('responsable' == $this->statutUtilisateur) { + $result = FALSE; + $result = sql_count(sql_query("SELECT 1=1 + FROM `cc_notes_eval` ne , + `resp_pers` rp, + `responsables2` r2, + `eleves` e + WHERE rp.login = '".$this->loginUtilisateur."' + AND rp.pers_id = r2.pers_id + AND r2.ele_id = e.ele_id + AND e.login = ne.login + ")); + + } else { + $result = FALSE; + } + if ($result) { + if(getSettingAOui('GepiAccesEvalCumulEleve')) { + $this->verif_exist_ordre_menu('bloc_carnet_notes_cumules'); + if ($this->notesCumulFamille()) + $this->chargeAutreNom('bloc_carnet_notes_cumules'); + } } + // Equipes pédagogiques $this->verif_exist_ordre_menu('bloc_equipe_peda_famille'); if ($this->equipePedaFamille()) From 1fda3df452a7a557638270e0d3d99950ea855ab7 Mon Sep 17 00:00:00 2001 From: Regis85 Date: Tue, 8 Oct 2013 22:07:17 +0200 Subject: [PATCH 1139/1150] =?UTF-8?q?Correction=20message=20lors=20de=20la?= =?UTF-8?q?=20correction=20d'une=20=C3=A9valuation=20cumule?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_notes/add_modif_cc_eval.php | 16 ++++++++-------- lib/header_template.inc.php | 3 ++- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/cahier_notes/add_modif_cc_eval.php b/cahier_notes/add_modif_cc_eval.php index e76853c03..100335d22 100644 --- a/cahier_notes/add_modif_cc_eval.php +++ b/cahier_notes/add_modif_cc_eval.php @@ -101,9 +101,9 @@ $query=mysql_query($sql); if($query) { $id_cn_dev=mysql_result($query, 0, 'id_cn_dev'); - $nom_court_dev=mysql_result($query, 0, 'nom_court'); - $nom_complet_dev=mysql_result($query, 0, 'nom_complet'); - $description_dev=mysql_result($query, 0, 'description'); + $nom_court_dev=stripslashes(mysql_result($query, 0, 'nom_court')); + $nom_complet_dev=stripslashes(mysql_result($query, 0, 'nom_complet')); + $description_dev=stripslashes(mysql_result($query, 0, 'description')); } else { header("Location: index.php?msg=".rawurlencode("Le numéro de devoir n est pas associé à ce groupe.")); @@ -127,9 +127,9 @@ } //$id_cn_dev=mysql_result($query, 0, 'id_cn_dev'); - $nom_court=mysql_result($query, 0, 'nom_court'); - $nom_complet=mysql_result($query, 0, 'nom_complet'); - $description=nettoyage_retours_ligne_surnumeraires(mysql_result($query, 0, 'description')); + $nom_court=stripslashes(mysql_result($query, 0, 'nom_court')); + $nom_complet=stripslashes(mysql_result($query, 0, 'nom_complet')); + $description=nettoyage_retours_ligne_surnumeraires(stripslashes(mysql_result($query, 0, 'description'))); $display_date=mysql_result($query, 0, 'date'); $vision_famille =mysql_result($query, 0, 'vision_famille'); @@ -225,8 +225,8 @@ $sql="UPDATE cc_eval SET nom_court='$nom_court', nom_complet='$nom_complet', description='$description', note_sur='$note_sur', date='".$date."', vision_famille ='".$vision_famille ."' WHERE id='$id_eval';"; $update=mysql_query($sql); - if(!$insert) { - $msg="Erreur lors de la création ou mise à jour de l'évaluation associée au $nom_cc n°$id_dev. $sql"; + if(!$update) { + $msg="Erreur lors de la création ou mise à jour de l'évaluation associée au ".stripslashes($nom_cc)." n°$id_dev. ".stripslashes($sql); } else { $msg="Création ou mise à jour de l'évaluation associée au $nom_cc n°$id_dev effectuée."; diff --git a/lib/header_template.inc.php b/lib/header_template.inc.php index eec0742f0..fdf30450f 100644 --- a/lib/header_template.inc.php +++ b/lib/header_template.inc.php @@ -695,7 +695,8 @@ function last_connection() { $tbs_msg="" ; if ((isset($_GET['msg'])) or (isset($_POST['msg'])) or (isset($msg))) { - $msg = isset($_POST['msg']) ? unslashes($_POST['msg']) : (isset($_GET['msg']) ? unslashes($_GET['msg']) : $msg); + //$msg = isset($_POST['msg']) ? unslashes($_POST['msg']) : (isset($_GET['msg']) ? unslashes($_GET['msg']) : $msg); + $msg = isset($_POST['msg']) ? stripslashes($_POST['msg']) : (isset($_GET['msg']) ? stripslashes($_GET['msg']) : $msg); if ($msg != '') { $tbs_msg=$msg ; } From 55aba8d9fbff7f4bb36d2b1b61b0ee3c7d32a545 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Tue, 8 Oct 2013 22:27:28 +0200 Subject: [PATCH 1140/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20nettoyer=20la?= =?UTF-8?q?=20table=20tentative=5Fintrusion=20et=20la=20table=20log?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- gestion/changement_d_annee.php | 75 ++++++++++++---------------------- lib/share.inc.php | 66 ++++++++++++++++++++++++++++++ utilitaires/clean_tables.php | 74 +++++++++++++++++++++++++++++++++ 3 files changed, 167 insertions(+), 48 deletions(-) diff --git a/gestion/changement_d_annee.php b/gestion/changement_d_annee.php index e5b764725..53fc84985 100644 --- a/gestion/changement_d_annee.php +++ b/gestion/changement_d_annee.php @@ -115,39 +115,12 @@ elseif ($_POST['is_posted']=='2') { check_token(); - if (isset($_POST['log_day']) and isset($_POST['log_month']) and isset($_POST['log_year'])) { - //$log_clean_date = mktime(0,0,0,$_POST['log_month'],$_POST['log_day'],$_POST['log_year']); - //echo $log_clean_date; - - unset($log_year); - unset($log_month); - unset($log_day); - if(preg_match('/^[0-9]+$/',$_POST['log_year'])) {$log_year=$_POST['log_year'];} - if(preg_match('/^[0-9]+$/',$_POST['log_month'])) {$log_month=$_POST['log_month'];} - if(preg_match('/^[0-9]+$/',$_POST['log_day'])) {$log_day=$_POST['log_day'];} - - if((isset($log_year))&&(isset($log_month))&&(isset($log_day))) { - // Pour éviter de flinguer la session en cours - $hier_day=date('d', mktime() - 24*3600); - $hier_month=date('m', mktime() - 24*3600); - $hier_year=date('Y', mktime() - 24*3600); - - //$sql="SELECT * FROM log WHERE start<'$log_year-$log_month-$log_day 00:00:00' AND start<'".date('Y')."-".date('m')."-".$hier." 00:00:00';"; - $sql="DELETE FROM log WHERE start<'$log_year-$log_month-$log_day 00:00:00' AND start<'".$hier_year."-".$hier_month."-".$hier_day." 00:00:00';"; - //echo "$sql
    \n"; - $del=mysql_query($sql); - if(!$del) { - $msg.="Echec du nettoyage.
    \n"; - } - else { - $msg.="Nettoyage effectué.
    \n"; - } - } - else { - $msg .= "La date proposée est invalide.
    "; - } - //if (!) - // $msg .= "Erreur lors de l'enregistrement de log_bookings !"; + if (isset($_POST['clean_log']) and isset($_POST['log_day']) and isset($_POST['log_month']) and isset($_POST['log_year'])) { + $msg.="Nettoyage des logs de connexion antérieurs à ".$_POST['log_day']."/".$_POST['log_month']."/".$_POST['log_year']." : ".clean_table_log($_POST['log_day']."/".$_POST['log_month']."/".$_POST['log_year'])."
    "; + } + + if (isset($_POST['clean_tentative_intrusion']) and isset($_POST['ti_day']) and isset($_POST['ti_month']) and isset($_POST['ti_year'])) { + $msg.="Nettoyage des logs de tentatives d'intrusion antérieurs à ".$_POST['ti_day']."/".$_POST['ti_month']."/".$_POST['ti_year']." : ".clean_table_tentative_intrusion($_POST['ti_day']."/".$_POST['ti_month']."/".$_POST['ti_year'])."
    "; } } } @@ -400,25 +373,31 @@ echo "
    \n"; -echo "
    \n"; -echo "
    \n"; -echo add_token_field(); -echo "

    Optionnel : Nettoyer la table 'log'.
    \n"; -echo "Cette table contient les dates de connexion/déconnexion des utilisateurs.
    \n"; -echo "Conserver ces informations au-delà d'une année n'a pas vraiment d'intérêt.
    \n"; -echo "Au besoin, si vous avez pris soin d'effectuer une sauvegarde de la base, les informations y sont.

    \n"; $lday = strftime("%d", getSettingValue("end_bookings")); $lmonth = strftime("%m", getSettingValue("end_bookings")); $lyear = date('Y')-1; -echo "

    Nettoyer les logs antérieurs au : \n"; + +echo " +

    + ".add_token_field()." +

    + Optionnel : Nettoyer les tables 'log' et 'tentative_intrusion'.
    + Cette table contient les dates de connexion/déconnexion des utilisateurs.
    + Conserver ces informations au-delà d'une année n'a pas vraiment d'intérêt.
    + Au besoin, si vous avez pris soin d'effectuer une sauvegarde de la base, les informations y sont. +

    +

     : "; genDateSelector("log_",$lday,$lmonth,$lyear,"more_years"); -echo "\n"; -echo "\n"; -echo "

    \n"; -echo "
    \n"; -echo "\n"; +echo "
    +  : "; +genDateSelector("ti_",$lday,$lmonth,$lyear,"more_years"); +echo "

    + + + +

    NOTE : La CNIL recommande de ne pas conserver plus de 6 mois de journaux de connexion.

    +
    +\n"; echo "


    \n"; diff --git a/lib/share.inc.php b/lib/share.inc.php index 49414c69a..da11743fa 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -8303,4 +8303,70 @@ function check_mae($login_user) { } } } + +function clean_table_log($jusque_telle_date) { + if(($jusque_telle_date=="")||(!preg_match("#[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}#", $jusque_telle_date))) { + return "Date '$jusque_telle_date' invalide."; + } + else { + $tmp_tab=explode("/", $jusque_telle_date); + $log_day=$tmp_tab[0]; + $log_month=$tmp_tab[1]; + $log_year=$tmp_tab[2]; + if(!checkdate($log_month, $log_day, $log_year)) { + return "Date '$jusque_telle_date' invalide."; + } + else { + + // Pour éviter de flinguer la session en cours + $hier_day=date('d', time() - 24*3600); + $hier_month=date('m', time() - 24*3600); + $hier_year=date('Y', time() - 24*3600); + + //$sql="SELECT * FROM log WHERE start<'$log_year-$log_month-$log_day 00:00:00' AND start<'".date('Y')."-".date('m')."-".$hier." 00:00:00';"; + $sql="DELETE FROM log WHERE start<'$log_year-$log_month-$log_day 00:00:00' AND start<'".$hier_year."-".$hier_month."-".$hier_day." 00:00:00';"; + //echo "$sql
    \n"; + $del=mysql_query($sql); + if(!$del) { + return "Echec du nettoyage.\n"; + } + else { + return "Nettoyage effectué.\n"; + } + } + } +} + +function clean_table_tentative_intrusion($jusque_telle_date) { + if(($jusque_telle_date=="")||(!preg_match("#[0-9]{1,2}/[0-9]{1,2}/[0-9]{4}#", $jusque_telle_date))) { + return "Date '$jusque_telle_date' invalide."; + } + else { + $tmp_tab=explode("/", $jusque_telle_date); + $log_day=$tmp_tab[0]; + $log_month=$tmp_tab[1]; + $log_year=$tmp_tab[2]; + if(!checkdate($log_month, $log_day, $log_year)) { + return "Date '$jusque_telle_date' invalide."; + } + else { + + // Pour éviter de flinguer la session en cours + $hier_day=date('d', time() - 24*3600); + $hier_month=date('m', time() - 24*3600); + $hier_year=date('Y', time() - 24*3600); + + //$sql="SELECT * FROM log WHERE start<'$log_year-$log_month-$log_day 00:00:00' AND start<'".date('Y')."-".date('m')."-".$hier." 00:00:00';"; + $sql="DELETE FROM tentatives_intrusion WHERE date<'$log_year-$log_month-$log_day 00:00:00' AND date<'".$hier_year."-".$hier_month."-".$hier_day." 00:00:00';"; + //echo "$sql
    \n"; + $del=mysql_query($sql); + if(!$del) { + return "Echec du nettoyage.\n"; + } + else { + return "Nettoyage effectué.\n"; + } + } + } +} ?> diff --git a/utilitaires/clean_tables.php b/utilitaires/clean_tables.php index 071e09134..b4c26c95b 100644 --- a/utilitaires/clean_tables.php +++ b/utilitaires/clean_tables.php @@ -2434,6 +2434,40 @@ function clean_table_XXX() { echo "

    \n"; + echo "

    Terminé.

    \n"; + } +} elseif (isset($_REQUEST['action']) AND $_REQUEST['action'] == 'clean_table_log') { + echo "

    "; + if(isset($_GET['chgt_annee'])) { + echo "Retour Retour à la page de Changement d'année "; + } + else { + echo "Retour Retour accueil "; + echo "| Retour page Vérification / Nettoyage des tables\n"; + } + echo "

    \n"; + + $date_limite=isset($_REQUEST['date_limite']) ? $_REQUEST['date_limite'] : NULL; + if(isset($date_limite)) { + echo "

    Nettoyage des logs antérieurs au $date_limite : ".clean_table_log($date_limite)."

    \n"; + + echo "

    Terminé.

    \n"; + } +} elseif (isset($_REQUEST['action']) AND $_REQUEST['action'] == 'clean_table_tentative_intrusion') { + echo "

    "; + if(isset($_GET['chgt_annee'])) { + echo "Retour Retour à la page de Changement d'année "; + } + else { + echo "Retour Retour accueil "; + echo "| Retour page Vérification / Nettoyage des tables\n"; + } + echo "

    \n"; + + $date_limite=isset($_REQUEST['date_limite']) ? $_REQUEST['date_limite'] : NULL; + if(isset($date_limite)) { + echo "

    Nettoyage des logs de tentatives d'intrusion antérieurs au $date_limite : ".clean_table_tentative_intrusion($date_limite)."

    \n"; + echo "

    Terminé.

    \n"; } } elseif (isset($_POST['action']) AND $_POST['action'] == 'clean_cdt') { @@ -3644,6 +3678,46 @@ function clean_table_XXX() { echo "\n"; echo "\n"; + //=================================================================== + + echo "
    \n"; + + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "\n"; + + $annee=strftime("%Y"); + $mois=strftime("%m"); + if($mois<=7) {$annee--;} + echo " antérieurs au \n"; + echo img_calendrier_js("date_limite_cl", "img_bouton_date_limite_cl"); + + echo "
    \n"; + echo "\n"; + echo "
    \n"; + + //=================================================================== + + echo "
    \n"; + + echo "
    \n"; + echo add_token_field(); + echo "
    \n"; + echo "\n"; + + $annee=strftime("%Y"); + $mois=strftime("%m"); + if($mois<=7) {$annee--;} + echo " antérieurs au \n"; + echo img_calendrier_js("date_limite_cti", "img_bouton_date_limite_cti"); + + echo "
    \n"; + echo "\n"; + echo "
    \n"; + + //=================================================================== + echo "
    \n"; //echo "
    \n"; From 48b29a699d33d294217bdebda04dcf833d44b914 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Oct 2013 14:48:05 +0200 Subject: [PATCH 1141/1150] =?UTF-8?q?Fichier=20oubli=C3=A9=20pour=20pointe?= =?UTF-8?q?r=20les=20travaux=20faits.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_2/ajax_cdt.php | 122 ++++++++++++++++++++++++++++++++++++ 1 file changed, 122 insertions(+) create mode 100644 cahier_texte_2/ajax_cdt.php diff --git a/cahier_texte_2/ajax_cdt.php b/cahier_texte_2/ajax_cdt.php new file mode 100644 index 000000000..945d04ba6 --- /dev/null +++ b/cahier_texte_2/ajax_cdt.php @@ -0,0 +1,122 @@ +security_check(); +if ($resultat_session == 'c') { + header("Location: ../utilisateurs/mon_compte.php?change_mdp=yes"); + die(); +} else if ($resultat_session == '0') { + header("Location: ../logout.php?auto=1"); + die(); +} + +//INSERT INTO droits SET id='/cahier_texte_2/ajax_cdt.php',administrateur='F',professeur='F',cpe='F',scolarite='F',eleve='V',responsable='V',secours='F',autre='F',description='Enregistrement des modifications sur CDT',statut=''; +if (!checkAccess()) { + header("Location: ../logout.php?auto=1"); + die(); +} + +check_token(); + +header('Content-Type: text/html; charset=utf-8'); + +$mode=isset($_GET['mode']) ? $_GET['mode'] : ""; +$login_eleve=isset($_GET['login_eleve']) ? $_GET['login_eleve'] : ""; +$id_ct_devoir=isset($_GET['id_ct_devoir']) ? $_GET['id_ct_devoir'] : ""; +//$etat=isset($_GET['etat']) ? $_GET['etat'] : ""; + +/* +echo "\$mode=$mode
    "; +echo "\$login_eleve=$login_eleve
    "; +echo "\$regime_eleve=$regime_eleve
    "; +*/ + +$CDTPeutPointerTravailFait=getSettingAOui('CDTPeutPointerTravailFait'.ucfirst($_SESSION['statut'])); + +//if(($mode=='changer_etat')&&($etat!="")&&(is_numeric($id_ct_devoir))&&($login_eleve!="")) { +if(($mode=='changer_etat')&&(is_numeric($id_ct_devoir))&&($login_eleve!="")&&($CDTPeutPointerTravailFait)) { + if($_SESSION['statut']=='eleve') { + if($login_eleve!=$_SESSION['login']) { + echo ""; + tentative_intrusion(1, "Tentative d'un élève de modifier l'état du travail fait ou non CDT pour une notice d'un autre élève ($login_eleve)."); + die(); + } + } + elseif($_SESSION['statut']=='responsable') { + if(!is_responsable($login_eleve, $_SESSION['login'], "", "yy")) { + echo ""; + tentative_intrusion(1, "Tentative d'un responsable de modifier l'état du travail fait ou non CDT pour une notice d'un élève ($login_eleve) dont il n'est pas responsable."); + die(); + } + } + + // Vérifier que l'id_ct_devoir correspond à un cours de l'élève. + $sql="SELECT 1=1 FROM ct_devoirs_entry cde, j_eleves_groupes jeg WHERE cde.id_ct='".$id_ct_devoir."' AND cde.id_groupe=jeg.id_groupe AND jeg.login='$login_eleve';"; + //echo "$sql
    "; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + echo ""; + die(); + } + + $date_courante=strftime("%Y-%m-%d %H:%M:%S"); + $sql="SELECT * FROM ct_devoirs_faits WHERE id_ct='".$id_ct_devoir."' AND login='$login_eleve';"; + $res=mysql_query($sql); + if(mysql_num_rows($res)==0) { + $nouvel_etat="fait"; + $sql="INSERT INTO ct_devoirs_faits SET id_ct='".$id_ct_devoir."', login='$login_eleve', date_initiale='$date_courante', date_modif='$date_courante', etat='$nouvel_etat', commentaire='';"; + } + else { + $etat=mysql_result($res, 0, 'etat'); + if($etat=="") { + $nouvel_etat='fait'; + } + else { + $nouvel_etat=''; + } + $sql="UPDATE ct_devoirs_faits SET date_modif='$date_courante', etat='$nouvel_etat', commentaire='' WHERE id_ct='".$id_ct_devoir."' AND login='$login_eleve';"; + } + $reg=mysql_query($sql); + if(!$reg) { + //echo ""; + echo ""; + } + elseif($nouvel_etat=='fait') { + echo ""; + } + else { + echo ""; + } + + // NOTE: En cas de modification du devoir par le prof, il faut faire un UPDATE sur les ct_devoirs_faits et mettre un commentaire comme quoi le prof a fait une modification sur la notice. +} + +?> From 39e4d91e9b2d3f6f2a136d761235655976be5566 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Oct 2013 15:59:27 +0200 Subject: [PATCH 1142/1150] =?UTF-8?q?Ajout=20d'une=20indication=20sur=20le?= =?UTF-8?q?s=20types=20de=20fichiers=20autoris=C3=A9s=20lors=20d'un=20refu?= =?UTF-8?q?s.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte/traite_doc.php | 7 +++++-- cahier_texte_2/traite_doc.php | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/cahier_texte/traite_doc.php b/cahier_texte/traite_doc.php index 7072262c6..f3ba89c78 100644 --- a/cahier_texte/traite_doc.php +++ b/cahier_texte/traite_doc.php @@ -88,7 +88,10 @@ function ajout_doc($doc_file,$id_ct,$doc_name,$cpt_doc) { $id_type = $row[0]; } else { - return "Ce type de fichier n'est pas autorisé en téléchargement"; + return "Erreur : Ce type de fichier n'est pas autorisé en téléchargement.
    +Si vous trouvez cela regrettable, contactez l'administrateur.
    +Il pourra modifier ce paramétrage dans
    +*Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."; die(); } @@ -245,4 +248,4 @@ function ajout_doc($doc_file,$id_ct,$doc_name,$cpt_doc) { } } -?> \ No newline at end of file +?> diff --git a/cahier_texte_2/traite_doc.php b/cahier_texte_2/traite_doc.php index ce9d2dfe5..8e4691a1b 100644 --- a/cahier_texte_2/traite_doc.php +++ b/cahier_texte_2/traite_doc.php @@ -75,7 +75,10 @@ function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe) { if ($row = @sql_row($result,0)) { $id_type = $row[0]; } else { - echo ("Erreur : Ce type de fichier n'est pas autorisé en téléchargement"); + echo ("Erreur : Ce type de fichier n'est pas autorisé en téléchargement. +Si vous trouvez cela regrettable, contactez l'administrateur. +Il pourra modifier ce paramétrage dans + *Gestion des modules/Cahiers de textes/Types de fichiers autorisés en téléchargement*."); die(); } @@ -172,4 +175,4 @@ function ajout_fichier($doc_file, $dest, $cpt_doc, $id_groupe) { // $msg = "Veuillez choisir un nom valide."; // } //} -?> \ No newline at end of file +?> From 52898153c0e92652b35ee7ff6965ae6046db1b47 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Oct 2013 16:25:47 +0200 Subject: [PATCH 1143/1150] =?UTF-8?q?Ajout=20des=20formats=20OfficeOpenXML?= =?UTF-8?q?=20dans=20les=20formats=20par=20d=C3=A9faut.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- cahier_texte_admin/modify_type_doc.php | 3 +++ sql/data_gepi.sql | 3 +++ 2 files changed, 6 insertions(+) diff --git a/cahier_texte_admin/modify_type_doc.php b/cahier_texte_admin/modify_type_doc.php index 2899f1500..3be01baea 100644 --- a/cahier_texte_admin/modify_type_doc.php +++ b/cahier_texte_admin/modify_type_doc.php @@ -96,6 +96,7 @@ $tab_sql[]="INSERT INTO ct_types_documents SET titre='C source', extension='c', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='Debian', extension='deb', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='Word', extension='doc', upload='oui';"; + $tab_sql[]="INSERT INTO ct_types_documents SET titre='Word', extension='docx', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='LaTeX DVI', extension='dvi', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='PostScript', extension='eps', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='GeoGebra', extension='ggb', upload='oui';"; @@ -119,6 +120,7 @@ $tab_sql[]="INSERT INTO ct_types_documents SET titre='PDF', extension='pdf', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='PNG', extension='png', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='PowerPoint', extension='ppt', upload='oui';"; + $tab_sql[]="INSERT INTO ct_types_documents SET titre='PowerPoint', extension='pptx', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='PostScript', extension='ps', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='Photoshop', extension='psd', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='QuickTime', extension='qt', upload='oui';"; @@ -141,6 +143,7 @@ $tab_sql[]="INSERT INTO ct_types_documents SET titre='Windows Media', extension='wmv', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='GIMP multi-layer', extension='xcf', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='Excel', extension='xls', upload='oui';"; + $tab_sql[]="INSERT INTO ct_types_documents SET titre='Excel', extension='xlsx', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='XML', extension='xml', upload='oui';"; $tab_sql[]="INSERT INTO ct_types_documents SET titre='Zip', extension='zip', upload='oui';"; diff --git a/sql/data_gepi.sql b/sql/data_gepi.sql index a4b0dac23..08f193a95 100644 --- a/sql/data_gepi.sql +++ b/sql/data_gepi.sql @@ -304,6 +304,9 @@ INSERT INTO ct_types_documents VALUES (55, 'Présentation OpenDocument', 'odp', INSERT INTO ct_types_documents VALUES (56, 'Dessin OpenDocument', 'odg', 'oui'); INSERT INTO ct_types_documents VALUES (57, 'Base de données OpenDocument', 'odb', 'oui'); INSERT INTO ct_types_documents VALUES (58, 'GeoGebra', 'ggb', 'oui'); +INSERT INTO ct_types_documents VALUES (59, 'Word', 'docx', 'oui'); +INSERT INTO ct_types_documents VALUES (60, 'PowerPoint', 'pptx', 'oui'); +INSERT INTO ct_types_documents VALUES (61, 'Excel', 'xlsx', 'oui'); INSERT INTO edt_creneaux VALUES (1, 'M1', '08:00:00', '08:55:00', '1', 'cours', ''); INSERT INTO edt_creneaux VALUES (2, 'M2', '08:55:00', '09:50:00', '1', 'cours', ''); INSERT INTO edt_creneaux VALUES (3, 'M3', '10:05:00', '11:00:00', '1', 'cours', ''); From 59aa37b083a567f9843c3c0b5a38615f80bfc9d5 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Wed, 9 Oct 2013 17:40:54 +0200 Subject: [PATCH 1144/1150] =?UTF-8?q?Ajout=20d'une=20infobulle=20d'explict?= =?UTF-8?q?ion=20sur=20l'=C3=A9tablissement=20d'origine.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- responsables/maj_import3.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/responsables/maj_import3.php b/responsables/maj_import3.php index 10096dba8..50c323fff 100644 --- a/responsables/maj_import3.php +++ b/responsables/maj_import3.php @@ -478,7 +478,14 @@ function test_stop_suite_bis(num,cpt_saut_lignes){ $alert_diff_etab_origine=getSettingValue('alert_diff_etab_origine'); echo "
    \n"; echo "

    \n"; - echo "Établissement d'origine :\n"; + + $titre_infobulle="Établissement d'origine"; + $texte_infobulle="Sconet fournit l'établissement \"de l'année précédente\".
    +S'il s'agit de l'établissement courant, l'information est ignorée ;
    +sinon, Gepi le considère comme \"établissement d'origine\"."; + $tabdiv_infobulle[]=creer_div_infobulle('explication_etab_origine',$titre_infobulle,"",$texte_infobulle,"",30,0,'y','y','n','n'); + + echo "Établissement d'origine : \"Explication\n"; echo "
    \n"; echo " Date: Thu, 10 Oct 2013 21:15:15 +0200 Subject: [PATCH 1145/1150] Correction des dates dans les tests unitaires --- test/testsuite/README | 183 +++++++++ .../base/AbsenceAgregationDecompteTest.php | 142 +++---- .../orm/base/AbsenceEleveNotificationTest.php | 2 +- .../orm/base/AbsenceEleveSaisieTest.php | 338 ++++++++-------- .../orm/base/AbsenceEleveTraitementTest.php | 36 +- test/testsuite/orm/base/ClasseTest.php | 20 +- test/testsuite/orm/base/EleveTest.php | 360 +++++++++--------- .../orm/base/JTraitementSaisieTest.php | 12 +- test/testsuite/orm/base/PeriodeNoteTest.php | 8 +- test/tools/helpers/orm/GepiDataPopulator.php | 262 ++++++------- 10 files changed, 773 insertions(+), 590 deletions(-) create mode 100644 test/testsuite/README diff --git a/test/testsuite/README b/test/testsuite/README new file mode 100644 index 000000000..c4d31eb42 --- /dev/null +++ b/test/testsuite/README @@ -0,0 +1,183 @@ +Pour que les tests fonctionnent, les dates d'absences doivent être inférieure à 3 ans +Pour que les tests fonctionnent, les dates d'absences doivent être inférieure à la date actuelle + + +***************** +GepiDataPopulator +***************** +2010-12-20 → 2013-12-23 → 2012-12-24 +2010-12-01 → 2013-12-01 → 2012-12-01 +2011-03-01 → 2014-03-01 → 2013-03-01 +2011-07-01 → 2014-07-01 → 2013-07-01 + +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 +dimanche 2010-10-03 → 2013-10-06 → 2012-10-07 +lundi 2010-10-04 → 2013-10-07 → 2012-10-08 +mardi 2010-10-05 → 2013-10-08 → 2012-10-09 +mercredi 2010-10-06 → 2013-10-09 → 2012-10-10 +jeudi 2010-10-07 → 2013-10-10 → 2012-10-11 +vendredi 2010-10-08 → 2013-10-11 → 2012-10-12 +samedi 2010-10-09 → 2013-10-12 → 2012-10-13 +dimanche 2010-10-10 → 2013-10-13 → 2012-10-14 +lundi 2010-10-11 → 2013-10-14 → 2012-10-15 +mardi 2010-10-12 → 2013-10-15 → 2012-10-16 +mercredi 2010-10-13 → 2013-10-16 → 2012-10-17 +jeudi 2010-10-14 → 2013-10-17 → 2012-10-18 +vendredi 2010-10-15 → 2013-10-18 → 2012-10-19 +samedi 2010-10-16 → 2013-10-19 → 2012-10-20 +dimanche 2010-10-17 → 2013-10-20 → 2012-10-21 +lundi 2010-10-18 → 2013-10-21 → 2012-10-22 +mardi 2010-10-19 → 2013-10-22 → 2012-10-23 +jeudi 2010-10-28 → 2013-10-31 → 2012-11-01 +mardi 2010-11-02 → 2013-11-05 → 2012-11-06 +lundi 2011-05-30 → 2014-05-26 → 2013-05-27 +mardi 2011-05-31 → 2014-05-27 → 2013-05-28 +mercredi 2011-06-01 → 2014-05-28 → 2013-05-29 +jeudi 2011-06-02 → 2014-05-29 → 2013-05-30 +vendredi 2011-06-03 → 2014-05-30 → 2013-05-31 +lundi 2011-06-06 → 2014-06-02 → 2013-06-03 +mardi 2011-06-07 → 2014-06-03 → 2013-06-04 +mercredi 2011-06-08 → 2014-06-04 → 2013-06-05 +jeudi 2011-06-09 → 2014-06-05 → 2013-06-06 +vendredi 2011-06-10 → 2014-06-06 → 2013-06-07 +samedi 2011-06-11 → 2014-06-07 → 2013-06-08 +dimanche 2011-06-12 → 2014-06-08 → 2013-06-09 +lundi 2011-06-13 → 2014-06-09 → 2013-06-10 + +*************** +PeriodeNoteTest +*************** +2010-08-31 → 2013-08-31 → 2012-08-31 +2010-12-01 → 2013-12-01 → 2012-12-01 +2011-03-02 → 2014-03-02 → 2013-03-02 +2011-07-01 → 2014-07-01 → 2013-07-01 + +********************* +JTraitementSaisieTest +********************* +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +dimanche 2010-10-10 → 2013-10-13 → 2012-10-14 + +********* +EleveTest +********* +2010-08-30 → 2013-08-30 → 2012-08-30 +2010-09-01 → 2013-09-01 → 2012-09-01 +2010-09-02 → 2013-09-02 → 2012-09-02 + +jeudi 2010-09-30 → 2013-10-03 → 2012-10-04 +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 +dimanche 2010-10-03 → 2013-10-06 → 2012-10-07 +lundi 2010-10-04 → 2013-10-07 → 2012-10-08 +mardi 2010-10-05 → 2013-10-08 → 2012-10-09 +mercredi 2010-10-06 → 2013-10-09 → 2012-10-10 +jeudi 2010-10-07 → 2013-10-10 → 2012-10-11 +samedi 2010-10-09 → 2013-10-12 → 2012-10-13 +dimanche 2010-10-10 → 2013-10-13 → 2012-10-14 +mardi 2010-10-12 → 2013-10-15 → 2012-10-16 +mercredi 2010-10-13 → 2013-10-16 → 2012-10-17 +jeudi 2010-10-14 → 2013-10-17 → 2012-10-18 +vendredi 2010-10-15 → 2013-10-18 → 2012-10-19 +samedi 2010-10-16 → 2013-10-19 → 2012-10-20 +dimanche 2010-10-17 → 2013-10-20 → 2012-10-21 +lundi 2010-10-18 → 2013-10-21 → 2012-10-22 +mardi 2010-10-19 → 2013-10-22 → 2012-10-23 +mercredi 2010-10-20 → 2013-10-23 → 2012-10-24 +jeudi 2010-10-21 → 2013-10-24 → 2012-10-25 +dimanche 2010-10-24 → 2013-10-27 → 2012-10-28 +samedi 2010-10-30 → 2013-11-03 → 2012-11-04 +dimanche 2010-10-31 → 2013-11-04 → 2012-11-05 +dimanche 2010-11-07 → 2013-11-10 → 2012-11-11 +jeudi 2010-12-02 → 2013-12-05 → 2012-12-06 +dimanche 2010-12-05 → 2013-12-08 → 2012-12-09 +lundi 2011-05-30 → 2014-05-26 → 2013-05-27 + 30-05-2011 → 26-05-2014 → 27-05-2013 +mardi 2011-05-31 → 2014-05-27 → 2013-05-28 +mercredi 2011-06-01 → 2014-05-28 → 2013-05-29 +jeudi 2011-06-02 → 2014-05-29 → 2013-05-30 +vendredi 2011-06-03 → 2014-05-30 → 2013-05-31 +lundi 2011-06-06 → 2014-06-02 → 2013-06-03 +mardi 2011-06-07 → 2014-06-03 → 2013-06-04 +mercredi 2011-06-08 → 2014-06-04 → 2013-06-05 +jeudi 2011-06-09 → 2014-06-05 → 2013-06-06 +vendredi 2011-06-10 → 2014-06-06 → 2013-06-07 + +**************************** +AbsenceEleveNotificationTest +**************************** +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 + +********************** +AbsenceEleveSaisieTest +********************** +mardi 2010-09-14 → 2013-09-17 → 2012-09-18 +mercredi 2010-09-15 → 2013-09-18 → 2012-09-19 +jeudi 2010-09-16 → 2013-09-19 → 2012-09-20 +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 +dimanche 2010-10-03 → 2013-10-06 → 2012-10-07 +lundi 2010-10-04 → 2013-10-07 → 2012-10-08 +mardi 2010-10-05 → 2013-10-08 → 2012-10-09 +mercredi 2010-10-06 → 2013-10-09 → 2012-10-10 +jeudi 2010-10-07 → 2013-10-10 → 2012-10-11 +vendredi 2010-10-08 → 2013-10-11 → 2012-10-12 +samedi 2010-10-09 → 2013-10-12 → 2012-10-13 +dimanche 2010-10-10 → 2013-10-13 → 2012-10-14 +lundi 2010-10-11 → 2013-10-14 → 2012-10-15 +mardi 2010-10-12 → 2013-10-15 → 2012-10-16 +mercredi 2010-10-13 → 2013-10-16 → 2012-10-17 +vendredi 2010-10-15 → 2013-10-18 → 2012-10-19 +lundi 2010-10-18 → 2013-10-21 → 2012-10-22 +mardi 2011-05-31 → 2014-05-27 → 2013-05-28 +mercredi 2011-06-01 → 2014-05-28 → 2013-05-29 +jeudi 2011-06-02 → 2014-05-29 → 2013-05-30 +vendredi 2011-06-03 → 2014-05-30 → 2013-05-31 +mardi 2011-06-07 → 2014-06-03 → 2013-06-04 +mercredi 2011-06-08 → 2014-06-04 → 2013-06-05 +jeudi 2011-06-09 → 2014-06-05 → 2013-06-06 +samedi 2011-06-11 → 2014-06-07 → 2013-06-08 +dimanche 2011-06-12 → 2014-06-08 → 2013-06-09 +lundi 2011-06-13 → 2014-06-09 → 2013-06-10 + +************************** +AbsenceEleveTraitementTest +************************** +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 +mardi 2010-10-05 → 2013-10-08 → 2012-10-09 +jeudi 2010-10-14 → 2013-10-17 → 2012-10-18 +dimanche 2010-10-17 → 2013-10-20 → 2012-10-21 + +***************************** +AbsenceAgregationDecompteTest +***************************** +vendredi 2010-10-01 → 2013-10-04 → 2012-10-05 +samedi 2010-10-02 → 2013-10-05 → 2012-10-06 +dimanche 2010-10-03 → 2013-10-06 → 2012-10-07 +mardi 2010-10-05 → 2013-10-08 → 2012-10-09 +mercredi 2010-10-06 → 2013-10-09 → 2012-10-10 +dimanche 2010-10-10 → 2013-10-13 → 2012-10-14 +samedi 2010-10-16 → 2013-10-19 → 2012-10-20 +mardi 2010-10-19 → 2013-10-22 → 2012-10-23 +mercredi 2010-10-20 → 2013-10-23 → 2012-10-24 +lundi 2011-06-06 → 2014-06-02 → 2013-06-03 + +****************** +testGetPeriodeNote +****************** +2010 → 2013 → +2011 → 2014 → + +********** +ClasseTest +********** +2009-12-01 → 2011-12-01 + → 2013-10-01 → 2012-10-02 + → 2013-12-10 → 2012-12-11 + → 2014-05-10 → 2013-05-11 + + + + diff --git a/test/testsuite/orm/base/AbsenceAgregationDecompteTest.php b/test/testsuite/orm/base/AbsenceAgregationDecompteTest.php index d774a648f..a7ac77449 100644 --- a/test/testsuite/orm/base/AbsenceAgregationDecompteTest.php +++ b/test/testsuite/orm/base/AbsenceAgregationDecompteTest.php @@ -25,117 +25,117 @@ public function testPeerCheckSynchroAbsenceAgregationTable() //on va tester sur les date (dates plus large que la mise à jour, il va manquer des demi-journées AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); } - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-06 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-06 23:59:59'), 1)); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-06 23:59:59'), 10)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-10 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-10 23:59:59'), 1)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-10 23:59:59'), 10)); //on va supprimer les marqueurs de calcul AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59')); } AbsenceAgregationDecompteQuery::create()->filterByMarqueurFinMiseAJour()->delete(); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 1)); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 1)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 10)); //on va modifier une saisie à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId(); + $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId(); mysql_query("update a_saisies set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$saisie_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-05 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 1)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'), 10)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-09 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 1)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'), 10)); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); //on va modifier à la main une saisie, un traitement et une version de saisie AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-16 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-20 23:59:59')); } sleep(1); - $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst()->getId(); + $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst()->getId(); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies set updated_at = now()-10 where id = ".$saisie_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies set deleted_at = now() where id = ".$saisie_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies set deleted_at = now()-10 where id = ".$saisie_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); - $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst())->findOne()->getId(); + $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst())->findOne()->getId(); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_traitements set updated_at = now()-10 where id = ".$traitement_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_traitements set deleted_at = now() where id = ".$traitement_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_traitements set deleted_at = now()-10 where id = ".$traitement_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); - $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst())->findOne()->getId(); + $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst())->findOne()->getId(); mysql_query("update a_saisies_version set updated_at = now() where id = ".$saisie_version_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies_version set updated_at = now()-10 where id = ".$saisie_version_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies_version set deleted_at = now() where id = ".$saisie_version_id); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies_version set deleted_at = now()-10 where id = ".$saisie_version_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); //on test sur un marqueur d'appel effectué, ça ne doit pas avoir d'incidence sur la table d'agrégation - $saisie_id = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-10 09:00:00')->findOne()->getId(); + $saisie_id = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-14 09:00:00')->findOne()->getId(); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies set updated_at = now()-10 where id = ".$saisie_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); - $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie(AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-10 09:00:00')->findOne())->findOne()->getId(); + $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie(AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-14 09:00:00')->findOne())->findOne()->getId(); mysql_query("update a_saisies_version set updated_at = now() where id = ".$saisie_version_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),10)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),10)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_saisies_version set updated_at = now()-10 where id = ".$saisie_version_id); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); - $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2010-10-16 08:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2012-10-20 08:00:00')->findOne(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement->getId()); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-16 23:59:59'),0)); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-16 23:59:59'),10)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-20 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-20 23:59:59'),10)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); mysql_query("update a_traitements set updated_at = now()-10 where id = ".$traitement->getId()); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-16 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-20 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); @@ -154,30 +154,30 @@ public function testPeerUpdateAgregationTable() //on va modifier à la main une saisie AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59')); } sleep(1); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $saisie_id = $saisie->getId(); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); $this->assertFalse(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); $col = new PropelCollection(); $col->append($saisie); AbsenceAgregationDecomptePeer::updateAgregationTable($col); - $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'),0)); + $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'),0)); $this->assertTrue(AbsenceAgregationDecomptePeer::checkSynchroAbsenceAgregationTable(null, null, 0)); AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59')); } sleep(1); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $saisie_id = $saisie->getId(); - mysql_query("update a_saisies set fin_abs = '2010-10-01 08:10:00' where id = ".$saisie_id);//ça devient un retard - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + mysql_query("update a_saisies set fin_abs = '2012-10-05 08:10:00' where id = ".$saisie_id);//ça devient un retard + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $this->assertEquals(0,$decompte->getRetards()); $saisie->getEleve()->clearAllReferences(); @@ -186,17 +186,17 @@ public function testPeerUpdateAgregationTable() $col = new PropelCollection(); $col->append($saisie); AbsenceAgregationDecomptePeer::updateAgregationTable($col); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $this->assertEquals(1,$decompte->getRetards()); - $saisie->setFinAbs('2010-10-01 09:00:00'); + $saisie->setFinAbs('2012-10-05 09:00:00'); $saisie->save(); AbsenceAgregationDecompteQuery::create()->deleteAll(); - AbsenceAgregationDecomptePeer::updateAgregationTable(AbsenceEleveSaisieQuery::create()->filterByPlageTemps(new DateTime('2010-10-01'), new DateTime('2010-10-10'))->find()); - $eleve_col = EleveQuery::create()->useAbsenceEleveSaisieQuery()->filterByPlageTemps(new DateTime('2010-10-01'), new DateTime('2010-10-10'))->endUse()->find(); + AbsenceAgregationDecomptePeer::updateAgregationTable(AbsenceEleveSaisieQuery::create()->filterByPlageTemps(new DateTime('2012-10-05'), new DateTime('2012-10-14'))->find()); + $eleve_col = EleveQuery::create()->useAbsenceEleveSaisieQuery()->filterByPlageTemps(new DateTime('2012-10-05'), new DateTime('2012-10-14'))->endUse()->find(); foreach($eleve_col as $eleve) { - $this->assertTrue($eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-05'))); + $this->assertTrue($eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-09'))); } } @@ -204,20 +204,20 @@ public function testQueryFilterByDateIntervalle() { AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-20 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-24 23:59:59')); } $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $this->assertEquals(4,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2010-10-01'),new DateTime('2010-10-03'))->count()); - $this->assertEquals(5,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2010-10-01'),new DateTime('2010-10-03 12:00:00'))->count()); - $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2010-10-19 08:00:00'),new DateTime('2010-10-19 10:00:00'))->count()); - $date_debut=new DateTime('2010-10-19 14:00:00'); - $date_fin=new DateTime('2010-10-19 15:00:00'); + $this->assertEquals(4,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2012-10-05'),new DateTime('2012-10-07'))->count()); + $this->assertEquals(5,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2012-10-05'),new DateTime('2012-10-07 12:00:00'))->count()); + $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2012-10-23 08:00:00'),new DateTime('2012-10-23 10:00:00'))->count()); + $date_debut=new DateTime('2012-10-23 14:00:00'); + $date_fin=new DateTime('2012-10-23 15:00:00'); saveSetting('abs2_heure_demi_journee','12:30'); $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle($date_debut,$date_fin)->count()); $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle($date_debut,$date_fin)->count()); saveSetting('abs2_heure_demi_journee','11:50'); - $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2010-10-19 14:00:00'),new DateTime('2010-10-19 15:00:00'))->count()); - $this->assertEquals(2,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2010-10-19 08:00:00'),new DateTime('2010-10-19 16:00:00'))->count()); + $this->assertEquals(1,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2012-10-23 14:00:00'),new DateTime('2012-10-23 15:00:00'))->count()); + $this->assertEquals(2,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateIntervalle(new DateTime('2012-10-23 08:00:00'),new DateTime('2012-10-23 16:00:00'))->count()); } public function testQueryCountRetards() @@ -226,9 +226,9 @@ public function testQueryCountRetards() foreach (EleveQuery::create()->find() as $eleve) { $eleve->updateAbsenceAgregationTable(); } - $this->assertEquals(6,AbsenceAgregationDecompteQuery::create()->filterByDateIntervalle(new DateTime('2010-10-01 00:00:00'),new DateTime('2011-06-06 23:59:59'))->countRetards()); + $this->assertEquals(6,AbsenceAgregationDecompteQuery::create()->filterByDateIntervalle(new DateTime('2012-10-05 00:00:00'),new DateTime('2013-06-03 23:59:59'))->countRetards()); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $this->assertEquals(6,AbsenceAgregationDecompteQuery::create()->filterByDateIntervalle(new DateTime('2010-10-01 00:00:00'),new DateTime('2011-06-06 23:59:59'))->filterByEleve($florence_eleve)->countRetards()); + $this->assertEquals(6,AbsenceAgregationDecompteQuery::create()->filterByDateIntervalle(new DateTime('2012-10-05 00:00:00'),new DateTime('2013-06-03 23:59:59'))->filterByEleve($florence_eleve)->countRetards()); } } diff --git a/test/testsuite/orm/base/AbsenceEleveNotificationTest.php b/test/testsuite/orm/base/AbsenceEleveNotificationTest.php index 2755e478d..8d6c1c854 100644 --- a/test/testsuite/orm/base/AbsenceEleveNotificationTest.php +++ b/test/testsuite/orm/base/AbsenceEleveNotificationTest.php @@ -17,7 +17,7 @@ protected function setUp() public function testPreremplirResponsables() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $notification = $traitement->getAbsenceEleveNotifications()->getFirst(); $this->assertEquals($notification->getEmail(), null); diff --git a/test/testsuite/orm/base/AbsenceEleveSaisieTest.php b/test/testsuite/orm/base/AbsenceEleveSaisieTest.php index e35410f08..717f0e575 100644 --- a/test/testsuite/orm/base/AbsenceEleveSaisieTest.php +++ b/test/testsuite/orm/base/AbsenceEleveSaisieTest.php @@ -35,10 +35,10 @@ public function testSave() $saisie = new AbsenceEleveSaisie(); $saisie->setEleve($florence_eleve); $saisie->setUtilisateurProfessionnel($lebesgue_prof); - $saisie->setDebutAbs('2010-09-14 08:00:00'); - $saisie->setFinAbs('2010-09-14 09:00:00'); + $saisie->setDebutAbs('2012-09-18 08:00:00'); + $saisie->setFinAbs('2012-09-18 09:00:00'); $saisie->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-09-14')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-09-18')->findOne(); $this->assertTrue($decompte == null || $decompte->getManquementObligationPresence() == false); AbsenceEleveSaisiePeer::enableAgregation(); @@ -47,14 +47,14 @@ public function testSave() $saisie = new AbsenceEleveSaisie(); $saisie->setEleve($florence_eleve); $saisie->setUtilisateurProfessionnel($lebesgue_prof); - $saisie->setDebutAbs('2010-09-15 08:00:00'); - $saisie->setFinAbs('2010-09-15 09:00:00'); + $saisie->setDebutAbs('2012-09-19 08:00:00'); + $saisie->setFinAbs('2012-09-19 09:00:00'); $saisie->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-09-15')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-09-19')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); - $saisie->setFinAbs('2010-09-15 08:10:00'); + $saisie->setFinAbs('2012-09-19 08:10:00'); $saisie->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-09-15')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-09-19')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); AbsenceEleveSaisiePeer::disableAgregation(); } @@ -62,39 +62,39 @@ public function testSave() public function testHasModeInterface() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->hasModeInterface()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->hasModeInterface()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertTrue($saisie->hasModeInterface()); } public function testHasModeInterfaceDiscipline() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->hasModeInterfaceDiscipline()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->hasModeInterfaceDiscipline()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertTrue($saisie->hasModeInterfaceDiscipline()); } public function testGetTraitee() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getTraitee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getTraitee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertTrue($saisie->getTraitee()); } @@ -103,19 +103,19 @@ public function testHasLieuSaisie() $id_lieu = AbsenceEleveLieuQuery::create()->filterByNom("Etablissement")->findOne()->getId(); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertTrue($saisie->hasLieuSaisie(null)); $this->assertFalse($saisie->hasLieuSaisie($id_lieu)); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->hasLieuSaisie(null)); $this->assertFalse($saisie->hasLieuSaisie($id_lieu)); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->hasLieuSaisie(null)); $this->assertTrue($saisie->hasLieuSaisie($id_lieu)); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->hasLieuSaisie(null)); $this->assertTrue($saisie->hasLieuSaisie($id_lieu)); } @@ -124,16 +124,16 @@ public function testHasTypeLikeErreurSaisie() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->hasTypeLikeErreurSaisie()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->hasTypeLikeErreurSaisie()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->hasTypeLikeErreurSaisie()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->hasTypeLikeErreurSaisie()); } @@ -142,7 +142,7 @@ public function testGetManquementObligationPresence() $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); saveSetting('abs2_saisie_par_defaut_sans_manquement','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresence()); saveSetting('abs2_saisie_par_defaut_sans_manquement','y'); $saisie->clearAllReferences(); @@ -150,16 +150,16 @@ public function testGetManquementObligationPresence() saveSetting('abs2_saisie_par_defaut_sans_manquement','n'); $saisie->clearAllReferences(); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresence()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getRetard()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresence()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresence()); } @@ -169,19 +169,19 @@ public function testGetRetard() saveSetting('abs2_retard_critere_duree',30); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getRetard()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->getRetard()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getRetard()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getRetard()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); saveSetting('abs2_retard_critere_duree',30); $this->assertTrue($saisie->getRetard()); $saisie->clearAllReferences(); @@ -189,7 +189,7 @@ public function testGetRetard() $this->assertFalse($saisie->getRetard()); saveSetting('abs2_retard_critere_duree',30); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst();//sur cette saisie on a plusieurs traitement, on privilégie le retard + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst();//sur cette saisie on a plusieurs traitement, on privilégie le retard $this->assertTrue($saisie->getRetard()); } @@ -198,7 +198,7 @@ public function testGetSousResponsabiliteEtablissement() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); saveSetting('abs2_saisie_par_defaut_sous_responsabilite_etab','n'); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); saveSetting('abs2_saisie_par_defaut_sous_responsabilite_etab','y'); @@ -206,15 +206,15 @@ public function testGetSousResponsabiliteEtablissement() $this->assertTrue($saisie->getSousResponsabiliteEtablissement()); saveSetting('abs2_saisie_par_defaut_sous_responsabilite_etab','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $saisie->clearAllReferences(); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $saisie->clearAllReferences(); $this->assertTrue($saisie->getSousResponsabiliteEtablissement()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $saisie->clearAllReferences(); saveSetting('abs2_saisie_multi_type_sous_responsabilite_etab','n'); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); @@ -223,15 +223,15 @@ public function testGetSousResponsabiliteEtablissement() $this->assertTrue($saisie->getSousResponsabiliteEtablissement()); saveSetting('abs2_saisie_multi_type_sous_responsabilite_etab','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $saisie->clearAllReferences(); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $saisie->clearAllReferences(); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $saisie->clearAllReferences(); $this->assertFalse($saisie->getSousResponsabiliteEtablissement()); } @@ -240,25 +240,25 @@ public function testGetManquementObligationPresenceSpecifie_NON_PRECISE() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-11')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceSpecifie_NON_PRECISE()); } @@ -267,29 +267,29 @@ public function testGetJustifiee() saveSetting('abs2_saisie_multi_type_non_justifiee','n'); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getJustifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getJustifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getJustifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getJustifiee()); saveSetting('abs2_saisie_multi_type_non_justifiee','y'); $saisie->clearAllReferences(); $this->assertFalse($saisie->getJustifiee()); saveSetting('abs2_saisie_multi_type_non_justifiee','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertTrue($saisie->getJustifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getJustifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getJustifiee()); } @@ -297,25 +297,25 @@ public function testGetNotifiee() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertFalse($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotifiee()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotifiee()); } @@ -323,25 +323,25 @@ public function testGetNotificationEnCours() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotificationEnCours()); } @@ -349,28 +349,28 @@ public function testGetNotifieeEnglobante() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotifieeEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-13 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-06-10 08:10:00')->findOne(); $this->assertTrue($saisie->getNotifieeEnglobante()); } @@ -379,28 +379,28 @@ public function testGetNotificationEnCoursEnglobante() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getNotificationEnCoursEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-09 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-06-06 08:10:00')->findOne(); $this->assertTrue($saisie->getNotificationEnCoursEnglobante()); } @@ -408,7 +408,7 @@ public function testGetAbsenceEleveTraitements() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertEquals(0,$saisie->getAbsenceEleveTraitements()->count()); $traitement = new AbsenceEleveTraitement(); $traitement->save(); @@ -416,22 +416,22 @@ public function testGetAbsenceEleveTraitements() $this->assertEquals(1,$saisie->getAbsenceEleveTraitements()->count()); $traitement->delete(); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertEquals(1,$saisie->getAbsenceEleveTraitements()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertEquals(1,$saisie->getAbsenceEleveTraitements()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertEquals(3,$saisie->getAbsenceEleveTraitements()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertEquals(1,$saisie->getAbsenceEleveTraitements()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertEquals(3,$saisie->getAbsenceEleveTraitements()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-11')->getFirst(); $this->assertEquals(1,$saisie->getAbsenceEleveTraitements()->count()); } @@ -440,25 +440,25 @@ public function testGetSaisiesContradictoiresManquementObligation() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertEquals(0,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-08')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-12')->getFirst(); $this->assertEquals(0,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-09')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-13')->getFirst(); $this->assertEquals(1,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-10')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-14')->getFirst(); $this->assertEquals(1,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-11')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-15')->getFirst(); $this->assertEquals(1,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-12')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-16')->getFirst(); $this->assertEquals(1,$saisie->getSaisiesContradictoiresManquementObligation()->count()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-13')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-17')->getFirst(); $this->assertEquals(0,$saisie->getSaisiesContradictoiresManquementObligation()->count()); } @@ -466,25 +466,25 @@ public function testIsSaisiesContradictoiresManquementObligation() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-08')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-12')->getFirst(); $this->assertFalse($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-09')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-13')->getFirst(); $this->assertTrue($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-10')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-14')->getFirst(); $this->assertTrue($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-11')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-15')->getFirst(); $this->assertTrue($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-12')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-16')->getFirst(); $this->assertTrue($saisie->isSaisiesContradictoiresManquementObligation()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-13')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-17')->getFirst(); $this->assertFalse($saisie->isSaisiesContradictoiresManquementObligation()); } @@ -492,15 +492,15 @@ public function testDelete() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); //on va vérifier que le delete change bien le update_ad $old_updated_at = $saisie->getUpdatedAt('U'); sleep(1); $saisie->delete(); $this->assertGreaterThan($old_updated_at, $saisie->getUpdatedAt('U'), 'le delete doit changer le updated_ad'); - $saisie = AbsenceEleveSaisieQuery::create()->filterByEleve($florence_eleve)->filterByDebutAbs('2010-10-01 08:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByEleve($florence_eleve)->filterByDebutAbs('2012-10-05 08:00:00')->findOne(); $this->assertNull($saisie); - $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->filterByEleve($florence_eleve)->filterByDebutAbs('2010-10-01 08:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->includeDeleted()->filterByEleve($florence_eleve)->filterByDebutAbs('2012-10-05 08:00:00')->findOne(); $this->assertNotNull($saisie); AbsenceEleveSaisiePeer::enableAgregation(); @@ -509,14 +509,14 @@ public function testDelete() $saisie = new AbsenceEleveSaisie(); $saisie->setEleve($florence_eleve); $saisie->setUtilisateurProfessionnel($lebesgue_prof); - $saisie->setDebutAbs('2010-09-16 08:00:00'); - $saisie->setFinAbs('2010-09-16 09:00:00'); + $saisie->setDebutAbs('2012-09-20 08:00:00'); + $saisie->setFinAbs('2012-09-20 09:00:00'); $saisie->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-09-16')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-09-20')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $saisie->getEleve()->clearAllReferences(); $saisie->delete(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-09-16')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-09-20')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); } @@ -524,9 +524,9 @@ public function testToVersion() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); //$saisie = new AbsenceEleveSaisie(); - $saisie->setFinAbs('2010-10-02 11:00'); + $saisie->setFinAbs('2012-10-06 11:00'); $saisie->save(); $old_updated_at = $saisie->getUpdatedAt('U'); sleep(1); @@ -538,24 +538,24 @@ public function testUpdateSynchroAbsenceAgregationTable() { AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59')); } sleep(1); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $saisie_id = $saisie->getId(); - mysql_query("update a_saisies set fin_abs = '2010-10-01 08:10:00' where id = ".$saisie_id);//ça devient un retard - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + mysql_query("update a_saisies set fin_abs = '2012-10-05 08:10:00' where id = ".$saisie_id);//ça devient un retard + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $this->assertEquals(0,$decompte->getRetards()); $saisie->reload(); $saisie->clearAllReferences(); $saisie->getEleve()->clearAllReferences(); $saisie->updateSynchroAbsenceAgregationTable();//c'est mis à jour - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $this->assertEquals(1,$decompte->getRetards()); - $saisie->setFinAbs('2010-10-01 09:00:00'); + $saisie->setFinAbs('2012-10-05 09:00:00'); $saisie->save(); } @@ -563,21 +563,21 @@ public function testCheckAndUpdateSynchroAbsenceAgregationTable() { AbsenceAgregationDecompteQuery::create()->deleteAll(); foreach (EleveQuery::create()->find() as $eleve) { - $eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59')); + $eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59')); } sleep(1); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $saisie_id = $saisie->getId(); - mysql_query("update a_saisies set fin_abs = '2010-10-01 08:10:00' where id = ".$saisie_id);//ça devient un retard - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + mysql_query("update a_saisies set fin_abs = '2012-10-05 08:10:00' where id = ".$saisie_id);//ça devient un retard + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $this->assertEquals(0,$decompte->getRetards()); $saisie->reload(); $saisie->clearAllReferences(); $saisie->getEleve()->clearAllReferences(); $saisie->checkAndUpdateSynchroAbsenceAgregationTable();//ça n'est pas mis à jour car le test est true - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $this->assertEquals(0,$decompte->getRetards()); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); @@ -585,16 +585,16 @@ public function testCheckAndUpdateSynchroAbsenceAgregationTable() $saisie->clearAllReferences(); $saisie->getEleve()->clearAllReferences(); $saisie->checkAndUpdateSynchroAbsenceAgregationTable();//c'est mis à jour car le test est false - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $this->assertEquals(1,$decompte->getRetards()); - $saisie->setFinAbs('2010-10-01 09:00:00'); + $saisie->setFinAbs('2012-10-05 09:00:00'); $saisie->save(); } public function testgetAbsenceEleveSaisiesEnglobantes() { - $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2011-06-02 08:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2013-05-30 08:00:00')->findOne(); $saisie_englobante = $saisie->getAbsenceEleveSaisiesEnglobantes(); $this->assertEquals($saisie_englobante->count(),1); } @@ -604,36 +604,36 @@ public function testGetJustifieeEnglobante() saveSetting('abs2_saisie_multi_type_non_justifiee','n'); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getJustifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getJustifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getJustifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getJustifieeEnglobante()); saveSetting('abs2_saisie_multi_type_non_justifiee','y'); $saisie->clearAllReferences(); $this->assertFalse($saisie->getJustifieeEnglobante()); saveSetting('abs2_saisie_multi_type_non_justifiee','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertTrue($saisie->getJustifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getJustifieeEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertFalse($saisie->getJustifieeEnglobante()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-07'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-04'); $this->assertTrue($saisies->getCurrent()->getJustifieeEnglobante()); $this->assertTrue($saisies->getNext()->getJustifieeEnglobante()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-08'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-05'); $this->assertTrue($saisies->getCurrent()->getJustifieeEnglobante()); $this->assertTrue($saisies->getNext()->getJustifieeEnglobante()); @@ -646,48 +646,48 @@ public function testgetManquementObligationPresenceEnglobante() saveSetting('abs2_saisie_multi_type_sans_manquement','n'); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); saveSetting('abs2_saisie_multi_type_sans_manquement','y'); $saisie->clearAllReferences(); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceEnglobante()); saveSetting('abs2_saisie_multi_type_sans_manquement','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-07')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-11')->getFirst(); $this->assertFalse($saisie->getManquementObligationPresenceEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-01 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-05-29 08:10:00')->findOne(); $this->assertFalse($saisie->getManquementObligationPresenceEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2011-06-03 08:00:00')->find(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2013-05-31 08:00:00')->find(); $this->assertTrue($saisie->getFirst()->getManquementObligationPresenceEnglobante()); $this->assertTrue($saisie->getNext()->getManquementObligationPresenceEnglobante()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-07'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-04'); $this->assertTrue($saisies->getCurrent()->getManquementObligationPresenceEnglobante()); $this->assertTrue($saisies->getNext()->getManquementObligationPresenceEnglobante()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-08'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-05'); $this->assertTrue($saisies->getCurrent()->getManquementObligationPresenceEnglobante()); $this->assertTrue($saisies->getNext()->getManquementObligationPresenceEnglobante()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-11'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-08'); $this->assertTrue($saisies->getCurrent()->getManquementObligationPresenceEnglobante()); $this->assertTrue($saisies->getNext()->getManquementObligationPresenceEnglobante()); saveSetting('abs2_saisie_multi_type_sans_manquement','y'); @@ -695,7 +695,7 @@ public function testgetManquementObligationPresenceEnglobante() $this->assertFalse($saisies->getFirst()->getManquementObligationPresenceEnglobante()); saveSetting('abs2_saisie_multi_type_sans_manquement','n'); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-12 09:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-06-09 09:00:00')->findOne(); $this->assertTrue($saisie->getManquementObligationPresenceEnglobante()); saveSetting('abs2_saisie_multi_type_sans_manquement','y'); $saisie->clearAllReferences(); @@ -711,19 +711,19 @@ public function testRetardEnglobante() saveSetting('abs2_retard_critere_duree',30); $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07')->getFirst(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08')->getFirst(); $this->assertTrue($saisie->getRetardEnglobante()); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09')->getFirst(); saveSetting('abs2_retard_critere_duree',30); $this->assertTrue($saisie->getRetardEnglobante()); $saisie->clearAllReferences(); @@ -731,36 +731,36 @@ public function testRetardEnglobante() $this->assertFalse($saisie->getRetardEnglobante()); saveSetting('abs2_retard_critere_duree',30); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06')->getFirst();//sur cette saisie on a plusieurs traitement, on privilégie le retard + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10')->getFirst();//sur cette saisie on a plusieurs traitement, on privilégie le retard $this->assertTrue($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-08 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-12 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-10 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-14 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-11 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-15 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-15 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-19 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisies = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2010-10-18 09:00:00')->find(); + $saisies = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2012-10-22 09:00:00')->find(); $this->assertTrue($saisies->getFirst()->getRetardEnglobante()); $this->assertTrue($saisies->getNext()->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-05-31 09:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-05-28 09:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-01 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-05-29 08:10:00')->findOne(); $this->assertTrue($saisie->getRetard()); $this->assertFalse($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-09 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-06-06 08:10:00')->findOne(); $this->assertTrue($saisie->getRetardEnglobante()); - $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2011-06-13 08:10:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByFinAbs('2013-06-10 08:10:00')->findOne(); $this->assertFalse($saisie->getRetardEnglobante()); } diff --git a/test/testsuite/orm/base/AbsenceEleveTraitementTest.php b/test/testsuite/orm/base/AbsenceEleveTraitementTest.php index 43f31d8c1..2f4f7a72b 100644 --- a/test/testsuite/orm/base/AbsenceEleveTraitementTest.php +++ b/test/testsuite/orm/base/AbsenceEleveTraitementTest.php @@ -17,7 +17,7 @@ protected function setUp() public function testGetResponsablesInformationsSaisies() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $this->assertEquals('Mere',$traitement->getResponsablesInformationsSaisies()->getFirst()->getResponsableEleve()->getPrenom()); } @@ -26,12 +26,12 @@ public function testGetManquementObligationPresence() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $this->assertTrue($traitement->getManquementObligationPresence()); saveSetting('abs2_saisie_par_defaut_sans_manquement','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-14')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-18')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $this->assertTrue($traitement->getManquementObligationPresence()); saveSetting('abs2_saisie_par_defaut_sans_manquement','y'); @@ -44,12 +44,12 @@ public function testGetSousResponsabiliteEtablissement() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $this->assertFalse($traitement->getSousResponsabiliteEtablissement()); saveSetting('abs2_saisie_par_defaut_sous_responsabilite_etab','n'); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-14')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-18')->getFirst(); $traitement = $saisie->getAbsenceEleveTraitements()->getFirst(); $this->assertFalse($traitement->getSousResponsabiliteEtablissement()); saveSetting('abs2_saisie_par_defaut_sous_responsabilite_etab','y'); @@ -65,19 +65,19 @@ public function testQuery() saveSetting('abs2_saisie_par_defaut_sans_manquement','n'); $traitements = AbsenceEleveTraitementQuery::create()->filterByManquementObligationPresence(true) ->useJTraitementSaisieEleveQuery()->useAbsenceEleveSaisieQuery() - ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2010-10-01'),new DateTime('2010-10-17 23:59:59')) + ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2012-10-05'),new DateTime('2012-10-21 23:59:59')) ->endUse()->endUse()->find(); $this->assertEquals(12,$traitements->count()); $traitements = AbsenceEleveTraitementQuery::create()->filterByManquementObligationPresence(false) ->useJTraitementSaisieEleveQuery()->useAbsenceEleveSaisieQuery() - ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2010-10-01'),new DateTime('2010-10-17 23:59:59')) + ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2012-10-05'),new DateTime('2012-10-21 23:59:59')) ->endUse()->endUse()->find(); $this->assertEquals(7,$traitements->count()); saveSetting('abs2_saisie_par_defaut_sans_manquement','y'); $traitements = AbsenceEleveTraitementQuery::create()->filterByManquementObligationPresence(true) ->useJTraitementSaisieEleveQuery()->useAbsenceEleveSaisieQuery() - ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2010-10-01'),new DateTime('2010-10-17 23:59:59')) + ->filterByEleve($florence_eleve)->filterByPlageTemps(new DateTime('2012-10-05'),new DateTime('2012-10-21 23:59:59')) ->endUse()->endUse()->find(); $this->assertEquals(10,$traitements->count()); @@ -87,7 +87,7 @@ public function testQuery() public function testUpdateAgregationTable() { AbsenceAgregationDecompteQuery::create()->deleteAll(); - $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery()->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2010-10-17 14:00:00')->endUse()->endUse()->findOne(); + $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery()->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2012-10-21 14:00:00')->endUse()->endUse()->findOne(); $traitement->updateAgregationTable(); $this->assertEquals(3,AbsenceAgregationDecompteQuery::create()->count()); } @@ -99,7 +99,7 @@ public function testSave() $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie_3 = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie_3 = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_3); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Exclusion de cours')->findOne()); @@ -111,20 +111,20 @@ public function testSave() AbsenceEleveTraitementPeer::disableAgregation(); $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery() - ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2010-10-14 08:00:00') + ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2012-10-18 08:00:00') ->endUse()->endUse()->findOne(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-14')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-18')->findOne(); $this->assertTrue($decompte == null || $decompte->getManquementObligationPresence() == true); AbsenceEleveTraitementPeer::enableAgregation(); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-14')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-18')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Absence scolaire')->findOne()); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-14')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-18')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); AbsenceEleveTraitementPeer::disableAgregation(); } @@ -134,17 +134,17 @@ public function testDelete() $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery() - ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2010-10-14 08:00:00') + ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2012-10-18 08:00:00') ->endUse()->endUse()->findOne(); //on va vérifier que le delete change bien le update_ad $old_updated_at = $traitement->getUpdatedAt('U'); $traitement->delete(); $traitement = AbsenceEleveTraitementQuery::create()->useJTraitementSaisieEleveQuery() - ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2010-10-14 08:00:00') + ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2012-10-18 08:00:00') ->endUse()->endUse()->findOne(); $this->assertNull($traitement); $traitement = AbsenceEleveTraitementQuery::create()->includeDeleted()->useJTraitementSaisieEleveQuery() - ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2010-10-14 08:00:00') + ->useAbsenceEleveSaisieQuery()->filterByDebutAbs('2012-10-18 08:00:00') ->endUse()->endUse()->findOne(); $this->assertNotNull($traitement); $traitement->unDelete(); @@ -152,7 +152,7 @@ public function testDelete() AbsenceEleveTraitementPeer::enableAgregation(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-14')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-18')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $traitement->delete(); $decompte->reload(); diff --git a/test/testsuite/orm/base/ClasseTest.php b/test/testsuite/orm/base/ClasseTest.php index 74bbd8dc3..27ef1cdf4 100644 --- a/test/testsuite/orm/base/ClasseTest.php +++ b/test/testsuite/orm/base/ClasseTest.php @@ -22,19 +22,19 @@ public function testGetPeriodeNote() $this->assertEquals('1',$periode_col->getFirst()->getNumPeriode()); $this->assertEquals('2',$periode_col->getLast()->getNumPeriode()); - $periode = $sixieme_A->getPeriodeNote('2009-12-01'); - $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2009-12-01, il doit y avoir la derniére période par défaut'); + $periode = $sixieme_A->getPeriodeNote('2011-12-01'); + $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2011-12-01, il doit y avoir la derniére période par défaut'); - $periode = $sixieme_A->getPeriodeNote('2010-10-01'); - $this->assertNotNull($periode,'à la date du 2010-10-01, il ne doit y avoir la première période d assignée, donc on doit retourner null'); + $periode = $sixieme_A->getPeriodeNote('2012-10-02'); + $this->assertNotNull($periode,'à la date du 2012-10-02, il ne doit y avoir la première période d assignée, donc on doit retourner null'); $this->assertEquals('1',$periode->getNumPeriode()); - $periode = $sixieme_A->getPeriodeNote('2010-12-10'); - $this->assertNotNull($periode,'à la date du 2010-12-10, il ne doit y avoir la deuxième période d assignée, donc on doit retourner null'); + $periode = $sixieme_A->getPeriodeNote('2012-12-11'); + $this->assertNotNull($periode,'à la date du 2012-12-11, il ne doit y avoir la deuxième période d assignée, donc on doit retourner null'); $this->assertEquals('2',$periode->getNumPeriode()); - $periode = $sixieme_A->getPeriodeNote('2011-05-10'); - $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2009-12-01, il doit y avoir la derniére période par défaut'); + $periode = $sixieme_A->getPeriodeNote('2013-05-11'); + $this->assertEquals('2',$periode->getNumPeriode(),'à la date du 2013-05-11, il doit y avoir la derniére période par défaut'); //on rajoute une autre période, dont la date de fin est non renseignée $periode_6A_3 = new PeriodeNote(); @@ -44,8 +44,8 @@ public function testGetPeriodeNote() $periode_6A_3->setNomPeriode('troisième trimestre'); $periode_6A_3->save(); - $periode = $sixieme_A->getPeriodeNote('2011-05-10'); - $this->assertNotNull($periode,'à la date du 2011-05-10, il ne doit y avoir la troisième période d assignée meme si elle n est pas terminée'); + $periode = $sixieme_A->getPeriodeNote('2013-05-11'); + $this->assertNotNull($periode,'à la date du 2013-05-11, il ne doit y avoir la troisième période d assignée meme si elle n est pas terminée'); $this->assertEquals('3',$periode->getNumPeriode()); } diff --git a/test/testsuite/orm/base/EleveTest.php b/test/testsuite/orm/base/EleveTest.php index d227809eb..e2a0420c6 100644 --- a/test/testsuite/orm/base/EleveTest.php +++ b/test/testsuite/orm/base/EleveTest.php @@ -39,18 +39,18 @@ public function testGetPeriodeNote() $this->assertEquals('3',$periode_col->count()); $this->assertNull($florence_eleve->getPeriodeNoteOuverte(),'Après verrouillage la période ouverte de note de florence doit être nulle'); - $periode = $florence_eleve->getPeriodeNote(new DateTime('2010-10-01')); + $periode = $florence_eleve->getPeriodeNote(new DateTime('2012-10-05')); $this->assertNotNull($periode); $this->assertEquals('1',$periode->getNumPeriode()); - $periode = $florence_eleve->getPeriodeNote(new DateTime('2010-12-05')); + $periode = $florence_eleve->getPeriodeNote(new DateTime('2012-12-09')); $this->assertNotNull($periode); $this->assertEquals('2',$periode->getNumPeriode()); $michel_eleve = EleveQuery::create()->findOneByLogin('Michel Martin'); $this->assertEquals(0,$michel_eleve->getPeriodeNotes()->count()); - $periode = $michel_eleve->getPeriodeNote(new DateTime('2010-12-05')); + $periode = $michel_eleve->getPeriodeNote(new DateTime('2012-12-09')); $this->assertNull($periode); $periode = $michel_eleve->getPeriodeNote(); @@ -65,10 +65,10 @@ public function testGetClasse() $this->assertEquals('6ieme A',$classe->getNom()); $classe = $florence_eleve->getClasse(5);//on récupère la classe pour la période 1 - $this->assertNull($classe,'La classe de florence doit pas être nulle pour la période 5'); + $this->assertNull($classe,'La classe de florence doit être nulle pour la période 5'); - $classe = $florence_eleve->getClasse(new DateTime('2010-10-01')); - $this->assertNotNull($classe,'La classe de florence ne doit pas être nulle pour la date 2010-10-01 (période 1)'); + $classe = $florence_eleve->getClasse(new DateTime('2012-10-05')); + $this->assertNotNull($classe,'La classe de florence ne doit pas être nulle pour la date 2012-10-05 (période 1)'); $this->assertEquals('6ieme A',$classe->getNom()); $classe = $florence_eleve->getClasse(new DateTime('2005-01-01')); @@ -102,9 +102,9 @@ public function testGetGroupes() { $this->assertEquals(0,$groupes->count(),'Les groupes de florence sont vides pour la période 5'); $this->assertEquals(0,count($groupes->getPrimaryKeys())); - $groupes = $florence_eleve->getGroupes(new DateTime('2010-10-01')); + $groupes = $florence_eleve->getGroupes(new DateTime('2012-10-05')); $this->assertNotNull($groupes,'La collection des groupes ne doit jamais retourner null'); - $this->assertEquals(1,$groupes->count(),'La collection des groupes de florence doit comporter un groupe pour la date 2010-10-01 (période 1)'); + $this->assertEquals(1,$groupes->count(),'La collection des groupes de florence doit comporter un groupe pour la date 2012-10-05 (période 1)'); $groupes = $florence_eleve->getGroupes(new DateTime('2005-01-01')); $this->assertEquals(0,$groupes->count(),'La collection des groupes de florence doit être vide pour la date 2005-01-01'); @@ -119,22 +119,22 @@ public function testGetGroupes() { public function testGetAbsenceEleveSaisiesDuJour() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05'); $this->assertEquals(1,$saisies->count()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06'); $this->assertEquals(1,$saisies->count()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-03'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-07'); $this->assertEquals(1,$saisies->count()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-04'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-08'); $this->assertEquals(1,$saisies->count()); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-05'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-09'); $saisie = $saisies->getFirst(); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-06'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-10'); $this->assertEquals(1,$saisies->count()); } @@ -149,142 +149,142 @@ public function testIsEleveSorti() { public function testgetAbsenceEleveSaisiesParDate() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-01 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-05 23:59:59')); $this->assertEquals(1,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-14 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-18 23:59:59')); $this->assertEquals(17,$saisie_col->count()); $michel_eleve = EleveQuery::create()->findOneByLogin('Michel Martin'); $saisie_col = $michel_eleve->getAbsenceEleveSaisiesParDate(); $this->assertEquals(0,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-01 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-05 23:59:59')); $this->assertEquals(1,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-02 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-06 23:59:59')); $this->assertEquals(1,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$saisie_col->count()); $this->assertTrue($saisie_col->getFirst()->getManquementObligationPresence()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-24 00:00:00'),new DateTime('2010-11-7 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-28 00:00:00'),new DateTime('2012-11-11 23:59:59')); $this->assertEquals(1,$saisie_col->count()); $this->assertTrue($saisie_col->getFirst()->getManquementObligationPresence()); } public function testGetDemiJourneesAbsence() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-01 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-05 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); - $this->assertEquals("2010-10-01 00:00:00",$demi_j_col->getFirst()->format("Y-m-d H:i:s")); + $this->assertEquals("2012-10-05 00:00:00",$demi_j_col->getFirst()->format("Y-m-d H:i:s")); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-02 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-06 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$saisie_col->count()); $this->assertTrue($saisie_col->getFirst()->getManquementObligationPresence()); saveSetting('abs2_retard_critere_duree',20); $saisie_col->getFirst()->clearAllReferences(); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); saveSetting('abs2_retard_critere_duree',30); $saisie_col->getFirst()->clearAllReferences(); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-19 00:00:00'),new DateTime('2010-10-19 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-23 00:00:00'),new DateTime('2012-10-23 23:59:59')); $this->assertEquals(2,$demi_j_col->count()); - # Absence 20 du jeudi 28-10 au mardi 2-11-2011 1 seule saisie - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-24 00:00:00'),new DateTime('2010-11-7 23:59:59')); + # Absence 20 du jeudi 28-10 au mardi 2-11-2013 1 seule saisie + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-28 00:00:00'),new DateTime('2012-11-11 23:59:59')); $this->assertEquals(8,$demi_j_col->count()); # La première semaine on ne doit avoir que 4 demi-journées d'absences - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-24 00:00:00'),new DateTime('2010-10-30 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-28 00:00:00'),new DateTime('2012-11-04 23:59:59')); $this->assertEquals(4,$demi_j_col->count()); # période bornée -> 4 demi-journées # La deuxième semaine on ne doit avoir que 4 demi-journées d'absences - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-31 00:00:00'),new DateTime('2010-11-7 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2012-11-05 00:00:00'),new DateTime('2012-11-11 23:59:59')); $this->assertEquals(4,$demi_j_col->count()); #test de saisies englobant d'autres saisies - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-05-31 00:00:00'),new DateTime('2011-05-31 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-28 00:00:00'),new DateTime('2013-05-28 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-08-30 00:00:00'),new DateTime('2010-10-03 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-06 23:59:59'))->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-07 00:00:00'),new DateTime('2010-10-09 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-10 00:00:00'),new DateTime('2010-10-12 23:59:59'))->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-13 00:00:00'),new DateTime('2010-10-14 23:59:59'))->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-15 00:00:00'),new DateTime('2010-10-16 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-17 00:00:00'),new DateTime('2010-10-17 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-18 00:00:00'),new DateTime('2010-10-18 23:59:59'))->count()); - $this->assertEquals(2,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-19 00:00:00'),new DateTime('2010-10-20 23:59:59'))->count()); - $this->assertEquals(8,$florence_eleve->getDemiJourneesAbsence(new DateTime('2010-10-21 00:00:00'),new DateTime('2010-12-02 00:00:00'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-08-30 00:00:00'),new DateTime('2012-10-07 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-10 23:59:59'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-11 00:00:00'),new DateTime('2012-10-13 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-14 00:00:00'),new DateTime('2012-10-16 23:59:59'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-17 00:00:00'),new DateTime('2012-10-18 23:59:59'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-19 00:00:00'),new DateTime('2012-10-20 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-21 00:00:00'),new DateTime('2012-10-21 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-22 00:00:00'),new DateTime('2012-10-22 23:59:59'))->count()); + $this->assertEquals(2,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-23 00:00:00'),new DateTime('2012-10-24 23:59:59'))->count()); + $this->assertEquals(8,$florence_eleve->getDemiJourneesAbsence(new DateTime('2012-10-25 00:00:00'),new DateTime('2012-12-06 00:00:00'))->count()); $this->assertEquals(14,$florence_eleve->getDemiJourneesAbsenceParPeriode(1)->count()); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-02 00:00:00'),new DateTime('2011-06-02 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-30 00:00:00'),new DateTime('2013-05-30 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_sans_manquement','y'); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-03 00:00:00'),new DateTime('2011-06-03 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-31 00:00:00'),new DateTime('2013-05-31 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_sans_manquement','n'); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-03'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-05-31'); $saisies->getFirst()->clearAllReferences(); $saisies->getNext()->clearAllReferences(); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-03 00:00:00'),new DateTime('2011-06-03 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-31 00:00:00'),new DateTime('2013-05-31 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-06 00:00:00'),new DateTime('2011-06-06 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-06-03 00:00:00'),new DateTime('2013-06-03 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); } public function testGetDemiJourneesNonJustifieesAbsence() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-01 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-05 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); - $this->assertEquals("2010-10-01 00:00:00",$demi_j_col->getFirst()->format("Y-m-d H:i:s")); + $this->assertEquals("2012-10-05 00:00:00",$demi_j_col->getFirst()->format("Y-m-d H:i:s")); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-02 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-06 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2011-05-31 00:00:00'),new DateTime('2011-05-31 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2013-05-28 00:00:00'),new DateTime('2013-05-28 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-08-30 00:00:00'),new DateTime('2010-10-03 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-06 23:59:59'))->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-07 00:00:00'),new DateTime('2010-10-09 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-10 00:00:00'),new DateTime('2010-10-12 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-13 00:00:00'),new DateTime('2010-10-14 23:59:59'))->count()); - $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-15 00:00:00'),new DateTime('2010-10-16 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-17 00:00:00'),new DateTime('2010-10-17 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-18 00:00:00'),new DateTime('2010-10-18 23:59:59'))->count()); - $this->assertEquals(2,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-19 00:00:00'),new DateTime('2010-10-20 23:59:59'))->count()); - $this->assertEquals(8,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2010-10-21 00:00:00'),new DateTime('2010-12-02 00:00:00'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-08-30 00:00:00'),new DateTime('2012-10-07 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-10 23:59:59'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-11 00:00:00'),new DateTime('2012-10-13 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-14 00:00:00'),new DateTime('2012-10-16 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-17 00:00:00'),new DateTime('2012-10-18 23:59:59'))->count()); + $this->assertEquals(1,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-19 00:00:00'),new DateTime('2012-10-20 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-21 00:00:00'),new DateTime('2012-10-21 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-22 00:00:00'),new DateTime('2012-10-22 23:59:59'))->count()); + $this->assertEquals(2,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-23 00:00:00'),new DateTime('2012-10-24 23:59:59'))->count()); + $this->assertEquals(8,$florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2012-10-25 00:00:00'),new DateTime('2012-12-06 00:00:00'))->count()); $this->assertEquals(13,$florence_eleve->getDemiJourneesNonJustifieesAbsenceParPeriode(1)->count()); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-02 00:00:00'),new DateTime('2011-06-02 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-30 00:00:00'),new DateTime('2013-05-30 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_sans_manquement','y'); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-03 00:00:00'),new DateTime('2011-06-03 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-31 00:00:00'),new DateTime('2013-05-31 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_sans_manquement','n'); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-03'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-05-31'); $saisies->getFirst()->clearAllReferences(); $saisies->getNext()->clearAllReferences(); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-06-03 00:00:00'),new DateTime('2011-06-03 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-31 00:00:00'),new DateTime('2013-05-31 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2011-06-07 00:00:00'),new DateTime('2011-06-07 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2013-06-04 00:00:00'),new DateTime('2013-06-04 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_non_justifiee','n'); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2011-06-08 00:00:00'),new DateTime('2011-06-08 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2013-06-05 00:00:00'),new DateTime('2013-06-05 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_non_justifiee','y'); - $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2011-06-08'); + $saisies = $florence_eleve->getAbsenceEleveSaisiesDuJour('2013-06-05'); $saisies->getFirst()->clearAllReferences(); $saisies->getNext()->clearAllReferences(); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2011-06-08 00:00:00'),new DateTime('2011-06-08 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2013-06-05 00:00:00'),new DateTime('2013-06-05 23:59:59')); $this->assertEquals(1,$demi_j_col->count()); saveSetting('abs2_saisie_multi_type_non_justifiee','n');//n par défaut } @@ -292,71 +292,71 @@ public function testGetDemiJourneesNonJustifieesAbsence() { public function testGetRetards() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie_col = $florence_eleve->getRetards(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-02 23:59:59')); + $saisie_col = $florence_eleve->getRetards(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-06 23:59:59')); $this->assertEquals(0,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); saveSetting('abs2_retard_critere_duree',20); $saisie_col->getFirst()->clearAllReferences(); - $retard_col = $florence_eleve->getRetards(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(0,$retard_col->count()); saveSetting('abs2_retard_critere_duree',30); $saisie_col->getFirst()->clearAllReferences(); - $retard_col = $florence_eleve->getRetards(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$retard_col->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-08-30 00:00:00'),new DateTime('2010-10-03 23:59:59'))->count()); - $this->assertEquals(4,$florence_eleve->getRetards(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-06 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-07 00:00:00'),new DateTime('2010-10-09 23:59:59'))->count()); - $this->assertEquals(2,$florence_eleve->getRetards(new DateTime('2010-10-10 00:00:00'),new DateTime('2010-10-12 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-13 00:00:00'),new DateTime('2010-10-14 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-15 00:00:00'),new DateTime('2010-10-16 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-17 00:00:00'),new DateTime('2010-10-17 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-18 00:00:00'),new DateTime('2010-10-18 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-19 00:00:00'),new DateTime('2010-10-20 23:59:59'))->count()); - $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2010-10-21 00:00:00'),new DateTime('2010-12-02 00:00:00'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-08-30 00:00:00'),new DateTime('2012-10-07 23:59:59'))->count()); + $this->assertEquals(4,$florence_eleve->getRetards(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-10 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-11 00:00:00'),new DateTime('2012-10-13 23:59:59'))->count()); + $this->assertEquals(2,$florence_eleve->getRetards(new DateTime('2012-10-14 00:00:00'),new DateTime('2012-10-16 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-17 00:00:00'),new DateTime('2012-10-18 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-19 00:00:00'),new DateTime('2012-10-20 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-21 00:00:00'),new DateTime('2012-10-21 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-22 00:00:00'),new DateTime('2012-10-22 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-23 00:00:00'),new DateTime('2012-10-24 23:59:59'))->count()); + $this->assertEquals(0,$florence_eleve->getRetards(new DateTime('2012-10-25 00:00:00'),new DateTime('2012-12-06 00:00:00'))->count()); $this->assertEquals(6,$florence_eleve->getRetardsParPeriode(1)->count()); //Retard saisi alors que l'élève a quitté l'établissement saveSetting('abs2_retard_critere_duree',30); - $retard_col = $florence_eleve->getRetards(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$retard_col->count()); - $florence_eleve->setDateSortie(strtotime('2010-10-04 00:00:00')); # On sort l'élève - $retard_col = $florence_eleve->getRetards(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $florence_eleve->setDateSortie(strtotime('2012-10-08 00:00:00')); # On sort l'élève + $retard_col = $florence_eleve->getRetards(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(0,$retard_col->count()); - $retard_col = $florence_eleve->getRetards(new DateTime('2010-10-18 00:00:00'),new DateTime('2010-10-18 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2012-10-22 00:00:00'),new DateTime('2012-10-22 23:59:59')); $this->assertEquals(0,$retard_col->count()); $florence_eleve->setDateSortie(null); //test de saisies englobant d'autres saisies - $retard_col = $florence_eleve->getRetards(new DateTime('2011-06-01 00:00:00'),new DateTime('2011-06-01 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2013-05-29 00:00:00'),new DateTime('2013-05-29 23:59:59')); $this->assertEquals(0,$retard_col->count()); - $retard_col = $florence_eleve->getRetards(new DateTime('2011-06-08 00:00:00'),new DateTime('2011-06-09 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2013-06-05 00:00:00'),new DateTime('2013-06-06 23:59:59')); $this->assertEquals(1,$retard_col->count()); - $retard_col = $florence_eleve->getRetards(new DateTime('2011-06-09 00:00:00'),new DateTime('2011-06-10 23:59:59')); + $retard_col = $florence_eleve->getRetards(new DateTime('2013-06-06 00:00:00'),new DateTime('2013-06-07 23:59:59')); $this->assertEquals(2,$retard_col->count()); } public function testgetAbsenceEleveSaisiesDecompteDemiJournees() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-01 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-05 23:59:59')); $this->assertEquals(1,$saisie_col->count()); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2010-10-02 00:00:00'),new DateTime('2010-10-02 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2012-10-06 00:00:00'),new DateTime('2012-10-06 23:59:59')); $this->assertEquals(1,$saisie_col->count()); saveSetting('abs2_retard_critere_duree',20); $saisie_col->getFirst()->clearAllReferences(); - $manguement_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $manguement_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(1,$manguement_col->count()); saveSetting('abs2_retard_critere_duree',30); $manguement_col->getFirst()->clearAllReferences(); - $manguement_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-04 23:59:59')); + $manguement_col = $florence_eleve->getAbsenceEleveSaisiesDecompteDemiJournees(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-08 23:59:59')); $this->assertEquals(0,$manguement_col->count()); } @@ -366,24 +366,24 @@ public function testUpdateAbsenceAgregationTable() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); $this->assertEquals(11,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-09-01 00:00:00'),new DateTime('2010-09-02 23:59:59'));//ce test ne se terminait pas + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-09-01 00:00:00'),new DateTime('2012-09-02 23:59:59'));//ce test ne se terminait pas $this->assertEquals(5,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(null,new DateTime('2010-10-05 23:59:59')); + $florence_eleve->updateAbsenceAgregationTable(null,new DateTime('2012-10-09 23:59:59')); $this->assertEquals(11,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); $this->assertEquals(11,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); $this->assertEquals(31,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); $this->assertEquals(4, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->count()); $this->assertEquals(1, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->count()); @@ -391,10 +391,10 @@ public function testUpdateAbsenceAgregationTable() { $this->assertEquals(1, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByRetards(2)->count()); $this->assertEquals(4, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByRetardsNonJustifies(1)->count()); $demi_journee = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->findOne(); - $this->assertEquals('2010-10-14 00:00:00', $demi_journee->getDateDemiJounee('Y-m-d H:i:s')); + $this->assertEquals('2012-10-18 00:00:00', $demi_journee->getDateDemiJounee('Y-m-d H:i:s')); AbsenceAgregationDecompteQuery::create()->deleteAll(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-09-01 00:00:00'),new DateTime('2010-09-02 23:59:59')); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-09-01 00:00:00'),new DateTime('2012-09-02 23:59:59')); $this->assertEquals(5,AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->count()); $this->assertEquals(0, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->count()); $this->assertEquals(5, AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByRetards(0)->count()); @@ -449,106 +449,106 @@ public function testCheckSynchroAbsenceAgregationTable() { //on purge les decompte pour florence $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); $florence_eleve->updateAbsenceAgregationTable(); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); //on va modifier une saisie à la main $tomorow = new DateTime('now'); $tomorow->modify("+1 day"); - mysql_query("update a_saisies set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId()); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + mysql_query("update a_saisies set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId()); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); - mysql_query("update a_saisies set updated_at = now() where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId()); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + mysql_query("update a_saisies set updated_at = now() where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId()); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier une version de saisie à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); mysql_query("update a_saisies_version set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where eleve_id = ".$florence_eleve->getId()); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies_version set updated_at = now() where eleve_id = ".$florence_eleve->getId()); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier un traitement à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($saisie)->findOne()->getId(); mysql_query("update a_traitements set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$traitement_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement_id); - $florence_eleve->updateAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->updateAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier à la main une saisie sleep(1); - $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId(); + $saisie_id = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId(); mysql_query("update a_saisies set updated_at = now() where id = ".$saisie_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies set updated_at = now()-10 where id = ".$saisie_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies set deleted_at = now() where id = ".$saisie_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies set deleted_at = now()-10 where id = ".$saisie_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($saisie)->findOne()->getId(); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_traitements set updated_at = now()-10 where id = ".$traitement_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_traitements set deleted_at = now() where id = ".$traitement_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_traitements set deleted_at = now()-10 where id = ".$traitement_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); - $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst())->findOne()->getId(); + $saisie_version_id = AbsenceEleveSaisieVersionQuery::create()->filterByAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst())->findOne()->getId(); mysql_query("update a_saisies_version set updated_at = now() where id = ".$saisie_version_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies_version set updated_at = now()-10 where id = ".$saisie_version_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies_version set deleted_at = now() where id = ".$saisie_version_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies_version set deleted_at = now()-10 where id = ".$saisie_version_id); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); } @@ -557,71 +557,71 @@ public function testThinCheckAndUpdateSynchroAbsenceAgregationTable() { //on purge les decompte pour florence $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByManquementObligationPresence(true)->filterByNonJustifiee(false)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); //on va modifier une saisie à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); - mysql_query("update a_saisies set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId()); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + mysql_query("update a_saisies set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId()); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); - mysql_query("update a_saisies set updated_at = now() where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId()); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + mysql_query("update a_saisies set updated_at = now() where id = ".$florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId()); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier une version de saisie à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); mysql_query("update a_saisies_version set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where eleve_id = ".$florence_eleve->getId()); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_saisies_version set updated_at = now() where eleve_id = ".$florence_eleve->getId()); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier un traitement à la main $tomorow = new DateTime(); $tomorow->modify("+1 day"); - $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-02')->getFirst(); + $saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-06')->getFirst(); $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($saisie)->findOne()->getId(); mysql_query("update a_traitements set updated_at = '".$tomorow->format('Y-m-d H:i:s')."' where id = ".$traitement_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement_id); - $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); //on va modifier à la main une saisie sleep(1); $traitement_id = AbsenceEleveTraitementQuery::create()->filterByAbsenceEleveSaisie($saisie)->findOne()->getId(); mysql_query("update a_traitements set updated_at = now() where id = ".$traitement_id); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); } @@ -630,51 +630,51 @@ public function testCheckAndUpdateSynchroAbsenceAgregationTable() { //on purge les decompte pour florence $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); - $florence_eleve->checkAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-05 23:59:59'))); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(null, new DateTime('2010-10-01 00:00:00'))); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-06 00:00:00'), null)); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); + $florence_eleve->checkAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-09 23:59:59'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(null, new DateTime('2012-10-05 00:00:00'))); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-10 00:00:00'), null)); //on va modifier à la main une saisie sleep(1); - mysql_query("update a_saisies set updated_at = now() where id = ".$saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()->getId()); - $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-10-01 00:00:00'),new DateTime('2010-10-15 23:59:59'))); + mysql_query("update a_saisies set updated_at = now() where id = ".$saisie = $florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()->getId()); + $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-05 00:00:00'),new DateTime('2012-10-19 23:59:59'))); $this->assertFalse($florence_eleve->checkSynchroAbsenceAgregationTable()); - $florence_eleve->checkAndUpdateSynchroAbsenceAgregationTable(new DateTime('2010-10-04 00:00:00'),new DateTime('2010-10-05 23:59:59')); - $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2010-09-30 00:00:00'),new DateTime('2010-10-10 23:59:59'))); + $florence_eleve->checkAndUpdateSynchroAbsenceAgregationTable(new DateTime('2012-10-08 00:00:00'),new DateTime('2012-10-09 23:59:59')); + $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable(new DateTime('2012-10-04 00:00:00'),new DateTime('2012-10-14 23:59:59'))); $this->assertTrue($florence_eleve->checkSynchroAbsenceAgregationTable()); } public function testSortieEleve() { - # Absence 21 du 2011-05-30 Sortir l'élève du collège et vérifier qu'aucune absence n'est retournée + # Absence 21 du 2013-05-27 Sortir l'élève du collège et vérifier qu'aucune absence n'est retournée $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); # table d'agrégation AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->delete(); $florence_eleve->thinCheckAndUpdateSynchroAbsenceAgregationTable(); - $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')); + $saisie_col = $florence_eleve->getAbsenceEleveSaisiesParDate(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')); $this->assertEquals(1,$saisie_col->count()); $this->assertTrue($saisie_col->getFirst()->getManquementObligationPresence()); - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')); $this->assertEquals(2,$demi_j_col->count()); # L'élève est inscrit -> 2 absences # table d'agrégation $nbAbs = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve) - ->filterByDateIntervalle(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')) + ->filterByDateIntervalle(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')) ->filterByManquementObligationPresence(true); $this->assertEquals(2,$nbAbs->count()); - $florence_eleve->setDateSortie(strtotime('30-05-2011 00:00:00')); # On sort l'élève + $florence_eleve->setDateSortie(strtotime('27-05-2013 00:00:00')); # On sort l'élève - $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesAbsence(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); # L'élève n'est plus dans l'établissement -> 0 absence $this->assertEquals(0,$florence_eleve->getDemiJourneesAbsenceParPeriode(3)->count()); - $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')); + $demi_j_col = $florence_eleve->getDemiJourneesNonJustifieesAbsence(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')); $this->assertEquals(0,$demi_j_col->count()); # table d'agrégation $nbAbs = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve) - ->filterByDateIntervalle(new DateTime('2011-05-30 00:00:00'),new DateTime('2011-05-30 23:59:59')) + ->filterByDateIntervalle(new DateTime('2013-05-27 00:00:00'),new DateTime('2013-05-27 23:59:59')) ->filterByManquementObligationPresence(true); $this->assertEquals(0,$nbAbs->count()); diff --git a/test/testsuite/orm/base/JTraitementSaisieTest.php b/test/testsuite/orm/base/JTraitementSaisieTest.php index 5bb92bd6b..96b2b4e58 100644 --- a/test/testsuite/orm/base/JTraitementSaisieTest.php +++ b/test/testsuite/orm/base/JTraitementSaisieTest.php @@ -23,9 +23,9 @@ public function testInsert() $traitement = new AbsenceEleveTraitement(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); - $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()); + $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertTrue($decompte->getManquementObligationPresence()); $traitement->delete(); $decompte->reload(); @@ -36,7 +36,7 @@ public function testInsert() $traitement->save(); AbsenceEleveSaisiePeer::enableAgregation(); AbsenceEleveTraitementPeer::enableAgregation(); - $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()); + $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()); $traitement->save(); $decompte->reload(); $this->assertFalse($decompte->getManquementObligationPresence()); @@ -48,7 +48,7 @@ public function testInsert() public function testModification() { $florence_eleve = EleveQuery::create()->findOneByLogin('Florence Michu'); - $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2010-10-10 08:00:00')->findOne(); + $saisie = AbsenceEleveSaisieQuery::create()->filterByDebutAbs('2012-10-14 08:00:00')->findOne(); $traitements = AbsenceEleveTraitementQuery::create()->useAbsenceEleveTypeQuery()->filterByNom('Infirmerie')->endUse()->find(); $traitement_1 = $traitements->getFirst(); $traitement_2 = $traitements->get(1); @@ -89,9 +89,9 @@ public function testDelete() $traitement = new AbsenceEleveTraitement(); $traitement->setAbsenceEleveType(AbsenceEleveTypeQuery::create()->filterByNom('Infirmerie')->findOne()); $traitement->save(); - $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2010-10-01')->getFirst()); + $traitement->addAbsenceEleveSaisie($florence_eleve->getAbsenceEleveSaisiesDuJour('2012-10-05')->getFirst()); $traitement->save(); - $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2010-10-01')->findOne(); + $decompte = AbsenceAgregationDecompteQuery::create()->filterByEleve($florence_eleve)->filterByDateDemiJounee('2012-10-05')->findOne(); $this->assertFalse($decompte->getManquementObligationPresence()); $j_traitement_saisie = $traitement->getJTraitementSaisieEleves()->getFirst(); $j_traitement_saisie->delete(); diff --git a/test/testsuite/orm/base/PeriodeNoteTest.php b/test/testsuite/orm/base/PeriodeNoteTest.php index cee41a726..0a2a1bb44 100644 --- a/test/testsuite/orm/base/PeriodeNoteTest.php +++ b/test/testsuite/orm/base/PeriodeNoteTest.php @@ -23,12 +23,12 @@ public function testGetDateDebut() $this->assertEquals('3',$periode_col->getLast()->getNumPeriode()); $periode_1 = $periode_col->getFirst(); - $this->assertEquals('2010-12-01 23:59:59',$periode_1->getDateFin('Y-m-d H:i:s')); - $this->assertEquals('2010-08-31 00:00:00',$periode_1->getDateDebut('Y-m-d H:i:s')); + $this->assertEquals('2012-12-01 23:59:59',$periode_1->getDateFin('Y-m-d H:i:s')); + $this->assertEquals('2012-08-31 00:00:00',$periode_1->getDateDebut('Y-m-d H:i:s')); $periode_3 = $periode_col->getLast(); - $this->assertEquals('2011-07-01 23:59:59',$periode_3->getDateFin('Y-m-d H:i:s')); - $this->assertEquals('2011-03-02 00:00:00',$periode_3->getDateDebut('Y-m-d H:i:s')); + $this->assertEquals('2013-07-01 23:59:59',$periode_3->getDateFin('Y-m-d H:i:s')); + $this->assertEquals('2013-03-02 00:00:00',$periode_3->getDateDebut('Y-m-d H:i:s')); } diff --git a/test/tools/helpers/orm/GepiDataPopulator.php b/test/tools/helpers/orm/GepiDataPopulator.php index 0a042e4a9..4df7ff073 100644 --- a/test/tools/helpers/orm/GepiDataPopulator.php +++ b/test/tools/helpers/orm/GepiDataPopulator.php @@ -89,7 +89,7 @@ public static function populate($con = null) $michel_eleve = new Eleve(); $michel_eleve->setLogin('Michel Martin'); $michel_eleve->setEleId('00112235'); - $michel_eleve->setDateSortie('2010-12-20'); + $michel_eleve->setDateSortie('2012-12-24'); $michel_eleve->save(); $classe_6A = new Classe(); @@ -100,14 +100,14 @@ public static function populate($con = null) $periode_6A_1->setNumPeriode(1); $periode_6A_1->setVerouiller('O'); $periode_6A_1->setNomPeriode('premier trimestre'); - $periode_6A_1->setDateFin('2010-12-01 00:00:00'); + $periode_6A_1->setDateFin('2012-12-01 00:00:00'); $periode_6A_1->save(); $periode_6A_2 = new PeriodeNote(); $periode_6A_2->setClasse($classe_6A); $periode_6A_2->setNumPeriode(2); $periode_6A_2->setVerouiller('N'); $periode_6A_2->setNomPeriode('deuxième trimestre'); - $periode_6A_2->setDateFin('2011-03-01 23:59:59'); + $periode_6A_2->setDateFin('2013-03-01 23:59:59'); $periode_6A_2->save(); $classe_6A->addEleve($florence_eleve,1);//florence est dans la 6A pour les deux premiers trimestres et dans la 6B pour les deux suivants @@ -123,14 +123,14 @@ public static function populate($con = null) $periode_6B_2->setNumPeriode(2); $periode_6B_2->setVerouiller('O'); $periode_6B_2->setNomPeriode('deuxième trimestre'); - $periode_6B_2->setDateFin('2011-03-01 23:59:59'); + $periode_6B_2->setDateFin('2013-03-01 23:59:59'); $periode_6B_2->save(); $periode_6B_3 = new PeriodeNote(); $periode_6B_3->setClasse($classe_6B); $periode_6B_3->setNumPeriode(3); $periode_6B_3->setVerouiller('O'); $periode_6B_3->setNomPeriode('troisième trimestre'); - $periode_6B_3->setDateFin('2011-07-01 23:59:59'); + $periode_6B_3->setDateFin('2013-07-01 23:59:59'); $periode_6B_3->save(); $classe_6B->addEleve($nicolas_eleve,1); $classe_6B->addEleve($nicolas_eleve,2); @@ -163,15 +163,15 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2010-10-01 08:00:00');//le 2010-10-01 est un vendredi - $saisie_1->setFinAbs('2010-10-01 09:00:00'); + $saisie_1->setDebutAbs('2012-10-05 08:00:00');//le 2010-10-01 est un vendredi + $saisie_1->setFinAbs('2012-10-05 09:00:00'); $saisie_1->save(); $saisie_2 = new AbsenceEleveSaisie(); $saisie_2->setEleve($florence_eleve); $saisie_2->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_2->setDebutAbs('2010-10-02 08:00:00');//samedi : ne comptera pas comme demi journée d'absence - $saisie_2->setFinAbs('2010-10-02 09:00:00'); + $saisie_2->setDebutAbs('2012-10-06 08:00:00');//samedi : ne comptera pas comme demi journée d'absence + $saisie_2->setFinAbs('2012-10-06 09:00:00'); $saisie_2->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_2); @@ -188,8 +188,8 @@ public static function populate($con = null) $saisie_3 = new AbsenceEleveSaisie(); $saisie_3->setEleve($florence_eleve); $saisie_3->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_3->setDebutAbs('2010-10-03 08:00:00');//dimanche : ne comptera pas comme demi journée d'absence - $saisie_3->setFinAbs('2010-10-03 08:29:00'); + $saisie_3->setDebutAbs('2012-10-07 08:00:00');//dimanche : ne comptera pas comme demi journée d'absence + $saisie_3->setFinAbs('2012-10-07 08:29:00'); $saisie_3->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_3); @@ -200,8 +200,8 @@ public static function populate($con = null) $saisie_4 = new AbsenceEleveSaisie(); $saisie_4->setEleve($florence_eleve); $saisie_4->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_4->setDebutAbs('2010-10-04 08:00:00'); - $saisie_4->setFinAbs('2010-10-04 08:29:00');//retard : ne comptera pas comme demi journée d'absence + $saisie_4->setDebutAbs('2012-10-08 08:00:00'); + $saisie_4->setFinAbs('2012-10-08 08:29:00');//retard : ne comptera pas comme demi journée d'absence $saisie_4->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_4); @@ -228,14 +228,14 @@ public static function populate($con = null) $saisie_5 = new AbsenceEleveSaisie(); $saisie_5->setEleve($florence_eleve); $saisie_5->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_5->setDebutAbs('2010-10-05 08:00:00'); - $saisie_5->setFinAbs('2010-10-05 08:29:00');//retard : ne comptera pas comme demi journée d'absence + $saisie_5->setDebutAbs('2012-10-09 08:00:00'); + $saisie_5->setFinAbs('2012-10-09 08:29:00');//retard : ne comptera pas comme demi journée d'absence $saisie_5->save(); $saisie_51 = new AbsenceEleveSaisie(); $saisie_51->setEleve($florence_eleve); $saisie_51->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_51->setDebutAbs('2010-10-05 09:00:00'); - $saisie_51->setFinAbs('2010-10-05 09:29:00');//retard : ne comptera pas comme demi journée d'absence + $saisie_51->setDebutAbs('2012-10-09 09:00:00'); + $saisie_51->setFinAbs('2012-10-09 09:29:00');//retard : ne comptera pas comme demi journée d'absence $saisie_51->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_5); @@ -247,8 +247,8 @@ public static function populate($con = null) $saisie_6 = new AbsenceEleveSaisie(); $saisie_6->setEleve($florence_eleve); $saisie_6->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_6->setDebutAbs('2010-10-06 08:00:00'); - $saisie_6->setFinAbs('2010-10-06 09:00:00'); + $saisie_6->setDebutAbs('2012-10-10 08:00:00'); + $saisie_6->setFinAbs('2012-10-10 09:00:00'); $saisie_6->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_6); @@ -269,8 +269,8 @@ public static function populate($con = null) $saisie_7 = new AbsenceEleveSaisie(); $saisie_7->setEleve($florence_eleve); $saisie_7->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_7->setDebutAbs('2010-10-07 08:00:00'); - $saisie_7->setFinAbs('2010-10-07 09:00:00'); + $saisie_7->setDebutAbs('2012-10-11 08:00:00'); + $saisie_7->setFinAbs('2012-10-11 09:00:00'); $saisie_7->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_7); @@ -281,14 +281,14 @@ public static function populate($con = null) $saisie_8 = new AbsenceEleveSaisie(); $saisie_8->setEleve($florence_eleve); $saisie_8->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_8->setDebutAbs('2010-10-08 08:00:00'); - $saisie_8->setFinAbs('2010-10-08 09:00:00'); + $saisie_8->setDebutAbs('2012-10-12 08:00:00'); + $saisie_8->setFinAbs('2012-10-12 09:00:00'); $saisie_8->save(); $saisie_81 = new AbsenceEleveSaisie(); $saisie_81->setEleve($florence_eleve); $saisie_81->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_81->setDebutAbs('2010-10-08 08:00:00'); - $saisie_81->setFinAbs('2010-10-08 08:10:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale + $saisie_81->setDebutAbs('2012-10-12 08:00:00'); + $saisie_81->setFinAbs('2012-10-12 08:10:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale $saisie_81->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_81); @@ -299,14 +299,14 @@ public static function populate($con = null) $saisie_9 = new AbsenceEleveSaisie(); $saisie_9->setEleve($florence_eleve); $saisie_9->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_9->setDebutAbs('2010-10-09 08:00:00'); - $saisie_9->setFinAbs('2010-10-09 09:00:00');//samedi : ne comptera pas comme demi journée d'absence + $saisie_9->setDebutAbs('2012-10-13 08:00:00'); + $saisie_9->setFinAbs('2012-10-13 09:00:00');//samedi : ne comptera pas comme demi journée d'absence $saisie_9->save(); $saisie_91 = new AbsenceEleveSaisie(); $saisie_91->setEleve($florence_eleve); $saisie_91->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_91->setDebutAbs('2010-10-09 08:00:00'); - $saisie_91->setFinAbs('2010-10-09 08:10:00'); + $saisie_91->setDebutAbs('2012-10-13 08:00:00'); + $saisie_91->setFinAbs('2012-10-13 08:10:00'); $saisie_91->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_91); @@ -317,15 +317,15 @@ public static function populate($con = null) $saisie_10 = new AbsenceEleveSaisie(); //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué $saisie_10->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_10->setDebutAbs('2010-10-10 08:00:00'); - $saisie_10->setFinAbs('2010-10-10 09:00:00'); + $saisie_10->setDebutAbs('2012-10-14 08:00:00'); + $saisie_10->setFinAbs('2012-10-14 09:00:00'); $saisie_10->setGroupe($groupe_math); $saisie_10->save(); $saisie_101 = new AbsenceEleveSaisie(); $saisie_101->setEleve($florence_eleve); $saisie_101->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_101->setDebutAbs('2010-10-10 08:00:00'); - $saisie_101->setFinAbs('2010-10-10 08:10:00'); + $saisie_101->setDebutAbs('2012-10-14 08:00:00'); + $saisie_101->setFinAbs('2012-10-14 08:10:00'); $saisie_101->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_101); @@ -336,15 +336,15 @@ public static function populate($con = null) $saisie_11 = new AbsenceEleveSaisie(); //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué $saisie_11->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_11->setDebutAbs('2010-10-11 08:00:00'); - $saisie_11->setFinAbs('2010-10-11 09:00:00'); + $saisie_11->setDebutAbs('2012-10-15 08:00:00'); + $saisie_11->setFinAbs('2012-10-15 09:00:00'); $saisie_11->setClasse($classe_6A); $saisie_11->save(); $saisie_111 = new AbsenceEleveSaisie(); $saisie_111->setEleve($florence_eleve); $saisie_111->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_111->setDebutAbs('2010-10-11 08:00:00'); - $saisie_111->setFinAbs('2010-10-11 08:10:00'); + $saisie_111->setDebutAbs('2012-10-15 08:00:00'); + $saisie_111->setFinAbs('2012-10-15 08:10:00'); $saisie_111->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_111); @@ -355,15 +355,15 @@ public static function populate($con = null) $saisie_12 = new AbsenceEleveSaisie(); //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué $saisie_12->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_12->setDebutAbs('2010-10-12 08:00:00'); - $saisie_12->setFinAbs('2010-10-12 09:00:00'); + $saisie_12->setDebutAbs('2012-10-16 08:00:00'); + $saisie_12->setFinAbs('2012-10-16 09:00:00'); $saisie_12->setAidDetails($aid_1); $saisie_12->save(); $saisie_121 = new AbsenceEleveSaisie(); $saisie_121->setEleve($florence_eleve); $saisie_121->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_121->setDebutAbs('2010-10-12 08:00:00'); - $saisie_121->setFinAbs('2010-10-12 08:10:00'); + $saisie_121->setDebutAbs('2012-10-16 08:00:00'); + $saisie_121->setFinAbs('2012-10-16 08:10:00'); $saisie_121->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_121); @@ -374,15 +374,15 @@ public static function populate($con = null) $saisie_13 = new AbsenceEleveSaisie(); //$saisie_13->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel effectué $saisie_13->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_13->setDebutAbs('2010-10-13 08:00:00'); - $saisie_13->setFinAbs('2010-10-13 09:00:00'); + $saisie_13->setDebutAbs('2012-10-17 08:00:00'); + $saisie_13->setFinAbs('2012-10-17 09:00:00'); $saisie_13->setClasse($classe_6A); $saisie_13->save(); $saisie_131 = new AbsenceEleveSaisie(); $saisie_131->setEleve($florence_eleve); $saisie_131->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_131->setDebutAbs('2010-10-13 08:00:00'); - $saisie_131->setFinAbs('2010-10-13 08:10:00'); + $saisie_131->setDebutAbs('2012-10-17 08:00:00'); + $saisie_131->setFinAbs('2012-10-17 08:10:00'); $saisie_131->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_131); @@ -393,8 +393,8 @@ public static function populate($con = null) $saisie_14 = new AbsenceEleveSaisie(); $saisie_14->setEleve($florence_eleve); $saisie_14->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_14->setDebutAbs('2010-10-14 08:00:00'); - $saisie_14->setFinAbs('2010-10-14 09:00:00'); + $saisie_14->setDebutAbs('2012-10-18 08:00:00'); + $saisie_14->setFinAbs('2012-10-18 09:00:00'); $saisie_14->setClasse($classe_6A); $saisie_14->save(); $traitement = new AbsenceEleveTraitement(); @@ -406,23 +406,23 @@ public static function populate($con = null) $saisie_15 = new AbsenceEleveSaisie(); $saisie_15->setEleve($florence_eleve); $saisie_15->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_15->setDebutAbs('2010-10-15 08:00:00'); - $saisie_15->setFinAbs('2010-10-15 09:00:00'); + $saisie_15->setDebutAbs('2012-10-19 08:00:00'); + $saisie_15->setFinAbs('2012-10-19 09:00:00'); $saisie_15->setClasse($classe_6A); $saisie_15->save(); $saisie_151 = new AbsenceEleveSaisie(); $saisie_151->setEleve($florence_eleve); $saisie_151->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_151->setDebutAbs('2010-10-15 08:00:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale - $saisie_151->setFinAbs('2010-10-15 08:10:00'); + $saisie_151->setDebutAbs('2012-10-19 08:00:00');//ce retard ne sera pas décompté car il est inclus dans une absence plus globale + $saisie_151->setFinAbs('2012-10-19 08:10:00'); $saisie_151->setClasse($classe_6A); $saisie_151->save(); $saisie_16 = new AbsenceEleveSaisie(); //$saisie_9->setEleve($florence_eleve);//aucun eleve : c'est un marqueur d'appel éffectué $saisie_16->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_16->setDebutAbs('2010-10-16 08:00:00'); - $saisie_16->setFinAbs('2010-10-16 09:00:00'); + $saisie_16->setDebutAbs('2012-10-20 08:00:00'); + $saisie_16->setFinAbs('2012-10-20 09:00:00'); $saisie_16->setAidDetails($aid_1); $saisie_16->save(); $traitement = new AbsenceEleveTraitement(); @@ -434,14 +434,14 @@ public static function populate($con = null) $saisie_17 = new AbsenceEleveSaisie(); $saisie_17->setEleve($florence_eleve); $saisie_17->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_17->setDebutAbs('2010-10-17 08:00:00'); - $saisie_17->setFinAbs('2010-10-17 09:00:00'); + $saisie_17->setDebutAbs('2012-10-21 08:00:00'); + $saisie_17->setFinAbs('2012-10-21 09:00:00'); $saisie_17->save(); $saisie_171 = new AbsenceEleveSaisie(); $saisie_171->setEleve($florence_eleve); $saisie_171->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_171->setDebutAbs('2010-10-17 14:00:00'); - $saisie_171->setFinAbs('2010-10-17 15:00:00'); + $saisie_171->setDebutAbs('2012-10-21 14:00:00'); + $saisie_171->setFinAbs('2012-10-21 15:00:00'); $saisie_171->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_17); @@ -453,8 +453,8 @@ public static function populate($con = null) $saisie_18 = new AbsenceEleveSaisie(); $saisie_18->setEleve($florence_eleve); $saisie_18->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_18->setDebutAbs('2010-10-18 08:00:00'); - $saisie_18->setFinAbs('2010-10-18 09:00:00'); + $saisie_18->setDebutAbs('2012-10-22 08:00:00'); + $saisie_18->setFinAbs('2012-10-22 09:00:00'); $saisie_18->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_18); @@ -464,22 +464,22 @@ public static function populate($con = null) $saisie_181 = new AbsenceEleveSaisie();//la saisie 181 est la même que 18 mais elle va être comptée comme une absence normale et non un retard $saisie_181->setEleve($florence_eleve); $saisie_181->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_181->setDebutAbs('2010-10-18 08:00:00'); - $saisie_181->setFinAbs('2010-10-18 09:00:00'); + $saisie_181->setDebutAbs('2012-10-22 08:00:00'); + $saisie_181->setFinAbs('2012-10-22 09:00:00'); $saisie_181->save(); $saisie_19 = new AbsenceEleveSaisie(); //saisie sur une journée ouvrée un mardi $saisie_19->setEleve($florence_eleve); $saisie_19->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_19->setDebutAbs('2010-10-19 08:00:00'); - $saisie_19->setFinAbs('2010-10-19 16:30:00'); + $saisie_19->setDebutAbs('2012-10-23 08:00:00'); + $saisie_19->setFinAbs('2012-10-23 16:30:00'); $saisie_19->save(); $saisie_20 = new AbsenceEleveSaisie(); //saisie sur plusieurs journées du jeudi 28-10 au mardi 2-11-2010, 1 seule saisie $saisie_20->setEleve($florence_eleve); $saisie_20->setUtilisateurProfessionnel($dolto_cpe); - $saisie_20->setDebutAbs('2010-10-28 08:00:00'); - $saisie_20->setFinAbs('2010-11-2 17:00:00'); + $saisie_20->setDebutAbs('2012-11-01 08:00:00'); + $saisie_20->setFinAbs('2012-11-06 17:00:00'); $saisie_20->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_20); @@ -490,21 +490,21 @@ public static function populate($con = null) $saisie_21 = new AbsenceEleveSaisie(); //saisie sur 1 journée et sortir l'élève de l'établissement $saisie_21->setEleve($florence_eleve); $saisie_21->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_21->setDebutAbs('2011-05-30 08:00:00'); - $saisie_21->setFinAbs('2011-05-30 16:30:00'); + $saisie_21->setDebutAbs('2013-05-27 08:00:00'); + $saisie_21->setFinAbs('2013-05-27 16:30:00'); $saisie_21->save(); $saisie_22 = new AbsenceEleveSaisie(); $saisie_22->setEleve($florence_eleve); $saisie_22->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_22->setDebutAbs('2011-05-31 08:01:00'); - $saisie_22->setFinAbs('2011-05-31 09:00:00'); + $saisie_22->setDebutAbs('2013-05-28 08:01:00'); + $saisie_22->setFinAbs('2013-05-28 09:00:00'); $saisie_22->save(); $saisie_221 = new AbsenceEleveSaisie(); $saisie_221->setEleve($florence_eleve); $saisie_221->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_221->setDebutAbs('2011-05-31 08:00:00'); - $saisie_221->setFinAbs('2011-05-31 09:10:00'); + $saisie_221->setDebutAbs('2013-05-28 08:00:00'); + $saisie_221->setFinAbs('2013-05-28 09:10:00'); $saisie_221->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_221); @@ -515,14 +515,14 @@ public static function populate($con = null) $saisie_23 = new AbsenceEleveSaisie(); $saisie_23->setEleve($florence_eleve); $saisie_23->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_23->setDebutAbs('2011-06-01 08:01:00'); - $saisie_23->setFinAbs('2011-06-01 08:10:00'); + $saisie_23->setDebutAbs('2013-05-29 08:01:00'); + $saisie_23->setFinAbs('2013-05-29 08:10:00'); $saisie_23->save(); $saisie_231 = new AbsenceEleveSaisie(); $saisie_231->setEleve($florence_eleve); $saisie_231->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_231->setDebutAbs('2011-06-01 08:00:00'); - $saisie_231->setFinAbs('2011-06-01 09:10:00'); + $saisie_231->setDebutAbs('2013-05-29 08:00:00'); + $saisie_231->setFinAbs('2013-05-29 09:10:00'); $saisie_231->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_231); @@ -560,14 +560,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-02 08:00:00'); - $saisie_1->setFinAbs('2011-06-02 09:00:00'); + $saisie_1->setDebutAbs('2013-05-30 08:00:00'); + $saisie_1->setFinAbs('2013-05-30 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-02 07:00:00'); - $saisie_1->setFinAbs('2011-06-02 10:00:00'); + $saisie_1->setDebutAbs('2013-05-30 07:00:00'); + $saisie_1->setFinAbs('2013-05-30 10:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -578,14 +578,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-03 08:00:00'); - $saisie_1->setFinAbs('2011-06-03 09:00:00'); + $saisie_1->setDebutAbs('2013-05-31 08:00:00'); + $saisie_1->setFinAbs('2013-05-31 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-03 08:00:00'); - $saisie_1->setFinAbs('2011-06-03 09:00:00'); + $saisie_1->setDebutAbs('2013-05-31 08:00:00'); + $saisie_1->setFinAbs('2013-05-31 09:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -596,14 +596,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-06 08:00:00'); - $saisie_1->setFinAbs('2011-06-06 09:00:00'); + $saisie_1->setDebutAbs('2013-06-03 08:00:00'); + $saisie_1->setFinAbs('2013-06-03 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-06 08:00:00'); - $saisie_1->setFinAbs('2011-06-06 09:30:00'); + $saisie_1->setDebutAbs('2013-06-03 08:00:00'); + $saisie_1->setFinAbs('2013-06-03 09:30:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -613,15 +613,15 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-06 08:00:00'); - $saisie_1->setFinAbs('2011-06-06 10:00:00'); + $saisie_1->setDebutAbs('2013-06-03 08:00:00'); + $saisie_1->setFinAbs('2013-06-03 10:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-07 08:00:00'); - $saisie_1->setFinAbs('2011-06-07 09:00:00'); + $saisie_1->setDebutAbs('2013-06-04 08:00:00'); + $saisie_1->setFinAbs('2013-06-04 09:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -631,14 +631,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-07 09:00:00'); - $saisie_1->setFinAbs('2011-06-07 09:40:00'); + $saisie_1->setDebutAbs('2013-06-04 09:00:00'); + $saisie_1->setFinAbs('2013-06-04 09:40:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-07 08:00:00'); - $saisie_1->setFinAbs('2011-06-07 10:00:00'); + $saisie_1->setDebutAbs('2013-06-04 08:00:00'); + $saisie_1->setFinAbs('2013-06-04 10:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -649,14 +649,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-08 08:00:00'); - $saisie_1->setFinAbs('2011-06-08 09:00:00'); + $saisie_1->setDebutAbs('2013-06-05 08:00:00'); + $saisie_1->setFinAbs('2013-06-05 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-08 08:00:00'); - $saisie_1->setFinAbs('2011-06-08 09:00:00'); + $saisie_1->setDebutAbs('2013-06-05 08:00:00'); + $saisie_1->setFinAbs('2013-06-05 09:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -668,14 +668,14 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-09 08:00:00'); - $saisie_1->setFinAbs('2011-06-09 08:10:00'); + $saisie_1->setDebutAbs('2013-06-06 08:00:00'); + $saisie_1->setFinAbs('2013-06-06 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-09 08:00:00'); - $saisie_1->setFinAbs('2011-06-09 08:15:00'); + $saisie_1->setDebutAbs('2013-06-06 08:00:00'); + $saisie_1->setFinAbs('2013-06-06 08:15:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -690,33 +690,33 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-10 08:00:00'); - $saisie_1->setFinAbs('2011-06-10 08:10:00'); + $saisie_1->setDebutAbs('2013-06-07 08:00:00'); + $saisie_1->setFinAbs('2013-06-07 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-10 08:00:00'); - $saisie_1->setFinAbs('2011-06-10 08:10:00'); + $saisie_1->setDebutAbs('2013-06-07 08:00:00'); + $saisie_1->setFinAbs('2013-06-07 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-11 08:00:00'); - $saisie_1->setFinAbs('2011-06-11 09:00:00'); + $saisie_1->setDebutAbs('2013-06-08 08:00:00'); + $saisie_1->setFinAbs('2013-06-08 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-11 08:00:00'); - $saisie_1->setFinAbs('2011-06-11 09:00:00'); + $saisie_1->setDebutAbs('2013-06-08 08:00:00'); + $saisie_1->setFinAbs('2013-06-08 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-11 08:00:00'); - $saisie_1->setFinAbs('2011-06-11 09:00:00'); + $saisie_1->setDebutAbs('2013-06-08 08:00:00'); + $saisie_1->setFinAbs('2013-06-08 09:00:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -726,8 +726,8 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-11 08:00:00'); - $saisie_1->setFinAbs('2011-06-11 09:10:00'); + $saisie_1->setDebutAbs('2013-06-08 08:00:00'); + $saisie_1->setFinAbs('2013-06-08 09:10:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -738,20 +738,20 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-12 08:00:00'); - $saisie_1->setFinAbs('2011-06-12 09:00:00'); + $saisie_1->setDebutAbs('2013-06-09 08:00:00'); + $saisie_1->setFinAbs('2013-06-09 09:00:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-12 07:00:00'); - $saisie_1->setFinAbs('2011-06-12 09:10:00'); + $saisie_1->setDebutAbs('2013-06-09 07:00:00'); + $saisie_1->setFinAbs('2013-06-09 09:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-12 08:00:00'); - $saisie_1->setFinAbs('2011-06-12 09:11:00'); + $saisie_1->setDebutAbs('2013-06-09 08:00:00'); + $saisie_1->setFinAbs('2013-06-09 09:11:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -761,8 +761,8 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-12 08:00:00'); - $saisie_1->setFinAbs('2011-06-12 09:10:00'); + $saisie_1->setDebutAbs('2013-06-09 08:00:00'); + $saisie_1->setFinAbs('2013-06-09 09:10:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); @@ -773,26 +773,26 @@ public static function populate($con = null) $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-13 08:00:00'); - $saisie_1->setFinAbs('2011-06-13 08:10:00'); + $saisie_1->setDebutAbs('2013-06-10 08:00:00'); + $saisie_1->setFinAbs('2013-06-10 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-13 08:00:00'); - $saisie_1->setFinAbs('2011-06-13 08:10:00'); + $saisie_1->setDebutAbs('2013-06-10 08:00:00'); + $saisie_1->setFinAbs('2013-06-10 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-13 08:00:00'); - $saisie_1->setFinAbs('2011-06-13 08:10:00'); + $saisie_1->setDebutAbs('2013-06-10 08:00:00'); + $saisie_1->setFinAbs('2013-06-10 08:10:00'); $saisie_1->save(); $saisie_1 = new AbsenceEleveSaisie(); $saisie_1->setEleve($florence_eleve); $saisie_1->setUtilisateurProfessionnel($lebesgue_prof); - $saisie_1->setDebutAbs('2011-06-13 08:00:00'); - $saisie_1->setFinAbs('2011-06-13 09:10:00'); + $saisie_1->setDebutAbs('2013-06-10 08:00:00'); + $saisie_1->setFinAbs('2013-06-10 09:10:00'); $saisie_1->save(); $traitement = new AbsenceEleveTraitement(); $traitement->addAbsenceEleveSaisie($saisie_1); From 11c04b04acdb8b01b299d0080d4b94d4355900b3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 11 Oct 2013 07:54:49 +0200 Subject: [PATCH 1146/1150] =?UTF-8?q?Possibilit=C3=A9=20de=20modifier=20l'?= =?UTF-8?q?heure=20avec=20les=20fl=C3=A8ches=20du=20clavier.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mod_abs2/saisir_groupe.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 68f4f7540..0ee1549c2 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -1485,6 +1485,7 @@ class='type_abs_regime_decoche_".$indice_tab_regime[$eleve['regime']]."'"; id="heure_debut_absence_eleve_" value="" type="text" + onKeyDown="clavier_heure(this.id, event);" AutoComplete="off" maxlength="5" size="4"/> Date: Fri, 11 Oct 2013 09:44:41 +0300 Subject: [PATCH 1147/1150] Un peu de nettoyage --- lib/Session.class.php | 34 ++++++++++++++++++++++++---------- lib/share.inc.php | 15 +++++++++++---- 2 files changed, 35 insertions(+), 14 deletions(-) diff --git a/lib/Session.class.php b/lib/Session.class.php index cf80f5df9..4220ceceb 100644 --- a/lib/Session.class.php +++ b/lib/Session.class.php @@ -542,14 +542,21 @@ public function recreate_log() { // Création d'une entrée de log public function insert_log() { + + include_once(dirname(__FILE__).'/HTMLPurifier.standalone.php'); + $config = HTMLPurifier_Config::createDefault(); + $config->set('Core.Encoding', 'utf-8'); // replace with your encoding + $config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype + $purifier = new HTMLPurifier($config); + if (!isset($_SERVER['HTTP_REFERRER'])) $_SERVER['HTTP_REFERER'] = ''; $sql = "INSERT INTO log (LOGIN, START, SESSION_ID, REMOTE_ADDR, USER_AGENT, REFERER, AUTOCLOSE, END) values ( '" . $this->login . "', '" . $this->start . "', '" . session_id() . "', - '" . $_SERVER['REMOTE_ADDR'] . "', - '" . $_SERVER['HTTP_USER_AGENT'] . "', - '" . $_SERVER['HTTP_REFERER'] . "', + '" . $purifier->purify($_SERVER['REMOTE_ADDR']) . "', + '" . $purifier->purify($_SERVER['HTTP_USER_AGENT']) . "', + '" . $purifier->purify($_SERVER['HTTP_REFERER']) . "', '1', '" . $this->start . "' + interval " . $this->maxLength . " minute ) @@ -1120,6 +1127,13 @@ public function load_user_data() { } public function record_failed_login($_login) { + + include_once(dirname(__FILE__).'/HTMLPurifier.standalone.php'); + $config = HTMLPurifier_Config::createDefault(); + $config->set('Core.Encoding', 'utf-8'); // replace with your encoding + $config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype + $purifier = new HTMLPurifier($config); + # Une tentative de login avec un mot de passe erronnée a été détectée. $test_login = sql_count(sql_query("SELECT login FROM utilisateurs WHERE (login = '".$_login."')")); @@ -1131,9 +1145,9 @@ public function record_failed_login($_login) { '" . $_login . "', now(), '', - '" . $_SERVER['REMOTE_ADDR'] . "', - '" . $_SERVER['HTTP_USER_AGENT'] . "', - '" . $_SERVER['HTTP_REFERER'] . "', + '" . $purifier->purify($_SERVER['REMOTE_ADDR']) . "', + '" . $purifier->purify($_SERVER['HTTP_USER_AGENT']) . "', + '" . $purifier->purify($_SERVER['HTTP_REFERER']) . "', '4', now());"; $res = sql_query($sql); @@ -1156,7 +1170,7 @@ public function record_failed_login($_login) { // Le login n'existe pas. On fait donc un test sur l'IP. $sql = "select LOGIN from log where START > now() - interval " . getSettingValue("temps_compte_verrouille") . " minute and - REMOTE_ADDR = '".$_SERVER['REMOTE_ADDR']."'"; + REMOTE_ADDR = '".$purifier->purify($_SERVER['REMOTE_ADDR'])."'"; $res_test = sql_query($sql); if (sql_count($res_test) <= 10) { // On a moins de 10 enregistrements. On enregistre et on ne renvoie pas de code @@ -1165,9 +1179,9 @@ public function record_failed_login($_login) { '" . $_login . "', now(), '', - '" . $_SERVER['REMOTE_ADDR'] . "', - '" . $_SERVER['HTTP_USER_AGENT'] . "', - '" . $_SERVER['HTTP_REFERER'] . "', + '" . $purifier->purify($_SERVER['REMOTE_ADDR']) . "', + '" . $purifier->purify($_SERVER['HTTP_USER_AGENT']) . "', + '" . $purifier->purify($_SERVER['HTTP_REFERER']) . "', '4', now() ) diff --git a/lib/share.inc.php b/lib/share.inc.php index 65c741aa1..20cb5f036 100644 --- a/lib/share.inc.php +++ b/lib/share.inc.php @@ -874,6 +874,13 @@ function detect_browser($HTTP_USER_AGENT) { fwrite($f,date("d/m/Y His").": $HTTP_USER_AGENT\n"); fclose($f); */ + include_once(dirname(__FILE__).'/HTMLPurifier.standalone.php'); + $config = HTMLPurifier_Config::createDefault(); + $config->set('Core.Encoding', 'utf-8'); // replace with your encoding + $config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype + $purifier = new HTMLPurifier($config); + + if(function_exists('preg_match')) { if (preg_match('/Opera(\/| )([0-9].[0-9]{1,2})/', $HTTP_USER_AGENT, $log_version)) { $BROWSER_VER = $log_version[2]; @@ -903,7 +910,7 @@ function detect_browser($HTTP_USER_AGENT) { } } else { $BROWSER_VER = ''; - $BROWSER_AGENT = $HTTP_USER_AGENT; + $BROWSER_AGENT = $purifier->purify($HTTP_USER_AGENT); } } elseif(function_exists('mb_ereg')) { @@ -933,7 +940,7 @@ function detect_browser($HTTP_USER_AGENT) { $BROWSER_AGENT = 'MOZILLA'; } else { $BROWSER_VER = ''; - $BROWSER_AGENT = $HTTP_USER_AGENT; + $BROWSER_AGENT = $purifier->purify($HTTP_USER_AGENT); } } elseif(function_exists('ereg')) { @@ -963,12 +970,12 @@ function detect_browser($HTTP_USER_AGENT) { $BROWSER_AGENT = 'Firefox'; } else { $BROWSER_VER = ''; - $BROWSER_AGENT = $HTTP_USER_AGENT; + $BROWSER_AGENT = $purifier->purify($HTTP_USER_AGENT); } } else { $BROWSER_VER = ''; - $BROWSER_AGENT = $HTTP_USER_AGENT; + $BROWSER_AGENT = $purifier->purify($HTTP_USER_AGENT); } return $BROWSER_AGENT." - ".$BROWSER_VER; } From c9f813db847027aefa5ee9c5358fa93771638336 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 11 Oct 2013 10:04:41 +0200 Subject: [PATCH 1148/1150] =?UTF-8?q?Correctif=20sur=20une=20r=C3=A9initia?= =?UTF-8?q?lisation=20de=20variable.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- edt_organisation/fonctions_edt.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/edt_organisation/fonctions_edt.php b/edt_organisation/fonctions_edt.php index e33fc43fa..e3f07b8a8 100644 --- a/edt_organisation/fonctions_edt.php +++ b/edt_organisation/fonctions_edt.php @@ -839,7 +839,7 @@ function ContenuCreneau($id_creneaux, $jour_semaine, $type_edt, $enseignement, $ $aff_matiere = $rep_2_matiere['id_matiere']; } - $info_alt=""; + //$info_alt=""; $req_tmp_grp = mysql_query("SELECT * FROM groupes WHERE id='".$enseignement."'"); if(mysql_num_rows($req_tmp_grp)>0) { $lig_tmp_grp = mysql_fetch_object($req_tmp_grp); From 2cb684566d40074d456dd1a6cc8e9d09d792ebf3 Mon Sep 17 00:00:00 2001 From: Stephane Boireau Date: Fri, 11 Oct 2013 10:43:23 +0200 Subject: [PATCH 1149/1150] Ajout d'information en attribut title. --- edt_organisation/fonctions_edt.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/edt_organisation/fonctions_edt.php b/edt_organisation/fonctions_edt.php index e3f07b8a8..993376d00 100644 --- a/edt_organisation/fonctions_edt.php +++ b/edt_organisation/fonctions_edt.php @@ -691,6 +691,7 @@ function ContenuCreneau($id_creneaux, $jour_semaine, $type_edt, $enseignement, $ if (($id_aid != NULL) AND ($id_aid != "")) { + //$info_alt.="\C'est un AID\n"; //echo "c'est un AID"; $req_nom_aid = mysql_query("SELECT nom, indice_aid FROM aid WHERE id = '".$id_aid."'"); $rep_nom_aid = mysql_fetch_array($req_nom_aid); @@ -734,6 +735,7 @@ function ContenuCreneau($id_creneaux, $jour_semaine, $type_edt, $enseignement, $ } else if ($enseignement != "") { + //$info_alt.="\nEnseignement $enseignement\n"; // on récupère le nom court des groupes en question $req_id_classe = mysql_query("SELECT id_classe FROM j_groupes_classes WHERE id_groupe ='".$enseignement."'"); $res=""; @@ -850,7 +852,7 @@ function ContenuCreneau($id_creneaux, $jour_semaine, $type_edt, $enseignement, $ else { - + //$info_alt.="\nGroupe non renseigné dans l'appel de la fonction.\n"; // le groupe n'est pas renseigné, donc, on affiche en fonction $aff_matiere = 'inc.'; $classe_js = NULL; @@ -915,6 +917,13 @@ function ContenuCreneau($id_creneaux, $jour_semaine, $type_edt, $enseignement, $ $ChaineComplete=""; // 20130128 if(($contenu_creneaux_edt_avec_span_title!="n")&&($info_alt!="")) { + if($aff_sem!="") { + $info_alt.="\nEn semaine ".$rep_sem["id_semaine"]; + } + if($enseignement!="") { + $info_alt.="\n(enseignement n°".$enseignement.")"; + } + $ChaineComplete.=""; } From 6bcddb11af4726b226a540d6a08b5483181acccf Mon Sep 17 00:00:00 2001 From: Josselin Jacquard Date: Fri, 11 Oct 2013 20:09:23 +0200 Subject: [PATCH 1150/1150] tri par classe pour absence saisir_groupe.php --- mod_abs2/saisir_groupe.php | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/mod_abs2/saisir_groupe.php b/mod_abs2/saisir_groupe.php index 0ee1549c2..2821b6eba 100644 --- a/mod_abs2/saisir_groupe.php +++ b/mod_abs2/saisir_groupe.php @@ -442,6 +442,25 @@ function format_selectbox_heure($utilisateur, $id_creneau, $dt_date_absence_elev ->distinct(); $eleve_col = $query->find(); } +$eleve_col->uasort(function($a, $b) { + $aclasseNom=''; + $aclasse = $a->getClasse(); + if ($aclasse != null) { + $aclasseNom = $aclasse->getNom(); + } + $bclasseNom=''; + $bclasse = $b->getClasse(); + if ($bclasse != null) { + $bclasseNom = $bclasse->getNom(); + } + + if ($aclasseNom != $bclasseNom) { + return $aclasseNom > $bclasseNom; + } else { + //on tri par nom + return $a->getNom().''.$a->getPrenom() > $b->getNom().''.$b->getPrenom(); + } +}); //l'utilisateurs a-t-il deja saisie ce creneau ? $deja_saisie = false;