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