669 Commits
Author SHA1 Message Date
Cédric Krier 2f12db2751 Add emails to COPYRIGHT names 2026-03-23 16:08:13 +01:00
Cédric Krier 6a9565f9d4 Add generic management for label style in form widget 2026-03-10 15:45:24 +01:00
Adrià Tarroja Caubet b9ed5e4aee Remove trailing spaces from the user name in the login window
Since e19329d25a6f user login field prevents trailing or leading spaces so the
clients can remove them from the login window.

Closes #13898
2026-03-27 18:15:43 +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
José Antonio Díaz Miralles cd51fce0b7 Move the logout entry and add a help entry to the notification menu
Closes #14151
2026-03-24 19:28:02 +01:00
Cédric Krier 9cf2412f7e Add visual hint on widget of modified field
All the widget properties used for style are regrouped under a unique styled
widget which simplify the CSS rules.
For xxx2Many widget, there is not style applied.
The style is reset when the widget is not linked to a field.

Closes #14613
2026-02-17 18:10:15 +01:00
Cédric Krier d3c8a8e55d Add support for Python 3.14 2026-03-21 09:02:25 +01:00
Cédric Krier 42b0fc7061 Remove support for Python 3.9 2026-03-21 08:48:06 +01:00
Cédric Krier e15c0b7d7a Upgrade to pyproject using hatchling as build-system 2026-03-21 18:46:34 +01:00
Cédric Krier 199408510a Store column widths per occurrence
Closes #14645
2026-03-03 19:48:24 +01:00
Cédric Krier 4c0eb9d4a9 Clear fields_view_get cache after resetting column widths 2026-03-03 18:37:56 +01:00
Cédric Krier 5b27ff2acd Get custom column width using column attribute name
Closes #14643
2026-03-03 18:33:24 +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
José Antonio Díaz Miralles 6bbf39afb4 Replace bower by nodejs to handle dependencies
Closes #13566
2024-10-04 20:54:56 +02:00
Adrià Tarroja Caubet 96b876a14d Normalize Sao language codes to BCP 47 format
Normalize lang and locale values to use BCP 47 tags.

Closes #14653
2026-03-05 17:26:35 +01:00
Cédric Krier 204c5f826d Limit digit to positive integer when formatting float in domain parser
Closes #14557
2026-02-28 12:57:24 +01:00
Cédric Krier 0d91111ef4 Select option on double click in selection dialog
The form submit event is triggered when the radio div is double clicked.
The radio elements are put in a form-group to restore margin since
81bc564e03e0.
And the option is required to submit the form.

Closes #14616
2026-02-19 17:06:41 +01:00
Cédric Krier aa8e767245 Fill blank state of empty notification menu
Closes #14575
2026-02-05 16:12:46 +01:00
Cédric Krier 57b9ccf407 Fix order and z-index of backdrop for stacked modal
Closes #14588
2026-02-06 19:00:24 +01:00
Cédric Krier eee2a18f73 Switch the view when user cancel the new record
Closes #14583
2026-02-05 18:21:05 +01:00
Cédric Krier 9ea8618812 Add padding to actions of completion
The actions are rendered in a separated list and no more as items of the
dropdown so we must replicate the same padding for visual consistency.

Closes #14584
2026-02-05 18:52:00 +01:00
Cédric Krier d3bac177ae Make always sensitive reload button for view other than form
Closes #14556
2026-02-05 18:17:06 +01:00
Cédric Krier 236ef98b7a Fill blank state of empty favorite menu
Closes #14574
2026-02-04 12:52:19 +01:00
Cédric Krier 92606c8f32 Remove gap for empty row or column
The container gap is still applied on invisible element if they are defined in
the template.
The solution is to fake gap using margin between consecutive elements and to
not display empty elements.
For column gap the horizontal margin must be compensated with negative margin
on the grid and padding on the elements to avoid to overflow the grid.

Closes #13852
2026-01-30 10:44:25 +01:00
Cédric Krier f7f8c002b7 Set revision context before clearing the screen
This prevents the clear method (which set the current record to null) to update
the URL with the old revision and thus opens a new tab.

Closes #14577
2026-02-04 15:26:34 +01:00
Cédric Krier c537a8df33 Test if width is set before testing if it ends width '%'
Closes #14578
2026-02-04 15:29:51 +01:00
Cédric Krier 5d8e111890 Save synchronously the tree state of the menu when the page is unloaded
The callback of window.onbeforeunload can only be synchronous in order to be
sure that it is fully executed.

Closes #14543
2026-01-23 12:04:00 +01:00
Cédric Krier e65cf3454b Log RPC error in the console 2026-01-23 12:02:52 +01:00
Cédric Krier d59d2ce496 Do not include removed records in the search domain of One2Many
Adding an OR-ed clause prevents the domain inversion to set any unique values
when creating a record from the search window.
The removed records can be re-add with the undelete button instead.

Closes #14540
2026-01-23 09:57:31 +01:00
Cédric Krier faa9c7bf46 Scroll element in to view using center and for all the scrollable ancestors
Closes #14527
2026-01-20 18:43:53 +01:00
Cédric Krier 26e171099d Wait for the DOM to be ready before hiding the notification indicator.
Although the NotificationMenu is constructed on load, the DOM may not yet be
ready, meaning that the observer triggered by the .hide call cannot find any
other indicators to hide. Wait for the DOM to be ready to hide the notification
indicator.

Closes #14513
2026-01-18 13:38:12 +01:00
Cédric Krier 2e973901b4 Inherit color for close button 2026-02-04 11:41:26 +01:00
José Antonio Díaz Miralles 4f1eb55810 Add a button to close the Filters modal
Closes #13306
2026-02-04 11:39:34 +01:00
Cédric Krier 841a7cf815 Load icon field before rendering affix
Closes #14509
2026-01-16 13:16:50 +01:00
Cédric Krier 2219eb0915 Do not compare records order with negative id
Closes #14508
2026-01-16 12:11:35 +01:00
Cédric Krier d8579d4dd9 Allow tabs to be reordered 2026-01-18 13:15:45 +01:00
Cédric Krier 1ed92b8b83 Prevent default event when clicking on Many2One link from a tree view
If the event is not prevented, the URL is cleared if there is already a tab for
the resource because the tab show event update the URL before the execution of
the default event.

Closes #14453
2025-12-29 15:50:58 +01:00
Cédric Krier f8f337bba5 Do not render details button on error message without details
Closes #14426
2025-12-17 23:35:27 +01:00
Cédric Krier d293bbda92 Set a default direction when no language preferences are set
Closes #14419
2025-12-19 19:19:13 +01:00
Cédric Krier f074a94234 Hide chat when changing current record without chat 2025-12-18 00:45:20 +01:00
Cédric Krier 8e12aa010b Do not create chat if there is not current reference
Closes #14427
2025-12-18 00:44:36 +01:00
Cédric Krier 42ad8ae30b Set toolbar button sensitiveness based on record id instead of position 2025-12-18 00:39:38 +01:00
Cédric Krier 077a0825b3 Add title to notification label and description
This way user can get the full content if it overflows.

Closes #14430
2025-12-16 17:15:40 +01:00
Cédric Krier 78b475740b Replace notify method by binded version in constructor of chat and notification menu
We need to keep a reference to the binded method registered to be able to
unregister it.

Closes #14425
2025-12-16 01:10:47 +01:00
Cédric Krier 122ade0b30 Increase version number 2025-12-15 21:34:54 +01:00
Cédric Krier 692810e7b8 Prepare release 7.8.0 2025-12-15 20:17:16 +01:00
Cédric Krier 954f137e65 Update translations [skip ci] 2025-12-15 18:00:12 +01:00