Release Notes - 2022. 04. 05.
In the last couple of months, as we were taking our final steps towards going live with Horizon Planner, development was driven by customer feedback even more so than usual. As a result, this release brings a couple of large, customer-requested features as well as a lot of usability improvements and polish.
Show resources from multiple organizations
The most fundamental concept for structuring data in Horizon Planner is called organization. Projects belong to a single organization, activities belong to their parent project’s organization, and so on, all the way to assignments. Resources can be much more flexible: they can be part of several organizations at the same time and can also be easily moved between organizations.
Users can of course have permissions to any number of organizations, but so far, they were restricted to working with only one organization at a time. It meant that all resources must have been available in every organization where they could be needed. This is a usable solution, but we knew from the start that this restriction doesn’t correlate well enough with the typically more flexible working practices of our customers, and as a result it could encourage bad user practices in Horizon Planner.
Naturally, we planned ahead and had a couple of solutions in mind to give users more flexibility. Starting with this release, users who have access to multiple organizations will not only be able to select a primary organization to work with, but also a list of additional organizations where resources should also be accessible from. This way, it will be possible to use resources in organizations where they don’t belong by default – a feature we usually refer to as cross-staffing.
External identifiers
Horizon Planner needs to integrate well with third party systems. This integration is never a single data import. A meaningful integration needs to import and update data regularly to keep all the information in sync. During two consecutive imports we need to be able to identify and associate the business objects in the integrated system to their representation in Horizon Planner, so we always know what data is added, removed or updated.
We solved this challenge by allowing the database to store an arbitrary number of external identifiers for resources, and in this release, we added a much-needed user interface to manage these identifiers. It is possible to define the managed identifiers on an organization-by-organization basis, and you can also make some of them read-only or even hidden from the users. The identifiers are shown on a new card in resource details and in the resource inspector.
These identifiers don’t have to be used for programmatic data import. Users now have the ability to define identifiers for other uses, for example storing certificate IDs this way.
Assignment summary improvements
The assignment summary (that you can access by right clicking a mobilization and selecting show summary) got some more customization options. It can now include selected external identifiers and selected capabilities of the assigned resources in the summary. The external identifiers can be useful to make sure that resources are identified correctly as it is quite possible to have two different employees with the same name. Including selected capabilities can give a more comprehensive picture as well as providing an easy way of double checking whether the assigned resources have the mandatory capabilities.
These new options are part of the summary template, and as such can be changed from organization to organization. Expect the assignment summary to get more attention in the next release as well!
New report generation framework
When we first started working on report generation for the 2021 March release, we made the decision to keep our code as simple as possible until we start receiving more complex requests from our customers. These requests started to arrive early this year, and as we began to analyze them, the development path for our report generation framework became pretty clear.
The first thing we recognized was that the library we used to generate Excel documents will be insufficient in the long term, so we had to replace it. With that out of the way, we started implementing a very flexible, high-level framework that allows us to define spreadsheets dynamically and fetch, fill, and format data efficiently. Finally, we have rewritten and extended all of our reports to make use of this shiny new tooling.
Other features
- Show capability levels in more places on Resources view and the Assignment Planner.
- Ask for confirmation before archiving a resource, capability or user and show a notification after activating a resource, capability or user (on the info cards).
- More report customization possibilities.
- Added a preference setting to separately show/hide busy windows on different charts.
- Show full airport name in resource and activity inspectors and on the resource info card.
- Activity name and notes are now shown in mobilization tooltips.
- Added a copy to clipboard action to contacts.
Technical improvements
This release contains a large number of more technical improvements as we took our last chance to freely break the API before Horizon Planner was used in production. There were also a number of performance improvements behind the scenes. Here is a list of the most notable changes:
- the API is partitioned into smaller logical groups;
- large assignment and holiday queries are broken up into several smaller ones to improve responsiveness;
- new server-side tools help us with various maintenance and support tasks;
- optimized some API end-points to improve performance by 30-200% in some cases.
UI improvements and bug fixes
As always, we’ll round off the release notes by mentioning some of the smaller changes we’ve made to Horizon Planner.
On the user interface front, we have:
- archived items appear with a strike-through in all parts of the UI now;
- added a notes tab to the inspector and made the inspector wider;
- made the red multiline row highlight optional in our charts;
- disabled browser auto-completion in auto-complete fields;
- made mobilization lines more visible;
- fiddled with paddings, font sizes and layouts a lot.
We’ve also worked on security improvements and fixed a few bugs. Among others, we have:
- fixed a bug where the assignment inspector showed an incorrect end date;
- the UI for scheduled task management is no longer part of our deployment to reduce the attack surface of the application.