Workflow

-WORKFLOW (6.x-1.1): En algunos sitios web es necesario mantener un control sobre lo que publican sus usuarios. Imaginemos por ejemplo un periódico digital en que los redactores realizan sus artículos, pero han de pasar antes por un supervisor para poder ser publicados. Una forma de implementar esta funcionalidad en Drupal con los recursos que ofrece por defecto es mediante los permisos de publicación. Es decir podemos hacer que, por defecto los contenidos no estén publicados. Para ello debemos ir a “Administer>Content managment>Content types” y en las opciones “Workflow settings” desactivar la casilla “Published”. Esto hará que los artículos no estén publicados por defecto, pero luego será necesario especificar que Roles pueden crear o editar contenidos y cuales pueden publicar, esto hará que solo los usuarios con determinados permisos puedan decidir que se publica y que no. Para conseguirlo podemos especificar p.ej los siguientes permisos:

      - Redactor: puede crear y editar sus propios contenidos
      - Supervisor: puede administrar los nodos

Si utilizamos este método, necesitaremos algún modo de avisar a los supervisores de que existen contenidos pendientes de ser revisados, de lo contrario estos tendrán que ir revisando cada poco los contenidos entrados por los usarios. Este método tiene bastantes defectos, como por ejemplo que solo permite especifcar dos estados: “Published” y “Not published”, lo que puede causar problemas como por ejemplo que un supervisor publique un artículo que el autor aun no ha dado por terminado. Para cubrir todas estas carencias y ofrecer un control completo de publicación apareció el “Contributed module” Workflow.

La principal ventaja del módulo Workflow es que permite a los administradores establecer una serie de pasos perdefinidos denominados States, o estados de publicación, por los que cualquier contenido ha de pasar antes de ser publicado.

Para asignar un Workflow a un “Content Type” debemos ir a “Administer>Site building>Workflow” , hacer clikc sobre “Add workflow” y asignar un nombre al nuevo Worflow, p.ej “estados de publicación”. Una vez creado, en la pestaña List y pulsando en “Add state”, podremos añadir los “estados de publicación” ( p.ej Borrador, Finalizado, Aprovado… ). Cuando los estados de publicación estén definidos, deberemos entrar en la pestaña Edit para configurar las transiciones del Workflow permitidas. Es decir configurar de que estado a que estado podrá pasar un contenido y quien podrá hacerlo. Para ello Drupal nos presenta una especie de Tabla, en la que nos permite establecer a que estado puede cambiar un Content y que Rol puede hacerlo, en función del estado previo en que se encuentre el Contenido.

En “Workflow tab permissions” podremos especificar que usuarios podrán ver la pestaña de Workflow, es decir quién podrá ver el estado de publicación de estos, y en “Access control” quien podrá ver los contenidos en función del estado en que se encuentren.

Si queremos podemos hacer que cuando un contenido cambie de estado se genere un evento que realice una acción preconfigurada ( debemos tener activado el “Core module” Trigger ).  Para ello hay que ir a “Administer>Site building>Workflow” y pulsar en Actions del Worflow deseado, lo que nos redirigirá a la página de Triggers en la que podremos especficar que acción ha de tener lugar en cada evento.

Otro punto que puede ser interesante conocer es que tras instalar Workflow también se configuraran una serie de Views por defecto ( Node view: workflow_pending , Node view: workflow_sumary ) que podremos utilizar si tenemos el modulo Views instalado.