Criar Regra

We encourage users to post events happening in the community to the community events group on https://www.drupal.org.
sliderf's picture

Boas pessoal,

Estou com dificuldades em criar uma rule e espero que vocês me consigam ajudar.
Passo a explicar o que pretendo.

Tenho 2 tipos de conteúdos(Aulas e Salas) onde o conteúdo sala tem uma taxonomia com os termos Não atribuido,Em espera, Atribuido. O conteudo Aulas tem um node reference Sala.

O que pretendia era quando criar ou editar as aulas e escolher as respectivas salas ao gravar o conteúdo ele me alterasse o estado da sala para Em Espera e o inverso também, no caso de a sala já se encontrar seleccionada e eu retirá-la ela passasse para o estado Não atribuida.

Penso que com as rules este comportamento seria possível mas não estou a conseguir.
Alguém tem ideia como isto se faz??

Obrigado,

sliderf

Comments

O que deve despoletar estas

ricardoamaro's picture

O que deve despoletar estas acções será "on node save" e relacionado aos tipos de conteúdo "Aulas" e "Salas".

Relativamente ás questões especificas de manipulação de rules que pretendes, podes por favor fornecer mais informação? Eventualmente até onde já conseguiste chegar?

Podes também tentar encontrar ajuda mais especializada no grupo https://groups.drupal.org/rules
Ou no IRC:

drupal-rules - Live discussion

drupal-support - Live Drupal support

Abraço.

Ricardo

Tens que fazer duas

amen's picture

Tens que fazer duas regras:

Número 1 (Meter Sala "em espera"):

 - Evento: Antes de gravar um nó;

 - Condição: Se o tipo de conteúdo for Aula. 

 - Condição: Se o tipo de Aula->field_sala_ref for Sala. (IMPORTANTE: Este passo carrega o nó da Sala para a sua própria variável @Sala)

 - Condição: Se a variável @Sala->taxonomy_tag for "Não Atribuído"

 - Ação: Set Data Value @Sala->taxonomy_tag = "Em Espera"

Na segunda regra (que chamas inverso) não compreendi bem, explica melhor o que queres que aconteça que eu ajudo-te.

Abraço e boa sorte

Obrigado pelas vossas

sliderf's picture

Obrigado pelas vossas respostas ricardoamaro e amen.

Em relação ao que chamei de inverso estava-me a referir que ao editar o conteúdo posso retirar uma sala que já tinha sido atribuida(já está com o estado Em espera) e queria que o seu estado voltasse ao Não Atribuído.
Eu esqueci-me de referir mas podemos atribui várias salas à aquela aula. O campo node reference é de escolha múltipla.

Até agora o que tenho feito é

Event
Antes de guardar o conteúdo

Condições

Content is of type
Parâmetro: Conteúdo: [node], Tipos de conteúdo: Aula

Entity has field
Parâmetro: Entidade: [node], Campo: field_fila_salas

Depois não tenho acesso ao campo de estado da Sala para o conseguir alterar

Eu não tenho muita experiencia em trabalhar com rules mais complexas e estou a fazer alguma coisa errada.

Obrigada.

Cumprimentos,
sliderf

Quando tens vários em vez de

amen's picture

Quando tens vários valores por campo em vez de um, tens que usar "Add to List" e "Remove from List", em vez de "Set a Data Value".

Eu também nunca trabalhei com regras e taxonomia. As taxonomias são boas para categorizar e apenas para categorizar, por isso talvez seja melhor reveres a abordagem e considerares substituir a taxonomia por um field. Os fields têm uma implementação muito mais robusta, o que te permitirá utilizar as Rules com mais facilidade.

Mas antes de fazeres o que quer que seja, aconselho-te a perder umas 2 ou 3 horas no Youtube ou no Drupalize.me (atenção que este último é a pagantes) a aprender o máximo possível sobre Rules. Esse tempo vai compensar :)

Boa sorte