# Tryton Release 7.6

**URL:** https://discuss.tryton.org/t/tryton-release-7-6/8532
**Category:** News
**Created:** [April 29, 2025, 6:00am UTC](https://discuss.tryton.org/t/tryton-release-7-6/8532 "2025-04-29T06:00:09Z")
**Posts on this page:** 3
**Page:** 1

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [April 29, 2025, 6:00am UTC](https://discuss.tryton.org/t/tryton-release-7-6/8532/1 "2025-04-29T06:00:09Z")

</div>

![Man and Woman Sitting at the Table](https://discuss-cdn.tryton.org/uploads/default/original/2X/d/d46f64898f278f7b1687057ebccf269e4fedc32d.jpeg "Credit: Pexels by Anastasia Shuraeva")

We are proud to announce the 7.6 release of [Tryton](https://www.tryton.org/).  
This release provides many bug fixes, performance improvements and some fine tuning.  
You can give it a [try on the demo server](https://www.tryton.org/demo), [use the docker image](https://hub.docker.com/r/tryton/tryton/) or [download it here](https://www.tryton.org/download).  
As usual [upgrading from previous series](https://docs.tryton.org/7.6/server/topics/setup_database.html#update-a-database) is fully supported.

Here is a list of the most noticeable changes:

## Changes for the User

### Client

We added a new menu entry on the list to reset the column widths to their original size.

 ![Menu entry of reset column widths](https://discuss-cdn.tryton.org/uploads/default/original/2X/d/dac201d9ad502f3d6c460d4fdbb3d19d0d5a560a.png)

A new widget has been added on the form to pick a color.

 ![Color widget on product attribute](https://discuss-cdn.tryton.org/uploads/default/original/2X/b/b4f65d54dfdcaf99d56bd8d469994928f2ef2acb.png)

A simple chat widget has been added on the sidebar in beta.  
It allows to chat in live between users on specific document.

 ![Chat on a sale order between Jim, Dwight and Michael](https://discuss-cdn.tryton.org/uploads/default/original/2X/f/fde9976dabf0cc2f0b3365a2ee4af559d965f98e.png)

When saving a CSV export, the option to ignore the search limit is now stored also on the server.

#### Web

It is now possible to resize the column widths (like on the desktop client).

### Accounting

As creating payment term is not always easy, we provide now by default the most common payment terms like “Net 30 days”, “Net 30 days End of Month” etc.

The legacy numbering of account move based on journal has been removed and the _Post Number_ field has been renamed to _Number_.  
Also the numbering of account move is using now a strict sequence to guarantee any missing number.

The sign of the amount of account and analytic budgets has been inverted to be the same as the income statements.

The Spanish AEAT reports are not using a start and end periods instead of a list which may not be continuous.

Depending on the payment method, it is no more always needed to group payments to process them. For example, Stripe and Braintree payments do not create a payment group as they are managed individually.

It is now possible to download all the SEPA message at once.

When entering manually, the statement is using its start date to compute the start balance instead of balance of the last statement. This is useful if for some reasons, you are not entering the statements in the chronological order.

We added a new report displaying each statement journal with its latest date and balance.

It is now possible to order by custom preferences the bank account of a party. This is usefull for defining payment bank account as Tryton always pick the first one by default.

### Sale

We manage now the expiration of quotation. A validity duration can be configured for the quotations. It is not possible to confirm a quotation with a sale date after the expiration date. When a quotation reaches its expiration without being confirmed, it will be automatically cancelled.

It is now possible to open a list of all the products from a sale order. This is useful for example to verify the available quantities at once.

A new action has been added to the complaint to create automatically a coupon number from a promotion. It is a common practice to answer to customer complaint by giving them such coupon. This feature prevents to give the access right to create coupon to the user managing the complaints.

The actual quantity of the sale line is now used when processing a complaint instead of the ordered quantity.

We added on the sale the original amount and total before any promotion was applied. This is useful if you want to show those amount to the customer.

We added a menu entry to open all the coupon numbers of promotion. This eases the management when you have a lot of coupon numbers.

Now if a secondary unit is defined on the product customer, then it is filled automatically on the sale line.

### Purchase

A date has been added to the purchase orders to store when the quotation will expire. This improves the following of quotations before they expire.

Now if a secondary unit is defined on the product supplier, then it is filled automatically on the purchase line.

### Stock

We display the quantity of product when searching for a location; product or lot from a stock move.

The internal shipment gains a packed state when it is between two warehouses. This way we support also to create packages and shipping labels for such shipment.  
We also compute the measurements for the internal shipments as needed for some carrier.

The location place is now displayed on inventory line to help finding the products in the location.

### Company

It is now possible to define which tax identifier to use for a company per country and/or organization. For example a Belgian company with a Belgian VAT may have a French VAT number when doing business in France.

### Country

Tryton can now search subdivision by their shorted code. This provides a better user experience as the full subdivision codes are often prefixed with the country code that the user usually do no type.

### Incoterm

We do not require anymore the Incoterm for sale between European countries.

### Notification

It is now allowed to set a fallback user on notification without a field set. So the user is always notified.

### Party

We support now to enter structured address (with entries for the street name, building number, post box etc), then such address will be formatted following its country. We include in standard the format of 222 countries.

 ![Party form showing address filled with structured data](https://discuss-cdn.tryton.org/uploads/default/original/2X/e/e086c63ac204db21a76595ef160e711ee8c9e759.png)

We notify the user if he is about to create a contact mechanism that already exists.

We added new tax identifiers such as the Brazilian Company Identifier, the Canadian Business Number and the Croatian Identification Number.

### Web Shop

On Shopify, we archive products that are removed from the shop instead of deleting them. This way if they are added back, we do not loose any customization done in Shopify admin.  
In the same way, we do not update the product description if it is empty so they can be fully managed in Shopify admin.

## Changes for the System Administrator

### Web User

We allow users of the \*Party Administrator" group to edit web users.

## Changes for the Developer

### Server

To follow the official supported Python version, the support of Python 3.13 has been added and support of Python 3.8 has been removed.

We lock now records at the transaction start like for the table.

We include a `DecimalNull` in the tools that behaves like the SQL NULL by with `Decimal`.

We introduce a chat backend as beta.

`Transaction.check_warnings` is now a dictionary used to delete warnings all at once at the end of the transaction.

The target model of a field is now stored in `ir.model.field`.

The `ModelStorage` has been reworked to add dedicate hooks that replace and simplify in many cases the need to extend the `create`, `write` and `delete` methods. There is now:

- `preprocess_values`: to prepare the values before `create` or `write`
- `on_modification` : to trigger processes when some records and fields have been modified
- `check_modification`: to verify if a modification is permitted
- `on_write`: to set methods to be called once the records have been modified
- `on_delete`: to set methods to be called once the records have been deleted

And there is now a `ModelStorage.compute_fields` method used to store new values for computed fields.  
All those changes allowed to remove almost all the extension of the CWD methods reducing the complexity and improve the performance.

The select timeout for the cache channels is now configurable.

The series of `trytond` is now stored in the database. This allows the server to prevent to use by mistake a database from a different series.

The wizard state views are now filled with the default values. This removes the need to use `getattr` with a default value.

As `passlib` does not support Python 3.13, it has been replaced by `pwdlib`.

It is now possible to limit the size of the RPC arguments. All the standard RPC methods have been reviewed to add such limitation when it makes sense.

The `field_names` argument is now optional when calling `Model.default_get`.

The XML data are now always synchronized with the database. So the `ModelStorage.check_xml_record` method has been removed.

When searching on `Char` and `Text`, the `None` values are converted as empty string which is the expected behavior by users.

It is now allowed to return instances as default values instead of id. The server will convert them automatically into ids for the client.

The metadata columns are now added automatically to the query of the `ModelSQL.table_query`.

The `Report.header_key` receive now also the `data` on which the report is executed. This permits to group records based on data from a wizard for example.

The integer part of the `digits` attribute is now also validated by the server.

We added the support for `DATE_TRUNC` and `EXTRACT` from `INTERVAL` to the SQLite backend.

Tryton now supports up to 4 translations depending on the plural setup of the language.

The methods `msg_gettext` and `msg_ngettext` are now available in the report context.

Tryton set the Decimal precision of the default context from the `TRYTOND_DECIMAL_PREC` environment variable.

We replaced the use of docstring of `Model` by a ` __string__ ` attribute filled with a default value based on the ` __name__ ` value. This allow to run the server with the level 2 of optimization of Python.  
The `name` field of `ir.model` has been renamed into `string` and `model` into `name` and the `field_description` of `ir.model.field` into `string`.

### Proteus

We added an helper function `launch_action` which allow to launch an action on a lits of records using its XML ID. This ease writing scenario to test those actions.

### Client

A new `color` widget type has been added for the icon and image fields.

### Accounting

A `company` argument has been added to method to check the credit limit to be explicit for which company is the amount it checked instead of relying on the contextual value.

The `description` field on payment has been renamed into `reference` to follow the Tryton naming convention and reflect the actual usage.

The Stripe checkout is now using the [Payment Element](https://docs.stripe.com/payments/payment-element).

### Party

The `name` field of address has been rename to `building_name`.

The `co_rut` tax identifier has been replaced by `co_nit`.

### Sale

We have added a scheduled task to confirm sales based on payment. This is to strengthen the process in case the payment is succeeded and the sale can not yet be confirmed.

We removed the `name` field on the promotion coupon.

---

<div class="post-metadata">

### Author: ![ced](https://discuss-cdn.tryton.org/user_avatar/discuss.tryton.org/ced/32/1237_2.png) [@ced](https://discuss.tryton.org/u/ced)
#### Post date: [April 30, 2025, 6:35am UTC](https://discuss.tryton.org/t/tryton-release-7-6/8532/2 "2025-04-30T06:35:14Z")

</div>



---

<div class="post-metadata">

### Author: ![system](https://discuss-cdn.tryton.org/uploads/default/original/1X/c6f8ec0a40525cdcd50058c734283450a4b3d38b.png) [@system](https://discuss.tryton.org/u/system)
#### Post date: [May 29, 2025, 6:00am UTC](https://discuss.tryton.org/t/tryton-release-7-6/8532/3 "2025-05-29T06:00:25Z")

</div>

This topic was automatically closed after 30 days. New replies are no longer allowed.
