def exportSQLMethods(self, sql_catalog_id=None, config_id='erp5'): """ Export SQL methods for a given configuration. """ # For compatibility. if config_id.lower() == 'erp5': config_id = 'erp5_mysql' elif config_id.lower() == 'cps3': config_id = 'cps3_mysql' catalog = self.getSQLCatalog(sql_catalog_id) product_path = package_home(globals()) common_sql_dir = os.path.join(product_path, 'sql', 'common_mysql') config_sql_dir = os.path.join(product_path, 'sql', config_id) common_sql_list = ('z0_drop_record', 'z_read_recorded_object_list', 'z_catalog_paths', 'z_record_catalog_object', 'z_clear_reserved', 'z_record_uncatalog_object', 'z_create_record', 'z_delete_recorded_object_list', 'z_reserve_uid', 'z_getitem_by_path', 'z_show_columns', 'z_getitem_by_path', 'z_show_tables', 'z_getitem_by_uid', 'z_unique_values', 'z_produce_reserved_uid_list',) msg = '' for id in catalog.objectIds(spec=('Z SQL Method',)): if id in common_sql_list: d = common_sql_dir else: d = config_sql_dir sql = catalog._getOb(id) # First convert the skin to text text = sql.manage_FTPget() name = os.path.join(d, '%s.zsql' % (id,)) msg += 'Writing %s\n' % (name,) f = open(name, 'w') try: f.write(text) finally: f.close() properties = self.manage_catalogExportProperties(sql_catalog_id=sql_catalog_id) name = os.path.join(config_sql_dir, 'properties.xml') msg += 'Writing %s\n' % (name,) f = open(name, 'w') try: f.write(properties) finally: f.close() return msg
def addDefaultSQLMethods(self, config_id='erp5'): """ Add default SQL methods for a given configuration. """ # For compatibility. if config_id.lower() == 'erp5': config_id = 'erp5_mysql' elif config_id.lower() == 'cps3': config_id = 'cps3_mysql' addSQLCatalog = self.manage_addProduct['ZSQLCatalog'].manage_addSQLCatalog if config_id not in self.objectIds(): addSQLCatalog(config_id, '') catalog = self.getSQLCatalog(config_id) addSQLMethod = catalog.manage_addProduct['ZSQLMethods'].manage_addZSQLMethod product_path = package_home(globals()) zsql_dirs = [] # Common methods - for backward compatibility # SQL code distribution is supposed to be business template based nowadays if config_id.lower() == 'erp5_mysql': zsql_dirs.append(os.path.join(product_path, 'sql', 'common_mysql')) zsql_dirs.append(os.path.join(product_path, 'sql', 'erp5_mysql')) elif config_id.lower() == 'cps3_mysql': zsql_dirs.append(os.path.join(product_path, 'sql', 'common_mysql')) zsql_dirs.append(os.path.join(product_path, 'sql', 'cps3_mysql')) # Iterate over the sql directory. Add all sql methods in that directory. for directory in zsql_dirs: for entry in os.listdir(directory): if entry.endswith('.zsql'): id = entry[:-5] # Create an empty SQL method first. addSQLMethod(id = id, title = '', connection_id = '', arguments = '', template = '') #LOG('addDefaultSQLMethods', 0, 'catalog = %r' % (catalog.objectIds(),)) sql_method = getattr(catalog, id) # Set parameters of the SQL method from the contents of a .zsql file. sql_method.fromFile(os.path.join(directory, entry)) elif entry == 'properties.xml': # This sets up the attributes. The file should be generated by manage_exportProperties. catalog.manage_importProperties(os.path.join(directory, entry)) # Make this the default. self.default_sql_catalog_id = config_id
############################################################################## """ ERP5 Free Software ERP """ from __future__ import absolute_import # Update ERP5 Globals from Products.ERP5Type.Utils import initializeProduct, updateGlobals import sys from . import Permissions this_module = sys.modules[ __name__ ] document_classes = updateGlobals( this_module, globals(), permissions_module = Permissions) from AccessControl import ModuleSecurityInfo from Products.ERP5Type.Globals import package_home product_path = package_home( globals() ) # Define object classes and tools from .Tool import CategoryTool, IdTool, TemplateTool,\ AlarmTool,\ TrashTool,\ SolverTool from . import ERP5Site from .Document import PythonScript, SQLMethod object_classes = ( ERP5Site.ERP5Site, PythonScript.PythonScriptThroughZMI, SQLMethod.SQLMethod, ) portal_tools = ( CategoryTool.CategoryTool, IdTool.IdTool, TemplateTool.TemplateTool,
ERP5 Free Software ERP """ # Update ERP5 Globals from Products.ERP5Type.Utils import initializeProduct, updateGlobals import sys, Permissions this_module = sys.modules[ __name__ ] document_classes = updateGlobals( this_module, globals(), permissions_module = Permissions) from Products.PythonScripts.Utility import allow_class from AccessControl import ModuleSecurityInfo import MovementGroup allow_class(MovementGroup) from Products.ERP5Type.Globals import package_home product_path = package_home( globals() ) # Define object classes and tools from Tool import CategoryTool, SimulationTool, RuleTool, IdTool, TemplateTool,\ TestTool, DomainTool, AlarmTool, OrderTool, DeliveryTool,\ TrashTool, ContributionTool, NotificationTool, PasswordTool,\ GadgetTool, ContributionRegistryTool, IntrospectionTool,\ AcknowledgementTool, SolverTool, SolverProcessTool,\ ConversionTool, RoundingTool, UrlRegistryTool, InterfaceTool,\ CertificateAuthorityTool, InotifyTool, TaskDistributionTool import ERP5Site from Document import PythonScript object_classes = ( ERP5Site.ERP5Site, PythonScript.PythonScriptThroughZMI, ) portal_tools = ( CategoryTool.CategoryTool,