Le WordPress d'aujourd'hui, décodé pour les développeurs

Extensions

Un service de garde d’enfants : plannings et remplacements sans ERP

Une structure de données minimale gère les créneaux et les remplacements ponctuels d'un petit réseau d'intervenants, sans recourir à un logiciel métier complet.

Par WordPress Développement • 21 mai 2023 • 4 min de lecture • Aucun commentaire
Un service de garde d'enfants : plannings et remplacements sans ERP

Comment un réseau de huit intervenantes à domicile, coordonné par une petite structure associative, peut-il gérer ses plannings hebdomadaires et ses remplacements de dernière minute sans investir dans un logiciel métier de gestion d’intervenants, hors de portée de son budget ? La réponse tient dans une extension WordPress construite autour de trois tables et d’une règle simple : un remplacement n’efface jamais un créneau initial, il s’ajoute comme une exception qui le complète.

Ce choix de modélisation, discuté avec la coordinatrice du réseau avant tout développement, s’est révélé décisif : elle avait besoin de conserver une trace de qui était initialement prévu sur un créneau, même après un remplacement, pour ses propres besoins de suivi RH.

La structure des données

Trois tables suffisent à couvrir le besoin, sans complexité inutile :

  • wp_garde_intervenantes : identité, disponibilités générales, coordonnées.
  • wp_garde_creneaux : un créneau planifié, avec une intervenante titulaire, une famille, une date et une plage horaire.
  • wp_garde_remplacements : un enregistrement séparé, qui référence un créneau existant et désigne l’intervenante de remplacement, sans jamais modifier la ligne d’origine.
CREATE TABLE wp_garde_creneaux (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    intervenante_id BIGINT UNSIGNED NOT NULL,
    famille_id BIGINT UNSIGNED NOT NULL,
    date_creneau DATE NOT NULL,
    heure_debut TIME NOT NULL,
    heure_fin TIME NOT NULL,
    PRIMARY KEY (id),
    KEY date_creneau (date_creneau)
) {$charset_collate};

CREATE TABLE wp_garde_remplacements (
    id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,
    creneau_id BIGINT UNSIGNED NOT NULL,
    intervenante_remplacante_id BIGINT UNSIGNED NOT NULL,
    motif VARCHAR(255) NOT NULL,
    date_declaration DATETIME NOT NULL,
    PRIMARY KEY (id),
    KEY creneau_id (creneau_id)
) {$charset_collate};

Pourquoi une exception plutôt qu’une réécriture

L'essentiel à retenir : Une table de créneaux distincte des intervenants et des familles ; Un remplacement s'enregistre comme une exception, pas une réécriture ; Un tableau de bord simple suffit sans module de facturation

La tentation la plus courante face à un remplacement consiste à modifier directement la ligne du créneau, en remplaçant l’identifiant de l’intervenante titulaire par celui de la remplaçante. Cette approche semble plus simple à court terme, mais elle efface une information que la coordinatrice jugeait précieuse : qui était censé intervenir initialement, utile pour évaluer la charge de travail réellement planifiée pour chaque intervenante, indépendamment des aléas.

Avec une table de remplacements séparée, une requête suffit pour reconstruire l’affichage réel du planning tout en conservant l’historique complet :

SELECT
    c.date_creneau,
    c.heure_debut,
    c.heure_fin,
    COALESCE(r.intervenante_remplacante_id, c.intervenante_id) AS intervenante_effective,
    (r.id IS NOT NULL) AS est_remplacement
FROM wp_garde_creneaux c
LEFT JOIN wp_garde_remplacements r ON r.creneau_id = c.id
WHERE c.date_creneau = '2023-05-22'
ORDER BY c.heure_debut ASC;

La fonction COALESCE() retient l’intervenante de remplacement si elle existe, sinon la titulaire d’origine, tandis que la colonne calculée est_remplacement permet à l’écran d’administration d’afficher un badge visuel distinctif sans logique PHP supplémentaire.

Le tableau de bord de la coordinatrice

L’écran d’administration principal affiche la semaine en cours sous forme de tableau, une ligne par créneau, avec le nom de l’intervenante effectivement affectée et un badge « remplacement » le cas échéant. Un simple formulaire permet de déclarer un remplacement en sélectionnant le créneau concerné et la nouvelle intervenante, sans jamais toucher à la ligne d’origine.

ÉlémentRôle
Vue hebdomadaireAffiche les créneaux effectifs, remplacements inclus
Formulaire de remplacementEnregistre une exception sans modifier le créneau d’origine
Export CSV mensuelFournit à la coordinatrice un relevé pour son propre suivi RH

Ce que cette approche évite

Une structure de données pensée dès le départ pour distinguer le planifié de l’effectif évite une série de retouches ultérieures : ajout après-coup d’un historique de modifications, difficulté à répondre à la question « qui devait initialement travailler ce jour-là », ou confusion entre un remplacement ponctuel et un changement définitif d’affectation, qui relève d’une autre table de règle récurrente non traitée ici.

Le conseil que je donne sur ce type de projet associatif à petit budget : ne jamais chercher à modéliser toutes les possibilités futures, mais bien distinguer, dès la première table, ce qui est un fait établi de ce qui est une exception ponctuelle.

En résumé

Trois tables et une règle de non-réécriture suffisent à couvrir la gestion des plannings et des remplacements d’un petit réseau d’intervenantes, sans les coûts et la complexité d’un ERP dédié. La facturation aux familles, souvent gérée via un autre canal associatif, reste un sujet distinct qui n’entre pas dans le périmètre de cette extension.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Partager :

À propos de l'auteur

WordPress Développement

Développeur WordPress, passionné par Elementor, le FSE et l’automatisation par IA.

Voir tous ses articles

Dans la même veine

À lire aussi