1. 06 Mar, 2024 38 commits
  2. 05 Mar, 2024 2 commits
    • Jérome Perrin's avatar
      *: refactor edit_order of Base._edit · 6c2bffed
      Jérome Perrin authored
      Instead of overriding the method and adjusting edit order in some class,
      define "_default_edit_order" as a class value and use it in Base._edit
      as default value when caller do not explicitly pass edit_order.
      
      This was made to keep the default edit order consistent with the order
      of edits on python2 for properties where the edit order matters.
      
      This affects mostly scripts, when for example in a script we do:
      
        delivery.edit(start_date=d, stop_date=d)
      
      on python2 without PYTHONHASHSEED, stop_date is also set, so we keep
      this behavior (that is assumed by some tests).
      
      We also change the order of edit for other properties not constraint
      by edit_order to edit them in alphabetic order, to have a constant
      deterministic behavior.
      Co-authored-by: Kazuhiko Shiozaki's avatarKazuhiko SHIOZAKI <kazuhiko@nexedi.com>
      6c2bffed
    • Jérome Perrin's avatar
      accessor_holder: respect the order of property_sheets when building class · 37049166
      Jérome Perrin authored
      Because this was using a set, the order in which property sheets were
      used when generating classes was not deterministic.
      This can make a different if two property sheets define the same
      property. This was the case for short_title property, which was defined
      with different default values in DublinCore and SimpleItem property
      sheets. With this change the behavior is always same when hash
      randomization is enabled.
      
      Property sheets can be defined in classes or on the portal type. The
      test only covers the case that a property defined on the portal type
      must override the same property defined on a class, but the expected
      behavior is also that property sheets defined on a class override
      property sheets from parent class.
      37049166