Quantcast
Channel: News - Tryton Discussion
Viewing all 188 articles
Browse latest View live

Newsletter for September 2021

$
0
0

We hope that everybody had a nice Summer and enjoyed their holidays. The Tryton team continued working on the ERP and we are back with a resume of the latest improvements.

Changes for the User

We added a frame around the image widget. This makes the widget cleaner when empty.

More party identifiers and tax identifiers have been added for Austria, Ukraine and Vietnam.

The rule keywords from statement lines are now stored in such way that they can be used for future matching. This adds a form of learning behavior to the statement rules engine.

We added a new wizard to split accounting lines. This is useful to reschedule payable or receivable lines by applying a new maturity date to each new line. The wizard can also be used on dunning and invoice lines to reschedule them.

It is now possible to set accounts for taxes of type “None”. This is useful for taxes that are entered manually on the invoice because the account will be filled in automatically.

New Modules

The Stock Package Shipping Sendcloud Module allows package labels to be generated for shipments made by any of Sendcloud’s supported carriers.

The Account Budget Module provides the ability to set budgets for accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

The Analytic Budget Module provides the ability to set budgets for analytic accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

The Product Image Module adds images to each product and variant.

Changes for the System Administrator

We improved the error management in the script used to import postal codes.

Changes for the Developer

We moved and renamed the cost_warehouse from the product_cost_warehouse module to the warehouse in the stock module. By doing this it can now be used by any module that depends on the stock module.

The complete locale definition for the user’s language is now sent to the clients.

Proteus now also fills in the wizard actions attribute when the result is an empty list.

The number widgets’ width attribute is now also used as its default display width.

The currency module defines a new Monetary field. This is derived from the Numeric field by adding a currency attribute which contains the name of the field which stores the currency. The desktop clients render these fields using the monetary format and with the currency symbol by default.

It is now also possible to use a string as the digits value on number fields (instead of the usual pair of integers). The string must contain the name of a Many2One field which points to a Model that inherits from DigitsMixin and that provides a get_digits method.
This allowed the removal of all the Function fields that provided the currency and unit digits.
Another benefit is that clients cache the value for each DigitsMixin record for 1 day by default, so this change also reduces the load on the server.

We reduced the number of times we save the cost values when doing multiple moves.

We no longer try to read records that were deleted after being instantiated from a browse list.

The digits argument to the format_number method of Report is now optional. If it is not specified, or is set to None, it will display all the significant digits.

1 post - 1 participant

Read full topic


Foundation Budget Update

$
0
0

The Tryton foundation is happy to annouce that we achieved four of the goals :partying_face: from the foundation Budget. With these resources we will be able to:

  • Maintain our infrastructure for the current year.
  • Create an infrastructure overview so it’s possible to get offers for the infrastructure maintenance for next year.
  • Buy a new Mac mini to support Apple Silicon.
  • Improve the contents of the current website, including more detailed explanations of Tryton’s main features.

Here’s a photo of the MAC Mini we purchased:

The server is already deployed and ready to be used by our development team.
We expect that the work on the other topics will soon be started, and we’ll keep you informed about their progress.

We are still missing some funds to reach the goal of Building a new code review system but the year has not ended yet :wink: So, if you want to help make it happen please make a donation.

1 post - 1 participant

Read full topic

Release of Relatorio 0.10.0

$
0
0

We are glad to announce the release of Relatorio version 0.10.0.

Relatorio is a templating library mainly for OpenDocument using also OpenDocument as source format.

This is a minor feature release which:

  • Add relatorio-render script
  • Add templating of meta in opendocument
  • Remove support for Python older than 3.5

The package is available at relatorio · PyPI
The documentation is available at Welcome to relatorio’s documentation! — relatorio 0.9.4 documentation

1 post - 1 participant

Read full topic

Release 1.3.0 of python-sql

$
0
0

We are proud to announce the release of the version 1.3.0 of python-sql.

python-sql is a library to write SQL queries in a pythonic way. It is mainly developed for Tryton but it has no external dependencies and is agnostic to any framework or SQL database.

In addition to bug-fixes, this release contains the following improvements:

  • Add GROUPS frame to Window
  • Add exclude to Window
  • Add method for each type of join
  • Support Select queries in conditionals and functions
  • Remove support for Python older than 3.5

python-sql is available on PyPI: python-sql · PyPI

1 post - 1 participant

Read full topic

Newsletter October 2021

$
0
0

Here are the latest improvements in preparation for the upcoming 6.2 release.

Changes for the User

The sale module currently provides reporting that displays relevant data grouped by products, categories etc. We now also have a general report that is not grouped but just displays totals.

We now support products without a list price.

The user will be warned if they try to post an invoice with a date in the future.

The web client now has a button to fold/unfold the selected records of a tree.

The dunning records now store their own age.

New Modules

The Product Image Attribute Module adds attributes to product images.

Changes for the System Administrator

The errors that are raised during non-interactive operations (like scheduled tasks or queued jobs) are now listed in the administration entry. These error can be processed by a user, and once solved the task or the job is submitted again.

The trytond-stat command displays the node name on which the process is running. This is useful when the directory that contains the stat socket is shared between multiple machines.

On first login the configuration wizard now has a step that makes it easy to activate modules on the system.

Changes for the Developer

The MPTT behavior has been improved to avoid a full rebuild when creating nested records. It now does a classic update for each level.

The ModelStorage class now has a count() method that returns an estimate of the number of records stored. It uses caching and random invalidation to minimize the cost.

We now use str instead of repr when constructing the warning keys. This allows the same key to be constructed using proteus.

The method remove_forbidden_chars has been added to the tools as it is used by many modules.

The ModelSQL.search method optimizes some queries by using a UNION of sub-queries when clauses contain straight columns of the table and columns of a joined table. In these cases the database can use indexes.

The context can normally only be modified with the Transaction.set_context context manager. In order to enforce this behavior, the context is now an ImmutableDict.

The title of emails generated from a report no longer contain the name of the record from which the report is generated.

The value of the Dict field is an ImmutableDict but the values must also be immutable. So we now use a tuple instead of list.

The server now uses the bigdecimal type from XML-RPC.

For performance reasons we use __slots__ for the classes registered in the Pool. But as this can be broken when one class does not define it we added a generic test which ensures that all the classes in the Pool have __slots__ defined.

When proteus is configured to use XML-RPC, it authenticates on each request. This is slow as we are using a slow hashing method for security and to protect against brute-force attacks. Now proteus can be configured to use a session with XML-RPC.

The grouping option to format numeric widget can be configured on the view.

We unified the way we set email From headers. Tryton now sets the Reply-To and On-Behalf-Of headers when needed.

2 posts - 2 participants

Read full topic

Tryton Release 6.2

$
0
0

We are proud to announce the 6.2 release of Tryton .
This release provides many bug fixes, performance improvements and some fine tuning. What is also remarkable is the addition of not less than 13 new modules of which we would like to highlight the basis for point of sale and integration with Shopify.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. No manual operations are required.

Here is a list of the most noticeable changes:

Changes for the User

It is now possible to import and export data from binary fields using CSV. The data is encoded into base64 in the file.

You can now customize the name of the records used in the report to construct the filename.

The code of the language must now be unique in the system. This removes possible ambiguity with the translations.

Web Client

The web client now has, on each tree view, a button to fold/unfold the selected rows.

Web Client Fold/Unfold button

Keyboard shortcuts (aka accesskey) have been added to every widget and the buttons of the web client. By pressing CTRL+F1, the keys are shown next to each widget and button.

Accounting

It is now possible to configure rules to automatically debit the customer with a direct debit payment. These rules are compatible with all the payment modules like SEPA, Stripe and Braintree. The payments are created by launching a wizard from the payment menu.

The invoice and dunning form now have an action to launch a wizard to reschedule the payment terms. This wizard allows new terms to be defined by splitting up the existing line.

Reschedule Invoice

When updating an asset, we now store a revision which contains the updated data, a document as the origin and a description.
It is also possible to reset an asset that does not yet have posted lines back to draft. This gives some grace time to correct any mistakes. And it is also possible to force the re-calculation of the pending lines.

More (click for more details)

Commission

We now have commission reporting by agent and period. The amount can be grouped by year, month or day and it is possible to filter for only invoiced commissions.

When creating commissions, it is now possible to select only some agents.

Customs

A country of origin can be defined for each product.

Party

It is now possible to define one contact mechanism of each type at the creation of a party. The main usage is to ease importing parties via CSV with their email, phone etc.

When a party is replaced by another, the identifiers from the former one are transferred to the new one but are deactivated.

More (click for more details)

Product

We added a computed field on the variants that calculates a name based on their attribute values. This avoid the need to define different suffixes for each variant if the attributes are enough to distinguish them from one another.

The service and kit products can now only have a fixed cost price. The other methods are all based on stock moves which does practically nothing for services or kits.

More (click for more details)

Production

To allocate the production cost between the output products, Tryton use the list price. Now if one of the output products doesn’t have a list price, the production will raise a warning before ignoring it.

Purchase

We calculate the purchase date for purchase requests created from requisitions. The calculation uses the lead time of the defined supplier or the best one found.

Sale

The default invoice, shipment and shipment cost methods can now be defined by customer. If they are empty then the general default method is used.

We extended the existing sale reports to have one general one without any grouping (useful to have grant total) and another grouped in a tree per customer category.

There is now a wizard to test the setup of a recurrence rule (used for subscription). As rules can be complex it is useful to be able to see the result based on a selected date.

More (click for more details)

Stock

We added a wizard on the customer shipment (and supplier return) to print all the package labels at once. And also reprint the label just for one package. The client can sent them directly to the default printer of the host machine. (This replaces the dummy label report.)

It is again possible to group different warehouses under a view location.

Web Shop

The product images can now be used on web shops. There is a check box to indicate whether the image should be published to the web shops.

New Modules

Account Budget

The Account Budget Module provides the ability to set budgets for accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

Account Move Line Grouping

The Account Move Line Grouping Module adds a view that displays move lines grouped.

Account Rule

The Account Rule Module allows rules which substitute default accounts with other accounts.

Account Stock Shipment Cost

The Account Stock Shipment Cost Module allocates shipment costs based on invoices.

Analytic Budget

The Analytic Budget Module provides the ability to set budgets for analytic accounts over a defined period of time. These budgets can then be used to track the total amount from relevant transactions against the budgeted amount.

Currency Romanian

The Currency RO Module adds the Romanian National Bank as a source for currency exchange rates.

Currency Serbian

The Currency RS Module adds the Serbian National Bank as a source for currency exchange rates.

Product Image

The Product Image Module adds images to each product and variant.

Product Image Attribute

The Product Image Attribute Module adds attributes to product images.

Sale Point

The Sale Point Module allows retail sales to be handled and recorded.

Stock Package Shipping MyGLS

The Stock Package Shipping MyGLS Module allows package labels to be generated for shipments using MyGLS webservices.

Stock Package Shipping Sendcloud

The Stock Package Shipping Sendcloud Module allows package labels to be generated for shipments made by any of Sendcloud’s supported carriers.

Web Shop Shopify

The Web Shop Shopify Module provides a way to manage Shopify stores. It uploads products, variants and collections to Shopify, and downloads orders, transactions and creates fulfillments.

Changes for the System Administrator

The non-interactive operations (like the scheduled or queued tasks) now report various errors to the “Administration → Scheduler → Errors”. When the problem has been fixed, the administrator can mark it as solved and it will be relaunched automatically.

An extra step has been added to the configuration wizard used on first login which allows the user to easily activate new modules.

The trytond-stat command displays the ID of the node in addition to the process ID. This enables you to see which node the request came from.

More (click for more details)

Accounting

We added two groups which give access rights to edit the accounting fields on parties and products. This provides more flexibility in privilege separation.

Changes for the Developer

In addition to MPTT we now support another method which is based on a stored path. This is a method that is faster when the tree is modified but which takes up more space.
To simplify the choice, you should use MPTT for trees that are mainly static (like the chart of accounts) and Path for trees that are often modified (like the project tree).

We improved the way digits are managed for numeric fields. Now you can set the digits attribute as the name of a field that point to a DigitsMixin model (like the unit of measure).
Also the numeric widgets now have a grouping attribute which specifies whether the client should group the digits or not.
We added also the SymbolMixin which defines how to format a number with a symbol (like the unit of measure). The language and report has formatting methods that support the symbols and also empty digits.

On the user warning model we added a class method that standardizes the format of warning names based on its records.

We’ve enforced immutability on even more data structures. The transaction’s context dictionary can now only be changed by using the set_context context manager. The value of Dict fields now use a tuple instead of a list.

The ModelSQL.lock method locks the table when called without records.

When copying records, we do not copy the values of the record that still have a default value. This lets a user copy a record for which they do not have access rights for some of the fields, but only if those fields values are still the default.

Tryton can now store, in the global cache of the transaction, the result of Function fields if it is a read-only transaction. This improves performance if we have Function fields that are using other Function fields to compute their values.

More (click for more details)

Scripting Client

Tryton is using a slow hashing algorithm to prevent brute-force attacks but this meant the scripting client was slow when used remotely because each call needed to be authenticated by hashing the password. It is now possible to configure these scripts to create a session and use it for further calls.

More (click for more details)

Accounting

We store the value of keywords extracted from the statement origin. They can now be used by the rules to find a party for a similar statement origin.

We now calculate the warehouse for each invoice line.

More (click for more details)

Currency

The currency module defines a new Monetary field which can be used to store a numeric value linked to a currency field. These fields have the correct symbol and monetary formatting set automatically.

The currency now inherits from DigitsMixin which allows it to be used as a digits attribute.

Party

The “Replace Party” wizard can now also update reference fields to point to the new party.

Product

The unit of measure now inherits from DigitsMixin which allows it to be used as a digits attribute.

Production

The BoM can now have many inputs or outputs of the same product. We removed the unique constraint for products on the input and output lists.

Project

The projects and tasks now used the path mechanism instead of MPTT to speed up searching on their tree structure.

Purchase

The process method has been refactored into different methods. This allows a design which can process multiple purchases at once and improve speed.

Sale

The process method have been refactored into different methods. This allows a design which can process multiple sales at once and improve speed.

In order to only group within the same shipment moves with the same cost method, the cost method from the sale is now stored on the shipment.

Stock

We now provide a unique method that is used to sort the quantities to pick when assigning stock. This method can be extended to implement custom strategies like FIFO, LIFO or FEFO.

Moves now have a property which returns the warehouse to which they are linked. This property replaces the previous cost warehouse.

5 posts - 1 participant

Read full topic

Newsletter December 2021

$
0
0

After release 6.2 we have already resumed development with some cleaning and performance improvements.

Changes for the User

The early planning for stock quantities now takes internal incoming requests into account.

You can now define a delay after which an email notification will be sent.

The reset password email now displays how long it is valid instead of the UTC expiry date and time.

The record names for addresses now contains all the street lines instead of just the first one.

Changes for the System Administrator

It is now possible to send test emails without a database.

Changes for the Developer

The PostgreSQL back-end now uses the JSONB type by default to store the value of Dict fields.

We activated support for window functions when using SQLite versions greater than 3.25.0.

We use RENAME and DROP COLUMN when using SQLite versions that support them.

It is now possible to customize the states of the shipments with which a sale can be grouped.

The button to generate SEPA messages has been prefixed by sepa avoiding any name clashes with other modules.

It is possible to mark the getter of a Function field as not depending on the context. By doing this it can be stored in the transaction cache in readonly transactions.

The cache of instances passed to Function field getters are now prefilled with data already calculated for the instance. The order in which the Function fields are called can be tuned to take advantage of this behavior when the calculations depend on other Function fields from the same record.

1 post - 1 participant

Read full topic

Foundation 2021 Resume

$
0
0

As we are ending the year I will like to give an update about the tasks performed by the foundation. Unfortunately we haven’t still finished the two tasks that were founded on the Foundation Budget Update:

  • Creating an overview of the infrastructure.
  • Improving our website contents.

Our apologies by having not completed them yet :pray:. We all had a hard time last year and a reduced quantity of resources. Having said that, we want to clarify that the budgeted money for this tasks isn’t spent yet. Our plan is to perform them in the next year.

We haven’t received any proposal for the infrastructure maintenance :man_mechanic: :woman_mechanic: for the next year. But we would like to thank B2CK for continuing providing us a reliable infrastructure. Despite not having the infrastructure overview available I will encourage anyone willing to help on such task to contact the foundation or send me a direct message expressing his interest. We will be happy to comment any proposal and provide more details of the needed work.

On the other had, I have some news related to other foundation mission’s: Protect the Tryton trademark. We have renewed the Tryton Trademark registration for the next 10 years :partying_face:.

Our commitment is to continue improving step by step, so I will like to advance some of the topics we are planning to work on:

  • The budget for the next year.
  • The board of foundation directors renewal until November 2022.

I’ll like to remember that the foundation exists due its supporters and you can become one by sending us an email. If you want to support the project I will encourage you to become a supporter.

Also we are open to suggestions and feedback and we want to listen all voices in the community. If you have some idea or something that you think its relevant for the next foundation budget I will encourage you to share it on the forum or contact the foundation.

I can not end without a photo of our Spanish Santa Claus:

Merry Christmas and Happy New Year for everyone!

1 post - 1 participant

Read full topic


Newsletter January 2022

$
0
0

The Tryton team wishes you a happy new year.
Here are the changes that the team has already prepared for the next version.

Changes for the User

We store the factors used to allocate landed costs. They will be used if the landed cost is cancelled instead of recalculating them (which can result in different factors over time).

When recalling advance payments we now invoice a negative quantity instead of a negative price.

The attention name is now part of the default address format.

Changes for the System Administrator

It is now possible to set combined authentication method options which can be used to make some of the authentication methods optional.
In a base installation of Tryton the options are for connections from an IP address in a known network and for client connections from a known device.
This can be used, for example, to enforce the second factor, such as SMS authentication, only for external IPs.

Changes for the Developer

We’ve added a simple logger to the web client which provides similar API to the python logger. The log level can be changed from the browser console by running: Sao.Logger.set_level(Sao.Logging.INFO);

We now enforce the import order in the .py files using isort (see our Python style guidelines).

The tests, run with tox, now report their coverage.

It is now possible with the creatable attribute to specify if a view can be used to create new record. The client will automatically switch to another view if the user tries to create a record from a view where this is false, even if the view is editable.

We’ve added support for Python 3.10 and removed Python 3.6 following to our policy to support only upstream supported versions.

The Shopify module will delete only the metafields that are managed by Tryton.

We’ve replaced the balanced move check Python code with an SQL query. This speeds up the process a lot especially for moves that have lots of lines.

1 post - 1 participant

Read full topic

Newsletter February 2022

$
0
0

Time goes by and improvements to Tryton continue to be made. Here you can find the latest changes which have been included in the last month.

Changes for the User

The forecasts are now used for all supply calculations instead of only the purchase requests.

In the web client, the list of tabs no longer wraps on large screens but scrolls horizontally and each tab entry takes up the full width on small screens.

We now calculate an early date for the partial quantity if there isn’t one for the full quantity.

It is no longer possible to close (or remove) the type of an account that is already used in account move lines.

The auto-detection of CSV headers now stops on the first error in the web client.

We now support editing Shopify orders.

The accounts can have another type when their balance is a credit. This is the opposite of the existing debit type.

We do not create any more dunning for lines with pending payment.

Production orders with missing early moves are no more proposed for early planning.

We renamed the split lines accounting wizard into reschedule lines to be less confusing.

Changes for the System Administrator

The country module supports pycountry version 22.1.10.

We mirror the geonames zip files and use our mirror by default. This was needed because the original host has frequent downtime.

We removed the entropy check on user password. We found that it was not a good way to enforce good password. We recommend to use the forbidden list instead.

Changes for the Developer

We process sales for Shopify asynchronously as it can be quite slow due to the Shopify rate limit.

The view_id is now set in the context when parsing the view. So it can be used to apply attributes depending on the view in ModelView.view_attributes.

We replaced the deepcopy of the JSON-RPC result in the desktop client by a faster implementation based on the json types.

The country module can now load subdivisions with unknown types. This was needed to support future versions of pycountry.

The ORM uses now the already cached data to instantiate relational target records for which the context depends on other fields. This optimization prevents extra SQL queries for most of the cases.

The stock margin report retrieves the product’s unit from the SQL query instead of using a Function field which was triggering a second execution of the table query.

We replaced the back-off time on Shopify API calls by an automatic retry loop. This allows to make the first calls quickly until it consume the available bucket.

The board action domain is now limited to active_id and active_ids and they are stored in a dedicated _actions dictionary.

We added on ir.ui.view the view_get RPC method which can be used by the board to support inheritance like the other views.

The xpath inheritance of views applies now on all matching elements (instead of only the first) by default.

1 post - 1 participant

Read full topic

Newsletter March 2022

$
0
0

Here’s a sneak peak at the improvements that landed during the last month.

Changes for the User

To shipments we’ve added a field that calculates the total weight of the packages.
It is now possible to configure which units are used for the shipment volume and weight (instead of the hard coded values).

The clients now have an upper limit when counting records. They also use a human readable format for the count to a precision of 4 figures, and now display the number of record selected as well.

Users can now configure for each view which optional columns to display.
All the list views have been reviewed to add or mark optional columns and provide a simplified version by default.

The model, field and column is now displayed in the import error message. This makes it easier for the user to find mistakes in a CSV file.

Tryton now also searches for the BIC when searching by bank name. And when searching bank account numbers, it only searches for the starting number.

We added a test to reconcile all the lines when running the reconcile account wizard. This ensures this special case is always found even if the number of lines is greater than the reconciliation chunk.

The general ledger now hides the debit/credit columns if there are no lines for the period. And by default the list opens with only the accounts that contains lines.

A default statement journal is created automatically when the account_statement module is activated. This eases on-boarding new users.
When searching for a payment to link to a statement line, Tryton displays first the payment with the closest amount.

The chart of account now forces child accounts to have the same type as the parent account (if it has one).

Tryton now supports the Shopify webhook which allows orders to be updated as soon as the event happens (instead of needing to wait for the scheduled task).

The SIREN and SIRET numbers are now stored as party identifiers. And an identifier can be linked to an address in the same way as SIRET.

We now raise a warning when validating a supplier invoice that has the same reference as another invoice.

It is now forbidden to decrease the number of digits of a unit of measure. This was needed to prevent validation errors on existing records that use that unit of measure.

New Modules

The Account Invoice Watermark Module adds a draft or paid watermark to the printed invoice.

The Account Tax Non-Deductible Module allows defining non-deductible taxes and reporting them.

The Sale Invoice Date Module fills in the invoice date for invoices created by sales. The invoice date is used for grouping, allowing invoices to be generated based on a period (i.e: for Monthly Invoices).

Changes for the Developer

We support limit and offset to ModelSQL count search and search_count. The ORM optimizes the query to avoid reading unnecessary records when the limit is smaller than the number of records in the table.

We improved the parsing in the get_eval_fields function to be 60% faster.

The desktop client uses, by default, UTF-8 with BOM for the CSV import/export.

The domain of a Reference field is now a dictionary which contains a separate domain for each target model.

The order of unsorted Selection fields is now based on the index of the field definition. For example ordering sales by the state field, will put drafts first, then quotations, etc.

The server retries by default 5 times on temporary SMTP server errors.

We replaced the ilike operator on Reference fields by a simple like. This may allow the database engine to use indexes.

2 posts - 1 participant

Read full topic

Security Release for issue11219 and issue11244

$
0
0

Synopsis

XML parsing vulnerabilities have been found by Jeremy Mousset in trytond and some modules.
With issue11219 an authenticated user can make the server to parse a crafted XML SEPA file to access arbitrary files on the system.
With issue11244 an non authenticated user can sent a crafted XML-RPC message to consume all the resources of the server.

Impact

issue11219

CVSS v3.0 Base Score: 6.5

  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: Low
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality: High
  • Integrity: None
  • Availability: None

issue11244

CVSS v3.0 Base Score: 7.5

  • Attack Vector: Network
  • Attack Complexity: Low
  • Privileges Required: None
  • User Interaction: None
  • Scope: Unchanged
  • Confidentiality: None
  • Integrity: None
  • Availability: High

Workaround

It is possible to activate defusedxml, define default lxml parsers that does not resolve entities and upgrade expat to 2.4.1 or newer.

Resolution

All affected users should upgrade trytond and proteus to the latest version.

Affected versions per series:

  • trytond:

    • 6.2: <= 6.2.5
    • 6.0: <= 6.0.15
    • 5.0: <= 5.0.45
  • proteus

    • 6.2: <= 6.2.1
    • 6.0: <= 6.0.4
    • 5.0: <= 5.0.11

Non affected versions per series:

  • trytond:

    • 6.2: >= 6.2.6
    • 6.0: >= 6.0.16
    • 5.0: >= 5.0.46
  • proteus:

    • 6.2: >= 6.2.2
    • 6.0: >= 6.0.5
    • 5.0: >= 5.0.12

Reference

Concern?

Any security concerns should be reported on the bug-tracker at https://bugs.tryton.org/ with the type security.

1 post - 1 participant

Read full topic

Newsletter April 2022

$
0
0

Close to the future release 6.4, we still have a lot of new features landing in Tryton:

Changes for the User

Stock moves without a quantity are no longer required to be put in a package.

The volume dimensions have been added to packages.

The multi-selection in the desktop client now behaves in the same way as the web client to select multiple value use the CTRL and SHIFT buttons.

The country name on addresses is now always displayed in English as requested by postal norm.

Now when multiple statement lines fulfill a payment, or a group of payments, they are reconciled automatically with the clearing lines.

The manual payment processed amount can now be edited. This is useful, for example, when the amount read from a received check does not match the amount read by the bank.

The lots now have upward and downward traces. If you are already using lots, the history of traceability will available.

There is now a configurable expiration delay for the Stripe setup intent. This is useful to avoid keeping old intents that online customers will never complete.

The production is now displayed on the stock move form.

It is no longer possible to delete a tax identifier on a party if it is used on an invoice.

We now use the invoice date instead of the accounting date to enforce the sequence of customer invoices. This is more flexible and is valid for most of the countries.

A negative debit/credit is used now to book cash change on the point of sale. This avoids artificially increasing the debit/credit total of the account.

The stock package type can now be deactivated if they are no longer used.

We added support for the UPS notification service options.

The cost price on the outgoing moves of a drop shipment are now recalculated when the unit price of the supplier is changed. This provides a more accurate margin report.

We now store the employee who approved the refund of a Stripe or Braintree payment.

The sales from the POS are now included in the sale reporting.

The clients disable the previous/next navigation buttons when there is no record to select.

We warn users who try to deactivate a product when it still has stock.

Changes for the Developer

We use now a unique Reference fields for the relation of statement line with invoice, payment etc.

The parse of XML data file have been improved to enforce the type of record used in ref attribute, to support Reference field value with ref attribute.

There is now a batch size when pushing to the queue. When the number of records is greater, the task is divided.

The invoices and lines have now a field that contains the numbers of the linked shipments. This field can be used to customize the invoice report to display the shipments.

Tryton uses now the best selectors available on the OS to wait for data to read instead of always using select.

The MultiSelection field always returns a immutable tuple.

It is now possible to deactivate the record of button. This is useful when customizing existing buttons.

The CORS options is now also support on the root path.

We prevent to create/delete singleton from the clients. This provides a better user experience.

The domain inversion removes now also the duplicate clauses.

1 post - 1 participant

Read full topic

Releaset of Relatorio 0.10.1

$
0
0

We are proud to announce the release of Relatorio version 0.10.1.

Relatorio is a templating library mainly for OpenDocument using also OpenDocument as source format.

This is a bug-fix release which:

  • Add support for Python 3.10
  • Support directive applying to itself
  • Keep tail of directive
  • Use unittest discover

The package is available at https://pypi.org/project/relatorio/0.10.1/
The documentation is available at https://relatorio.readthedocs.io/en/0.10.1/

1 post - 1 participant

Read full topic

Release of python-sql 1.4.0

$
0
0

We are proud to announce the release of the version 1.4.0 of python-sql.

python-sql is a library to write SQL queries in a pythonic way. It is mainly developed for Tryton but it has no external dependencies and is agnostic to any framework or SQL database.

In addition to bug-fixes, this release contains the following improvements:

  • Use unittest discover
  • Use only column name for INSERT and UPDATE
  • Add escape to Like operators
  • Add default literal ‘*’ expression to Count
  • Add support for Python 3.10

python-sql is available on PyPI: python-sql · PyPI

1 post - 1 participant

Read full topic


Tryton Release 6.4

$
0
0

We are proud to announce the 6.4 release of Tryton.
This release provides many bug fixes, performance improvements and some fine tuning. What is also significant is the addition of 9 new modules.
You can give it a try on the demo server, use the docker image or download it here.
As usual migration from previous series is fully supported. No manual operations are required.

Here is a list of the most noticeable changes:

Changes for the User

It is now possible for modules to display a notification message from the server while the user is filling in a form. This is already used by the sale_stock_quantity module to display a message when user selects a product which has a forecast quantity that is not enough for the order.

Users can now choose which optional columns are displayed on list and tree views. All modules have been reviewed to make non-essential columns optional and thus provide a lean interface by default.

Some views can now be used to edit but not create new records. This can be used, for example, to setup an editable list that allows the data to be modified, but creating a new record will always use the form view.

The CSV import now skips empty rows inside One2Many fields. It is now possible to import many One2Many fields in the same file but with different lengths.

The CSV import error messages have been improved to include the model, field and column. This makes it much easier to find and solve problems with the CSV data.

More (click for more details)

Web Client

Reference fields can now be opened from the list and tree views like Many2One fields. They are rendered as a link which opens a new tab using the form of the target model.

Desktop Client

CSV exports encoded in UTF-8 now include, by default, the Byte Order Mark to increase compatibility with other systems.

The multi-selection widget now uses the same default selection behavior as other lists. This solves inconsistency in the behavior.

Accounting

The reconciliation wizard now has an option to automatically reconcile the default suggestions. This speeds up the process for accounting with a lot of entries when the system is well configured.

Similar to the debit type, we now have also an optional credit type on accounts. Of course an accountant can only have one optional debit or credit type.

The general ledger now displays, by default, debit/credit columns only when there are actually lines in the account for the period. And it also display the number of lines.

We now use the invoice date (instead of the accounting date) to enforce the sequence order for customer invoices. This is more flexible and is still consistent with most country’s rules.

When interactively validating a supplier invoice with the same reference as an existing one, Tryton raises a warning as the user may be entering the same invoice twice.

Lines in a payable or receivable account can now only be added to a payment if they have a maturity date. This avoids creating payments for purely accounting lines.

The receivable payments can now be processed without needing to be approved first, just submitted. This simplifies the workflow for receiving payments like checks where there is no need for a second approval.
It is also now possible to edit the amount of a payment that is in a processing state. This is because sometimes a different amount is read from a check compared to the amount read by the bank.

We no longer create dunnings for lines with a pending payment.

It is no longer possible to select reconciled payments or groups when entering a statement. This simplifies the selection task for the user, and for the rare case where they still need to select a reconciled payment, they can still unreconcile them before selection.

The clearing line of a payment is now automatically reconciled with all the statement lines linked to it.

The user can now choose the allocation method to apply to the shipment cost.

More (click for more details)

Banking

Tryton can now fill in or create the related bank from an IBAN.

When searching for a bank name, Tryton also searches on the BIC.

Party

The country name on a printed address is always shown in English in order to follow the international standard.

The SIREN and SIRET codes are now managed as identifiers on the party.

A party identifier can now be linked to one of the addresses of the party. The SIRET number uses this new feature.

The “autonomous city” is now allowed as subdivision for Spain.

All the lines of the street are now used as part of the record name of an address.

Product

It is now forbidden to decrease the number of digits of a unit of measure. This prevents invalidating existing quantities linked to the unit.

We now warn users who try to deactivate a product that still has stock.

Production

The stock move form now also shows, where applicable, the production it is linked to.

Purchase

It is now possible to define a default currency for each supplier.

Sale

It is now possible to define a default currency for each customer.

The origin name of an invoice line for advance payment is now filled in with the advance payment condition name.
The advance payments are now recalled with a negative quantity instead of a negative price.

The opportunities reports now use real date fields to display the month instead of two fields - year and month. This improve the search possibilities.

Sales made by POS are now included in the general sales reports.

When registering cash change given using the POS, we use a negative debit or credit in the accounts. This prevents artificially increasing the totals.

A notification is now displayed directly to the user when entering in a sale of goods whose forecast quantity is not high enough to cover the sale.

Stock

Tryton now also recalculates the cost price on the moves of drop shipments.

The assignation process now uses the lot number as criteria if it is populated.

Upward and downward traces have been added to stock lots to improve lot traceability.

It is now possible to select the UPS notification service.

The forecasts are now applied to all the stock supplies instead of only the purchase requests.

More (click for more details)

Web Shop

Tryton now supports editing orders from Shopify.

New Modules

Account Spanish SII

The Account Spanish SII Module allows sending invoices to the SII portal. This is legal requirement for some Spanish Companies.

Account Invoice Watermark

The Account Invoice Watermark Module adds a draft or paid watermark to the printed invoice.

Account Receivable Rule

The Account Receivable Rule Module defines rules to reconcile receivables between accounts.

Account Stock Shipment Cost Weight

The Account Stock Shipment Cost Weight Module adds “By Weight” as an allocation method for shipment costs.

Account Tax Non-Deductible

The Account Tax Non-Deductible Module allows the definition of non-deductible taxes and adds reports for them.

Purchase Product Quantity

The Purchase Product Quantity Module permits enforcing minimum and rounded quantities to be purchased per supplier from purchase requests.

Sale Invoice Date

The Sale Invoice Date Module fills in the invoice date for invoices created by sales.

Sale Product Quantity

The Sale Product Quantity Module permits enforcing minimum and rounded quantities to be sold per product.

Stock Shipment Cost Weight"

The Stock Shipment Cost Weight Module adds “By Weight” as an allocation method for shipment costs on the carrier.

Changes for the System Administrator

The CORS configuration is now also applied to the root path.

Tryton now automatically retries sending emails if there is a temporary failure status.

We removed the password validation based on entropy. It was not a good measurement for robustness of password.

The login methods receive the options ip_address and device_cookie.

Country

The script to load postal codes now uses the Tryton CDN for more reliability.

We now support pycountry 22.1.10.

Changes for the Developer

We now use the unittest discover method as a replacement for the deprecated test command from setuptools.

The documentation now contains a tutorial on how to create a Tryton module.

The models now have an on_change_notify method which is used to display messages on the client while user is filling in a record.

The ModelStorage has now a validate_fields method which permits validation to occur only when specific fields have been modified. This is useful if the validation is expensive. All the modules have been reviewed to take advantage of this new feature.

The depends on the Field are now python sets. It is also no longer necessary to define depends for the states, domain and digits expression. Tryton calculates them automatically. However, it is still needed for the context if you want to be sure that it will always be set.

We include in the view only the depends fields that are needed for that type of view (editable or not).

We prevent creating or deleting singletons. The corresponding actions are disabled in the clients.

The Reference fields use a dictionary for domain and search_order. The keys are the name of the target model.

It is possible to define a field on a tree view as optional. The user will then have the choice of whether to display it or not.

The creatable attribute on tree and form views allows defining whether the view can be used to create new records or not. If not the client will switch to another view from which records can be created.

The local cache of instances created by Function fields are now populated with the values that have already been read. This speed up the calculation of these fields.

The value of Function fields are now cached during the transaction if it is readonly.

We use the JSONB column type to store Dict fields on PostgreSQL backend.

More (click for more details)

Web Client

We now use ECMAScript version 6.

Desktop Client

We added an option to define the logging output location.

Accounting

A date must always be set in order to calculate taxes.

We enforce the same type for the children of an account with a type set.

A unique Reference field is now used to on the statement line instead of multiple Many2One fields.

More (click for more details)

Banking

We enforce the uniqueness of the IBAN and permit only one per bank account.

More (click for more details)

Country

The script to load subdivisions no longer fails for unknown subdivision types.

Web Shop

A route has been added to support the Shopify webhook for orders. This allows quicker order synchronization.

We removed the API backoff time and now support request retries using the Shopify Retry-After header.

We modify only the metafields managed by Tryton.

3 posts - 1 participant

Read full topic

Newsletter July 2022

$
0
0

Here are some improvements that have already landed in the development tree for the next release 6.6.

Changes for the User

We now show the number of email addresses that are subscribed to a marketing mailing list.

The commission on products can now be included in the stock margin report.

It is now possible to define marketing scenarios from which user can unsubscribe. For example with a scenario that reminds the customer of pending sales, the customer can now unsubscribe for all sales instead of just the one that is pending.

When inactivating a location, Tryton does not check whether there are still consumable products in it.

The types of UPS service have been updated.

It is now possible to define the start and end date for a relationship between parties. Once the relationship has ended those relationships are no longer active.

Changes for the System Administrator

We now use a delay instead of a datetime in UTC for the reset password expiration. This is easier to understand for the user.

Changes for the Developer

The TableHandlers are now a singleton per table. This avoids having to reload the table definitions between instantiations in different modules.

The product lead time is now a MultiValue so it can be customized to depend on the warehouse, the company etc.

1 post - 1 participant

Read full topic

Newsletter August 2022

$
0
0

The summer did not stop Tryton development, here are the new features that landed:

Changes for the User

Saved CSV exports now also set the header in the same way as when run from the wizard.

The account chart reports now use a context form instead of a setup wizard. This allows the report configuration to be instantly changed instead of needing to close and re-open it.

The cost allocation for a shipment and landed cost is now shown before and after posting. This enhances understanding and can help prevent mistakes.

New Modules

The Sale Promotion Coupon Payment Module includes the same parties as the payments to allow the usage to be counted per party.

Changes for the System Administrator

The logging messages now include the duration spent processing the request or task.

The logging messages containing the request parameters are now truncated at 80 chars.

Changes for the Developer

The payment modules link together the same parties that have used the same payment methods.

A promotion coupon can now count together identical parties.

Tryton now uses an implicit join clause on sub-queries when searching on Many2One fields. This allows the database engine to use a better SubPlan, reducing the complexity from O(n²) to O(n log(n)) by using the index on the primary key.

1 post - 1 participant

Read full topic

Newsletter for September 2022

$
0
0

We hope that everybody had a pleasant Summer and enjoyed their holidays. The Tryton team have got back to work on the ERP. Here’s a list of the latest improvements that have already been published.

Changes for the User

The record name and value are now included in the generic validation error message. This helps the user to better understand the problem and correct it.

We’ve added the flag of each country and subdivision. The country flag is now part of the record name.

Changes for the System Administrator

The server command lines now have completion thanks to argcomplete.

1 post - 1 participant

Read full topic

Debian integration packages for Tryton

$
0
0

I am glad to announce a new set of Tryton integration packages for Debian that allows one to setup a production grade Tryton environment with a guided setup.

The new available packages are

  • tryton-server-postgresql

    This package helps in the creation and setup of a PostgreSQL database
    for the Tryton server.

  • tryton-server-uwsgi

    This package helps in the creation and setup of an uWSGI frontend/backend
    for the Tryton server. Additionally it allows one to configure
    uWSGI daemons for Tryton workers and cron.

  • tryton-server-nginx

    This package helps in the creation and setup of an Nginx frontend
    for the Tryton uWSGI server. It also offers the automatic registration andd renewal of a configured domain with Letsenscrypt certificates.

  • tryton-server-all-in-one

    This package makes finally use of all the above packages to setup a
    ready-to-use production grade Tryton server environment including
    a database filled in with primary static data like countries,
    currencies and postal codes.

The packages are available for Tryton series 6.0

  • for Debian unstable and testing (bookworm) from Debian mirrors
  • Backports for Debian stable (bullseye) and oldstable (buster) from tryton.debian.net. (Please have a look at the Debian Tryton Team Documentation how to configure your Debian system for their usage).

Thanks go to Freexian for supporting the development of this packages.

1 post - 1 participant

Read full topic

Viewing all 188 articles
Browse latest View live


Latest Images