This is the so-called 'WIM2' release.
- We rewrote the Workflow Information Model for several reasons, of which one being massive speed improvements; making the creation of new tasks in bulk possible (eg. using SIM scripts with pykechain). In cases this can be 50 times faster. We also made KE-chain more secure, such that we can stay up to date with the latest core libraries on which KE-chain is built (e.g. Django 1.11)
- We added extension points to WIM for upcoming features such as 'screens' and 'catalog forms'. These features still need to be developed to be used by the end-user, however backend provisions are already in place.
Improvements and fixes
- We added a version endpoint to version the different internal KE-chain module, such that clients (webclient and API clients) can alter their handling according the version of the module. The first to make use of this is (of course) the WIM2 module, who has the version '2.0.0' in this release. Pykechain uses this to ensure proper behaviour.
- We rewrote the way the calculation of progress and readiness ('metrics') are handled. They are now handled per default asynchronously in the most efficient way possible (KEC-17608).
- We removed all concepts from the WIM world that were not used in KE-chain. WIM1 was inspired on BPMN, however we did not use many of the concepts and over time we implemented and a more compact datamodel. We removed all model 'overloading' (polymorphism), which caused complex queries in our database. The end result is a clean, extensible and superfast datamodel in WIM2.
- We rewrote the internal caching system for WIM2.
- We changed the API of WIM2 to be more consistent, we now use assignees_ids instead of usernames to assign activities, and we also use 'activity_type' instead of 'activity_class'.
- We fixed the issue where changing the options of a single select property model keeps a user from editing a part instance of the part model of that property or its property instances if the single select value still is one of the old options. (KEC-17733)
- We fixed the issue where a user would not be allowed to create a new part model in the catalog. (KEC-17773)
- We fixed the processing of new user kevents. Now all new users are displayed in the user grid. (KEC-17774)
- We added to the removal of users from a scope to also remove the users from any task assignment. (KEC-17778)
- We fixed a clipping issue of the selected parent part field in the widget configurator of the paginated grid. Long parent names would cause the field to grow, but did cause a horizontal scroll bar making the field unreadable. (KEC-17680)
- We changed the wording in the submenu of the activity located in the metapanel to make it more clear and distinguish the different actions. (KEC-17760)
- We replaced the column sorting options text in grid widget configure dialogs with icons to increase the clarity. (KEC-17761)
- We changed the naming of SIM scripts in the frontend from scripts to services. (KEC-17763)
- We improved some issues in the PDF export, amongst others the fact that the order of properties is now respected (KEC-17715); we respect the configuration of the header row, units column and description column as provided in the layout of a form (KEC-17684), and a quirk that the decimal value 0 is now exported. (KEC-17714)
Next to KE-chain having a major upgrade of WIM, pykechain is updated to use the features of WIM2 as well. This is a major release of pykechain, adding support for the legacy version of the Workflow Information Module (WIM) in KE-chain as well as the new version WIM2. Based on the version number of the WIM, the internal logic is switched.
- In WIM1: The root object is not an Activity, while in WIM2 the root object is an Activity2. Use predicates such as is_root to check this.
- In WIM1, an Activity that exist of the rootlevel, returns a NotFoundError when you search for its parent (using the subprocess() or parent method). In WIM2 you will get the root object back. Use the predicate is_rootlevel to help you assess if the Activity is indeed on the root level of the project.
- In WIM1, the types of activity are actually called a activity_class, while in WIM2 this is called an activity_type. A UserTask in WIM1 is a TASK in WIM2, and a Subprocess in WIM1 is a PROCESS in WIM2. The enums.ActivityTypes are updated accordingly.
- In WIM1, the assignees where to be assigned using usernames, in WIM2 user_ids need to be provided. For the sake of compatibility pykechain helps you in this. You can provide usernames to a Activity2.edit() and it is automatically translated in user_ids with additional calls to KE-chain.
For the rest see the release notes of pykechain.
2.10.1 + 137 - 5 April 2018
- We fixed an issues with legacy (old) widget configurations which caused an improper PDF export. We implemented more robustness to ensure the PDF is always properly exported. (KEC-17808)