Release notes
Backend
Reversed the introduction of the prop_value_query filtering in grids and partshops. Created a reverse data migration. (KE-1000)
Frontend
Revert of the property_valye_query filter. In conjunction with the backend. (KE-1000)
Backend
Reversed the raised security for retrieving the forgotten password. (KE-999)
Frontend
Revert of the property_valye_query filter. In conjunction with the backend.
(KE-1000)
Backend
We added the possibility to select a representation for the geojson point. This representation is export in the PDF and excel as well. You can choose to use either the address, Rijksdriehoekstelsel (RD) coordinates, the Decimal Degrees notation or the Degrees-Minutes-Seconds notation. The conversion to the RD coordinates is performed just-in-time and not stores in the property as a value. (KE-935)
We added the possibility to download a grid of parts with the correct georepresentation. (KE-935)
We added the full scope information in the response of the scope references property. (KE-986)
We removed logging of a missing
activity_id
on widget permission. (KE-758)We fixed a bug trying to retrieve the scope id's on a Widget, when the Activity does not exist. (KE-839)
Implemented different additional security measures to protect backend server. (KE-844)
Added
prop_value_query
in paginated widget meta schema and added a migration that moves all legacy values to the new filter.(KE-896, KE-996)We added the full scope information in the response of the scope references property. (KE-986)
Refactored the way we process some fields in the
KeScopeModelSerializer
. Where applicable, the fields have been changed fromSerializerMethodField
toUUIDField
in order to have the serializer check for their existence (KE-872)
Frontend
Made the email check on 'Forgot password' case insensitive. (KE-954)
Added search on name / username / email functionality on user reference property. Also show the email on users to select. (KE-867)
Improved the mobile view of the Task widget. (KE-984)
Placed the project member management widget in the project detail view, replacing the previous member management section. (KE-958)
Use qr_code or barcode as input for single text properties. (KE-855)
Added new representations and conversion for the GEOJSON property - RD/AMERSFOORT New, Decimal Degrees, Degrees minutes and seconds. (KE-983)
Backend
We fixed a bug in the bulk_delete API endpoint of widgets that was introduced in the last release. (KE-965)
Backend
We fixed the filtering of all type of properties inside a grid not being taken into account in the Excel exporter. (KE-868)
We removed deprecated groups that were associated to the scope from the 'old' way of managing members. (KE-849)
We fixed a bug on our 'validate_geometry_collection' validator which led to errors instead of a proper 400 response. (KE-926)
We fixed an issue where the bulk delete of widget was actually not using the bulk delete internal API but only the widget-per-widget delete, which is slower. (KE-930)
We changed the GeoJSON type for locations to FeatureCollection instead of GeometryCollection. (KE-931)
We fixed an issue where a reference to a not existing Activity would break metrics reporting. (KE-932)
We added new fields to the metrics to be used in internal metrics dashboards in order to track app usage and make improvements. (KE-936)
Frontend
Fixed some issues that break the WBS in the latest Chrome. (KE-962)
Added the option to implicitly overwrite status, which means a user can also decide to keep status unchanged. (KE-739)
Removed the link to old KE-chain from the top bar and the mobile top bar menu. (KE-852)
Added some text to highlight the paste attachment for upload feature. Also added drag and drop image from browser functionality. (KE-871)
Fixed an issue to optimize the spacing on part reference properties (KE-571)
Backend
We did a major upgrade of the KE-chain backend to Django 3.1 and running uvicorn in production. This means that the backend is now very up to date with the latest version of the platform available. Furthermore we can handle more simultaneous requests of end-users in production. (KE-718)
We fixed the filtering of
single select
andmulti select
properties not being correctly processed in the PDF exporter. (KE-862)We added the Context concept to project (scopes). Initially a
GeoLocationContext
and aTimePeriodContext
are available. A Context can be best described as 'smart group' that can be associated to a project task (Activity). For example, aGeoLocationContext
may be used to display tasks on a map. TheTimePeriodContext
is a way to group tasks per time period. This Context is extensible and will be expanded in the future. (KE-434)We fixed an issue on the Scope manager. (KE-923)
We fixed the filtering of all type of properties inside a grid not being taken into account in the Excel exporter. (KE-868)
When a user did not provide a 'Name' we fill in that name based on the username of the user. (KE-799)
Frontend
Backend
Added new fields to the metrics to be used in internal metrics dashboards to monitor usage and improve the application. (KE-801)
Fixed an error regarding the processing of
PropertyGrid
widgets inside a PDF when noPart
instance is associated to it. (KE-781)We added the possibility of using the property filter on Parts programmatically. (KE-864)
We fixed a bug on a possible missing Metrics object. (KE-857)
Added a feature to access the Metrics API endpoint using a
MetricsToken
Authorization header or using ametricstoken
in the queryparameters of the request. (KE-802)Fixed a test that failed occasionally in testing environment. (KE-861)
The creation of Associations for Properties sometimes led to an IntegrityError, which we solved. (KE-567)
For CI tests we are using a custom docker build image based on python 3.8. (KE-914)
Frontend
Backend
We introduced a fallback in case one of the keys in Locize used by the PDF Exporter are not provided. In that case, we use a default translation (in English language). (KE-765)
When exporting a grid with location properties that are all zero, the corresponding aggregated map did not properly export in the PDF. This is now corrected and checked if the properties are empty before attempting to create a map of the world. (KE-860)
Backend
An issue related to the processing of PDFs inside a PDF Exporter has been fixed. (KE-783)
Backend
We fixed a bug that tests a non-existing file for size, causing the PDF generation to break. (KE-793)
Frontend
Fixed a bug where a required validator was not displayed for certain property types. (KE-290)
Link the metapanels breadcrumb root to the scope landing page instead of wbs, when available. (KE-764)
Added display of users name to user references. (KE-798)
Improved the spacing of buttons on mobile, when you want to add/edit a part (KE-789)
Added wrapping of text for multiline text properties in table widget cells. (KE-791)
Disabled the fullscreen mode on the delete dialog of table widget. (KE-286)
Added the member role as the default when adding members to scope. (KE-730)
Added assertions to verify different dialogs open and close in cypress tests. (KE-723)
Improved the loading and selection of associations (KE-685)
Backend
We fixed an issue on generating PDF's, caused by an improperly set EXIF thumbnail value. (KE-786)
Backend
We fixed an issue in the
Excel Importer
where parts were not imported if there was no name provided in the Excel. Now if that cell is empty, the part will created with its model name and a warning will be provided in the preview. (KE-716)We added the possibility to create/edit/delete
downloads
through the API, when authenticated, Unauthenticated users can download the content of the downloads (KE-615)We fixed an issue related to the processing of images in a PDF Export when the size of their thumbnail was larger that 64kB. (KE-737)
We fixed an issue on testing for permission on a non existing Part, leading to an error response. (KE-766)
We fixed an issue where omitting the proper context on a Parts api call, could be leading to an error response. (KE-769)
As supervisor user you should be able to alter the property and part models in the CATALOG world. (KE-775)
Frontend
Added scope team management widget. (KE-624)
Added wrapping of long property names with underscores. (KE-448)
Give the possibility to "pull-to-refresh" if the app is visualized in "Standalone" mode. (KE-729)
Added fullscreen mode, download and delete buttons to HTM attachment viewer. (KE-450)
Added the supervisor role to the roles that can use the Alt+W shortcut to 'Edit page'. (KE-367)
Backend
We updated the permissions regarding the retrieval of teams. A user can retrieve the list of teams and in that response only the teams are present of which the user is part of (either in the role as teammember, a teammanager or teamowner). A user only has knowledge of teams he is part of. (This is similar to the way a scope member sees other scopes). (KE-753)
We added a new widget: the Scope member management widget. (KE-624)
Frontend
Added scope team management widget. (KE-624)
Added wrapping of long property names with underscores. (KE-448)
Give the possibility to "pull-to-refresh" if the app is visualized in "Standalone" mode. (KE-729)
Added fullscreen mode, download and delete buttons to HTM attachment viewer. (KE-450)
Added the supervisor role to the roles that can use the Alt+W shortcut to 'Edit page'. (KE-367)
Backend
We changed the way we generate PDF's to be more future proof and scalable using a PDF microservice. The current release works both in 'legacy' mode (using luaLaTeX on the local machine) and in the new 'microservices' mode. The legacy mode is activated by default, for compatibility reasons . The use of the pdf microservice is controlled through additional settings in the .env file. (KE-536)
Frontend
Improve the rebuilding of the Work Breakdown Tree when focus is received, to keep in sync with the other pages. (KE-712)
Hide team and tags filter fields when they are set as prefilters on a scope reference property (KE-618)
Improved speed on a part grid instances call by making all the part grid calls in parallel. (KE-618)
Implemented additional filters for scope reference, including start date, due date, progress, tags and team (KE-403).
Made an integration test for adding part dialog on table widget (KE-576)
Fixed an issue in the tasks view with delete dialog being in a weird state just after deleting an activity (KE-703)
Fixed a bug where after deleting a part in data model the delete dialog would reopen by selecting a different part in the tree. (KE-701)
Fixed an issue where creating an activity fails when assignees field is untouched. (KE-702)
Backend
To better distinguish if the property value of an attachment or link property is set we improved the default
value_set
attribute logic for those properties. We also created a command and a data migration for setting the right value on these properties (ATTACHMENT_VALUE
andLINK_VALUE
). (KE-641)We fixed a permission issue for a scope supervisor. The supervisor is allowed to alter a Catalog form and create new parts for that form. (KE-687)
We fixed a permission issue for a scope supervisor. The superviser is not allowed to create tasks in the App classification. (KE-689)
Added error descriptions to the Excel Importer Previewer. The user now gets informed if he can continue with the import or not. Errors will prevent him from continuing the import until they are fixed, while warnings will not. A resolution to fix the error is also provided. (KE-634)
We added a heartbeat endpoint to the application indicating if the application is healthy and alive for monitoring tools. (KE-696)
Frontend
Improved the error feedback on the import excel functionality (KE-640)
Implement restoring of live events on connection lost. (KE-693)
Added the supervisor role to the roles which a project manager can demote himself to. (KE-686)
Show when it's possible to add, update and delete parts and properties in widget editor's data selector for users which have access, including supervisor (KE-687)
Implement the same ux used in select assignees to the user reference property (KE-551)
Backend
We give the scope supervisor the permission to promote another user to the supervisor level. Likewise for leadmembers. (KE-681)
Fixed an issue with the Excel Importer, where
False
values ofBoolean
properties could not be imported. (KE-682)
Frontend
Fixed an issue with undefined meta on scriptCardWidget (KE-665)
Backend
Patch to reduce the number of websocket disconnects calls, which caused an exception logging event in sentry. (KE-671)
Backend
We again improved on the Part endpoint call, managing to cut the response time to almost 50 percent. (KE-627)
We are now catching errors related to messages attempted to be sent to closed websockets. (KE-621)
Fixed a bug on export_pdf, still using legacy Part sorting. (KE-636)
Fixed a small issue where a string could not be cast to a boolean in the API caused a servererror instead of a validationerror. (KE-632)
Frontend
From this version onwards, the versioning has changed from a semantic one (e.g. v3.8.0) to a calendar versioning (v2021.1.0)
Backend
There are no new issues in this release, its content is the same as the v3.7.7 version. It does mark the start of a new versioning pattern: vYEAR.Version.Subversion.
Not only a new versioning, but we will keep the versioning in-sync with the frontend release numbering.
Frontend
Added settings to scope reference property to prefilter references on status and also to display the active filter. (KE-628)
Fixed an issue where pre-sorting from the paginated table was inverted (KE-620)
Hide the Dashboard from the Scope detail page. Will be restored when the Team manager widget will be deployed (KE-626)
We overhauled the API parts endpoint, resulting in major decrease in the number of database calls, and so achieving a significant performance boost between ~2 and ~4 times depending on the size of the database. (KE-579, KE-578, KE-610, KE-613)
We added extra filters on
Scope
objects.Scopes
can now be filtered onstart_date
,due_date
andprogress
with the same operators asActivity
(gt, gte, lt, lte). (KE-494)We removed a breaking error due to a niche case where the filename of an uploaded image attachment was without a suffix (or extension), which caused problems after the image was resized. (KE-580)
There was an error in the
PDF Exporter
when multiple parts were associated to aPropertyGrid
widget. This has been fixed no by better querying for the associated properties. (KE-587)We changed the
PDF exporter
to render the name of theUser
selected in theUserReferenceProperty
if it exists, instead of the username. If there is no name provided, the username is the one shown. (KE-586)
Refactored the Part filter sorting function for performance improvements. (KE-578)
We removed some performance blocking query operations, which should speed up Part list retrieval. (KE-575)
The ability to change a
ref
or reference to an Activity was originally available as an option to the platform, we removed the setting and the ability to update theref
is now always available on the Activity API for kenode users, configurators, managers and supervisors of a scope (outside the 'APP' context.). (KE-422)We fixed the ordering of Parts, based on the value of a Property. (KE-541)
Fixed database migrations of widgets where widget placed inside a multi-column widget were using a
parentWidth
attribute to align themselves neatly. This information was lost in the migration and that is now fixed. Als added theparentWidth
in the meta schema's for the relevant widgets. (KE-515)Added support for migration of legacy versions of scripts and notebooks in the
set service environment
management script. (KE-380)
Fixed bug on widget model helper causing breaking kevents signals. (KE-530)
Changed the local mailing backend to console to prevent accidental outging mails during development and testing. (KE-529)
Changed the response for a password reset, not disclosing information about a not existing email address. (KE-490)
Fixed an issue on the preview and download of an attachment property, resulting in a Sentry error when not found. Now just raises a 404. (KE-520)
Fixed a bug related to proxies on the tree_node_updated_handler, that caused an AttributeError and blocked kevents. (KE-519)
Added extra validation to the bulk Part instance creation endpoint to ensure model relation consistency. (KE-510)
Fixed an issue inside the
Excel Importer
. ThePart Model
associated to the grid is checked beforehand and its name must correspond with the first header column. If there is a mismatch, a warning is presented to the user. (KE-493)
Dramatically improved the loading for bigger grids in context of a widget_id because of a more streamlined query to retrieve the properties from a part. We reused the optimised queries from the filtersets and that resulted in a 10-15 fold reduction in response times in particular cases we saw in the field. (KE-473)
We raised the default threshold where bulk kevents are send to the front (the settable flag BULK_ACTION_SIGNALING_THRESHOLD) to an relatively arbitrary 500 items, to avoid missing kevents on the bulk api endpoints..(KE-335)
We added the possibility of changing the Scope category in the API. (KE-437)
We fixed a legacy scope membership error that was preventing scope cloning. (KE-470)
We improved the way to perform a property value filter that is more robust and can handle more value cases. You can use mulitple times
prop_values=
in the query parameters on the Part api to search for property value filters. This way we can support additional (urlquoted) characters like,:&
. (KE-432)We deprecated the KE-chain 2 frontend from the production source tree and this frontend is not available as a fallback anymore. We removed all links to the old frontend code. (KE-479)
We implemented missing frontend kevents for bulk editing of properties. The kevents can be suppressed by providing the
suppress_kevents=True
in the query params. Otherwise all properties that are updated will receive an updated kevent. Frontend implementation is pending implementation of KE-456. (KE-440)Added 'remove_orphan_buckets' command for cleaning of unrelated Buckets. (KE-480)
Implemented MPTT full tree rebuild after failing partial_rebuild. (KE-480)
We upped the default version of the python execution environment to python version 3.8. (KE-380)
We fixed a nasty issue where a race condition in the validation of incoming JSON fields in the widget api could result in a permanent invalidation of the incoming widget meta's. This was kept in memory. (KE-195)
We added a command management script that allows also to find the invalid
SINGLE_SELECT_LIST
andMULTI_SELECT_LIST
properties and fix them by fuzzy matching the injected value with the property options. (KE-453)
Added a
total_count
field to the response of theExcel Importer
when previewing. This allows the frontend to know beforehand how many new rows are expected. (KE-457)Fixed a bug that caused the ordering of
Parts
inPaginatedGrids
to not be correct. Now the parts are ordered based on creation from oldest on top to newest on the bottom. (KE-462)
This release adds a new user called supervisor
in a scope. This release also adds advanced activity clone with parts options.
Added the user role in a project called
supervisor
. This member is able to edit the catalog environment (ie the form templates) and not the application environment (ie the user interface to add forms and run scripts) of the KE-chain frontend. Asupervisor
has more rights than theleadmember
and less rights than the project (scope)manager
. Please refer to the documentation on the support portal for the full discussion on this memberrole. We factually ran out of names for this role so the termsupervisor
might be a bit confusing, but in the linemember
,lead member
,supervisor
andmanager
the name should suffice and can be changed to how we refer to this role in the frontend. (KEC-21529)Added bulk clone activity or activities with the inclusion of parts. Now activities can be cloned including all of its configured parts. There are switches in the API to only clone the models used in an activity, the models and the instances, the children of the models and you can exclude the clone of some models to 'reuse' the information in an activity widget. eg. project central information. (KE-21627, KE-330)
Added a feature where the supervisor (or higher) of a scope can update the
ref
of an activity using the API. This is a settings that may be injected in the environment variables and allows very tight control over theref
field of an activity. (Assigned) members or leadmember cannot alter this at all. (KE-422)Improved the way we detect (multiple) property value filter. We can now detect quoted characters like
&</>
. It will throw a failure if you incorrectly quote the values. (KE-250)Improved the way we handle
Attachment properties
in the context of previewing it in the Excel Importer (KE-433).Improved the handling of JPEG images (from iPhones) that have a built-in thumbnail (a so called MPO image). This was seen as animated GIF and could not be resized properly. (KE-466)
Fixed a permission for user assigned to a task. When assigned to a task, the create_new_instance permission should be True.(KE-356)
Reinstated the
activity_id
filter for Parts. (KE-402)Fixed a bug involving the
Excel Importer
that failed if there wasINSTANCE_ID
column inside the Excel file. (KE-369)Added a fix that now handles correctly duplicate named properties or when a
property
and thepart model
have the same name when import an Excel. (KE-359)Fixed a bug that handles the rendering of a
Widget
title correctly inside a PDF, even if the widget has no associatedParts
orProperties
(KE-407).
Added manage script to help fixing incorrect single and multiselect list properties. (KE-424)
Fixed a bug that handles the rendering of a Widget
title correctly inside a PDF, even if the widget has no associated Parts
or Properties
(KE-407).
Increased the maximum length of a link (URL) to 4 kB such that we can handle longer links than previous. Now all modern browsers can handle long links. (KE-307)
Development and production is now python 3.8 compatbile. (KE-339)
Fixed a bug that caused
Multi-column widgets
to not have their titles rendered in the PDF exporter. (KE-341)
Added two new filters
property_value_set
andwidget_property_value_set
to the Parts api: the first filtering for Parts not having a value set, the second the same, but within the context of properties related to a given widget. (KE-206)We fixed the issue of the Excel import not creating Part objects. (KE-272)
We improved the response of the
Share PDF
functionality. It is now fully asynchronous and the code has been refactored (KE-199)Added a missing key
parentWidth
to the multicolumn widget schema. (KE-333)Added migration script to fix old style GPS properties to a proper GEOJSON property. (KE-313)
We improved the query for the
property_value
filter on thePart
api. When a complex query for filter was requested through the API it could potentially result in a large load on the database and the underlying system and that is undesired. We refactored it to orders of magnitude faster. (KE-205)Added the Service Card widget and widget meta information in the backend. The Service card widget can be configured in the frontend to show a 'card' (a picture attachment) with a link to execute a certain Service. This is mainly used in the 'APP' environment to execute scripts that need a picture right above it. (KE-172)
We changed the way we handle the serialisation of objects that are needed for background tasks. We implemented a serializer capable of handling UUID's and datetime objects natively. (KE-183)
Added bulk create parts endpoint to provide a bulk importing of part instances for a known model. This enables very fast importing of large amounts of part instances in the backend. (KE-61, KEC-21975)
Added a additional logic to the
autocorrect_widgets
manage command to (re)set the associations of signature widgets to be always writable as that should be the case. (KE-157)Added name of the user in the team member response. (KEC-22057)
Included
Scope Reference Properties
to the PDF Exporter. (KE-131)Included
User Reference Properties
to the PDF Exporter. (KE-130)Increased the length of a subject of a notification to 255 characters (before it was 100). (KE-133, KEC-21790)
Prepared the back-end for the introduction of an
Excel Importer
wizard (KEC-21838)Added the
Weather Property
,Geojson Property
next to theAttachment Property
on the list ofProperties
not supported by theExcel Importer
(KEC-22010)The importing is now being done asynchronously. This will guarantee that the import will succeed regardless of the number of
Parts
being imported (KEC-21890)Added
Notifications
for the user running theExcel Importer
. The user will now receive an email being informed of all the warnings discovered during the import (KEC-21849)Added a tasks count per status (OPEN, CLOSED) on the scope object for dashboarding. The field on the scope object is called
tasks_status_count
. (KE-193)Minor fix for the self documenting API on /doc/api/. When in the past you added the final '/' an error popped up. (KE-204, EXC-5)
Fixed an issue where too long urls where caused the rendering of maps to break (KE-111)
Fixed an issue where posting a list of non-id objects, as a value to a reference property, would lead to a breaking lookup error (KE-87)
Added option to save the user reference property during create part with its properties (KE-83)
Removed recently introduced maximum amount of responses per request as it has undesirable effects on retrieval of objects from the backend. (KEC-22103)
Fixed an issue where an excel import could fail due to a missing dependent library package in the backend for production environments. (KEC-21959)
Fixed an issue where an excel import would fail if the INSTANCE_ID was not specified in the header of the Excel. When that is the case, then all rows will become new parts. (KEC-22099)
Fixed an issue where a Weather Property left empty was incorrectly rendered by the PDF exporter (KEC-22071).
Fixed an issue where the kevents channel manager did not create a proper kevent channel for newly connected users. That resulted in that Activity metric kevents where not send out to end users. (KEC-22096)
Fixed an issue where a move of an activity with its children from one part of the activity tree to another part (we call that the 'classification' of an activity) did not update the classification of the children (KEC-22090)
Fixed an issue where a race condition could result in some harmless background noise (value exceptions) when deleting multiple tasks with navigation bars inside. (KEC-22087)
This release improves the communication with the frontend by introducing scope grouped kevents. The user will only receive kevents from scopes he has access to.
We fixed a migration towards the use of geojson where in some cases already existing data could not be properly migrated, causing the migration to fail and storage of geojson (GIS) data to fail for the instance. (KEC-22085)
Added name of the user in the team member response. (KEC-22057)
Added the concept of a Weather and GeoJSON property type. The weather is provided by https://weatherapi.com and retrieved based on location in the frontend.
Updated the way a Weatherwidget is shown in a PDF. It mimics the style how it is shown in the form itself.
Updated the way we now download and include maps in PDF's. The map provider is based on https://mapbox.com which provides more flexibility in showing maps. It has a better integration with the storage format of geographical information that we choose to implement namely GeoJSON. We now support not only Points but also Areas, Polygons and other advanced features. It is future proof to work with imported layers in the future.
Fixed an issue where the scope object was tried to be retrieved for recently deleted objects which caused an exception while sending deleted kevent. Now we catch that error properly. (KEC-21868) The scope object is needed to understand which users need to be informed of the deleted object through a kevent.
Fixed and issue where the authentication to the kevents websocket channel for KE-node's was incorrect. (KEC-21862)
The backend websocket channels function is upgrades to channels version 2. Also other libraries are upgraded to accomodate these improvements.
the deployment in production relies now only on the ASGI server being run. That means we only need to have
daphne
running. By the elimination of another layer of distribution of webrequests, we gain a performance improvement of 33% or more in places, cutting 1/3 of the response time.The services execution can now optionally install or suppress the installation of requirements from a kecpkg. When the service is trusted and the install requirements flag is off, it can reduce the execution overhead time. (KEC-21765)
We have added the
Weather widget
inside the PDF exporter (KEC-21896).All the fairly new properties (
Multi-select
,Weather information
,Geographical location
,Activity reference
,Date
) are processed correctly by the Excel exporter (KEC-21806).Fixed the zoom level when you visualize an GeoJson Image inside the PDF (KEC-22010).
Fixes
We discovered a problem where kevents for
Services
andServiceExecutions
where not correctly passed to the frontend. (KEC-21670)We discovered an issue on the PDF exporter. Some empty grids in teh
Activity
would break the generation of the PDF. Now they are handled correctly and the PDF is generated (KEC-21775)When we move an activity it will now automagically use the classification of the target parent process. (KEC-21535)
We discovered a small issue in the descendant filter in the Part api when an invalid or unknown id is provided. Now we return an informative message to the client in a bad request. (KEC-21623)
We improved the 'share activity PDF to an email' API function where previous a recipient email was needed alongside the recipient userid. A list of recipient email addresses is no longer needed. (KEC-21760)
We improved the exporting of a
Property Grid Widget
inside the PDF. AttachmentProperties
containing images are now showing a thumbnail rather than a path. (KEC-21969)We changed the handling of empty grids inside the PDF. A
Grid widget
with no parts inside will be shown as an empty table (KEC-21615)Fixed the display of a
Geographical location Property
inside the PDF grids. (KEC-22005)
We included several new property types, including new references properties, JSON property, Multi select list property and some more
We added activity cloning to allow for the frontend and API to clone activities in the backend including all of their widgets.
We added the possibility to import an Excel or CSV file into a Grid. The recommendation is to first download the Grid into an Excel and work from there, but it is possible to start also directly with a new document. See documentation for more info. (KEC-21602)
We added a new option to the Basic Table and Paginated Table widgets. It is now possible to hide the entire Part column from the widget configuration (KEC-21375). The option is also respected when generating the PDF (KEC-21641);
There was an issue when exporting a PDF with Form Widgets inside. Sometimes the order of the properties in the PDF was different than the one present in the widget itself. This has now been fixed (KEC-21435, FEEDBACK-3346);
Fixes
We found an issue where cloning a part instance where the model multiplicity would not allow that, would continue. We added tets and additional validations for it. KEC-21639
We found a small issue where cloning a scope will emit a websocket kevent to the frontend. In that websocket information is requested that is 'yet' to be created in the cloning of the scope. (KEC-21663)
We found a minor issue where an 'is_container' flag on the part object gives an error. KEC-21673
We encountered an issue where the bulk deletion of updating of parts would allow a malformed request payload, while it did not invalidate it right away and caused a disturbance in the force further down. We improved the validation and added additional tests to cover this usecase. (KEC-21720)
We encountered an issue where a combination of property value filters to retrie
This is the next major release of the backend (in combination with the frontend) of KE-chain. There are backward incompatible changed present, however we provide a automatic upgrade path to all of them.
Features
We added an image processing pipeline to autocorrect JPEG's that are made with mobile phones that show discrepancy between what you see in the browser and how it is stored on disk (rotation and mirroring) (KEC-20358)
We added the concept of a 'representation' to properties to display properties in the frontend in a certain fashion. E.g. we can now show the number of decimals or the significant digits in the frontend. (KEC-20407)
Introduce widget level associations of parts. This will provide a better calculation of progress and readiness to the frontend. Also you can now add more widgets and configure separate links to the same data model, eg. showing a propertygrid in a multicolumn widget side by side and configuring one propertygrid to the some of the properties in read-only mode, and the second propertygrid to the same or other proprties in edit mode. All thanks to widget-level associations.
One can now move widgets to and from multicolumn widgets (KEC-20413)
Added many API endpoints to facilitate the new front-end form editor.