Commit 70d38eee authored by Romain Courteaud's avatar Romain Courteaud

[erp5_hal/web_renderjs_ui/officejs] Fix python coding style

parent f3c57d2d
...@@ -2,7 +2,6 @@ from Acquisition import aq_self, aq_base, aq_inner ...@@ -2,7 +2,6 @@ from Acquisition import aq_self, aq_base, aq_inner
from Products.ERP5Type.Utils import UpperCase from Products.ERP5Type.Utils import UpperCase
from ZODB.POSException import ConflictError from ZODB.POSException import ConflictError
from AccessControl import Unauthorized from AccessControl import Unauthorized
from Products.ZSQLCatalog.zsqlbrain import ZSQLBrain
def Base_aqSelf(self): def Base_aqSelf(self):
...@@ -68,7 +67,7 @@ def Listbox_getBrainValue(self, brain, obj, select, can_check_local_property, ed ...@@ -68,7 +67,7 @@ def Listbox_getBrainValue(self, brain, obj, select, can_check_local_property, ed
default_field_value = default_field_value() default_field_value = default_field_value()
except (ConflictError, RuntimeError): except (ConflictError, RuntimeError):
raise raise
except: except Exception:
default_field_value = None default_field_value = None
# Listbox.py forces result to be an empty string # Listbox.py forces result to be an empty string
......
...@@ -45,10 +45,7 @@ ...@@ -45,10 +45,7 @@
<item> <item>
<key> <string>text_content_warning_message</string> </key> <key> <string>text_content_warning_message</string> </key>
<value> <value>
<tuple> <tuple/>
<string>W: 71, 4: No exception type(s) specified (bare-except)</string>
<string>W: 5, 0: Unused ZSQLBrain imported from Products.ZSQLCatalog.zsqlbrain (unused-import)</string>
</tuple>
</value> </value>
</item> </item>
<item> <item>
...@@ -103,24 +100,28 @@ ...@@ -103,24 +100,28 @@
</record> </record>
<record id="4" aka="AAAAAAAAAAQ="> <record id="4" aka="AAAAAAAAAAQ=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<list> <key> <string>_log</string> </key>
<dictionary> <value>
<item> <list>
<key> <string>action</string> </key> <dictionary>
<value> <string>validate</string> </value> <item>
</item> <key> <string>action</string> </key>
<item> <value> <string>validate</string> </value>
<key> <string>validation_state</string> </key> </item>
<value> <string>validated</string> </value> <item>
</item> <key> <string>validation_state</string> </key>
</dictionary> <value> <string>validated</string> </value>
</list> </item>
</tuple> </dictionary>
</list>
</value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
</ZopeData> </ZopeData>
...@@ -12,13 +12,10 @@ There are runtime values hidden in every dialog form (injected by getHateoas Scr ...@@ -12,13 +12,10 @@ There are runtime values hidden in every dialog form (injected by getHateoas Scr
extra_param_json - JSON serialized extra parameters for the dialog script extra_param_json - JSON serialized extra parameters for the dialog script
""" """
from Products.ERP5Type.Log import log, DEBUG, INFO, WARNING, ERROR from Products.ERP5Type.Log import log, WARNING
from Products.Formulator.Errors import FormValidationError, ValidationError from Products.Formulator.Errors import FormValidationError
from ZTUtils import make_query
import json import json
DOCUMENT_COUNT_LIMIT = 50
# http://stackoverflow.com/a/13105359 # http://stackoverflow.com/a/13105359
def byteify(value): def byteify(value):
if isinstance(value, dict): if isinstance(value, dict):
...@@ -53,7 +50,6 @@ else: ...@@ -53,7 +50,6 @@ else:
# request.form holds POST data thus containing 'field_' + field.id items # request.form holds POST data thus containing 'field_' + field.id items
# such as 'field_your_some_field' # such as 'field_your_some_field'
request_form = request.form request_form = request.form
error_message = ''
translate = context.Base_translateString translate = context.Base_translateString
portal = context.getPortalObject() portal = context.getPortalObject()
...@@ -161,7 +157,6 @@ except FormValidationError as validation_errors: ...@@ -161,7 +157,6 @@ except FormValidationError as validation_errors:
MARKER = [] # A recognisable default value. Use with 'is', not '=='. MARKER = [] # A recognisable default value. Use with 'is', not '=='.
listbox_id_list = [] # There should not be more than one listbox - but this give us a way to check. listbox_id_list = [] # There should not be more than one listbox - but this give us a way to check.
file_id_list = [] # For uploaded files.
for field in form.get_fields(): for field in form.get_fields():
field_id = field.id field_id = field.id
field_value = request.get(field_id, MARKER) field_value = request.get(field_id, MARKER)
......
...@@ -141,10 +141,10 @@ def editMatrixBox(matrixbox_field, matrixbox): ...@@ -141,10 +141,10 @@ def editMatrixBox(matrixbox_field, matrixbox):
columns = matrixbox_field.get_value('columns') columns = matrixbox_field.get_value('columns')
tabs = matrixbox_field.get_value('tabs') tabs = matrixbox_field.get_value('tabs')
column_ids = map(lambda x: x[0], columns) column_ids = [x[0] for x in columns]
line_ids = map(lambda x: x[0], lines) line_ids = [x[0] for x in lines]
tab_ids = map(lambda x: x[0], tabs) tab_ids = [x[0] for x in tabs]
extra_dimension_category_list_list = [[category for category, label in dimension_list] for dimension_list in extra_dimension_list_list] extra_dimension_category_list_list = [[category for category, _ in dimension_list] for dimension_list in extra_dimension_list_list]
# There are 3 cases # There are 3 cases
# Case 1: we do 1 dimensional matrix # Case 1: we do 1 dimensional matrix
...@@ -247,8 +247,6 @@ spp = context.getPhysicalPath() ...@@ -247,8 +247,6 @@ spp = context.getPhysicalPath()
spp =list(spp) spp =list(spp)
s_url = request["SERVER_URL"] s_url = request["SERVER_URL"]
spp.insert(0,s_url) spp.insert(0,s_url)
#calculate direct the url instead of using absolute_url
new_url = '/'.join(spp)
# for web mode, we should use 'view' instead of passed form_id # for web mode, we should use 'view' instead of passed form_id
# after 'Save & View'. # after 'Save & View'.
......
...@@ -7,6 +7,9 @@ from zExceptions import Redirect ...@@ -7,6 +7,9 @@ from zExceptions import Redirect
from ZTUtils import make_query from ZTUtils import make_query
import json import json
if keep_items is None:
keep_items = {}
request_form = context.REQUEST.form request_form = context.REQUEST.form
previous_form_id = request_form.get('form_id', '') previous_form_id = request_form.get('form_id', '')
request_form.update(kw) request_form.update(kw)
......
...@@ -50,7 +50,7 @@ ...@@ -50,7 +50,7 @@
</item> </item>
<item> <item>
<key> <string>_params</string> </key> <key> <string>_params</string> </key>
<value> <string>form_id=\'view\', keep_items={}, abort_transaction=False, **kw</string> </value> <value> <string>form_id=\'view\', keep_items=None, abort_transaction=False, **kw</string> </value>
</item> </item>
<item> <item>
<key> <string>id</string> </key> <key> <string>id</string> </key>
......
...@@ -54,17 +54,18 @@ from DateTime import DateTime ...@@ -54,17 +54,18 @@ from DateTime import DateTime
from ZODB.POSException import ConflictError from ZODB.POSException import ConflictError
import datetime import datetime
import time import time
from email.Utils import formatdate from email.utils import formatdate
import re import re
from zExceptions import Unauthorized from zExceptions import Unauthorized
from Products.ERP5Type.Log import log, DEBUG, INFO, WARNING, ERROR from Products.ERP5Type.Log import log, WARNING, ERROR
from Products.ERP5Type.Message import Message from Products.ERP5Type.Message import Message
from Products.ERP5Type.Utils import UpperCase
from Products.ZSQLCatalog.SQLCatalog import Query, ComplexQuery
from collections import OrderedDict from collections import OrderedDict
from Products.ERP5Form.Selection import Selection from Products.ERP5Form.Selection import Selection
from Products.PythonScripts.standard import Object
MARKER = Object()
MARKER = []
COUNT_LIMIT = 1000 COUNT_LIMIT = 1000
if REQUEST is None: if REQUEST is None:
...@@ -77,12 +78,6 @@ if response is None: ...@@ -77,12 +78,6 @@ if response is None:
response = REQUEST.RESPONSE response = REQUEST.RESPONSE
def isFieldType(field, type_name):
if field.meta_type == 'ProxyField':
field = field.getRecursiveTemplateField()
return field.meta_type == type_name
def toBasicTypes(obj): def toBasicTypes(obj):
"""Ensure that obj contains only basic types.""" """Ensure that obj contains only basic types."""
if obj is None: if obj is None:
...@@ -97,7 +92,7 @@ def toBasicTypes(obj): ...@@ -97,7 +92,7 @@ def toBasicTypes(obj):
return obj.translate() return obj.translate()
try: try:
return {toBasicTypes(key): toBasicTypes(obj[key]) for key in obj} return {toBasicTypes(key): toBasicTypes(obj[key]) for key in obj}
except: except Exception:
log('Cannot convert {!s} to basic types {!s}'.format(type(obj), obj), level=100) log('Cannot convert {!s} to basic types {!s}'.format(type(obj), obj), level=100)
return obj return obj
...@@ -246,7 +241,7 @@ def selectKwargsForCallable(func, initial_kwargs, kwargs_dict): ...@@ -246,7 +241,7 @@ def selectKwargsForCallable(func, initial_kwargs, kwargs_dict):
if script_params is not None: if script_params is not None:
# In case the func is actualy Script (Python) or ERP5 Python Script # In case the func is actualy Script (Python) or ERP5 Python Script
func_param_list = [tuple(map(lambda x: x.strip(), func_param.split('='))) func_param_list = [tuple([x.strip() for x in func_param.split('=')])
for func_param in script_params.split(",") for func_param in script_params.split(",")
if func_param.strip()] if func_param.strip()]
elif hasattr(func, "func_args"): elif hasattr(func, "func_args"):
...@@ -414,7 +409,7 @@ def renderField(traversed_document, field, form, value=MARKER, meta_type=None, k ...@@ -414,7 +409,7 @@ def renderField(traversed_document, field, form, value=MARKER, meta_type=None, k
# this listbox expects field_id to point to the "parent" relation field # this listbox expects field_id to point to the "parent" relation field
# thus setting the field_id is optional and controlled by `request_field` argument # thus setting the field_id is optional and controlled by `request_field` argument
if request_field: if request_field:
previous_request_field = REQUEST.other.pop('field_id', None) # previous_request_field = REQUEST.other.pop('field_id', None)
REQUEST.other['field_id'] = field.id REQUEST.other['field_id'] = field.id
if meta_type is None: if meta_type is None:
...@@ -940,7 +935,6 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti ...@@ -940,7 +935,6 @@ def renderForm(traversed_document, form, response_dict, key_prefix=None, selecti
proxy_form_id_list = [('Base_viewRelatedObjectListBase/listbox', 'default')] proxy_form_id_list = [('Base_viewRelatedObjectListBase/listbox', 'default')]
# Create the possible choices # Create the possible choices
root_url = site_root.absolute_url()
renderHiddenField(response_dict, "proxy_form_id_list", '') renderHiddenField(response_dict, "proxy_form_id_list", '')
response_dict["proxy_form_id_list"].update({ response_dict["proxy_form_id_list"].update({
"items": [(Base_translateString(y), url_template_dict['traverse_generator_action'] % { "items": [(Base_translateString(y), url_template_dict['traverse_generator_action'] % {
...@@ -1403,7 +1397,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, ...@@ -1403,7 +1397,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
'href': '%s' % view_action['url'], 'href': '%s' % view_action['url'],
'name': view_action['id'], 'name': view_action['id'],
'icon': view_action['icon'], 'icon': view_action['icon'],
'title': Base_translateString(view_action['title']) 'title': Base_translateString(view_action['title']),
}) })
global_action_type = ("view", "workflow", "object_new_content_action", global_action_type = ("view", "workflow", "object_new_content_action",
...@@ -1549,7 +1543,6 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, ...@@ -1549,7 +1543,6 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
} }
elif relative_url == 'portal_preferences': elif relative_url == 'portal_preferences':
preference_tool = portal.portal_preferences
preference = traversed_document.getActiveUserPreference() preference = traversed_document.getActiveUserPreference()
if preference: if preference:
result_dict['_links']['active_preference'] = { result_dict['_links']['active_preference'] = {
...@@ -1998,7 +1991,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, ...@@ -1998,7 +1991,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
selection=catalog_kw['selection'], selection=catalog_kw['selection'],
selection_name=catalog_kw['selection_name'], selection_name=catalog_kw['selection_name'],
column_id=select) column_id=select)
except AttributeError as e: except AttributeError:
# In case the URL method is invalid or empty, we expect to have no link # In case the URL method is invalid or empty, we expect to have no link
# for the column to maintain compatibility with old UI, hence we create # for the column to maintain compatibility with old UI, hence we create
# an empty url_parameter_dict for these cases. # an empty url_parameter_dict for these cases.
...@@ -2019,7 +2012,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None, ...@@ -2019,7 +2012,7 @@ def calculateHateoas(is_portal=None, is_site_root=None, traversed_document=None,
) )
except (ConflictError, RuntimeError): except (ConflictError, RuntimeError):
raise raise
except: except Exception:
log('could not evaluate the url method getListItemUrlDict with %r' % brain, log('could not evaluate the url method getListItemUrlDict with %r' % brain,
level=800) level=800)
......
...@@ -2,7 +2,7 @@ from Products.CMFCore.WorkflowCore import WorkflowException ...@@ -2,7 +2,7 @@ from Products.CMFCore.WorkflowCore import WorkflowException
from Products.Formulator.Errors import FormValidationError from Products.Formulator.Errors import FormValidationError
from Products.DCWorkflow.DCWorkflow import ValidationFailed from Products.DCWorkflow.DCWorkflow import ValidationFailed
from Products.ERP5Type.Message import translateString from Products.ERP5Type.Message import translateString
from Products.ERP5Type.Log import log, WARNING from Products.ERP5Type.Log import WARNING
portal = context.getPortalObject() portal = context.getPortalObject()
request = REQUEST or context.REQUEST request = REQUEST or context.REQUEST
......
...@@ -140,20 +140,20 @@ def do_fake_request(request_method, headers=None, data=()): ...@@ -140,20 +140,20 @@ def do_fake_request(request_method, headers=None, data=()):
def replace_request(new_request, context): def replace_request(new_request, context):
base_chain = [aq_base(x) for x in context.aq_chain] base_chain = [aq_base(x) for x in context.aq_chain]
# Grab existig request (last chain item) and create a copy. # Grab existig request (last chain item) and create a copy.
request_container = base_chain.pop() request_container = base_chain.pop()
# request = request_container.REQUEST # request = request_container.REQUEST
setRequest(new_request) setRequest(new_request)
new_request_container = request_container.__class__(REQUEST=new_request) new_request_container = request_container.__class__(REQUEST=new_request)
# Recreate acquisition chain. # Recreate acquisition chain.
my_self = new_request_container my_self = new_request_container
base_chain.reverse() base_chain.reverse()
for item in base_chain: for item in base_chain:
my_self = item.__of__(my_self) my_self = item.__of__(my_self)
return my_self return my_self
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
...@@ -2151,7 +2151,7 @@ return context.getPortalObject().portal_catalog(portal_type='Foo', sort_on=[('id ...@@ -2151,7 +2151,7 @@ return context.getPortalObject().portal_catalog(portal_type='Foo', sort_on=[('id
# Create the listbox selection # Create the listbox selection
fake_request = do_fake_request("GET") fake_request = do_fake_request("GET")
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas( self.portal.web_site_module.hateoas.ERP5Document_getHateoas(
REQUEST=fake_request, REQUEST=fake_request,
mode="search", mode="search",
local_roles=["Manager"], local_roles=["Manager"],
......
...@@ -10,7 +10,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin): ...@@ -10,7 +10,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin):
def test_mode_root(self): def test_mode_root(self):
fake_request = do_fake_request("GET") fake_request = do_fake_request("GET")
self.logout() self.logout()
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request) self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request)
self.assertEquals(fake_request.RESPONSE.status, 401) self.assertEquals(fake_request.RESPONSE.status, 401)
self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'), self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'),
'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url() 'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url()
...@@ -25,7 +25,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin): ...@@ -25,7 +25,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin):
document_relative_url = self._makeDocument().getRelativeUrl() document_relative_url = self._makeDocument().getRelativeUrl()
fake_request = do_fake_request("GET") fake_request = do_fake_request("GET")
self.logout() self.logout()
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="traverse", relative_url=document_relative_url) self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="traverse", relative_url=document_relative_url)
self.assertEquals(fake_request.RESPONSE.status, 401) self.assertEquals(fake_request.RESPONSE.status, 401)
self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'), self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'),
'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url() 'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url()
...@@ -39,7 +39,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin): ...@@ -39,7 +39,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin):
def test_mode_search(self): def test_mode_search(self):
fake_request = do_fake_request("GET") fake_request = do_fake_request("GET")
self.logout() self.logout()
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="search") self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="search")
self.assertEquals(fake_request.RESPONSE.status, 401) self.assertEquals(fake_request.RESPONSE.status, 401)
self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'), self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'),
'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url() 'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url()
...@@ -53,7 +53,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin): ...@@ -53,7 +53,7 @@ class TestHalRestricted(ERP5HALJSONStyleSkinsMixin):
def test_mode_worklist(self): def test_mode_worklist(self):
fake_request = do_fake_request("GET") fake_request = do_fake_request("GET")
self.logout() self.logout()
result = self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="worklist") self.portal.web_site_module.hateoas.ERP5Document_getHateoas(REQUEST=fake_request, mode="worklist")
self.assertEquals(fake_request.RESPONSE.status, 401) self.assertEquals(fake_request.RESPONSE.status, 401)
self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'), self.assertEquals(fake_request.RESPONSE.getHeader('WWW-Authenticate'),
'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url() 'X-Delegate uri="%s/connection/login_form{?came_from}"' % self.portal.web_site_module.hateoas.absolute_url()
......
...@@ -100,24 +100,28 @@ ...@@ -100,24 +100,28 @@
</record> </record>
<record id="4" aka="AAAAAAAAAAQ="> <record id="4" aka="AAAAAAAAAAQ=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<list> <key> <string>_log</string> </key>
<dictionary> <value>
<item> <list>
<key> <string>action</string> </key> <dictionary>
<value> <string>validate</string> </value> <item>
</item> <key> <string>action</string> </key>
<item> <value> <string>validate</string> </value>
<key> <string>validation_state</string> </key> </item>
<value> <string>validated</string> </value> <item>
</item> <key> <string>validation_state</string> </key>
</dictionary> <value> <string>validated</string> </value>
</list> </item>
</tuple> </dictionary>
</list>
</value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
</ZopeData> </ZopeData>
...@@ -23,7 +23,7 @@ def getFieldRawProperties(field, meta_type=None, key=None, key_prefix=None): ...@@ -23,7 +23,7 @@ def getFieldRawProperties(field, meta_type=None, key=None, key_prefix=None):
gadget_field_patch = False gadget_field_patch = False
for key in field.values.keys(): for key in field.values.keys():
# sometimes, field.values returns a key as string and also as a tuple # sometimes, field.values returns a key as string and also as a tuple
if type(key) is str: if isinstance(key, str):
result["values"][key] = field.values[key] result["values"][key] = field.values[key]
if key == "columns": if key == "columns":
form_list_patch = True form_list_patch = True
......
...@@ -19,11 +19,11 @@ except KeyError: ...@@ -19,11 +19,11 @@ except KeyError:
return result_dict return result_dict
try: try:
encoded = name.replace("definition_view/", "", 1) encoded = name.replace("definition_view/", "", 1)
name = base64.decodestring(encoded) name = base64.decodestring(encoded)
base_64 = True base_64 = True
except binascii.Error: except binascii.Error:
pass pass
if name.startswith("definition_view/") or name.startswith("portal_types/") or base_64: if name.startswith("definition_view/") or name.startswith("portal_types/") or base_64:
relative_url = name.replace("%2F", "/").replace("%20", " ") relative_url = name.replace("%2F", "/").replace("%20", " ")
......
import re
import json import json
import base64 import base64
from datetime import datetime from datetime import datetime
...@@ -65,7 +64,7 @@ try: ...@@ -65,7 +64,7 @@ try:
app_action_string = app_action_string.replace('(', '[').replace(')', ']').replace(',]', ']').replace("'", '"') app_action_string = app_action_string.replace('(', '[').replace(')', ']').replace(',]', ']').replace("'", '"')
app_action_raw_list = json.loads(app_action_string) app_action_raw_list = json.loads(app_action_string)
for app_action in app_action_raw_list: for app_action in app_action_raw_list:
pair = app_action.split(" | "); pair = app_action.split(" | ")
if len(pair) != 2: if len(pair) != 2:
raise SyntaxError("Syntax error in app_action router setting") raise SyntaxError("Syntax error in app_action router setting")
app_action_list.append(pair) app_action_list.append(pair)
......
# Copyright (c) 2002-2017 Nexedi SA and Contributors. All Rights Reserved. # Copyright (c) 2002-2017 Nexedi SA and Contributors. All Rights Reserved.
from DateTime import DateTime
from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase from Products.ERP5Type.tests.ERP5TypeTestCase import ERP5TypeTestCase
from base64 import b64decode from base64 import b64decode
......
...@@ -100,24 +100,28 @@ ...@@ -100,24 +100,28 @@
</record> </record>
<record id="4" aka="AAAAAAAAAAQ="> <record id="4" aka="AAAAAAAAAAQ=">
<pickle> <pickle>
<global name="WorkflowHistoryList" module="Products.ERP5Type.patches.WorkflowTool"/> <global name="WorkflowHistoryList" module="Products.ERP5Type.Workflow"/>
</pickle> </pickle>
<pickle> <pickle>
<tuple> <dictionary>
<none/> <item>
<list> <key> <string>_log</string> </key>
<dictionary> <value>
<item> <list>
<key> <string>action</string> </key> <dictionary>
<value> <string>validate</string> </value> <item>
</item> <key> <string>action</string> </key>
<item> <value> <string>validate</string> </value>
<key> <string>validation_state</string> </key> </item>
<value> <string>validated</string> </value> <item>
</item> <key> <string>validation_state</string> </key>
</dictionary> <value> <string>validated</string> </value>
</list> </item>
</tuple> </dictionary>
</list>
</value>
</item>
</dictionary>
</pickle> </pickle>
</record> </record>
</ZopeData> </ZopeData>
return context.getFollowUpValue(portal_type="Web Section") return context.getFollowUpValue(portal_type="Web Section")
raise ValueError("Unimplemented")
# Define Reference from ID provided by portal_ids # Define Reference from ID provided by portal_ids
portal = context.getPortalObject() portal = context.getPortalObject()
type_definition = context.getTypeInfo()
# XXX Hardcoded # XXX Hardcoded
short_portal_type = "OSP" short_portal_type = "OSP"
......
...@@ -38,7 +38,7 @@ software_release = portal.software_release_module.newContent( ...@@ -38,7 +38,7 @@ software_release = portal.software_release_module.newContent(
) )
# Create Software Publication Line # Create Software Publication Line
software_publication_line = software_publication.newContent( software_publication.newContent(
portal_type="Software Publication Line", portal_type="Software Publication Line",
title=software_publication.getTitle() + " Publication", title=software_publication.getTitle() + " Publication",
aggregate_list=[software_release.getRelativeUrl(), software_product.getSaleSupplyLineAggregate()], aggregate_list=[software_release.getRelativeUrl(), software_product.getSaleSupplyLineAggregate()],
...@@ -46,7 +46,7 @@ software_publication_line = software_publication.newContent( ...@@ -46,7 +46,7 @@ software_publication_line = software_publication.newContent(
activate_kw={"tag": tag} activate_kw={"tag": tag}
) )
zip_file = software_publication.Base_contribute( software_publication.Base_contribute(
file=file, file=file,
attach_document_to_context=True, attach_document_to_context=True,
portal_type="File", portal_type="File",
......
REQUEST = context.REQUEST
RESPONSE = REQUEST.RESPONSE
software_release = context.SoftwarePublication_getRelatedSoftwareRelease() software_release = context.SoftwarePublication_getRelatedSoftwareRelease()
software_release.SoftwareRelease_publishRelatedWebDocument() software_release.SoftwareRelease_publishRelatedWebDocument()
message = context.getTitle() + " Published" message = context.getTitle() + " Published"
......
...@@ -54,8 +54,8 @@ if base: ...@@ -54,8 +54,8 @@ if base:
base += "/" base += "/"
base_length = len(base) base_length = len(base)
def extractWebManifest(file): def extractWebManifest(html_file):
html = context.Base_parseHtml(file) html = context.Base_parseHtml(html_file)
for tag in html: for tag in html:
if tag[0] == 'starttag' and tag[1] == 'link' and ('rel', 'manifest') in tag[2]: if tag[0] == 'starttag' and tag[1] == 'link' and ('rel', 'manifest') in tag[2]:
for attribute in tag[2]: for attribute in tag[2]:
......
portal = context.getPortalObject()
software_release = context software_release = context
software_product = context.getFollowUpValue(portal_type="Software Product") software_product = context.getFollowUpValue(portal_type="Software Product")
......
from random import randint
portal = context.getPortalObject() portal = context.getPortalObject()
# Get Software Product Object # Get Software Product Object
......
object = state_change['object'] obj = state_change['object']
object.Base_checkConsistency() obj.Base_checkConsistency()
from Products.ERP5Type.Message import translateString
portal = context.getPortalObject() portal = context.getPortalObject()
follow_up_value = portal.restrictedTraverse(follow_up) follow_up_value = portal.restrictedTraverse(follow_up)
assert follow_up_value.getPortalType() == "Support Request" assert follow_up_value.getPortalType() == "Support Request"
......
from zExceptions import Unauthorized
import json import json
absolute_url = context.absolute_url() absolute_url = context.absolute_url()
......
...@@ -3,15 +3,10 @@ import json ...@@ -3,15 +3,10 @@ import json
portal = context.getPortalObject() portal = context.getPortalObject()
Base_translateString = context.Base_translateString Base_translateString = context.Base_translateString
#(data-i18n)=["']{{((?:.(?!["']?(?:\S+)=|[>"']))+.)}}["'] #(data-i18n)=["']{{((?:.(?!["']?(?:\S+)=|[>"']))+.)}}["']
attribute_filter_re = re.compile(r"""(data-i18n)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?""") attribute_filter_re = re.compile(r"""(data-i18n)=["']?((?:.(?!["']?\s+(?:\S+)=|[>"']))+.)["']?""")
tmp_re = re.compile(r"""/[{}]/g, """"")
translate_word = [] translate_word = []
for web_page in portal.web_page_module.searchFolder(portal_type='Web Page', for web_page in portal.web_page_module.searchFolder(portal_type='Web Page',
......
appcache_file = context.getLayoutProperty("configuration_manifest_url", default="gadget_erp5.appcache") appcache_reference = context.getLayoutProperty("configuration_manifest_url", default="gadget_erp5.appcache")
text_content = context.getPortalObject().portal_catalog.getResultValue(
portal_type='Web Manifest',
reference=appcache_reference).getTextContent()
text_content = context.web_page_module.searchFolder( translation_data_url_list = []
portal_type= 'Web Manifest', url_list = []
reference = appcache_file)[0].getTextContent() for text_line in text_content.split('\n'):
text_line = text_line.split('/')[-1]
translation_data_file = [] if text_line.endswith('.html'):
file_list = [] url_list.append(text_line)
for file in text_content.split('\n'):
file = file.split('/')[-1]
if file.endswith('.html'):
file_list.append(file)
continue continue
if file.endswith('.js') and not only_html: if text_line.endswith('.js') and not only_html:
if file.endswith('translation_data.js'): if text_line.endswith('translation_data.js'):
translation_data_file = [file] translation_data_url_list = [text_line]
continue continue
file_list.append(file) url_list.append(text_line)
return translation_data_file + file_list return translation_data_url_list + url_list
...@@ -3,8 +3,8 @@ if REQUEST is None: ...@@ -3,8 +3,8 @@ if REQUEST is None:
if response is None: if response is None:
response = REQUEST.RESPONSE response = REQUEST.RESPONSE
file = context file_document = context
file_content = file.getData() file_content = file_document.getData()
# The vanilla HTML is wanted # The vanilla HTML is wanted
response.setBase(None) response.setBase(None)
...@@ -12,7 +12,7 @@ response.setBase(None) ...@@ -12,7 +12,7 @@ response.setBase(None)
# Allow any external app to download the source code # Allow any external app to download the source code
response.setHeader("Access-Control-Allow-Origin", "*") response.setHeader("Access-Control-Allow-Origin", "*")
if REQUEST.getHeader('If-Modified-Since', '') == file.getModificationDate().rfc822(): if REQUEST.getHeader('If-Modified-Since', '') == file_document.getModificationDate().rfc822():
response.setStatus(304) response.setStatus(304)
return "" return ""
...@@ -20,6 +20,6 @@ if REQUEST.getHeader('If-Modified-Since', '') == file.getModificationDate().rfc8 ...@@ -20,6 +20,6 @@ if REQUEST.getHeader('If-Modified-Since', '') == file.getModificationDate().rfc8
#if file_content_type is None: #if file_content_type is None:
# file_content_type = 'application/octet-stream' # file_content_type = 'application/octet-stream'
response.setHeader('Content-Type', (file.getContentType() or 'application/octet-stream')) response.setHeader('Content-Type', (file_document.getContentType() or 'application/octet-stream'))
return file_content return file_content
...@@ -89,6 +89,6 @@ else: ...@@ -89,6 +89,6 @@ else:
background-attachment: fixed; background-attachment: fixed;
background-image: url("%s"); background-image: url("%s");
} }
""" % wallpaper_url); """ % wallpaper_url)
return view_as_web_method(mapping_dict=mapping_dict) return view_as_web_method(mapping_dict=mapping_dict)
""" """
Default logout handler, overwritten to give website specific portal status message. Default logout handler, overwritten to give website specific portal status message.
""" """
website = context.getWebSiteValue()
REQUEST = context.REQUEST REQUEST = context.REQUEST
if REQUEST.has_key('portal_skin'): if REQUEST.has_key('portal_skin'):
context.portal_skins.clearSkinCookie() context.portal_skins.clearSkinCookie()
......
alpha = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ' alpha = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
new_password = ''.join([random.choice(alpha) for i in range(10)]) new_password = ''.join([random.choice(alpha) for _ in range(10)])
person_module = context.getPortalObject().person_module person_module = context.getPortalObject().person_module
user_id = "user_a_test" user_id = "user_a_test"
......
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