The pattern inside¶

This app provides an implementation of a simple pattern to make dynamic forms:

a Form has a list of Action , such as RemoveChoices ,

has a list of , such as , an Action has a list of Condition , such as ValueIs .

You can use client side, server side, or both, in which case server side controls the client side (write only python).

On the client side, it will attach to input events on the form to execute actions by calling Action.execute(form) which will:

call Action.apply(form) when all conditions validate on the form,

when all conditions validate on the form, call Action.unapply(form) when at least one condition fails to validate.

On the server side, it will call Condition.validate(form) before validation which will: