Subversion Repositories eFlore/Applications.del

Compare Revisions

No changes between revisions

Ignore whitespace Rev 2139 → Rev 2140

/trunk/services/modules/0.1/observations/ListeObservations.php
73,7 → 73,7
$this->chargerDeterminations();
 
$resultat->corps = array(
'entete' => $this->navigation->getEntete(),
'entete' => $this->navigation->getEntete(),
// 5) Applatissage du tableau afin de garder l'ordre de tri
// (qui n'est pas garanti dans un objet json)
'resultats' => array_values($this->infosObsOrdonnees));
107,28 → 107,29
}
private function renvoyerRequeteSelonType() {
if($this->monActiviteEstDemandee()) {
$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
if($this->monActiviteEstDemandee()) {
$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
$utilisateur = $gestion_utilisateur->getUtilisateur();
if ($utilisateur['connecte'] === true) {
$id_utilisateur = $utilisateur['id_utilisateur'];
if ($utilisateur['connecte'] === true) {
$id_utilisateur = $utilisateur['id_utilisateur'];
$requete = $this->sql->getRequeteIdObsMonactiviteTout($id_utilisateur, $this->sql->getLimit()).' -- '.__FILE__.':'.__LINE__;
// Enregistrement de la date de consultation pour ne pas réafficher des événements déjà consultés
$gestion_utilisateur->setDerniereDateConsultationEvenements($id_utilisateur, date('Y-m-d H:i:s'));
} else {
//TODO: que faire si l'on n'est pas connecté ?
}
} else {
$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '.
'FROM del_observation AS do '.
$this->sql->getJoin().
'WHERE '.$this->sql->getWhere().
$this->sql->getGroupBy().
$this->sql->getOrderBy().
$this->sql->getLimit().
' -- '.__FILE__.':'.__LINE__;
}
} else {
$requete = 'SELECT SQL_CALC_FOUND_ROWS id_observation '.
'FROM del_observation AS do '.
$this->sql->getJoin().
'WHERE '.$this->sql->getWhere().
$this->sql->getGroupBy().
$this->sql->getOrderBy().
$this->sql->getLimit().
' -- '.__FILE__.':'.__LINE__;
}
/*echo "REQ: "; var_dump($requete);
exit;*/
return $requete;
}
155,8 → 156,8
"WHERE id_observation IN ($idsObsConcat) ".
' -- '.__FILE__.':'.__LINE__;
if ($this->monActiviteEstDemandee()) {
$this->stockerEvenementsObs($idsObsConcat);
if ($this->monActiviteEstDemandee()) {
$this->stockerEvenementsObs($idsObsConcat);
}
//Debug::printr($requete);
163,11 → 164,11
return $this->bdd->recupererTous($requete);
}
private function stockerEvenementsObs($idsObsConcat) {
$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
$utilisateur = $gestion_utilisateur->getUtilisateur();
$id_utilisateur = $utilisateur['id_utilisateur'];
private function stockerEvenementsObs($idsObsConcat) {
$gestion_utilisateur = new GestionUtilisateur($this->conteneur);
$utilisateur = $gestion_utilisateur->getUtilisateur();
$id_utilisateur = $utilisateur['id_utilisateur'];
$evenements = $this->sql->getEvenementsObs($idsObsConcat, $id_utilisateur);
$this->evenements_obs = array();
181,37 → 182,37
$type = "";
$infos = "";
// La date maximale détermine le type d'évènement
switch($evenement['date_max']) {
// Quelqu'un a fait un nouveau commentaire ou proposition
case $evenement['date_com']:
if(!empty($evenement['nom_sel_com'])) {
// La date maximale détermine le type d'évènement
switch($evenement['date_max']) {
// Quelqu'un a fait un nouveau commentaire ou proposition
case $evenement['date_com']:
if(!empty($evenement['nom_sel_com'])) {
$type = 'nouvelle_proposition';
$infos = $evenement['proposition_commentaire_nom_sel'];
} else {
$infos = $evenement['proposition_commentaire_nom_sel'];
} else {
$type = 'nouveau_commentaire';
$infos = $evenement['proposition_commentaire_texte'];
$infos = $evenement['proposition_commentaire_texte'];
}
// J'ai commenté ou fait une proposition
if($evenement['utilisateur_commentaire'] == $id_utilisateur) {
$type .= "_vous_a_obs_autre";
} else {
} else {
$type .= "_autre_sur_obs_vous";
}
}
break;
 
// Quelqu'un a répondu à un de mes commentaires ou une de mes propositions
case $evenement['date_com_reponse']:
if(!empty($evenement['nom_sel_com_parent'])) {
$type = 'nouvelle_reponse_autre_sur_proposition_vous';
} else {
$type = 'nouvelle_reponse_autre_sur_commentaire_vous';
if(!empty($evenement['nom_sel_com_parent'])) {
$type = 'nouvelle_reponse_autre_sur_proposition_vous';
} else {
$type = 'nouvelle_reponse_autre_sur_commentaire_vous';
}
$infos = $evenement['proposition_commentaire_texte_commente'];
break;
// Quelqu'un a fait un nouveau vote
case $evenement['date_vote']:
$infos = $evenement['proposition_commentaire_texte_commente'];
break;
// Quelqu'un a fait un nouveau vote
case $evenement['date_vote']:
$type = 'nouveau_vote';
// Sur une proposition qui n'est pas à moi sur une observation à moi
if($evenement['utilisateur_commentaire_vote'] != $evenement['utilisateur_observation'] && $evenement['utilisateur_commentaire_vote'] != $id_utilisateur) {
220,19 → 221,19
// Sur une proposition qui est à moi sur une observation (à moi ou non)
$type .= "_autre_sur_com_vous";
}
$infos = $evenement['proposition_commentaire_nom_sel_votee'];
break;
// Quelqu'un a validé une proposition
case $evenement['date_validation']:
$infos = $evenement['proposition_commentaire_nom_sel_votee'];
break;
// Quelqu'un a validé une proposition
case $evenement['date_validation']:
$type = "nouvelle_validation_autre_sur_prop_vous";
$infos = $evenement['proposition_validee_nom_sel'];
// $type = "nouvelle_validation_vous_a_prop_autre";
break;
// Cas qui ne devrait jamais arriver
default:
$infos = $evenement['proposition_validee_nom_sel'];
// $type = "nouvelle_validation_vous_a_prop_autre";
break;
// Cas qui ne devrait jamais arriver
default:
$type = 'inconnu';
$infos = "";
$infos = "";
}
$infos_evts = array('type' => $type, 'infos_complementaires' => $infos);
357,12 → 358,12
}
private function chargerNombreCommentaireObs() {
$idObsConcat = implode(',', $this->idsObsOrdonnees);
$requete = 'SELECT ce_observation, COUNT( id_commentaire ) AS nb '.
'FROM del_commentaire '.
"WHERE ce_observation IN ($idObsConcat) ".
'GROUP BY ce_observation '.
'-- '.__FILE__.':'.__LINE__;
$idObsConcat = implode(',', $this->idsObsOrdonnees);
$requete = 'SELECT ce_observation, COUNT( id_commentaire ) AS nb '.
'FROM del_commentaire '.
"WHERE ce_observation IN ($idObsConcat) ".
'GROUP BY ce_observation '.
'-- '.__FILE__.':'.__LINE__;
$commentaires = $this->bdd->recupererTous($requete);
$commentaires_par_obs = array();
369,8 → 370,8
foreach($commentaires as $commentaire) {
$commentaires_par_obs[$commentaire['ce_observation']] = $commentaire['nb'];
}
return $commentaires_par_obs;
return $commentaires_par_obs;
}
 
private function chargerNombreCommentaire($propositionId) {
/trunk/services/configurations/config.defaut.ini
245,6 → 245,7
masques_possibles = "masque,masque.famille,masque.genre,
masque.referentiel, masque.ns, masque.nn, masque.auteur, masque.date,
masque.commune, masque.departement, masque.tag_cel, masque.espece,
masque.pninscritsseulement,
navigation.depart, navigation.limite, tri, ordre, masque.type, masque.pays"
; Valeurs par défaut pour les paramètres de l'url :
parametres_valeurs_defaut = "
289,6 → 290,7
masque.commune, masque.departement, masque.id_zone_geo,
masque.auteur, masque.date, masque.type, masque.milieu,
masque.tag, masque.tag_cel, masque.tag_del,
masque.pninscritsseulement,
navigation.depart, navigation.limite, tri, ordre, format, masque.pays"
; Valeurs par défaut pour les paramètres de l'url :
parametres_valeurs_defaut = "
/trunk/services/bibliotheque/Sql.php
70,11 → 70,11
}
 
private function etreAppliImg() {
return $this->appli === 'IMG' ? true : false;
return $this->appli === 'IMG';
}
 
private function etreAppliObs() {
return $this->appli === 'OBS' ? true : false;
return $this->appli === 'OBS';
}
 
public function getRequeteSql() {
158,8 → 158,6
}
 
/**
 
*
* @param $p les paramètres (notamment de masque) passés par l'URL et déjà traités/filtrés (sauf quotes)
* @param $req le tableau, passé par référence représentant les composants de la requête à bâtir
*/
175,6 → 173,7
$this->ajouterContrainteNn();
$this->ajouterContrainteReferentiel();
$this->ajouterContrainteCommune();
$this->ajouterContraintePnInscrits();
}
 
private function ajouterContrainteAuteur() {
379,6 → 378,21
$this->ajouterJoinObsSiNecessaire();
}
}
 
/**
* Si masque.pninscritsseulement vaut true, les observations ayant un tag
* "plantnet" mais dont l'auteur n'est pas inscrit à TB seront éliminées
* (décision FlorisTic 2016-09)
*/
protected function ajouterContraintePnInscrits() {
if (isset($this->parametres['masque.pninscritsseulement'])) {
// avec la classe ParametresFiltrage, on ne passe là que si le masque vaut 1
$motifMotClePlantnet = "'%plantnet%'";
$this->addWhere('masque.pninscritsseulement', "((do.mots_cles_texte NOT LIKE $motifMotClePlantnet OR do.mots_cles_texte IS NULL) OR do.ce_utilisateur != 0)");
 
$this->ajouterJoinObsSiNecessaire();
}
}
private function ajouterJoinObsSiNecessaire() {
if ($this->etreAppliImg()) {
391,10 → 405,11
return $typeJointure.' JOIN del_observation AS do ON (di.ce_observation = do.id_observation) ';
}
 
// la constrainte de nostre bon roy
public function ajouterConstrainteAppliObs() {
$this->ajouterContrainteTagCel();
$this->ajouterContrainteType();
// TODO : ATTENTION -> vue que l'on utilise une vue basée sur les images, nous devons grouper par obs
// TODO : ATTENTION -> vu que l'on utilise une vue basée sur les images, nous devons grouper par obs
$this->addGroupBy('do.id_observation');
}
 
491,6 → 506,7
$this->ajouterContrainteTri();
$this->ajouterContrainteTagCel();
$this->ajouterContrainteTagDel();
$this->ajouterContraintePnInscrits();
}
 
private function ajouterContrainteMilieu() {
/trunk/services/bibliotheque/ParametresFiltrage.php
194,6 → 194,8
$this->filtrerCommune();
$this->filtrerType();
 
$this->filtrerPnInscrits();
 
$this->filtrerTagCel();
$this->filtrerTagDel();
}
344,6 → 346,14
}
}
 
protected function filtrerPnInscrits() {
if (isset($this->parametres['masque.pninscritsseulement'])) {
if ($this->parametres['masque.pninscritsseulement'] == 1) {
$this->parametresFiltres['masque.pninscritsseulement'] = 1;
}
}
}
 
/** masque.commune (zone_geo)
* TODO: que faire avec des '%' en INPUT ?
* Le masque doit *permettre* une regexp et non l'imposer. Charge au client de faire son travail.
/trunk/services/.
Property changes:
Modified: svn:mergeinfo
Merged /branches/v1.10-sodium/services:r2138-2139