1. 21 Aug, 2017 28 commits
  2. 17 Aug, 2017 1 commit
  3. 16 Aug, 2017 5 commits
  4. 11 Aug, 2017 5 commits
  5. 10 Aug, 2017 1 commit
    • Julien Muchembled's avatar
      ERP5Form: FormBox improvements · 2c74e408
      Julien Muchembled authored
      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.
      2c74e408