Here’s a sneak peak at the improvements that landed during the last month.
Changes for the User
We now show the carrier on the shipment list so it’s possible to prioritize shipments based on the carrier.
We’ve added a wizard to make it easy to add lots to stock moves. The sequence to use for the lot number can be configured for each product.
We ensure the unit prices for stock moves are up to date when their invoices are posted or their moves are done.
The account move lines created by a statement now have the statement line as their origin. This makes it simpler to audit the accounts.
We now use the menu path from which a window was opened as its name.
We now warn the user when they try to post a statement with cancelled or paid invoices and then remove them from the statement.
A delivery usage checkbox has been added to contact mechanisms just like for addresses. It can be used, for example, to indicate which email address to send notifications related to deliveries.
The clients now display the revision on the dialog. This is useful, for example, when opening the party dialog from the invoice when the history is activated. This way the user can see from which date the information is displayed.
It is easy to get lost when quickly opening consecutive dialog fields. To improve the situation, the clients now display breadcrumbs in the title showing the browsing path to the dialog.
There is now a scheduled task that can be configured to fetch currency rates at a specific frequency. By default it gets the rates from the European Central Bank.
Changes for the System Administrator
We’ve added device cookie support to the clients. This allows these clients to not be affected by the brute force attack protection.
Changes for the Developer
It is now possible to send emails with different “FROM” addresses for the envelope and header.
All the warnings can be skipped automatically by adding a single key named
_skip_warnings to the context.
We’ve added the trigonometric functions to the SQLite back-end.
Any fields that are loaded eagerly are no longer instantiated automatically but instead the id is just stored in the cache. The instantiation is done only if the field is actually accessed. This improves the performance of some operations by up to 13%, but the actual improvements you can expect will depend a lot on of the number of fields the model has.
It is now possible to define help text for each selection value. However, at the moment only the web client can display it.
We made the
ModelView.parse_view method public. This allows the XML that makes up the view to be modified by code before it is sent to the client.
It is now possible to group the report renderings by header. As the OpenDocument format only supports a single header and footer definition, this feature renders a different file for each header and places them in a zip file if needed. This is used when rendering company related reports which display the company information in the header/footer.
In order to simplify the dependencies in our web client, we replaced tempusdominus with the browser’s native input methods for types
time when available.
In order to make better use of the browse cache, the
getter method of
Function fields is called with cache sized groups of records.