- 15 Oct, 2024 8 commits
-
-
Jérome Perrin authored
* Zope API changes: + publish(): - stdin is now BytesIO rather than StringIO. - Returned value of a script is passed to str() in python2, not in python3 anymore. + HTTPResponse `body` property is now bytes(). + OFS.Image.File file parameter is bytes(). + zope.interface implements() is now @implementer decorator. + Python standard logging module recommended instead of zLOG. * Python3 API changes: + builtin reduce() was removed. + urlnorm is now available. + Use BytesIO rather than StringIO to follow py3 API. + hmac.new() requires digestmod argument from Python 3.8. + Use six.moves library to handle moved objects from py2 to py3. + `modernize -f xrange_six` then slightly adjusted manually to just use range where it does not make a significant difference (for example in test). + base64.b64encode() now expects bytes(). + UserDict() interface changed: - New parameter in update() and pop(). - `failobj` setdefault parameter renamed to `default`. + ensure_list() on dict.{values,items}() and list(dict) for dict.keys() when we really need a list and not an iterable (Python3). + Make dict iteration works on both version of Python. - Use six.iter{items,values,keys}(). - has_key() has been removed. - Make sure that dict.{items,values,keys}() returns a real list when modified (ensure_list()). + Comparisons between int and NoneType raises TypeError. + BTrees key must be str() not int() (_getOb()). + No more unbound methods in python3 so use six.get_unbound_function(). + Exceptions: - No longer behave as sequences. Using `args` attribute instead. - When an exception has been assigned using `as target`, it is cleared at the end of the except clause. + file: py2 was returning `str` upon reading, now it returns text strings. Also, opening mode is text strings by default. + Data strings are bytes(). - Replace str() by bytes(). + iterators no longer have next() method, instead there is next() builtin. + New ConnectionError exception so rename existing one to not clash. + Integer division is now with //. + __nonzero__ is now __bool__. + apply() does not exist anymore. + Deprecated threading.Thread isAlive() has been removed. + im_func replaced by __func__. + Use six.with_metaclass() to define metaclass in a cross-compatible way with py2 and py3. + Only test method can be marked as expectedFailure(), not assert statement anymore. + os.path.walk() removed. + HTMLParser never fails: no strict mode nor HTMLParseError anymore (Python #15114). + Unpickler.find_global() is now Unpickler.find_class(). Co-Authored-by: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com> Co-Authored-by: Arnaud Fontaine <arnaud.fontaine@nexedi.com> Co-Authored-by: Carlos Ramos Carreño <carlos.ramos@nexedi.com> Co-Authored-by: Emmeline Vouriot <emmeline.vouriot@nexedi.com>
-
Jérome Perrin authored
-
Jérome Perrin authored
Some conversion (TextDocument) depend on the content type, so it's necessary to first update the content type before trying to convert to base format.
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
Transform: Show better traceback on debugging failure of transform module import (nexedi/erp5!1751).
-
Arnaud Fontaine authored
zope5: Since 5.8.1 missing Content-Type HTTP header is interpreted as application/x-www-form-urlencoded (nexedi/erp5!1751). Zope.git: commit 5b324f6c461f5ea1cc069739b6c32a1a5ff59df9 Date: Thu Jan 19 07:15:18 2023 +0100 replace `cgi.FieldStorage` by `multipart` (#1094) * interpret a missing `CONTENT_TYPE` as `application/x-www-form-urlencoded` With cgi.FieldStorage, it was interpretated as text/plain so Content-Type has to be provided now (even for WebDAV despite RFC 4918 stating that it *SHOULD* be provided). Some Unit Tests did not provide such header at all but this was wrong (such as erp5_stripe:testStripe where the real request has application/json as Content-Type and not text/plain).
-
Nicolas Wavrant authored
-
- 14 Oct, 2024 6 commits
-
-
Nicolas Wavrant authored
See merge request nexedi/erp5!1988
-
Nicolas Wavrant authored
to test the translation of the editor's "Maximize" button
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
Notably showned as a companion of the editor gadget
-
- 02 Oct, 2024 1 commit
-
-
Jérome Perrin authored
The workflow method transitions were configured to use a different guard from the user action transitions. "Manager bypass" was not set
-
- 01 Oct, 2024 1 commit
-
-
Kazuhiko Shiozaki authored
The default character_set_system is utf8mb3 (>= MariaDB 10.6), utf8 (<= MariaDB 10.5).
-
- 30 Sep, 2024 1 commit
-
-
Roque authored
-
- 27 Sep, 2024 5 commits
-
-
Roque authored
See merge request nexedi/erp5!1977
-
Roque authored
- app does not manipulate data structure anymore (jio does) - use union storage for multiple masters - remote slapos masters fetch is done in replicateopml storage repair method - sync repair method recreates the storage on new master urls, and updates the stored objects accordingly - add erp5monitor layer in monitoring jio storage
-
Roque authored
- add notify parameters on controller - fix form_view custom submit handling
-
Kazuhiko Shiozaki authored
erp5_core: reindex recursively only if indexable children type exists in Base_reindexObjectSecurity. This is important especially for SyncML Subscription having tons of SyncML Signatures that is non-indexable. Note: first I tried the change in the restricted python only like : --- product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_reindexObjectSecurity.py +++ product/ERP5/bootstrap/erp5_core/SkinTemplateItem/portal_skins/erp5_core/Base_reindexObjectSecurity.py @@ -4,7 +4,8 @@ # with lots of content could mean hours of non-usable overloaded system. type_tool = context.getPortalObject().portal_types for portal_type_name in context.getTypeInfo().getTypeAllowedContentTypeList(): - if getattr(type_tool, portal_type_name).getTypeAcquireLocalRole(): + if getattr(type_tool, portal_type_name).getTypeAcquireLocalRole() and \ + type_tool.getPortalTypeClass(portal_type_name).isIndexable(): reindex = context.recursiveReindexObject break else: but I got the following exception : File "Script (Python)", line 8, in Base_reindexObjectSecurity type_tool.getPortalTypeClass(portal_type_name).isIndexable(): File "/(SR)/eggs/AccessControl-4.4-py2.7-linux-x86_64.egg/AccessControl/users.py", line 179, in allowed if self._check_context(object): File "/(SR)/parts/erp5/product/ERP5Type/patches/AccessControl_patch.py", line 44, in _check_context return aq_inContextOf(getattr(object, '__self__', object), context, 1) TypeError: unbound method _aq_dynamic() must be called with Address instance as first argument (got str instance instead)
-
Georgios Dagkakis authored
Plus, remove the duplicate of 'text-align'
-
- 26 Sep, 2024 1 commit
-
-
Jérome Perrin authored
This is follow up of commit 0000dee0 (erp5_core: update mimetypes_registry with shared-mime-info_2.4-5 and media-types_10.1.0., 2024-09-17), after this change, Products.MimetypesRegistry build regular expressions with fnmatch.translate, which on python2 produces regular expressions like: >>> fnmatch.translate('*.aaa') '.*\\.aaa\\Z(?ms) such expressions cause a warning in python3: >>> re.compile('.*\\.aaa\\Z(?ms)') ... re.error: global flags not at the start of the expression at position 9 Running this on python3 would be incompatible with python2, because `fnmatch.translate` on python3 generates regular expressions that are not valid on python2. To solve this mimetypes_registry.xml was edited by hand to move the flags at the beginning, replacing for example '.*\\.aaa\\Z(?ms)' by '(?ms).*\\.aaa\\Z'
-
- 25 Sep, 2024 1 commit
-
-
Nicolas Wavrant authored
The ssl/x509 were renamed after we decided to change the name of the holding property sheet during the code review. The code was updated, but not this form
-
- 24 Sep, 2024 3 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
- 23 Sep, 2024 12 commits
-
-
Rafael Monnerat authored
Otherwise it gets other unrelated objects from a full text search
-
Jérome Perrin authored
This is tested in test_14_multiple_workflow_different_permission_roles
-
Nicolas Wavrant authored
See merge request !1982
-
Vincent Pelletier authored
Otherwise https://example.com/foo would match https://example.com/ but not the language-selector https://example.com/en/
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
and not as manager, as some scripts in the workflow have proxy roles, so it would be nice to test them too.
-
Nicolas Wavrant authored
The CA certificate can be stored on the connector (it is obtained from the clammit instance).
-
Nicolas Wavrant authored
To store properties related to x509 certificates, used for exemple in TLS connections
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
-
Nicolas Wavrant authored
When commiting from ERP5, they are always alphabetically ordered. So commit the list of property sheets ordered alphabetically to ease to decrease the number of diffs when commiting from ERP5.
-
- 20 Sep, 2024 1 commit
-
-
Kazuhiko Shiozaki authored
-