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
http://www.tryton.org/news/index.html
Major changes for the developer
The progress bar widget works with float between 0 and 1 to ease usage as
percentage.
The rich text widget uses now a subset of HTML to allow its implementation
in sao.
The Many2One has a new option target_search which define the kind of query
to use for dereferenced search. The options are subquery and the new join
(which is the default). The join method generate a faster query in most
cases.
The SQL constraints use a similar syntax to python-sql. This gives more
flexibility to implement backend for other databases.
Trying to create/write/delete on a Model based on a table_query raises an
exception instead of a silent error.
The table name of a ModelSQL can be overridden with a configuration file.
This allows to work around database limitations on the length of table
names.
The new StateReport has been added to wizards, to simplify the code of
wizards that run a report.
The style on reports has been removed, experience show that this feature
was not used.
The PostgreSQL backend manages now schema. This allows different instances
of Tryton sharing the same database.
The generic foreign key to create/write user on all ModelSQL has been
replaced by a rule that prevent to delete users. This greatly improves
scalability in some circumstances.
The Property field supports now float and integer values.
A subdirectory locale/override is supported for modules that override
translations of other modules.
Accounting
The charts of account are no longer translatable. Instead we provide
translated charts via a template using XSLT.
The invoice doesn't set a unit price on the line. For this feature the
purchase or sale module must be used.
Some fields of the invoice like the note and the origin are editable after
posting the invoice.
Product
Conversion between units no longer results in silent failures but an
explicit error is risen.
The volume property has been added to the products.
Project
The tree structure of the project and the time sheet have been separated,
each object has its own one.
The price list uses the same decimal precision as the product.
The cost price of the employee is stored on the time sheet line for the
date of the line. This allows to sum the costs of time sheet faster
Purchase
The state of the purchase request is now searchable.
The purchase requests are generated even if the rounded quantity is zero
to allow the user to still decide to purchase more.
Stock
Many unnecessary restrictions on the edition of move fields have been
removed.
The expected quantity of the inventory lines is always computed even if
they are added manually.
It is possible to create staging and draft moves using view locations.
Those locations will have to be changed to really do the move.
The inventory uses the grouping feature to create the moves. This allows
to easily support the lot (or any other extra field).
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