Commit 79d1e814 authored by Ayush Tiwari's avatar Ayush Tiwari

erp5_catalog: Add default_erp5_catalog_id property and its getter functions for ERP5Catalog object.

parent a8e52edf
......@@ -44,6 +44,7 @@ from Products.CMFActivity.ActivityTool import GroupedMessage
from Products.ERP5Type.TransactionalVariable import getTransactionalVariable
from Products.ERP5Type.Core.Folder import Folder
from Products.ERP5Type.Tool.BaseTool import BaseTool
from Products.ERP5Type import PropertySheet
from AccessControl.PermissionRole import rolesForPermissionOn
......@@ -321,6 +322,22 @@ class CatalogTool (ZCatalog, CMFCoreCatalogTool, BaseTool):
manage_options = ({ 'label' : 'Overview', 'action' : 'manage_overview' },
) + Folder.manage_options
property_sheets = ( PropertySheet.Base
, PropertySheet.SimpleItem
, PropertySheet.Folder
, PropertySheet.CatalogTool
)
_properties = ZCatalog._properties + (
{ 'id' : 'default_erp5_catalog_id',
'description' : 'Default ERP5 Catalog Id',
'type' : 'selection',
'select_variable' : 'getERP5CatalogIdList',
'mode' : 'w' },
)
default_erp5_catalog_id = None
# Use reindexObject method from BaseTool class and declare it public
reindexObject = BaseTool.reindexObject
security.declarePublic('reindexObject')
......@@ -351,6 +368,35 @@ class CatalogTool (ZCatalog, CMFCoreCatalogTool, BaseTool):
allowedContentTypes = BaseTool.allowedContentTypes
getVisibleAllowedContentTypeList = BaseTool.getVisibleAllowedContentTypeList
# The functions 'getERP5CatalogIdList' and 'getERP5Catalog' are meant to
# be used in restricted environment, cause the reason they were created is
# the transition of Catalog from SQLCatalog to ERP5Catalog, which basically
# means Catalog is going to be an ERP5 object, which is why we need these
# functions to be declared public.
security.declarePublic('getERP5CatalogIdList')
def getERP5CatalogIdList(self):
"""
Get ERP5 Catalog Ids
"""
self.objectIds(spec=('ERP5 Catalog',))
security.declarePublic('getERP5Catalog')
def getERP5Catalog(self):
"""
Get current ERP5 Catalog
"""
if id is None:
if not self.default_erp5_catalog_id:
id_list = self.getERP5CatalogIdList()
if len(id_list) > 0:
self.default_erp5_catalog_id = id_list[0]
else:
return default_value
id = self.default_erp5_catalog_id
return self._getOb(id, default_value)
security.declarePublic('getPreferredSQLCatalogId')
def getPreferredSQLCatalogId(self, id=None):
"""
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment