• Jérome Perrin's avatar
    Merge !504 Do not save documents when there are pending activities · 16de28d5
    Jérome Perrin authored
    When document has pending activities, we refuse changing ID ( because there might be pending `updateRelatedContent` activities if I remember correctly ), but it's done in a way that breaks the "atomic" aspect of the transaction a bit, because we
    
    As a result, this happens sometimes that not all properties user changed are modified. In the example below, the change to *Include Documents in Site Map* is not saved (and also change to *ID*):
    
    ![erp5-sorryPendingActivitiesSavePartially](/uploads/ff4bfd6ad0e8a42ba3684cccdc450e21/erp5-sorryPendingActivitiesSavePartially.gif)
    
    ( screencast of editing a document to change ids and several other
    properties - after clicking save, we can see that changing id is refused
    because there is pending activities. Other properties that where changes
    at the same times are not all modified, which breaks the
    transactionality we can usally expect when editing documents in ERP5 )
    
    The changed here is to use a field validator that refused editing when there are pending activities, so that user gets a:
    
    ![erp5-pending-activiities](/uploads/bfe825560bdee34f0443e8e36884f21c/erp5-pending-activiities.png)
    
    ( screenshot of the change: now edition is rejected )
    
    and the result is either all changes are applied or no change is applied at all.
    
    This is done by:
     * introducing a new `my_view_mode_id` field in `erp5_core`'s `Base_viewFieldLibrary`
     * using this field as proxy field of all editable `my_id` fields. Maybe I forgot some business templates, I changed only the most common ones. I intentionally did not change all fields of `erp5_ui_test` because I think they are used to compare speed of proxy fields vs traditional fields.
    
    0352f50fd543fda2712bb8ca93d8a8814f975a26 introduces a Zelenium test exercising this new behavior.
    
    /reviewed-on nexedi/erp5!504
    
    Conflicts:
    	product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_viewFieldLibrary.xml
    16de28d5
test.erp5.testHalJsonStyle.py 91.8 KB