{% extends '@Communication/communication/layout.html.twig' %} {% block communication_title %}{{ publication.post.internalTitle }} · Planification{% endblock %} {% block communication_header %}{% endblock %} {% block communication_content %} {% set statusLabels = { draft:'Brouillon',scheduled:'Planifiée',queued:'En file d’attente',processing:'En cours', published:'Publiée',failed:'Échec',retry_scheduled:'Relance planifiée',cancelled:'Annulée' } %} {% set eventLabels = { scheduled:'Publication programmée',rescheduled:'Programmation modifiée', manual_publication_confirmed:'Publication manuelle confirmée', retry_scheduled:'Nouvelle tentative planifiée',cancelled:'Publication annulée' } %} {% set eventIcons = { scheduled:'solar:calendar-add-bold-duotone',rescheduled:'solar:calendar-mark-bold-duotone', manual_publication_confirmed:'solar:check-circle-bold-duotone', retry_scheduled:'solar:restart-bold-duotone',cancelled:'solar:close-circle-bold-duotone' } %} {% set platformLabels = { generic:'Générique',linkedin:'LinkedIn',twitter:'X / Twitter', instagram:'Instagram',facebook:'Facebook',threads:'Threads', tiktok:'TikTok',youtube:'YouTube',pinterest:'Pinterest' } %} {% set platformIcons = { generic:'solar:global-broken',linkedin:'mdi:linkedin',twitter:'ri:twitter-x-fill', instagram:'mdi:instagram',facebook:'mdi:facebook',threads:'simple-icons:threads', tiktok:'ic:baseline-tiktok',youtube:'mdi:youtube',pinterest:'mdi:pinterest' } %} {% set modeLabels = {manual:'Manuelle',api:'Automatique'} %} {% set content = publication.contentSnapshot.content|default(publication.variant.content|default('')) %} {% set contentTitle = publication.contentSnapshot.title|default(publication.variant.title|default(null)) %} {% set hashtags = publication.contentSnapshot.hashtags|default(publication.variant.hashtags|default([])) %} {% set media = publication.mediaSnapshot|default([]) %} {% set safeExternalUrl = publication.externalPostUrl and (publication.externalPostUrl starts with 'https://' or publication.externalPostUrl starts with 'http://') ? publication.externalPostUrl : null %}
Retour

{{ publication.post.internalTitle }}

Consultez le détail, le suivi et les actions de cette planification.

{{ statusLabels[publication.status]|default(publication.status|replace({'_':' '})) }} Voir la publication {% if safeExternalUrl %} Voir sur le réseau {% endif %}
Diffusion {{ platformLabels[publication.platform]|default(publication.platform|capitalize) }} {{ publication.socialAccount ? publication.socialAccount.displayName : 'Aucun compte spécifique' }} Mode {{ modeLabels[publication.publicationMode]|default(publication.publicationMode) }}
Créée le {{ publication.createdAt|date('d/m/Y à H:i') }} Mise à jour le {{ publication.updatedAt|date('d/m/Y à H:i') }}

Détails de la planification

Date, canal et paramètres retenus pour la diffusion.

{{ publication.timezone }}
Date prévue{{ publication.scheduledAt ? publication.scheduledAt|date('d/m/Y') : 'Non définie' }}
Heure{{ publication.scheduledAt ? publication.scheduledAt|date('H:i') : '—' }}
Plateforme{{ platformLabels[publication.platform]|default(publication.platform|capitalize) }}
Fuseau horaire{{ publication.timezone }}

Contenu programmé

{{ publication.variant.name }} · version {{ publication.variant.contentVersion }}

{{ content|length }} / 3 000
{% if contentTitle %}

{{ contentTitle }}

{% endif %}
{{ content ? content|nl2br : 'Aucun contenu enregistré dans la planification.' }}
{% if hashtags %}
{% for hashtag in hashtags %}#{{ hashtag }}{% endfor %}
{% endif %}
{% if media %}

Médias planifiés

{{ media|length }} fichier{{ media|length != 1 ? 's' }} enregistré{{ media|length != 1 ? 's' }} dans l’instantané.

{% for item in media %}
{{ item.filename|default('Média sans nom') }}{{ item.mime_type|default('Type non renseigné') }}{% if item.role|default(null) %} · {{ item.role }}{% endif %}
{% endfor %}
{% endif %} {% if publication.lastErrorMessage %}

Dernière erreur

Une intervention peut être nécessaire avant une nouvelle tentative.

{% if publication.lastErrorCode %}{{ publication.lastErrorCode }}{% endif %}
{{ publication.lastErrorType|default('Erreur de publication')|replace({'_':' '})|capitalize }}

{{ publication.lastErrorMessage }}

{% if publication.nextRetryAt %}Prochaine tentative : {{ publication.nextRetryAt|date('d/m/Y à H:i') }}{% endif %}
{% endif %}

Historique de la planification

Journal immuable des changements et des actions réalisées.

{{ logs|length }} événement{{ logs|length != 1 ? 's' }}
{% for log in logs %}
{{ eventLabels[log.eventType]|default(log.eventType|replace({'_':' '})|capitalize) }} {{ log.createdAt|date('d/m/Y à H:i:s') }}{% if log.user %} · {{ log.user.prenom }} {{ log.user.nom }}{% endif %} {% if log.message %}

{{ log.message }}

{% endif %} {% if log.statusBefore or log.statusAfter %} {{ statusLabels[log.statusBefore]|default(log.statusBefore|default('Création')) }} {{ statusLabels[log.statusAfter]|default(log.statusAfter|default('—')) }} {% endif %}
{% else %}
Aucun événement enregistré.
{% endfor %}
{% endblock %}