Version 8.0.11 - 2026-10-01 --------------------------- * Bug fixes (see mercurial logs for details) * Escape arguments of report convert command (issue15035) * Escape title and text when rendering HTML editor (issue15032) Version 8.0.10 - 2026-09-16 --------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.9 - 2026-08-15 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.8 - 2026-08-04 -------------------------- * Bug fixes (see mercurial logs for details) * Restrict protocols allowed for weasyprint to http(s) (issue14947) Version 8.0.7 - 2026-07-15 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.6 - 2026-07-01 -------------------------- * Bug fixes (see mercurial logs for details) * Enforce access right on the email template record (issue14907) * Add ModelAccessProxy (issue14907) * Restrict Genshi evaluation (issue14869, issue5160) Version 8.0.5 - 2026-06-18 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.4 - 2026-06-02 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.3 - 2026-05-20 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.2 - 2026-05-02 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.1 - 2026-04-22 -------------------------- * Bug fixes (see mercurial logs for details) Version 8.0.0 - 2026-04-20 -------------------------- * Bug fixes (see mercurial logs for details) * Add REST API * Add rpc suffix to URL for RPC call * Support mounting application under a prefix * Send emails on chat messages * Add path attribute on XML fields to specfiy a relative path value * Allow to include subdirectories in tryton.cfg * Add route for login / logout with cookie * Add contextual ``_log`` to force logging events * Add notify_user to ModelStorage * Check button states when testing access * Remove the files of Binary fields from the Filestore * Add delete and delete_many to Filestore * Deprecate ``grouped_slice`` without size * Replace ``Database.IN_MAX`` by ``backend.MAX_QUERY_PARAMS`` * Deprecate ``reduce_ids`` for ``SQL_OPERATORS['in']`` * Use array for ``in`` operators * Update to Psycopg 3 * Add support for Python 3.14 * Remove support for Python 3.9 * Support fmany2one based on Function fields * Add timestamp field on ModelSQL for last modified * Support Function field without getter but SQL expression * Add support for column_ method * Use tables and Model as arguments for sql_column of the Field * Add support for basic authentication for user application * Support the conversion of MJML reports to HTML * Allow filtering users to be notified by cron tasks Version 7.8.0 - 2025-12-15 -------------------------- * Bug fixes (see mercurial logs for details) * Stream json and gzip response * Allow users to subscribe to notification cron jobs * Add user notification * Add support for materializing ModelSQL based on a table query * Add an option to trytond-console to run a script file * Store only immutable structure in MemoryCache * Replace ``clean_days`` with ``log_size`` in the cron configuration * Enforce access check in export_data (issue14366) * Include the traceback only in RPC responses in development mode (issue14354) * Enforce access check in HTML editor route (issue14364) * Add a clear cache method to the Database * Add sequence_reorder to model order * Remove has_window_functions from Database * Set minimal supported version of SQLite to 3.30.0 * Refactor of trytond.config to add cache * Handle URL host of the bus on login * Restrict sessions to the client's IP address * Use ``tryton.cfg`` to register in the Pool * Use the FILTER syntax with SQL aggregate functions * Use the EXISTS operator when using the 'where' operator in Many2One * Redact sensitive values from the log (issue14220) * Add multiple attribute to the buttons in the tree view * Manage readonly wizard * Export Many2One and Reference using record name * Support import of one2many as list of name * Support export of xxx2many fields as list of name * Set Message-Id to email sent * Add pair/unpair in tools Version 7.6.0 - 2025-04-28 -------------------------- * Bug fixes (see mercurial logs for details) * Lock records on transaction start * Add DecimalNull as tools * Add chat backend * Transaction.check_warnings is now a directory mapping the key to the warnings * Store target of field as relation * Remove support for Python 3.8 * Add support for Python 3.13 * Add on_write to ModelStorage * Add on_delete to ModelStorage * Add check_modification to ModelStorage * Add on_modification to ModelStorage * Add preprocess_values to ModelStorage * Remove trigger methods on ModelStorage * Add compute fields to ModelStorage * Add configuration of select timeout for cache channels * Add color as type of icon and image * Add color widget to form view * Limit access to database from the same series * Fill wizard state view instance with default value * Replace passlib by pwdlib * Add size limit for RPC arguments * Store the ignore search limit option of export * Make field_names optional in Model.default_get * Remove check_xml_record from ModelStorage * Always synchronize XML data with database * Convert None as empty string when searching on Char or Text * Support instances as default value * Add metadata columns to ModelSQL with table query * Add report data to header_key * Validate integer digits * Add support for DATE_TRUNC from INTERVAL to SQLite backend * Add support for EXTRACT from INTERVAL to SQLite backend * Add msg_gettext and msg_ngettext to Report context * Support plural translation of messages * Support plural translations in report * Add plural source to translations * Add plural to language * Set Decimal precision of default context from TRYTOND_DECIMAL_PREC * Replace usage of docstring of Model by __string__ attribute * Rename ir.model.field 'field_description' into 'string' * Replace docstring of models by __string__ * Rename ir.model 'name' field into 'string' and 'model' into 'name' Version 7.4.0 - 2024-11-04 -------------------------- * Bug fixes (see mercurial logs for details) * Do not copy relational fields with filter * Support range functions and operators in EXCLUDE constraint * Add sparkline chart tools * Add setup methods to activate_modules * 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 visible to visible xxx2many on form view * Add visible 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_ 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_ 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_ 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