GetUserTrainings

Qubes 8.0 Récupération des formations utilisateur

Syntaxe

function GetUserTrainings(docIds: array of Integer; userIds: array of Integer; onlyActiveIfNoFilter: Boolean = True): array of TUserTraining
docIds: filtre sur une liste d'ID de documents (peut être laissé vide)
userIds: filtre sur une liste d'utilisateurs (peut être laissé vide)
onlyActiveIfNoFilter: filtre sur les documents valides et/ou sur les utilisateurs actifs si la liste correspondante est vide

Remarques

La fonction récupère toutes les formations utilisateurs de la base, réalisées ou non.
On peut filtrer sur une liste de documents et/ou une liste d'utilisateurs.

Si la liste docIds est vide et onlyActiveIfNoFilter vaut True, on filtre sur les documents approuvés ou en application.

Si la liste userIds est vide et onlyActiveIfNoFilter vaut True, on filtre sur les utilisateurs actifs de la base de données.

Exemples

  • Récupération de la liste des documents pour lesquels un utilisateur a des formations valides
uses QuBESUsers, QubesTrainings, QuBESDocuments;
var userId := UserIDFromLogin('user1');
for var training in GetUserTrainings([], [userId]) do
   if training.ValidTo >= Now then
      PrintLn(DocRUDForDocID(training.DocId));
  • Récupération de la liste des documents sur lesquels l'utilisateur doit être formé
uses QuBESUsers, QubesTrainings, QuBESDocuments;
var userId := UserIDFromLogin('user1');
for var training in GetUserTrainings([], [userId]) do
   if training.SessionId = 0 then
      PrintLn(DocRUDForDocID(training.DocId));
  • Récupération de la liste des utilisateurs à former sur un document
uses QubesTrainings, QuBESDocuments;
var docId := AppliedDocIDForRUD('maRud');
for var training in GetUserTrainings([docId], []) do
   if training.SessionId = 0 then
      PrintLn(training.Login);
  • Récupération de la liste des documents pour lesquels l'utilisateur "login_user" est à (re-)former, c'est-à-dire qu'il doit y être formé mais il n'a pas de formation valide
uses QubesTrainings, QuBESDocuments;
var userId : Integer = UserIDFromLogin('login_user');
var docIdsToBeTrained : array of Integer;

// récupération de la liste des formations de l'utilisateur (à la fois attendues et mises en session)
var trainings := GetUserTrainings([], [userId]);

// on ne s'arrête d'abord que sur les formations attendues
for var expectedTraining in trainings do begin
   if expectedTraining.SessionId = 0 then begin
      // puis on recherche les formations mises en session (réalisées ou prévues) pour cette formation attendue
      // et on récupère la date de validité (qui n'est renseignée que pour les formations réalisées)
      var maxValidity := 0.0;
      for var doneTraining in trainings do
         if doneTraining.DocId = expectedTraining.DocId then
            maxValidity := Max(maxValidity, doneTraining.ValidTo);
      // si la date de validité est dans le passé, c'est qu'il n'y a pas de formation valide
      if (maxValidity <= Now) and (docIdsToBeTrained.IndexOf(expectedTraining.DocId) <= 0) then
         docIdsToBeTrained.Add(expectedTraining.DocId);
   end;
end;

// on peut alors faire des actions (afficher la liste, ou créer des sessions de formation, etc.)
for var docId in docIdsToBeTrained do begin
   // ...
end;

Classification

QubesTrainings