First: Sorry for this monster patch, I find no way to split it semanticaly
without introducing unneeded diffs. Fix the bug where results are not properly separated by local roles when mutilple worklists exist for the same role (causing worklists to appear as containing too many documents). Implies: Expand security at groupWorklistListByCondition level. Handle each security-related catalog column as a distinct worklist combination of worklist parameters. (for example, a worklists with local roles Owner and Assignor would require a match on both the "owner" and the "security_uid" catalog columns). Implies: Each security criterion must be used once positively and negatively thereafter to prevent a line from matching multiple queries. Implies: Implement ExclusionList and ExclusionTuple, two dummy classes to contain criterions to be negated in queries (as in 'NOT IN ...' instead of 'IN ...'), and use them in groupWorklistListByCondition and generateNestedQuery. Security criterions must be part of the match when summing up all results Implies: Sums must be done across multiple loops in worklist_list_grouped_by_condition. Separate metadata from worklist grouping by criterion, so that suming- up worklists results can be done in one run. Implies: workflow_worklist_key is now computed early in groupWorklistListByCondition. generateActionList now takes a non-grouped metadata dict and is only run once. Update groupWorklistListByCondition docstring. Remove unneeded checks for SECURITY_PARAMETER_ID, WORKLIST_METADATA_KEY and INTERNAL_CRITERION_KEY_LIST. Remove now unused INTERNAL_CRITERION_KEY_LIST global. Remove unused generateQueryFromTuple method. Remove unused securityQueryHook local method, instead getSecurityUidListAndRoleColumnDict is passed at groupWorklistListByCondition level. Finally, re-enable worklist optimisation monkey patch. git-svn-id: https://svn.erp5.org/repos/public/erp5/trunk@17119 20353a03-c40f-0410-a6d1-a30d3c3de9de
Showing
Please register or sign in to comment