Release notes#

  • Add method to the backend to estimate number of rows

  • Add setup indexes method to ModelSQL

  • Support getting many sequences at once

  • Add sequence_nextval function to Database

  • Retrieve groups of actions without checking access (#13506)

  • Check read access of report records (#13505)

  • Forbid editing cron when it is running

  • Store last cron durations

  • Use JSONB to store MultiSelection field by default

  • Add cardinality option to Index Usage

  • Allow configuring TinyMCE license key

  • Add tools to apply types to SQLite select queries

  • Compress RPC responses

  • Change _changed_values and _save_values properties to method

  • Add configuration for report convert command

  • Use process pool to run cron

  • Lock only running cron record

  • Add option to skip tests that require network

  • Add language support per field in export data

  • Add translated descriptor for Char and Text fields

  • Include row and column in error message when importing data

  • Remove support for :id suffix in import data

  • Add export translations option to trytond-admin

  • Update TinyMCE to version 7

  • Add python-format flag to PO files

  • Add partial support for constraints with SQLite backend

Version 7.2.0 - 2024-04-29#

  • Bug fixes (see mercurial logs for details)

  • Do not accept compressed content from unauthenticated request (#13142)

  • Set loading eager to visible xxx2many on form view

  • Add loading attribute to form view

  • Add a contextual read limit on Model.read

  • Add a contextual read limit for related fields

  • Add xml_id field on ModelStorage

  • Add send_message methods

  • Store model on ir.rule.group

  • Store model on ir.model.button

  • Store model and field name on ir.model.field.access

  • Store model name on ir.model.access

  • Store model name on ir.model.field

  • Add fmany2one field

  • Allow creation of foreign key on non primary key

  • Include context information in access error

  • Remove trytond-worker max tasks per child option for Python <= 3.10

  • Do not copy readonly relational fields

  • Support list of single value in sortable_values tools

  • Allow resetting password of user via RPC

  • Support cached_property on object with __slots__

  • Allow creating indexes concurrently

  • Allow skipping index creation

  • Add assert methods to test tools

  • Set ELLIPSIS option flag on doctest

  • Set IGNORE_EXCEPTION_DETAIL option flag on doctest

  • Add timeout parameter on RPC definitions

Version 7.0.0 - 2023-10-30#

  • Bug fixes (see mercurial logs for details)

  • Add pairwise_longest tools

  • Add support for Python 3.12

  • Support default values for autocomplete

  • Support default value from context

  • Add autocomplete method on ModelView

  • Add likify tools

  • Remove user from contextual key of Cache

  • Remove user from evaluation context of rule domain

  • Allow customizing context per model for rule

  • Use multiple jobs to dump and restore a test database

  • Support database cache as template for tests

  • Add route test case

  • Add on_scan_code method on Model

  • Support add/update/remove/delete for on_change_with of xxx2Many

  • Add decorator on RPC

  • Remove translations with empty source

  • Run doc tests with different globals

  • Create user applications as validated from user preferences

  • Support GIN index with btree_gin PostgreSQL extension

  • Add a canonicalize function for domains

  • Enforce record rules when reading only non SQL fields (#12428)

  • Support PYSON comparison of timedelta

  • Support encoding timedelta into PYSON TimeDelta

  • Allow date formating in sequences substitutions

  • Make ModelSQL based on table query read only by default

  • Add email validation tools

  • Remove overlapping indexes

  • Support subset operator between index definitions

  • Add sum_tree helper

  • Convert sum attribute into boolean

  • Store records selection on export

Version 6.8.0 - 2023-05-01#

  • Bug fixes (see mercurial logs for details)

  • Support return instances for Function getter and on_change_with

  • Log events for ModelStorage

  • Use IDENTITY column for id columns in the postgresql backend

  • Use no breaking space to format number and date

  • Fallback to code to format currency without symbol

  • Add sort method to order like ModelStorage.search

  • Do not alter argument values of with_transaction decorator (#12108)

  • Support SMALLINT and REAL as backend types

  • Remove BigInteger field

  • Remove support for Python 3.7

  • Add support for Python 3.11

  • Add scroll time for calendar view

  • Allow cache size to be configured

  • Add local and global list of ignore context keys

  • Add functions in transaction for check access and active record

  • Add check_access and active_records attribute to Transaction

  • Add searchable and sortable methods on Field

  • Add support for barcode and QR code

  • Support reading string value of selection fields

  • Add ButtonActionException and RPCReturnException

  • Rename ModelStorage.count into ModelStorage.estimated_count

  • Add border type to images

  • Lock table on transaction start

  • Use EXISTS for search on O2M with many records

  • Replace target_search by use of count()

  • Manage domain on id in single value list as unique

  • Do not validate domain for empty fields

  • Warn about implicit save() of unsaved relation

  • Raise error message with record name and field in check_xml_record

  • Cache RPC call for class method selection

Version 6.6.0 - 2022-10-31#

  • Bug fixes (see mercurial logs for details)

  • Add sql_id method to Reference field

  • Use declarative index definition for ModelSQL

  • Add configuration entries for unaccent and similarity functions

  • Add authentication services

  • Schedule actions using server timezone

  • Reset the user sessions less often

  • Add straight values to wizard state view

  • Add strip option to Char fields

  • Strip only one wildcard

  • Manage web extension origin as null

  • Remove same types restriction on PYSON If

  • Allow PYSON size of fields to be None

  • Add command line completion with argcomplete

  • Include record name and value in validation error message

  • Add header parameter on export data

  • Enforce certificate validation for SMTP connection (issue11564)

  • Use singleton for TableHandler

Version 6.4.0 - 2022-05-02#

  • Bug fixes (see mercurial logs for details)

  • Use unittest discover

  • Add module tutorial

  • Test all XML view and SVG icon files are used

  • Add notification message

  • Add validate_fields to ModelStorage

  • Drop support for PyPy and psycopg2cffi

  • Use a set for field’s depends

  • Relax the constraint on a field’s depends

  • Include only needed fields when fetching a view definition

  • Make warning check re-entrant

  • Manage DatabaseDataError in ModelSQL

  • Remove support for pysqlite2

  • Do not import empty One2Many data

  • Deduplicate entries in domain inversion’s simplify

  • Prevent to create and delete singleton

  • Allow CORS on root path

  • Allow button access to be deactivated

  • Always return tuple for MultiSelection

  • Use default selectors instead of select

  • Add batch option to push queue tasks

  • Support ref value for reference field

  • Enforce ref model in XML data

  • Do not resolve entities by default with lxml (issue11219)

  • Use defusedxml to parse XML (issue11244)

  • Use dictionary as search_order on Reference field

  • Retry sending email on temporary failure

  • Order not sorted Selection by index definition

  • Add optional column on tree view

  • Use dictionary as domain on Reference field

  • Include model, field and column in import data error message

  • Support limit and offset to ModelSQL count search and search_count

  • Apply view inheritance to board

  • Add RPC view_get method to View

  • Apply view inheritance to all matching elements

  • Limit board action domain to active id and ids

  • Remove entropy check on password

  • Set view_id in the context when calling view_attributes

  • Add ip_address and device_cookie login method options

  • Add support for Python 3.10

  • Remove support for Python 3.6

  • Add creatable attribute on tree and form views

  • Fill local cache of Function field instances with values

  • Cache Function field getter without context in readonly transactions

  • Use expire delay instead of UTC datetime in reset password email

  • Use RENAME and DROP COLUMN with SQLite backend

  • Support window functions with SQLite backend

  • Use JSONB to store Dict field on PostgreSQL backend

Version 6.2.0 - 2021-11-01#

  • Bug fixes (see mercurial logs for details)

  • Allow to cast to date with timezone

  • Support create/delete attribute in view

  • Skip default values when copying records

  • Use local cache for relation fields in readonly transactions

  • Add format method to DictSchemaMixin

  • Allow modify record name on the reports

  • Add methods to format number and symbol on Lang

  • Add format number with symbol on Report

  • Allow locking tables by calling ModelSQL.lock without records

  • Add test on domain of relation fields

  • Add stored path as alternative to MPTT

  • Activate and upgrade modules from configuration wizard

  • Add set_from_header in email tools

  • Add grouping attribute to numeric widgets

  • Ensure with a test that objects in the Pool have __slots__

  • Use bigdecimal tag for XML-RPC

  • Use tuple in Dict value instead of list

  • Do not set record name on title of report get_email

  • Add node to id of status

  • Use ImmutableDict for Transaction context

  • Use UNION for ‘Or’-ed domain with subqueries

  • Add remove_forbidden_chars in tools

  • Manage errors during non-interactive operations

  • Add estimation count to ModelStorage

  • Support empty digits in format_number of Report

  • Add digits mixin

  • Use argon2 or scrypt to hash password by default

  • Allow PYSON Expression as key for PYSON In with dict object

  • Add method to format warning name with records

  • Add option to trytond-console to start a readonly transaction

  • Add support for werkzeug 2.0

  • Combine search and get_keys in DictSchemaMixin

  • Make language code unique

  • Support base64 encoded data in ModelStorage.import_data

  • Add BOOL_AND and BOOL_OR to SQLite backend

Version 6.0.0 - 2021-05-03#

  • Bug fixes (see mercurial logs for details)

  • Allow column sql types to be tested from the table handler

  • Add support for database connection parameters to configuration URI

  • Use immutable datastructures for Dict and MultiSelection fields

  • Skip warnings for non-interactive operations

  • Check rule only if _check_access is set

  • Add statistics to Cache

  • Add support for avatars

  • Add status command

  • Add document widget on form view

  • Add full text and similarity search and FullText field

  • Add URL type to icon

  • Use instance method to get next sequence value

  • Store the sequence type directly on sequence

  • Allow sending email with record’s attachments

  • Add which records to use for actions

  • Add parent to group to inherit accesses

  • Add __access__ to Model

  • Add route wrapper to allow null origin

  • Add header grouping on report

  • Protect trusted devices against brute force attack

  • Make ModelView.parse_view public

  • Add help for each value to selection and multiselection

  • Use safe_join in SharedDataMiddlewareIndex (issue10068)

  • Use menu name for window opened from menu

  • Add trigonometric functions to sqlite backend

  • Allow skipping user warnings globally

  • Add validate option to trytond-admin

  • Refresh pool of other processes

  • Add clear_all method to Cache

  • Support Genshi element directives in HTML editor

  • Add firstline tool

  • Add support for Python 3.9

  • Skip access check on ModelStorage instances

  • Eager load Function field with same multiple getter

  • Support other methods for button_change decorator

  • Allow copying Python instances of Model

  • Add all buttons to default form view

  • Unify PYSON string format

  • Forbid all white spaces except space in Char field

Version 5.8.0 - 2020-11-02#

  • Bug fixes (see mercurial logs for details)

  • Remove support for Python 3.5

  • Support import of timedelta data

  • Add symbol widget

  • Add sql_pairing tool

  • Add format_datetime to Report

  • Allow sharing view searches

  • Allow overriding digits in Lang.currency and Report.format_currency

  • Add record name in report filename

  • Add deletable and writable state from ir.rule to read

  • Add language attribute to data tag

  • Add email template

  • Send email on behalf of user

  • Register mixins to generic Report class

  • Cache in memory the report template instances

  • Support Genshi’s MsgDirective in report

  • Support PYSON comparison of date and datetime

  • Add cron task to clean old queue tasks

  • Add option to run cron once

  • Add defaults option to route

  • Add escape_wildcard in tools

  • Add option to ensure emails are sent

  • Allow keyword action for all models

  • Add sortable_values in tools

  • Remove default colors on graph and calendar

  • Add model, record and records attributes on Wizard

  • Check read access of wizard records

  • Add cached_property in tools

  • Use custom class to store record data

  • Do not write to existing targets on xxx2Many add

  • Add configuration check

  • Add support for properties to fields.depends

  • Allow combining authentication methods together

  • Add context to export CSV route

Version 5.6.0 - 2020-05-04#

  • Bug fixes (see mercurial logs for details)

  • Call getter function when accessing Function field on unsaved record

  • Add language configuration wizard

  • Allow copying attachments and notes to created records

  • Add link button on form

  • Support explicit delete and remove for saving and on_change xxx2Many

  • Add export_data_domain to ModelStorage

  • Add route to export CSV data

  • Add test on target of relation fields

  • Add width and height attributes on calendar view

  • Add default database name configuration

  • Add retry option to report convert

  • Add depends fields on view_attributes

  • Simplify trigger action

  • Run trigger in the queue

  • Do not copy Binary content with file_id

  • Replace memoize with functools.lru_cache

  • Add support for Python 3.8

  • Set all fields readonly for inactive record

  • Enable check_access context when checking wizard access (issue9108)

  • Add option to send test email with trytond-admin

  • Add editable on calendar view

  • Add xalign and yalign to group

  • Add MultiSelection entry to Dict field

  • Allow empty order clause

  • Change editable tree attribute into boolean

  • Send default order to clients

  • Replace advisory lock by SKIP LOCKED in queue pulling

  • Load WSGI middleware from configuration

  • Add help text to Dict keys

  • Update button_action with returned values

  • Use direct access to backend classes

  • Add weasyprint support

  • Add slugify tool

  • Add is_secure, host and http_host to url module

  • Add __href__ to URLMixin

  • Add validate attribute to wizard’s Button

  • Return 400 instead of 500 for Tryton exception

  • Fill the reverse field in the One2Many setter

  • Drop support for skiptest attribute on xml files

  • Remove implicit field names in ModelStorage.search_read

Version 5.4.0 - 2019-11-04#

  • Bug fixes (see mercurial logs for details)

  • Improve tests on depends

  • Add permission groups on export

  • Retry cron job on DatabaseOperationalError

  • Add visual context on tree view

  • Add start value to PYSON Date and DateTime

  • Add MultiSelection field

  • Support dot notation on PYSON Eval

  • Add __slots__

  • Pass app and request to wsgi error handlers

  • Add lazy_gettext

  • Add format_timedelta to Report

  • Add partial TO_CHAR support for date and datetime on SQLite

  • Setup default logging for WSGI app

  • Add format argument to report format_date function

  • Change expand attribute into a factor

  • Allow SQL expression as value of fields

  • Allow customizing Dict keys order with a sequence field

  • Add invalid domain in DomainValidationError

  • Add domain inversion tools

  • Add get_relation_fields to DictSchemaMixin

  • Add level on Model.fields_get to fill relation_fields

Version 5.2.0 - 2019-05-06#

  • Bug fixes (see mercurial logs for details)

  • Add sort and translate options to Reference field

  • Do not create empty translations

  • Replace dsn by params to connect to postgresql

  • Simplify cron

  • Add duration on Cache

  • Add strip wildcards helpers

  • Add list-form view

  • Do not set id for on_change calls if cached

  • Add cache on RPC

  • Remove support for Python 3.4

  • Allow to update record when importing data

  • Set context on record instantiated by Field.__set__

  • Set context when reading related fields

  • Check read access on field in search order (issue8189)

  • Add base64 converter to URL map

  • Add HTML widget

  • Support import of native numeric, date and datetime data

  • Add day view on calendar

  • Raise NotImplementedError when setting Function field without setter

  • Add exports in view_toolbar_get

  • Add resources method to ModelStorage

  • Validate selection format in Dict schema

  • Allow to extend Field’s string and help

  • Add console

  • Add Model.__names__ to retrieve model and field names

  • Add size attribute on image tag

  • Allow to use channel to synchronize Cache

  • Display ids and rule names on access error

  • Move field definition from Model to Field

  • Use number of verbose flag as log level

  • Add coroutine concurrency option

  • Add increasing delay on database operational error retry

  • Allows to lock records for update

  • Remove _nocache on Transaction

  • Make Cache transactional

  • Allow to search on key’s value of Dict

  • Allow to order Dict by key’s value

  • Do not store keys with null value in Dict

  • Add cache timeout for web

  • Allow the bus requests to be redirected to another host

  • Add support for CORS

  • Add extras modules to ModuleTestCase

  • Add timeout to Report.convert

  • Allow records from XML with noupdate to be deleted

  • Add ir.calendar for month and day

  • Rename languages: hu_HU, it_IT and pt_BR into hu, it and pt

  • Define custom exceptions

  • Remove _error_messages, raise_user_error and raise_user_warning

  • Remove ModelStorage._constraints

  • Add ir.message

  • Add check on ModelSQL for positive id

  • New API to read related fields

  • Remove implicit fields names in ModelStorage.read

  • Check read access on field in search domain (issue7766)

  • Add active field on ModelAccess, ModelFieldAccess and Group

  • Use write mode by default to check create and delete of resources

Version 5.0.0 - 2018-10-01#

  • Bug fixes (see mercurial logs for details)

  • Allow non translatable reports

  • Replace hard coded ‘state’ by ‘_transition_state’ in copy

  • Support dotted notation in copy default

  • Allow callable in copy default

  • Add bus system

  • Allow to set any default configuration value from environment

  • Clear existing session when password is changed

  • Manage session with max_age and timeout

  • Use passlib to hash and update password

  • Remove unique constraint on attachment name

  • New icons

  • Add pyson TimeDelta

  • Remove button if it is not allowed to access some of its dependant fields

  • Add support for Python 3.7

  • Add transactional queue and workers

  • Add __table_handler__ to ModelSQL

  • Support partial index

  • Allow to use SQL expression for index action

  • Add cache clean timeout configuration

  • Implicit conversion to boolean in PYSON statement

  • Add domain to dictionary schema

  • Fill main language in ir.configuration at database initialization

  • Remove support for Python 2.7

  • Check Rule also after modification

  • Check Rule after indirect fields

  • Allow to define view id in switch client action

  • Do not validate Function fields even with setter

  • Simplify the creation of dependencies graph

  • Make depends on methods generic to any method

  • Add width/height attribute to notebook

  • Allow to call set_lang with None and language instance

  • Add hostname configuration to list database

  • Add tree mixin

  • Rename “install-dependences” into “activate-dependencies”

  • Use recursive common table expression for child_of/parent_of operators

  • Add sql_cast on Field

Version 4.8.0 - 2018-04-23#

  • Bug fixes (see mercurial logs for details)

  • Add index method to order field set calls

  • Add deactivable mixin

  • Ensure active field is present on tree view

  • Manage depends xml attribute on field tag

  • Add expand attribute on group tag

  • Add depends on Pool.register

  • Add Exclude constraint

  • Allow to perform unaccented searches on Char fields

  • Always raise exception in table handler

  • Simplify API for Session: new, remove, check and reset

  • Ensure that all buttons are registered in ir.model.button

  • Make trytond-admin ask for admin email

  • Add option to set admin email with trytond-admin

  • Add option to reset admin password with trytond-admin

  • Add reset password button

  • Add depends on Button

  • Add ModelData.has_model cache for ModelStorage.check_xml_record

  • Limit authentication attempt per IP network

  • Manage ‘X-Forwarded’ headers from proxies

  • Add ‘_request’ attribute to Transaction context

  • Delete translations on deletion only when model has translatable field

  • Remove MySQL backend

  • Add keyword attribute to button tag

  • Allow field name on image tag

  • Remove unoconv and call soffice directly

  • Allow to include mixin to pool objects

  • Improve validation of PYSON domain

  • Use JSON canonical form for Dict value

  • Remove rules on user

  • Add monetary formatting to language

  • Add exceptional parent language

  • Add get method on ir.lang

  • Convert format, currency and strftime of ir.lang into instance methods

Version 4.6.0 - 2017-10-30#

  • Bug fixes (see mercurial logs for details)

  • Add support for Python 3.6

  • Remove support for Python 3.3

  • Move handling of sequences to the Database object

  • Allow to add tests through entry points

  • Add translated descriptor for Reference field

  • Implement alter_type and alter_size for sqlite backend

  • Add a maximum size for request

  • Add support for single record report

  • Add support for Flat OpenDocument

  • Add get_email in trytond.report

  • Replace plain extension by txt

  • Support test database cache for remote postgresql

  • Increase session randomness to 32 bytes

  • Allow to specify datetime related values in XML files

  • Add environment variables to wsgi script

  • Add unique ids check on RPC

  • Assert unique records on ModelView.button and Workflow.transition

  • Add test for function field methods

  • Add option install module dependencies with trytond-admin

  • Add localhost_name and timeout as get_smtp_server uri parameters

  • Delete missing modules not activated when updating module list

  • Remove empty pages from notebook

  • Allow to store Dict as JSON on the database

Version 4.4.0 - 2017-05-01#

  • Bug fixes (see mercurial logs for details)

  • Sanitize path in file_open against suffix (CVE-2017-0360)

  • Add constraint on user password

  • Remove Property field

  • Add MultiValueMixin and ValueMixin

  • Use sql type in column creation

  • Use generic SQL type in field and let backend determine the SQLType

  • Add filter to xxx2Many fields

  • Add NULLS ordering

  • Add context domain on ir.action.act_window

  • Allow None limit in action window

  • Add has_window_functions on Database

  • Allow Many2One on ModelSQL to target ModelStorage

  • Manage Cache in Transaction

  • Allow to register multiple exit functions on Transaction

  • Return 429 status when too many login attempts

  • Add set_rpc on Field

  • Add has_select_for on Database

  • Store custom report translation in separate module

  • Add form action keyword for set/synchronize translation on report and view

  • Add negative value for col attribute

  • Allow to use domain_<field name> method with Function fields

  • Validate wizard definition on module tests

  • Remove order constraint on register ModelSQL

  • Add relate from report to translations

Version 4.2.0 - 2016-11-28#

  • Bug fixes (see mercurial logs for details)

  • Add toolbar attribute for richtext widget

  • Add PYSON widget

  • Allow to define the text color and background color in calendar view

  • Allow to override cache implementation

  • Add button rule

  • Allow to specify translatable languages in trytond-admin

  • Add datetime_field on Reference

  • Merge Spanish’s into Spanish (Latin American)

  • Do not check write access on model for wizard with groups

  • Add user application

  • Add sequence_ordered

  • Remove most country specific code in languages

  • Add support for derivative translations

  • Remove IDENTIFIER regexp on ir.model and ir.model.field

  • Enforce suffix and prefix to have id or name

  • Sanitize path in file_open (CVE-2016-1242)

  • Prevent read of user password hash (CVE-2016-1241)

  • Add database dump cache for tests

  • Remove unused tools: find_in_path, exec_command_pipe and mod10r

  • Implementation of drop_column for SQLite

  • Allow to pass many configuration files

  • Remove translate on field name of User

  • Allow to define the default mode in calendar view

  • Use ‘default_rec_name’ context key in Model.default_get

  • Add option to store Attachment in database

  • Allow to store Binary field in filestore

  • Add filestore module

  • Allow None in Greater/Less PYSON

  • Add option to set admin password with trytond-admin

  • Remove super password

  • Remove database management from RPC

  • Remove ModelView.view_header_get

  • Remove string attribute from views

  • Don’t check write access on model for button with groups

  • Limit readonly state for xxx2Many

  • Add option to update modules list with trytond-admin

  • Use home directory as default path for database and web root.

  • Add count option on Action Window Domains

  • Remove window_name on Action Window

  • Return the calling keyword in ActionKeyword.get_keywords

  • Add customizable login process

  • Allow to customize the substitutions used on sequence

  • Allow PYSON in tree_invisible attribute

Version 4.0.0 - 2016-05-02#

  • Bug fixes (see mercurial logs for details)

  • Add sendmail module to send transactional email

  • Support Two-Phase Commit in Transaction

  • Allow Report to generate text plain, XML, HTML and XHTML

  • Add workflow graph on ir.model

  • Add context model on ir.action.act_window

  • Switch to WSGI API

  • Limit the login size in LoginAttempt

  • Remove LocalDict from tools

  • Add LRUDictTransaction

  • Follow PEP-0249 for Database, Transaction and Cursor

  • Add Python3 support

  • Make TestCase create and drop its database

  • Add with_transaction decorator for tests

  • Add note on resources

  • Add ‘where’ operator for xxx2many fields

  • Strip and unquote double-quote from Postgresql schema in search_path

  • Move webdav into a separate module

  • Don’t read historized user when evaluating record rules as it could lead to past privilege escalation.

  • Only rebuild mptt tree if left or right values have their default values

  • Allow nested inherited view

  • Add button on cron to run once

  • Check all fields when writing a sequence of records, values (CVE-2015-0861)

  • Add view_ids on tree view

  • Add parent_of operator

  • Enforce type of inheriting view

  • Use instance context in translated descriptor of Selection

Version 3.8.0 - 2015-11-02#

  • Bug fixes (see mercurial logs for details)

  • Add test for all field methods

  • Load po files also in ‘override’ subdirectory

  • Add support for float and integer on Property fields

  • Remove foreign-key on create_uid and write_uid

  • Prevent deletion of any user

  • Manage PostgreSQL schema

  • Remove colors attribute on tree view

  • Remove style on Report

  • Add StateReport to Wizard

  • Allow to override ModelSQL._table

  • Allow to import backend from entry points

  • Add reversed operators to PYSON expressions

  • Explicity raise error when creating/writing/deleting models with table_query

  • Use CURRENT_TIMESTAMP instead of now

  • Use Constraint instance in ModelSQL._sql_constraints

  • Only return default record if no domain supplied on ModelSingleton search

  • Rule.domain_get returns a domain and Rule.query_get a SQL query

  • Add target_search option to Many2One

  • Add tables argument to ModelSQL.search_domain

  • Rename ir.module.module* into ir.module*

Version 3.6.0 - 2015-04-20#

  • Bug fixes (see mercurial logs for details)

  • Use bytes and bytearray for Binary

  • Add button_change

  • Add support for PyPy

  • Add support for psycopg2cffi

  • Add noeval on PYSONDecoder

  • Add __repr__ to PYSON

  • Remove safe_eval

  • Add ModelView.view_attributes

  • Add pyson attribute on data field tag

  • Changed into JSON:
    • record rule domain

    • trigger condition

    • ‘states’, ‘domain’, ‘spell’ and ‘colors’ view attributes

    • view domain

    • ‘email’, ‘domain’, ‘context’, ‘order’ and ‘search_value’ action fields

  • Add product attribute on form view for One2Many

  • Remove float_time widget

  • Add TimeDelta field

  • search_global yields record instead of id

  • Add ModelTestCase

  • Add test for missing default model access

  • Report API refactorization

  • Add test for access rights of menu and actions

  • Allow to use the dotted notation for order parameters

  • Use action_id to find report to use

  • Allow custom StateView without Model

  • Remove Pool.object_name_list

  • Add translated descriptor for Dict field

  • Clean private context keyword in RPC

  • Add cache section in configuration

  • Use dualmethod on ModelStorage.save

  • New API for on_change: instance changes

  • Add restore_history_before on ModelSQL

  • Remove img_{width,height} form attributes

Version 3.4.0 - 2014-10-20#

  • Bug fixes (see mercurial logs for details)

  • Use literal_eval instead of safe_eval (CVE-2014-6633)

  • Prevent double underscore in safe_eval (CVE-2014-6633)

  • Add pre-validation on button

  • Model and Field access checked only if _check_access is set

  • Add check_access to RPC

  • Add check_access to Wizard and Report

  • Add support for domain_<field name> method

  • Refactor configuration file and command line

  • Use the context of the relation field for instanciation

  • Use a configuration field for logging

  • Add translated descriptor for Selection field

  • Add tree_state attribute on tree view

  • Allow to sync XML data

  • Remove on_change calls in Model.default_get

  • Add group call to on_change

  • Add UnionMixin

  • Allow to disable sorting of dictionary field’s selection

  • Add active field to views of action window

  • Make global cache depends on explicit context keys

  • Don’t add to global cache Binary fields

  • Add MatchMixin

  • Add image widget to tree

  • Remove context, current_date and time from record rule evaluation

Version 3.2.0 - 2014-04-21#

  • Bug fixes (see mercurial logs for details)

  • Add restore_history to ModelSQL

  • Add history revisions

  • Add the multi selection widget

  • Add index to one2many’s on_change

  • Remove auto-refresh on Action Window

  • Add support of domain for non-relation field

  • Manage microseconds in JSON-RPC and XML-RPC

  • Remove Sha field

  • Add password widget

  • Add Len to PYSON

  • Use bcrypt to hash password if possible

  • Use a sequence of ids, values to set fields

  • Client side actions on button and wizard

  • Add depends attribute to data tag

  • Add tree_invisible attribute to button in tree view

  • Drop support of Python 2.6

  • Deprecate on_change, on_change_with, selection_change_with and autocomplete field arguments

  • Add fields.depends decorator

  • Add run-tests

  • Validate only modified and dependant fields on model write

  • Improve error messages by showing the failing value

  • Remove relation field actions:
    • delete_all

    • unlink_all

    • set

  • Rename relation field action unlink into remove

  • Use a sequence of records, values in write

  • set_context of Transaction.set_user is restricted to root

  • Add a “copy” action to One2Many and Many2Many’s set method

  • Force UTC as timezone (migration script available on tryton-tools)

  • Add relation_field for many2one

Version 3.0.0 - 2013-10-21#

  • Bug fixes (see mercurial logs for details)

  • Allow customization of translation in po files

  • Use python-sql

  • Add convert_domain method on Fields

  • Add sql_format and sql_type methods on Fields

  • Allow to return a full domain for Function.searcher

  • Replace static backend by dynamic get method

  • Replace order_field by order_<field name> method

  • Allow field One2One in check_recursion

  • Remove the default order on MPTT

  • Add grouped attribute to data tag

  • Store selection tree state

  • Add order to Action Window

  • Add factor on number fields

  • Add calendar view

  • Remove request

Version 2.8.0 - 2013-04-22#

  • Bug fixes (see mercurial logs for details)

  • Allow to search on target of Reference field

  • Remove _inherits

  • Add dynamic label

  • Add prefix, suffix on tree view

  • Replace _constraints with validate in ModelStorage

  • Add selection_change_with on Selection and Reference fields

  • Add Dict fields

  • Remove unique constraint on model and field access

  • Use lists of values in create

  • (Field, Operator, Operand) are replaced by Domain on Rule

  • Add global search

  • Replace view shortcut by menu favorite

  • Store default language in database

  • Add icon attribute on fields

  • Prevent Wizard State name to start with ‘_’

  • Add completion attribute for Many2One, Many2Many and One2Many

  • Add ViewSearch

  • Add domains on Action Window

Version 2.6.0 - 2012-10-22#

  • Bug fixes (see mercurial logs for details)

  • Add pre-validation

  • Allow to use XML file for views

  • Add RPC definition

  • Repace BrowseRecord by Model instance

  • Replace Cache decorator by a simple LRU Cache

  • Remove Cacheable

  • Remove _description

  • Rename _name by __name__

  • Use class in Pool

  • Fix search button clause in ModelButton.get_groups (CVE-2012-2238)

  • Merge all kind of buttons

  • Use XML id for board action instead of id

  • Add states attribute to notebook

  • Allow to use tuple for Reference

  • Add constant interpolation on line graph

  • Add create/delete field access

  • Add dynamic size limit on the One2Many, Many2Many and Char

  • Replace __tryton__.py by tryton.cfg

  • Allow to use Reference field in One2Many & Many2Many

  • Remove hexmd5 from ModelView.fields_view_get

  • Allow client to manage model access

  • Add time format validation

  • Remove ModelSQL.default_sequence

Version 2.4.0 - 2012-04-23#

  • Bug fixes (see mercurial logs for details)

  • Don’t allow rpc call on ModelStorage without ModelView (CVE-2012-0215)

  • Add shared WebDAV

  • Remove workflow module

  • Simplify workflow engine

  • Add ir.model.button for access rights

  • Replace fill by expand

  • Integer, Numeric and Float allow None as value

  • NULL value is None and not False

  • Replace user action by a list of actions

  • Add group call to on_change_with

  • Allow to get fuzzy translation

  • Allow to customize server timezone

  • Add richtext widget for WYSIWYG editor

  • Add support of fields.Time

  • Replace nested view by reference id

  • Remove underscore to ir.translation methods

  • Add default database language code

  • Add extras_depend to module definition

  • Store session in database

  • New Wizard design

  • Add pyson.Id

  • Use XML-RPC struct for Decimal and Date

  • Remove change_default on fields

Version 2.2.0 - 2011-10-24#

  • Bug fixes (see mercurial logs for details)

  • Remove name field in ir.property

  • Add wizard to show views

  • Switched from .csv to .po for translations

  • Search on Many2One fields include inactive records

  • Change select on fields into Boolean

  • Change format of search_value on ir.action.act_window

  • Manage relation field access

  • Support size format in context for Binary fields

  • Use buffer for Binary fields

  • No more store Binary fields in base64

  • Remove tabpos attribute on notebook

  • Make PYSON more Pythonic

  • Add readonly on Transaction

  • Add has_returning on Cursor

  • Remove use of python code in workflow XML

  • Use SQL sequence on PostgreSQL for ir.sequence

  • Allow to specify more than one interface

  • Use unoconv for report format conversion

  • Allow to use any Opendocument as report template

  • Drop NetRPC and activate JSON-RPC by default

  • Remove ir.action.wizard_size

  • Rename expand and fill attributes into yexpand and yfill

  • Add xalign and yalign as field attributes

  • Drop support of Python 2.5

  • Remove support of Many2Many field in record XML

  • Change Pool into a Singleton

  • Remove support of zipped modules

Version 2.0.0 - 2011-04-26#

  • Bug fixes (see mercurial logs for details)

  • Use md5 hash for indexing translation

  • Merge tree and list views

  • Added autocompletion on fields.Char

  • Remove ir.default

  • Add type, last user and last modification on ir.attachment

  • Rename datas into data on ir.attachment

  • Add new configuration option to prevent database listing

  • Add warning to wizards

  • Add server-side icons

  • Add support for file link to BinaryField

  • Add model field access

  • Add loading attribute on fields

  • Remove priority attribute on fields

  • Model doesn’t convert anymore ids for inherited methods

  • Remove required attribute on Boolean fields

  • Add One2One field

  • Add AUTOINCREMENT to sqlite primary key

Version 1.8.0 - 2010-11-01#

  • Bug fixes (see mercurial logs for details)

  • Add timestamp sequence

  • New transaction management

  • Make _timestamp numeric instead of datetime to work with XML-RPC and JSON-RPC

  • Add ir.trigger to trigger ModelStorage change

  • Add default value to Boolean fields at database level

Version 1.6.0 - 2010-05-08#

  • Bug fixes (see mercurial logs for details)

  • Add symbol parameter to formatLang

  • searcher on Function fields take only one domain clause as argument

  • Use a Reference field on ir.attachment to store resource informations Improve the ir.attachment views to be usable on the client side

  • Use basic access authentication for XML-RPC

  • Replace child{1,2} attributes in xml views by a unique child

  • Models that uses _inherits will search in inherited parents for missing functions

  • Remove ids from on_change* calls

  • Improve search on translatable fields

  • export_data return empty value for invisible fields

  • Don’t allow to use float in Numeric fields

  • set/get function on Fields take a list of ids

  • New interface for Function/Property fields Take a Field as first argument instead of many separate arguments Remove static arguments

  • Fix Float and Numeric for lost of precision

  • Add decimal digits validation on fields

  • Improve unittests to run trytond from tests Use sqlite as default backend Add skiptest attribute to data tag Add option to test_tryton to run tests from all modules

  • Add MySQL backend

  • Refactoring by validation with pylint

  • Modify ondelete attribute of Many2One according to required attribute value

  • Refactor import_data of ModelStorage

  • Raise exception when search function is missing on Function fields

  • Add LRU memoization, use it to cache compiled code for safe_eval.

  • Add PySON to replace python string evaluation on client side

  • Add JSON-RPC

  • Add groups on Sequence Types and add rules on sequence based on it.

  • Ignore Fields that starts with “_”

  • Add comment on table and field for postgresql backend

  • Remove egenix-mx-base and replace it by python-dateutil

  • Add cache to safe_eval

  • Rename HttpDaemon into XMLRPCDaemon

  • Improve TranslateFactory to fetch all translations for a report in one query

  • Handle displayname on webdav.collection

  • Handle current-user-privilege-set on webdav.collection

Version 1.4.0 - 2009-10-19#

  • Bug fixes (see mercurial logs for details)

  • Add datetime_field on xxx2Many to use a specific _datetime when reading the related record

  • Add new tool safe_eval

  • Handle sequence and history renaming when renaming table

  • Add old_password to set_preferences of res.user on password change

  • Allow to drop constraint, index and foreign key with custom table name

  • Added column_rename on TableHandler

  • Add new tool reduce_ids

  • Add limit_clause function on cursor

  • Fill the cursor cache at search

  • Allow rpc on today of ir.date

  • Use the module dependency order to apply views that inherits

  • Allow to update database at the end of restore

  • Add ir.model.access check get and set of ir.property

  • Add ModelSingleton

  • Move login test in res.user

  • Rename osv into model on workflow

  • Add logout method

  • Move BrowseRecord cache onto the cursor except for Function fields

  • Don’t order search result if order value is []

  • Add reload of modules if files have changed

  • Add salt to sha of password

  • Add strftime to ir.lang to handle locale’s format

  • Add sqlite backend

  • Add validate test for required and size

  • Remove _sequence on ModelSQL

  • Use gzip in pysocket

  • Add gzip encoding for XML-RPC

  • Add report name in the result of Report.execute

  • Add ir.action.wizard_size to store prefered wizard size

  • Add delete_all action on One2Many field

  • Read, write, create, delete permission on record rules

  • Add reset_default method to ir.default

  • Doesn’t append ‘%’ to “like”, “ilike” clauses

  • Handle database dump and restore with password

  • Add float_time attribute in fields view

Version 1.2.0 - 2009-04-20#

  • Bug fixes (see mercurial logs for details)

  • Add delete of foreign keys with ondelete CASCADE

  • Add write for foreign keys with ondelete SET NULL

  • Add datetime_field on Many2One to use a specific _datetime when reading the related record

  • Use _datetime in context to read record value at specific datetime

  • Add _history_table on ModelSQL to historize change on records

  • Allow to use related fields (many2one and reference) in read

  • Use rec_name function field instead of name_get and name_search

  • Use a new Pool for objects

  • Move workflow in ModelWorkflow and the workflow module

  • Remove Service and LocalService objects

  • New netrpc/xmlrpc syntax

  • copy on ModelStorage copies one2many directly on the right record

  • Search on translated field will search only on translated value

  • Add active field on ir.action to allow better override of reports

  • Add depends attributes on Column

  • Make Modified Preorder Tree Traversal respects the default order of the model

  • Add replace_attributes for xpath tag

  • Add email parameter on report action

  • Allow to inherit views from an other model

  • Add user warnings

  • Allow to use a list of id for copy method

  • Use one lock per database

  • Improve netrpc communication speed

  • Add contextual domain on inherited views

  • Allow to use globals in domain and states

  • Add translate attribute on Selection field

  • Use explicit join in search SQL query

  • Fix for host with IPv6 enable but without default IPv6 route

  • Allow egg installation

Version 1.0.0 - 2008-11-17#

  • Initial release