This is the last month before the long term release 5.0. So many ongoing development has finally landed in Tryton.
Changes for the user
Style default button
The default buttons on desktop client have the style of suggested action.
Use of message dialog
Better dialog size
Instead of using the same size of the parent window which confused some users. Instead we let GTK compute the natural size of the dialog depending of the content. But this requires to deactivate the scrolled window. So wizard that displays full form should be run in tab instead of dialog.
We replaced the tango icons for which we missed many for business modules by a subset of the Material Icons. We also took the opportunity to curate and rationalize the list of default icons.
New party name on address
Sometimes it is needed to store on a party an address that is not the real address of the party. So his name can not be used as the name on the mailbox. So we added an optional “Party Name” on the address which is used if filled to format the address instead of the name of the linked party and the last one will be used as the attention name.
Fall-back email for dunning
When an email must be sent for dunning, the party may not have an email configured. In this case, we can now configure a fall-back address to which the email will be sent. It may be the address of the secretary for example which will be forward the dunning to the party with the proper mechanism.
The type of email can be also configured at the dunning level. In such way that they are sent to the invoice email.
sale_subscription_assetmodule extends the Subscription to store which assets are rent.
The user can configure a subscription service to require an asset by defining which the lot are available. Tryton display also the lot currently available for each service.
On subscription line for such service, it is possible to reserve an asset by setting its lot number. The lot becomes required to run the subscription.
Tryton ensure that a lot can be rent only once at the same time.
Apply factor in search bar
Some numerical field can have a factor for the display. The common usage percentage field which are stored as number between 0 and 1 but are displayed with a factor of 100. For now, searching on such field is performed on value with the factor applied. This provides a better experience for the user.
Right to left support on web client
The web client supports now, like the desktop, the right to left language.
Final state for dunning
When the dunning reach the last level of the procedure, its state is changed to final instead of disappearing in the list of dunning done. This allow to still keep track of those dunning that requires manual procedure.
Support chart of account evolution
We replaced the simple active/inactive checkbox by date period on accounts and tax codes.
It is not allowed to create a move using an account at a date outside the period.
The accounting reports do not show out of period accounts or tax codes if the report is run for a date out of the period.
More over, when an account has an end date defined, we can configure a replacement account to use. in such case, operational document like sale or purchase will use the replacement account automatically. This allows to avoid to update all referential data that were still referring to the old account.
Interface with Chorus Pro
A sets of new modules has been added which allow to send invoice to Chorus Pro. Chorus Pro is the mandatory platform to send electronic invoices for French administration.
Currently the format supported is the Cross-Industry-Invoice (aka 16B-CII) from UN/CEFACT.
Removal of default accounts on journal
We have found that this design was not very optimal because it required for some case to create more journal than needed. So we replace them by write-off methods and payment methods. And for the statement, the journal statement has now an account field.
Spanish tax report
Tryton generates automatically the files for tax reporting that can be imported directly on the tax authority website.
Icons in input
We simplified the web design for the input that has buttons. The input has now a primary and/or secondary icons inside its border. This unclutter the interface and integrate better with bootstrap theme following material design.
Attachment drop down
We reworked the attachment action to be a drop down instead of opening a pop-up. This is faster to open the attachments and to add new one. It is still possible to open the pop-up window with the management entry to change or delete them.
Changes for the developer
Now the buttons which depends on fields for which the user has no access, are removed automatically from the view.
Support of timestamp field on client
Until now, such field was using the default field and had no widget associated. But the default field has an empty string as default value which is not valid for a
Timestamp. So now we manage
Timestampfield as a
DateTimefield but with the representation of microseconds.
Clean migration < 3.0
We removed the migration code from version older than 3.0.
If there are still users of such old version. They must upgrade as soon as possible to a version prior to 5.0 to be able to migrate later. The future rules will be to clean migration for 2 major releases in the past. This force to migrate at least once every 10 years.
Add Timedelta to PYSON
The PYSON missed an object to represent a timedelta value. As such value could be used in a domain on a field of the same time, we should support it.
Remove unique constraint on attachment
Use uWSGI in docker images
Use UUID on timesheet lines
Use passlib to check password
We replaced custom password check by passlib, a generic library for password hashing. A configuration file for passlib can be set otherwise the default schemes are
bcrypt(if installed) or
pbkdf2_sha512. When the configuration change, the passwords are updated to the new scheme on the next log-in of the user.
The migration from older version is done automatically when the user log-in the first time.
New session management
The Double session timeout has been implemented. So the session expired now after 30 days but some operations like posting an invoice or approve a payment requires a fresh session. A fresh session is a session which has no request interruption longer than 5 minutes since its creation.
When a user change his password, all his active sessions are invalidated. This prevent any attacker who had stolen the password to keep a session active after the password change.
Fully configure Tryton with environment variables
In order to simplify the configuration of the docker image, Tryton will parse environment variables that follows the syntax
TRYTOND_<SECTION>__<NAME>. Such values are set before the load of configuration files.
The web client will try to load
custom.jsby default. This allow to customize it by just serving those files.
We added a BUS to Tryton. It allows the server to send message to the client. It is using long polling as push mechanism.
The first usage is the possibility to send notification which are short message with a priority. The web client display them by using the Web Notification and the desktop client using the GNotification which unfortunately is not yet implemented on Windows nor MacOS.
copymethod has been extended to have more flexibility on the copy result.
The default dictionary accept a callable as value. It will be called for each copied record with a dictionary of the copied values. It must return the new value for the new record.
Also the default dictionary support the dotted notation for the
Many2Onekeys. In such case, the value will be used as default dictionary to copy the pointed record.