- 14 Mar, 2019 10 commits
-
-
Vincent Pelletier authored
getRoles is called a lot (on every restricted access, so hundreds of times per transaction), it is definitely not the right place to do extra computation, especially when their result does not change from one call to the next (configuration should only change on process restart, so not during a transaction - and even if it someday did, it should be fine to wait for next transaction for it to take effect). Instead, do the extra work when creating the user (typically once per transaction). Also, modernise python syntax (simplifications & style). Also, reduce code duplication from ERP5Security.ERP5UserFactory.
-
Vincent Pelletier authored
Simplifies callers, as they then do not have to test for None. Also, use sort(key=...), which removes the need for internal 2-tuple wrapping & unwrapping of all result entries. Also, coding style (helps line-based profiling readability) & better naming.
-
Vincent Pelletier authored
Include worklist parameter generation in the scope of existing cache. Otherwise, it will be generated in pure loss if it is followed by a cache hit. Most of WorkflowTool change is just indentation change. Also, do some minor optimisations/simplifications in patchess.DCWorkflow. Some comments: - Guard_checkWithoutRoles return value is evaluated as a boolean, so no need to cast to int before returning based on boolean evaluation... - DCWorkflowDefinition.worklists is always true, even when empty. - Listing portal types per workflow requires checking all workflows, so build the whole mapping and cache it instead of caching for each workflow type individually (many more cache hits, fewer redundant computations) - getVarMatch is expensive just for a fallback and a wrap, bypass it to reduce redundant work.
-
Vincent Pelletier authored
Backward-compatibility path does not need to be fast. Optimise for sane folders.
-
Vincent Pelletier authored
This improves performance when unset protected properties are being accessed.
-
Arnaud Fontaine authored
-
Arnaud Fontaine authored
In contrary to the ParentDeliveryPropertyMovementGroup for property, it has never actually checked the parent Delivery but the current one.
-
Arnaud Fontaine authored
This also avoids KeyError exceptions when Activities have already been processed in the meantime.
-
Jérome Perrin authored
These extensions does not seem to be used. /reviewed-on nexedi/erp5!845
-
Jérome Perrin authored
Test was never ending processing activities: ``` 2019-03-11T03:09:20 WARNING CMFActivity invalid after_path_and_method_id value: ('/erp5/organisation_module/2', 'immediateRecusriveReindexObject', 'immediateReindexObject') Traceback (most recent call last): File "product/CMFActivity/Activity/SQLBase.py", line 319, in getValidationSQL validate_list.append(' AND '.join(method(v, quote))) File "product/CMFActivity/Activity/SQLBase.py", line 345, in _validate_after_path_and_method_id path, method_id = value ValueError: too many values to unpack 2019-03-11T03:09:20 WARNING CMFActivity invalid after_path_and_method_id value: ('/erp5/organisation_module/2', 'immediateRecusriveReindexObject', 'immediateReindexObject') Traceback (most recent call last): File "product/CMFActivity/Activity/SQLBase.py", line 319, in getValidationSQL validate_list.append(' AND '.join(method(v, quote))) File "product/CMFActivity/Activity/SQLBase.py", line 345, in _validate_after_path_and_method_id path, method_id = value ValueError: too many values to unpack 2019-03-11T03:09:20 WARNING CMFActivity invalid after_path_and_method_id value: ('/erp5/organisation_module/2', 'immediateRecusriveReindexObject', 'immediateReindexObject') Traceback (most recent call last): File "product/CMFActivity/Activity/SQLBase.py", line 319, in getValidationSQL validate_list.append(' AND '.join(method(v, quote))) File "product/CMFActivity/Activity/SQLBase.py", line 345, in _validate_after_path_and_method_id path, method_id = value ValueError: too many values to unpack 2019-03-11T03:09:20 ERROR CMFActivity message uid 7256619472683296857L has a circular dependency ``` Fix this failing test by using the proper `after_path_and_method_id` syntax and also some other small changes to make the test fail earlier in case of problems. /reviewed-on nexedi/erp5!844
-
- 13 Mar, 2019 4 commits
-
-
Xiaowu Zhang authored
erp5_ui_long is too long for user to use fast input for the following scenario: 1. user create purchase order 2. user use fast input to enter product with reference 324214(a missing product) 3. user type 324214 in fast input, it found nothing in Product or Service 4. then user create such product 324214 5. then user go back to purchase order and type again 324214 since previous result is still cached for one hour and user still can't find it. in one hour, user is not available to add such product
-
Julien Muchembled authored
The fixes a missing rename in commit cee3e728.
-
Vincent Pelletier authored
Check that global and local roles (which are not supposed to be used) actually do not affect permissions.
-
Jérome Perrin authored
For consistency with ERP5TypeTestCase.tic for server side unit test, use timeShift to simulate a progress in time so that activities scheduled for executation at a later time ( using activate(at_date=...) ) are executed.
-
- 12 Mar, 2019 1 commit
-
-
Jérome Perrin authored
Otherwise in the worst case we sleep for 1000 seconds.
-
- 11 Mar, 2019 4 commits
-
-
Yusei Tahara authored
-
Yusei Tahara authored
-
Jérome Perrin authored
-
Jérome Perrin authored
verify* style assertion continue test execution, whereas assert* mark test as failed. If something went wrong, better to exit early.
-
- 08 Mar, 2019 1 commit
-
-
Tristan Cavelier authored
Update relation field input value only on demand, changing the state of a relation_input gadget with value_text = "" now updates the field. You can reproduce by doing : - open an object in tab "View" with a relation field (eg my_successor_title) filled - open a new tab, and edit the field to make it empty - from the first tab, refresh the view by click on the left panel "View" tab - the relation field should be emptied.
-
- 07 Mar, 2019 9 commits
-
-
Romain Courteaud authored
Prevent "cannot read property of undefined" errors on the JS side.
-
Romain Courteaud authored
Follow nexedi/erp5@1664e541
-
Romain Courteaud authored
This is not a notebook (as it does not provide a "live" editing functionnality). It is only used to trigger the calculation and view the result. Except for the JSMD format, this code is not related to iodide. Python plugins are not supported for now.
-
Romain Courteaud authored
This is unreadable
-
Tristan Cavelier authored
-
Romain Courteaud authored
Allow to query the catalog with the group_by parameter.
-
Romain Courteaud authored
Better have no highlight than incorrect one
-
Ayush Tiwari authored
-
Yusei Tahara authored
-
- 06 Mar, 2019 3 commits
-
-
Sebastien Robin authored
This is much more convenient to understand stock value at a given point in time
-
Łukasz Nowak authored
As leaving close_fds=False can result in subtle bugs (see http://zderadicka.eu/subtle-evil-of-close_fds-parameter-in-subprocess-popen/ ) close descriptors before launching anything with ProcessManager, especially useful for starting things like supervisord. /reviewed-on !841
-
Jérome Perrin authored
This solves the race condition that leaves stdout as a StringIO when this is executed twice in parrallel ( #20180928-1D89375 ) But this prints No config file found, using default configuration on sys.stderr at every execution, but that's acceptable. Once we update pylint, we can disable this warning by setting verbose=false ( this is not yet available on pylint 1.4.4 ) /reviewed-on !758
-
- 05 Mar, 2019 2 commits
-
-
Sebastien Robin authored
-
Sebastien Robin authored
supervirord when stopping might need several seconds to kill properly sub processes. So give him some time before killing more brutaly with killall. This should solve issue with functional tests are not working due to apache not starting. Apache when killed to brutally let unclosed semaphore, and after some time, we have too many semaphore to start new apache, making functional tests failing.
-
- 04 Mar, 2019 1 commit
-
-
Julien Muchembled authored
This implements a special case of node specialization, to make better use of the ZODB Storage cache. By default, a non-grouped message is marked to be executed by the same node that created it, if the object is not a tool and if it was not activated by path. This can be overridden (either forced or prevented) using a new 'node' activate() parameter. See message of the first merged commits for details, and also ActiveObject.activate() docstring. For SQLDict & SQLQueue only. In the future, the new 'node' argument could accept any other string value that refers to a group of nodes. Groups would be defined on the activity tool, and be assigned negative integers. Contrary to what is implemented here, such specialization would be strict, in that a node would never process a message for a group it does not belong. /reviewed-on nexedi/erp5!836
-
- 01 Mar, 2019 1 commit
-
-
Georgios Dagkakis authored
instead of crashing. This can happen in workflow if we have: - transition_x is declared as possible in state_x - then transition_x gets deleted In this case in state_x in manage_properties nothing is visible, which creates an inconsistent in its data, yet functional generally workflow Since it is easy to create such cases, just ignore them in Module_listWorkflowTransitionItemList so that mass change state can work
-
- 27 Feb, 2019 1 commit
-
-
Arnaud Fontaine authored
-
- 26 Feb, 2019 3 commits
-
-
Arnaud Fontaine authored
-
Jérome Perrin authored
This also fixups b9b14bc7 for the case where the consumption range is different from consumed budget or engaged budget (for exemple when we have only engaged movements on a given node).
-
Jérome Perrin authored
-