Podminka se muze ptat na vic veci naraz
Podminka byla prave jedna otazka. Slozitejsi vetveni se muselo skladat
z vnorenych podminek, takze "vysledek dorazil" a v nem "vysledek je X" byly dve
urovne stromu misto jedne vety. U tri hodnot, ktere maji dopadnout stejne, to
byly tri urovne.
Model: rules (otazky) a match ('all' = a zaroven, 'any' = nebo). Stara podoba
fieldId/operator/value primo na kroku se dal cte, prevadi ji rulesOf - jedine
misto, kde se to deje. Kdyby se fieldId cetlo primo, krok ulozeny driv by po
zmene modelu prisel o svou otazku a vetvil by vzdycky stejne, tise a bez chyby.
Zapisuje se uz vzdycky rules.
fieldId je v typu nepovinne schvalne: prekladac tim ukazal vsech pet mist,
ktera podminku ctou (vyhodnoceni, obe hlasky do logu, kontrola pri ukladani,
kontrola nedodelku).
Proc jedna uroven a ne vyrazy se zavorkami: dve treti podminek jsou "vsechny
tohle" nebo "cokoliv z tohohle". Zavorky by v rozhrani znamenaly editor vyrazu,
ktery uz nikdo neuklika, a textovy zapis by navic zahodil odkaz na parametr pres
ID - diky nemu prejmenovani parametru podminku nerozbije a builder umi nabidnout
jen operatory, ktere na dany typ sedi. Az se ukaze, ze jedna uroven nestaci,
da se textovy zapis pridat nad tentyz vyhodnocovac. Opacne to nejde.
V builderu radek na otazku, tlacitko "Přidat otázku" a od druhe otazky prepinac
"sedí všechny" / "sedí aspoň jedna". Posledni otazka nejde smazat: podminka bez
otazky by tise nevetvila, runtime ji povazuje za nesplnenou a zaloguje to.
Radek podminky v logu nese vsechny otazky i s tim, ktera rozhodla - bez rozpadu
by u spojene podminky bylo videt jen "nesplneno".
Overeno na bezici instanci, strom se dvema spojenymi podminkami a peti volanimi:
vysledek nedorazil (nic), Chybějící informace (prirazeno), Přesměrování
a Mimo téma (zavreno pres any), Něco jiného (nic). Strom ulozeny ve stare
podobe se nacte a ulozi beze zmeny.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
1532ea0af7
commit
9f4b8c0596
@@ -2,6 +2,75 @@
|
||||
|
||||
Nejnovejsi nahore.
|
||||
|
||||
## 2026-09-07 - Podminka se muze ptat na vic veci naraz
|
||||
|
||||
Podminka byla **prave jedna otazka**. Slozitejsi vetveni se muselo skladat
|
||||
z vnorenych podminek, takze "vysledek dorazil" a v nem "vysledek je X" byly dve
|
||||
urovne stromu misto jedne vety. U tri hodnot, ktere maji dopadnout stejne, to
|
||||
byly tri urovne, ve kterych se nikdo nevyzna.
|
||||
|
||||
### Model
|
||||
|
||||
```ts
|
||||
rules: ConditionRule[] // otazky
|
||||
match: 'all' | 'any' // a zaroven / nebo
|
||||
```
|
||||
|
||||
Stara podoba (`fieldId`, `operator`, `value` primo na kroku) se dal cte, prevadi
|
||||
ji `rulesOf` - **jedine misto, kde se to deje**. Kdyby se `fieldId` cetlo primo,
|
||||
krok ulozeny driv by po zmene modelu prisel o svou otazku a vetvil by vzdycky
|
||||
stejne, tise a bez chyby. Zapisuje se uz vzdycky `rules`.
|
||||
|
||||
Aby se na zadne cteni nezapomnelo, je `fieldId` v typu **nepovinne**. Prekladac
|
||||
tim ukazal vsech pet mist, ktera podminku ctou: vyhodnoceni, obe hlasky do logu,
|
||||
kontrola pri ukladani a kontrola nedodelku.
|
||||
|
||||
### Proc jedna uroven a ne vyrazy se zavorkami
|
||||
|
||||
Dve treti podminek jsou "vsechny tohle" nebo "cokoliv z tohohle". Zavorky by
|
||||
v rozhrani znamenaly editor vyrazu, ktery uz nikdo neuklika, a textovy zapis by
|
||||
navic zahodil to podstatne: **odkaz na parametr pres ID**. Diky nemu prejmenovani
|
||||
parametru podminku nerozbije a builder umi nabidnout jen operatory, ktere na dany
|
||||
typ sedi, a rovnou rict, ze se odkazuje na parametr, ktery vznika az pozdeji.
|
||||
|
||||
Az se ukaze, ze jedna uroven nestaci, da se textovy zapis pridat nad tentyz
|
||||
vyhodnocovac. Opacne to nejde.
|
||||
|
||||
### V builderu
|
||||
|
||||
Radek na otazku, k tomu tlacitko "Přidat otázku" a od druhe otazky prepinac
|
||||
**sedí všechny** nebo **sedí aspoň jedna**. U jedne otazky se prepinac nenabizi,
|
||||
nema co spojovat. Posledni otazka nejde smazat: podminka bez otazky by tise
|
||||
nevetvila, proto ji runtime rovnou povazuje za nesplnenou a zaloguje to.
|
||||
|
||||
### V logu
|
||||
|
||||
Radek podminky nese vsechny otazky i s tim, ktera rozhodla:
|
||||
|
||||
```text
|
||||
Podmínka: result isNotEmpty a zároveň result eq Chybějící informace: nesplněno
|
||||
result = "Přesměrování": sedí
|
||||
result = "Přesměrování", porovnáno s "Chybějící informace": nesedí
|
||||
```
|
||||
|
||||
Bez rozpadu by u spojene podminky bylo videt jen "nesplneno" a ne to, ktera
|
||||
otazka to zpusobila.
|
||||
|
||||
### Overeno na bezici instanci
|
||||
|
||||
Strom se dvema spojenymi podminkami, pet prichozich volani:
|
||||
|
||||
| Co prislo | Prirazeno | Vyrizeny |
|
||||
| --------------------------- | ------------- | -------- |
|
||||
| vysledek nedorazil | ne | ne |
|
||||
| Chybějící informace | ano | ne |
|
||||
| Přesměrování | ne | ano |
|
||||
| Mimo téma | ne | ano |
|
||||
| Něco jiného | ne | ne |
|
||||
|
||||
Prvni podminka je `all` (dorazil a zaroven je to Chybejici informace), druha
|
||||
`any` (Přesměrování nebo Vyřešeno nebo Mimo téma). Strom ulozeny ve stare podobe
|
||||
se nacte a ulozi beze zmeny.
|
||||
## 2026-09-07 - Automatizace zavirala tickety uz pri zvoneni
|
||||
|
||||
Na instanci nebyl ani jeden nevyrizeny ticket: **vsech 131 melo `closed: true`**,
|
||||
|
||||
Reference in New Issue
Block a user