Exemple #1
0
	$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
	/**
	 * Get the associated Groupe object
	 *
	 * @param      PropelPDO Optional Connection object.
	 * @return     Groupe The associated Groupe object.
	 * @throws     PropelException
	 */
	public function getGroupe(PropelPDO $con = null)
	{
		if ($this->aGroupe === null && ($this->id_groupe !== null)) {
			$this->aGroupe = GroupeQuery::create()->findPk($this->id_groupe, $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->aGroupe->addJGroupesMatieress($this);
			 */
		}
		return $this->aGroupe;
	}
            //$id_creneau = $current_cours->getIdDefiniePeriode();
            $current_creneau = $current_cours->getEdtCreneau();
            $current_groupe = $current_cours->getGroupe();
            $current_aid = $current_cours->getAidDetails();
        } else {
            $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;
	/**
	 * Gets a collection of Groupe objects related by a many-to-many relationship
	 * to the current object by way of the j_groupes_professeurs 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 UtilisateurProfessionnel 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 Groupe[] List of Groupe objects
	 */
	public function getGroupes($criteria = null, PropelPDO $con = null)
	{
		if(null === $this->collGroupes || null !== $criteria) {
			if ($this->isNew() && null === $this->collGroupes) {
				// return empty collection
				$this->initGroupes();
			} else {
				if ($this->statut == "professeur") {
 				    if (null !== $criteria) {
					$collGroupes = GroupeQuery::create(null, $criteria)
					    ->orderByName()
					    ->filterByUtilisateurProfessionnel($this)
					    ->leftJoin('Groupe.JGroupesClasses')->with('JGroupesClasses')
					    ->leftJoin('JGroupesClasses.Classe')->with('Classe')
					    ->orderBy('Classe.Nom')
					    ->find($con);
				    } else {
					//on utilise du sql directement pour optimiser la requete
					$sql = "SELECT /* getGroupes manual sql */ groupes.ID, groupes.NAME, groupes.DESCRIPTION, groupes.RECALCUL_RANG, j_groupes_classes.ID_GROUPE, j_groupes_classes.ID_CLASSE, j_groupes_classes.PRIORITE, j_groupes_classes.COEF, j_groupes_classes.CATEGORIE_ID, j_groupes_classes.SAISIE_ECTS, j_groupes_classes.VALEUR_ECTS, classes.ID, classes.CLASSE, classes.NOM_COMPLET, classes.SUIVI_PAR, classes.FORMULE, classes.FORMAT_NOM, classes.DISPLAY_RANG, classes.DISPLAY_ADDRESS, classes.DISPLAY_COEF, classes.DISPLAY_MAT_CAT, classes.DISPLAY_NBDEV, classes.DISPLAY_MOY_GEN, classes.MODELE_BULLETIN_PDF, classes.RN_NOMDEV, classes.RN_TOUTCOEFDEV, classes.RN_COEFDEV_SI_DIFF, classes.RN_DATEDEV, classes.RN_SIGN_CHEFETAB, classes.RN_SIGN_PP, classes.RN_SIGN_RESP, classes.RN_SIGN_NBLIG, classes.RN_FORMULE, classes.ECTS_TYPE_FORMATION, classes.ECTS_PARCOURS, classes.ECTS_CODE_PARCOURS, classes.ECTS_DOMAINES_ETUDE, classes.ECTS_FONCTION_SIGNATAIRE_ATTESTATION FROM `groupes` INNER JOIN j_groupes_professeurs ON (groupes.ID=j_groupes_professeurs.ID_GROUPE) LEFT JOIN j_groupes_classes ON (groupes.ID=j_groupes_classes.ID_GROUPE) LEFT JOIN classes ON (j_groupes_classes.ID_CLASSE=classes.ID) WHERE j_groupes_professeurs.LOGIN='******' ORDER BY groupes.NAME ASC,classes.CLASSE ASC";

					$con = Propel::getConnection(GroupePeer::DATABASE_NAME, Propel::CONNECTION_READ);
					$stmt = $con->prepare($sql);
					$stmt->execute();

					$collGroupes = UtilisateurProfessionnel::getGroupeFormatter()->format($stmt);

//					$collGroupes = GroupeQuery::create(null, $criteria)
//					    ->orderByName()
//					    ->filterByUtilisateurProfessionnel($this)
//					    ->leftJoin('Groupe.JGroupesClasses')->with('JGroupesClasses')
//					    ->leftJoin('JGroupesClasses.Classe')->with('Classe')
//					    ->orderBy('Classe.Nom')
//					    ->setComment('getGroupes manual sql')
//					    ->find($con);
 				    }
				} elseif ($this->statut == "cpe") {
				    //on ajoute les groupes contenant des eleves sous la responsabilite du cpe
				    $collGroupes = GroupeQuery::create(null, $criteria)
					    ->distinct()
					    ->orderByName()
					    ->useJEleveGroupeQuery()->useEleveQuery()->useJEleveCpeQuery()
					    ->filterByUtilisateurProfessionnel($this)
					    ->endUse()->endUse()->endUse()
					    ->leftJoinWith('Groupe.JGroupesClasses')
					    ->leftJoinWith('JGroupesClasses.Classe')
					    ->orderBy('Classe.Nom')
					    ->find();
				} else if ($this->statut == "scolarite") {
				    //on ajoute les groupes des classes sous la responsabilite du compte scolalite
				    $collGroupes = GroupeQuery::create(null, $criteria)
					    ->orderByName()
					    ->useJGroupesClassesQuery()->useClasseQuery()->orderBy('Classe.Nom')->useJScolClassesQuery()
					    ->filterByUtilisateurProfessionnel($this)
					    ->endUse()->endUse()->endUse()
					    ->find();
				} else {
				    //par de groupes pour les autres statuts
				    $collGroupes = new PropelObjectCollection();
				}

				if (null !== $criteria) {
					return $collGroupes;
				}
				$this->collGroupes = $collGroupes;
			}
		}
		return $this->collGroupes;
	}
	/**
	 * Gets the number of Groupe objects related by a many-to-many relationship
	 * to the current object by way of the j_groupes_professeurs 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 Groupe objects
	 */
	public function countGroupes($criteria = null, $distinct = false, PropelPDO $con = null)
	{
		if(null === $this->collGroupes || null !== $criteria) {
			if ($this->isNew() && null === $this->collGroupes) {
				return 0;
			} else {
				$query = GroupeQuery::create(null, $criteria);
				if($distinct) {
					$query->distinct();
				}
				return $query
					->filterByUtilisateurProfessionnel($this)
					->count($con);
			}
		} else {
			return count($this->collGroupes);
		}
	}
Exemple #6
0
echo "<div class='css-panes' id='containDiv'>\n";
echo "<table cellspacing='15px' cellpadding='5px'><tr>";
//on affiche une boite de selection pour l'eleve
echo "<td style='border : 1px solid; padding : 10px;'>";
echo "<form action=\"./saisir_eleve.php\" method=\"post\" style=\"width: 100%;\">\n";
echo '<p>';
echo 'Nom : <input type="hidden" name="type_selection" value="nom_eleve"/> ';
echo '<input type="text" name="nom_eleve" size="10" value="' . $nom_eleve . '"/> ';
echo '<button type="submit">Rechercher</button>';
echo '</p>';
echo '</form>';
echo '</td>';
//on affiche une boite de selection avec les groupes et les creneaux
//on affiche une boite de selection avec les aid
if (getSettingValue("GepiAccesAbsTouteClasseCpe") == 'yes' && $utilisateur->getStatut() == "cpe") {
    $groupe_col = GroupeQuery::create()->orderByName()->useJGroupesClassesQuery()->useClasseQuery()->orderByNom()->endUse()->endUse()->leftJoinWith('Groupe.JGroupesClasses')->leftJoinWith('JGroupesClasses.Classe')->find();
} else {
    $groupe_col = $utilisateur->getGroupes();
}
if (!$groupe_col->isEmpty()) {
    echo "<td style='border : 1px solid; padding : 10px;'>";
    echo "<form action=\"./saisir_eleve.php\" method=\"post\" style=\"width: 100%;\">\n";
    echo '<p>';
    echo '<input type="hidden" name="type_selection" value="id_groupe"/>';
    echo "Groupe : <select name=\"id_groupe\" class=\"small\">";
    echo "<option value='-1'>choisissez un groupe</option>\n";
    foreach ($groupe_col as $group) {
        echo "<option value='" . $group->getId() . "'";
        if ($id_groupe == $group->getId()) {
            echo " selected='selected' ";
        }
Exemple #7
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(GroupePeer::DATABASE_NAME, Propel::CONNECTION_WRITE);
		}

		$con->beginTransaction();
		try {
			$deleteQuery = GroupeQuery::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;
		}
	}
Exemple #8
0
	/**
	 * Returns a new GroupeQuery object.
	 *
	 * @param     string $modelAlias The alias of a model in the query
	 * @param     Criteria $criteria Optional Criteria to build the query from
	 *
	 * @return    GroupeQuery
	 */
	public static function create($modelAlias = null, $criteria = null)
	{
		if ($criteria instanceof GroupeQuery) {
			return $criteria;
		}
		$query = new GroupeQuery();
		if (null !== $modelAlias) {
			$query->setModelAlias($modelAlias);
		}
		if ($criteria instanceof Criteria) {
			$query->mergeWith($criteria);
		}
		return $query;
	}
Exemple #9
0
	/**
	 *
	 * Renvoi sous forme d'un tableau la liste des groupes d'un eleve pour une période donnée.
	 *
	 * @param      mixed $periode numeric, DateTime ou PeriodeNote
	 * @return     PropelObjectCollection Groupes[]
	 *
	 */
	public function getGroupes($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 cette élève pour le paramêtre passé
				}
			}
		}
		
		if(!isset($this->collGroupes[$periode_num]) || null === $this->collGroupes[$periode_num]) {
			if ($this->isNew() && null === $this->collGroupes[$periode_num]) {
				// return empty collection
				$this->initGroupes($periode_num);
			} else {
				$query = GroupeQuery::create();
				$query->useJEleveGroupeQuery()
					    ->filterByEleve($this)
					    ->filterByPeriode($periode_num)
					    ->endUse();
				$query->orderByName()->distinct();
				$this->collGroupes[$periode_num] = $query->find();
			}
		}
		return $this->collGroupes[$periode_num];
	}