We are proud to announce the 7.8 release of Tryton. This release provides many bug fixes, performance improvements and some fine tuning. You can give it a try on the demo server, use the docker image or download it here. As usual upgrading from previous series is fully supported.
Here is a list of the most noticeable changes:
Changes for the User
Client
We added now a drop-down menu to the client containing the user’s notifications. Now when a user clicks on a notification, it is marked as read for this user. Also we implemented an unread counter in the…
We are proud to announce the 7.8 release of Tryton. This release provides many bug fixes, performance improvements and some fine tuning. You can give it a try on the demo server, use the docker image or download it here. As usual upgrading from previous series is fully supported.
Here is a list of the most noticeable changes:
Changes for the User
Client
We added now a drop-down menu to the client containing the user’s notifications. Now when a user clicks on a notification, it is marked as read for this user. Also we implemented an unread counter in the client and raise a user notification pop-up when a new notification is sent by the server.
Now users can subscribe to a chat of documents by toggling the notification bell-icon. The chat feature has been activated to many documents like sales, purchases and invoices.
Now we display the buttons that are executed on a selection of records at the bottom of lists.
We now implemented an easier way to search for empty relation fields:
The query Warehouse: = will now return records without a warehouse instead of the former result of records with warehouses having empty names. And the former result can be searched by the following query: "Warehouse.Record Name": =.
Now we interchanged the internal ID by the record name when exporting Many2One and Reference fields to CSV. And the export of One2Many and Many2Many fields is using a list of record names.
We also made it possible to import One2Many field content by using a list of names (like for the Many2Many).
Web
We made the keyboard shortcuts now also working on modals.
Server
On scheduled tasks we now also implemented user notifications. Each user can now subscribe to be notified by scheduled tasks which generates notifications. Notifications will appear in the client drop-down.
Accounting
On supplier invoice we now made it possible to set a payment reference and to validate it. Per default the Creditor Reference is supported. And on customer invoices Tryton generates a payment reference automatically. It is using the Creditor Reference format by default, and the structured communication for Belgian customers. The payment reference can be validated for defined formats like the “Creditor Reference”. And it can be used in payment rules.
Now we support the Belgian structured communication on invoices, payments and statement rules. And with this the reconciliation process can be automated.
We now implemented when succeeding a group of payments, Tryton now will ask for the clearing date instead of just using today.
Now we store the address of the party in the SEPA mandate instead of using just the first party address.
We now added a button on the accounting category to add or remove multiple products easily.
Customs
Now we support customs agents. They define a party to whom the company is delegating the customs between two countries.
Incoterm
We now added also the old version of Incoterms 2000 because some companies and services are still using it.
Now we allow the modification of the incoterms on the customer shipment as long as it has not yet been shipped.
Product
We now make the list of variants for a product sortable. This is useful for e-commerce if you want to put a specific variant in front.
Now it is possible to set a different list price and gross price per variant without the need for a custom module.
We now made the volume and weight usable in price list formulas. This is useful to include taxes based on such criteria.
Production
Now we made it possible to define phantom bill-of-materials (BOM) to group common inputs or outputs for different BOMs. When used in a production, the phantom BOM is replaced by its corresponding materials.
We now made it possible to define a production as a disassembly. In this case the calculation from the BOM is inverted.
Purchasing
Now we restrict the run of the create purchase wizard from purchase requests which are already purchased.
And also we now restrict to run the create quotation wizard on purchase requests when it is no longer possible to create them.
It is now possible to create a new quotation for a purchase request which already has received one.
Now we made the client to open quotations that have been created by the wizard.
We fine-tuned the supply system: When no supplier can supply on time, the system will now choose the fastest supplier.
Sales
Now we made it possible to encode refunding payments on the sale order.
We allow now to group invoices created for a sale rental with the invoices created for sale orders.
In the sale subscription lines we now implemented a summary column similar to sales.
Stock
We now added two new stock reports that calculates the inventory and turnover of the stock. We find this useful to optimize and fine-tune the order points.
Now we added the support for international shipping to the shipping services: DPD, Sendcloud and UPS.
And now we made Tryton to generate a default shipping description based on the custom categories of the shipped goods (with a fallback to “General Merchandise” for UPS). This is useful for international shipping.
We now implemented an un-split functionality to correct erroneous split moves.
Now we allow to cancel a drop-shipment in state done similar to the other shipment types.
Web Shop
We now define the default Incoterm per web shop to set on the sale orders.
Now we added a status URL to the sales coming from a web shop.
We now added the URL to each product that is published in a web shop.
Now we added a button on sale from the web shop to force an update from the web shop.
We did many improvements to extend our Shopify support:
- Support the credit refunds
- Support of taxes from the shipping product
- Add an option to notify the customers about fulfilment
- Add a set of rules to select the carrier
- Support of product of type “kit”
- Set the “compare-at” price using the non-sale price
- Set the language of the customer to the party
- Add admin URL to each record with a Shopify identifier
New Modules
EDocument Peppol
The EDocument Peppol Module provides the foundation for sending and receiving electronic documents on the Peppol network.
EDocument Peppol Peppyrus
The EDocument Peppol Peppyrus Module allows sending and receiving electronic documents on the Peppol network thanks to the free Peppyrus service.
EDocument UBL
The EDocument UBL Module adds electronic documents from UBL.
Sale Rental
The Sale Rental Module manages rental order.
Sale Rental Progress Invoice
The Sale Rental Progress Invoice Module allows creating progress invoices for rental orders.
Stock Shipment Customs
The Stock Shipment Customs Module enables the generation of commercial invoices for both customer and supplier return shipments.
Stock Shipping Point
The Stock Shipping Point Module adds a shipping point to shipments.
Changes for the System Administrator
Server
We now made the server stream the JSON and gzip response to reduce the memory consumption.
Now the trytond-console gains an option to execute a script from a file.
We now replaced the [cron] clean_days configuration by [cron] log_size. Now the storage of the logs of scheduled tasks only depends on its size and no longer on its frequency.
Now we made the login process send the URL for the host of the bus. This way the clients do not need to rely on the browser to manage the redirection. Which wasn’t working on recent browsers, anyway.
We now made the login sessions only valid for the IP address of the client that generates it. This enforces the security against session leak.
Now we let the server set a Message-Id header in all sent emails.
Product
We added a timestamp parameter to the URLs of product images. This allows to force a refresh of the old cached images.
Web Shop
Now we added routes to open products, variants, customers and orders using their Shopify-ID. This can be used to customize the admin UI to add a direct link to Tryton.
Changes for the Developer
Server
In this release we introduce notifications. Their messages are sent to the user as soon as they are created via the bus. They can be linked to a set of records or an action that will be opened when the user click on it.
We made it now possible to configure a ModelSQL based on a table_query to be materialized. The configuration defines the interval at which the data must be refreshed and a wizard lets the user force a refresh.
This is useful to optimize some queries for which the data does not need to be exactly fresh but that could benefit from some indexes.
Now we register the models, wizards and reports in the tryton.cfg module file. This reduces the memory consumption of the server. It does no longer need to import all the installed modules but only the activated modules.
This is also a first step to support typing with the Tryton modular design.
We now added the attribute multiple to the <button> on tree view. When set, the button is shown at the bottom of the view.
Now we implemented the declaration of read-only Wizards. Such wizards use a read-only transaction for the execution and because of this write access on the records is not needed.
We now store only immutable structures in the MemoryCache. This prevents the alteration of cached data.
Now we added a new method to the Database to clear the cached properties of the database. This is useful when writing tests that alter those properties.
We now use the SQL FILTER syntax for aggregate functions.
Now we use the SQL EXISTS operator for searching Many2One fields with the where domain operator.
We introduced now the trytond.model.sequence_reorder method to update the sequence field according to the current order of a record list.
Now we refactored the trytond.config to add cache. It is no more needed to retrieve the configuration as a global variable to avoid performance degradation.
We removed the has_window_functions function from the Database, because the feature is supported by all the supported databases.
Now we added to the trytond.tools pair and unpair methods which are equivalent implementation in Python of the sql_pairing.
Proteus
We now implemented the support of total ordering in Proteus Model.
Marketing
We now set the One-Click header on the marketing emails to let the receivers unsubscribe easily.
Sales
Now we renamed the advance payment conditions into lines for more coherence.
Web Shop
We now updated the Shopify module to use the GraphQL API because their REST-API is now deprecated.