Upgrading
Upgrading to 5.1.0 or later¶
This version reworks the Checklist Builder and adds a few new configuration options. Most of the changes are applied automatically, but there are some things you should check after upgrading.
Make sure the right people can still edit checklists¶
From this version the server also checks who is allowed to edit checklist templates, not just the builder in the browser. Only users in the group(s) set under Who can edit checklists (previously called Template builder access) can create, edit or delete checklist templates.
Administrators are not included automatically, so double check your groups:
- Go to
Lime Admin > Settings > Dynamic Checklist > Security. - Under Who can edit checklists, make sure every group that needs to edit checklists is listed.
If this is not set up correctly, those users will get a permission error when they try to save a checklist.
New: let people view checklists without editing¶
There is a new setting under Lime Admin > Settings > Dynamic Checklist > Security called Who can view checklists (read-only).
Use it to let people open the Checklist Builder and look at templates without being able to change anything. If you leave it empty, everyone can view checklists in read-only mode. See Security (Access) for details.
Settings are updated automatically¶
Two old template settings are replaced automatically when you upgrade. You don't have to do anything, but the behaviour and wording have changed:
- Use Name as Title has been removed. The checklist now always uses the template name as its title.
- Show All Items has been replaced by Hide upcoming items, which works the other way around. If you previously had Show All Items turned off, Hide upcoming items will now be turned on (and vice versa), so the checklist keeps behaving the same way.
There is also a new optional Description field on each template, shown to users at the top of the checklist behind the question mark icon.
New (optional): show connected checklists on the template owner card¶
You can now add a small card component on your template owner records (for example on a helpdesktype card) that shows which checklist template is connected to that record and links straight into the builder. This is optional. See Template owner card for how to add it.
Upgrading to 5.0.0 or later (web client rewrite, desktop support dropped)¶
Version 5 features a checklist rewritten from the ground up, and it only runs in the web client.
All support for the desktop client has been dropped
The checklist no longer runs in the desktop client. The LIP package, VBA and the Actionpad app are not used anymore. If your users run the checklist on desktop today, you have to configure the checklist web component as part of this upgrade.
What you need to do¶
- Edit your data structure so that
titleandowner_tableonchecklist_itemare no longer required. See Data structure. - Run the addon installer in
Lime Admin > Settings > Dynamic Checklist > Setupto add the new required fields onchecklist_item. See Data structure. - Replace the custom limeobject with the Initialize checklist automation for each Checklist Owner. See Custom limeobject replaced by Automation and the example automation.
- Configure the checklist web component, and set who is allowed to soft reset and re-create a checklist. These two permissions have moved out of the Lime Admin security config and into the component config, so they need to be set again for every place the checklist is shown. See Security config has moved to the component configuration.
- Update your own code if it imports from
limepkg_dynamic_checklist, calls a custom endpoint from a checklist item, or depends onchecklist_itemlimeobjects. See Packages, modules and classes, Custom endpoints and checklist_item limeobjects.
The sections below explain each change in more detail.
Data structure¶
There's a few fields on the internal limetype checklist_item that have been deprecated and can be removed (Optional)
But the required ones needs to be edited to not being required because they're not used anymore.
There's also some new fields that needs to be added to the checklist_item which is easiest to do using the addon installer.
- Edit your data structure in the database designer to make sure that:
titlefield onchecklist_itemis NOT required.owner_tablefield onchecklist_itemis NOT required.
- Go to
Settings => Dynamic Checklist => Setupand run the addon installer.- To add the new required fields on the
checklist_item
- To add the new required fields on the
Custom limeobject replaced by Automation¶
The checklist is no longer initialized from a custom limeobject. For each Checklist Owner, remove the checklist code from the custom limeobject and add the new Initialize checklist automation instead.
Remove the import and the call in before_update():
from limepkg_dynamic_checklist import checklist_owner
...
checklist_owner.before_update(self, uow)
Then add the Initialize checklist automation for each Checklist Owner. See the example automation under Installation.
Info
If the custom limeobject was created only for the dynamic checklist, remove the whole thing instead of just the two lines above: delete the entire file, including the limeobject class and its register_limeobject_classes registration. There is no reason to keep an empty limeobject around.
Packages, modules and classes have been changed¶
A big refactor of a lot of modules and packages which means both modules/packages/classes and functions have been renamed/moved/removed. Below you see a list of the public ones that needs to be updated.
Because it's common that solutions use internal imports a good way to verify that it doesn't break is to run a test that imports all files that imports anything from limepkg_dynamic_checklist to verify that you don't get any ImportErrors.
limepkg_dynamic_checklist.checklist_template.ItemData=>limepkg_dynamic_checklist.checklist_template.ChecklistItemTemplatelimepkg_dynamic_checklist.checklist_template.Template=>limepkg_dynamic_checklist.checklist_template.ChecklistTemplatelimepkg_dynamic_checklist.checklist_owner.before_updateHave been removed- Replaced by automation
Custom endpoints in checklist items¶
There are several properties that have been removed in the custom endpoint call if configured on a checklist item template.
So if you in any of your custom endpoint for the checklist are using any of these fields you need to rewrite them before upgrading to this version: The removed fields are:
item_id- It doesn't exist anymore until after a user interacts with the item, so this cannot be replace with anything.
value- Instead use
item_actionwhich is an enum with the following valuesCHECK,UNCHECK,IGNOREorUNIGNORE
- Instead use
ignore- Instead use
item_actionwhich is an enum with the following valuesCHECK,UNCHECK,IGNOREorUNIGNORE
- Instead use
item_limeobject- It doesn't exist anymore until after a user interacts with the item, so this cannot be replace with anything.
checklist_item limeobjects are only created when a user interacts with them¶
From now on the internal checklist_item limeobjects will only be created when a user interacts with an item.
So the rendering of "future" items are read from the checklist template and when a user have interacted with the item (check/skip) we create a checklist_item to keep track of the state of the checklist.
This means that customizations regarding checklist_item objects that have not been interacted with will stop working.
Security config has moved to the component configuration¶
Who is allowed to soft reset and re-create a checklist is no longer configured in Lime Admin. You now set it
per place where the checklist is shown, in the security props of the checklist component
(allowRefreshTemplate and allowReCreate), which lets you tailor each checklist flow in your solution.
See Card Property or Custom tab for examples.
Info
Can't remember your old configuration? Don't worry, switch to the code editor in Lime Admin to see the stored values from version 4.
The groups that are allowed to edit checklist templates are still configured in Lime Admin under Security (Access).
Upgrading to 4.0.0 or later¶
This version introduced technical version control of checklist templates. This means that existing checklist templates will be migrated to the first version of version handling. This is to be able to add and change the Checklist builder more drasticly going forward. Ensure to test and verify your templates after upgrading.
This version also includes breaking changes in structural in modules/packages in the checklist. Meaning if you have modified or used this in some sort of customization (rare and not recommended) things might break. So if you know that these functions have been modified, please adjust your code:
- Separate
limepkg_dynamic_checklist.checklist_helperto sub modules - Separate
limepkg_dynamic_checklist.checklist_templateto sub modules - Delete unused functions/endpoints
Upgrading to 3.2.0¶
Fix - Can configure history type of forced notes:
You can now in Lime admin select what history type that should be used when creating force notes in the checklist.
Default is comment
Fix - Access config is now done in Lime admin for both web and desktop:
If you have set userGroups in the desktop app that will override what's in Lime admin.
So to enable this you must set the wanted groups in lime admin and then remove the userGroups property in the config of the desktop app
Upgrading to 2.1.0¶
Fix - template property id is now a picker instead of text input:
The template property id is now a picker so it needs a search view and generated search index to work. Make sure that all configured Template Properties serach views and search indexes.
Feature - readonly mode on desktop checklist:
The desktop client now supports readonly mode so that a checklist could be readonly when helpdesk is closed for example. See example here
Upgrading to 2.0.0¶
This is the first version that includes the web client checklist. If you want to use it, make sure to configure it
This new major version have a lot of structural changes, this could affect existing checklists. Make sure to test them and make sure that they work. Some unwanted things/crashes could occur if not double checked.