1. 23 Apr, 2021 3 commits
    • Arnaud Fontaine's avatar
    • Arnaud Fontaine's avatar
      ERP5Workflow: erp5_configurator_*: Migrate Configurator Workflows from... · f1c4dc67
      Arnaud Fontaine authored
      ERP5Workflow: erp5_configurator_*: Migrate Configurator Workflows from workflow_module to portal_workflow (!1378).
      
      Migration Procedure: With your current instance:
        1. Update erp5.git
        2. Start your instance.
        3. Upgrade erp5_property_sheets, erp5_core and erp5_configurator bt5s.
        4. Add an External Method for the module migrateWorkflowModuleToPortalWorkflow and the function of the same name as the module.
        5. Run the External Method to convert them from workflow_module to portal_workflow.
        6. Move all workflow_module from PathTemplateItem of your Business Template to Workflows and commit.
      f1c4dc67
    • Arnaud Fontaine's avatar
      ERP5Workflow: DC Workflows are now ERP5 objects (!1378). · 8b70e7bd
      Arnaud Fontaine authored
      This also moves all Configurator Workflows in workflow_module to portal_workflow
      (workflow_module was an implementation of Workflows based on ERP5 objects and
      not using DCWorkflow code).
      
      * Workflows are now defined on on portal_workflow._chains_by_type anymore but,
        as everything else, on the Portal Type itself.
      * portal_workflow can contain and work at the same time with legacy and new
        Workflows (ERP5Type/patches/DCWorkflow.py monkey-patching DCWorkflow classes
        to provide the same API).
      * Existing Workflow Scripts should work as they are and the code can be updated
        later on to take advantage of the new API:
        + With legacy implementation Workflow {Scripts,Transitions,Worklists,States}
          were in a Folder ({scripts,transitions,worklists,states} attribute) but
          all of these are now in the Workflow itself and their IDs are prefixed
          (PropertySheet-style), for example `script_`. Legacy attributes are
          provided in new implementation to call the new API.
        + When calling a Workflow Script, `container` was bound to its parent, namely
          WF.scripts (Folder) and a Workflow Script could call another. Now `container`
          is bound to the WF itself and Workflow Scripts are in a Workflow directly.
          New implementation `scripts` attribute handle such use case.
        + Override portal_workflow.__getattr__ so that a Workflow Script can call
          another one without prefix.
      * Worklist are Predicate: Worklist filter objects based on given criterions and
        thus it makes more sense for a Worklist to be a Predicate (albeit a Predicate
        with only Identity Criterion and nothing else).
        + Criterion Properties:
          * state_variable.
          * local_roles (SECURITY_PARAMETER_ID).
          * Any Workflow Variables with for_catalog == 1.
      
      erp5_performance_test:testWorkflowPerformance were ran to compare DCWorkflow
      and ERP5Workflow implementations and it seems to be about 4% slower with the
      new implementation (legacy: 7.547, 7.593, 7.618, 7.59, 7.514 and new: 7.842,
      7.723, 7.902, 7.837, 7.875).
      
      Work done by Wenjie Zheng, Isabelle Vallet, Sebastien Robin and myself.
      8b70e7bd
  2. 21 Apr, 2021 1 commit
  3. 19 Apr, 2021 2 commits
  4. 16 Apr, 2021 1 commit
    • Jérome Perrin's avatar
      xhtml_style: fix rendering of standard_error_message when site title is not ASCII · 8fffd3f8
      Jérome Perrin authored
      When rendering error page, the default header_title is computed in global_definitions
      and this is done by concatenating string:ERP5 (which is unicode) and the
      title of the portal (which is an UTF-8 encoded string), which causes an
      UnicodeDecodeError, because the portal title was decoded as ASCII.
      
      Because header_title is usually an UTF-8 encoded string, also use an UTF-8
      encoded string for 'ERP5' default value.
      8fffd3f8
  5. 15 Apr, 2021 8 commits
  6. 14 Apr, 2021 9 commits
  7. 13 Apr, 2021 6 commits
  8. 12 Apr, 2021 3 commits
  9. 09 Apr, 2021 4 commits
  10. 07 Apr, 2021 1 commit
  11. 06 Apr, 2021 1 commit
  12. 02 Apr, 2021 1 commit