[Erp5-report] r34271 luke - /erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py
nobody at svn.erp5.org
nobody at svn.erp5.org
Fri Apr 2 14:59:42 CEST 2010
Author: luke
Date: Fri Apr 2 14:59:40 2010
New Revision: 34271
URL: http://svn.erp5.org?rev=34271&view=rev
Log:
- formatting and typos
Modified:
erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py
Modified: erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py
URL: http://svn.erp5.org/erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py?rev=34271&r1=34270&r2=34271&view=diff
==============================================================================
--- erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py [utf8] (original)
+++ erp5/trunk/products/ERP5Wizard/Tool/WizardTool.py [utf8] Fri Apr 2 14:59:40 2010
@@ -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 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 @@
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 @@
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 @@
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 @@
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 @@
## 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 @@
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 @@
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 @@
# 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
"previous": None})
except xmlrpclib.ProtocolError, message:
html = _generateErrorXML("""The server %s refused to reply.
- Please contact erp5-dev at erp5.org""" %server_url)
+ Please contact erp5-dev at 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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
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 @@
(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 @@
'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 @@
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 @@
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 @@
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 @@
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 @@
""" 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 @@
""" 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 @@
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 @@
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 @@
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 @@
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 @@
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', '')
-
- security.declareProtected(Permissions.View, 'getExpressConfigurationPreference')
+ 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')
def getExpressConfigurationPreference(self, preference_id, default = None):
""" Get Express configuration preference """
original_security_manager = _setSuperSecurityManager(self.getPortalObject())
More information about the Erp5-report
mailing list