Yes, those are tricky cases, but it is not z3c.form's fault. You simply have to make your ``showApply()`` method smarter and take your additional condition into account. I have encountered these chicken-and-egg problems many times when writing forms.
In general, I write the condition against the model data not the request. If the model gets updated during the action, I commonly simply re-update the actions, which is allowed. In general, it is sometimes necessary to update widgets and actions multiple times during the update process. (This is a lot like needing to render LaTeX documents multiple times to get page references correctly.)
Yes, those are tricky cases, but it is not z3c.form's fault. You simply have to make your ``showApply()`` method smarter and take your additional condition into account. I have encountered these chicken-and-egg problems many times when writing forms.
In general, I write the condition against the model data not the request. If the model gets updated during the action, I commonly simply re-update the actions, which is allowed. In general, it is sometimes necessary to update widgets and actions multiple times during the update process. (This is a lot like needing to render LaTeX documents multiple times to get page references correctly.)