# Tryton Release 3.6

**URL:** https://discuss.tryton.org/t/tryton-release-3-6/5947
**Category:** News
**Created:** [April 22, 2015, 4:00pm UTC](https://discuss.tryton.org/t/tryton-release-3-6/5947 "2015-04-22T16:00:00Z")
**Posts on this page:** 1
**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 22, 2015, 4:00pm UTC](https://discuss.tryton.org/t/tryton-release-3-6/5947/1 "2015-04-22T16:00:00Z")

</div>

We are proud to announce the 3.6 release of [Tryton](http://www.tryton.org/).

The release shows the official support of [PyPy](http://pypy.org/) which is an alternative implementation of Python which focuses on speed and efficiency.

_As usual, migration from previous series is fully supported with the obvious exception of the ldap\_connection module which was removed._

## Major changes for the user

- A new color scheme for the graphs has replaced the single brightness variance. Now the color scheme also changes the hue for each color by the golden angle (which ensure a color will not be picked twice).

 ![Graph color scheme](https://discuss-cdn.tryton.org/uploads/default/original/2X/2/2d0bbe5367ca393758b314675d612076f5e08136.png)

- The dictionary widget receive completion on key searching like the other widgets.

- The date/time widgets have been completely rewritten to be more flexible on the format to enter. But they are also more practicable when used with mouse only thanks to the real pop-up for the calendar and the drop down for the time.

 ![Date widget](https://discuss-cdn.tryton.org/uploads/default/original/2X/0/030361c3b225de3ec6977c192e16bf8ae08eb4f0.png)

 ![DateTime widget](https://discuss-cdn.tryton.org/uploads/default/original/2X/3/316adfcb844cfac7ea7eea6c54ff0f396e85726a.png)

- Columns of list view that have always the same value are hidden automatically because they don’t provide information. For example, the list of posted invoices will not show the state column because by definition they are all posted.

### Accounting

- It is now possible to add a description to the cancel move from the wizard.

- A new option to only show the balance appears in the General Ledger.

- Tax can now be configured to modify the base price for the next taxes in the list.

- It is now possible to define templates for common moves. When running a template, the user will be asked to encode some data like an amount or a party, then an account move will be generated with those inputs.

 ![Move Template](https://discuss-cdn.tryton.org/uploads/default/original/2X/6/6ffc4ec21e95debfbe733d5b59faec9a91b81b21.png)

- A printable report exists now for the depreciation of assets.

- The account charts for France and Belgium has been updated. And the Belgium one is now translated in dutch.

- A test wizard is available now to see the result generated by the payment term. As the payment terms are quite flexible because they support to apply many deltas (instead of only one), it is not always easy to forecast the behaviour.

 ![Payment Term Test](https://discuss-cdn.tryton.org/uploads/default/original/2X/e/edee394daa32a9fcedf7eec9fc27befdf077fcd5.png)

- The [SEPA](https://en.wikipedia.org/wiki/Single_Euro_Payments_Area) coverage is now extended to the `pain.001.003.03` and `008.003.02` flavors which are used in Germany. And it is also possible to re-generate a SEPA message in case of wrong configuration on the first generation.

- The statements create moves grouped by default by number, date and party. So when one statement line is split for invoice reconciliation, only one move will be created now and the origin of this move will be the group of the statement lines.

- Tax rules can now depend on the origin and the destination country thanks to the new module `account_tax_rule_country`.

- The [CFONB](https://fr.wikipedia.org/wiki/Comit%C3%A9_fran%C3%A7ais_d%27organisation_et_de_normalisation_bancaires) custom (non-standard) format of SEPA is added by the new module `account_payment_sepa_cfonb`.

- A new type `deposit` of account is added by the new module `account_deposit`. It allows to invoice deposit and recall later this amount on the next invoice.

### Product

- The price list can now be defined as tax included. Tryton will then compute the price without taxes based on the taxes applied.

### Sale

- A new state `won` was added to the sale opportunity. It goes to this state automatically when at least one of its sale is confirmed and all others are also confirmed or canceled.

- The amount of the opportunity is updated accordantly to the amount of the linked sales. This will give more accurate reports.

- The computation of the shipment cost is now computed only at the quotation. This lower the load on the client when the order is pretty large as the cost will be computed only once instead of each times a line is added.

- The new module `sale_extra` allow to add extra line on sale based on criteria. The extra can be either a free product or an extra service cost etc.

### Stock

- There is now a relate from the product to its order points.

- The creation of purchase request warns also on late production like it does for late incoming shipment.

- The Shelf Live/Expiration Dates are now supported with the new module `stock_lot_sled`. When a lot is expired, it is no more used to compute the forecast quantity of the stock.

### Commission

This new area is managed by a set of new `commission` modules. The commissions are created for the agent defined on a sale or invoice using a commission plan.  
It is also possible to define principals on the products to which commissions must be repaid.

## Major changes for the developer

- It is now allowed to have many times the same field in list/tree view.

- There is no more a `datetime` widget for list/tree, two columns with one widget date and one widget time should be used instead.

- A new field `TimeDelta` appears in this release to represent a duration. It replace the `float_time` widget which had some rounding issue. This new field is already used in the `timesheet` and `project` modules.

- The `One2Many` widget can be configured to use a Cartesian product with the selections of many values for `Many2One` or `Reference` fields.

- A method `restore_history_before` is added to `ModelSQL` which behaves like the existing `restore_history` but restore the records just before the datetime.

- The `on_change` methods have been migrated to a behaviour more consistent with the [Active Record Pattern](https://en.wikipedia.org/wiki/Active_record_pattern) used in Tryton. Instead of returning a dictionary with the values to change, now the instance is directly changed. This allow to chain easily the `on_change` methods or reuse them in other methods reducing the duplication.

- The method `save` on `ModelStorage` is now a `dualmethod` which means that it can be called as usual as an instance method but also as a class method with a list of records. Saving many records at once this way improves the performance as the method will minimize the number of queries to the database and will validate the result by bunch.

- The `Dict` field received a `translated` method to create descriptors which translate the values or the keys like the same method on `Selection` field.

- It is now allowed to use the dotted notation in the order clause of a search. The [ORM](https://en.wikipedia.org/wiki/Object-relational_mapping) will automatically generate the needed joins.

- The [API](https://en.wikipedia.org/wiki/Application_programming_interface) of the `Report` class has been reworked to improve the customization of the engine. The formatting methods are now more strict to prevent silent failure.

- The `safe_eval` (which was not sure to be safe) has been completely removed. In the places where the evaluated code was any way safe, the standard `eval` is used. For evaluated code from outside, a [JSON](https://en.wikipedia.org/wiki/JSON) notation is now used. Some utilities have been developed to ease the creation of JSON from [XML](https://en.wikipedia.org/wiki/XML) or in the views.

- A new kind of button has been added which works on non-saved record. They are quite similar to `on_change` but they are triggered by a click on a button instead of a change of field.

### Accounting

- A new method `reverse_compute` has been added to Tax which allow to compute the base amount from the taxed amount.

- The sign of the second currency amount is enforced to be the same as debit - credit.

- The analytic account management has been reworked to use a really `One2Many` instead of the pseudo-field. This simplification was possible thanks to the recent new features like the usage of `Reference` field on `One2Many`.

### Party

- The vat number is now stored in its compact format.

### Product

- The number of decimal for internal price calculations is now a configuration parameter `price_decimal`. This parameter is used everywhere to ensure consistency between all modules.

### Purchase/Sale

- Their lines support both mixed invoice type (Invoice vs Credit Note) per line when computing the invoiced quantity.

### Stock

- A new state `staging` is added to the move. Such state doesn’t impact at all the computation of the stock level. It is used for supply on sale, to create moves in advance.

- Inactive products are still computed for the stock level.

- The computation of assigned move has been improved to take only in consideration outgoing move assigned not the incoming. This result in a less optimistic for the stock level and thus prevent to assign a move with an incoming one that is just assigned but not yet done.

- Forecasts are now automatically deactivated when their period is in the past.
