Gestion de matériel (captations vidéo) disponible ou utilisé selon un calendrier

Bonjour,

Je me demande si Grist pourrait répondre au besoin suivant : je dispose de matériel audiovisuel qui sert à des captations. Des personnes m’adressent des demandes de captation.

Voici comment sont traitées les demandes qui me parviennent :

  1. Une demande arrive avec date de début et date de fin de l’événement et des précisions sur les besoins en captation.
  2. J’immobilise (concrètement, je note sur feuille actuellement) le matériel nécessaire à la captation de l’événement, la date de début et la date de fin de l’événement.

Lorsqu’une autre demande arrive avec ses propres dates de début et de fin :

  1. Si cette nouvelle captation ne chevauche aucune autre captation, facile : tout le matériel est mobilisable pour cette nouvelle captation.
  2. Si par contre la nouvelle captation chevauche une (ou plusieurs) autre(s) captation(s), seul le matériel non déjà immobilisé doit être affiché et mobilisable. C’est sur cette vérification que je bute. J’ai regardé du côté des conditions d’affichage, mais sans vraiment réussir à écrire ce qu’il faudrait.

Concrètement, je dispose pour l’instant de plusieurs tables :

  • une table pour le matériel disponible ;
  • une table emprunteurs (les personnes qui peuvent demander des captations) ;
  • une table captations (avec les captations, leur date de début, leur date de fin, le matériel immobilisé pour la captation).

Grist peut-il répondre à ce besoin, selon vous ?

Par avance, merci !

Bonjour et bienvenue sur le forum :slight_smile:

oui tout à fait, vous pouvez ajouter dans votre table de matériel une colonne “disponibilité”, avec pour chaque ligne une formule qui va regarder (lookup) dans la table captations si le matériel est emprunté à la date du jour.

Vous pouvez regarder le grist de gestion de clés Template Grist : Gestion des clés c’est le même concept (la formule sera différente pour vous car vous gérez des dates, et je suppose que vous n’avez qu’un exemplaire de chaque matériel)

N’hésitez-pas à fournir une capture ou un modèle d’exemple de votre projet si vous bloquez sur la formule !

Ensuite, pour afficher uniquement le matériel mobilisable dans la table captations, dans la colonne référence multiple “matériel” vous pouvez mettre une condition sur liste déroulante du style choice.disponibilite == True

Bonjour, et merci pour votre réponse.

Il me semble qu’une colonne disponibilité dans la table Matériel ne peut répondre à la question posée, car lorsque je reçois une demande de captation avec ses dates, si cette captation n’a lieu en même temps qu’aucune autre captation, tout le matériel doit apparaître.

Dans le tableau ci-dessous, Micro 1 et Micro 2 sont bloqués par l’événement d’Alice.

  • Pour l’événement de Bob, ces deux équipements ne sont donc pas disponibles (et je souhaiterais ne pas les afficher dans la liste des équipements réservables pour l’événement de Bob).
  • Par contre, pour l’événement de Mallory qui a lieu bien après les deux premiers, je dois pouvoir bloquer Micro 1 et Micro 2.

J’ai l’impression que ce qui m’intéresse est plutôt une disponibilité en fonction des dates.

Peut-être en ajoutant une colonne Matériel indisponible dans la table Captations ?

en effet au temps pour moi !

Bonne idée de faire une colonne “matériel bloqué”..avec une formule d’ini qui va chercher tous les enregistrements de la table captations, filtre ceux dont au moins un jour est contenu dans la plage de date précédemment choisie, et retourne la liste de matériel de ces lignes.

Ensuite dans la colonne “matériel disponible”, une condition sur liste déroulante du style choice.nom not in $materiel_bloque ?

Je m’en sors avec cette formule d’initialisation qui permet d’obtenir l’ensemble du matériel bloqué par d’autres captations dont les dates chevauchent celles de la captation en cours de saisie :

– Colonne MaterielIndisponible

if not $DateDebut or not $DateFin:
return ()
pris = set()
for c in Captations.all:
if c.id == $id or not c.DateDebut or not c.DateFin:
continue
if $DateDebut <= c.DateFin and c.DateDebut <= $DateFin: # chevauchement
pris.update(c.Materiel_reserve.Nom_ID_GLPI)
return pris

Puis effectivement une condition d’affichage :

– Colonne MaterielReserve

choice.Nom_ID_GLPI not in $MaterielIndisponible

Merci de votre aide !

1 « J'aime »

super bien joué :slight_smile:

Je pense que votre modèle pourrait intéresser du monde et s’appliquer à plein d’autres cas d’usage, si jamais vous avez le temps de le partager à terme, dans tous les cas bon gristage !

1 « J'aime »