- 18 Nov, 2021 1 commit
-
-
Xiaowu Zhang authored
we have such error: .... if context.getValidationState() in ["draft", "deleted", "cancelled", "archived"]: Module Products.ERP5Type.Accessor.WorkflowState, line 60, in __call__ return wf._getWorkflowStateOf(instance, id_only=1) Module Products.ERP5Type.Core.Workflow, line 609, in _getWorkflowStateOf state_id = 'state_' + status.get(self.getStateVariable(), None) TypeError: cannot concatenate 'str' and 'NoneType' objects
-
- 17 Nov, 2021 1 commit
-
-
Jérome Perrin authored
This stopped working long time ago, probably with slapos commit aa102f28f (erp5testnode: use newer shellinabox, with a caddy frontend, 2018-09-21)
-
- 16 Nov, 2021 1 commit
-
-
Roque authored
-
- 15 Nov, 2021 1 commit
-
-
Romain Courteaud authored
See merge request !1504
-
- 12 Nov, 2021 2 commits
-
-
Roque authored
- 10 Nov, 2021 1 commit
-
-
Romain Courteaud authored
-
- 09 Nov, 2021 4 commits
-
-
Jérome Perrin authored
using parallel list fields cause HTML to be very big and is not good for usability, because we typically select a lot of values in these fields.
-
Jérome Perrin authored
This can sometimes be useful during development
-
Jérome Perrin authored
-
Jérome Perrin authored
-
- 08 Nov, 2021 2 commits
-
-
Xiaowu Zhang authored
See merge request !1502
-
Jérome Perrin authored
ERP5ReportTestCase also import ERP5TypeTestCase, so if we reload it it patches again getRequest to a function calling itself and causing RecursionError.
-
- 04 Nov, 2021 3 commits
-
-
Roque authored
See merge request nexedi/erp5!1505
-
Roque authored
-
Xiaowu Zhang authored
If ignore_layout=1 is present in url query, static web section show the default view so user can modify properties But for url like https://erp5/web_site_module/static_web_site/web_page_module/111?ignore_layout:int=1&portal_skin=Slide... static web section should do redirection instead of showing the default view It's difficult to distinguish if it should do redirection or show the default view for all kinds of url To make it simple, if portal_skin is present in url query, static web section will do redirection event if ignore_layout is present
-
- 02 Nov, 2021 1 commit
-
-
Xiaowu Zhang authored
-
- 27 Oct, 2021 1 commit
-
-
Julien Muchembled authored
-
- 26 Oct, 2021 4 commits
-
-
Rafael Monnerat authored
See merge request nexedi/erp5!1486
-
Tatuya Kamada authored
See merge request nexedi/erp5!1498
-
Tatuya Kamada authored
Double translation happened when: - For sql_catalog.isValidColumn(name) - When search_columns is empty - When selection_sort_order and sort_columns are empty So delaying translation on column titles until *_column_list are finalised.
-
Tatuya Kamada authored
Before this fix, double translation on Sale Order title was happened every time displaying a Sale Order Line, for example.
-
- 25 Oct, 2021 1 commit
-
-
Romain Courteaud authored
-
- 22 Oct, 2021 6 commits
-
-
Jérome Perrin authored
Category spreadsheet import did not delete categories if some documents where related to these categories. While this may make sense when using this import in site with already some data, in many cases, we want to be able to delete the categories, so that the result is that the category tree match the imported spreadsheet. This extend the dialog to support a new "force delete" mode that delete categories even if they are use, leaving the documents using categories with broken relations.
-
Vincent Pelletier authored
Spotted when comparing this code with ZPublisher.Publish.
-
Vincent Pelletier authored
Once a response has been written to, the status and headers are supposed to have been sent over the network. So any future change to them is moot. Likewise, setBody does nothing: only write can continue appending to the existing body. As in the case of WSGI the response does not actually get sent just yet: - lock the body - store finalize() result Also, make the order in which body and stdout are returned consistent with HTTPResponse: body is returned first (as part of HTTPResponse.write's call to self.outputBody, which calls self.__str__, which emits body), and then stdout content. Also, add support for cases whre the existing body is a file or an IUnboundStreamIterator.
-
Vincent Pelletier authored
err_hook may re-raise when it is specifically told not to render an error page. Such exception does not mean err_hook failed, so it should not be re-raised by WSGIPublisher: re-raising in WSGIPublisher means handing the exception over to waitress, which will have no other choice than producing a generic error page that we have no control over.
-
Vincent Pelletier authored
Transaction must be aborted even if the state is getting so bad that the exception is being re-raised. Leaving an open-ended transaction is never acceptable.
-
Vincent Pelletier authored
MariaDB seems to be using inconsistent lock acquisition order when executing the activity reservation queries. As a consequence, it produces internal deadlocks, which it detects. Upon detection, it kills one of the involved query, which causes message reservation to fail, despite the presence of executable activities. To avoid depending on MariaDB internal lock acquisition order, acquire an explicit table-scoped lock before running the activity reservation queries. On an otherwise-idle 31 processing node cluster with the following activities spawned, designed to stress activity reservation queries (many ultra-short activities being executed one at a time): active_getTitle = context.getPortalObject().portal_catalog.activate( activity='SQLQueue', priority=5, tag='foo', ).getTitle for _ in xrange(40000): active_getTitle() the results are: - a 26% shorter activity execution time: from 206s with the original code to 152s - a 100% reduction in reported deadlocks from 300 with the original code to 0 There is room for further improvements at a later time: - tweaking the amount of time spent waiting for this new lock to be available, set for now at 1s. - possibly bypassing this lock altogether when there are too few processing nodes simultaneously enabled, or even in an adaptive reaction to deadlock errors actually happening. - cover more write accesses to these tables with the same lock From a production environment, it appears that the getReservedMessageList method alone is involved in 95% of these deadlocks, so for now this change only targets this method.
-
- 18 Oct, 2021 2 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
testRestrictedPythonSecurity imports *_black_list variables.
-
- 15 Oct, 2021 3 commits
-
-
Julien Muchembled authored
-
Julien Muchembled authored
- start supporting newer astroid (untested) - lxml so files can be installed with names like 'builder.x86_64-linux-gnu.so'
-
Julien Muchembled authored
This fixes commit ea53f23e. See also commit d4f6a2cb.
-
- 14 Oct, 2021 1 commit
-
-
Julien Muchembled authored
This fixes commit ea53f23e: ERROR Application Couldn't install ERP5Type Traceback (most recent call last): File "OFS/Application.py", line 691, in install_product initmethod(context) File "Products/ERP5Type/__init__.py", line 141, in initialize initializeProductDocumentRegistry() File "Products/ERP5Type/InitGenerator.py", line 62, in initializeProductDocumentRegistry importLocalDocument(class_id, class_path=class_path) File "Products/ERP5Type/Utils.py", line 994, in importLocalDocument module = __import__(module_path, {}, {}, (module_path,)) File "Products/ERP5/Document/ExternalMethod.py", line 38, in <module> class ExternalMethod(XMLObject, ZopeExternalMethod, ExpressionMixin): TypeError: Error when calling the metaclass bases metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases What happened is that the API of ExpressionMixin changed in commit df85ef46 and the backward compatibility code (product/ERP5/mixin/expression.py) was broken. Also fix 'filter' tab on in the catalog. See also commit 6ad56d89.
-
- 12 Oct, 2021 2 commits
-
-
Julien Muchembled authored
-
Nicolas Wavrant authored
-
- 11 Oct, 2021 2 commits
-
-
Romain Courteaud authored
-
Romain Courteaud authored
-
- 07 Oct, 2021 1 commit
-
-
Jérome Perrin authored
Quantity unit was not defined in default supply property sheet, so the fields were created local properties, because the accessors were not existant. This change make the accessors for quantity unit on default supply lines generated. The implementation details is that it replaces priced_quantity, which was defined twice
-