Interagir avec un serveur Scenari via l'API Python

Plan

  • Rappel sur le modèle Organigramme
  • Problématique trombinoscope
  • La solution trouvée
  • Démonstration
  • Limite et projection

Rappel sur le modèle Organigramme

Résumé rencontres 2025 / mini webinaire 12-2025

  • Besoin d’organigrammes hiérarchiques pour deux usages :

    • Diffusion dans notre ENT

    • Préparation des dossiers d’avancement

  • Besoin de simplifier les mises à jour

  • => Création d’un modèle Scenari

    • 4 types d’items (Personne, Job, Equipe, Organigramme) + 1 item de publication

Résumé rencontres 2025 / mini webinaire 12-2025

  • Demande de disposer d’un trombinoscope de la direction

  • => Enrichissement du modèle :

    • Ajout d’un champ « photo » sur l’item personne

    • Ajout d’un second item de publication (utilisation du multisupport natif de Scenari)

Exemple - Exemple d’organigramme

Exemple - Exemple de trombinoscope

Complément - Pour information

Le modèle Organigramme + trombinoscope est disponible sur la page des contributeurs du site scenari.org

Problématique trombinoscope

  • Récupération d’un nombre potentiellement important de photos

  • Question du droit à l’image et du droit de retrait

  • Existence dans notre SI d’une application « référentiel photo » où

    • L’utilisateur décide de la diffusion ou non

    • L’utilisateur a la main pour faire les mises à jour

=> Y a t’il moyen de s’appuyer sur cette application ?

Question

La solution trouvée

L’API Python de Scenari

Pour quoi faire :

  • Remplacer et étendre les fonctionnalités de scenariBatch
  • Permettre au travers d’un code python d’interagir avec un Serveur Scenari

Parmi les fonctionnalités :

  • Gestion des utilisateurs et groupes
  • Export / import de scar
  • Effectuer des générations et dépôts
  • Effectuer des recherches d’items dans un atelier
  • Télécharger et téléverser des items dans un atelier

L’application « référentiel photo » (refphoto)

Elle dispose d’une API qui à partir de l’UID d’une personne retourne :

  • Une image générique si la personne n’a pas de photo
  • Une image générique si la personne refuse la diffusion
  • La photo de la personne dans les autres cas

Pour le trombinoscope

  • Ajout dans le modèle Organigramme d’un champ « uid » à l’item « personne »

  • Création d’un script utilisant l’API Python de Scenari qui

    • Récupère un objet Python de chaque item « personne » d’un atelier ou d’un espace

    • Récupère, depuis Scenari, la photo si elle existe

    • Récupère, depuis refphoto, la photo ou l’image liée à l’uid de la personne

    • Modifie si besoin l’objet python

    • Dépose si besoin la photo sur Scenari sous un nom normalisé

    • Met à jour l’item « personne » à partir de l’objet python

La classe Person du script python

Attributs

Détail

Méthodes

Détails

_srv

l’identifiant du portail

__init__

Constructeur

_atelier

le wsp_code de l’atelier

_parse_xml_from_scenari

lecture de l’item Scenari

_item

le source xml de l’item Scenari

init_from_name

Lecture d’un item en fonction du first_name, et last_name

ref_uri

l’uri de l’item

print

first_name

search_photo

Recherche la photo dans l’atelier correspondante ) photo_ref_uri

last_name

get_photo

Télécharge la photo de l’atelier correspondante à photo_ref_uri

uid

L’id de la personne dans le SI

normalize_file_name

Normalise le nom <first_name>_<last_name>.jpg

photo_ref_uri

l’Uri de la photo dans l’(atelier si présente

upload_photo

Téléverse la photo au nom normalisé

set_photo

Effectue la liaison entre l’API de RefPhoto et celle de Scenari pour mettre à jour la photo dans l’atelier

Démonstration

Limite et projection

Parmi les limitations

  • Le nom de l’atelier et de l’espace utilisés dans la recherche sont en dur dans le script
  • Pour effectuer une mise à jour besoin de lancement manuel ou via un cron
  • Pour des raisons de sécurité l’api de refPhoto n’est utilisable que sur des pc autorisés

Projection

  • Intégration du code du script dans une interface web pour donner la main aux usagers

THE END

Liste des raccourcis clavier

Liste des fonctions de navigation et leurs raccourcis clavier correspondants :

  • Bloc Suivant : flèche droite, flèche bas, barre espace, page suivante, touche N
  • Bloc Précédent : flèche gauche, flèche haut, retour arrière, page précédente, touche P
  • Diapositive Suivante : touche T
  • Diapositive Précédente : touche S
  • Première diapositive : touche Début
  • Revenir à l'accueil : touche H
  • Menu : touche M
  • Agrandir la taille de la police : touche +
  • Réduire la taille de la police : touche -
  • Restaurer la taille de la police : touche *
  • Télécommande : touche R
  • Plein écran : touche F
  • Cacher outils : touche Z
  • Fermer zoom : touche Échap.