We are proud to announce the 6.4 release of Tryton.
This release provides many bug fixes, performance improvements and some fine tuning. What is also significant is the addition of 9 new modules.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. No manual operations are required.
Here is a list of the most noticeable changes:
Changes for the User
It is now possible for modules to display a notification message from the server while the user is filling in a form. This is already used by the sale_stock_quantity
module to display a message when user selects a product which has a forecast quantity that is not enough for the order.
Users can now choose which optional columns are displayed on list and tree views. All modules have been reviewed to make non-essential columns optional and thus provide a lean interface by default.
Some views can now be used to edit but not create new records. This can be used, for example, to setup an editable list that allows the data to be modified, but creating a new record will always use the form view.
The CSV import now skips empty rows inside One2Many
fields. It is now possible to import many One2Many
fields in the same file but with different lengths.
The CSV import error messages have been improved to include the model, field and column. This makes it much easier to find and solve problems with the CSV data.
More
(click for more details)
Web Client
Reference fields can now be opened from the list and tree views like Many2One
fields. They are rendered as a link which opens a new tab using the form of the target model.
Desktop Client
CSV exports encoded in UTF-8 now include, by default, the Byte Order Mark to increase compatibility with other systems.
The multi-selection widget now uses the same default selection behavior as other lists. This solves inconsistency in the behavior.
Accounting
The reconciliation wizard now has an option to automatically reconcile the default suggestions. This speeds up the process for accounting with a lot of entries when the system is well configured.
Similar to the debit type, we now have also an optional credit type on accounts. Of course an accountant can only have one optional debit or credit type.
The general ledger now displays, by default, debit/credit columns only when there are actually lines in the account for the period. And it also display the number of lines.
We now use the invoice date (instead of the accounting date) to enforce the sequence order for customer invoices. This is more flexible and is still consistent with most country’s rules.
When interactively validating a supplier invoice with the same reference as an existing one, Tryton raises a warning as the user may be entering the same invoice twice.
Lines in a payable or receivable account can now only be added to a payment if they have a maturity date. This avoids creating payments for purely accounting lines.
The receivable payments can now be processed without needing to be approved first, just submitted. This simplifies the workflow for receiving payments like checks where there is no need for a second approval.
It is also now possible to edit the amount of a payment that is in a processing state. This is because sometimes a different amount is read from a check compared to the amount read by the bank.
We no longer create dunnings for lines with a pending payment.
It is no longer possible to select reconciled payments or groups when entering a statement. This simplifies the selection task for the user, and for the rare case where they still need to select a reconciled payment, they can still unreconcile them before selection.
The clearing line of a payment is now automatically reconciled with all the statement lines linked to it.
The user can now choose the allocation method to apply to the shipment cost.
More
(click for more details)
Banking
Tryton can now fill in or create the related bank from an IBAN.
When searching for a bank name, Tryton also searches on the BIC.
Party
The country name on a printed address is always shown in English in order to follow the international standard.
The SIREN and SIRET codes are now managed as identifiers on the party.
A party identifier can now be linked to one of the addresses of the party. The SIRET number uses this new feature.
The “autonomous city” is now allowed as subdivision for Spain.
All the lines of the street are now used as part of the record name of an address.
Product
It is now forbidden to decrease the number of digits of a unit of measure. This prevents invalidating existing quantities linked to the unit.
We now warn users who try to deactivate a product that still has stock.
Production
The stock move form now also shows, where applicable, the production it is linked to.
Purchase
It is now possible to define a default currency for each supplier.
Sale
It is now possible to define a default currency for each customer.
The origin name of an invoice line for advance payment is now filled in with the advance payment condition name.
The advance payments are now recalled with a negative quantity instead of a negative price.
The opportunities reports now use real date fields to display the month instead of two fields - year and month. This improve the search possibilities.
Sales made by POS are now included in the general sales reports.
When registering cash change given using the POS, we use a negative debit or credit in the accounts. This prevents artificially increasing the totals.
A notification is now displayed directly to the user when entering in a sale of goods whose forecast quantity is not high enough to cover the sale.
Stock
Tryton now also recalculates the cost price on the moves of drop shipments.
The assignation process now uses the lot number as criteria if it is populated.
Upward and downward traces have been added to stock lots to improve lot traceability.
It is now possible to select the UPS notification service.
The forecasts are now applied to all the stock supplies instead of only the purchase requests.
More
(click for more details)
Web Shop
Tryton now supports editing orders from Shopify.
New Modules
Account Spanish SII
The Account Spanish SII Module allows sending invoices to the SII portal. This is legal requirement for some Spanish Companies.
Account Invoice Watermark
The Account Invoice Watermark Module adds a draft or paid watermark to the printed invoice.
Account Receivable Rule
The Account Receivable Rule Module defines rules to reconcile receivables between accounts.
Account Stock Shipment Cost Weight
The Account Stock Shipment Cost Weight Module adds “By Weight” as an allocation method for shipment costs.
Account Tax Non-Deductible
The Account Tax Non-Deductible Module allows the definition of non-deductible taxes and adds reports for them.
Purchase Product Quantity
The Purchase Product Quantity Module permits enforcing minimum and rounded quantities to be purchased per supplier from purchase requests.
Sale Invoice Date
The Sale Invoice Date Module fills in the invoice date for invoices created by sales.
Sale Product Quantity
The Sale Product Quantity Module permits enforcing minimum and rounded quantities to be sold per product.
Stock Shipment Cost Weight"
The Stock Shipment Cost Weight Module adds “By Weight” as an allocation method for shipment costs on the carrier.
Changes for the System Administrator
The CORS configuration is now also applied to the root path.
Tryton now automatically retries sending emails if there is a temporary failure status.
We removed the password validation based on entropy. It was not a good measurement for robustness of password.
The login methods receive the options ip_address
and device_cookie
.
Country
The script to load postal codes now uses the Tryton CDN for more reliability.
We now support pycountry 22.1.10.
Changes for the Developer
We now use the unittest discover method as a replacement for the deprecated test
command from setuptools.
The documentation now contains a tutorial on how to create a Tryton module.
The models now have an on_change_notify
method which is used to display messages on the client while user is filling in a record.
The ModelStorage
has now a validate_fields
method which permits validation to occur only when specific fields have been modified. This is useful if the validation is expensive. All the modules have been reviewed to take advantage of this new feature.
The depends
on the Field
are now python sets. It is also no longer necessary to define depends for the states, domain and digits expression. Tryton calculates them automatically. However, it is still needed for the context if you want to be sure that it will always be set.
We include in the view only the depends fields that are needed for that type of view (editable or not).
We prevent creating or deleting singletons. The corresponding actions are disabled in the clients.
The Reference
fields use a dictionary for domain
and search_order
. The keys are the name of the target model.
It is possible to define a field on a tree view as optional. The user will then have the choice of whether to display it or not.
The creatable
attribute on tree and form views allows defining whether the view can be used to create new records or not. If not the client will switch to another view from which records can be created.
The local cache of instances created by Function
fields are now populated with the values that have already been read. This speed up the calculation of these fields.
The value of Function
fields are now cached during the transaction if it is readonly.
We use the JSONB
column type to store Dict
fields on PostgreSQL backend.
More
(click for more details)
Web Client
We now use ECMAScript version 6.
Desktop Client
We added an option to define the logging output location.
Accounting
A date must always be set in order to calculate taxes.
We enforce the same type for the children of an account with a type set.
A unique Reference
field is now used to on the statement line instead of multiple Many2One
fields.
More
(click for more details)
Banking
We enforce the uniqueness of the IBAN and permit only one per bank account.
More
(click for more details)
Country
The script to load subdivisions no longer fails for unknown subdivision types.
Web Shop
A route has been added to support the Shopify webhook for orders. This allows quicker order synchronization.
We removed the API backoff time and now support request retries using the Shopify Retry-After
header.
We modify only the metafields managed by Tryton.
3 posts - 1 participant
Read full topic