1. 24 Apr, 2020 6 commits
  2. 23 Apr, 2020 7 commits
    • Jérome Perrin's avatar
      CodingStyle: simplify prefix for interfaces · 89c81aef
      Jérome Perrin authored
      Now that getInterfaceTypeList also return file system interface, we can
      use it directly.
      
      Also simplify a bit by not getting types tool multiple times.
      
      One breaking change is that for an interface like ISomething, ISomething
      is no longer a valid prefix, only Something. So scripts like
      ISomething_getSomething are not valid, only Something_getSomething.
      89c81aef
    • Jérome Perrin's avatar
      CodingStyle: fix transactional cache · 19ff9e52
      Jérome Perrin authored
      `self` argument should not be a cache key, otherwise we have one cache
      per skin
      19ff9e52
    • Jérome Perrin's avatar
      core: make category import compatible with WSGI · 7cab5673
      Jérome Perrin authored
      RESPONSE.write cannot be used with WSGI, so use another trick to return
      a response without commiting the transaction.
      7cab5673
    • Arnaud Fontaine's avatar
      ZODB Components: erp5_trade: Migrate Documents, Interfaces and Mixins from filesystem (MR !1101). · 85417113
      Arnaud Fontaine authored
      * Remove TaxLine Document which was replaced by Trade Model Line a while ago.
      * Keep {Delivery,Inventory,Order}{Cell,Line} on FS for now because of InventoryInteractor.
      * About DeliveryRootSimulation Document migration to erp5_trade:
        + AccountingTransactionRootSimulationRule (erp5_accounting) inherited from
          it but as this is probably not actually used/useful, avoid depending on
          erp5_trade or refactoring but just copy/paste.
        + InvoiceRootSimulationRule inherited from it but as it is only used in
          erp5_invoicing (which already depends on erp5_trade) move it there.
          - erp5_configurator_standard_accounting_template: Add depend on erp5_invoicing.
      * Move Documents used by several bt5 to erp5_core rather than add depends on erp5_core.
        Once migration of Products to ZODB Components will be finished, there will be moved to
        their appropriate bt5s as it would be complicated to reorganize bt5s too at this point.
        + Inventory: used by erp5_archive and erp5_accounting.
        + Order: used by erp5_project.
        + PackingList: used by erp5_publication.
      85417113
    • Arnaud Fontaine's avatar
    • Arnaud Fontaine's avatar
    • Arnaud Fontaine's avatar
      ZODB Components: erp5_invoicing: Migrate Documents from filesystem. · d810bfaf
      Arnaud Fontaine authored
      * Add bt5 dependencies:
        + erp5_demo_maxma_rule: Invoice*Rule rules.
      * Move Documents used by several bt5 to erp5_core rather than add depends on erp5_core.
        Once migration of Products to ZODB Components will be finished, there will be moved to
        their appropriate bt5s as it would be complicated to reorganize bt5s too at this point.
        + Invoice{Line,Cell}: used by erp5_payroll.
      d810bfaf
  3. 22 Apr, 2020 2 commits
  4. 21 Apr, 2020 12 commits
  5. 20 Apr, 2020 1 commit
  6. 17 Apr, 2020 4 commits
  7. 16 Apr, 2020 8 commits
    • Georgios Dagkakis's avatar
      erp5_document_scanner: add Manager proxy role to script · c5f05bf6
      Georgios Dagkakis authored
      for Base_getDocumentScannerDefaultBackendDataAsJSON
      since we need to be able to create Active Process
      c5f05bf6
    • Arnaud Fontaine's avatar
      ZODB Components: providesIFoo() getters were only created for FS Interfaces (MR !1099). · c86107bf
      Arnaud Fontaine authored
      Add them to BaseAccessorHolder (like `Base Category` accessors) instead of
      Base class so they can be regenerated on reset while not having to remove
      ZODB Components from Base class on reset.
      
      This means that providesIFoo() will only be available on Portal Type classes
      whereas before it was working for direct Document instanciation, but the latter
      has been banned for several years anyway and the few remaining ones have been
      fixed (23b2b5fd, e791d08a).
      
      Also, instead of Base.provides() being a CachingMethod() (does not work with
      resets), create a method dynamically on the Portal Type class (erp5.portal_type.Foo),
      as not caching at all is ~18 times slower.
      c86107bf
    • Arnaud Fontaine's avatar
      18f47f4e
    • Arnaud Fontaine's avatar
      TypesTool.getInterfaceTypeList(): Filesystem Interfaces were not returned. · 34fc009d
      Arnaud Fontaine authored
      And thus filesystem Interfaces were not displayed/selectable in BaseType_view.
      34fc009d
    • Arnaud Fontaine's avatar
      erp5_certificate_authority: Certificate Authority Tool: All ERP5 objects... · 23b2b5fd
      Arnaud Fontaine authored
      erp5_certificate_authority: Certificate Authority Tool: All ERP5 objects *must* have have a Portal Type in Types Tool.
      
      And remove hack in erp5_promise which was creating a non-Portal Type class of
      portal_certificate_authority. Instead, add a depend on erp5_certificate_authority.
      `providesI*` accessors are now in BaseAccessorHolder rather than Base due to ZODB
      Components, this breaks reindexing (`AttributeError: providesIPredicate`).
      
      This gets rid of:
        WARNING ERP5Type.dynamic Cannot find a portal type definition for 'Certificate Authority Tool', trying to guess...
      23b2b5fd
    • Arnaud Fontaine's avatar
      Portal Type as Classes: ERP5Form: Instances of Documents should never be created directly. · e791d08a
      Arnaud Fontaine authored
      This has been banned since the introduction of Portal Type class. When creating
      a new ERP5Form via addERP5Form/ZMI, its MRO:
        * Before:
          <class 'Products.ERP5Form.Form.ERP5Form'>
          <class 'Products.ERP5Type.Base.Base'>
          ...
          <type 'ExtensionClass.Base'>
        * Now:
          <class 'erp5.portal_type.ERP5 Form'>,
          <class 'Products.ERP5Form.Form.ERP5Form'>,
          <class 'Products.ERP5Type.Base.Base'>,
          ...
          <class 'erp5.accessor_holder.property_sheet.SimpleItem'>
          <class 'erp5.accessor_holder.property_sheet.Folder'>
          <class 'erp5.accessor_holder.property_sheet.Base'>
          <class 'erp5.accessor_holder.property_sheet.CategoryCore'>
          <class 'erp5.accessor_holder.BaseAccessorHolder'>
          <class 'Products.ERP5Type.dynamic.portal_type_class.GetAcquireLocalRolesMixIn'>
          <type 'ExtensionClass.Base'>
      
      Thus it was missing many accessors and was working only by chance (or at least
      unless these accessors were not called until the object was automatically migrated
      by the next call to __setstate__). Namely, as `providesI*` accessors are now in
      BaseAccessorHolder rather than Base due to ZODB Components, this breaks reindexing
      (`AttributeError: providesIPredicate`).
      
      Also, remove hardcoded _getAcquireLocalRoles() now that it is not used as a regular
      class anymore. Set this on the portal type object instead.
      e791d08a
    • Arnaud Fontaine's avatar
      erp5_core: Move `ERP5 Form` Portal Type from erp5_hal_json_style as it is used by erp5_core. · 74d022e5
      Arnaud Fontaine authored
      This gets rid of:
        WARNING ERP5Type.dynamic Cannot find a portal type definition for 'ERP5 Form', trying to guess...
      74d022e5
    • Jérome Perrin's avatar
      bff8777e