Commit Graph
13192 Commits
Author SHA1 Message Date
Aaron Bohy 0b3212c4b6 [FIX] web: Many2ManyTagsField: honnor options
In the legacy implementation of FieldMany2ManyTags, we instantiated
a FieldMany2One with the attrs of the many2many field node. As a
consequence, the FieldMany2ManyTags honnored its own options and
all options supported by the FieldMany2One.

In the new implementation, before this commit, we lost the support
of the Many2ManyField's specific options, in particular "no_create"
and "no_create_edit". This commit fixes that issue.

With this commit, the FieldMany2ManyTags also takes into account
the "can_create" attribute that is automatically set to "0" by the
framework if the user hasn't the required access rights.

Note: Many2OneField options is a mess, it would be nice to
refactor and simplify them in the future.

closes odoo/odoo#99283

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-31 21:11:58 +02:00
Bruno Boi 0ae158bf43 [LINT] web
closes odoo/odoo#99295

Related: odoo/enterprise#30900
Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-08-31 18:53:51 +02:00
Achraf (abz) 31f389b983 [FIX] *: Adapt old custom-control class of Bootstrap
* = hr_holidays, mail, sale, web, web_editor, website, website_forum,
website_payment, website_sale

https://getbootstrap.com/docs/5.1/migration/

replacing `custom-control` by `form-check` because in bs4 this class had
a use which is not the case in bs5.

closes odoo/odoo#98965

Related: odoo/enterprise#30768
Signed-off-by: Romeo Fragomeli (rfr) <rfr@odoo.com>
2022-08-31 16:05:20 +02:00
Aaron Bohy a86d4edb89 [FIX] web: grouped list: support buttons in between aggregates
Before this commit, the list view crashed when it was grouped if
there was a button column in between two "aggregatable" fields
columns. The reason is that "formatAggragatableValue" makes sense
only on field columns, and it crashes when called on a column of
another type. It was for instance the case in the Stock > Locations
list view.

closes odoo/odoo#99289

Signed-off-by: Georis François (fge) <fge@odoo.com>
2022-08-31 12:38:17 +02:00
Achraf (abz) 31ae502b66 [FIX] web: Adapt .o_form_view css selectors
Before the form merge we had
```html
<o_action>
    <o_content>
        <o_form_view oe_form_configuration>
        </o_form_view oe_form_configuration>
    </o_content>
</o_action>
```

now we have

```html
<o_action o_form_view>
    <o_content>
        <oe_form_configuration>
        </oe_form_configuration>
    </o_content o_form_view>
</o_action>
```

So we have to adapt form_controllers.scss to match this new structure.

closes odoo/odoo#99280

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-31 12:38:08 +02:00
Lucas Perais 80d85edb1a [FIX] web: kanban quick create with legacy many2one
Have a quick create view in kanban that has a legacy many2one
field (not yet converted to the WOWL framework for some reason).
Click on that many2one to see the dropdown of propositions.
Click on one proposition.

Before this commit, the quick create got closed, because we clicked
somewhere outside of it (the legacy dropdown).
This is a known, quite common issue in some other part of the codebase
(see d3662d370c).

After this commit, the quick create works as expected.

closes odoo/odoo#99241

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-31 12:37:58 +02:00
Mathieu Duckerts-AntoineandMichael Mattiello a29691bfd8 [FIX] web: DomainField: debug input value lost on blur
Edit a domain in the debug text area of a domain field in debug mode
was possible but the value displayed in the text area was reset to the
value displayed in the part above. For instance, starting with a domain
field value like "[('id', '=', 1)]" then editing it in the text area to
be "[('id', '=', 3)]", the value for the domain field would be correctly
updated but the value displayed in the domain field would be the initial
value "[('id', '=', 1)]". We fix that by making the DomainSelector
component accept an extra prop "debugValue" to be displayed in the debug
area instead of the prop "value" if it is defined.

closes odoo/odoo#99207

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Michael Mattiello (mcm) <mcm@odoo.com>
2022-08-31 12:37:51 +02:00
Mathieu Duckerts-AntoineandMichael Mattiello 3498235ea0 [FIX] web: DomainSelector: set [(1, "=", 1)] in debug text area
Setting [(1, "=", 1)] as domain in the debug text area would make crash
the DomainSelector component because the sub component ModelFieldSelector
would not accept 1 as a fieldName prop due to its props validation. We
fix that by converting 1 to a string.

Part-of: odoo/odoo#99207
Co-authored-by: Michael Mattiello (mcm) <mcm@odoo.com>
2022-08-31 12:37:51 +02:00
FrancoisGe 1f43844549 [FIX] web: save an empty many2many_tags required
Before this commit, the required attribute has no effect on the x2many
fields. It will always be valid unless one of its records is invalid.

Problem:
In some cases, we would like to be able to make some x2many fields
required. For example, many2many_tags should be invalid if it contains
no records.

In legacy, if a field is required, then it has the responsibility to
evaluate if its value is valid. To do this, each field contained the
isSet function which returns true if the value is set.

In our new architecture, it is the model that evaluates if the value of
a field is valid based on the field type. It is therefore no longer
possible to customise the evaluation of the validity of a field based
on the FieldComponent.

Solution:
This commit will reintroduce the possibility to customize the evaluation
of the validity of a field based on the FieldComponent.
To do this, we add the possibility to define a static isSet function
on the FieldComponent. If this function is present, it will be used
to evaluate if the field value is set or not.

closes odoo/odoo#98873

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-31 12:37:35 +02:00
Lucas Perais 11c1bbbdd0 [FIX] web: changing the priority of a new record in kanban
Have a grouped kanban which display a priority field widget.
Quick create a record.

Click on any priority widget to change the priority.

Before this commit, the model was still considered in edition, preventing any change
in other record. Hence, the priorities did not change (at least, there was no write operation)
when clicked on.

After this commit, this flow works as expected.

closes odoo/odoo#99199

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 21:25:15 +02:00
Aaron Bohy bedce02bb7 [REF] web,mail,account: orm service: move context in kwargs
This commit standardizes the API of orm service functions by adding
a "kwargs" parameter, s.t. one can always use those functions even
if the target model overrides the corresponding method to add the
support of a given kwargs. Furthermore, to simplify those function
API, and to close the gap between the js and python APIs, we moved
the "context" argument inside the kwargs.

closes odoo/odoo#99018

Related: odoo/enterprise#30830
Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-08-30 20:23:17 +02:00
Aaron Bohy 002a76eaaa [IMP] web,account: orm service: allow to create in batch
This commit changes the API of the "create" function of the orm
service to better reflect the API of the corresponding method in
models.py, which takes a list of record values in argument.
Before this commit, a call to "create" only allowed to create a
single record.

Part-of: odoo/odoo#99018
2022-08-30 20:23:17 +02:00
Aaron Bohy 23101ed69a [FIX] web,mail: orm service: can pass kwargs to read
Before this commit, the "read" function of the ORM service didn't
allow to pass any kwargs. As a consequence, it wasn't possible to
call the "read" method of a model with "load" kwargs specified.
This commit fixes the issue, and adapts existing calls accordingly.

Part-of: odoo/odoo#99018
2022-08-30 20:23:16 +02:00
Aaron Bohy a4ac19f8c0 [IMP] web: orm service: stop whitelisting kwargs
Before this commit, most functions of the orm service whitelisted
the kwargs to pass to the call of the python method. This would
make the service unusable on models that override those methods to
add the support of new kwargs. This commit removes the whitelisting
s.t. the service simply propagates all given kwargs.

Part-of: odoo/odoo#99018
2022-08-30 20:23:16 +02:00
Julien Mougenot 8f8f6a52ac [FIX] web: Dropping record in folded kanban column loads it
Before this commit, when dropping a record on a folded column in a
kanban view, the column would not load its records and display a "load
more" button instead.

Now, dropping a record on a folded column loads it entirely before
unfolding it, displaying its records normally (including the newly
dropped one).

closes odoo/odoo#98922

Signed-off-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2022-08-30 20:22:58 +02:00
Xavier BOL (xbo) 91678b3cf3 [IMP] web,hr_timesheet: convert timesheet_uom service and components in OWL
Before this commit, a service called `timesheet_uom` is created to add
in the legacy registry, the right component to use when `timesheet_uom`
is searched in the registry because it depends on the UoM set on the
current company.

This commit converts all the widgets in which be used in the
`timesheet_uom` registry and also adapt the service to use the session
instead of the legacy one.

task-2944742

closes odoo/odoo#98380

Related: odoo/upgrade#3787
Related: odoo/enterprise#30565
Signed-off-by: Laurent Stukkens (ltu) <ltu@odoo.com>
2022-08-30 20:22:34 +02:00
Xavier BOL (xbo) 15f2d75bdb [IMP] web: add className getter in list view
Before this commit, the kanban view has a `className` getter to easily
add a class if needed. The list view only uses the className given in
the props and so className is added in the view.

This commit adds a className getter to be consistent with kanban view
and to allow to easily add a className to a specific case (that is for
an eventual customization).

task-2713538

Part-of: odoo/odoo#98380
2022-08-30 20:22:34 +02:00
Brieuc-brd fbfc0dc63c [IMP] web: KanbanView, introduce css variables
This commit introduces css variables to facilitate the customization of
the view.

Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2892062

Part-of: odoo/odoo#96195
2022-08-30 17:10:14 +02:00
Brieuc-brd ee46a9fda9 [FIX] web: KanbanView, layout issues
Prior to this commit there were some layout issues in KanbanView:

1. The `o_kanban_header` z-index was not high enough and some icons in
the record element could hide it partially.

2. The `o_ghost_avatar` was not visible (white on white).

3. `.container` elements placed inside a record had their width
   constrained by the grid system. This commit "fix the issue" setting
   their max-width to 'none'. 

Note on point 3:
To have '.container' max-width limited by the current resolution is not
a bug but the default grid-system behavior. This commit provides a
temporary workaround since 'container-fluid' classes should have been
used instead.

task-2892062

Part-of: odoo/odoo#96195
2022-08-30 17:10:13 +02:00
Brieuc-brd 7cfe50749f [REF] web: KanbanView, review and simplify scss
Review, simplify SCSS and adapt legacy code.
Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2892062

Part-of: odoo/odoo#96195
2022-08-30 17:10:13 +02:00
Brieuc-brd dba33909aa [MOV] web: move KanbanView variables into the component folder
This commit moves the kanban variables from primary_variables.scss to
the KanbanView folder.

Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2892062

Part-of: odoo/odoo#96195
2022-08-30 17:10:13 +02:00
mafo-odoo 5f7e6b4183 [FIX] web : drag and drop for kanban does not open record
Steps to reproduce:
-Install Project
-Activate kanban view for projects in the settings
-On firefix do a drag and drop of a project between two stages

Current behavior:
You are redirect to the project record

Expected behavior:
The project changed stage but there is no redirection

Solution:
The check for the drag&drop case only happen inside the openRecord
function but the record should not be open in this situation and
hence the check should happen before the function is called in
onGlobalClick.

opw-2952389

closes odoo/odoo#99120

X-original-commit: 977ef91693f22a5fab2b71d4dadf99046853ca9d
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Fockedey Martin (mafo) <mafo@odoo.com>
2022-08-30 12:44:30 +02:00
Simon Genin (ges) 5e754ffd4d [FIX] web: fix field update
When a field in readonly view can be modified, it should write to the
backend immediately. (No changes are stored to be comited later)

For some reason, a bit of code was preventing this if the field was
required and had a falsy value. Furthermore, the code seemed incorrect
or at least misplaced. Removing these lines didn't affect the test.

The fix simply remove this extra check.

There was a condition in the update code for required field in readonly
views that prevented the correct flow to be executed. Since no test are
broken removing this check but it fixes the problem, it is removed.

closes odoo/odoo#98978

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 09:23:13 +02:00
svs-odoo cbee4b0c06 [IMP] web: add onSave/onDiscard on form_controller
Adds two new props in `form_controller` in order to call a function from
the parent `Component` just after the form view is saved/discarded.

closes odoo/odoo#97314

Related: odoo/enterprise#30045
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 09:23:09 +02:00
svs-odoo cb19ad1995 [IMP] web: ConfirmationDialog buttons' name
This commit adds two props for the `ConfirmationDialog`:
`cancelLabel` and `confirmLabel`.
Both are `String` and optional and the buttons will remain named "Ok"
and "Cancel" by default.

Part-of: odoo/odoo#97314
2022-08-30 09:23:09 +02:00
FrancoisGe e50bee88c4 [FIX] web: touch a record in a x2m
Before this commit, if a touchstart event is performed on a row in an
x2many, then a crash is displayed.

We also use this commit to rename the hasSelector props to allowSelector.
allowSelector is true if checkboxes can be present.

How to reproduce:
- go to a form view in mobile mode with an x2many field
- touch a row in the x2many (trigger an event touchstart)

Before this commit:
    An error is displayed

After this commit:
    Nothing happens.

closes odoo/odoo#98893

Related: odoo/enterprise#30773
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 03:44:56 +02:00
FrancoisGe 1ecdbfcfbf [FIX] web: empty a many2one field
Before this commit, it was impossible to empty a many2one in a list view.

How to reproduce:
- go into a list view with a many2one
- empty a many2one containing a value
- click outside the line

Before this commit:
The record goes into readonly mode and its many2one returns to
its original value.

After this commit:
The record is saved and its many2one is empty.

closes odoo/odoo#99140

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 02:51:12 +02:00
luvi 33925701aa [FIX] web: fix the copied tooltip of CopyButton
This commit fixes the style of the field, which was
pretty broken since the Owl conversion.
It also bring back the tooltip (as in legacy) when
the button is clicked.

The button now only shows the tooltip if the text
has been copied successfully to the clipboard, and
not appear when it is not allowed or not available
in the browser.

Tests have been added to assert those behaviors.

Enterprise PR to adapt a selector in tests:
https://github.com/odoo/enterprise/pull/30832

closes odoo/odoo#98340

Related: odoo/enterprise#30832
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-30 00:46:26 +02:00
Tiffany Chang (tic) a066638cd5 [IMP] web: allow custom row click action
This commit adds a generic `action="action_some_method"` attribute to
the list view to allow for a custom action when clicking on a (record)
row. This feature mirrors the existing Kanban "action" attribute.

Note that in cases where the action method does not return a valid
action then the default action `act_window_close` will be called
instead (same behavior as the kanban view and buttons in general).

Supports "magic link" part of Task: 2882539

Part-of: odoo/odoo#97109
2022-08-29 23:46:36 +02:00
std-odoo f26cae6db5 [IMP] web: allow non administrators to use relational properties
Purpose
=======

Allow non administrators to use relational properties.

Standard internal users can not read ir.model. Because of that we
created a component that simulate the behavior of a many2one, but
that call custom public method that check which model the user can
access.

Task-2852259

Part-of: odoo/odoo#95184
2022-08-29 23:46:07 +02:00
std-odoo a740989ba5 [MOV] web: move the domain selector component to web
Purpose
=======

For security reason access on ir.model is not granted to internal suers. Due
to this constraint a component exists in spreadsheet to be able to select
the models for which we have a read access on the records of this model.

This is required for the properties fields feature, hence moving its code
to web.

Some renaming is performed to make it generic. This generates some changes
in other addons, notably some class renaming.el.

Task-2852259

Part-of: odoo/odoo#95184
2022-08-29 23:46:07 +02:00
std-odoo 3961038ddb [IMP] web: create a properties field component
Purpose
=======

Create a component for the new Properties field. This component instantiates
the right sub-component based on the property type (e.g. a DatePicker for a
DateTime, a Many2XAutocomplete for relational properties, etc).

This component also allow changing the properties definition (default
value, model, property type, etc).

Note that currently it is limited to children properties, assuming definition
is done from children to containers.

Add unit tests to ensure that behavior of the properties component is correct.

Task-2852259

Part-of: odoo/odoo#95184
2022-08-29 23:46:06 +02:00
Denis Ledoux 43953c2a4d [IMP] web: allow to have nested buttons in form header
Before this revision,
it wasn't possible, in the form header,
to organize buttons in nodes.
If you attempted to do so, the buttons were not appearing.

e.g. for the below form
```xml
<form>
  <header>
    <button name="0"/>
    <button name="1"/>
    <div id="special_buttons">
      <button name="2"/>
      <button name="3"/>
    </div>
  </header>
</form>
```
Before this revision, the buttons 2 and 3 were not appearing.

Adding this possibility can allow simpler inheritage,
for instance by organizing buttons in sections and then
the inherited view can add buttons directly within the right section,
using a selector targetting the section.

It also allows to restrict a button to users having 2 groups.
e.g.
```xml
<button name="action_draft" position="after">
    <div groups="sale.group_auto_done_setting">
        <button name="action_done" type="object" string="Lock"
            states="sale"
            help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver." groups="sales_team.group_sale_manager"/>
        <button name="action_unlock" type="object" string="Unlock"
            states="done"
            groups="sales_team.group_sale_manager"/>
    </div>
</button>
```
If you want to restrict the button `action_done` to users
having both `sale.group_auto_done_setting` and `sales_team.group_sale_manager`,
you cannot put both groups on the same node,
because otherwise it's an OR connection, not an AND.
`groups="sale.group_auto_done_setting,sales_team.group_sale_manager"`
means
"users has `sale.group_auto_done_setting` or `sales_team.group_sale_manager`",
not AND.
So, the only possibility to restrict a button to two groups with an AND
connection is to restrict the button to a group and nest the button
inside a block restricted to the second group.

The above example is an actual example/need from the existing code.
But, as this possibility wasn't there before this revision,
they achieved the goal by using the `groups_id` feature:
```xml
<record id="view_sales_order_auto_done_setting" model="ir.ui.view">
    <field name="name">sale.order.form</field>
    <field name="model">sale.order</field>
    <field name="inherit_id" ref="sale.view_order_form"/>
    <field name="groups_id" eval="[(4, ref('sale.group_auto_done_setting'))]"/>
    <field name="arch" type="xml">
        <button name="action_draft" position="after">
            <button name="action_done" type="object" string="Lock"
                states="sale"
                help="If the sale is locked, you can not modify it anymore. However, you will still be able to invoice or deliver." groups="sales_team.group_sale_manager"/>
            <button name="action_unlock" type="object" string="Unlock"
                states="done"
                groups="sales_team.group_sale_manager"/>
        </button>
    </field>
</record>
```
So they had to use an inerited view for that purpose only to restrict
the button to two groups. It's a work-around.

It is much simpler to allow to have nested buttons in the header of the
form.

closes odoo/odoo#98551

Related: odoo/enterprise#30643
Related: odoo/upgrade#3812
Signed-off-by: Denis Ledoux (dle) <dle@odoo.com>
2022-08-29 22:42:56 +02:00
Mathieu Duckerts-Antoine 1870b49d31 [REF] *: manage columns record by record in list
Several modules need to display records data in a list table in a way
suitable to possibly different record types. Here we refactor the list
renderer to allows to specify columns (and their colspans) record by
record.

Part-of: odoo/odoo#97984
2022-08-29 13:49:09 +02:00
Mathieu Duckerts-Antoine 8b1d92c787 [REF] *: list: renderer templates called dynamically
Several modules need to modify some parts of the templates used by the
list renderer. Those being called recursively (and with parameters
sometimes), it is quite lengthy to do. Now the call to templates are done
dynamically so that it is easier to extend the templates by specifying
some static keys of the ListRenderer.

Part-of: odoo/odoo#97984
2022-08-29 13:49:09 +02:00
Mathieu Duckerts-AntoineandLucas Perais 9b1456a2ec [REF] web: x2manyField: edit/add records inline conditionally
The aim of this commit is to provide better API points to be able
to extend the behavior of the X2ManyField in conjunction with the
ListRenderer. More precisely, we make possible to specify record by
record if it should be edited/created inline or in a dialog.

Part-of: odoo/odoo#97984
Co-authored-by: Lucas Perais (lpe) <lpe@odoo.com>
2022-08-29 13:49:09 +02:00
Lucas Perais 481acba93b [REF] *: x2m field: easier access to renderers for extensibility
Before this commit, X2Many renderers were not easily accessible from the outside,
making it difficult to override them in some extension.

After this commit, the renderers are accessible in the object `components` on the constructor.

Part-of: odoo/odoo#97984
2022-08-29 13:49:09 +02:00
Habib (ayh) 43f516e90d [IMP] web: file_uploader: callback after all files have been uploaded
Part-of: odoo/odoo#96672
2022-08-27 19:01:11 +02:00
Pierre Paridans 062ef13483 [FIX] web: restore sizing for XXL Form View
XXL Form View doesn't apply the right max-width (1320px instead of
1140px).

This is due to the precedence of the selector for `.o_xxl_form_view`
since https://github.com/odoo/odoo/pull/96627. Also this code block
applies to both legacy an new FormView instead of only the new one.

This commit fixes it by properly targetting the `.o_form_view` with the
`.o_xxl_form_view` and restores the previous behavior.

closes odoo/odoo#98686

Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-08-27 03:33:30 +02:00
Samuel DegueldreandAchraf Ben Azzouz b9bdf2a139 [FIX] web: display translation alert after status bar
The newly converted form view displays the translation alert above the
form renderer, but we want the translation alert to be present below the
status bar when there is one.

This commit fixes that by moving the display from the form controller to
the form renderer.

closes odoo/odoo#98434

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Achraf Ben Azzouz <abz@odoo.com>
2022-08-26 21:36:58 +02:00
Brieuc-brd 8fa6e923d0 [REF] web, website: FormView, review and simplify scss
Review, simplify SCSS and adapt legacy code.
Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2918464

closes odoo/odoo#98101

Related: odoo/enterprise#30421
Signed-off-by: Adrien Dieudonné (adr) <adr@odoo.com>
2022-08-26 18:41:36 +02:00
Brieuc-brd d84af2aa46 [MOV] web: move FormView variables into the component folder
This commit moves the form variables from primary_variables.scss to
the FormView folder.

Part of the overall v16 SCSS optimization/restyle, task-2704984

task-2918464

Part-of: odoo/odoo#98101
2022-08-26 18:41:35 +02:00
Sébastien Geelen (sge) d32a8c53c2 [IMP] web,web_editor,mass_mailing,sms: new dynamic placeholder
Introduce a new Dynamic Placeholder Generator
in mass mailing and SMS creation.

Using a specific character (#) in subject or via the PowerBox in body
we open a field selector popup, which can be use to select
the wanted field and enter a default value. on validation, the dynamic
placeholder will be inserted in the corresponding input/editable.

task-2154624

closes odoo/odoo#71878

Related: odoo/enterprise#30333
Related: odoo/upgrade#3766
Signed-off-by: David Monjoie (dmo) <dmo@odoo.com>
2022-08-26 17:16:10 +02:00
qsm-odoo 06e93c2489 [FIX] web: prevent wrong date format if picker used too soon on frontend
If datetimepickers were used too soon after page loading, they would use
the wrong format and UI options as the code in charge of initializing
those options was not fully lazy loaded yet.

With this patch, we prevent the tempusdominus lib to consider pickers
that are in a body that is marked by the lazyloader during the lazy
loading of JS files. We could potentially not add the lib attribute
(data-toggle="datetimepicker") on those elements and let the business
code initializing the pickers add it but that would not have been a
stable fix and it may be better this way as this works generically.

opw-2944720

closes odoo/odoo#98917

X-original-commit: 7e012340d3adcd64e829a5dca34173da24d649bc
Signed-off-by: Romain Derie (rde) <rde@odoo.com>
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2022-08-26 06:55:43 +02:00
william d92a8b5ffd [IMP] web: continue to edit lists when editable=top
Previous behavior
================

When `editable=bottom`, when we hit tab until the end of the line, the
user starts to create a new record.
But when `editable=top`, when hitting tab multiple until the end of the
line, the user starts to edit the first line that was existing before
instead of creating a new one.

New behavior
============

The behavior is consistent between both cases: the user can always
continue to edit lines one after the other.
The behavior for `editable=bottom` is not changed, but `editable=top`
continues to add lines on top one of each other.

linked to task-2879904

closes odoo/odoo#98603

Signed-off-by: Georis François (fge) <fge@odoo.com>
2022-08-25 22:46:00 +02:00
MerlinGuillaume 4ffde5b8b9 [FIX] web: use different hotkeys for 'ADD' and 'SAVE' buttons
A modal using the 'ADD' and 'SAVE' buttons will have the same keyboard
shortcut for both of these buttons

Steps to reproduce:
1. Install Inventory
2. Go to Inventory > Operations > Transfers and open a transfer with a
contact and in status 'Ready'
3. Click on 'EDIT' and open the contact in the Delivery Address with the
quick edit button
4. Push on 'Alt' key: the 'ADD' and 'SAVE' buttons use the same shortcut

Solution:
Modify the current hotkey used for button 'SAVE'

opw-2954146

closes odoo/odoo#98884

X-original-commit: 0f8d28269f4900e70d7fefbb359580390656cdf7
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Guillaume Merlin (megu) <megu@odoo.com>
2022-08-25 18:25:22 +02:00
Bruno Boi ec70294e64 [FIX] web: invalid kanban record quick_create stays open
- Before this commit
Validating an invalid kanban record on quick creation
would leave the quick creation mode.

- After this commit
Validating an invalid kanban record on quick creation
will stay in quick creation mode, indicating which fields are invalid.

closes odoo/odoo#98874

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-25 12:05:47 +02:00
FrancoisGe 2e23ac138d [FIX] web: debug menu view metadata
Before this commit, in a legacy view, clicking on debug menu
"View Metadata" causes a crash.

closes odoo/odoo#98866

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2022-08-25 12:05:36 +02:00
Bruno Boi c343318f93 [FIX] web: keydown traceback on empty m2m_tags(_avatar)_field
- Before this commit
On an empty m2m_tags(_avatar)_field, triggering a keydown event yields to a traceback due to an owl issue.
This will be fixed in owl later.

- After this commit
The 't-on-keydown' attribute on TagsList component has been moved into the tags themselves.

closes odoo/odoo#98840

Signed-off-by: Samuel Degueldre <sad@odoo.com>
2022-08-25 12:05:24 +02:00
Bruno Boi d56468eb66 [FIX] web: disable browser autocompletion for AutoComplete component
- Before this commit
The browser autocompletion feature may conflict with
the AutoComplete component. First, the browser could
display its own autocompletion dropdown over our component's.
Secondly, selecting an item in the browser's autocompletion
dropdown simulates a keydown event with an undefined 'key' property,
leading to display traceback when the AutoComplete component
uses the keydown event (i.e. in getActiveHotkey).

- After this commit
The <input/> of our AutoComplete component now has the following attr
`autocomplete="off"`. This disables the browser's autocompletion feature
for this <input/>.

Part-of: odoo/odoo#98840
2022-08-25 12:05:24 +02:00