# Newsletter January 2020

**URL:** https://discuss.tryton.org/t/newsletter-january-2020/2037
**Category:** News
**Created:** [December 31, 2019, 11:00pm UTC](https://discuss.tryton.org/t/newsletter-january-2020/2037 "2019-12-31T23:00:05Z")
**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: [December 31, 2019, 11:00pm UTC](https://discuss.tryton.org/t/newsletter-january-2020/2037/1 "2019-12-31T23:00:05Z")

</div>

![2020 Balloons](https://discuss-cdn.tryton.org/uploads/default/original/1X/e690d8ba20bd5e960097913aee667da99d54a47b.jpeg)

The [Tryton team](https://www.tryton.org/supporters) wishes you a happy new year.  
Here are the new features the team has already prepared for the next version.

Contents:

- [Changes for users](#heading--users)
- [Changes for developers](#heading--developers)

## Changes For The User

We [prevent posting draft moves](https://bugs.tryton.org/issue8864) that were created when a statement was validated. Such moves are posted when the statement is actually posted. This ensures a coherent state between the statement and the moves.

In every case the [production cost is now allocated automatically](https://bugs.tryton.org/issue3209) to the outgoing moves. The allocation is based on the list price of each of the outgoing products. Any products with no list price are considered as waste and do not have a cost allocated.

We [added the list of selection criteria to the carrier](https://bugs.tryton.org/issue8817). So if you duplicate a carrier, the criteria are also automatically duplicated.

The [company module now has its own menu entry](https://bugs.tryton.org/issue8819) and its own administrator group. This provides finer access control.

The [“project invoice” group no longer gives access to the timesheets](https://bugs.tryton.org/issue8822). This provides a better separation of roles.

On small screens (like mobile), the web client [no longer displays empty cells](https://bugs.tryton.org/issue8765). This optimizes the space available for use with other information.

You [no longer need to enter a work center](https://bugs.tryton.org/issue8888) for production works that are in a request or draft state.

We [now use the `multiselection` widget](https://bugs.tryton.org/issue8894) to [select the week days that a supplier can deliver on](http://docs.tryton.org/projects/modules-stock-supply-day/en/latest/).

When starting an CSV export from a client, by default all of the columns in the current view are selected. Before it skipped the `Many2One` fields for technical reasons, but these are now [also selected](https://bugs.tryton.org/issue6962). This provides the user with better, more expected, behavior.

You can now [define a supervisor for each employee](https://bugs.tryton.org/issue8820). This can be used to define access rules based on the company’s organization.

To improve the display performance on the web client, the [number of records displayed is reset](https://bugs.tryton.org/issue8918) to its default value when the list is reloaded.

We implemented a [new strategy to position new records in the list](https://bugs.tryton.org/issue8880). The client now tries to position the new record depending of the list’s current ordering.

## Changes For The Developer

Tryton can now use [WeasyPrint](https://weasyprint.org/) to [convert `html` and `xhtml` reports into `PDF`s](https://bugs.tryton.org/issue5964). This avoids using [LibreOffice](https://www.libreoffice.org/) which isn’t always as good at rendering the `html` reports.

The [back-end classes can now be imported](https://bugs.tryton.org/issue8836) directly instead of using an indirect function.

The [current employee](https://bugs.tryton.org/issue8825) is now in the evaluation context of the [record rules](http://docs.tryton.org/projects/server/en/latest/topics/access_rights.html#record-rule). This allows you to create rules that depends on the user’s business role instead of just their user account.

You can now [update the action](https://bugs.tryton.org/issue8766) from the [`ModelView.button_action`](http://docs.tryton.org/projects/server/en/latest/ref/models/models.html#trytond.model.ModelView.button_action) by returning a dictionary with the value to change. This avoids needing to use a wizard to create a dynamic action.

All the [tests are run on the new docker images](https://bugs.tryton.org/issue8283) before publishing them. This reinforces the stability of the published images.

It is now possible to [add help text to the keys](https://bugs.tryton.org/issue8801) of [Dict fields](https://docs.tryton.org/projects/server/en/latest/ref/models/fields.html#trytond.model.fields.Dict).

We have extended the generic tests on the wizards to ensure that [the buttons point to an existing state](https://bugs.tryton.org/issue8901).

The [views for `One2Many` and `Many2Many` fields are no longer pre-fetched](https://bugs.tryton.org/issue8894) if the relation field is displayed with a different widget such as the `multiselection` widget which doesn’t need a view.

We now [run the desktop client tests](https://bugs.tryton.org/issue8905) in [our drone CI](https://drone.tryton.org/tryton/tryton). This normalizes how tests are executed for all our packages and ensures no regressions are introduced by mistake.

It is now [possible to load](https://bugs.tryton.org/issue8807) [WSGI middleware](https://en.wikipedia.org/wiki/Web_Server_Gateway_Interface#Specification_overview) using the configuration file. For example to load the InternerExplorerFix from werkzeug:

```
[wsgi middleware]
ie = werkzeug.contrib.fixers.InternetExplorerFix

[wsgi ie]
kwargs={'fix_attach': False}

```

We [use now the non-standard `SKIP LOCK`](https://bugs.tryton.org/issue8910) instead of the also non-standard advisory lock when pulling out task from the queue. It has better performance and is more SQL-ish. But this also provides a nicer fallback if the feature is not implemented by the back-end.

It is now possible to [use a `MultiSelection` field as the key for a `Dict` field](https://bugs.tryton.org/issue8903).
