Last maintenance releases for series 1.8

Objavljeno: 2013-05-16 12:00:00+00:00 release
Two weeks ago, the series 1.8 received its very last bugfix releases. Two-and-a-half year after the first release, we are going to close the maintenance for this series. Additionally series 2.0, 2.2, 2.4 and 2.6 got several bugfix releases that were already provided in the 2.8 series. As usual, no database update is required for these releases.

New Tryton release 2.8

Objavljeno: 2013-04-22 18:00:00+00:00 release

We are happy to announce the 2.8 release of Tryton.

This release brings many changes for the graphical user interface in order to improve the workflow of the users like bookmarks, auto-completion, global search and a review of all error messages to provide more information. As usual there are many bug-fixes, module improvements and new modules (see below).

Of course, migration from previous series is fully supported.

Major changes in graphical user interface

  • Add domains on Action Window: This feature allows to set above any list view tabs which filter the records. All modules have been updated to take advantage of it and thus it reduced the number of menu entries.
Action Window domain
  • Bookmarks for search: Users can now bookmark their own searches and recall them anytime.
  • Auto-completion on Many2One, Many2Many and One2Many: When typing in those fields, the client will try to auto-complete them to allow a fast encoding. The completion also proposes two more actions to create a new record and to enter a complex search.
  • Replace shortcuts by menu favorites: A new design for favorites aka shortcuts has been implemented for a better user experience.
Menu Favorites
  • Add global search: A quick entry box has been added on top of the menu. It allows to search over all the business documents and the menu entries for fast access. When a search result is selected, the client will open its form view or will trigger the action for menu entries. The kind of documents to search is configurable.
Global Search

Major changes on the server side

  • The create method takes now a list of values thus unifying the API. This also improves the creation performance by validating in a bunch the created records.
  • (Field, Operator, Operand) are replaced by Domain on Rule in addition to unify such definition, it speeds up the computation and eases caching.
  • A new kind of field Dict is introduced. This field allows to store a dictionary for which the definitions of the keys are stored in the database. This feature is used in the new module product_attribute (see below).
  • It was decided to remove _inherits because it doesn't fulfill its mission. It was replaced case by case by Function fields, by a Mixin class or simply by an explicit Many2One.
  • The selection values of Selection and Reference fields can now be dynamic thanks to the selection_change_with attribute.



  • The Move Sequence on Period is optional. So if it is empty the fiscal year's one will be used.
  • Tax Rule and Tax Group have sale, purchase or other kind attribute which allow to define where they can be used.


  • Invoice Sequences on Period are also optional.
  • When cancelling an Invoice, the existing move will be deleted if possible or cancelled with an opposite move.
  • On validate Supplier Invoice, the draft Move is created. This allows in case of two step validation to get reports already up to date.
  • Supplier Invoice and Credit Note can no longer be refunded automatically because they must be checked with the supplier one.


  • To ease user to select the actions for the dashboard, they are filtered based on the usage dashboard.


  • The new url widget on list view is used for contact mechanisms.
Contact Mechanisms


  • It is now possible to let the delivery time empty for a product supplier. This means that we don't know when the supplier will deliver.


  • With the new workflow design, it was no more a bottleneck to add it on stock move.
  • All shipment Many2One on Move have been merged into one single shipment Reference.


  • The method find_best_supplier doesn't optimize anymore on the delivery delay and so it fully respects the priority order to select a supplier.


  • It is now possible to define a period on which a work can be used to fill a timesheet.

New modules

  • account_asset adds depreciation of fixed assets.
  • sale_supply adds a supply on sale option on product to generate purchase request from sale lines regardless of the stock levels.
  • sale_supply_drop_shipment adds a drop shipment option on product supplier if supply on sale is checked to generate a drop shipment.
  • project_invoice adds some invoice methods (Manual, On Effort, On Timesheet) on project.
  • product_attribute adds flexible attributes on product.
Product Attribute

Other changes in graphical user interface

  • It is possible to use a range for Date/Time fields in filter box.
  • Multi-selection for Selection field is allowed in filter box.
  • View list can now disply url's.
  • The Plugins menu is moved into the toolbar Actions.

Other changes on server side

  • The default language is stored in the database which prevents unexpected behaviors in case the configuration of the server is changed.
  • The unique constraint on model and field access has been removed to allow many modules create their own accesses that overlap.
  • The _constraints list is deprecated and is replaced by the validate method on ModelStorage to allow better error messages.
  • Now it is possible to search on the target of a Reference field.

News from Development

Objavljeno: 2013-02-18 12:00:00+00:00 development

Here are some changes recently landed in the development branch of Tryton that will be available on the next release.


  • Now the default language stored in database overrule the default language of the configuration file. This allows to have a multi-database server with different default languages.
  • The (Field, Operator, Operand) in record rules has been replaced by a plain standard domain. This change shows a speed-up increase of 30% on running the unit test suite.
  • The API of the ModelStorage.create has been changed to use a list of values. This allows to create many records in one call and takes advantage of validation per bunch.
  • A new kind of field has been added: Dict. This field allows to store a dictionary for which the definitions of the keys are stored in the database.
  • The selection_change_with attribute is added to the Selection and Reference fields. It behaves like the on_change_with but it modifies the list of selection values. The validation process takes care also of this new attribute.


  • The filter box has been improved to allow:

    • multi-selection of values for Selection fields

      multi-selection filter
    • range for Date and DateTime fields

      range date filter
  • In order to reduce the number of menu entries, a new concept is introduced: the Tab Domain. This allows to define a set of tabs linked to a domain. Switching from one tab to another, update the list of records according to the domain. All the modules have been updated to take advantage of this feature and remove the extra menu entries.

    domain tab
  • Users can now bookmark their own search.

    search bookmark
  • The icon for URL widget can be dynamic.

  • The URL widget is available also on list view.

  • The menu favorites replaces the menu shortcut. The new design gives a better user experience.

    menu favorites
  • A global search is now available. It allows to search over all the business records.

    global search


Account Asset

It is a new module to manage depreciation of fixed assets. For now, only “linear“ depreciation method is available but the module is designed to welcome new methods.


  • A kind field has been added to Tax Group and Tax Rule with the possible values: Sale, Purchase or Both. Each chart of account can use them to ease tax selection.

Account Invoice

  • The workflow of the Invoice have been reviewed. Here's the result:
    • In Cancel state the Move on the Invoice is deleted or cancelled.
    • Draft Move for Supplier Invoice is created on validation. This gives more accurate accounting report for those who use draft moves.
    • The Proforma state is renamed into Validated to be more generic.
    • The Opened state is renamed into Posted to be more coherent with the rest of the software.


  • A workflow has been added to Stock Move thanks to the new lightweight workflow introduced in 2.4 series which no longer causes performance issues.

Product Attribute

It is a new module to manage any set of attributes on Product by using the new Dict field.

product attribute

Technical Training by B2CK

Objavljeno: 2013-01-02 16:00:00+00:00 training

B2CK is organizing a technical training sessions on Tryton in Liège the 17th and 18th of January 2013.

The training session will cover technical subjects. The main goal of this training is to empower quickly attendees to get the most out of Tryton and to build their first module with our help. Prerequisite are: basic programming knowledge (preferably but not mandatory Python), bring your laptop with you. After this training you will be able to package and create a set of dynamic Tryton models and their workflows.

More information

Maintenance Releases for the supported series 1.8, 2.0, 2.2, 2.4 and 2.6

Objavljeno: 2012-12-24 12:00:00+00:00 release
The series 1.8, 2.0, 2.2, 2.4 and 2.6 got several bug fix releases. No database update is required for these bugfix releases.

The Tryton Foundation is now official

Objavljeno: 2012-12-18 12:00:00+00:00 foundation

After more than a year of preparation, the Tryton Foundation is now official and fully operational. It is a Belgian private foundation, hence it is designated to pursue a specific disinterested purpose. The missions of the foundation are:

  • Develop and support conferences, meetings and community activities,
  • hold and administer the infrastructure,
  • organize the community of supporters,
  • and manage and promote the Tryton trademark.

The initial board of manager is composed by: Albert Cervera i Areny, Bertrand Chenal, Nicolas Évrard, Cédric Krier, Sebastián Marró, Udo Spallek and Sharoon Thomas.

The foundation is already accepting donations, so if you rely on the Tryton project please help the foundation to pursue its missions.

The supporters candidacies are opened since last week.The role of the supporter assembly is to represent the Tryton community inside the foundation.

All those information are gathered on This page will evolve over time and will welcome the list of supporters and donators.

End of maintance for series 1.6

Objavljeno: 2012-11-26 12:00:00+00:00 maintenance
It makes now more than 2.5 years since the first release of series 1.6. This ends the maintenance on this series. To anyone who is still using it, it is highly recommended to upgrade to a more recent series.

Two weeks from the TUL 2012

Objavljeno: 2012-10-26 12:00:00+00:00 TUL

We are two weeks from the TUL and this is the last few days to register (please do so on the wiki or by email).

As last year there will be around 30 people attending the unconference. Some talks were already proposed like ‘What's new in Tryton 2.6’, ‘What's next for Tryton’, ‘Python 3: Status of the port’ and ‘A Tryton client for Android’, a workshop on Nereid is also planned.

This meeting of Tryton Developers from all around the world (people are coming from as far as India or Argentina) will also be the occasion to talk about non technical subjects like the Tryton Foundation and what should be done to improve the Tryton “marketing”.

So if you are belgian or live near Liège, do not hesitate to drop by the Youth Hostel "Simenon" on the 9th and 10th of November to get your share of python and tryton talks and drink a beer (or two).

New Tryton release 2.6

Objavljeno: 2012-10-23 12:00:00+00:00 release

We are happy to announce the 2.6 release of Tryton.

This release brings major changes in the API with the introduction of the Active Record pattern. But also the graphical user interface was not left without improvements. And as usual there are many bug-fixes, module improvements and new modules (as announced in the previous release news).

Of course, migration from previous series is fully supported.

Major changes in graphical user interface

  • Management of model access and create/delete field access.

    The client is now aware of the model access which allows the disable buttons when the user doesn't have access to it.

    It is also possible to manage the create/delete event on fields in addition to read/write.

  • Dynamic size limit on the One2Many, Many2Many and Char.

    It is now possible to limit the size of those fields and the client will enforce it.

  • Remove "Please wait" box. The popup was annoying because it make the client lost the focus.

  • Paste in editable list view. It is possible to paste from a spreadsheet to update a set of rows.

Major changes on the server side

  • Allow to use Reference field in One2Many & Many2Many.

    In addition to the Many2One, the reverse field could be a Reference field. In the future, the link between Move and Shipments will be done like that instead of having 4 exclusive Many2One fields.

  • All kind of buttons have been merge into one simple concept.

  • Active Record: This is the result of refactoring work started 2 years ago.

    Here are some benefits:

    • Reduce the amount of code (about 2.2k lines removed) for example on_change_with and getter of Function field can be merged.

    • Unify access to the value of record if it is stored or not in the database. It allows to remove of values dictionary on on_change method.

    • Remove loop over ids in getter of Function field:


      def getter(self, ids, name):
          res = {}
          for record in self.browse(ids):
              res[] = …
          return res


      def getter(self, name):
          return self.…
    • Rationale the register process of Model (use copy of fields etc.)

    • Remove session in wizard. Now the wizard instance is the session.

  • Allow to store the views in a XML file instead of the database. This supports the modification of a view without updating the database. A good speedup for designing views.

  • A new kind of validation has been added the pre_validation.

    The new pre_validation allows to validate a record without saving it. This is used by the client to validate lines of a One2Many. With pre_validation it is possible to provide feedback to the user as soon as possible and before the record is saved.



  • The Trial Balance report displays now the start and end balance in addition to the debit and credit columns.
  • Double-clicking on Balance Sheet opens accounts.
  • The Account Chart doesn't show cumulate Debit/Credit by default but only for the current period.
  • The Aged Balance is computed over all fiscalyears.
  • The Account Moves have been refactored to include an origin field which allows to easily link it to the master document. They have two number fields for draft and posted.


  • Updating cost price create automaticaly a stock accounting move.


  • The purchase manages negative quantities on lines, they will generate Return Shipments and Credit Note.


  • A graph has been added showing the evolution in past and future of the stock level for a product per warehouse.
product quantities per warehouse

New modules

  • stock_lot defines lot of products.
  • stock_split adds a wizard to split move.
  • account_fr adds French account chart.
  • production defines the basics for production management.
  • stock_supply_production adds automatic supply mechanisms via production requests.

Other changes graphical user interface

  • Constant interpolation has been added to line graph.
  • The group could have a readonly state.
  • It is possible to define a time format different of the classic '%H:%M:%S'.

Other changes on server side

  • The ModelSQL.default_sequence has been removed. The sequence fields will no more increase indefinitely.
  • The time format is validated, so it is possible to enforce the second to 0 for example.
  • is replaced by tryton.cfg, a static file.
  • It is possible to use tuple as Reference value. It is useful to construct dynamic domain on such field in PYSON.

Tryton Unconference 2012

Objavljeno: 2012-10-02 12:00:00+00:00 TUL

The second Tryton Unconference in Liège will take place the 9th and 10th of November.

This is the opportunity to meet members of the community, to talk about the future of Tryton and to discover the city of Liège.

The program will evolve but it will include at least:

A beer event will be organized on the 8th for those who come earlier.

If you plan to attend the conferences or if you like to give a talk (about your work, to give your feedback etc.). Please add yourself to the wiki page or send an email to before the 26th of October.