Rules modullal kiírt rendszerüzenet csak második mentésnél jelenik meg

this.isti képe

Sziasztok!

Rules használatával a következőt szeretném:
Felhasználó módosítja az adatait, és mentés után ha be van jelölve egy adott checkbox, akkor egy figyelmeztető üzenetet írjon ki fölül.

Ez működik is, azzal a "szépség hibával", hogy kétszer kell elmenteni, hogy kiírja az üzenetet. Illetve ha előzőleg be volt jelölve és kivesszük a jelölést, kétszer kell elmenteni, hogy eltűnjön az üzenet mentés után.

A következők a beállításaim:
React on event: After updating an existing user account
Conditions: Data comparison -> equals -> Data value: True
Actions: Show a message on the site -> Value: warning

Valamit rosszul állítok be, vagy ez egy bug a rulesben?
Van valakinek ötlete, hogy hogy lehetne megoldani, hogy egyből kiírja mentés után az üzenetet, és ne kelljen kétszer menteni?

Köszönöm előre is a segítséget!

Taxonomy upgrade extras: 
Melyik modulhoz, modulokhoz kapcsolódik a téma?: 
Drupal verzió: 
dongodani képe

Van még telepítve valamilyen egyéb Rules-t kiegészítő modul? Ha igen, érdemes volna egyesével letiltani őket.
Ha kiüríted a site-cache-t, akkor már elsőre feldobja a warningot?
Ilyen célra tartok egy tesztrendszert, ahol le tudom ellenőrizni, hogy mindig jelentkezik-e a hiba, vagy csak az adott rendszerben van ütközés egy másik modullal...stb.
Itt van szó hasonló dologról és a megoldásról

0
0
this.isti képe

Természetesen teszt környezetben teszteltem a hibát, még egy új, üres drupalon is kipróbáltam. (csak rules és entity van rajta)
Ha törlöm közvetlenül mentés előtt a teljes gyorsítótárat, akkor is fennáll a hiba.

0
0
segi képe

a feltétel nem telejsűl. Kiszedném a feltételet és akkor megnézném hogy az üzenet megjelenik vagy sem.

0
0

Drupal developer at Cheppers

this.isti képe

Igen, egyértelmű, hogy a feltétel nem teljesül.
A feltétel nélkül kiírja az üzenetet, de így nincs értelme.

A feltételnek teljesülnie kéne mentés után, de csak akkor teljesül, ha még egyszer elmentem.
Mentéskor a rules valamiért azokat az adatokat veszi figyelembe, amik mentés előtt voltak megadva.

0
0
dongodani képe

Akkor szerintem nem Rules bugról lesz szó, legfeljebb csak arról, hogy a mentés pillanatában még nincs meg a mező true állapota, viszont a második mentéskor már meg van. Ezért tud csak másodjára teljesülni a Rules feltétel.
A gyakorlati tapasztalataim szerint az ilyen vezérlő(mező) dinamikus kiértékelést érdemesebb switch-case szerkezetben megoldaniConditional Rules).
Az is megoldás lehet, ha nem az Adatok összehasonlításával true-ra vizsgálod a mezőt, hanem inkább az Adatérték üres-t negálod.

0
0
this.isti képe

Kipróbáltam az empty és a switch-case változatot is.
Ugyan azt csinálják, hogy a mentés előtti érték szerint írja/nem írja ki az eredményt.

Azért tartanám ezt bugnak, mert az "After updating an existing user account" eseménykezelőt én úgy értelmezném, hogy mentés után értékel(miután elmetette az új adatokat), nem pedig azután, hogy megnyomtam a mentés gombot(régi adatokkal). Arra szerintem a "Before saving a user account" volna jó.

0
0
segi képe

mikor beállítod a conditiont ott nem mindegy hogy melyik "user object"-t választod ki.
Két opció van, a módosított és a szerkesztés előtti.
Csináltam egy screenshot-ot hátha úgy érthetőbb:
https://www.evernote.com/shard/s263/sh/fe4d6da5-33d4-4970-b1bc-e2ff140a8f70/0423c10723e23531
Kipróbáltam és a következő beállításokkal nekem működött:
https://www.evernote.com/l/AQfrcaO46INJRJOOE9HdjxOH6C5C4JSf6zE

1
0

Drupal developer at Cheppers