new packages. Most of which are the remaining modules of the Tryton
platform which weren't packaged. The others are dependencies of the new
modules. This was tested on FreeBSD and is based in large part on Richard
Palo's (richard@) work. This is the most recent release of the Tryton
platform, version 4.2. There's a very large list of changes from the 3.8
series we have in pkgsrc. If you're interested, those functional changes
can be found here:
http://www.tryton.org/posts/new-tryton-release-42.htmlhttp://www.tryton.org/posts/new-tryton-release-40.html
details found here (http://www.tryton.org/posts/new-tryton-release-36.html)
Major changes for the developer
It is now allowed to have many times the same field in list/tree view.
There is no more a datetime widget for list/tree, two columns with one
widget date and one widget time should be used instead.
A new field TimeDelta appears in this release to represent a duration. It
replace the float_time widget which had some rounding issue. This new
field is already used in the timesheet and project modules.
The One2Many widget can be configured to use a Cartesian product with the
selections of many values for Many2One or Reference fields.
A method restore_history_before is added to ModelSQL which behaves like
the existing restore_history but restore the records just before the datetime.
The on_change methods have been migrated to a behaviour more consistent
with the Active Record Pattern used in Tryton. Instead of returning a
dictionary with the values to change, now the instance is directly changed.
This allow to chain easily the on_change methods or reuse them in other
methods reducing the duplication.
The method save on ModelStorage is now a dualmethod which means that it
can be called as usual as an instance method but also as a class method
with a list of records. Saving many records at once this way improves the
performance as the method will minimize the number of queries to the
database and will validate the result by bunch.
The Dict field received a translated method to create descriptors which
translate the values or the keys like the same method on Selection field.
It is now allowed to use the dotted notation in the order clause of a search.
The ORM will automatically generate the needed joins.
The API of the Report class has been reworked to improve the customization
of the engine. The formatting methods are now more strict to prevent silent
failure.
The safe_eval (which was not sure to be safe) has been completely removed.
In the places where the evaluated code was any way safe, the standard eval
is used. For evaluated code from outside, a JSON notation is now used. Some
utilities have been developed to ease the creation of JSON from XMl or in
the views.
A new kind of button has been added which works on non-saved record. They
are quite similar to on_change but they are triggered by a click on a
button instead of a change of field.
Accounting
A new method reverse_compute has been added to Tax which allow to compute
the base amount from the taxed amount.
The sign of the second currency amount is enforced to be the same as
debit - credit.
The analytic account management has been reworked to use a really One2Many
instead of the pseudo-field. This simplification was possible thanks to the
recent new features like the usage of Reference field on One2Many.
Party
The vat number is now stored in its compact format.
Product
The number of decimal for internal price calculations is now a configuration
parameter price_decimal. This parameter is used everywhere to ensure
consistency between all modules.
Purchase/Sale
Their lines support both mixed invoice type (Invoice vs Credit Note) per
line when computing the invoiced quantity.
Stock
A new state staging is added to the move. Such state doesn't impact at all
the computation of the stock level. It is used for supply on sale, to
create moves in advance.
Inactive products are still computed for the stock level.
The computation of assigned move has been improved to take only in
consideration outgoing move assigned not the incoming. This result in a
less optimistic for the stock level and thus prevent to assign a move with
an incoming one that is just assigned but not yet done.
Forecasts are now automatically deactivated when their period is in the past.
pkgsrc related updates:
update to tryton-3.6.0
update to trytond-3.6.0 including UTC check patch for SunOS
update trytond modules to latest 3.6
add meta-pkgs/py-tryton-platform
add misc/py-trytond-party-relationship
add misc/py-trytond-product-attribute
add misc/py-trytond-production
add misc/py-trytond-stock-inventory-location
add misc/py-trytond-stock-product-location
add finance/py-trytond-account-invoice-line-standalone
add finance/py-trytond-account-invoice-history
add finance/py-trytond-account-invoice-stock
add finance/py-trytond-account-payment-clearing
add finance/py-trytond-account-stock-continental
add finance/py-trytond-analytic-invoice
add finance/py-trytond-analytic-purchase
add finance/py-trytond-analytic-sale
add finance/py-trytond-product-price-list
add finance/py-trytond-product-cost-fifo
add finance/py-trytond-product-cost-history
add finance/py-trytond-purchase
add finance/py-trytond-purchase-invoice-line-standalone
add finance/py-trytond-sale
add finance/py-trytond-stock-supply
add time/py-trytond-company-work-time