Rapports statistiques
Objectif[ ]
Générer des rapports basés sur une extraction des données de Bokeh pouvant contenir des champs personnalisés.
Le rapport doit être exprimé en Javascript, quelques notions dans ce language sont plus que recommandées.
Où trouver les rapports statistiques ?[ ]
Dans l'interface d'admin, une entrée Rapport Statistiques est disponible dans le menu système.
Définir un nouveau rapport[ ]
Vous pouvez accéder à la création de rapport en utilisant le bouton "Nouveau rapport".
Modification d'un rapport[ ]
Un rapport est constitué d'un libellé et d'un script javascript.
Le bouton Valider enregistre le script du rapport alors que le bouton Générer lance l'exécution du script.
Fonctions utilitaires[ ]
$.fn.report_helper()[ ]
retourne l'objet JQuery vous permettant d'appeler les différentes fonctions.
Exemple:
var helper = $.fn.report_helper();
jsonContent(url)[ ]
Retourne le résultat JSON de l'url fournie en paramètre.
downloadReport(datas)[ ]
Déclenche le téléchargement d'un fichier au format CSV dont le contenu est représenté dans datas.
Exemple:
var datas = 'thematiques;sessions\r\n"Cataloguage";3\r\n"Informatique";4';
datasFields(model)[ ]
Retourne, en Json, les données des champs personnalisés du le model fournit en paramètre.
Exemple:
var datas = helper.datasFields('Activity');
fieldValues(model)[ ]
Retourne , en Json, les valeurs des champs personnalisés du model fournit en paramètre.
Exemple:
var values = helper.fieldValus('Activity');
numberOf(model, id, child)[ ]
Retourne le nombre d'enfants du model comportant la valeur.
L' "id" correspond à la clé primaire en base données de l'occurrence contenant la valeur du champ personnalisé.
Exemple:
var number_of_sessions_with_value_adulte = helper.numberOf('Activity', 2, 'Sessions')
URLs de récupération de données[ ]
/opac/datas/fields/model/[Article|Activity|UserGroup|SessionActivity][ ]
Retourne la liste des champs personnalisés affectés au model passé en paramètre.
/opac/datas/values/field/[ID][ ]
Retourne la liste de toutes les valeurs saisies pour le champs personnalisé dont l'identifiant est passé en paramètre.
/opac/datas/numberof/model/Class_[Article|Activity|UserGroup|SessionActivity]/id/[ID]/children/[CHILD_NAME][ ]
Retourne le nombre d'éléments "children" liés à un model de type "model" portant l'identifiant "id".
Exemple de script complet[ ]
Objectif[ ]
Obtenir un fichier CSV listant le nombre de sessions par "thématique" qui est un champ personnalisé des activités.
var helper = $.fn.report_helper(); // liste des champs configurés pour les activités var fields = helper.datasFields('Activity'); // détection du premier champ dont le libellé est "thématique" et extraction de son identifiant var id_field_thematique = 0; for(var i=0;i<fields.length;i++) { var field = fields[i]; if (field.label= 'thématique') { id_field_thematique = field.id; break; } } // liste de toutes les valeurs saisies pour le champ précédemment détecté var values = helper.fieldValues(id_field_thematique); var thematiques=[]; // pour chacune des valeurs for (var i=0; i<values.length;i++) { // récupération du nombre de sessions de l'activité portant la valeur var numberOfSessions = helper.numberOf('Class_Activity', values[i].model_id, 'Sessions'); var value=values[i].value; // si la thématique n'a pas été rencontrée, création du compteur à 0 if (!thematiques[value]) thematiques[value]=0; // dans tous les cas, ajout du nombre de sessions au compteur thematiques[value]+=parseInt(numberOfSessions); } // entête du CSV var datas = 'thematique;sessions\r\n'; // pour chacune des thématiques for (var thematique in thematiques) { // ajout d'une ligne dans le CSV datas += '"' + thematique + '";' + thematiques[thematique] + '\r\n'; }; // déclenchement du téléchargement helper.downloadReport(datas);