- 07 Nov, 2024 21 commits
-
-
Romain Courteaud authored
-
Romain Courteaud authored
This reverts commit e50d05af.
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
Do not access form submission REQUEST from the listbox list method, as it is rendered asynchronously in ERP5JS
-
Romain Courteaud authored
-
Romain Courteaud authored
Allow edition in the new UI
-
Romain Courteaud authored
-
Romain Courteaud authored
This make everything slow as hell and prevent to quickly save.
-
Romain Courteaud authored
Example: <h2 class="foo">bar</h2> => <h3 class="foo">bar</h3>
-
Romain Courteaud authored
-
Romain Courteaud authored
erp5_web_renderjs_ui: keep previous focus color
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Romain Courteaud authored
Set the max-age value to 4h instead of 10min for the one-day-max policy (ie, 24h/6, like one-hour-max uses 10min max age). The idea is to reduce backend access of nearly static web sites, while still allowing changes without waiting for too long before it is propagated.
-
Romain Courteaud authored
If user group are recalculated before changing the workflow state, it will only return the same security group See nexedi/erp5@c00c3636
-
Romain Courteaud authored
-
Romain Courteaud authored
-
- 30 Oct, 2024 1 commit
-
-
Rafael Monnerat authored
Don't add to total_contribution_relief if employer price is not set (None).
-
- 29 Oct, 2024 1 commit
-
-
Jérome Perrin authored
It was not running because we had two methods with same name
-
- 28 Oct, 2024 1 commit
-
-
Jérome Perrin authored
This reverts commit 5e21f77f. This was done too quickly based on a wrong assumption that simulation movements to build would always be in planned state and that we could have an efficient way of selecting them by catalog with index on portal_type and simulation state, but it does not work this way. Maybe the change is useful for something else, but since we don't have any use case for now, let's just revert.
-
- 25 Oct, 2024 1 commit
-
-
Jérome Perrin authored
See merge request nexedi/erp5!2001
-
- 24 Oct, 2024 7 commits
-
-
Jérome Perrin authored
See merge request nexedi/erp5!2003
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
In 1b555dbf (py2/py3: Make Products code compatible with both python2 and python3 (nexedi/erp5!1751)., 2024-07-16) we changed the code in a way that on python2 it would first node text to a python2 str and only later convert it to unicode, but setting text to a str during the first step can fail with: ValueError: All strings must be XML compatible: Unicode or ASCII, no NULL bytes or control characters This change to set directly unicode on py2.
-
- 23 Oct, 2024 4 commits
-
-
Romain Courteaud authored
-
Jérome Perrin authored
and move the implementation of SimulationMovement.getSimulationState here. This makes it possible for rules to generate simulation movements that are not necessary planned.
-
Jérome Perrin authored
Applied rules must have a rule as specialise
-
Jérome Perrin authored
-
- 16 Oct, 2024 4 commits
-
-
Jérome Perrin authored
`sender@customer.com <sender@customer.com>` used in the test is not a valid email address. We have updated to python3.9.20 which comes with a fix for CVE-2023-27043 and no longer allow this kind of broken addresses. Replace the address with a similar valid address, `"sender@customer.com" <sender@customer.com>`, that was probably the original intention of this test.
-
Jérome Perrin authored
On python3, the type of selected columns depend on the data type from mariadb side, VARCHAR will be str, BINARY/BLOB will be bytes, etc These SQL method select path that is first evaluated from a variable that is NULL and in that case, mariadb seems to select LONGBLOB as data type: MariaDB [test]> set @defined_as_null=null; drop table if exists tmp; create table tmp as (select @defined_as_null); show create table tmp; +-------+------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-------+------------------------------------------------------------------------------------------------------------------------------------+ | tmp | CREATE TABLE `tmp` ( `@defined_as_null` longblob DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci | +-------+------------------------------------------------------------------------------------------------------------------------------------+ By casting to CHAR in SQL, on the python side we always have the str that we expect here, because this is used as path attribute of a SQL brain.
-
Jérome Perrin authored
-
Jérome Perrin authored
This is similar to 18deb716 (ProcessingNodeTestCase: also setRequest in processing_node, 2023-05-02), as said in that commit message, timerserver loop calls setRequest, but before entering the loop, we wait for the portal to be created with: 447 │ try: 448 │ self.portal = self.app[self.app.test_portal_name] 449 │ except (AttributeError, KeyError): 450 │ continue While accessing like this, this will load classes and initialize dynamic modules, on python2 this was OK, but on python3 this was raising an error because `getRequest` returned None: File "./parts/erp5/product/ERP5Type/dynamic/component_package.py", line 449, in load_module return self.__load_module(fullname) File "./parts/erp5/product/ERP5Type/dynamic/component_package.py", line 416, in __load_module erp5.component.ref_manager.add_module(module) File "./parts/erp5/product/ERP5Type/dynamic/dynamic_module.py", line 86, in add_module self.add_request(get_request()) File "./parts/erp5/product/ERP5Type/dynamic/dynamic_module.py", line 64, in add_request self.setdefault(last_sync, (WeakSet(), set()))[0].add(request_obj) File "./lib/python3.9/_weakrefset.py", line 89, in add self.data.add(ref(item, self._remove)) TypeError: cannot create weak reference to 'NoneType' object On python2, this was actually raising as well, but this error is hidden by a `hasattr`, because on python2 `hasattr` ignores all exceptions and on python3 it only ignores only `AttributeError`. File "./parts/erp5/product/ERP5Type/Core/PropertySheet.py", line 61, in createAccessorHolder self.applyOnAccessorHolder(accessor_holder, expression_context, portal) File "./parts/erp5/product/ERP5Type/Core/PropertySheet.py", line 175, in applyOnAccessorHolder for property_definition in self.contentValues(): File "./parts/erp5/product/ERP5Type/Core/Folder.py", line 1570, in contentValues portal_type_id_list = self._getTypesTool().listContentTypes() File "./parts/erp5/product/ERP5Type/Tool/TypesTool.py", line 173, in listContentTypes provider_value = _getOb(provider, None) File "./eggs/Zope-4.8.7-py2.7.egg/OFS/ObjectManager.py", line 323, in _getOb if id[:1] != '_' and hasattr(aq_base(self), id): File "./parts/erp5/product/ERP5Type/dynamic/lazy_class.py", line 120, in __getattribute__ self.__class__.loadClass()
-