New Tryton release 4.6
Publié: 2017-10-30 18:00:00+00:00
Read in English
Llegeix-ho en català
Auf Deutsch lesen
Beri v slovenščini
Leer en español
| Plus d'articles sur
We are proud to announce the 4.6 release of Tryton.
This release is enhanced by the addition of 9 new modules covering many
There has been also an effort in improving the graphical user interface and
the user experience by fixing many small details.
It is also good to note the inclusion of the Spanish charts of accounts which
required some improvements in the standard accounting modules.
Of course it includes many bug fixes and performance improvements.
As usual the migration from previous series is fully supported. Some manual
operation may be required, see migration from 4.4 to 4.6.
Major changes for the user
In addition to the user name, company and currency in the title of the
clients, we have added the profile or the login details. This way, the user
can find faster the right windows.
The order of the toolbar has been reworked to have a more logical order and
grouping. The same logical has been applied also on the toolbars of the
On previous version, the headers of the column were always centered. Now
they use the same alignment as the content following the best practice.
Texts columns aligned on left and numerical columns on right.
Also to improve the discoverability, editable lists have a grid design
instead of just stripped row. This allows the user to know directly if it is
Similar to the redesign of the button on relation field in the release 4.2,
this release improves the design of the Binary and Image widget. Only the
available buttons are shown instead of being disabled. But also before
having the option to upload a new file, the previous file must be cleared.
This prevents confusion to some users.
- Under GTK+-3, a default theme has been added for read-only, required and
- Also under GTK+-3, it is possible to add in the configuration folder a file
theme.css which will be loaded as user theme.
We have added Tryton's specific selectors: .readonly, .required,
.invalid and .window.profile-<name>. The last one is useful to setup a
different style to the windows depending of the profile.
- The web client has now the same keyboard shortcuts as the desktop client.
You can see them with ctrl+h. This make is simple to use without mouse.
A new wizard has been added to renew the fiscal year. It takes the previous
fiscal year and some other parameters to create the new fiscal year
automatically. The sequences can be reset automatically and the same number
of periods are created.
On some countries, it is required to add a legal notice when some taxes are
applied. This legal notice can now be configured on the tax to be included
automatically and so avoid mistakes or oversights.
The tax rule system is the way Tryton configure the taxes to apply on an
invoice for a party. This works by replacing the default tax by the one
defined on the matching rule. Now it is possible to configure the rule to
keep the default tax and add the rule one. It is needed to support tax
mechanism from some countries like the equivalence surcharge for Spanish
The tax description which appear on the invoice is now translatable.
The payable and receivable accounts on party are no more required. This
prevented the creation of parties when no default values was setup even if
the values were not needed. Now, a message will be raised only when the
value is needed for a particular operation.
It is now possible to search the amounts of the general legder. It is useful
for example to get only the accounts with a balance.
The general ledger and the income statement can be computed for a range of
date in addition to the sets of periods.
The configuration wizard allows to configure default receivable and payable
accounts for categories and products.
This is a new module that aims to implement common accounting requirements in
Europe. The first common feature added is the EC sales list.
A new module registers two default charts of account and taxes for Spain:
- Plan General Contable Español 2008
- Plan Contable para PYMES 2008
- The tax identifier of the party invoiced is stored on the invoice. By
default it is the first tax identifier of the party that is chosen but it
can be changed. This is useful for tax reporting and when a party has many
- The Belgian chart of accounts has been adapted to configure the taxes for the
EC sales list.
The clearing of payments only worked when paying a specific line. Now it can
also work if an account is defined instead of a line.
The common case is when you register a deposit for which you have no line
but still want to register it once the payment is succeeded.
The manage of payment with Stripe received many
- The user can now create manually Stripe payments. Usage showed that it
may be needed and there was indeed no technical reason to prevent.
- It is possible to select the specific Source of the Customer.
- It is now possible to enter an existing Customer by filling its ID.
- Tryton supports now the two steps payment flows. It is just checkbox to uncheck
to activate on this flow. The amount can be changed between the
authorisation and the capture and the capture is just triggered by a
- When a statement is cancelled, if the generated move lines were reconciled,
they are now automatically unreconciled. This ease the task of correcting a
statement as it is no more a task to do for the user.
This new module adds the automatic import of CODA
file as statement. The CODA format is a standard from the Belgian Financial
Sector Federation which is supported by most of
the Belgian banks.
This new module allows to define for a dunning procedure level to send an
email to the party. The template of the email can be different at each level.
The action of sending an email is logged into the system.
- It is possible to restrict a location to have only one level of children.
This allows to apply some techniques to improve the performance of the stock
quantity computation and to support chaotic storage which requires to have a
huge number of locations.
- In addition to the wizard to split stock move, there is now a wizard to
split a shipment. It asks for the moves to be sent to the new shipment.
This is useful if the default order can be too big for the carrier.
- There is a warning raised when a incoming or outgoing move is done without
an origin. Until now, it was raised once for each move but with this release
only one global warning is raised for all moves.
- For the perpetual stock accounting, Tryton supports now the reversed drop
- In order to register past move, the effective date of move can be set
manually by the user.
- In version 3.6, we added a new state 'staging' on move. But the constraint,
that allows to delete only 'draft' or 'cancel' move, was not updated to
allow also 'staging'. This is now corrected with this release.
- A check has been added in order to prevent the deactivation of a location if
there are still products in it. This way the conservation of products is
This new module allows to manage consignment stock from supplier in the company
warehouse and at the customer warehouse. The corresponding invoices are
created automatically when products are used from such location.
This new module allows to define some storage location as movable. They can be
moved by an internal shipment. This can be used for example to manage
- The Drag and Drop has been
activated on the project and work views.
- The backorder of supplier are no more planned. Before they were planned at
the same date as the initial order. But indeed as the supplier has failed
once, the best assumption is to not know when he will fulfill it.
- The confirmed purchases are now automatically processed thanks to a cron
- The backorder for customer are planned for today. Before they were planned
at the original shipping date. But this date may be already in the past so
it is better to try to fulfill it as soon as possible.
- The confirmed sales are now automatically processed thanks to a cron task.
- It is now possible to define a default invoice grouping and the default
shipment grouping method for new party.
- When the shipment cost is invoiced on order, it is now invoiced only when at
least one shipment is done.
- Consumable products are not checked anymore when the quantity check is
activated on sale.
This new module allows to register payments on sale before the creation of any
invoice. When the payments for full amount of the sale are authorized, the
sale is automatically confirmed.
For example, this module is used to manage payment from a e-commerce website.
This new module adds under and over shipment tolerance on the sale.
If the quantity of a sale line is under shipped but inside the tolerance
percentage, then the line will be considered as fully shipped and no
back-order will be created.
If the quantity of a sale line is over shipped more than the tolerance
percentage, then a warning is raised.
This new module adds the generic feature to send email to parties or users of
document based on trigger conditions. The email can embed as attachment any
report of the document.
A common usage for this module is to send automatically the invoice to the
customer when it is posted.
Major changes for the developer
- The server supports to have a JSON as
column type instead of TEXT column. To active it, it just require to alter
the column type after the database creation. This is useful if you plan to
use JSON functions or operators on
- The SQLite backend receive the alter_type and alter_size feature. This
is implemented by recreating the table with the right types and inserting
the old tuples.
- The report engine, thanks to last version of Relatorio, supports Flat OpenDocument.
This is useful for development as the file can be easily inspected and
But of course as it is a format not wildly supported, the result is still
a standard OpenDocument.
- Report template can now be defined as working on a single record only.
This means that when it is requested for a list of records, it generate a
zip file which contains each report in a separated file.
This is useful for report like invoice which must be archived as unique
- A new method on get_email in trytond.report allows to retrieve an email
instance with the template rendered for a record. The email can be
multilingual and if the template is in HTML a plain text is generated automatically.
- The extension for plain text is now txt. This is better for guessing
mimetype using the extension.
- To improve the security the session randomness has been increased to 32
- The server enforces natively the size of the requests to avoid deny.
The unauthenticated requests are limited to 2MB and the authenticated ones
are limited to 2GB. Of course those values are configurable.
Until now it was recommended to use a reverse proxy for this protection.
- The WSGI
application support more configurations (TRYTOND_LOGGING_CONFIG and
TRYTOND_DATABASE_NAMES) from environment variables.
- The changes in sequence management of the new PostgreSQL 10 showed that we should move
the queries about sequence to the back-end to provide an API independent of
- Just like we have a descriptor on Selection field to retrieved the
translated value, there is now a descriptor for the Reference field.
- To be able to use the cache on our new drone for
continuous integration, the tests
infrastructure support the cache for remote PostgreSQL.
- The XML loader was missing the possibility to evaluate datetime values.
- Some methods can not be called with duplicated ids. But often the developer
does not think about testing this requirement. In order to prevent this
category of issues, all RPC calls are checked
against unique ids. Also the ModelView.button and Workflow.transition
have an assert against duplicate ids to detect wrong call at development
stage but without having performance impact on production.
- In order to support testing external back-end, they can register through
entry points specific tests to the standard sets of tests.
- A new generic test has been added to check that methods for Function fields
are well defined on the Model.
- The trytond-admin command has a new option --install-dependencies which
allow to automatically install the missing dependencies when updating the
- When updating module list, trytond-admin will also delete missing modules
- The URI for SMTP supports two new parameters localhost_name and timeout.
- The ModelView removes automatically empty pages from notebook.
- The root user can behave as any company or employee.
- The model and record name of Reference fields can be exported.
- The sequence field can be set on proteus ModelList by using the new method
- As Python 3.3 has reach it end of life, we do not support it anymore, but we
support the new Python 3.6.
- The method Move.query_get, which generate the SQL clause from the context,
handles now the from_date and to_date as date range.
- The default value of the move line has been greatly simplified. This removes
potential bugs due to the complexity. And most of the features are better
managed with the template move.
- The deposit amount on party now shows a positive amount when the party has
- All the function fields based on the MissingFunction have been replaced by
The problem with MissingFunction was that it may be triggered for the
wrong record because of the pre-computation design of Tryton. The property
ensure to raise error only for the needed record.
- The tax sequence is now used as default values for the invoice taxes
- An origin field has ben added to the payment. This allows to link payment to
specific model like the sale in the module sale_payment.
- The support for Stripe webhooks has
been added. Some events are handled by default: charge.succeeded,
charge.failed, source.chargeable, source.failed and source.canceled
but more can be added easily in custom module.
- A generic wizard which is the common basis to import statement from a file
has been added. It is already used by the account_statement_coda.
- To allow to import statement line with partial data, a new model has been
added. The origin shares most of the fields with the statement line but
with minimal constraint. The origin serves as basis to create lines. It
shows the amount still pending to convert into line.
- The commission plan does not match any more line for empty product.
- The service products are enforced to have only the fixed cost method.
- The cost price has been moved from template to product. This allows a finer
grain computation and still compute an average cost for the template.
- The performance of the average cost price computation has been greatly
improved. The new algorithm minimize the number of save and take advantage
of the replacement of Property by MultiValue from the previous release.
- The constraint that enforce move location to be child of the locations of
the shipment has been relaxed to apply only shipment states on which the
move can be corrected.
- In order to easily customize the address to print on the purchase, a python
property report_address has been added on purchase.
- The required constraint on the origin of a request has been dropped.
It follows the doctrine that Tryton has only constraint that are
programmatically needed because it eases the customization.
- In order to easily customize the address to print on the sale, a python
property report_address has been added on sale.
- The sale price can also be computed by the price list even if no customer is
- The shipment cost price is rounded using the precision of the field it is
stored on instead of the currency.
- As done in trytond, the web user session randomness has been increased to 32
- The email used to login is managed as case insensitive. This is the most
common and expected behavior.