Reading view

There are new articles available, click to refresh the page.

Newsletter February 2025

By: udono

Man Using a Laptop

In the last month we focused on fixing bugs, improving the behaviour of things, speeding-up performance issues - building on the changes from our last release. We also added some new features which we would like to introduce to you in this newsletter.

For an in depth overview of the Tryton issues please take a look at our issue tracker or see the issues and merge requests filtered by label.

Changes for the User

Accounting, Invoicing and Payments

In order to unify our terminology, we now use a reference field instead of the former description field for payments. The idea of the field is more about storing external references than describing the payments. As a reference, it also becomes part of the record name. This helps when using payments with bank checks, as the number of those checks is usually set in the reference field. It is implemented in the following modules:

  • account‎_payment‎
  • account_paym‎ent_braintree‎
  • account_pa‎yment_sepa‎
  • account_pay‎ment_stripe‎

User Interface

Now we implemented a generic sidebar to display attachment previews and in preparation of the coming chat functionality.

We now add the same bottom padding on the panel body as the top padding.

New Documentation

We re-worked the documentation of the product_classification module.

New Releases

We released bug fixes for the currently maintained long term support series
7.0 and 6.0, and for the penultimate series 7.4 and 7.2.

Changes for Implementers and Developers

To make the customization of accounting move lines from receivable rules we now return the move and lines unsaved. When now applying a rule, the move and the lines are no longer saved before being returned by _reconcile. So it’s now possible to customize the content.

Authors: @dave @pokoli @udono

1 post - 1 participant

Read full topic

Newsletter January 2025

By: udono

A woman wearing a "Happy New Year" hat is sitting at a terminal

During the last month we continued to fix bugs, improve the behaviour of things, and resolve performance issues - building on the other changes since our last release. We also added some new features which you can find out more about in this newsletter.

For an in depth overview of Tryton development you can take a look at our issue tracker and also see the issues and merge requests filtered by label.

Changes for the User

Sales, Purchases and Projects

It is common, for marketing purposes, to show the sale amount before the promotion and also the amount once the promotion has been applied. So we’ve now added the original amounts before the promotion.

We’ve strengthened the process of confirming sales with a payment and added a scheduled task to confirm sales based on payments.

Accounting, Invoicing and Payments

We now use the payment-element for Stripe checkouts.

To help users decide if they really want to overrule a credit limit, we now show the amount the credit limit has been exceeded by, the dunning level, the amount and the account code.

We’ve now added reporting with latest date and amount per statement journal.

The move description and description on the general ledger line have been merged together. As the move origin is a fall-back of the line origin, the description is now calculated as the move description.

Stock, Production and Shipments

Most of the time users are only interested by the storage, view and warehouse location types, so we filter out the other location types by default now.

User Interface

We’ve now added the relation to a foreign model for relational fields listed in Administration → Models → Models.

The search on model.fields.Char and model.fields.Text in the client will give different results when using Text: = or Text: ="" depending on whether the text is NULL or an empty string. So we now convert NULL values for Char and Text fields to an empty string when searching for Char or Text field values.

We now display the link symbol when hovering over a many2one or reference column in tree views.

We now prevent iOS input zooming in Sao.

The icons that we use are now more explicit:

Form List Form List Tree
tryton-form
tryton-list-form
tryton-list
tryton-tree

System Data and Configuration

We updated the country subdivision types:

More (click for more details)

We now support searching on subdivision codes when searching a pattern.

We’ve merged the Colombian Business Tax Number (co_rut) tax identifier into the Colombian Identity Code (co_nit).

We’ve also updated the tax identifiers:

More (click for more details)

New Documentation

The contents of the Migration Topic have been moved into the Migration section of the Tryton documentation.

New Releases

We released bug fixes for the currently maintained long term support series
7.0 and 6.0, and for the penultimate series 7.4 and 7.2.

Security

We enforce the record rules for resources now like we did with model access rules.

We now also use the party access rules for address, contact mechanism and identifier.

Changes for the System Administrator

We now log the request-duration at the wsgi-app-level instead of the with_pool level to get more accurate timings.

Changes for Implementers and Developers

We now test that the on_change_with getter has the same name as the Function-field using it.

Updating XML-records which could be modified manually by the users is a complex task. In general the process works automatically, but sometimes the user has to manually check and decide whether to synchronize the model data from the menu entry Administration → Models → Data.
As we no longer import data like countries or currencies from the XML files, the whole mechanism is no longer necessary.
So we now, in general, forbid the manual modification of XML introduced data and always synchronise the XML-data with the database, even if it was modified. The only exception to this is if the noupdate flag is set on the XML data, in this case we just apply the XML-data once when the module is activated and leave the maintenance of that data to the users.

We now propagate notifications to the parent group on screens without an info bar, like a One2Many with an editable list.

Also we now call on_change_notify for fields updated by on_change and on_change_with methods.

We now support object-instances in addition to object-ids as default values.

We’ve added the metadata columns, by default, to ModelSQL based on table queries:

More (click for more details)

The data is now included as part of the ir.model.Report header key.

We now test that ids are of the right type when instantiating ModelStorage.

We now validate integer digits when they are not None.

We support EXTRACT from INTERVAL in the SQLite backend to be able to extract epoch durations.

Both msg_gettext and msg_ngettext have been added to the Report context.

Authors: @dave @pokoli @udono

2 posts - 2 participants

Read full topic

Newsletter December 2024

By: udono

Squirrel eating cone in forest

During the last month we focused on fixing bugs, improving the behaviour of things, speeding-up performance issues - building on the changes from our last Tryton Release 7.4. We also added some new features which we would like to introduce to you in this newsletter.

For an in depth overview of the Tryton issues please take a look at our issue tracker or see the issues and merge requests filtered by label.

Changes for the User

Accounting, Invoicing and Payments

Now we compute the maturity date of grouped account move lines per debit/credit.

New Releases

We released bug fixes for the currently maintained long term support series
7.0 and 6.0, and for the penultimate series 7.4 and 7.2.

Changes for the Translators

Now we support plural translations for report and ir.message. The other translatable strings are labels that have no count. The plural rule is a Python expression which returns an integer following the gettext design. For the report, it is possible to use the Genshi i18n:choose, i18n:singular, i18n:plural and for OpenDocument the gettext and ngettext methods are added to the evaluation context.

Changes for the System Administrator

Now we can set the decimal precision of default context from the environment variable TRYTOND_DECIMAL_PREC.

Changes for Implementers and Developers

To provide better feedback to the user, now we also add equivalent domains of SQL constraints.

Now we extract the timesheet cost computation from the _get_cost method to allow customization e.g. to use a different composition of the costs.
Also we round the work total with currency digits in get_total method now, to allow extending the computation methods, without rounding too early.

A trytond.model.Model is defined by a python class:


    from trytond.model import ModelSQL, fields

    class Party(ModelSQL):
        """Party"""
        __name__ = 'party.party'

It was needed to define three different identifiers:

  1. Python class name: Party
  2. class doc-string: Party
  3. trytond.model.Model.__name__: party.party

The translated text string of the model which is shown in the user interface was extracted from the __doc__ (doc-string) of the class definition.

Now we replaced the class doc-string extraction by parsing the trytond.model.Model.__name__ attribute and try to make it human readable. Changing an existing __name__ attribute usually implies a database migration.
To work-around existing not so useful __name__ values we introduced the new class attribute trytond.model.Model.__string__ which let you define the model string directly.

We also take the chance and clean-up the name-space by renaming

Finally we removed most of the former doc-strings from all the classes, only in some rare cases we add the __string__ attribute.

Authors: @dave @pokoli @udono

2 posts - 2 participants

Read full topic

Newsletter September 2024

By: udono

Picture of penguins on a beach in South Africa

During the last month we mainly focus on bug fixes, behaviour improvements of several things and speeding-up performance issues stepping forward to our next release 7.4 scheduled to the 4th of November. We also added some new features which we would like to introduce to you in this newsletter.

For an in depth overview of the Tryton issues please take a look at our issue tracker or see the issues and merge requests filtered by label.

Changes for the User

Sales, Purchases and Projects

We add a new sale reporting per promotion.

We add now a relate from promotions to their sales.

We improved the exception handling wizards on sales and purchases. We added two fields to let the user explicitly fill with the records to ignore or to re-create.
Any cancelled record that is not added to one of the fields, will stay in exception state to be proceeded later. Also we changed the view between a MultiSelection to a Many2Many field depending on the number of records in the exception state.

Now, Tryton doesn’t add extra lines on sale orders for inactive products. Also Tryton does no longer recommend inactive products.

We removed the Menu: Parties → Parties → Parties Associated to Sales/Purchases entries, because the result is not limited to sales or purchases in state validated or processing. A draft, quotation or cancelled order doesn’t qualify a party as a customer or supplier. The functionality is already replaced by the reports in Menu: Sales → Reporting → Sales, Sales per Customer and Menu: Purchases → Reporting → Purchases, Purchases per Supplier which adds the ability to filter per state and per period.

Accounting, Invoicing and Payments

Now we re-launch the update of the payment customer for Stripe and Braintree in case it failed. Also the users can manually initiate the update process.

Stock, Production and Shipments

Now we round up weights and the other measurements to two decimals for the shipping carriers DPD, Sendcloud and UPS.

We make package measurements read-only once they are closed.

User Interface

We remove the favourite management from the favourite menu, because of
several issues [1] [2] and duplicated functionality.

Now we group links with a similar functional scope together.

In Menu: Administration → User Interface the entries

  • View Tree Widths,
  • View Tree Optionals,
  • View Tree States and
  • View Searches

are moved to the Open related records toolbar-menu of Menu: Administration → Models → Models.

We improve the widget for MultiSelection fields in the Tryton clients by adding checkboxes which display the selection state of the row. If the users clicks on a row, the selection state will be changed.

Now we visually remove records from Many2Many fields used in Wizard instead of greying them out.

We keep the CSV export dialogue now opened after exporting, to have a better user experience when fixing bugs, export and again fixing bugs.

Since we moved the functionality from product_price_list_dates to product_price_list, you can open price list lines in a new tab to be able to filtering, search or import import them.

New Documentation or Naming

We improved and unified the stock action naming and re-worked documentation:

New Releases

We released bug fixes for the currently maintained long term support series
7.0 and 6.0, and for the penultimate series 7.2.

Security

Please update your systems to take care of a security related bug we found last month: trytond allows to execute reports for records for which the user has no read access and also for reports limited to a set of groups that the user is not member of.

Changes for the System Administrator

Now we use a random value for cron next call field when no value is defined.

Now we log the last cron scheduler runs and their durations. A new cron task periodically cleans the log entries. The new cron-section configuration variable clean_days (default 30) sets this period.

Changes for Implementers and Developers

The Tryton view-tests now check for some more attributes like sequence and on_write in tree-views or dtstart and dtend in calendar-views.

Now we unify the term “email”, as it is now the most common and recommended form.

We add to all “cost”-terms a “sale”-suffix in sale shipment cost fields to improve the naming convention and to avoid collisions or misinterpretations.

Authors: @dave @pokoli @udono

2 posts - 2 participants

Read full topic

❌