A lot of new features have landed in Tryton this month. Some of them were on hold to prepare the migration to Heptapod but we are catching up quickly thanks to the new contribution workflow.
Changes for the User
Direct debit payments are no longer created for blocked receivable lines.
Rounding errors for multiple taxes applied to the same line, are now allocated between each tax line to provide a more accurate result.
A carrier is now required to quote a sale that has a shipment cost set. This avoids an incoherent setup which then misses quoting the carrier cost.
For consistency we renamed the field “Name” on account reconciliation to “Number” as it is generated from a sequence.
We now use a circle border for avatar images of individuals and a square border for groups like companies.
The country organizations can now be used as criteria for tariff codes and duty rates.
We now show all the criteria for the tariff codes on the product form.
The translate popup has been reworked to be clearer. It uses now a toggle button to start editing the translation for a language and uses a label to indicate a translation is fuzzy.
We changed the boolean operators in the search box from and
and or
to &
and |
. This way the searches are independent of the language and we do not need to have a way of escaping them.
The clients no longer select the first record of each list by default.
The default size of the desktop client has been increased.
When trying to assign shipments or productions, all the documents that can be fully assigned are now assigned instead of being all or nothing.
The sale, purchase, commission and stock report records can now be searched by name.
New Modules
Changes for the System Administrator
The weekly and monthly timesheet reports now also have access rules. The supervisor now has access to the timesheet reports for the employees he supervises.
The production now automatically creates stock lots for output products that require one and that have a sequence configured.
Changes for the Developer
Tryton will now warn when foreign relation records must be saved implicitly. This is to enforce a design pattern which groups together saving for performance.
Tryton no longer validates the domain for empty fields. This simplifies domain definitions for fields that are not required, as they do not need to care about the case when a field is empty. As side effect the clients don’t enforce the uniqueness of values in non-required fields.
The client now considers a domain that uses the in
clause with a single value to be a unique value.
The target_search
attribute of Many2One
fields has been removed in favor of an automatic decision based on the number of rows in the target table.
The ORM now uses the EXIST
operator instead of IN
to search on One2Many
fields when the target table has many rows.
Any needed tables are now locked at the beginning of the transaction. This guarantees that the latest values are read from the table. This is managed automatically by restarting the transaction if a table lock is requested during the execution of the code.
We added support for different types of borders on images and icons (but only for the web client).
The warehouse locations are now stored on the shipments at the point the are created. This ensures that the domain based on them stays valid during the whole life of the shipment.
The cookiecutter template is now included in the monorepo. This allows it to be versioned by series.
New exceptions have been added to stop the transaction but still return a result. This result can be an action for the client to launch.
To speed-up loading a list of records, the clients can now retrieve in the read call the string to display for selection fields.