1. 12 Jul, 2017 16 commits
    • Ayush Tiwari's avatar
      erp5_catalog: Use getattr to get catalog attributes · 7062eeb2
      Ayush Tiwari authored
      One of the difference between SQL and ERP5 Catalog is how they
      handle their properties. For ERP5Catalog, we use property_sheets
      which generate setters and getters, for SQLCatalog, properties
      just act as attributes(as one can expect from a property set
      on a class).
      
      This creates a difference on how we use them, especially for
      list_type properties, which have accessors like get<PropertyName>List
      to get the list of objects. For SQLCatalog, there is no such thing.
      This creates problem whereever 'get<PropertyName>' or getProperty(<name>)
      was being used to get multiple property types.
      
      So, we changed this to rely on getattr for the Python Scripts in this
      commit. Note that, getattr isn't good if we care about performance,
      but given that its used only twice, this can be better than adding
      extra function overhead.
      7062eeb2
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
      1e70e4cd
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
      erp5_catalog: Update tests according to the changes in ERP5Catalog · 973f12b3
      Ayush Tiwari authored
      Also, add test for migration in testERP5Catalog(as the first test to be run)
      and migrate Catalog in afterSetup in testERP5CatalogSecurityUidOptimization.
      973f12b3
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
    • Ayush Tiwari's avatar
      erp5_catalog: Conversion script to convert ZSQL Method and PythonScript to ERP5 objects · bd76f014
      Ayush Tiwari authored
      Also, Update BusinessTemplate installation with updated filter_dict
      This removes the need to copy-patch or if-else on meta_type of catalog.
      Use dynamic migration while installing the catalog method objects for
      bt5.
      
      Note : here we use conversion method for python script but dynamic migration for
      ZSQL Methods. This is necessary because after the conversion to erp5 object, we need
      to compile the body to generate code object for python script.
      By just changing the class, this was not possible.
      
      erp5_catalog: Simplify bt5 installation
      bd76f014
    • Ayush Tiwari's avatar
      erp5_catalog: Update erp5_core business template · 6dd33716
      Ayush Tiwari authored
      Contains views, property sheets,  portal types concerning migration of
      portal_catalog, sql catalog and their subobjects to erp5 object.
      
      Portal Types:
      1. Catalog : ERP5 Catalog object (an ERP5 Folder), which earlier used to be OFS Folder.
      	Actions:
      		Update Catalog
      		Clear Catalog
      		Clear Reserved
      		Export Properties
      
      2. Catalog Tool: Portal Catalog where we can add and use multiple ERP5 catalogs.
      	Actions:
      		Hot ReindexAll
      
      3. SQL Method: SQL methods with their views inside erp5.
      	Actions:
      		Run Method
      
      Property Sheet:
      1. Catalog
      2. CatalogTool
      3. SQLMethod
      	Containing properties for the various portal_types/classes respectively.
      4. CatalogFilter
      
      Also, filter_dict for erp5_catalog would now not be a Persistent Mapping
      object. The info inside filter_dict is being saved inside the SQL Method
      objects as their properties.
      
      Views:
      1. Catalog (View)
      2. CatalogTool(View, Properties, Filtered Items), Object Actions
      3. SQLMethod (View, Filter)
      4. Python Script (Filter)
      
      Extras:
      
      	- Dialog view for catalog before clear_catalog
      
      	- Add typeBaseMethod(s) for PythonScript and SQLMethod portal types:
      The methods <portal_type>_getRedirectParameterDictAfterAdd are required for these
      portal_types, cause their __call__ methods are overridden, so after addition
      of new objects for them, it was taking to the url concerning wherever __call__
      methods directed them.
      Now, we change them to redirect to 'abosulte_url+'/view'' which is basically
      the homepage for these catalog methods.
      
      	- Do not use default ERP5 Catalog to show properties:
      Earlier, in tales for properties for any erp5 catalog, we showed
      the values for the default_erp5_catalog. But keeping in mind that
      we can have multiple catalogs at same time, the old approach
      was wrong. Hence, we now display properties for the current catalog
      
      	- Search fo Catalog_viewContentList and Catalog_viewFilterList
      6dd33716
    • Ayush Tiwari's avatar
      erp5_catalog: Update testCopySupport according to changes in portal_catalog · d43e6930
      Ayush Tiwari authored
      Its better to change the tests where they need to call getpath function of
      portal_catalog to use portal_catalog.getpath instead of portal_catalog.getPath,
      as we have overridden the 'getPath' function for CatalogTool class due to change
      in inherited class.
      d43e6930
    • Ayush Tiwari's avatar
      erp5_catalog: Rename reindexObject method to use them as new methods for CatalogTool. · 3f7abc5b
      Ayush Tiwari authored
      - This step is needed due to the use of BaseTool as Base class for CatalogTool
        due to which there were conflict between reindexObject from the Base and the one
        from the BaseTool.
      3f7abc5b
    • Ayush Tiwari's avatar
      erp5_catalog: New ERP5CatalogTool based on BaseTool from ERP5Type · 682e4912
      Ayush Tiwari authored
      	- Remove copy-pasting all code from CatalogTool, better to rely on inheritence
      	- Remove unnecessary imports
      	- Add argument id in __init__ class
      	- Add functions _isBootstrapRequired and _bootstrap
      	- Update BusinessTemplate installation according to changes made in ERP5Catalog and Tool
      682e4912
    • Ayush Tiwari's avatar
      erp5_catalog: New Catalog for ERP5. · c43ce942
      Ayush Tiwari authored
      We try to move from using SQLCatalog to ERP5Catalog as the default Catalog inside
      ERP5. The major difference is use of Folder class as the base for Catalog from
      Products.ERP5Type.Core
      
      Significant changes:
      	-Add dtml form for creating ERP5Catalog object
      	-Inherit from Catalog class from Products.ZSQLCatalog.SQLCatalog instead of copy-pasting the whole code again.
      	-Add allowed_types for ERP5Catalog tool
      	-Monkey patch some property setters and getters to maintain consistency
      	-Update id and title for ERP5Catlog while class initialization
      	-Set declarative securities and solve some inheritance conflicts
      	-Add isRADContent for ERP5Catalog Class
       	-Solve inheritence conflict for _setPropValue function in ERP5Catalog class
      	-Add SQL Method portal_type in allowed_types for ERP5Catalog class
      	-Override getCatalogMethodIds cause it uses global variable in SQLCatalog.Catalog
      	-Redefine security declarations
      	-Add functions for object_actions of Catalog portal_type in ERP5Catalog object
      	-Add filter_dict and _properties attributes for compatibilty
      	-isIndexable should be function instead of Accessor property for Catalog object
      c43ce942
    • Ayush Tiwari's avatar
      erp5_catalog: Add SQLMethod class as ERP5 based class · 7fd32fc0
      Ayush Tiwari authored
      Here, we are creating the SQLMethod class based on ZSQLMethods.SQL
      class and XMLObject. Also, we are moving important attributes to
      property in 'SQL Method' property sheets.
      7fd32fc0
  2. 11 Jul, 2017 2 commits
  3. 10 Jul, 2017 1 commit
    • Jérome Perrin's avatar
      configure cloudooo by URL in default preference · 2cf95f9e
      Jérome Perrin authored
      Since !306 we have configured system preference to use cloudoo from the Slapos SR, but this configuration was still old style configuration setting host / port.
      
      It caused a test to fail 
      ```
      ======================================================================
      FAIL: test_01_PreferenceSetup (testIngestion.TestIngestion)
      ----------------------------------------------------------------------
      Traceback (most recent call last):
        File "/srv/slapgrid/slappart7/srv/testnode/aai/soft/f030becfa6e3878c62ccb9bccc43a291/parts/erp5/Products/ERP5OOo/tests/testIngestion.py", line 1048, in test_01_PreferenceSetup
          self.assertEqual(preference_tool.getPreferredOoodocServerAddress(), conversion_dict['hostname'])
      AssertionError: 'erp5-cloudooo' != 'localhost'
      ```
      
      and that was a problem with the test, we don't have to care about `getPreferredOoodocServerAddress`, as only URL matters now (it was just working because both were set to localhost).
      
      /reviewed-on nexedi/erp5!315
      2cf95f9e
  4. 07 Jul, 2017 11 commits
  5. 06 Jul, 2017 10 commits