- 15 Nov, 2019 2 commits
-
-
Jérome Perrin authored
Introduce something similar to "cache cookie", but more suitable for preferences that depend both on the site configuration and user preferences. We store for each user a value in _preference_cache and we modify this value each time user change his user preference. This value is then used part of the a cache key. The same mechanism happen with a global value for site and group preferences. See _getCacheId docstring for more details. This way, when one user modify their preference this does not reset cache for every user. Because we have proper invalidation, increase the case duration by using erp5_ui_short instead of erp5_ui_long This is applied to both preference methods and to templates documents inside preferences. test_system_preference_value_prefererred_clear_cache_disabled is updated to use another preference name, because it was same as in a previous test, so that we don't have test isolation problems.
-
Jérome Perrin authored
When we use preference.edit(preferred_something=something_else) the cache was cleared, because there is an interaction on _edit, but when we do preference.setPreferredSomething(something_else) cache was not cleared. This still have a problem cache is cleared too much but at least it eliminates this incorrect behavior. Update tests at the same time: - testEditorField,testAuthenticationPolicy: no need to clear cache, it's now done automatically. - testUpgrader: the workflow chain of preference changed. This test is asserting the actual workflow chain, so we have to update the test everytime workflow chain is modified.
-
- 14 Nov, 2019 6 commits
-
-
Jérome Perrin authored
when erp5_authentication_policy is installed, a cached method is used, when it's not installed we just return False. We don't need to wrap this in another level of cache.
-
Jérome Perrin authored
preferences are based on catalog, it's required to tic() before a new activated preference is effective. This test was working by chance.
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
ZODB Components: PortalTransforms: No need to reload() 'erp5.' dynamic modules as this done through reset.
-
Arnaud Fontaine authored
Calling manage_reloadAllTransforms was raising KeyError.
-
Arnaud Fontaine authored
ZODB Components: image_to_{bmp,pcx} have already been migrated but the filesystem modules still existed. You may have to either restart your instance or call portal_transforms/manage_reloadAllTransforms for this change to take effect.
-
- 13 Nov, 2019 2 commits
-
-
Julien Muchembled authored
This is a mirror of the late import of getCurrentNode within product/ERP5Type/Core/Folder.py Both are required depending on which module is imported first.
-
Julien Muchembled authored
This reverts commit 0af3e8f6. This is not required anymore since ERP5Type.PropertySheet is a dynamic module (commit 9ddcbfc1).
-
- 12 Nov, 2019 3 commits
-
-
Jérome Perrin authored
from a41f71c3 : > Remove the TALES for lines, columns and tab on the matrix box because > the default behavior is to call this updateCellRange script that's not true, we have to list the asCellRange script explicitly.
-
Arnaud Fontaine authored
ZODB Components: ModuleSecurityInfo() should also apply to the alias module, not only to the versioned one. This fixes an Unauthorized error when GitLoginError is imported from erp5.component.module.Git defining ModuleSecurityInfo() for __name__ (erp5.component.module.erp5_version.Git). Note that when migrating the content of a Product, ModuleSecurityInfo() first parameter must be __name__. Traceback (innermost last): [...] Module script, line 1, in BusinessTemplate_handleException - <PythonScript at /erp5/BusinessTemplate_handleException used for /erp5/portal_templates/832> - Line 1 from erp5.component.module.Git import GitLoginError Module Products.ERP5Type.patches.Restricted, line 305, in guarded_import return orig_guarded_import(mname, globals, locals, fromlist, level) Module AccessControl.ZopeGuards, line 305, in guarded_import raise Unauthorized("import of '%s' is unauthorized" % mname) Unauthorized: import of 'erp5.component.module.Git' is unauthorized
-
Arnaud Fontaine authored
ZODB Components: Alias module was not added to sys.modules if the module it points to had already been loaded before.
-
- 11 Nov, 2019 1 commit
-
-
Roque authored
- revert parallel gadget loading - minor refactoring on appcache storage creation
-
- 08 Nov, 2019 6 commits
-
-
Roque authored
-
Roque authored
-
Roque authored
-
Roque authored
-
Roque authored
- new skin folder with project quick view form, scripts and gadgets - front page redirects to custom project module
-
Jérome Perrin authored
with namedtuples and unicode literals enabled, our patch break with: Module py2stdlib, line 266, in infer_named_tuple ''' % {'name': name, 'fields': attributes}) Module Products.ERP5Type.patches.pylint, line 74, in string_build encoding = _guess_encoding(data) Module astroid.builder, line 65, in _guess_encoding if string.startswith('\xef\xbb\xbf'): UnicodeDecodeError: 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128) because pylint/astroid uses string_build to evaluate the named tuple and the source code enabled unicode_literals future, string_build is called with an unicode object. -> for inferred in node.func.infer(): astroid-1.3.8-py2.7.egg/astroid/bases.py(391)infer() -> return self._explicit_inference(self, context, **kwargs) astroid-1.3.8-py2.7.egg/astroid/brain/py2stdlib.py(266)infer_named_tuple() -> ''' % {'name': name, 'fields': attributes}) > erp5/product/ERP5Type/patches/pylint.py(77)string_build() -> data = data.encode('utf-8') (Pdb) up > astroid-1.3.8-py2.7.egg/astroid/brain/py2stdlib.py(266)infer_named_tuple() -> ''' % {'name': name, 'fields': attributes}) (Pdb) l 249 def infer_named_tuple(node, context=None): 250 """Specific inference function for namedtuple CallFunc node""" 251 class_node, name, attributes = infer_func_form(node, nodes.Tuple._proxied, 252 context=context) 253 fake = AstroidBuilder(MANAGER).string_build(''' 254 class %(name)s(tuple): 255 _fields = %(fields)r 256 def _asdict(self): 257 return self.__dict__ 258 @classmethod 259 def _make(cls, iterable, new=tuple.__new__, len=len): 260 return new(cls, iterable) 261 def _replace(_self, **kwds): 262 result = _self._make(map(kwds.pop, %(fields)r, _self)) 263 if kwds: 264 raise ValueError('Got unexpected field names: %%r' %% list(kwds)) 265 return result 266 -> ''' % {'name': name, 'fields': attributes}) (Pdb) pp name u'NamedTuple' (Pdb) pp attributes [u'foo', u'bar'] (Pdb) pp [ (arg, arg.value) for arg in node.args ] [(<Const(unicode) l.4 [checkPythonSourceCodelXOzr3] at 0x7f9f1caee250>, u'NamedTuple'), (<Const(unicode) l.4 [checkPythonSourceCodelXOzr3] at 0x7f9f1caeebd0>, u'foo bar')] /reviewed-on nexedi/erp5!978
-
- 07 Nov, 2019 7 commits
-
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Vincent Pelletier authored
To avoid duplicating _processSearchValue.
-
Vincent Pelletier authored
Scriptable keys are already handled by other branches below. If one wants to provide a string or dict value to a scriptable key, they need to wrap it into another type to disable catalog processing of these values.
-
Vincent Pelletier authored
-
Vincent Pelletier authored
Also, add a missing ignore_unknown_columns parameter.
-
Vincent Pelletier authored
These are only accessed within methods which are not reachable from this SearckKey type, so this was essentially dead code.
-
- 06 Nov, 2019 3 commits
-
-
Jérome Perrin authored
This allow using measure.updateCellRange to create varianted measures programmatically. Remove the TALES for lines, columns and tab on the matrix box because the default behavior is to call this updateCellRange script /reviewed-on nexedi/erp5!974
-
Vincent Pelletier authored
-
Vincent Pelletier authored
As was initially intended, but visible a directory level got lost in an intermediate patch file.
-
- 05 Nov, 2019 1 commit
-
-
Romain Courteaud authored
-
- 31 Oct, 2019 9 commits
-
-
Arnaud Fontaine authored
* This didn't work anyway with concurrent processes using the same SVN working copy (which is a frequent use case nowadays). * Now that it has been migrated to ZODB Components, this also breaks on reset: 1) Thread T1 acquires the lock. 2) Thread T2 performs a reset. 3) Thread T2 loads Subversion and thus a new RLock instance is created. => T2 can acquire the lock.
-
Arnaud Fontaine authored
Moved 'git_askpass' shell script to product/ERP5/bin (considering that this is a very short shell script which hasn't changed in 7 years, no need to move it to the ZODB which would require creating a temporary file...). After updating erp5_forge, you should delete 'product/ERP5VCS/' directory as this will only contain '.pyc' files. /reviewed-on nexedi/erp5!973
-
Romain Courteaud authored
-
Bryton Lacquement authored
This fixes the issue that a truncated traceback followed the json.
-
Bryton Lacquement authored
This is a backport from Zope (see commit 9c8dd7672cbef67573b3641178f12337c80de074).
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
-