Scheduled Transitions

Permite a los usuarios programar revisiones de contenido para cambiar su estado de moderación en una fecha y hora específicas.

scheduled_transitions
2,921 sites
47
drupal.org

Install

Drupal 11 v2.8.3
composer require 'drupal/scheduled_transitions:^2.8'
Drupal 10 v2.7.0
composer require 'drupal/scheduled_transitions:^2.7'

Overview

Scheduled Transitions es un potente módulo de automatización de flujos de trabajo que se integra con el sistema de Content Moderation de Drupal. Permite a los editores de contenido y administradores programar cambios de estado para las revisiones de entidades en momentos predeterminados, automatizando el proceso del flujo de trabajo de publicación.

El módulo crea un tipo de entidad personalizado para almacenar las transiciones programadas y proporciona una interfaz completa para gestionarlas. Cada transición programada registra la entidad objetivo, la revisión, el nuevo estado de moderación, la fecha de ejecución y el usuario que la programó. Las transiciones pueden apuntar a una revisión específica o utilizar automáticamente la última revisión en el momento de la ejecución.

El procesamiento se realiza a través del sistema de colas de Drupal en un proceso de dos pasos: primero, las transiciones listas se añaden a la cola, luego los trabajadores de cola ejecutan los cambios de estado reales. Esto puede automatizarse mediante cron o gestionarse manualmente usando comandos de Drush.

El módulo soporta sitios multilingües rastreando el idioma de la revisión que se está transicionando, y maneja escenarios complejos como recrear borradores pendientes después de publicar una revisión anterior.

Features

  • Programar cualquier revisión de entidad para transicionar a un estado de moderación diferente en una fecha y hora específicas
  • Soporte para programar la última revisión dinámicamente - se utilizará la última revisión real en el momento de la ejecución
  • Opción para recrear borradores pendientes después de publicar revisiones históricas para preservar el trabajo no publicado
  • Configuración por tipo de entidad y bundle para habilitar transiciones programadas
  • Sistema de permisos dinámico que genera permisos de visualización, adición y reprogramación por tipo de entidad/bundle
  • Plantillas de mensaje de registro de revisión personalizables con soporte de tokens para detalles de transición
  • Mensajes de registro de revisión que el usuario puede sobrescribir por transición programada cuando está habilitado
  • Integración de pestaña de entidad que muestra todas las transiciones programadas para cualquier entidad habilitada
  • Interfaz de administración que lista todas las transiciones programadas en el sitio con integración de Views
  • Funcionalidad de reprogramación para cambiar el tiempo de ejecución de transiciones pendientes mediante diálogo modal
  • Procesamiento de cola en dos pasos: la creación y ejecución de trabajos pueden separarse para un control detallado
  • Retención configurable de transiciones procesadas con enlaces opcionales a las revisiones creadas
  • Limpieza automática de transiciones programadas cuando se eliminan las entidades o revisiones anfitrionas
  • Función de operaciones espejo para diferir las verificaciones de acceso a operaciones estándar de entidad como actualizar
  • Sistema de tokens que proporciona información del estado de transición para registros de revisión y otras integraciones
  • Sistema de eventos que permite lógica personalizada para determinar qué revisión debe transicionarse
  • Comando de Drush para activar manualmente la creación de trabajos en cola
  • Integración completa con Views con manejadores de campos personalizados para etiquetas de estado y enlaces de revisión

Use Cases

Publicación programada

Programar contenido para ser publicado en una fecha y hora específicas. Crear un nodo en estado Borrador, luego añadir una transición programada para moverlo a Publicado en el momento deseado. El módulo creará automáticamente la revisión publicada cuando llegue el momento programado.

Contenido con tiempo limitado

Publicar contenido que debe despublicarse automáticamente más tarde. Después de publicar contenido, añadir una transición programada para moverlo a un estado Archivado o No publicado en una fecha futura. Útil para anuncios de eventos, promociones o contenido estacional.

Flujos de trabajo de embargo/levantamiento

Gestionar contenido bajo embargo que debe liberarse en un momento específico. Almacenar contenido embargado en un estado personalizado 'Embargado', luego programar una transición a Publicado cuando el embargo se levante. Se pueden encadenar múltiples transiciones.

Ciclos de revisión de contenido

Mover automáticamente el contenido a través de estados de revisión. Programar una transición de Publicado a estado 'Necesita revisión' a intervalos regulares para asegurar que el contenido se revise y actualice periódicamente.

Programación de reversión

Usar la función de revisión histórica para programar la reversión a una revisión anterior. Seleccionar una revisión específica para transicionar en lugar de la última, útil para reversiones programadas de cambios problemáticos.

Publicación multilingüe

Programar transiciones específicas de idioma de forma independiente. Cada traducción puede tener sus propias transiciones programadas, permitiendo que diferentes idiomas se publiquen en diferentes momentos según los requisitos regionales.

Preservación de borradores durante la publicación

Al publicar una revisión anterior mientras existe un borrador más nuevo, habilitar 'Recrear revisión pendiente' para restaurar automáticamente el borrador sobre la nueva versión publicada, preservando el trabajo en progreso.

Tips

  • Ejecute 'drush scheduled-transitions:queue-jobs' y 'drush queue:run scheduled_transition_job' cada 1-5 minutos para una precisión de programación exacta
  • Use la opción 'Última revisión' cuando quiera que la transición se aplique a cualquiera que sea el estado actual en el momento de la ejecución, en lugar de una revisión específica
  • Habilite 'Recrear revisión pendiente' para preservar el trabajo de borrador al publicar revisiones anteriores
  • Refleje operaciones a 'update' para una gestión de permisos más simple - los usuarios con acceso de edición obtienen automáticamente acceso a transiciones programadas
  • Use el listado opcional basado en Views en /admin/content/scheduled-transitions para vistas de administración más personalizables
  • Las transiciones procesadas pueden retenerse para propósitos de auditoría - configure la duración de retención en los ajustes
  • El soporte de tokens en los registros de revisión ayuda a crear rastros de auditoría claros - personalice las plantillas para que coincidan con su flujo de trabajo
  • El sistema de eventos permite lógica de selección de revisión personalizada para casos de uso avanzados como pruebas A/B o publicación condicional

Technical Details

Admin Pages 5
Configuración de transiciones programadas /admin/config/workflow/scheduled-transitions

Configurar qué tipos de entidad y bundles pueden usar transiciones programadas, establecer opciones de automatización, personalizar plantillas de mensajes de registro de revisión y configurar el comportamiento de procesamiento.

Transiciones programadas /admin/content/scheduled-transitions

Listado administrativo de todas las transiciones programadas en el sitio. Muestra la entidad objetivo, la fecha programada y proporciona operaciones para reprogramar o eliminar transiciones. Requiere el permiso 'ver todas las transiciones programadas'.

Transiciones programadas {entity_canonical}/scheduled-transitions

Pestaña específica de entidad que muestra todas las transiciones programadas para la entidad actual. Muestra información de revisión, cambios de estado, fechas programadas y estado de procesamiento. Disponible en cualquier entidad con transiciones programadas habilitadas.

Añadir transición programada {entity_canonical}/scheduled-transitions/add

Formulario para crear una nueva transición programada para una entidad. Permite seleccionar una revisión de origen (o la última), elegir una transición/estado objetivo y establecer la fecha de ejecución. Se abre como un diálogo modal.

Reprogramar transición programada /admin/scheduled-transition/{scheduled_transition}/reschedule

Formulario modal para cambiar la fecha/hora de ejecución de una transición programada existente.

Permissions 5
Administrar transiciones programadas

Acceder al formulario de configuración de transiciones programadas para configurar tipos de entidad habilitados, automatización y plantillas de mensajes. Permiso de acceso restringido.

Ver todas las transiciones programadas

Ver el listado administrativo de todas las transiciones programadas en /admin/content/scheduled-transitions.

Ver transiciones programadas para entidades {entity_type}:{bundle}

Permiso dinámico generado por tipo de entidad/bundle habilitado. Permite ver la pestaña de transiciones programadas en entidades de este tipo.

Añadir transiciones programadas para entidades {entity_type}:{bundle}

Permiso dinámico generado por tipo de entidad/bundle habilitado. Permite crear nuevas transiciones programadas para entidades de este tipo.

Reprogramar transiciones programadas para entidades {entity_type}:{bundle}

Permiso dinámico generado por tipo de entidad/bundle habilitado. Permite cambiar el tiempo de ejecución de transiciones programadas existentes.

Hooks 1
hook_scheduled_transitions_new_revision

No es un hook tradicional - usa el patrón de suscriptor de eventos de Symfony en su lugar. Suscríbase a ScheduledTransitionsEvents::NEW_REVISION para personalizar la selección de revisión.

Drush Commands 2
drush scheduled-transitions:queue-jobs

Crea elementos de cola para todas las transiciones programadas que están listas para ser procesadas (la fecha transition_on ha pasado). Las transiciones se bloquean para evitar procesamiento duplicado.

drush queue:run scheduled_transition_job

Procesa la cola de transiciones programadas. Este es un comando de Drush del core que ejecuta elementos creados por queue-jobs.

Troubleshooting 6
Las transiciones programadas no se están procesando

Asegúrese de que cron se ejecute frecuentemente. Verifique si 'Crear trabajos de programación en cron' está habilitado en los ajustes, o ejecute 'drush scheduled-transitions:queue-jobs' manualmente seguido de 'drush queue:run scheduled_transition_job'. Verifique que el tiempo transition_on haya pasado.

Los usuarios no pueden ver la pestaña Transiciones programadas

Verifique que el tipo de entidad/bundle esté habilitado en los ajustes. Compruebe que los usuarios tengan el permiso apropiado 'view scheduled transitions {type} {bundle}'. Si usa operaciones espejo, asegúrese de que los usuarios tengan el permiso de la operación reflejada (típicamente 'update').

Las transiciones se ejecutan pero apuntan al estado incorrecto

Asegúrese de que la transición de flujo de trabajo seleccionada sea válida para el estado actual de la revisión de origen. Verifique si el flujo de trabajo o los estados han sido modificados desde que se creó la transición.

Se muestran advertencias de permisos en los ajustes

Otorgue a al menos un rol los permisos 'view scheduled transitions' y 'add scheduled transitions' para los tipos de entidad/bundles habilitados en /admin/people/permissions.

Las transiciones están atascadas en la cola o bloqueadas

Las transiciones se bloquean por 30 minutos cuando se añaden a la cola. Si el procesamiento falló, espere a que el bloqueo expire o actualice manualmente el campo locked_on en la base de datos. Revise los logs en busca de errores de procesamiento.

El registro de revisión muestra nombres de estado incorrectos

Los nombres de estado en los registros de revisión se determinan en el momento de la ejecución. Si los estados del flujo de trabajo fueron renombrados después de programar, se usarán los nuevos nombres. Si los estados fueron eliminados, aparece un mensaje de respaldo.

Security Notes 4
  • El permiso 'administer scheduled transitions' tiene acceso restringido y solo debe otorgarse a administradores de confianza
  • La ejecución de transiciones respeta los permisos de transición de flujo de trabajo - los usuarios solo pueden programar transiciones que están autorizados a realizar
  • Las operaciones espejo difieren a las verificaciones de acceso de entidad, manteniendo los patrones de control de acceso existentes
  • Las transiciones programadas se eliminan automáticamente cuando se elimina su entidad o revisión anfitriona, previniendo datos huérfanos