Introduction
Il peut paraître un peu frustrant de ne pas voir la même chose dans l'application planning et dans le calendrier.
Or ce sont 2 modèles distincts dans Odoo. Si vous planifiez une intervention ou une tâche dans un projet, le calendrier de la personne assignée ne sera pas impacté. Il ou elle devra consulter le planning des tâches pour connaître son emploi du temps.
Et quand, en plus, on a déjà synchronisé Outlook ou Google Agenda avec le calendrier, c'est encore plus embêtant.
Un bout de code
Eh oui, ça passe souvent par un petit morceau de code avec Studio. Même en version online, on peut quand même trouver des solutions.
Ici, on va passer par les actions automatisées et quelques lignes de programmes.
Comme d'habitude, si vous n'êtes pas sûr de comprendre ce qui suit, on peut vous aider. Et dans le doute, commencez par dupliquer votre base pour faire cet exercice en base de test.
Besoin d'aide ? Contactez nous
On va prendre un exemple qu'il faudra refaire pour chaque cas ou on doit mettre à jour le calendrier.
Pour nous, on considère qu'une tâche qui passe en statut planifié doit être synchronisée avec le calendrier. On va donc accéder à Studio depuis le module Service sur site par exemple.
De là, on clique sur Automatisations.
Choisissez le nom qui vous convient, sélectionnez le modèle "Tâche" et le déclencheur : "l'étape est définie sur Planifié"
Puis Ajouter une action et Execute Code
Voici le code :
for assigne in record.user_ids:
planned_end_date = record.planned_date_start + datetime.timedelta(hours=record.allocated_hours)
event_values = {
'name': record.name,
'start': record.planned_date_start,
'stop': planned_end_date,
'allday': False,
'user_id': assigne.id,
}
env['calendar.event'].create(event_values)
Notes : on a choisi de créer un évènement qui démarre au début de la planification et qui dure le temps qui a été alloué dans la tâche. Ensuite, on crée l'évènement dans le calendrier de l'utilisateur assigné (ou des utilisateurs s'ils sont plusieurs).
Conclusion
Encore un bout de code assez simple et pratique. On peut bien sûr l'améliorer et y intégrer des vérifications diverses.
On peut par exemple, supprimer l'évènement si la tâche repasse à l'étape précédente (En cours). On peut vérifier que les dates planifiées sont bien définies et que le temps alloué est aussi supérieur à zéro. On peut aussi gérer les modifications de dates ...
A vous de jouer :)
Synchroniser planning et calendrier