ERP5Form: FormBox improvements
A Form is rendered by assuming the REQUEST is clean and first set 'here' as the context. Then there may be listboxes with rely on 'here' and set 'cell' temporarily. At last, for easier configuration of listbox fields, 'cell' has precedence over 'here' when rendering (in particular since commit 4fa84233). Based on this, the only sane solution is to - clean up the REQUEST (remove 'here' and 'cell') - render the FormBox in the new context (which sets 'here'): inside a ListBox, the context is the cell - restore 'here' and 'cell' as they were Which allows FormBox/ListBox inside FormBox/ListBox, recursively (but obviously no ListBox inside ListBox). The previous code didn't work in the following case: - a Order Line and Packing List Line having an identical tab - the left pane for Order Line information - the other for Packing List Line information (-> empty when there's no related PL) - a listbox (with subobjects of the PL line) Which is implemented as follows: - a Form for the left pane - a Form for the Packing List Line, with a FormBox (to display Order information) and a ListBox - the Form for the Order Line only has a FormBox, that uses 1 of the 2 other Forms depending on the presence of a PL (if there's one, it's rendered in the context of the PL) -> FormBox(FormBox, ListBox) As you can see, FormBox is used here to factorize forms. Without this patch: - the outter FormBox crashed on `del REQUEST.other['cell']` - the inner FormBox was rendered with a wrong 'cell' Another change is to pass the field & REQUEST to the context method.
1 parent a9f9e660