- 16 Apr, 2020 9 commits
-
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
Add them to BaseAccessorHolder (like `Base Category` accessors) instead of Base class so they can be regenerated on reset while not having to remove ZODB Components from Base class on reset. This means that providesIFoo() will only be available on Portal Type classes whereas before it was working for direct Document instanciation, but the latter has been banned for several years anyway and the few remaining ones have been fixed (23b2b5fd, e791d08a). Also, instead of Base.provides() being a CachingMethod() (does not work with resets), create a method dynamically on the Portal Type class (erp5.portal_type.Foo), as not caching at all is ~18 times slower.
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
And thus filesystem Interfaces were not displayed/selectable in BaseType_view.
-
Arnaud Fontaine authored
erp5_certificate_authority: Certificate Authority Tool: All ERP5 objects *must* have have a Portal Type in Types Tool. And remove hack in erp5_promise which was creating a non-Portal Type class of portal_certificate_authority. Instead, add a depend on erp5_certificate_authority. `providesI*` accessors are now in BaseAccessorHolder rather than Base due to ZODB Components, this breaks reindexing (`AttributeError: providesIPredicate`). This gets rid of: WARNING ERP5Type.dynamic Cannot find a portal type definition for 'Certificate Authority Tool', trying to guess...
-
Arnaud Fontaine authored
This has been banned since the introduction of Portal Type class. When creating a new ERP5Form via addERP5Form/ZMI, its MRO: * Before: <class 'Products.ERP5Form.Form.ERP5Form'> <class 'Products.ERP5Type.Base.Base'> ... <type 'ExtensionClass.Base'> * Now: <class 'erp5.portal_type.ERP5 Form'>, <class 'Products.ERP5Form.Form.ERP5Form'>, <class 'Products.ERP5Type.Base.Base'>, ... <class 'erp5.accessor_holder.property_sheet.SimpleItem'> <class 'erp5.accessor_holder.property_sheet.Folder'> <class 'erp5.accessor_holder.property_sheet.Base'> <class 'erp5.accessor_holder.property_sheet.CategoryCore'> <class 'erp5.accessor_holder.BaseAccessorHolder'> <class 'Products.ERP5Type.dynamic.portal_type_class.GetAcquireLocalRolesMixIn'> <type 'ExtensionClass.Base'> Thus it was missing many accessors and was working only by chance (or at least unless these accessors were not called until the object was automatically migrated by the next call to __setstate__). Namely, as `providesI*` accessors are now in BaseAccessorHolder rather than Base due to ZODB Components, this breaks reindexing (`AttributeError: providesIPredicate`). Also, remove hardcoded _getAcquireLocalRoles() now that it is not used as a regular class anymore. Set this on the portal type object instead.
-
Arnaud Fontaine authored
This gets rid of: WARNING ERP5Type.dynamic Cannot find a portal type definition for 'ERP5 Form', trying to guess...
-
Jérome Perrin authored
-
- 15 Apr, 2020 1 commit
-
-
Jérome Perrin authored
km, content_translation, ods_style, open_trade, simulation and budget See merge request !1094
-
- 14 Apr, 2020 14 commits
-
-
Romain Courteaud authored
-
Romain Courteaud authored
-
Cédric Le Ninivin authored
Expanding frozen Simulation resulting from a split and Defer raise a `NotImplementedError`. It comes from the `_extendMovementCollectionDiff` function in [RuleMixin](product/ERP5/mixin/rule.py) checking the recorded property "Quantity". The Quantity Split Solver set this variable to zero hence leading the function to consider compensation is needed. This merge request remove the setting of the recorded property `quantity` on the the split movement. Re-expanding from the root was also removing that recorded property asking the question if this is needed. As of now system having used Split and defer Quantity will most likely not be able to re-expand their resulting simulation. A Test is added to validate the fix. See merge request !1097
-
Jérome Perrin authored
Caching forever would produce wrong results after installing a business template containing interfaces, using a transaction cache is enough (actually it may not even be needed).
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
-
Jérome Perrin authored
We were not considering interface without the I prefix for component interfaces
-
Jérome Perrin authored
-
Jérome Perrin authored
Like we do in product/ERP5/tests/testXHTML, this form does not work without preferences
-
Jérome Perrin authored
Not that the old `reversed` function was different from the builtin, we replace it with sorted(reverse=True) to keep the same logic.
-
- 13 Apr, 2020 6 commits
-
-
Jérome Perrin authored
This is a dependency of erp5_credential, it should be installed in the test. This fixes a test failure, portal_notification.sendNotification(store_as_event=True) is now an error when erp5_crm is not installed.
-
Jérome Perrin authored
Add some features to restricted python and fix problems revealed by running Zope's test suites. # Bug fixes - Disallow access to old style classes without security declarations. This is not allowed in vanilla zope, but we allowed this accidentally about two years ago. This branch includes some fixes for cases where we accessed not protected classes in a way that should not have been allowed - ERP5 test suite pass, but there might be more cases in code not covered by ERP5 test suite. - Fix iterating on `reversed(iterable)` which was unauthorized, maybe since python 2.7 - Disallow new style classes in container access (iteration, `{}.get` etc). Only classes had this problem, not instances, so this probably has no impact for us, but it allows running AccessControl test suite. - Disallow attribute names ending in `__roles__` in class name. This probably does not impact us either, but also for AccessControl tests suite. # New features - Allow iterating on a generator. It's still not possible to use `yield` statement in restricted python, but iterating is now possible - Allow `cStringIO.StringIO("initial value")`, only `cStringIO.StringIO()` was allowed - Enable `collections.namedtuple` and add a few tests for other members of `collections` ( not `collections.deque` because we never used it so far ) See merge request !1090
-
Jérome Perrin authored
This uses the new "only ERP5JS" actions to enable components editor in ERP5JS, so that we can edit components on ERP5JS . This does not change anything in the old UI (erp5_xhml_style), where the editor field will still be used. See merge request !982
-
Jérome Perrin authored
This test loads a reference Data.fs, but we don't want to connect to the mysql referenced in the mariadb, because it might be used by another test node. Before the beginning of the test, rewrite the connection string to the one this test node is using. This relies on an updated dump produced in nexedi/erp5-bin@8310e4e4 See merge request !1098
-
Jérome Perrin authored
Allow to set more categories (funding and function) Allow to configure a script to "unset" categories, to address this issue that sometimes we do not want to keep categories from input movements. ![image](/uploads/d2676cc15d5a85c33dc66df2138d57eb/image.png) See merge request !1082
-
Jérome Perrin authored
`erp5_authentication_policy` can be configured to automatically create `Credential Recovery` for user once login expire. This was no longer working since we switched to `ERP5 Login`, `Credential Recovery` ticket was created with a relation to `ERP5 Login`, but it should be related to the `Person`. See merge request !1096
-
- 10 Apr, 2020 6 commits
-
-
Arnaud Fontaine authored
-
Cédric Le Ninivin authored
* Check that frozen Simulation from a Split and Defer can be expanded testPackingList: test_11_01 Check Expand is stable
-
Cédric Le Ninivin authored
-
Xiaowu Zhang authored
This is the loyalty programme for commerce. Idea is to use modelled trade model lines, at least three lines are needed: + One trade model line to define how to collect loyalty point + One trade model line to define how to use loyalty point + One trade model line for discount + ..... New loyalty transaction is added to record loyalty point. See merge request !1078
-
Jérome Perrin authored
This test loads a reference Data.fs, but we don't want to connect to the mysql referenced in the mariadb, because it might be used by another test node. Before the beginning of the test, rewrite the connection string to the one this test node is using.
-
Yusei Tahara authored
testERP5Simulation: Improve test_02_splitAndDeferAfterAcceptDecision. After SplitAndDefer, expand the root applied rule and make sure that two SPLs are not diverged.
-
- 08 Apr, 2020 4 commits
-
-
Jérome Perrin authored
using the solution from https://stackoverflow.com/a/45753938 and also a rule to disable body margin from user agent stylesheet, in chrome there's a 8px margin.
-
Jérome Perrin authored
Some new components were introduced, but that list was not updated
-
Jérome Perrin authored
-
Xiaowu Zhang authored
-