Пример #1
0
	public function testGetPeriodeNote()
	{
		$sixieme_A = ClasseQuery::create()->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(JEUDI_1a_s48j4);
		$this->assertEquals('2',$periode->getNumPeriode(),'à la date du '.JEUDI_1a_s48j4.', il doit y avoir la derniére période par défaut');
		
		$periode = $sixieme_A->getPeriodeNote(MARDI_s40j2);
		$this->assertNotNull($periode,'à la date du '.MARDI_s40j2.' 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(MARDI_s50j2);
		$this->assertNotNull($periode,'à la date du '.MARDI_s50j2.', 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(SAMEDI_a1_s19j6);
		$this->assertEquals('2',$periode->getNumPeriode(),'à la date du '.SAMEDI_a1_s19j6.', 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();
                $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(SAMEDI_a1_s19j6);
		$this->assertNotNull($periode,'à la date du '.SAMEDI_a1_s19j6.', 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());
	}
Пример #2
0
if(isset($odt)&&
	(($odt=="exclusion")||
	($odt=="travail")||
	($odt=="autre"))) { //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'];
Пример #3
0
		afficher_div('edt_classe','y',-20,20);
	}
</script>\n";
	}
?>


<!-- Affichage des réponses-->
<table class="tab_edt" summary="Liste des absents r&eacute;partie par classe">
<?php
// 20130416
$tab_dest_message=array();
$cpt_user=0;

// On affiche la liste des classes
$classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct()
					    ->leftJoinWith('Classe.JGroupesClasses')
					    ->leftJoinWith('JGroupesClasses.Groupe')
						->find();
$dt_debut_creneau = clone $dt_date_absence_eleve;
$dt_debut_creneau->setTime($choix_creneau_obj->getHeuredebutDefiniePeriode('H'), $choix_creneau_obj->getHeuredebutDefiniePeriode('i'));
$dt_fin_creneau = clone $dt_date_absence_eleve;
$dt_fin_creneau->setTime($choix_creneau_obj->getHeurefinDefiniePeriode('H'), $choix_creneau_obj->getHeurefinDefiniePeriode('i'));
foreach($classe_col as $classe){
    //$classe = new Classe();
	// On détermine si sur deux colonnes, le compte tombe juste
	$calc = $classe_col->count() / 2;
	$modulo = $classe_col->count() % 2;
	$num_id = 'id'.remplace_accents($classe->getNom(), 'all');
	$id_classe = $classe->getId();
	if ($classe_col->isEven()) {
Пример #4
0
	private function import_user_profile_from_scribe() {
        global $mysqli;
		# On ne peut arriver ici quand dans le cas où on a une authentification réussie.
		# L'import d'un utilisateur ne peut se faire qu'à partir d'un LDAP de Scribe, ici.
		if (!LDAPServer::is_setup()) {
			return false;
			die();
		} else {
      
      // config_cas.inc.php est le fichier d'informations de connexions au serveur cas
      $path = dirname(__FILE__)."/LDAPServerScribe.class.php";
      include($path);
      
			# Le serveur LDAP est configuré, on y va.
			# Encore un dernier petit test quand même : est-ce que l'utilisateur
			# est bien absent de la base.
			$sql = "SELECT login FROM utilisateurs WHERE (login = '******')"; 
                $resultat = mysqli_query($mysqli, $sql);  
                if ($resultat->num_rows != "0") {
                    $resultat->close();
                    return false;
                    die();                    
                }
                $resultat->close();

			$ldap_server = new LDAPServerScribe;
      
			$user = $ldap_server->get_user_profile($this->login);
			if ($user) {
				# On ne refait pas de tests ou de formattage. La méthode get_user_profile
				# s'occupe de tout.
        
        $errors = false;
        
        // On s'occupe de tous les traitements spécifiques à chaque statut
        
        // Eleve
        if ($user['statut'] == 'eleve') {
          // On a un élève : on vérifie s'il existe dans la table 'eleves',
          // sur la base de son INE, ou nom et prénom.
          $sql_test = "SELECT * FROM eleves
                            WHERE (no_gep = '".$user['raw']['ine'][0]."'
                                OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))";
                 
                $resultat = mysqli_query($mysqli, $sql);  
                $test = $resultat->num_rows;
                $resultat->close();
          
          if ($test == 0) {
            // L'élève n'existe pas du tout. On va donc le créer.
            $nouvel_eleve = new Eleve();
            $nouvel_eleve->setLogin($this->login);
            $nouvel_eleve->setNom($user['nom']);
            $nouvel_eleve->setPrenom($user['prenom']);
            $nouvel_eleve->setSexe($user['raw']['entpersonsexe'][0]);
            
            $naissance = $user['raw']['entpersondatenaissance'][0];
            if ($naissance != '') {
              $annee = mb_substr($naissance, 0, 4);
              $mois = mb_substr($naissance, 4, 2);
              $jour = mb_substr($naissance, 6, 2);
            } else {
              $annee = '0000';
              $mois = '00';
              $jour = '00';
            }
            
            $nouvel_eleve->setNaissance("$annee-$mois-$jour");
            $nouvel_eleve->setLieuNaissance('');
            $nouvel_eleve->setElenoet($user['raw']['employeenumber'][0] || '');
            $nouvel_eleve->setEreno('');
            $nouvel_eleve->setEleid($user['raw']['intid'][0] || '');
            $nouvel_eleve->setNoGep($user['raw']['ine'][0] || '');
            $nouvel_eleve->setEmail($user['email']);
            
            if (!$nouvel_eleve->save()) $errors = true;
            
            /*
             * Récupération des CLASSES de l'eleve :
             * Pour chaque eleve, on parcours ses classes, et on ne prend que celles
             * qui correspondent à la branche de l'établissement courant, et on les stocke
             */
            $nb_classes = $user['raw']['enteleveclasses']['count'];

            // Pour chaque classe trouvée..
            $eleve_added_to_classe = false;
            for ($cpt=0; $cpt<$nb_classes; $cpt++) {
                if ($eleve_added_to_classe) break;
                $classe_from_ldap = explode("$", $user['raw']['enteleveclasses'][$cpt]);
                // $classe_from_ldap[0] contient le DN de l'établissement
                // $classe_from_ldap[1] contient l'id de la classe
                $code_classe = $classe_from_ldap[1];

                // Si le SIREN de la classe trouvée correspond bien au SIREN de l'établissement courant,
                // on crée une entrée correspondante dans le tableau des classes disponibles
                // Sinon c'est une classe d'un autre établissement, on ne doit donc pas en tenir compte
                if (strcmp($classe_from_ldap[0], $ldap_server->get_base_branch()) == 0) {

                    /*
                     * On test si la classe que l'on souhaite ajouter existe déjà
                     * en la cherchant dans la base (
                     */
                    $classe_courante = ClasseQuery::create()
                          ->filterByClasse($code_classe)
                          ->findOne();

                    if ($classe_courante) {
                      
                      foreach($classe_courante->getPeriodeNotes() as $periode) {
                          // On associe l'élève à la classe
                          $sql_classe = "INSERT INTO j_eleves_classes SET
                              login = '******', 
                              id_classe = '".$classe_courante->getId()."',
                              periode = '".$periode->getNumPeriode()."'";
                                  
                            $res = mysqli_query($mysqli, $sql); 
                            $res->close();
                          
                      } // Fin boucle périodes
                      $eleve_added_to_classe = true;
                    } // Fin test classe
                } //Fin du if classe appartient a l'etablissement courant
            } //Fin du parcours des classes de l'eleve

            
            // On a maintenant un élève en base, qui appartient à sa classe
            // pour toutes les périodes à partir de la période courante
            
            // On ne l'associe pas aux enseignements, car c'est un peu trop
            // risqué et bancal pour être réalisé dynamiquement ici, dans
            // la mesure où l'on n'a pas une information précise sur la
            // composition des groupes.
            
            
          } else {
            // L'élève existe déjà dans la base. On ne créé que l'utilisateur correspondant.
            // Pour ça, on va devoir s'assurer que l'identifiant est identique !
            $sql_login = "******".$user['raw']['ine'][0]."'
                                OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))";
                    
                $resultat = mysqli_query($mysqli, $sql);
                $res = $resultatè->fetch_object();
                $test_login = $res->login;
                $resultat->close();
            
            
            if ($test_login != $this->login) {
              // Le login est différent, on ne peut rien faire... Il faudrait renommer
              // le login partout dans l'application, mais il n'existe pas de mécanisme
              // pour le faire de manière fiable.
              $errors = true;
            }
          }
          
        } elseif ($user['statut'] == 'responsable') {
          // Si on a un responsable, il faut l'associer à un élève
          
          $resp = new ResponsableEleve();
          $resp->setLogin($this->login);
          $resp->setNom($user['nom']);
          $resp->setPrenom($user['prenom']);
          $resp->setCivilite($user['raw']['personaltitle'][0]);
          $resp->setTelPers($user['raw']['homephone'][0]);
          $resp->setTelProf($user['raw']['telephonenumber'][0]);
          $resp->setTelPort($user['raw']['mobile'][0]);
          $resp->setMel($user['email']);
          $resp->setAdresseId($user['raw']['intid'][0]);
                    
          // On créé l'adresse associée
          
          $adr = new Adresse();
          $adr->setAdresseId($user['raw']['intid'][0]);
          $adr->setAdr1($user['raw']['entpersonadresse'][0]);
          $adr->setAdr2('');
          $adr->setAdr3('');
          $adr->setAdr4('');
          $adr->setCommune($user['raw']['entpersonville'][0]);
          $adr->setCp($user['raw']['entpersoncodepostal'][0]);
          $adr->setPays($user['raw']['entpersonpays'][0]);
          
          $resp->setAdresse($adr);
          
          $resp->save();

          $nb_eleves_a_charge = $user['raw']['entauxpersreleleveeleve']['count'];

          //pour chaque dn d'eleve
          for ($i=0;$i<$nb_eleves_a_charge;$i++) {
              $eleve_uid = explode(",",$user['raw']['entauxpersreleleveeleve'][$i]);
              $eleve_associe_login = mb_substr($eleve_uid[0], 4);
              $eleve_sql = "SELECT ele_id FROM eleves WHERE login = '******'";
                      
                    $eleve_query = mysqli_query($mysqli, $sql);
                    if ($eleve_query->num_rows == 1) {
                        $eleve_associe_obj = $eleve_query->fetch_object();
                        $eleve_associe_ele_id = $eleve_associe_obj->ele_id;
                        // Gepi donne un ordre aux responsables, il faut donc verifier combien de responsables sont deja enregistres pour l'eleve
                        // On initialise le numero de responsable
                        $numero_responsable = 1;
                        $req_nb_resp_deja_presents = "SELECT count(*) FROM responsables2 WHERE ele_id = '$eleve_associe_ele_id'";
                        $res_nb_resp = mysqli_query($mysqli, $req_nb_resp_deja_presents);
                        $nb_resp = $res_nb_resp->fetch_array($res_nb_resp);
                        if ($nb_resp[0] > 0) {
                            // Si deja 1 ou plusieurs responsables legaux pour cet eleve,on ajoute le nouveau responsable en incrementant son numero
                            $numero_responsable += $nb_resp[0];

                            //--
                            // TODO: tester si on a des adresses identiques, et n'utiliser qu'un seul objet adresse dans ce cas.
                            //--
                        }

                        // 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','')";
                        $insert_lien = mysqli_query($mysqli, $req_ajout_lien_eleve_resp);
                    }
            }
          
        } elseif ($user['statut'] == 'professeur') {
          // Rien de spécial à ce stade.
          
        } else {
          // Ici : que fait-on si l'on n'a pas un statut directement reconnu
          // et compatible Gepi ?
          // On applique le statut par défaut, configuré par l'admin.
          $user['statut'] = getSettingValue("statut_utilisateur_defaut");
        }
        
        // On créé l'utilisateur, s'il n'y a pas eu d'erreurs.
        if (!$errors) {
            $new_compte_utilisateur = new UtilisateurProfessionnel();
            $new_compte_utilisateur->setAuthMode('sso');
            $new_compte_utilisateur->setCivilite($user['civilite']);
            $new_compte_utilisateur->setEmail($user['email']);
            $new_compte_utilisateur->setEtat('actif');
            $new_compte_utilisateur->setLogin($this->login);
            $new_compte_utilisateur->setNom($user['nom']);
            $new_compte_utilisateur->setPrenom($user['prenom']);
            $new_compte_utilisateur->setShowEmail('no');
            $new_compte_utilisateur->setStatut($user['statut']);
            //$new_compte_utilisateur->save();
			if ($new_compte_utilisateur->save()) {
				return true;
			} else {
				return false;
			}
        }
        
			} else {
				return false;
			}
		}
	}
Пример #5
0
	/**
	 *
	 * Renvoi sous forme d'un tableau la liste des classes d'un utilisateur. Le tableau est ordonné par les noms des classes.
	 * Manually added for N:M relationship
	 * It seems that the groupes are passed by values and not by references.
	 *
	 * @param      PropelPDO $con (optional) The PropelPDO connection to use.
	 * @return     PropelObjectCollection Classes[]
	 */
	public function getClasses($criteria = null, $con = null) {
		if(null === $this->collClasses || null !== $criteria) {
			if ($this->isNew() && null === $this->collClasses) {
				// return empty collection
				$this->initClasses();
			} else {
				$collClasses = ClasseQuery::create(null, $criteria)->orderByNom()->orderByNomComplet()->filterByUtilisateurProfessionnel($this)->distinct()->find($con);
				if (null !== $criteria) {
					return $collClasses;
				}
				$this->collClasses = $collClasses;
			}
		}
		return $this->collClasses;
	}
Пример #6
0
        /**
	 * Gets a collection of Classe objects related by a many-to-many relationship
	 * to the current object by way of the j_groupes_classes cross-reference table.
	 *
	 * If the $criteria is not null, it is used to always fetch the results from the database.
	 * Otherwise the results are fetched from the database the first time, then cached.
	 * Next time the same method is called without $criteria, the cached collection is returned.
	 * If this Groupe is new, it will return
	 * an empty collection or the current collection; the criteria is ignored on a new object.
	 *
	 * @param      Criteria $criteria Optional query object to filter the query
	 * @param      PropelPDO $con Optional connection object
	 *
	 * @return     PropelCollection|array Classe[] List of Classe objects
	 */
	public function getClasses($criteria = null, PropelPDO $con = null)
	{
		if(null === $this->collClasses || null !== $criteria) {
			if ($this->isNew() && null === $this->collClasses) {
				// return empty collection
				$this->initClasses();
			} else {
                            //si collJGroupesClassess est hydraté, on va regarder si les classes aussi sont hydratée
                            $classe_hydrated = false;
                            if (null !== $this->collJGroupesClassess) {
                                $classe_hydrated = true;
                                foreach($this->collJGroupesClassess as $jgroupeclasse) {
                                    if ($jgroupeclasse === null) continue;
                                    $classe_hydrated = $classe_hydrated && $jgroupeclasse->isClasseHydrated();
                                    if (!$classe_hydrated) break;
                                }
                            }
                            if (!$classe_hydrated || null !== $criteria) {//on refait une requete
				$collClasses = ClasseQuery::create(null, $criteria)
					->filterByGroupe($this)
					->find($con);
				if (null !== $criteria) {
					return $collClasses;
				}
				$this->collClasses = $collClasses;
                            } else {//on utilise ce qui est déjà hydraté
                                $this->initClasses();
                                foreach ($this->collJGroupesClassess as $jgroupeclasse) {
                                    $this->collClasses->add($jgroupeclasse->getClasse());
                                }
                            }
			}
		}
		return $this->collClasses;
	}
Пример #7
0
 /**
  * Renvoie la liste des classes de GEPI avec la liste des professeurs pour chaque classe
  * classe, liste prof dans cette classe
  *
  * @return array Tableau des classes de Gepi : nom, nom_complet, '', '', '', '', liste des logins des professeurs de la classe
  */
 public function listeClassesAvecProfesseurs()
 {
     $classes = ClasseQuery::create()->find();
     $retour = $this->_format == 'xml' ? '<?xml version=\'1.0\' encoding=\'UTF-8\'?><classes>' : array();
     foreach ($classes as $classe) {
         $professeurs = $this->_format == 'xml' ? '' : array();
         // Pour chaque classe, on liste les groupes
         $groupes = $classe->getJGroupesClassessJoinGroupe();
         foreach ($groupes as $groupe) {
             $profs = $groupe->getGroupe()->getJGroupesProfesseurssJoinUtilisateurProfessionnel();
             // Puis on récupère le login des professeurs qui ont au moins un enseignement dans cette classe.
             foreach ($profs as $prof) {
                 if ($this->_format == 'xml') {
                     $professeurs .= '
         <professeur>' . $prof->getUtilisateurProfessionnel()->getlogin() . '</professeur>';
                 } else {
                     $professeurs[] = $prof->getUtilisateurProfessionnel()->getlogin();
                 }
             }
         }
         if ($this->_format == 'xml') {
             $retour .= '
       <classe>
         <nom>' . $classe->getNom() . '</nom>
         <nomcomplet>' . $classe->getNomComplet() . '</nomcomplet>
         ' . $professeurs . '
       </classe>
                 ';
         } else {
             $retour[] = array($classe->getNom(), $classe->getNomComplet(), '', '', '', '', $professeurs);
         }
     }
     // foreach ($classes as $classe){
     if ($this->_format == 'xml') {
         $retour .= '</classes>';
     }
     return $retour;
 }
Пример #8
0
	/**
	 *
	 * Renvoi sous forme d'un tableau la liste des classes d'un eleves.
	 * Il peut y avoir dans le modèle plusieurs classes associés à un élève, mais il faut l'éviter en pratique
	 *
	 * @param      mixed $periode numeric, DateTime ou PeriodeNote
	 * @return     PropelObjectCollection Classes[]
	 *
	 */
	public function getClasses($periode = null) {
		if ($periode != null && !is_numeric($periode) &&  !($periode instanceOf PeriodeNote) && !($periode instanceOf DateTime)) {
			throw new PropelException('$periode doit être de type numeric|DateTime|PeriodeNote');
		}
		//on va récupérer le numéro de période $periode_num
		if (is_numeric($periode)) {
			$periode_num = $periode;
		} else {
			if ($periode instanceOf PeriodeNote) {
				$periode_num = $periode->getNumPeriode();
			} else {
				//$periode devrait maintenant être un DateTime (ou null)
				$periode = $this->getPeriodeNote($periode);//on récupère un objet période qui englobe la date
				if ($periode != null) {
					$periode_num = $periode->getNumPeriode();
				} else {
					return new PropelObjectCollection();//si la période est nulle, c'est que aucune classe n'a été assignée pour le paramêtre passé
				}
			}
		}
		
		if(!isset($this->collClasses[$periode_num]) || null === $this->collClasses[$periode_num]) {
			if ($this->isNew() && null === $this->collClasses[$periode_num]) {
				// return empty collection
				$this->initClasses($periode_num);
			} else {
				//on optimise si les jointure sont déjà hydratées, sinon on fait une requete
				$classe_hydrated = false;
				if (null !== $this->collJEleveClasses) {
				    //on teste si la collection de collJEleveClasses est hydratee avec les classes
				    if ($this->collJEleveClasses->getFirst() != null) {
						if ($this->collJEleveClasses->getFirst()->isClasseHydrated()) {
						    $classe_hydrated = true;
						}
				    }
				}

				if ($classe_hydrated) {
				    foreach ($this->getJEleveClasses() as $JEleveClasse) {
						if ($JEleveClasse->getClasse() != null) {
						    if(!isset($this->collClasses[$JEleveClasse->getPeriode()]) || null === $this->collClasses[$JEleveClasse->getPeriode()]) {
							$this->initClasses($JEleveClasse->getPeriode());
						    }
						    $this->collClasses[$JEleveClasse->getPeriode()]->add($JEleveClasse->getClasse());
						}
				    }
				    if (!isset($this->collClasses[$periode_num]) || $this->collClasses[$periode_num] == null) {
						//rien n'a été trouvé pour cette période, on renvoi une collection vide
						$this->initClasses($periode_num);
				    }
				} else {
				    $query = ClasseQuery::create();
				    $query->useJEleveClasseQuery()->filterByEleve($this)->filterByPeriode($periode_num)->endUse();
				    $query->orderByNomComplet()->distinct();
				    $this->collClasses[$periode_num] = $query->find();
				}
			}
		}
		return $this->collClasses[$periode_num];
	}
Пример #9
0
        $titre_infobulle = "EDT de la classe de <span id='span_id_nom_classe'></span>";
        $texte_infobulle = "";
        $tabdiv_infobulle[] = creer_div_infobulle('edt_classe', $titre_infobulle, "", $texte_infobulle, "", 40, 0, 'y', 'y', 'n', 'n');
        echo "<style type='text/css'>\r\n\t.lecorps {\r\n\t\tmargin-left:0px;\r\n\t}\r\n</style>\r\n\r\n<script type='text/javascript'>\r\n\tfunction affiche_edt_en_infobulle(id_classe, classe) {\r\n\t\tdocument.getElementById('span_id_nom_classe').innerHTML=classe;\r\n\r\n\t\tnew Ajax.Updater(\$('edt_classe_contenu_corps'),'../edt_organisation/index_edt.php?login_edt='+id_classe+'&type_edt_2=classe&visioedt=classe1&no_entete=y&no_menu=y&mode_infobulle=y',{method: 'get'});\r\n\t\tafficher_div('edt_classe','y',-20,20);\r\n\t}\r\n</script>\n";
    }
    ?>


<!-- Affichage des réponses-->
<table class="tab_edt" summary="Liste des absents r&eacute;partie par classe">
<?php 
    // 20130416
    $tab_dest_message = array();
    $cpt_user = 0;
    // On affiche la liste des classes
    $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct()->leftJoinWith('Classe.JGroupesClasses')->leftJoinWith('JGroupesClasses.Groupe')->find();
    $dt_debut_creneau = clone $dt_date_absence_eleve;
    $dt_debut_creneau->setTime($choix_creneau_obj->getHeuredebutDefiniePeriode('H'), $choix_creneau_obj->getHeuredebutDefiniePeriode('i'));
    $dt_fin_creneau = clone $dt_date_absence_eleve;
    $dt_fin_creneau->setTime($choix_creneau_obj->getHeurefinDefiniePeriode('H'), $choix_creneau_obj->getHeurefinDefiniePeriode('i'));
    foreach ($classe_col as $classe) {
        //$classe = new Classe();
        // On détermine si sur deux colonnes, le compte tombe juste
        $calc = $classe_col->count() / 2;
        $modulo = $classe_col->count() % 2;
        $num_id = 'id' . remplace_accents($classe->getNom(), 'all');
        $id_classe = $classe->getId();
        if ($classe_col->isEven()) {
            echo '<tr>';
        }
        //	echo '	<td>
Пример #10
0
echo '<div>';
//echo '<nobr>';
echo '<span style="white-space: nowrap;"> ';
echo 'Classe';
echo '<input type="image" src="../images/up.png" title="monter" style="width:15px; height:15px; vertical-align: middle;';
if ($order == "asc_classe") {echo "border-style: solid; border-color: red;";} else {echo "border-style: solid; border-color: silver;";}
echo 'border-width:1px;" alt="" name="order" value="asc_classe"/>';
echo '<input type="image" src="../images/down.png" title="monter" style="width:15px; height:15px; vertical-align: middle;';
if ($order == "des_classe") {echo "border-style: solid; border-color: red;";} else {echo "border-style: solid; border-color: silver;";}
echo 'border-width:1px;" alt="" name="order" value="des_classe"/>';
//echo '</nobr>';
echo '</span>';
echo '<br />';
echo ("<select name=\"filter_classe\" onchange='submit()'>");
echo "<option value=''></option>\n";
foreach (ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct()->find() as $classe) {
	echo "<option value='".$classe->getId()."'";
	if (getFiltreRechercheParam('filter_classe') === (string) $classe->getId()) echo " SELECTED ";
	echo ">";
	echo $classe->getNom();
	echo "</option>\n";
}
echo "</select>";
echo '</div>';

//en tete filtre groupe
echo '<div>';
//echo '<nobr>';
echo '<span style="white-space: nowrap;"> ';
echo 'Groupe';
echo '<input type="image" src="../images/up.png" title="monter" style="width:15px; height:15px; vertical-align: middle;';
Пример #11
0
	/**
	 * Gets the number of Classe objects related by a many-to-many relationship
	 * to the current object by way of the j_groupes_classes cross-reference table.
	 *
	 * @param      Criteria $criteria Optional query object to filter the query
	 * @param      boolean $distinct Set to true to force count distinct
	 * @param      PropelPDO $con Optional connection object
	 *
	 * @return     int the number of related Classe objects
	 */
	public function countClasses($criteria = null, $distinct = false, PropelPDO $con = null)
	{
		if(null === $this->collClasses || null !== $criteria) {
			if ($this->isNew() && null === $this->collClasses) {
				return 0;
			} else {
				$query = ClasseQuery::create(null, $criteria);
				if($distinct) {
					$query->distinct();
				}
				return $query
					->filterByGroupe($this)
					->count($con);
			}
		} else {
			return count($this->collClasses);
		}
	}
Пример #12
0
	/**
	 * Removes this object from datastore and sets delete attribute.
	 *
	 * @param      PropelPDO $con
	 * @return     void
	 * @throws     PropelException
	 * @see        BaseObject::setDeleted()
	 * @see        BaseObject::isDeleted()
	 */
	public function delete(PropelPDO $con = null)
	{
		if ($this->isDeleted()) {
			throw new PropelException("This object has already been deleted.");
		}

		if ($con === null) {
			$con = Propel::getConnection(ClassePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
		}

		$con->beginTransaction();
		try {
			$deleteQuery = ClasseQuery::create()
				->filterByPrimaryKey($this->getPrimaryKey());
			$ret = $this->preDelete($con);
			if ($ret) {
				$deleteQuery->delete($con);
				$this->postDelete($con);
				$con->commit();
				$this->setDeleted(true);
			} else {
				$con->commit();
			}
		} catch (Exception $e) {
			$con->rollBack();
			throw $e;
		}
	}
Пример #13
0
 }
 // On se connecte au LDAP
 $ldap->connect();
 $equipes = $ldap->get_all_equipes();
 $nb_equipes = $equipes['count'];
 $nombre_enseignements = 0;
 # On initialise un tableau avec juste les données nécessaires
 $donnees_equipes = array();
 for ($cpt = 0; $cpt < $equipes['count']; $cpt++) {
     $code_classe = str_replace('profs-', '', $equipes[$cpt]['cn'][0]);
     $donnees_equipes[$code_classe] = array();
     for ($i = 0; $i < $equipes[$cpt]['memberuid']['count']; $i++) {
         $donnees_equipes[$code_classe][] = $equipes[$cpt]['memberuid'][$i];
     }
 }
 $classes = ClasseQuery::create()->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)->find();
 // On boucle sur chaque équipe, ce qui revient à boucler sur les classes
 foreach ($classes as $classe_courante) {
     # On a une classe, on poursuit
     if (array_key_exists($classe_courante->getNom(), $donnees_equipes)) {
         # On initialisation la liste des élèves de la classe
         $students_query = mysqli_query($GLOBALS["mysqli"], "SELECT login FROM j_eleves_classes WHERE \n                                        id_classe = '" . $classe_courante->getId() . "' AND\n                                        periode = '1'");
         unset($students);
         $students = array();
         while ($row = mysqli_fetch_object($students_query)) {
             $students[] = $row->login;
         }
         # On passe tous les profs de l'équipe
         foreach ($donnees_equipes[$classe_courante->getNom()] as $login_prof) {
             $prof = UtilisateurProfessionnelPeer::retrieveByPK($login_prof);
             if ($prof) {
Пример #14
0
	/**
	 * Get the associated Classe object
	 *
	 * @param      PropelPDO Optional Connection object.
	 * @return     Classe The associated Classe object.
	 * @throws     PropelException
	 */
	public function getClasse(PropelPDO $con = null)
	{
		if ($this->aClasse === null && ($this->id_classe !== null)) {
			$this->aClasse = ClasseQuery::create()->findPk($this->id_classe, $con);
			/* The following can be used additionally to
				guarantee the related object contains a reference
				to this object.  This level of coupling may, however, be
				undesirable since it could result in an only partially populated collection
				in the referenced object.
				$this->aClasse->addJScolClassess($this);
			 */
		}
		return $this->aClasse;
	}
            $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_cours</span><br/>";
        }
    }
} else {
    $current_creneau = EdtCreneauQuery::create()->findPk($id_creneau);
    if ($current_creneau == null) {
        $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_creneau</span><br/>";
    }
}
if ($type_selection == 'id_groupe') {
    $current_groupe = GroupeQuery::create()->findPk($id_groupe);
    if ($current_groupe == null) {
        $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_groupe</span><br/>";
    }
} elseif ($type_selection == 'id_classe') {
    $current_classe = ClasseQuery::create()->findPk($id_classe);
    if ($current_classe == null) {
        $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_classe</span><br/>";
    }
} elseif ($type_selection == 'id_aid') {
    $current_aid = AidDetailsQuery::create()->findPk($id_aid);
    if ($current_aid == null) {
        $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_aid</span><br/>";
    }
}
$id_groupe = null;
$id_classe = null;
$id_aid = null;
$id_creneau = null;
$id_cours = null;
if ($current_groupe != null) {
Пример #16
0
    echo "border-style: solid; border-color: silver;";
}
echo 'border-width:1px;" alt="" name="order" value="asc_eleve" onclick="this.form.order.value = this.value"/>';
echo '<input type="image" src="../images/down.png" title="descendre" style="vertical-align: middle;width:15px; height:15px; ';
if ($order == "des_eleve") {
    echo "border-style: solid; border-color: red;";
} else {
    echo "border-style: solid; border-color: silver;";
}
echo 'border-width:1px;" alt="" name="order" value="des_eleve" onclick="this.form.order.value = this.value"/>';
//echo '</nobr>';
echo '</span>';
echo '<br /><input type="text" name="filter_eleve" value="' . getFiltreRechercheParam('filter_eleve') . '" size="8"/>';
//on affiche une boite de selection avec les classe
if (getSettingValue("GepiAccesAbsTouteClasseCpe") == 'yes' && $utilisateur->getStatut() == "cpe") {
    $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->find();
} else {
    $classe_col = $utilisateur->getClasses();
}
if (!$classe_col->isEmpty()) {
    echo '<br />';
    // echo '<input type="hidden" name="type_selection" value="id_classe"/>';
    echo "<select multiple name='filter_classe[]' onchange='submit()' style='width:100%' title='Sélectionnez une ou plusieurs classes'>";
    // echo "<option value='SANS'>choisissez une classe</option>\n";
    echo "<option value='SANS'>Toutes les classes</option>\n";
    foreach ($classe_col as $classe) {
        echo "<option value='" . $classe->getId() . "'";
        if (isFiltreRechercheParam('filter_classe') && getFiltreRechercheParam('filter_classe') != "SANS") {
            if (in_array($classe->getId(), getFiltreRechercheParam('filter_classe'))) {
                echo " selected='selected' ";
            }
Пример #17
0
	/**
	 * Returns a new ClasseQuery object.
	 *
	 * @param     string $modelAlias The alias of a model in the query
	 * @param     Criteria $criteria Optional Criteria to build the query from
	 *
	 * @return    ClasseQuery
	 */
	public static function create($modelAlias = null, $criteria = null)
	{
		if ($criteria instanceof ClasseQuery) {
			return $criteria;
		}
		$query = new ClasseQuery();
		if (null !== $modelAlias) {
			$query->setModelAlias($modelAlias);
		}
		if ($criteria instanceof Criteria) {
			$query->mergeWith($criteria);
		}
		return $query;
	}