Commit Graph
100 Commits
Author SHA1 Message Date
Nicolas Évrard 3e1ec32fd3 Lock the whole manipulation of the instance __dict__ when accessing attributes
Previously the lock was too fine grained and missed some concurrent access that
could result in AttributeError. We implement a slightly changed double-checked
locking technique to ensure a fast path when the initialization already
occured.

Closes #15122
(grafted from 8563e4dbd257939ce08bac5eef3858171006981b)

--HG--
branch : 8.0
2026-09-24 14:55:59 +02:00
Nicolas Évrard cbaaa525b6 Use a minimal size of 2 for the select tag of MultiSelection widgets
Browsers based on Chromium renders the select as a "normal" select tag when
size=1. Such that the mousedown event is triggered twice which clear the
selection.

Closes #14529
(grafted from 4d95b908a33d950d24416b53d6264db1b0b3b443)

--HG--
branch : 8.0
2026-09-23 17:59:29 +02:00
Nicolas Évrard f34a7c3a47 Support getting and setting tree widths without a screen width
Closes #15099
(grafted from bdec2127549993b25a44c2057a3f2b7a824ecdc2)

--HG--
branch : 8.0
2026-09-18 23:52:09 +02:00
Nicolas Évrard 6d3956ff5f Use the selection from the update_selection call in Selection editable columns
Since 917de1b3e124 the selection is not stored on the selection_mixins we must
thus use the one coming from the callback call

Closes #15087
(grafted from e80a99079b44ce2d1c22865bd919fef6bfc8ce24)

--HG--
branch : 8.0
2026-09-10 22:12:59 +02:00
Nicolas Évrard 04ab9aaedf Check the existence of a getter before adding it to a field depends
Closes #15055
(grafted from 9d5d21d76b461d82c7d43c6221f7e9f1f1d3f5cc)

--HG--
branch : 8.0
2026-09-03 12:24:29 +02:00
Nicolas Évrard 5a3a52e164 Reset TABLES_CREATED when dropping the database when testing
Closes #15002
(grafted from e9f2b42e96ebb4553ef153f1d778c5d1042b3891)

--HG--
branch : 8.0
2026-08-10 14:51:04 +02:00
Nicolas Évrard aaf8203d44 Skip translation refering to unknown XML ID or unactivated source
Closes #12969
(grafted from 563cb007e55c30ed03e3fb4eb74b623bfa8fd6e1)

--HG--
branch : 8.0
2024-01-29 18:47:56 +01:00
Nicolas Évrard 86e58a889e Set the utc flag on Sao.Date
Closes #14510
(grafted from 7f19398f376080795764e089e2a87c3eaa0feda8)

--HG--
branch : 8.0
2026-07-27 10:39:01 +02:00
Nicolas Évrard 04e4b187bc Add login_service value when the redirection URL misses it
Closes #14893
(grafted from 71ff74ce33b49ee8639c3bac8ce43bf7ec3a627e)

--HG--
branch : 8.0
2026-06-11 21:30:46 +02:00
Nicolas Évrard aeac50c908 Find the page in the direct children only
Closes #14918
(grafted from 52faa4f70a4769ec80560b5b9e2b4eec0a94e267)

--HG--
branch : 8.0
2026-06-30 22:03:11 +02:00
Nicolas Évrard 5834e156f0 Delete only the records marked to be deleted when restoring history
Closes #14913
(grafted from 2335dba4dc447dbcae94d99097911460439ef02a)

--HG--
branch : 8.0
2026-06-26 15:41:27 +02:00
Nicolas Évrard f5122cd85b Save the new ir.model.data instances before calling functions on them
Closes #14885
(grafted from 20d79a09c9a6a5b052048c83fd351f789cd63372)

--HG--
branch : 8.0
2026-06-09 18:33:51 +02:00
Nicolas Évrard 456e3203d0 Fetch limit records of ResourceAccessMixin models when they are available
Closes #14788
(grafted from 5e7086dc7cc483868eca8852f4728557224c6980)

--HG--
branch : 8.0
2026-04-21 13:40:21 +02:00
Nicolas Évrard 6a4c1aa5e3 Parse equality to a date as two clauses when handling datetime fields
Closes #14778
(grafted from 6952308a8b6b65ff583a2b04d9cd558b44c4e4a9)

--HG--
branch : 8.0
2026-04-14 18:29:42 +02:00
Nicolas Évrard 8f0fe8de09 Stop the propagation of the click event in buttons from list-form
Closes #14839
(grafted from 29667641dd0685424f2a4bd8a6cd16bf642a7fea)

--HG--
branch : 8.0
2026-05-18 15:57:55 +02:00
Nicolas Évrard bb25bf89a6 Synchronize trytond and tryton domain_inversion implementations
The commit d826376d08a5 was not correctly copied.
(grafted from 191f2e9503a1a2598810067689b7a14d67eef138)

--HG--
branch : 8.0
2025-02-12 18:59:33 +01:00
Nicolas Évrard f912ebc697 Add missing _datamanagers property on Transaction creation
(grafted from 7ab23e6cc9d3925410da5bc7e6f76f3cef162efa)

--HG--
branch : 8.0
2026-04-24 11:45:37 +02:00
Nicolas Évrard e3a862e4c3 User percent encoded name of inexistant database
Closes #14801
(grafted from 5fddfb00cfffa81177c0b5ddda6aaecaccfe19da)

--HG--
branch : 8.0
2026-04-22 18:19:51 +02:00
Nicolas Évrard c4fdf6d9a0 Ensure check_warnings and _datamanagers are valid when using them
(grafted from ee9737c3a9c8618d09c491f5c3401fef0f0f078f)

--HG--
branch : 8.0
2026-04-24 11:47:03 +02:00
Nicolas Évrard 072d0317aa Use a list of selection values to enable sorting in the filter window
Closes #14785
2026-04-20 10:41:45 +02:00
Nicolas Évrard 033e4326bf Remove the implicit undefined return when computing the fields to update
Closes #14751
2026-04-07 18:54:39 +02:00
Nicolas Évrard 1c98320ccc Call on_modification on each Model with a replaced party
Closes #14684
2026-03-16 18:42:56 +01:00
Nicolas Évrard f623812818 Honor the sort parameter of Selection fields in the filter box
Closes #14731
2026-04-01 18:24:35 +02:00
Nicolas Évrard 44642bec77 Add support for emails on the chat channels 2026-03-31 18:59:55 +02:00
Nicolas Évrard 6a38874d57 Call _get_pixbuf_url with the right arguments
Closes #14666
2026-03-10 14:05:19 +01:00
Nicolas Évrard 7c0d6a295a Allow to specify some XML fields value as relative to the subdirectory path 2026-02-24 22:39:38 +01:00
Nicolas Évrard 652f497110 Include subdirectories tryton.cfg when activating a module
Closes #14625
2026-02-28 00:16:45 +01:00
Nicolas Évrard b403fe8f39 Use a cookie to store the session token
Closes #14412
2026-03-30 16:24:44 +02:00
Nicolas Évrard 28c03e5e81 Consider empty string and None as incompatible with full text searches
Closes #14691
2026-03-18 17:23:14 +01:00
Nicolas Évrard d0f6af4881 Reset the session login when cancelling the password challenge
Closes #14687
2026-03-17 17:45:22 +01:00
Nicolas Évrard 8d932ff6ff Set the overpaying statement line related_to type to account.invoice
We can infer that the extra amount will be used to pay another invoice so we
might as well help a little bit the user to select the right one

Closes #14683
2026-03-16 17:26:59 +01:00
Nicolas Évrard 502e2d5ecb Create a hook to compute the reverse tax and amount from the tax type
Closes #14681
2026-03-16 15:54:38 +01:00
Nicolas Évrard fe53481953 Wrap class when filling the pool
Closes #14695
2026-03-19 10:38:52 +01:00
Nicolas Évrard 85825293de Do not set default values for new fields when there is no default
Closes #14631
2026-02-26 17:07:01 +01:00
Nicolas Évrard 667a53be21 Do not call the Function field getter when there's no ids to use it on
Closes #14697
2026-03-19 14:49:33 +01:00
Nicolas Évrard d47ddb9903 Remove direct calls to NOTIFY
In bb52a833e823 we forgot those calls

Closes #14705
2026-03-25 13:10:39 +01:00
Nicolas Évrard 475e68df76 Remove the files of Binary fields from the Filestore
Closes #13861
2026-03-24 09:30:17 +01:00
Nicolas Évrard b44c004825 Add deletion on FileStore
We're identifying each file in the filestore with a UUID4 in order to avoid
collisions. It has the drawback that we will store twice the same file but on
the other hand we can now remove each file from the store as there is no more
collision.

In order to identify files named previously we're using textual representation
of the UUID with the hyphens. Previous IDs do not have hyphens.
2025-01-09 18:53:09 +01:00
Nicolas Évrard 299dd6b1c9 Update to Psycopg 3
Closes #10901
2026-03-22 19:53:32 +01:00
Nicolas Évrard 4ab7069dab Delegate the notifications handling to the backend 2025-11-25 13:27:24 +01:00
Nicolas Évrard d6dc19b523 Skip the reconciliation of already reconciled lines with debit == credit == 0
Closes #14679
2026-03-16 12:28:56 +01:00
Nicolas Évrard 4eca86d8e7 Use DOMElement methods in set_empty
eb3e557996f0 changed the type of the element passed to set_empty to use
directly the DOMElement. Thus we should use directly the equivalent methods
provided by this interface as it's more efficient anyway.

Closes #14686
2026-03-17 16:25:14 +01:00
Nicolas Évrard 8cd44a1130 Replace jQuery's css by accessing directly the element style
jQuery's css method will call window.getComputedStyle() which will force style
recomputation and often force a layout reflow (e.g. when dealing with grid
properties)
2026-02-02 20:18:18 +01:00
Nicolas Évrard 69265a2d3e Replace jQuery's hide and show by our own implementation
jQuery's implementation triggers forced reflows and style recomputation which
hinders performances. Given that we only care about the node on which the call
is done we can use a simpler and more efficient implementation.

Closes #14330
2025-11-21 16:09:28 +01:00
Nicolas Évrard b9368f8c59 Replace d3 by billboard.js
Close #14313
2026-03-13 15:14:09 +01:00
Nicolas Évrard cceb3e81d9 Use always fork method to test process local
We can not rely on the default process method of multiprocessing module.

Closes #14579
2026-02-09 17:33:32 +01:00
Nicolas Évrard a56b42b66c Rename history sequence when the table is renamed
Just like in ff68233bdeb1 we need to also rename the history sequence name as
the migration to identity relies on the sequence name including the table name.

Closes #14598
2026-02-10 18:21:47 +01:00
Nicolas Évrard 7bdb724da2 Search on the Target model in O2M when it has an active field
When comparing a one2many to None we should search on the Target model in order
to ensure the correct handling of the active field. Otherwise there might be
records that wouldn't be found by the search yet their one2many fields come up
empty.

Closes #14370
2025-11-14 18:11:20 +01:00
Nicolas Évrard 64424d1a90 Use the target id to compute the filter clause of a O2M field compared to None
Closes #14373
2025-12-13 14:57:52 +01:00
Nicolas Évrard a23df14c83 Use different starting point for IDs of table when testing
Closes #3799
2025-12-13 14:30:28 +01:00
Nicolas Évrard c59b8b9b47 Force breaking error message when overflowing the error window
Closes #14414
2025-12-10 16:09:44 +01:00
Nicolas Évrard 9d4966e41f Filter Many2Many group fields on active = True
When the field is used in a domain adding this filter ensure that comparison
with None will succeed when there are only inactive groups in the field.

Closes #14369
2025-12-03 08:47:20 +01:00
Nicolas Évrard fa19c6226f Notify subscribed users of new message in chat 2025-12-02 18:11:10 +01:00
Nicolas Évrard 48dcd6ffdd Add user notification 2025-12-02 13:08:54 +01:00
Nicolas Évrard 784eba9791 Correctly get model and id of resource when checking the Channel access rights 2025-10-02 09:44:58 +02:00
Nicolas Évrard 50e79a35bf Always return a promise when calling Sao.Tab.create 2025-10-02 09:42:19 +02:00
Nicolas Évrard 929b3545cd Add support for materializing ModelSQL based on a table query 2025-12-02 00:12:08 +01:00
Nicolas Évrard d8499a4fb0 Allow to use empty ModelList in Wizard
We might want to execute the wizard on a specific model even without selecting
some of its records

Closes #14291
2025-10-16 16:07:52 +02:00
Nicolas Évrard 835aa2c1bc Use the form part of view_ids when opening a Many2One in a new tab
Closes #14391
2025-11-26 16:41:20 +01:00
Nicolas Évrard 6236d0a4f7 Use the widget attributes when populating the popup menu 2025-11-26 16:39:06 +01:00
Nicolas Évrard 622457ba33 Merge security.check_session and security.check
That way we won't use the pool when the database is not already initialized.

Closes #14316
2025-10-24 18:16:51 +02:00
Nicolas Évrard ecc3e152d1 Apply SQLite types in check_session query
Closes #14315
2025-10-24 18:13:01 +02:00
Nicolas Évrard 3ed88c83c5 Register a MappingProxyType marshalling function for both JSON-RPC and XML-RPC
Closes #14387
2025-11-26 21:50:01 +01:00
Nicolas Évrard 47efd4dba1 Use the local context when launching a graph_open action
Using the local context allow us to access the context of the field shown by
the graph when the graph shows a One2Many field.

Closes #14341
2025-10-31 18:04:31 +01:00
Nicolas Évrard 10ee881e65 Return the data name as the action key when launching the graph_open action
The ids of each record is in fact indexed by the name of the label in a pie
chart

Closes #14340
2025-10-31 18:02:26 +01:00
Nicolas Évrard 8b89c1882b Do not use the bus URL when creating the XML-RPC authentication token
Since 5af8d41ce7ce we're also sending the bus URL on the login of the users.

Closes #14329
2025-10-28 18:50:24 +01:00
Nicolas Évrard f70d515905 Add a clear cache method to the Database
ExtensionTestCase uses this new method to clear all the caches of the Database.
2025-10-28 10:57:07 +01:00
Nicolas Évrard 3850af11f7 Find new key names using the definition from the dict widget's field
Closes #14323
2025-05-22 18:24:57 +02:00
Nicolas Évrard 58428d09b9 Do not allow translations to be set or exported unless the default language is English 2025-10-24 10:22:38 +02:00
Nicolas Évrard b5ca5de485 Use && as the boolean operator instead of &
The typo was introduced in d5338ef23267
2025-09-17 11:41:30 +02:00
Nicolas Évrard 6daccef092 Clarify the documentation about digits 2025-10-09 12:36:54 +02:00
Nicolas Évrard f1e71692db Use SQL queries to restore history
Restoring a fields.Dict value failed before using this pure SQL solution.
Also such a solution will be more efficient by minimizing the amount of python
code run.

Closes #14031
2025-05-20 18:28:23 +02:00
Nicolas Évrard 12185cc3bf Test the restoration of history after a DELETE 2025-06-14 03:21:40 +02:00
Nicolas Évrard 90f3c2f030 Compare the default fields used in copy with those of the calling class
Closes #14298
2025-10-17 16:27:11 +02:00
Nicolas Évrard 1492a174c7 Save column width in sao only when it has changed
Closes #14277
2025-10-07 12:42:44 +02:00
Nicolas Évrard 2029a9fa71 Skip the validation of the parent field of group
This is required because it can happen that a x2M field will have some records
set through an on_change but if the x2M is not linked to a screen then
exclude_field won't be set.

Closes #14283
2025-10-09 18:50:07 +02:00
Nicolas Évrard 9839c0902d Add test that fields in __access__ are required
Closes #14261
2025-09-29 13:16:49 +02:00
Nicolas Évrard 818f26253a Remove has_window_functions on Database 2025-10-04 22:45:53 +02:00
Nicolas Évrard fb57dd9a25 Set a minimal supported version of sqlite 2025-10-06 17:36:06 +02:00
Nicolas Évrard 736eda2333 Handle URL host of the bus on login instead of using a redirect
Browsers remove authorization header upon cross-origin redirect.

Closes #12329
2025-10-06 17:03:41 +02:00
Nicolas Évrard f0199c149b Validate the session without using the pool on bus requests 2025-10-04 15:53:18 +02:00
Nicolas Évrard a72adf0fdc Restrict sessions to the client's IP address
Closes #13909
2025-10-05 17:17:14 +02:00
Nicolas Évrard d14e82281d Get name for wizards not linked to a model
Closes #14033
2025-09-14 15:27:16 +02:00
Nicolas Évrard cb48d24489 Add cache on ir.action.wizard get_models and get_name 2025-09-14 15:25:23 +02:00
Nicolas Évrard ace7be31be Use the EXISTS operator when using the 'where' operator in Many2One
Closes #11935
2025-09-14 12:38:50 +02:00
Nicolas Évrard 689473f50f Make sure that the search order is predictable when either the limit or the offset is set
Closes #14169
2025-08-18 10:40:02 +02:00
Nicolas Évrard 77984124dd Add a test to ensure that Model._order is predictable 2025-09-11 00:30:16 +02:00
Nicolas Évrard 65c93a338e Use the canonical name of the test timezone
Closes #14170
2025-08-18 11:35:25 +02:00
Nicolas Évrard bf64f359a2 Set current screen context in import / export windows
Closes #14128
2025-07-23 14:10:32 +02:00
Nicolas Évrard 8d7279778b Get ir.model Model from the pool
Closes #14131
2025-07-23 18:01:24 +02:00
Nicolas Évrard 69690daa2c Fix a typo introduced in 71bad2d56f96 2025-07-02 01:02:22 +02:00
Nicolas Évrard d3f93b46f8 Use class access model when testing for parent access 2025-05-22 10:59:36 +02:00
Nicolas Évrard a190aae17f Remove notification events from the queue after the wait times out
Closes #14022
2025-05-14 12:12:54 +02:00
Nicolas Évrard 2b8f96f8aa Use the initial precision when applying factor to a field without digits
Without digits the full representation of the number is used which might not
be the expected behaviour because applying the factor will result in a number
which short representation could be surprising to the user.

Closes #10460
2025-05-19 11:31:28 +02:00
Nicolas Évrard 13345232ea Use hasOwnProperty to check for key presence in object 2025-04-15 18:38:45 +02:00
Nicolas Évrard 032f96cdca Do not set twice the result of an on_change call in a x2many
Closes #13971
2025-04-15 16:14:37 +02:00
Nicolas Évrard cfc38c8070 Store column widths by screen size 2025-04-14 22:57:36 +02:00
Nicolas Évrard 8b6e83e5b2 Allow column widths to be reset 2025-04-14 23:16:26 +02:00
Nicolas Évrard 93ae0df5c3 Allow column resizing in Sao
Closes #13115
2025-04-14 23:11:48 +02:00
Nicolas Évrard 15b3e1f5cf Use the position:sticky on the row of the thead
It was previously put on the th because neither Firefox nor Chrome supported it
on thead or tr but it has been solved now.

https://caniuse.com/css-sticky
2024-12-12 10:50:15 +01:00