trouver l'occurence d'un evenement de calendrier

Bonjour,

J'ai créé un type de contenu qui herite de CalandarEvent.

J'y ai "branché" un Datacontroller qui me permettra d'effectuer des actions sur l'evenement courant.

Or lorsque mon evenement est périodique, je souhaite effectuer ces actions sur l'occurence courante et non sur l'evenement.

Comment récupéréer cette occurence dans mon DC ?

Daniel

4 pts
Expert Ludovic Smadja on 6/25/21 at 10:19 AM

Dans le module Calendrier, ill n'y a pas actions possibles au niveau DataController sur les instances d'une événement périodique. En effet les instances des événements périodiques n'ont pas de stockage et donc ne passe pas par les méthodes performXXX (et donc ne passe pas dans le data controller).

C'est une des limites qui a été levés dans le oassage au module jCalendar.

Quel est le besoin fonctionnel qui est derrière ? Car il est possible d'avoir une information lors la visualisation d'une occurrence via les target par exemple.

Les informations à regarder dans ce cas sont :

 

Pour obtenir l'objet source dans le cas d'un événement périodique

 parentCalendarEvent = (CalendarEventInterface) ((Data)obj).getExtraInfo(CalendarUtil.PERIODIC_PARENT);

 

Pour savoir si un événement est périodique.

boolean isPeriodicalEvent = CalendarUtil.isPeriodicEvent(obj);
1 pt
Daniel WELTZ on 6/25/21 at 10:36 AM

Bonjour Ludovic,

Merci pour ta réponse.

Mon besoin est le suivant : je souhaite ajouter des événements de types Tâches ( périodique ou non). Les participants ont la possibilité de clôturer l'événement/tâche dès que celui-ci est effectué.

Dans le cas d'une "tâche" périodique, la clôture ne se fait que sur l'occurrence courante ( l'affichage du gabarit fullDisplay de l'événement depuis un calendrier, affiche un bouton "Clôturer la tâche").

 

J'ai réussi à mettre en place une solution de contournement qui fonctionne : j'ajoute le paramètre de "startDate" qui me permet de différencier la date de l'occurrence sur le href du bouton "Clôturer la tâche".

J'ai ajouté un champ de type Map dans mon type de contenu "Evenement/tâche" qui réceptionnera l'occurrence de l'événement en clé, et l'utilisateur qui a clôturé la tâche.

Dans mon DataControler, lorsque je réception l'action lancer par le bouton "Clôturer la tâche", je récupère le paramètre de la date, et, associé à l'ID de l'événement, je peux ajouter dans ma map l'occurrence (date+id) en clé et le membre connecté en valeur.

Et le tour est joué.

Daniel

0 pts