- 31 Aug, 2024 6 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). - Add ensure_list() to RestrictedPython safe_builtins as it's very common usage. + 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. + 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. Co-Authored-by: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com> Arnaud Fontaine <arnaud.fontaine@nexedi.com> Carlos Ramos Carreño <carlos.ramos@nexedi.com> 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
Use scrubHTML() from safe_html module instead.
-
- 30 Aug, 2024 2 commits
-
-
Jérome Perrin authored
-
Jérome Perrin authored
It was using bytes(), but this seems wrong now.
-
- 28 Aug, 2024 1 commit
-
-
Arnaud Fontaine authored
-
- 27 Aug, 2024 1 commit
-
-
Arnaud Fontaine authored
a17bb910: py2/py3: Make Products code compatible with both python2 and python3.
-
- 26 Aug, 2024 4 commits
-
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
-
Kazuhiko Shiozaki authored
erp5_syncml: invoke callback method by activity in non split_indexation case as well to make transaction shorter.
-
Kazuhiko Shiozaki authored
-
- 16 Aug, 2024 1 commit
-
-
Romain Courteaud authored
Use the removeProperty method.
-
- 14 Aug, 2024 1 commit
-
-
Jérome Perrin authored
This executes even if setup() encounters an error and the cleanup hook is added when opening the file, not later on. Also, unify makeFileUpload() and makeFilePath() to remove duplicated code. Co-authored-by: Arnaud Fontaine <arnaud.fontaine@nexedi.com>
-
- 13 Aug, 2024 1 commit
-
-
Jérome Perrin authored
See merge request !1979
-
- 12 Aug, 2024 2 commits
-
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
-
- 07 Aug, 2024 2 commits
-
-
Arnaud Fontaine authored
- {'destination_list': ['person_module/he', 'person_module/me'], + {'destination_list': ['person_module/me', 'person_module/he'],
-
Arnaud Fontaine authored
-
- 06 Aug, 2024 1 commit
-
-
Kazuhiko Shiozaki authored
-
- 02 Aug, 2024 2 commits
-
-
Jérome Perrin authored
-
Arnaud Fontaine authored
-
- 01 Aug, 2024 4 commits
-
-
Rafael Monnerat authored
See merge request !1963
-
Rafael Monnerat authored
-
Rafael Monnerat authored
The script is supposed to be called on portal context (or any context) and not on MailevaSOAPConnector, and it should return a MailevaSOAPConnector for a given reference.
-
Rafael Monnerat authored
In the implementation where the user cannot directly insert holidays (by an specialised role/implementation) it allow the accountant insert the values more easily. Using a simple action. Add simple jump for navigate to the holidays/leave This helps to review value on the print out
-
- 30 Jul, 2024 1 commit
-
-
Léo-Paul Géneau authored
See merge request !1959
-
- 29 Jul, 2024 4 commits
-
-
Léo-Paul Géneau authored
Fix UI tests error introduced by f159d4f2. As it checks for timeout, simulation finished state cannot be reached anymore.
-
Léo-Paul Géneau authored
-
Léo-Paul Géneau authored
-
Léo-Paul Géneau authored
Fix projection by not making a square map from non square limits (width != depth). This way rotation does not result anymore in deformed shapes (it was the case until now because proportionality was not respected between width and depth).
-
- 25 Jul, 2024 2 commits
-
-
Arnaud Fontaine authored
Fix typo (cbe50b0f): erp5_accounting_l10n_fr: the French Fiscal Report (FEC) can be generated for different ledgers.
-
Nicolas Wavrant authored
WebSection.getDocumentValueList() returns absolutely all the documents (as catalog brains) reachable by the web section. Then, calling .getUid() on them load all the objects in memory. The number of documents is of the order of hundreds, even on a small ERP5 (web pages, web scripts, etc.). Limit the documents to retrieve in WebSection_getLatestDiscussionPostList by filtering on the portal_type, and do not load them needlessly in memory.
-
- 23 Jul, 2024 2 commits
-
-
Rafael Monnerat authored
This aims to add compatibility with BTreeFolder2 API, even it is not required. Since some checkConsistency may call self._cleanup() regardless expecting that the folder is a [H]BTreeFolder2 always. This was detected when a post upgrade constrant was included to portal_categories
-
Jérome Perrin authored
The methods used in indexing did not make a difference between the case where the price is None (ie. price is not set) or where the price is set to 0 - in both cases this was saved as NULL in stock.total_price column. This is incorrect, we need to keep the distinction between these two cases also for inventory calculation. We had some places where we select IFNULL(stock.total_price, 0) to work around this, we don't plan to change the existing ones for now, but while discussing on nexedi/erp5!1974 we concluded that a newly idenfified case of a problem consequence of these NULL should be handled by fixing the indexation. To benefit from the fix, impacted instances will have to reindex documents present in the stock table with stock.total_price is null.
-
- 21 Jul, 2024 2 commits
-
-
Jérome Perrin authored
The ad-hoc handling of boolean in protocol 1 was not implemented correctly and they were serialized as integers (0 for False and 1 for True), this fixes the export code and re-export everything
-
Jérome Perrin authored
With these changes, we are able to install py2 business templates on py3, but export is slightly different, because we already export using pickle protocol 3 on py3. To be able to install py2 business templates, we included heuristics to guess the str or bytes from business template XML: oids are bytes and also some strings that do not decode to UTF-8, so that we can install python2 business templates on py3. When exporting business templates, we need to build a list of referenced persistent objects to export them separately in the XML, this is is done using Unpickler.noload, in a way which does not support pickle protocol 1 on py3 (the persistent ids are None and the assertion in https://github.com/zopefoundation/ZODB/blob/d698507bb89eeb38c6e655199bc9f54c909dbf4d/src/ZODB/serialize.py#L669 fails), so we need to use pickle protocol 3 on py3. In the future, we might switch to exporting on protocol 3 on py2 as well so that we have stable output on both py2 and py3, or maybe we'll do this only when we stop supporting py2.
-
- 18 Jul, 2024 1 commit
-
-
Nicolas Wavrant authored
-