From 679ba5fc5cd1cbf23bff7ceaa96d5ac665f9c10b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=81ukasz=20Nowak?= <luke@nexedi.com> Date: Fri, 2 Apr 2010 12:59:40 +0000 Subject: [PATCH] - formatting and typos git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@34271 20353a03-c40f-0410-a6d1-a30d3c3de9de --- product/ERP5Wizard/Tool/WizardTool.py | 309 ++++++++++++++++---------- 1 file changed, 188 insertions(+), 121 deletions(-) diff --git a/product/ERP5Wizard/Tool/WizardTool.py b/product/ERP5Wizard/Tool/WizardTool.py index a53bcfac7c..f4f2425525 100644 --- a/product/ERP5Wizard/Tool/WizardTool.py +++ b/product/ERP5Wizard/Tool/WizardTool.py @@ -30,7 +30,8 @@ from AccessControl import ClassSecurityInfo from ZPublisher.HTTPRequest import FileUpload from Globals import DTMLFile -from Products.ERP5Type.Accessor.Constant import PropertyGetter as ConstantGetter +from Products.ERP5Type.Accessor.Constant import PropertyGetter as \ + ConstantGetter from Products.ERP5Type.Tool.BaseTool import BaseTool from Products.ERP5Type import Permissions from Products.ERP5Wizard import _dtmldir @@ -46,7 +47,8 @@ from urlparse import urlparse, urlunparse from base64 import encodestring, decodestring from urllib import quote, unquote from DateTime import DateTime -from Products.PluggableAuthService.interfaces.plugins import IAuthenticationPlugin +from Products.PluggableAuthService.interfaces.plugins import \ + IAuthenticationPlugin from Products.ERP5Type.Cache import CachingMethod # global (RAM) cookie storage @@ -77,7 +79,8 @@ def _isUserAcknowledged(cookiejar): return 1 return 0 -def _getAcCookieFromServer(url, opener, cookiejar, username, password, header_dict = {}): +def _getAcCookieFromServer(url, opener, cookiejar, username, password, + header_dict = {}): """ get __ac cookie from server """ data = urllib.urlencode({'__ac_name': username, '__ac_password': password}) @@ -107,8 +110,9 @@ class GeneratorCall(UserDict): for item in self.convert_data[binary_key]: self[binary_key].append(self._decodeData(item[16:-18])) else: - self[binary_key] = self._decodeData(self.convert_data[binary_key][16:-18]) - ## load string keys + self[binary_key] = self._decodeData(self.convert_data[binary_key] + [16:-18]) + ## load string keys for string_key in self._string_keys: self[string_key] = self.convert_data[string_key] @@ -127,7 +131,8 @@ class GeneratorCall(UserDict): self.convert_data[binary_key] = None for string_key in self._string_keys: self.convert_data[string_key] = self[string_key] - return xmlrpclib.dumps((self.convert_data,), 'GeneratorAnswer', allow_none=1) + return xmlrpclib.dumps((self.convert_data,), 'GeneratorAnswer', + allow_none=1) def _decodeData(self, data): """ Decode data. """ @@ -136,7 +141,7 @@ class GeneratorCall(UserDict): return binary_decoder.data def _encodeData(self, data): - """ Encode data to transmitable text. """ + """ Encode data to transmittable text. """ fp = StringIO() try: # data might be ERP5Type.Message.Message instance. @@ -159,7 +164,8 @@ def _generateErrorXML(error_message): ## server to local preferences id translation table _server_to_preference_ids_map = {'client_id': 'preferred_express_client_uid', - 'current_bc_index': 'preferred_express_erp5_uid', + 'current_bc_index': + 'preferred_express_erp5_uid', 'password': 'preferred_express_password', 'user_id': 'preferred_express_user_id',} @@ -187,19 +193,20 @@ class WizardTool(BaseTool): global referer path[:-1] = [] if referer is None: - referer = '%s/portal_wizard/proxy/%s/view' %(self.getPortalObject().absolute_url(), \ - '/'.join(subpath[:3])) + referer = '%s/portal_wizard/proxy/%s/view' % ( + self.getPortalObject().absolute_url(), + '/'.join(subpath[:3])) def _getProxyURL(self, subpath='', query=''): # Helper method to construct an URL appropriate for proxying a request. # This makes sure that URLs generated by absolute_url at a remote site # will be always towards the proxy method again. - # + # # Note that the code assumes that VirtualHostBase is visible. The setting # of a front-end server must allow this. - # + # # This should generate an URL like this: - # + # # http://remotehost:9080/VirtualHostBase/http/localhost:8080/VirtualHostRoot/_vh_erp5/_vh_portal_wizard/_vh_proxy/erp5/person_module/2 part_list = [] @@ -238,12 +245,14 @@ class WizardTool(BaseTool): def _getSubsribedUserAndPassword(self): """Retrieve the username and password for the subscription from the system.""" - user = CachingMethod(self.getExpressConfigurationPreference, \ - 'WizardTool_preferred_express_user_id', \ - cache_factory='erp5_content_long')('preferred_express_user_id', '') - pw = CachingMethod(self.getExpressConfigurationPreference, \ - 'WizardTool_preferred_express_password', \ - cache_factory='erp5_content_long')('preferred_express_password', '') + user = CachingMethod(self.getExpressConfigurationPreference, + 'WizardTool_preferred_express_user_id', + cache_factory='erp5_content_long')( + 'preferred_express_user_id', '') + pw = CachingMethod(self.getExpressConfigurationPreference, + 'WizardTool_preferred_express_password', + cache_factory='erp5_content_long')( + 'preferred_express_password', '') return (user, pw) # This is a custom opener director for not handling redirections @@ -251,7 +260,7 @@ class WizardTool(BaseTool): # should pass all results to a client as they are. simple_opener_director = urllib2.OpenerDirector() for name in ('ProxyHandler', 'UnknownHandler', \ - 'HTTPHandler', 'FTPHandler', + 'HTTPHandler', 'FTPHandler', 'FileHandler', 'HTTPSHandler',): handler = getattr(urllib2, name, None) if handler is not None: @@ -286,7 +295,8 @@ class WizardTool(BaseTool): content_type_value = None content_type_dict = None if content_type: - content_type_value, content_type_dict = cgi.parse_header(content_type) + content_type_value, content_type_dict = cgi.parse_header( + content_type) if content_type_value == 'multipart/form-data': fp = StringIO(user_input) user_input_dict = cgi.parse_multipart(fp, content_type_dict) @@ -312,7 +322,7 @@ class WizardTool(BaseTool): user_and_password[0] and user_and_password[1]): if user_and_password!=last_loggedin_user_and_password: # credentials changed we need to renew __ac cookie from server as well - cookiejar.clear() + cookiejar.clear() # try login to server only once using cookie method if not _isUserAcknowledged(cookiejar): server_url = self.getServerUrl() @@ -321,9 +331,11 @@ class WizardTool(BaseTool): cookiejar, user_and_password[0], user_and_password[1]) - # if server doesn't support cookie authentication try basic authentication + # if server doesn't support cookie authentication try basic + # authentication if not _isUserAcknowledged(cookiejar): - auth = 'Basic %s' % base64.standard_b64encode('%s:%s' % user_and_password) + auth = 'Basic %s' % base64.standard_b64encode('%s:%s' % + user_and_password) header_dict['Authorization'] = auth # save last credentials we passed to server last_loggedin_user_and_password = user_and_password @@ -334,10 +346,11 @@ class WizardTool(BaseTool): if not header_dict.has_key('Cookie'): header_dict['Cookie'] = '' for cookie in cookiejar: - # unconditionally send all cookies (no matter if expired or not) as URL is always the same + # unconditionally send all cookies (no matter if expired or not) as URL + # is always the same header_dict['Cookie'] += '%s=%s;' %(cookie.name, cookie.value) - # include cookies from local browser (like show/hide tabs) which are set directly - # by client JavaScript code (i.e. not sent from server) + # include cookies from local browser (like show/hide tabs) which are set + # directly by client JavaScript code (i.e. not sent from server) for cookie_name, cookie_value in self.REQUEST.cookies.items(): header_dict['Cookie'] += '%s=%s;' %(cookie_name, cookie_value) @@ -345,7 +358,7 @@ class WizardTool(BaseTool): header_dict['REFERER'] = self.REQUEST.get('HTTP_REFERER', None) or referer request = urllib2.Request(url, data, header_dict) f = self.simple_opener_director.open(request) - + try: data = f.read() metadata = f.info() @@ -355,12 +368,14 @@ class WizardTool(BaseTool): location = metadata.getheader('location') if location is not None: parsed_url = list(urlparse(location)) - local_site_url_prefix = urllib.quote('%s/portal_wizard/proxy' \ - %self.getPortalObject().absolute_url()) + local_site_url_prefix = urllib.quote( + '%s/portal_wizard/proxy' % self.getPortalObject().absolute_url()) remote_url_parsed = urlparse(self.getServerUrl()) - remote_site_url_prefix = '%s://%s/kb' %(remote_url_parsed[0], remote_url_parsed[1]) + remote_site_url_prefix = '%s://%s/kb' %(remote_url_parsed[0], + remote_url_parsed[1]) # fix arguments for returned location URL - parsed_url[4] = parsed_url[4].replace(local_site_url_prefix, remote_site_url_prefix) + parsed_url[4] = parsed_url[4].replace(local_site_url_prefix, + remote_site_url_prefix) response['location'] = urlunparse(parsed_url) response.setStatus(f.code, f.msg) @@ -379,34 +394,37 @@ class WizardTool(BaseTool): f.close() def _getRemoteWitchTool(self, url, user_name=None, password=None): - """ + """ Return remote portal_witch tool interface. """ handle = self.getPortalObject().portal_web_services.connect( - url = url, \ - user_name = user_name, \ - password = password, \ + url = url, + user_name = user_name, + password = password, transport = 'xml-rpc') return handle.portal_witch - def callRemoteProxyMethod(self, distant_method, server_url=None, \ + def callRemoteProxyMethod(self, distant_method, server_url=None, use_cache=1, ignore_exceptions=1, **kw): """ Call proxy method on server. """ - configurator_user_preferred_language = self.getConfiguratorUserPreferredLanguage() + configurator_user_preferred_language = self\ + .getConfiguratorUserPreferredLanguage() def wrapper(distant_method, **kw): - return self._callRemoteMethod(distant_method, \ - use_proxy=1, \ - ignore_exceptions=ignore_exceptions, **kw)['data'] + return self._callRemoteMethod( + distant_method, + use_proxy=1, + ignore_exceptions=ignore_exceptions, **kw)['data'] if use_cache: wrapper = CachingMethod(wrapper, - id = 'callRemoteProxyMethod_%s_%s' - %(distant_method, configurator_user_preferred_language), + id = 'callRemoteProxyMethod_%s_%s' + %(distant_method, + configurator_user_preferred_language), cache_factory = 'erp5_ui_medium') rc = wrapper(distant_method, **kw) return rc - def _callRemoteMethod(self, distant_method, server_url=None, \ - use_proxy=0, ignore_exceptions=1, **kw): + def _callRemoteMethod(self, distant_method, server_url=None, use_proxy=0, + ignore_exceptions=1, **kw): """ Call remote method on server and get result. """ result_call = GeneratorCall() user_name = None @@ -437,7 +455,8 @@ class WizardTool(BaseTool): html = method(parameter_dict) except socket.error, message: html = _generateErrorXML("""Cannot contact the server: %s. - Please check your network settings.""" %server_url) + Please check your network settings.""" % + server_url) zLOG.LOG('Wizard Tool socket error', zLOG.ERROR, message) result_call.update({"command": "show", "data": html, @@ -445,7 +464,8 @@ class WizardTool(BaseTool): "previous": None}) except xmlrpclib.ProtocolError, message: html = _generateErrorXML("""The server %s refused to reply. - Please contact erp5-dev@erp5.org""" %server_url) + Please contact erp5-dev@erp5.org""" % + server_url) zLOG.LOG('Wizard Tool xmlrpc protocol error', zLOG.ERROR, message) result_call.update({"command": "show", "data": html, @@ -463,7 +483,7 @@ class WizardTool(BaseTool): command = result_call["command"] html = result_call["data"] if message is not None and not ignore_exceptions: - # raise last cought exception + # raise last caught exception raise return result_call @@ -473,8 +493,9 @@ class WizardTool(BaseTool): for item, value in kw.items(): if item in _server_to_preference_ids_map.keys(): ## save persistently (as preference) - self.setExpressConfigurationPreference(_server_to_preference_ids_map[item], - value) + self.setExpressConfigurationPreference( + _server_to_preference_ids_map[item], + value) def getConfiguratorUserPreferredLanguage(self): """ Get configuration language as selected by user """ @@ -482,11 +503,14 @@ class WizardTool(BaseTool): configurator_user_preferred_language = None if REQUEST is not None: # language value will be in cookie or REQUEST itself. - configurator_user_preferred_language = REQUEST.get(LANGUAGE_COOKIE_NAME, None) + configurator_user_preferred_language = REQUEST.get(LANGUAGE_COOKIE_NAME, + None) if configurator_user_preferred_language is None: # Find a preferred language from HTTP_ACCEPT_LANGUAGE - available_language_list = [i[1] for i in self.WizardTool_getConfigurationLanguageList()] - configurator_user_preferred_language = getAvailableLanguageFromHttpAcceptLanguage( + available_language_list = [i[1] for i in self\ + .WizardTool_getConfigurationLanguageList()] + configurator_user_preferred_language = \ + getAvailableLanguageFromHttpAcceptLanguage( REQUEST.get('HTTP_ACCEPT_LANGUAGE', 'en'), available_language_list) if configurator_user_preferred_language is None: @@ -500,8 +524,9 @@ class WizardTool(BaseTool): parameter_dict[key] = self.getExpressConfigurationPreference(value, None) ## add local ERP5 instance url parameter_dict['erp5_url'] = self.getPortalObject().absolute_url() - # add user preffered language - parameter_dict['user_preferred_language'] = self.getConfiguratorUserPreferredLanguage() + # add user preferred language + parameter_dict['user_preferred_language'] = self.\ + getConfiguratorUserPreferredLanguage() # new way - reuse, if exist erp5_site_global_id erp5_site_global_id = getattr(self.getPortalObject(), @@ -524,13 +549,16 @@ class WizardTool(BaseTool): def _importBT5FileData(self, bt5_filename, bt5_filedata): """ Import bt5 file content. """ bt5_io = StringIO(bt5_filedata) - portal_templates = getToolByName(self.getPortalObject(), 'portal_templates') + portal_templates = getToolByName(self.getPortalObject(), + 'portal_templates') try: - business_template = portal_templates.importFile(import_file=bt5_io, batch_mode=1) + business_template = portal_templates.importFile(import_file=bt5_io, + batch_mode=1) except: ## importing of generated bt5 failed business_template = None - LOG("Wizard", ERROR, "[FAIL] Import of Nexedi Configurator bt5 file(%s)" %bt5_filename) + LOG("Wizard", ERROR, "[FAIL] Import of Nexedi Configurator bt5 file(%s)" + % bt5_filename) raise bt5_io.close() #install bt5 @@ -548,7 +576,8 @@ class WizardTool(BaseTool): global installation_status if use_super_manager: # set current security manager to owner of site - original_security_manager = _setSuperSecurityManager(self.getPortalObject()) + original_security_manager = _setSuperSecurityManager( + self.getPortalObject()) portal = self.getPortalObject() bt5_files = server_response.get("filedata", []) @@ -562,7 +591,8 @@ class WizardTool(BaseTool): LOG("Wizard", INFO, "Starting installation for %s" %' '.join(bt5_filenames)) installation_status['bt5']['all'] = len(bt5_files) - #execute_after_setup_script = install_standard_bt5 = install_customer_bt5 = False # dev mode + # execute_after_setup_script = install_standard_bt5 = + # install_customer_bt5 = False # dev mode for bt5_id in bt5_filenames: if bt5_id.startswith('http://') or bt5_id.startswith('file://') : ## direct download of bt5 files available @@ -583,8 +613,10 @@ class WizardTool(BaseTool): (bt5_id, len(bt5_filedata))) ## .. counter += 1 - ## can we execute after setup script that will finish installation on client side? - bt5_after_setup_script_id = server_response["server_buffer"].get("after_setup_script_id", None) + ## can we execute after setup script that will finish installation on + ## client side? + bt5_after_setup_script_id = server_response["server_buffer"].get( + "after_setup_script_id", None) if bt5_after_setup_script_id is None and \ self.getExpressConfigurationPreference( 'preferred_express_configuration_status', False): @@ -593,13 +625,16 @@ class WizardTool(BaseTool): 'preferred_express_after_setup_script_id', None) if execute_after_setup_script and bt5_after_setup_script_id is not None: ## Execute script provided (if) in customer specific business template. - bt5_customer_template_id = server_response["server_buffer"]['filenames'][-1] + bt5_customer_template_id = server_response["server_buffer"]['filenames' + ][-1] bt5_customer_template_id = bt5_customer_template_id.replace('.bt5', '') after_script = getattr(self, bt5_after_setup_script_id, None) if after_script is not None: - after_script_result = after_script(customer_template_id = bt5_customer_template_id) - LOG("Wizard", INFO,"[OK] execution of afer setup script %s (for bt5 %s)\n%s" - %(after_script.getId(), bt5_customer_template_id, after_script_result)) + after_script_result = after_script( + customer_template_id = bt5_customer_template_id) + LOG("Wizard", INFO,"[OK] execution of after setup script %s (for bt5 " + "%s)%s" %(after_script.getId(), bt5_customer_template_id, + after_script_result)) ## mark this ERP5 instance as configured self.setExpressConfigurationPreference( 'preferred_express_configuration_status', 1) @@ -620,15 +655,16 @@ class WizardTool(BaseTool): def remoteLogin(self, REQUEST): """ Login client and show next form. """ client_id = None - user_id = REQUEST.get('field_my_ac_name', None) or self.getExpressConfigurationPreference('preferred_express_user_id') - REQUEST.form['field_my_ac_name'] = user_id + user_id = REQUEST.get('field_my_ac_name', None) or self\ + .getExpressConfigurationPreference('preferred_express_user_id') + REQUEST.form['field_my_ac_name'] = user_id password = REQUEST.get('field_my_ac_password', '') came_from_method = REQUEST.get('field_my_came_from_method', '') ## call remote server response = self._callRemoteMethod("getIdentification") command = response["command"] if command == "show": - ## server wants some more info - i.e possible + ## server wants some more info - i.e possible ## selection of working business configuration if response.get('server_buffer', None) is not None: client_id = response['server_buffer'].get('client_id', None) @@ -637,10 +673,12 @@ class WizardTool(BaseTool): client_id=client_id) return self.WizardTool_dialogForm(form_html=response["data"]) elif command == "next": - self._setServerInfo(user_id=user_id, \ - #password=password, \ - client_id=response['server_buffer'].get('client_id', None), \ - current_bc_index=response['server_buffer'].get('current_bc_index', None)) + self._setServerInfo(user_id=user_id, + #password=password, + client_id=response['server_buffer'].get('client_id', + None), + current_bc_index=response['server_buffer'].get( + 'current_bc_index', None)) # set encoded __ac_express cookie at client's browser __ac_express = quote(encodestring(password)) expires = (DateTime() + 1).toZone('GMT').rfc822() @@ -651,18 +689,20 @@ class WizardTool(BaseTool): return self.next(REQUEST=REQUEST) elif command == "login": ## invalid user/password - self.REQUEST.RESPONSE.redirect( \ - 'portal_wizard/%s?field_my_ac_name=%s&portal_status_message=%s' \ + self.REQUEST.RESPONSE.redirect( + 'portal_wizard/%s?field_my_ac_name=%s&portal_status_message=%s' %(came_from_method, user_id, response['server_buffer']['message'])) - return + return def login(self, REQUEST): """ Login client and show next form. """ - user_id = self.getExpressConfigurationPreference('preferred_express_user_id') + user_id = self.getExpressConfigurationPreference( + 'preferred_express_user_id') password = REQUEST.get('field_my_ac_password', '') if self._isCorrectConfigurationKey(user_id, password): # set user preferred configuration language - user_preferred_language = REQUEST.get('field_my_user_preferred_language', None) + user_preferred_language = REQUEST.get( + 'field_my_user_preferred_language', None) if user_preferred_language: # Set language value to request so that next page after login # can get the value. Because cookie value is available from @@ -682,24 +722,27 @@ class WizardTool(BaseTool): return self.next(REQUEST=REQUEST) else: # incorrect user_id / password - REQUEST.set('portal_status_message', - self.callRemoteProxyMethod('WizardTool_viewIncorrectConfigurationKeyMessageRenderer')) + REQUEST.set('portal_status_message', + self.callRemoteProxyMethod('WizardTool_viewIncorrectConfigu' + 'rationKeyMessageRenderer')) return self.view() def _isCorrectConfigurationKey(self, user_id, password): """ Is configuration key correct """ uf = self.getPortalObject().acl_users - for plugin_name, plugin in uf._getOb('plugins').listPlugins(IAuthenticationPlugin): - if plugin.authenticateCredentials({'login':user_id, - 'password': password}) is not None: + for plugin_name, plugin in uf._getOb('plugins').listPlugins( + IAuthenticationPlugin): + if plugin.authenticateCredentials( + {'login':user_id, 'password': password}) is not None: return 1 return 0 def _isUserAllowedAccess(self): """ Can user access locally portal_wizard """ password = self.REQUEST.get('__ac_express', None) - if password is not None: - user_id = self.getExpressConfigurationPreference('preferred_express_user_id') + if password is not None: + user_id = self.getExpressConfigurationPreference( + 'preferred_express_user_id') password = decodestring(unquote(password)) return self._isCorrectConfigurationKey(user_id, password) return 0 @@ -709,7 +752,8 @@ class WizardTool(BaseTool): """ Validate settings and return a new form to the user. """ # check if user is allowed to access service if not self._isUserAllowedAccess(): - REQUEST.set('portal_status_message', self.Base_translateString('Incorrect Configuration Key')) + REQUEST.set('portal_status_message', self.Base_translateString( + 'Incorrect Configuration Key')) return self.view() response = self._callRemoteMethod("next") if isinstance(response['server_buffer'], dict): @@ -735,7 +779,8 @@ class WizardTool(BaseTool): """ Display the previous form. """ # check if user is allowed to access service if not self._isUserAllowedAccess(): - REQUEST.set('portal_status_message', self.Base_translateString('Incorrect Configuration Key')) + REQUEST.set('portal_status_message', self.Base_translateString( + 'Incorrect Configuration Key')) return self.view() response = self._callRemoteMethod('previous') command = response["command"] @@ -757,22 +802,29 @@ class WizardTool(BaseTool): activities should not exists. """ global installation_status - portal_activities = getToolByName(self.getPortalObject(), 'portal_activities') - is_bt5_installation_over = (portal_activities.countMessageWithTag('initialERP5Setup')==0) - if 0 == len(portal_activities.getMessageList()) and is_bt5_installation_over: + portal_activities = getToolByName(self.getPortalObject(), + 'portal_activities') + is_bt5_installation_over = (portal_activities.countMessageWithTag( + 'initialERP5Setup')==0) + if 0 == len(portal_activities.getMessageList()) and \ + is_bt5_installation_over: html = self.WizardTool_viewSuccessfulConfigurationMessageRenderer() else: if is_bt5_installation_over: # only if bt5s are installed start tracking number of activities activity_list = portal_activities.getMessageList() installation_status['activity_list'].append(len(activity_list)) - html = self.WizardTool_viewRunningInstallationMessage(installation_status = installation_status) + html = self.WizardTool_viewRunningInstallationMessage( + installation_status = installation_status) # set encoding as this is usually called from asynchronous JavaScript call - self.REQUEST.RESPONSE.setHeader('Content-Type', 'text/html; charset=utf-8'); + self.REQUEST.RESPONSE.setHeader('Content-Type', + 'text/html; charset=utf-8') return html - security.declarePublic(Permissions.AccessContentsInformation, 'getInstallationStatusReportFromServer') - def getInstallationStatusReportFromServer(self, active_process_id=None, REQUEST=None): + security.declarePublic(Permissions.AccessContentsInformation, + 'getInstallationStatusReportFromServer') + def getInstallationStatusReportFromServer(self, active_process_id=None, + REQUEST=None): """ Query remote server (usually only once for some installation status report """ response = self._callRemoteMethod("getInstallationStatusReport") html = response["data"] @@ -780,9 +832,9 @@ class WizardTool(BaseTool): security.declareProtected(Permissions.ModifyPortalContent, 'startInstallation') def startInstallation(self, REQUEST): - """ Start installation process as an activity which will query generation server and - download/install bt5 template files and meanwhile offer user a nice GUI to observe - what's happening. """ + """ Start installation process as an activity which will query generation + server and download/install bt5 template files and meanwhile offer + user a nice GUI to observe what's happening. """ global installation_status # init installation status installation_status['bt5']['all'] = 0 @@ -790,42 +842,52 @@ class WizardTool(BaseTool): installation_status['activity_list'] = [] active_process = self.portal_activities.newActiveProcess() REQUEST.set('active_process_id', active_process.getId()) - request_restore_dict = {'__ac_express': self.REQUEST.get('__ac_express', None),} - self.activate(active_process=active_process, tag = 'initialERP5Setup').initialERP5Setup(request_restore_dict) + request_restore_dict = {'__ac_express': self.REQUEST.get('__ac_express', + None),} + self.activate(active_process=active_process, tag = 'initialERP5Setup' + ).initialERP5Setup(request_restore_dict) return self.Wizard_viewInstallationStatus(REQUEST) - security.declareProtected(Permissions.ModifyPortalContent, 'initialERP5Setup') + security.declareProtected(Permissions.ModifyPortalContent, + 'initialERP5Setup') def initialERP5Setup(self, request_restore_dict={}): - """ Get from remote generation server customized bt5 template files + """ Get from remote generation server customized bt5 template files and then install them. """ # restore some REQUEST variables as this method is executed in an activity # and there's no access to real original REQUEST for key, value in request_restore_dict.items(): self.REQUEST.set(key, value) self.REQUEST.form['wizard_request_type'] = 'initial_setup' - # calculate server_url, because after bt5 installation reindexing is started - # which will make it impossible to get preferences items + # calculate server_url, because after bt5 installation reindexing is + # started which will make it impossible to get preferences items server_url = self.getServerUrl() + self.getServerRoot() - server_response = self._callRemoteMethod('getBT5FilesForBusinessConfiguration', server_url) - ## save erp5_uid which will make it possible to distingush different business conf for client + server_response = self._callRemoteMethod( + 'getBT5FilesForBusinessConfiguration', server_url) + ## save erp5_uid which will make it possible to distinguish different + ## Business Configuration for client if server_response.get('server_buffer', None) is not None: - current_bc_index = server_response['server_buffer'].get('current_bc_index', None) + current_bc_index = server_response['server_buffer'].get( + 'current_bc_index', None) if current_bc_index is not None: self._setServerInfo(current_bc_index = current_bc_index) self.installBT5FilesFromServer(server_response, True) - server_response = self._callRemoteMethod('finalizeInstallation', server_url) + server_response = self._callRemoteMethod('finalizeInstallation', + server_url) LOG("Wizard", INFO, - "Successfuly installed generated business configuration from %s" %self.getServerUrl()) + "Successfully installed generated business configuration from %s" % + self.getServerUrl()) security.declareProtected(Permissions.ModifyPortalContent, 'repair') def repair(self): - """ Repair broken ERP5 instance. This will install all business templates + """ Repair broken ERP5 instance. This will install all business templates for ERP5 instance as specified in its business configuration. """ self.REQUEST.form['wizard_request_type'] = 'repair' - server_response = self._callRemoteMethod('getBT5FilesForBusinessConfiguration') + server_response = self._callRemoteMethod( + 'getBT5FilesForBusinessConfiguration') if server_response['command'] == "install": active_process = self.portal_activities.newActiveProcess() - self.activate(active_process=active_process).installBT5FilesFromServer(server_response, True) + self.activate(active_process=active_process).installBT5FilesFromServer( + server_response, True) html = server_response['data'] LOG("Wizard", INFO, "Start repair process for ERP5 instance from %s" %self.getServerUrl()) @@ -835,11 +897,13 @@ class WizardTool(BaseTool): def update(self): """ Update ERP5's instance standard business templates. """ self.REQUEST.form['wizard_request_type'] = 'update' - server_response = self._callRemoteMethod('getBT5FilesForBusinessConfiguration') + server_response = self._callRemoteMethod( + 'getBT5FilesForBusinessConfiguration') if server_response['command'] == "install": active_process = self.portal_activities.newActiveProcess() - self.activate(active_process=active_process).installBT5FilesFromServer(server_response, - execute_after_setup_script = False) + self.activate(active_process=active_process).installBT5FilesFromServer( + server_response, + execute_after_setup_script = False) html = server_response['data'] LOG("Wizard", INFO, "Start update process for ERP5 instance from %s" %self.getServerUrl()) @@ -847,17 +911,20 @@ class WizardTool(BaseTool): security.declareProtected(Permissions.View, 'getServerUrl') def getServerUrl(self): - return CachingMethod(self.getExpressConfigurationPreference, \ - 'WizardTool_preferred_witch_tool_server_url', \ - cache_factory='erp5_content_long')('preferred_witch_tool_server_url', '') + return CachingMethod(self.getExpressConfigurationPreference, + 'WizardTool_preferred_witch_tool_server_url', + cache_factory='erp5_content_long')( + 'preferred_witch_tool_server_url', '') security.declareProtected(Permissions.View, 'getServerRoot') def getServerRoot(self): - return CachingMethod(self.getExpressConfigurationPreference, \ - 'WizardTool_preferred_witch_tool_server_root', \ - cache_factory='erp5_content_long')('preferred_witch_tool_server_root', '') + return CachingMethod(self.getExpressConfigurationPreference, + 'WizardTool_preferred_witch_tool_server_root', + cache_factory='erp5_content_long')( + 'preferred_witch_tool_server_root', '') - security.declareProtected(Permissions.View, 'getExpressConfigurationPreference') + security.declareProtected(Permissions.View, + 'getExpressConfigurationPreference') def getExpressConfigurationPreference(self, preference_id, default = None): """ Get Express configuration preference """ original_security_manager = _setSuperSecurityManager(self.getPortalObject()) -- 2.30.9