Subversion Repositories eFlore/Applications.del

Rev

Rev 2011 | Rev 2016 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 2011 Rev 2013
Line 318... Line 318...
318
		);
318
		);
319
		return $retour;
319
		return $retour;
320
	}
320
	}
Line 321... Line 321...
321
 
321
 
322
	/**
322
	/**
-
 
323
	 * Statistiques sur les propositions, les commentaires et les votes
-
 
324
	 * "MPM" = moyenne par mois
-
 
325
	 * - Nombre de votes
-
 
326
	 * - Nombre de commentaires
-
 
327
	 * - Nombre d'actions par jour
323
	 * Statistiques sur les propositions et les votes
328
	 * - Nombres de propositions sur toutes les obs
324
	 * - Nombre de propositions faites (au total et sur les derniers 15 jours)
329
	 * - Nombres de propositions retenues sur toutes les obs
-
 
330
	 * - Nombres de propositions en consensus sur toutes les obs
325
	 * - Nombre de propositions validées(au total et sur le dernier mois)
331
	 * - Nombres de propositions sur les obs d'une année
-
 
332
	 * - Nombres de propositions retenues sur les obs d'une année
326
	 * - Nombres de votes (au total et sur les derniers 15 jours)
333
	 * - Nombres de propositions en consensus sur les obs d'une année
327
	 */
334
	 */
328
	private function getPropositions() {
-
 
329
		$nbPropositions = $this->getNbPropositions();
-
 
330
		$nbPropositionsValidees = $this->getNbPropositionsValidees();
-
 
331
		$votes = $this->getNbVotes();
335
	private function getPropositions() {
332
		return array(
336
		return array(
-
 
337
			'nbVotes' => $this->getNbVotes(),
-
 
338
			'nbVotesMPM' => $this->getNbVotes(true),
-
 
339
			'nbMoyenActionsParJour' => $this->getNbMoyenActionsParJour(),
-
 
340
			'nbCommentaires' => $this->getNbCommentaires(),
333
			'annee' => $this->annee,
341
			'nbCommentairesMPM' => $this->getNbCommentaires(true),
334
			'nbPropositionsTotal' => $nbPropositions[0],
342
			'nbPropositionsToutesObs' => $this->getNbPropositionsToutesObs(),
-
 
343
			'nbPropositionsToutesObsMPM' => $this->getNbPropositionsToutesObs(true),
-
 
344
			'nbPropositionsRetenuesToutesObs' => $this->getNbPropositionsRetenuesToutesObs(),
-
 
345
			'nbPropositionsRetenuesToutesObsMPM' => $this->getNbPropositionsRetenuesToutesObs(true),
-
 
346
			'nbPropositionsConsensusToutesObs' => null, //$this->getNbPropositionsConsensusToutesObs(),
335
			'nbPropositions15J' => $nbPropositions[1],
347
			'nbPropositionsConsensusToutesObsMPM' => null, //$this->getNbPropositionsConsensusToutesObs(true),
336
			'nbPropositionsValidees' => $nbPropositionsValidees[0],
348
			'nbPropositionsObsAnnee' => $this->getNbPropositionsObsAnnee(),
337
			'nbPropositionsValidees15J' => $nbPropositionsValidees[1],
349
			'nbPropositionsObsAnneeMPM' => $this->getNbPropositionsObsAnnee(true),
338
			'nbVotes' => $votes[0],
350
			'nbPropositionsRetenuesObsAnnee' => $this->getNbPropositionsRetenuesObsAnnee(),
-
 
351
			'nbPropositionsRetenuesObsAnneeMPM' => $this->getNbPropositionsRetenuesObsAnnee(true),
-
 
352
			'nbPropositionsConsensusObsAnnee' => null, //$this->getNbPropositionsConsensusObsAnnee(),
339
			'nbVotes15J' => $votes[1]
353
			'nbPropositionsConsensusObsAnneeMPM' => null //$this->getNbPropositionsConsensusObsAnnee(true),
340
		);
354
		);
Line 341... Line 355...
341
	}
355
	}
342
 
356
 
343
	/**
-
 
344
	 * @TODO Nombre de proposition faites (au total et sur les derniers 15 jours)
-
 
345
	 * @REFLEXION retourner un array ? Si on demande une année spécifique, comment calculer
357
	/**
346
	 * l'activité des 15 derniers jours (on met la case à null ?)
358
	 * Nombre moyen d'actions par jour (commentaire, proposition, vote)
-
 
359
	 */
-
 
360
	private function getNbMoyenActionsParJour() {
-
 
361
		$requete = "SELECT (SELECT (SELECT count(*) FROM del_commentaire";
-
 
362
		if ($this->annee != null) {
-
 
363
			$requete .= ' WHERE YEAR(date) = ' . $this->annee;
-
 
364
		}
-
 
365
		$requete .= ") +  (SELECT count(*) FROM del_commentaire_vote";
-
 
366
		if ($this->annee != null) {
-
 
367
			$requete .= ' WHERE YEAR(date) = ' . $this->annee;
-
 
368
		}
-
 
369
		$requete .= ") +  (SELECT count(*) FROM del_commentaire";
-
 
370
		if ($this->annee != null) {
-
 
371
			$requete .= ' WHERE YEAR(date_validation) = ' . $this->annee;
-
 
372
		}
-
 
373
		$requete .= ")) / (";
-
 
374
		if ($this->annee != null) {
-
 
375
			$requete .= "SELECT IF( YEAR(CURDATE()) = " . $this->annee . ", DAYOFYEAR(CURDATE()), 365) ";
-
 
376
		} else {
347
	 */
377
			$requete .= "365";
348
	private function getNbPropositionsTotal() {
378
		}
349
		$requete = "";
379
		$requete .= ")";
350
		$resultat = $this->bdd->recupererTous($requete);
380
		$resultat = $this->bdd->recupererTous($requete);
Line 351... Line 381...
351
		return intval($resultat[0][0]);
381
		return intval(array_pop($resultat[0]));
352
	}
382
	}
-
 
383
 
-
 
384
	/**
-
 
385
	 * Nombre de proposition faites sur toutes les observations
-
 
386
	 */
-
 
387
	private function getNbPropositionsToutesObs($mpm=false) {
-
 
388
		$requete = "SELECT COUNT(DISTINCT `id_commentaire`) AS nb_total FROM `del_commentaire` WHERE";
353
 
389
		if ($this->annee != null) {
-
 
390
			$requete .= ' YEAR(date) = ' . $this->annee . " AND";
-
 
391
		}
-
 
392
		$requete .= " (`nom_sel_nn` IS NOT NULL OR `nom_sel_nn` != '') AND `proposition_initiale` = 0";
-
 
393
		if ($mpm) {
-
 
394
			$requete = $this->encapsulerMPM($requete);
-
 
395
		}
-
 
396
		$resultat = $this->bdd->recupererTous($requete);
-
 
397
		return intval(array_pop($resultat[0]));
354
	/**
398
	}
355
	 * @TODO Nombre de proposition validées (au total et sur les derniers 15 jours)
399
 
356
	 * @REFLEXION retourner un array ? Si on demande une année spécifique, comment calculer
400
	/**
-
 
401
	 * Nombre de proposition retenues faites sur toutes les observations
-
 
402
	 */
-
 
403
	private function getNbPropositionsRetenuesToutesObs($mpm=false) {
-
 
404
		$requete = "SELECT COUNT(DISTINCT id_commentaire) AS nb_total FROM del_commentaire WHERE";
-
 
405
		if ($this->annee != null) {
-
 
406
			$requete .= ' YEAR(date) = ' . $this->annee . " AND";
-
 
407
		}
-
 
408
		$requete .= " proposition_retenue = 1";
-
 
409
		if ($mpm) {
-
 
410
			$requete = $this->encapsulerMPM($requete);
-
 
411
		}
-
 
412
		$resultat = $this->bdd->recupererTous($requete);
-
 
413
		return intval(array_pop($resultat[0]));
-
 
414
	}
-
 
415
 
-
 
416
	/**
357
	 * l'activité des 15 derniers jours (on met la case à null ?)
417
	 * @TODO Nombre de proposition en consensus faites sur toutes les observations
358
	 */
418
	 */
359
	private function getNbPropositionsValidees() {
419
	private function getNbPropositionsConsensusToutesObs($mpm=false) {
360
		$requete = "";
420
		$requete = "";
Line 361... Line 421...
361
		$resultat = $this->bdd->recupererTous($requete);
421
		$resultat = $this->bdd->recupererTous($requete);
362
		return intval($resultat[0][0]);
422
		return intval($resultat[0][0]);
-
 
423
	}
-
 
424
 
-
 
425
	/**
-
 
426
	 * Nombre de proposition faites sur les observations d'une année
-
 
427
	 */
-
 
428
	private function getNbPropositionsObsAnnee($mpm=false) {
-
 
429
		if ($this->annee == null) {
-
 
430
			return null;
-
 
431
		}
-
 
432
		$requete = "SELECT COUNT(DISTINCT `id_commentaire`) AS nb_total FROM `del_commentaire` WHERE YEAR(date) = " . $this->annee . " AND "
-
 
433
			. "(`nom_sel_nn` IS NOT NULL OR `nom_sel_nn` != '') AND `proposition_initiale` = 0 AND ce_observation in"
-
 
434
			. " (SELECT `id_observation` FROM `del_observation` WHERE year(date_transmission) = " . $this->annee . ")";
-
 
435
		if ($mpm) {
-
 
436
			$requete = $this->encapsulerMPM($requete);
-
 
437
		}
-
 
438
		$resultat = $this->bdd->recupererTous($requete);
363
	}
439
		return intval(array_pop($resultat[0]));
-
 
440
	}
-
 
441
 
-
 
442
	/**
-
 
443
	 * Nombre de proposition retenues faites sur les observations d'une année
-
 
444
	 */
-
 
445
	private function getNbPropositionsRetenuesObsAnnee($mpm=false) {
-
 
446
		if ($this->annee == null) {
-
 
447
			return null;
-
 
448
		}
-
 
449
		$requete = "SELECT COUNT(DISTINCT `id_commentaire`) AS nb_total FROM `del_commentaire` WHERE YEAR(date) = " . $this->annee . " AND "
-
 
450
			. "`proposition_retenue` = 1 AND ce_observation in (SELECT `id_observation` FROM `del_observation` WHERE year(date_transmission) = " . $this->annee . ")";
-
 
451
		if ($mpm) {
-
 
452
			$requete = $this->encapsulerMPM($requete);
-
 
453
		}
-
 
454
		$resultat = $this->bdd->recupererTous($requete);
364
 
455
		return intval(array_pop($resultat[0]));
365
	/**
456
	}
366
	 * @TODO Nombre de votes (au total et sur les derniers 15 jours)
457
 
367
	 * @REFLEXION retourner un array ? Si on demande une année spécifique, comment calculer
458
	/**
368
	 * l'activité des 15 derniers jours (on met la case à null ?)
459
	 * @TODO Nombre de proposition en consensus faites sur les observations d'une année
369
	 */
460
	 */
370
	private function getNbVotes() {
461
	private function getNbPropositionsConsensusObsAnnee($mpm=false) {
Line 371... Line 462...
371
		$requete = "";
462
		$requete = "";
-
 
463
		$resultat = $this->bdd->recupererTous($requete);
-
 
464
		return intval($resultat[0][0]);
-
 
465
	}
-
 
466
 
-
 
467
	/**
-
 
468
	 * Nombre de votes
-
 
469
	 */
-
 
470
	private function getNbVotes($mpm=false) {
-
 
471
		$requete = "SELECT COUNT(DISTINCT `id_vote`) AS nb_total FROM del_commentaire_vote";
-
 
472
		if ($this->annee != null) {
-
 
473
			$requete .= ' WHERE YEAR(date) = ' . $this->annee;
-
 
474
		}
-
 
475
		if ($mpm) {
-
 
476
			$requete = $this->encapsulerMPM($requete);
-
 
477
		}
-
 
478
		$resultat = $this->bdd->recupererTous($requete);
-
 
479
		return intval(array_pop($resultat[0]));
-
 
480
	}
-
 
481
 
-
 
482
	/**
-
 
483
	 * Nombre de commentaires
-
 
484
	 */
-
 
485
	private function getNbCommentaires($mpm=false) {
-
 
486
		$requete = "SELECT COUNT(DISTINCT `id_commentaire`) AS nb_total FROM del_commentaire WHERE `ce_proposition` != '' AND (`nom_sel` IS NULL OR `nom_sel` = '')";
-
 
487
		if ($this->annee != null) {
-
 
488
			$requete .= ' AND YEAR(date) = ' . $this->annee;
-
 
489
		}
-
 
490
		if ($mpm) {
-
 
491
			$requete = $this->encapsulerMPM($requete);
-
 
492
		}
372
		$resultat = $this->bdd->recupererTous($requete);
493
		$resultat = $this->bdd->recupererTous($requete);
-
 
494
		return intval(array_pop($resultat[0]));
-
 
495
	}
373
		return intval($resultat[0][0]);
496
 
374
	}
497
	/**
375
 
498
	 * Statistiques sur les utilisateurs d'Identiplante
376
	/**
499
	 * "AF" = ayant fait un(e)
377
	 * Statistiques sur les utilisateurs d'Identiplante
500
	 * "MPM" = moyenne par mois
378
	 * - Nombre total d'utilisateurs
501
	 * - Nombre total d'utilisateurs
379
	 * - Nombre d'utilisateurs réguliers
-
 
380
	 * - Nombre d'utilisateurs prenant part aux votes
502
	 * - Nombre d'utilisateurs ayant fait une proposition
381
	 * - Nombre de participants actifs pour le mois, la semaine, l'année
-
 
382
	 */
503
	 * - Nombre d'utilisateurs ayant fait un vote
-
 
504
	 * - Nombre d'utilisateurs ayant fait un commentaire
383
	private function getUtilisateursIp() {
505
	 */
384
		$nbUtilisateursActifs = $this->getNbUtilisateursIpActifs();
506
	private function getUtilisateursIp() {
385
		return array(
507
		return array(
-
 
508
			'nbUtilisateursTotal' => $this->getNbUtilisateursIpTotal(),
-
 
509
			'nbUtilisateursAFProposition' => $this->getNbUtilisateursAFProposition(),
386
			'annee' => $this->annee,
510
			'nbUtilisateursAFCommentaire' => $this->getNbUtilisateursAFCommentaire(),
387
			'nbUtilisateursTotal' => $this->getNbUtilisateursIpTotal(),
511
			'nbUtilisateursAFVote' => $this->getNbUtilisateursAFVote(),
388
			'nbUtilisateursReguliers' => $this->getNbUtilisateursIpReguliers(),
512
			'nbUtilisateursAnonymesAFVote' => $this->getNbUtilisateursAnonymesAFVote(),
389
			'nbUtilisateursVotant' => $this->getNbUtilisateursIpVotant(),
513
			'nbUtilisateursAFPropositionMPM' => $this->getNbUtilisateursAFProposition(true),
Line 390... Line 514...
390
			'nbUtilisateursActifsAnnee' => $nbUtilisateursActifs['annee'],
514
			'nbUtilisateursAFCommentaireMPM' => $this->getNbUtilisateursAFCommentaire(true),
391
			'nbUtilisateursActifsMois' => $nbUtilisateursActifs['mois'],
515
			'nbUtilisateursAFVoteMPM' => $this->getNbUtilisateursAFVote(true),
392
			'nbUtilisateursActifsSemaine' => $nbUtilisateursActifs['semaine']
-
 
393
		);
516
			'nbUtilisateursAnonymesAFVoteMPM' => $this->getNbUtilisateursAnonymesAFVote(true),
394
	}
517
		);
-
 
518
	}
395
 
519
 
-
 
520
	/**
-
 
521
	 * Nombre total d'utilisateurs d'Identiplante
396
	/**
522
	 */
397
	 * @TODO Nombre total d'utilisateurs d'Identiplante
523
	private function getNbUtilisateursIpTotal() {
398
	 * @REFLEXION est-ce le même nombre que les utilisateurs d'Identiplante ?
524
		$requete = "SELECT COUNT(DISTINCT ce_utilisateur) AS nb_total  FROM del_commentaire";
Line 399... Line 525...
399
	 */
525
		if ($this->annee != null) {
400
	private function getNbUtilisateursIpTotal() {
526
			$requete .= ' WHERE YEAR(date) = ' . $this->annee;
401
		$requete = "";
-
 
402
		$resultat = $this->bdd->recupererTous($requete);
527
		}
403
		return intval($resultat[0][0]);
528
		$resultat = $this->bdd->recupererTous($requete);
-
 
529
		return intval(array_pop($resultat[0]));
-
 
530
	}
-
 
531
 
-
 
532
	/**
404
	}
533
	 * Nombre d'utilisateurs d'Identiplante ayant fait au moins une proposition
-
 
534
	 */
-
 
535
	private function getNbUtilisateursAFProposition($mpm=false) {
405
 
536
		$requete = "SELECT COUNT(DISTINCT `utilisateur_courriel`) AS nb_total FROM del_commentaire WHERE `ce_proposition` = '' AND `nom_sel` IS NOT NULL AND `nom_sel` != ''";
406
	/**
537
		if ($this->annee != null) {
407
	 * @TODO Nombre d'utilisateurs réguliers d'Identiplante
538
			$requete .= ' AND YEAR(date) = ' . $this->annee;
Line 408... Line 539...
408
	 * @REFLEXION quelle différence avec getNbUtilisateursIpActifs() ?
539
		}
409
	 */
540
		if ($mpm) {
410
	private function getNbUtilisateursIpReguliers() {
541
			$requete = $this->encapsulerMPM($requete);
411
		$requete = "";
542
		}
-
 
543
		$resultat = $this->bdd->recupererTous($requete);
-
 
544
		return intval(array_pop($resultat[0]));
-
 
545
	}
-
 
546
 
412
		$resultat = $this->bdd->recupererTous($requete);
547
	/**
-
 
548
	 * Nombre d'utilisateurs d'Identiplante ayant fait au moins un commentaire
-
 
549
	 */
413
		return intval($resultat[0][0]);
550
	private function getNbUtilisateursAFCommentaire($mpm=false) {
414
	}
551
		$requete = "SELECT COUNT(DISTINCT `utilisateur_courriel`) AS nb_total FROM del_commentaire WHERE `ce_proposition` != '' AND (`nom_sel` IS NULL OR `nom_sel` = '')";
415
 
552
		if ($this->annee != null) {
Line 416... Line 553...
416
	/**
553
			$requete .= ' AND YEAR(date) = ' . $this->annee;
417
	 * @TODO Nombre d'utilisateurs d'Identiplante prenant part aux votes
554
		}
418
	 */
-
 
419
	private function getNbUtilisateursIpVotant() {
-
 
420
		$requete = "";
555
		if ($mpm) {
421
		$resultat = $this->bdd->recupererTous($requete);
556
			$requete = $this->encapsulerMPM($requete);
-
 
557
		}
-
 
558
		$resultat = $this->bdd->recupererTous($requete);
-
 
559
		return intval(array_pop($resultat[0]));
-
 
560
	}
422
		return intval($resultat[0][0]);
561
 
-
 
562
	/**
-
 
563
	 * Nombre d'utilisateurs d'Identiplante identifiés prenant part aux votes
423
	}
564
	 */
424
 
565
	private function getNbUtilisateursAFVote($mpm=false) {
-
 
566
		$requete = "SELECT COUNT(DISTINCT ce_utilisateur) AS nb_total FROM del_commentaire_vote WHERE ce_utilisateur REGEXP '^-?[0-9]+$'";
-
 
567
		if ($this->annee != null) {
-
 
568
			$requete .= ' AND YEAR(date) = ' . $this->annee;
-
 
569
		}
-
 
570
		if ($mpm) {
-
 
571
			$requete = $this->encapsulerMPM($requete);
-
 
572
		}
-
 
573
		$resultat = $this->bdd->recupererTous($requete);
-
 
574
		return intval(array_pop($resultat[0]));
-
 
575
	}
-
 
576
 
-
 
577
	/**
-
 
578
	 * Nombre d'utilisateurs d'Identiplante anonymes prenant part aux votes
-
 
579
	 */
-
 
580
	private function getNbUtilisateursAnonymesAFVote($mpm=false) {
425
	/**
581
		$requete = "SELECT COUNT(DISTINCT ce_utilisateur) AS nb_total FROM del_commentaire_vote WHERE ce_utilisateur NOT REGEXP '^-?[0-9]+$'";
Line 426... Line 582...
426
	 * @TODO Nombre de participants actifs à Identiplante (pour le mois, la semaine, l'année)
582
		if ($this->annee != null) {
427
	 * @REFLEXION retourner un array ? Si on demande une année spécifique, comment calculer
583
			$requete .= ' AND YEAR(date) = ' . $this->annee;
428
	 * l'activité du mois et de la semaine (on met la case à null ?)
-
 
429
	 */
584
		}
430
	private function getNbUtilisateursIpActifs() {
585
		if ($mpm) {
431
		$requete = "";
586
			$requete = $this->encapsulerMPM($requete);
-
 
587
		}
-
 
588
		$resultat = $this->bdd->recupererTous($requete);
432
		$resultat = $this->bdd->recupererTous($requete);
589
		return intval(array_pop($resultat[0]));
-
 
590
	}
-
 
591
 
-
 
592
	/**
-
 
593
	 * Liste des utilisateurs dont les propositions ont été votées positivement
433
		return intval($resultat[0][0]);
594
	 */
434
	}
595
	private function getListeMeilleursProposeurs() {
435
 
596
		$liste = array();
436
	/**
597
		$requete = "SELECT * FROM (SELECT utilisateur_courriel, count(prop) as nb_prop"
Line 437... Line 598...
437
	 * @TODO Liste des utilisateurs ayant fait le plus de propositions, et
598
			. " FROM (SELECT `ce_proposition` as prop, COUNT(DISTINCT `id_vote`) AS nb_vote FROM del_commentaire_vote where";
438
	 * le plus de propositions retenues (ou ayant atteint un consensus)
599
		if ($this->annee != null) {
439
	 */
-
 
440
	private function getListeMeilleursProposeurs() {
-
 
441
		$liste = array();
600
			$requete .= " year(`date`) = " . $this->annee . " AND";
442
		$requete = "";
601
		}
Line 443... Line 602...
443
		$resultat = $this->bdd->recupererTous($requete);
602
		$requete .= " valeur = 1 GROUP BY `ce_proposition`) AS vote, del_commentaire WHERE nb_vote > 3 AND prop = id_commentaire AND `ce_utilisateur` != 0 GROUP BY `ce_utilisateur`)"
444
		// Formater liste (récupérer les pseudos des gens dans l'annuaire etc. => voir widget CEL stats)
603
			. " AS utlisateurs WHERE nb_prop > 10 ORDER BY nb_prop  DESC LIMIT 20";
445
		// => faut-il le faire ici ou dans le widget ? :-/ plutôt ici non ?
604
		$resultat = $this->bdd->recupererTous($requete);
446
		// ...
605
		// Formater liste (récupérer les pseudos des gens dans l'annuaire etc. => voir widget CEL stats)
447
 
606
		// => faut-il le faire ici ou dans le widget ? :-/ plutôt ici non ?
448
		return array(
607
		// ...
-
 
608
 
449
			'annee' => $this->annee,
609
		return array(
-
 
610
				'liste' => $resultat
-
 
611
		);
-
 
612
	}
450
			'listeMeilleursProposeurs' => $liste[0],
613
 
451
			'listeMeilleursProposeursAyantEteRetenus' => $liste[1]
614
	/**
452
		);
615
	 * Liste des utilisateurs ayant fait le plus de votes positifs
453
	}
616
	 * @TODO et le plus de votes sur des propositions retenues (ou ayant atteint un consensus)
Line 454... Line 617...
454
 
617
	 */
455
	/**
618
	private function getListeMeilleursVoteurs() {
-
 
619
		$liste = array();
-
 
620
		$requete = "SELECT * FROM (SELECT courriel, COUNT(DISTINCT `id_vote`) AS nombre FROM del_commentaire_vote, del_utilisateur where";
-
 
621
		if ($this->annee != null) {
-
 
622
			$requete .= " year(`date`) = " . $this->annee . " AND";
-
 
623
		}
-
 
624
		$requete .= " ce_utilisateur = id_utilisateur AND valeur = 1 GROUP BY `ce_utilisateur`) AS utilisateurs WHERE nombre > 100 ORDER BY nombre DESC LIMIT 20";
-
 
625
		$resultat = $this->bdd->recupererTous($requete);
-
 
626
		// Formater liste (récupérer les pseudos des gens dans l'annuaire etc. => voir widget CEL stats)
-
 
627
		// => faut-il le faire ici ou dans le widget ? :-/ plutôt ici non ?
-
 
628
		// ...
-
 
629
 
-
 
630
		return array(
456
	 * @TODO Liste des utilisateurs ayant fait le plus de votes, et le plus
631
				'liste' => $resultat
-
 
632
		);
-
 
633
	}
-
 
634
 
457
	 * de votes sur des propositions retenues (ou ayant atteint un consensus)
635
	/**
-
 
636
	 * Liste des utilisateurs ayant fait au moins une proposition par mois toute l'année
-
 
637
	 */
-
 
638
	private function getListeProposeursReguliers() {
-
 
639
		$liste = array();
-
 
640
		$requete = "SELECT cal.nbmois, SUM(somme) / cal.nbmois as moyenne, ce_utilisateur, utilisateur_courriel FROM (SELECT count(*) as somme,"
-
 
641
			. " CONCAT(YEAR(date),'-',MONTH(date)) as anneemois, ce_utilisateur, utilisateur_courriel, id_commentaire FROM del_commentaire"
-
 
642
			. " WHERE ce_proposition = '' AND nom_sel_nn != '' AND nom_sel_nn IS NOT NULL";
-
 
643
		if ($this->annee != null) {
-
 
644
			$requete .= " AND year(`date`) = " . $this->annee;
-
 
645
		}
458
	 */
646
		$requete .= "  GROUP BY anneemois, ce_utilisateur, utilisateur_courriel) as ppm, (SELECT count(distinct CONCAT(YEAR(date),'-',MONTH(date))) as nbmois FROM del_commentaire WHERE";
459
	private function getListeMeilleursVoteurs() {
647
		if ($this->annee != null) {
Line 460... Line 648...
460
		$liste = array();
648
			$requete .= " year(`date`) = " . $this->annee . " AND";
461
		$requete = "";
649
		}
Line 581... Line 769...
581
		return array(
769
		return array(
582
			'annee' => $this->annee,
770
			'annee' => $this->annee,
583
			'listeMeilleursTagueurs' => $liste
771
			'listeMeilleursTagueurs' => $liste
584
		);
772
		);
585
	}
773
	}
-
 
774
 
-
 
775
	/**
-
 
776
	 * Encapsule une reqûete de comptage dans un autre morceau de requête
-
 
777
	 * afin de calculer la moyenne par mois
-
 
778
	 * @param string $requete count() qui doit renvoyer une colonne 'nb_total'
-
 
779
	 */
-
 
780
	protected function encapsulerMPM($requete) {
-
 
781
		$requeteEncapsulee = "SELECT AVG(nb_total) as moyenne FROM ("
-
 
782
			. $requete
-
 
783
			. " GROUP BY CONCAT(year(date),month(date)) ) AS nombre";
-
 
784
		return $requeteEncapsulee;
-
 
785
	}
586
}
786
}
587
787