- 26 Nov, 2024 2 commits
-
-
Titouan Soulard authored
ALSO: add security on methods
-
Titouan Soulard authored
-
- 22 Nov, 2024 3 commits
-
-
Titouan Soulard authored
ALSO remove API from allowed content in API
-
Titouan Soulard authored
-
Titouan Soulard authored
-
- 19 Nov, 2024 5 commits
-
-
Titouan Soulard authored
Also: typo and update tests (to be finished)
-
Titouan Soulard authored
-
Jérome Perrin authored
This fixes a regression with 445e8fa8 (ERP5TypeTestCase: rework default manager password generation, 2024-05-27), it was no longer possible to run live tests from a "normal" zope instance, this was failing with: Traceback (most recent call last): File "./eggs/Zope-5.10-py3.9.egg/Testing/ZopeTestCase/PortalTestCase.py", line 59, in setUp self._setup() File "./parts/erp5/product/ERP5Type/tests/ERP5TypeLiveTestCase.py", line 156, in _setup self.login() File "./parts/erp5/product/ERP5Type/tests/ERP5TypeTestCase.py", line 290, in login return PortalTestCase.login(self, user_name) File "./eggs/Zope-5.10-py3.9.egg/Testing/ZopeTestCase/PortalTestCase.py", line 146, in login user = user.__of__(uf) AttributeError: 'NoneType' object has no attribute '__of__' It was only possible from a runUnitTest instance.
-
Titouan Soulard authored
-
Titouan Soulard authored
Missing the call to action, but the form displays something.
-
- 13 Nov, 2024 1 commit
-
-
Titouan Soulard authored
-
- 25 Sep, 2024 9 commits
-
-
Titouan Soulard authored
-
Titouan Soulard authored
-
Titouan Soulard authored
- Update double quotes instead of single quotes - Avoid using RegEx to update JSON
-
Cédric Le Ninivin authored
-
Cédric Le Ninivin authored
-
Cédric Le Ninivin authored
-
Cédric Le Ninivin authored
-
Cédric Le Ninivin authored
-
Cédric Le Ninivin authored
* Case of required properties
-
- 09 Sep, 2024 1 commit
-
-
Rafael Monnerat authored
Prevent the user start an inconsistent assignment, since, extra property sheets can include some business logic around assignment configuration.
-
- 09 Aug, 2024 1 commit
-
-
Romain Courteaud authored
XXX Not tested...
-
- 01 Aug, 2024 2 commits
-
-
Rafael Monnerat authored
Create temp objects requires to be manage, so protect the method to raise a proper exception
-
Rafael Monnerat authored
-
- 23 Jul, 2024 3 commits
-
-
Rafael Monnerat authored
-
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 !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.
-
- 18 Jul, 2024 1 commit
-
-
Nicolas Wavrant authored
-
- 17 Jul, 2024 2 commits
-
-
Arnaud Fontaine authored
__import__ `fromlist` argument was wrong. It was working anyway with Python2 but not anymore with Python3, raising a `ModuleNotFoundError` exception. According to Python `__import__(name, globals, locals, fromlist)` documentation: When the `name` variable is of the form `package.module`, normally, the top-level package (the `name` up till the first dot) is returned, *not* the module named by `name`. However, when a non-empty `fromlist` argument is given, the module named by `name` is returned. Thus, the following patterns were wrong: * __import__(MODULE_NAME, globals(), locals(), MODULE_NAME) => Iterate through each character of MODULE_NAME as fromlist is expected to be a list/tuple. * __import__(MODULE_NAME, globals(), locals(), [MODULE_NAME]) => This works but actually tries to import MODULE_NAME object from MODULE_NAME module (no error if it cannot). The goal of such __import__ calls were for __import__ to return the right-end module instead of the top-level package. In such case, `fromlist=['']` is the way to go as it __import__ does not check if the object exists in the module if it's an empty string. However, it is even better and easier to read to use importlib.import_module() for that... Also, add `from __future__ import absolute_import` because python2 tries both relative and absolute import (level=-1 __import__ parameter) whereas python3 does absolute import by default (level=0). Co-authored-by: Kazuhiko SHIOZAKI <kazuhiko@nexedi.com>
-
Nicolas Wavrant authored
-
- 15 Jul, 2024 1 commit
-
-
Jérome Perrin authored
When under a pinDateTime context, d.isPast() was comparing d with the actual current date, not the fake date from the pinned context. Also, make the methods class methods, so that they can be used as external methods in Zelenium tests.
-
- 11 Jul, 2024 9 commits
-
-
Jérome Perrin authored
- Products.PythonScripts now has a __loader__ - do not use < > as filename for component on py3, this makes linecache work out of the box. On py2 I think it was causing errors trying to actually open the file, but this does not seem needed on py3 and simplifies everything
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
new test with ERP5-style workflow to cover python3 migration
-
Kazuhiko Shiozaki authored
with ROUND_DOWN, we have a different behaviour between py2/py3, that caused failures in erp5_simplified_invoicing:testTradeModelLine. Here is what happened in _round(1.9999999999999998) in bt5/erp5_simulation/DocumentTemplateItem/portal_components/document.erp5.FloatEquivalenceTester.py * py2 decimal.Decimal(str(1.9999999999999998)).quantize(decimal.Decimal('0.000001'), 'ROUND_DOWN') => Decimal('2.000000') (because str(1.9999999999999998) is '2.0') * py3 decimal.Decimal(str(1.9999999999999998)).quantize(decimal.Decimal('0.000001'), 'ROUND_DOWN') => Decimal('1.999999') (because str(1.9999999999999998) is '1.9999999999999998') But ROUND_DOWN result of 1.9999999999999998 with 0.000001 precision should be 1.999999 thus py2 behaviour is wrong.
-
Jérome Perrin authored
-
Jérome Perrin authored
Run zope with ERP5_COMPONENT_OVERRIDE_PATH set to a : separated list of path containing components files to load components from files instead of portal_components. This can be used to repair zope after a bad edit of component.
-
Jérome Perrin authored
for pylint 3 to understand erp5 dynamic modules
-