Aller au contenu principal

Objets complexes

Les objets complexes sont des éléments mis à disposition du contexte de génération, en plus des objets initialement disponibles dans le contexte.

jobs_map

Contexte d'utilisation

L'objet jobs_map est un objet complexe permettant de parcourir l'ensemble des Jobs reliés à un Déploiement via les Groupes, ou directement à un Groupe. Il est donc disponible dans les contextes de génération pour les Déploiements et les Groupes.

Son objectif est de lister l'ensemble des Jobs, triés par client et plateforme.

Architecture

jobs_map = [
// Objet unique par client
{
"customer": {
// Données du client
},
"platforms": [
{
"platform": {
// Donnée de la plateforme
},
"jobs": [
{
// Donnée des jobs reliés à la plateforme
}
]
}
]
}
]

Exemple

{% for customerItem in context.get("jobs_map") %}
<h3>{{ customerItem.get("customer").get("name").textValue()}}</h3>
{% for platformItem in customerItem.get("platforms") %}
{% for jobItem in platformItem.get("jobs") %}
<p style="font-size: small;">{{ platformItem.get("platform").get("webUrl").textValue()}} - <span style="color: #777;">{{ jobItem.get("scheduledAt")|date}}</span></p>
{% endfor %}
{% endfor %}
{% endfor %}

Le résultat de ce code est le suivant :

Limitation du périmètre par destinataire

Pour générer l'objet jobs_map, on utilise la liste des jobs rattachés à un Groupe ou un Déploiement. Pour certains destinataires, le calcul est modifié afin de restreindre le périmètre des jobs affichés. Cela permet de ne pas afficher tous les jobs pour un destinataire qui n'a pas les droits de les voir. Notamment dans le cas des contacts d'une plateforme ou d'un client, qui ne doivent voir que les jobs liés à leur plateforme ou client.

Les invités sur un Groupe ou un Déploiement ont accès à l'ensemble des jobs du Groupe ou du Déploiement.