How field validations work
A field validation is a condition and a result. While an item’s values match the condition, the item shows the result: a level and a message. When the values stop matching, the result goes away.
The result is worked out again after every change, in the browser. It is not saved on the item.
Where a result shows
Section titled “Where a result shows”- Item page: the results, listed directly above the fields, and a mark beside the field that owns the rule.
- Rows and cards: one mark for the most severe level, with every message when you point at it.
- Views: the Validation filter and the Validation column. Both appear once at least one field has a validation.
The levels, from most severe: Error, Warning, Info, Success.
Which items a rule checks
Section titled “Which items a rule checks”A rule checks every item whose type carries the field that owns the rule. A condition can also test the item’s type, or the values of its direct children.
A result stays hidden from a person who cannot read the field that owns the rule, or any field its condition reads. A rule that tests children stays hidden from a person who cannot read every type, or every field it reads on every type.
Example
Section titled “Example”A rule on Estimate has the condition “Status is Done and Estimate is empty”. The level is Error, and the message is “Estimate before closing”. A task moved to Done with no estimate shows the error. The error goes away when someone enters an estimate.
Things that may surprise you
Section titled “Things that may surprise you”- A result never blocks a change. A person can save an item that shows an error. Imports and the public API are not refused either.
- A zero counts as empty. For “is empty”, a number
0and an unticked checkbox both match. - A condition reads the item’s own values. A value shown from a parent does not count. A total summed from the children does not count either, so a parent with no estimate of its own is empty. Formula values do not count.
- A rule that is switched off shows nothing. It stays in the list until you delete it.