Commit Graph
59401 Commits
Author SHA1 Message Date
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
Cédric Krier 27ff1ef14e Remove unused global variable in tryton plugins and rpc 2025-04-16 09:59:53 +02:00
Cédric Krier ac42d79df7 Document setup of Shopify variants 2025-03-09 10:30:46 +01:00
Cédric Krier a56834c421 Document that Modify Header wizards are recalculating lines 2025-03-10 13:46:00 +01:00
Cédric Krier 220fd433c9 Add checkout option to cookiecutter command line in tutorial 2025-03-25 09:30:22 +01:00
Cédric Krier 716b0b2ed6 Remove access right tests in scenario
The access rights are now only a configuration matter.
2025-03-30 15:22:07 +02:00
Cédric Krier 854562ad6e Add default value to user in set_user testing tool 2025-03-30 15:21:11 +02:00
Cédric Krier 86c60f700c Do not fill to_post_number with empty value in Sendcloud parcel 2025-04-15 21:27:51 +02:00
Cédric Krier 274f2a3941 Support structured address in shipping services 2025-01-25 13:21:21 +01:00
Cédric Krier 2e0ecbabf5 Add numbers property to address 2025-01-25 13:20:36 +01:00
Cédric Krier b2401ede71 Force update of address format 2025-01-25 01:14:12 +01:00
Cédric Krier 0d1da7c1b4 Add structured address 2025-01-25 13:21:34 +01:00
Cédric Krier 8043c1f6cd Fill secondary unit from product customer
Closes #2294
2025-04-14 18:19:25 +02:00
Maxime Richez 8129eb4bfc Fill secondary unit from product supplier
Closes #13933
2025-04-14 18:56:45 +02:00
Cédric Krier faca1dd187 Order bank account per owners
Closes #13937
2025-03-24 18:44:31 +01:00
Cédric Krier d68df1a8e6 Store payable bank account number on SEPA payment
This allows the user to select the bank account to use for the payment instead
of the first IBAN.
Also it stores the bank account that was selected by default on processing.

Closes #13938
2025-03-24 23:10:42 +01:00
Cédric Krier 2a85bd2a14 Remove test on the returned value from production _move method
The method always returns a stock move.
2025-03-27 00:26:53 +01:00
Cédric Krier 43dff0d4f6 Add method to prepare stock move from a BOM input or ouput
This allows customization of the stock move using data from the BOM.

Closes #13945
2025-03-27 00:25:18 +01:00
Cédric Krier 81134c70da Update window form buttons when record is modified
This synchronize the behavior of these buttons with the one from the One2Many
widget.

Closes #13949
2025-03-28 15:53:05 +01:00
Cédric Krier 3b253210ae Initialize position of One2Many widget to None/null 2025-03-28 15:51:55 +01:00
Cédric Krier 3a0892126d Set cursor on product field in opportunity line form
Since 9ec3b6ddc7ec the product is no more the first focusable field but it
stays the first useful to have the focus.

Closes #13908
2025-03-31 18:23:37 +02:00
Cédric Krier 1d68553044 Clear browser selection when selecting multiple rows
Closes #13952
2025-03-31 23:18:30 +02:00
Cédric Krier 130da3b56d Archive Shopify products removed instead of deleting them
Such that customization made from the admin interface are preserved if the
product is republished.

Closes #13962
2025-04-04 00:27:57 +02:00
Cédric Krier d169592a30 Do not update Shopify product with empty product description
Closes #13963
2025-04-04 00:37:39 +02:00
Cédric Krier fff5663ae1 Add DecimalNull as tools 2025-04-08 09:59:33 +02:00
Cédric Krier 88b9c02577 Prevent to revise multiple times the same asset with the same invoice line
Closes #13970
2025-04-11 13:24:16 +02:00
Cédric Krier b26b3538cf Always use flex display for #tabcontent except on small screen
On form view, this put the scrollbar for long form only on the form without the
preview.
On small screen the form is switch back to block so the panel-body with the
flex-direction column push the #tabcontent to expand more than the height of
the viewport.

With the content of the preview being always visible without scrollbar (except
for the screen), we can put the navigation at the bottom as natural place.
2025-04-12 12:42:54 +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
Nicolas Évrard 4f195c7ffe Add simple chat widget on sidebar of clients 2025-04-12 17:25:28 +02:00
Cédric Krier e5c35f988b Add chat 2025-04-12 16:54:16 +02:00
Nicolas Évrard a17172f6dd Toggle the option's selected state on mousedown in the filter window
This applies the changes from 3b0ae1dadfa0 to the filter window
2025-04-12 21:32:15 +02:00
Nicolas Évrard 83d280fede Display checkbox in multiselection in the filter window
This applies the changes from 97e82c27dc17 to the filter window
2025-04-12 21:30:56 +02:00
Nicolas Évrard 9babb76a0f Set sao's multiselection widget height according to its content 2025-03-05 18:13:37 +01:00
Nicolas Évrard baaf7784fa Ensure that update_selection is called if init_selection has failed
Closes #13960
2025-04-03 16:46:56 +02:00
Cédric Krier dc53b5fff1 Update npm dependencies 2025-04-12 21:11:11 +02:00
Cédric Krier f7b37fcf3b Display xxx2Many widgets when they become visible
When a tree is used in a xxx2Many widget then we can lazily request the content
of the tree by relying on the intersection observer that is already present at
the bottom of the table.
2025-04-10 19:09:38 +02:00
Nicolas Évrard 0e9cfb3e84 Do not refresh the pool when the notification comes from the same process 2024-12-18 17:08:26 +01:00
Nicolas Évrard 3cf1d64372 Use process-local data structure to store process related data 2025-01-08 23:20:32 +01:00
Nicolas Évrard 26f7c7142b Add process local objects ala threading.local 2025-02-14 17:16:55 +01:00
Nicolas Évrard c643794a85 Remove a useless call to Cache.refresh_pool
Since Pool.init is called with a non empty update, it will make a call to
Cache.refresh_pool at the end of its call to load_modules
2024-12-17 15:16:51 +01:00
Nicolas Évrard ac6e93b078 Reset the pool instances only on the pool initialization
In a scenario where cache_timeout is set to zero, concurrent updates to the
pool might result in an empty pool dictionary because the process making the
update lose its reference to the updated pool thus replacing it with an empty
dictionary on the following instantiation of Pool.

Closes #13763
2024-12-17 15:14:04 +01:00
Cédric Krier 7a9820e5af Change current record for the first selected only if there is no current record
#4028 added the behavior to apply the selected record also on form view the
first time.
But when switching to a calendar view from a form view, the tree states is
stored with the current record. If the calendar view is cleared (always with
sao via the search_filter), then the tree_states_done is cleared and on the
second switch to the form view the current record is override by record stored
in the tree states (from the first form switch).

Closes #13939
2025-03-26 20:07:54 +01:00
Nicolas Évrard cd5a54cb2f Delete warnings at the end of the Transaction
Closes #13686
2025-04-10 19:21:50 +02:00
Nicolas Évrard 68fb5e1fa7 Use high level API of res.user.warning in tests 2024-11-29 18:18:52 +01:00
Nicolas Évrard fb200e610d Add selection_change_with to Selection field's edition_depends
Closes #13959
2025-04-03 16:33:47 +02:00
Cédric Krier b426fe621c Restore asynchronous save but protected by a single promise
The write RPC must be done asynchronously in order to manage any concurrency
exception.
But the asynchronous RPC can only be done sequentially, so we ensure there can
be only one single pending promise.

Closes #13940
2025-03-25 13:49:53 +01:00
Cédric Krier e5f0688da7 Store target of field as relation
For Many2Many it replaces the relation model by the target which is what is
expected by usage in many places like the domain for email models.

Closes #13756
2025-03-24 23:32:36 +01:00