Chez Liip, nous accompagnons rĂ©guliĂšrement des client·e·s aux besoins complexes en matiĂšre de gestion de contenu. Un exemple rĂ©cent est la rĂ©alisation du nouveau site web du Museum fĂŒr Gestaltung de Zurich, le principal musĂ©e suisse du design, reconnu pour la richesse et la diversitĂ© de son programme public. L’un des points centraux du projet Ă©tait la mise en place d’un systĂšme de gestion d’évĂ©nements Ă  la fois flexible et puissant, capable de rĂ©pondre Ă  une grande variĂ©tĂ© de formats et d’exigences.

Comprendre les besoins

En plus de ses expositions permanentes et temporaires, le Museum fĂŒr Gestaltung Zurich propose un large Ă©ventail d’évĂ©nements: visites guidĂ©es, sorties scolaires, ateliers de plusieurs jours, mais aussi concerts ou projections ponctuelles. Ces activitĂ©s se dĂ©roulent sur trois sites diffĂ©rents et s’adressent Ă  des publics variĂ©s : visiteur·euse·s individuel·le·s, familles, groupes d’ami·e·s ou classes scolaires. Certains Ă©vĂ©nements sont gratuits, d’autres requiĂšrent une inscription payante, et beaucoup sont proposĂ©s en plusieurs langues.

Pour gĂ©rer cette diversitĂ©, le musĂ©e avait besoin d’un systĂšme capable de prendre en charge:

  • des Ă©vĂ©nements rĂ©currents avec des plannings complexes
  • des durĂ©es trĂšs variables (de la visite de deux heures Ă  l’atelier de plusieurs jours)
  • plusieurs lieux en parallĂšle
  • la segmentation et le ciblage prĂ©cis des publics
  • la dĂ©finition de limites de participant·e·s (minimum et maximum)
  • une communication automatisĂ©e avec les visiteur·euse·s (par exemple, des rappels)

En rĂ©sumĂ©, il ne s’agissait pas seulement d’afficher une liste d’évĂ©nements et un calendrier, mais de concevoir un vĂ©ritable systĂšme de gestion Ă©vĂ©nementielle, Ă  la fois flexible et Ă©volutif.

Évaluer les solutions Drupal

Avec Drupal, la devise est «il y a un module pour ça». Avec plus de 53 000 modules disponibles, il était logique de commencer par là.
AprÚs avoir étudié plusieurs options, nous avons identifié le module Recurring Events comme point de départ le plus intéressant.

Pourquoi Recurring Events?

Avantages:

  • C’est le module le plus complet pour gĂ©rer des Ă©vĂ©nements dans Drupal.
  • Il propose par dĂ©faut une riche palette de fonctionnalitĂ©s, qui dans certains cas dĂ©passaient mĂȘme nos besoins.

Inconvénients:

  • L’ensemble des exigences du musĂ©e n’était pas couvert.
  • Certaines fonctionnalitĂ©s existantes ne correspondaient pas aux cas d’usage et devaient ĂȘtre adaptĂ©es.
A screenshot of the event management UI of the Recurring Events Drupal module.

Identifier les lacunes

Le module Recurring Events rĂ©pondait dĂ©jĂ  Ă  une partie de nos besoins, mais pas Ă  tous. C’est une difficultĂ© frĂ©quente en dĂ©veloppement logiciel : les solutions existantes couvrent souvent une grande partie du chemin, mais rarement l’ensemble des exigences spĂ©cifiques.

Pour le Museum fĂŒr Gestaltung, plusieurs fonctionnalitĂ©s essentielles manquaient encore :

Gestion multilingue

Au-delĂ  des trois langues nationales, le musĂ©e propose rĂ©guliĂšrement des Ă©vĂ©nements en anglais pour les visiteur·euse·s internationaux·ales. Il Ă©tait donc indispensable que le contenu et les processus d’inscription soient entiĂšrement gĂ©rables en plusieurs langues.

Inscriptions de groupe

la majoritĂ© des visites s’effectue en groupe (familles, ami·e·s, classes ou groupes guidĂ©s). Le systĂšme devait permettre l’inscription d’un groupe entier, et basculer automatiquement sur liste d’attente si la capacitĂ© restante Ă©tait insuffisante.

CapacitĂ© par dĂ©faut selon le type d’évĂ©nement

certains formats, comme les visites guidĂ©es, reviennent frĂ©quemment avec une capacitĂ© fixe. Pouvoir dĂ©finir une valeur standard aurait simplifiĂ© la saisie et rĂ©duit le risque d’erreurs.

Dates d’évĂ©nement verrouillĂ©es

Une fois un Ă©vĂ©nement publiĂ© et visible, ses dates ne devaient plus pouvoir ĂȘtre modifiĂ©es ou supprimĂ©es. Cette restriction garantissait la clartĂ© et Ă©vitait toute confusion pour le public.

Communication par e-mail adaptée

Selon le type d’inscription (groupe privĂ© ou classe scolaire), diffĂ©rentes Ă©quipes Ă©taient responsables du suivi. Le systĂšme devait donc permettre l’utilisation de modĂšles d’e-mails distincts pour assurer une communication cohĂ©rente et ciblĂ©e.

Choisir la bonne approche

Une fois les besoins clairement dĂ©finis, restait Ă  rĂ©pondre Ă  une question centrale: fallait-il dĂ©velopper une solution entiĂšrement sur mesure, ou bien Ă©tendre l’existant ?

AprÚs analyse, quatre pistes se sont dégagées :

Option 1: Développer une solution custom

Cela nous donnerait un contrÎle et une flexibilité totale.

Avantages:

  • Une solution parfaitement adaptĂ©e aux besoins du musĂ©e, sans aucun compromis.

Inconvénients:

  • Un coĂ»t initial Ă©levĂ©.
  • Risque de rĂ©inventer des fonctionnalitĂ©s dĂ©jĂ  couvertes par des modules existants.

Option 2: Forker le module Recurring Events

Il s'agit d'une approche pragmatique, en particulier Ă  court terme, mais difficile Ă  maintenir Ă  long terme.

Avantages:

  • PossibilitĂ© d’adapter le module Ă  l’ensemble des besoins spĂ©cifiques.
  • Mise en Ɠuvre rapide au dĂ©part.

Inconvénients:

  • Charge de maintenance importante Ă  long terme.
  • Risques de conflits avec les futures Ă©volutions du module.
  • Les amĂ©liorations resteraient internes et ne bĂ©nĂ©ficieraient pas Ă  la communautĂ©.

Option 3: Étendre le module avec du code custom

Utilisez le module tel quel et développez les fonctionnalités manquantes à l'aide des API Drupal, qui sont conçues pour adapter les fonctionnalités existantes aux besoins spécifiques d'un projet.

Avantages:

  • RĂ©utilisation des fonctionnalitĂ©s existantes.
  • SĂ©paration claire entre le code communautaire et la logique spĂ©cifique au projet.

Inconvénients:

  • Maintenance continue nĂ©cessaire pour le code custom.
  • Risques de conflits si le module Ă©volue.
  • Les ajouts pourraient ĂȘtre utiles Ă  d’autres, mais resteraient isolĂ©s.

Option 4: Contribuer directement au module Recurring Events

Collaborez avec les responsables de la maintenance du module afin d'intégrer directement les nouvelles fonctionnalités dans le module.

Avantages:

  • Alignement avec la philosophie open source de Drupal.
  • CompatibilitĂ© et support communautaire assurĂ©s sur le long terme.
  • Relecture et amĂ©lioration des fonctionnalitĂ©s par d’autres dĂ©veloppeur·euse·s expĂ©rimenté·e·s.
  • RĂ©duction de la maintenance pour notre Ă©quipe Ă  terme.

Inconvénients:

  • Exigences Ă©levĂ©es en matiĂšre de qualitĂ© de code et de documentation.
  • Risque que certaines contributions soient refusĂ©es ou prennent du temps Ă  ĂȘtre validĂ©es.
  • NĂ©cessitĂ© d’une coordination et d’une communication accrues pendant le dĂ©veloppement.

Une collaboration réussie

Nous avons finalement retenu l’option 4: collaborer Ă©troitement avec les mainteneur·euse·s du module Recurring Events afin d’y intĂ©grer les fonctionnalitĂ©s manquantes. Pendant plusieurs mois, nous avons participĂ© activement Ă  l’issue queue, contribuĂ© du code, relu des patches et affinĂ© des solutions en dialogue constant avec la communautĂ©. Cette collaboration a conduit Ă  l’intĂ©gration de l’un·e de nos dĂ©veloppeur·euse·s comme co-mainteneur·euse officiel·le du module.
Le rĂ©sultat est un vĂ©ritable succĂšs: nous avons livrĂ© un systĂšme de gestion d’évĂ©nements puissant, flexible et parfaitement adaptĂ© aux besoins du musĂ©e, tout en restant fidĂšle aux principes de l’open source. Plusieurs de nos contributions font dĂ©sormais partie des derniĂšres versions du module, et d’autres amĂ©liorations sont dĂ©jĂ  en cours de dĂ©veloppement.
Chez Liip, nous croyons fermement qu’il ne suffit pas d’utiliser des outils: il faut aussi les renforcer et les partager. Nous le faisons non seulement pour nos client·e·s, mais aussi pour l’ensemble de la communautĂ© open source Drupal.
Si tu veux participer Ă  l’amĂ©lioration de la gestion d’évĂ©nements dans Drupal, rejoins la discussion avec nous dans l’issue queue du module Recurring Events.