Plannings et contexte de dates
Il est très fréquent, dans Mediboard, d'afficher des listes de séjours, de consultations, d'interventions représentant le planning d'une journée.
Dans ce cadre, on utilise logiquement les propriétés? ad hoc au format dateTime comme par exemple
{{$sejour->_sortie}}
{{$operation->_datetime}}
{{$consultation->_datetime}}
..
Résultat, pour un jour donné, on a une répétition du jour de chacun des éléments, puisqu'ils sont — a priori — identiques. On peut alors tenter d'utiliser une version time, quand elle est disponible, de la propriété en question.
{{$sejour->_hour_entree_prevue}}
{{$operation->_hour_op}}
{{$consultation->heure}}
..
Mais ces propriétés sont appelées à disparaître car elle consomme inutilement des ressources lorsqu'elles sont dérivées, et difficiles à manipuler lorsqu'elles sont stockées, notamment pour rechercher de façon croisée avec les dates. On préférera donc systématiquement les dateTime, quitte à les mettre en page à la volée.
{{$sejour->_sortie|date_format:$dPconfig.time}}
Seulement il arrive assez fréquemment, et contrairement au prédicat initial, qu'on n'affiche également d'autres dates. Un cas typique est la main courante des urgences, ou encore les entrées réelles aux admissions d'hospitalisations, qui peuvent être différentes des dates prévues.
On se retrouve alors avec du code un peu compliqué pour afficher un simple date, si elle est différente du contexte fourni :
{{if $_sejour->_entree == $date}}
{{$_sejour->_entree|date_format:$dPconfig.time}}
{{else}}
{{$_sejour->_entree|date_format:$dPconfig.datetime}}
{{/if}}
En résumé, on veut afficher une propriété dateTime dans le contexte d'une date, ce qu'on peut et doit systématiquement implémenter en utilisant la syntaxe suivante :
{{mb_value object=$_sejour field=_entree date=$date}}
Merci pour les repos des yeux qui scrutent le code en quête d'esthétisme ...
