Commit Graph
13640 Commits
Author SHA1 Message Date
Sébastien Theys af490aa25d [FIX] web: speed up tests by parsing OWL templates only once
closes odoo/odoo#55206

X-original-commit: 9b08be34ac6ffda091a36ebc72fd05374a9d661c
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
2020-07-30 13:58:05 +00:00
Julien Mougenot d3f0632f49 [FIX] web: datepicker get correct database format
Before this commit, the format used by both date and datetime picker
components depended on default props which are evaluated on module
loading. This was an issue because the "time" module did not have time
to load and fetch the correct database value, hence using the default
ones.

Now, the format is evaluated on component instantiation, giving enough
time to the "time" module to load.

Task 2307258

closes odoo/odoo#55113

X-original-commit: 792b565a65a8c9f65bf13e94f30b88913f2bfa7f
Signed-off-by: Paul Morelle <madprog@users.noreply.github.com>
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-07-29 11:20:16 +00:00
Lucas Perais (lpe) 49d9771c56 [IMP] web, base: action buttons in list's controlPanel
This commit introduces a new semantics to define action and method buttons
in the list view.
The aim of this feature is to be able to do some actions on selected records, or on the entire
records' domain with the help of buttons located in the controlPanel, much like the form view header buttons.

To define such buttons, one must add a `header` node in the list view's xml definition
```
<tree>
  <header>
    <button type="action|object" name="actionId|methodName" string="button's text" context="{}"/>
  </header>
  <field name="fieldName" />
</tree>
```

task-2246383
2020-07-29 08:59:42 +00:00
6aa6c321a6 [IMP] web: remove min date limitation of year 1900
Before this commit, user could not selecta a date before year 1900.
This was an historical limitation due to python < 3.2 that didn't
support dates before 1900.

After this commit, user can select any date, user can select any
date from 01/01/0001.

taskID: 2166761
Fixes #41788
Closes #43055

closes odoo/odoo#51406

Signed-off-by: Géry Debongnie (ged) <ged@openerp.com>
Co-authored-by: Mohammed Shekha <msh@odoo.com>
Co-authored-by: Aaron Bohy <aab@odoo.com>
2020-07-28 14:02:10 +00:00
Xavier Morel 6835aeb0de [REM] core, *: deprecate <act_window> and <report>
Convert deprecated tags through the codebase.
2020-07-28 13:03:13 +00:00
Nicolas Lempereur 922c7c722d [FIX] web: show digital signature in PDF
Show digital signatures items in PDF.JS preview even if the signature
verification is not implemented.

From discussion in mozilla/pdf.js this is like this because they don't
want to give the user a false sense of "the digital signature has been
verified" when it has not, but for a preview of the PDF this seems
misleading, in any case the user can have a full fledged PDF reader and
know if the document is well signed then.

https://github.com/mozilla/pdf.js/ issues/4743

opw-2287840
closes #54922

closes odoo/odoo#54988

X-original-commit: 820128385c523f562b9ee82698c81daa63149bb7
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-07-27 13:58:00 +00:00
Hardik Prajapati 7aafa20509 [FIX] web: list: hide export button when list empty
Before this commit, at first rendering, the export button was
displayed in the list view even if the list was empty.

The issue occurred because at first rendering, the buttons aren't
moved inside the control panel yet (this is done in the 'mounted'
hook of the control panel). As we render in a fragment, the hook
is called later on, when everything is ready and inserted into the
DOM.

We'll get rid of these painful manipulations as soon as everything
will be converted to OWL.

Task 2294306

closes odoo/odoo#54307

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-27 12:54:57 +00:00
Julien Mougenot a7657fbf84 [IMP] web: Drop widget support in search view
Until now the "widget" attribute used in the search view was meant to
force the type of a field regardless of its definition. This system was
implemented quite a long time ago and is now useful in only one case:
searching for "reference" fields (we want them considered as char fields
else it is impossible to search on them).

This is why this commit completely removes the "widget" attribute
support in search views while consistently casting the "reference"
fields as "char" fields in the search bar.

Task 2061795
2020-07-27 08:03:18 +00:00
Michael Mattiello (mcm) 27d47d1435 [IMP] web: change list view's groups style
This commit changes a bit the style of groups in list view
* reduced padding-top/bottom of group headers to 5px
* increased the padding-left by 2px of carets to align
  them with selection checkboxes (in enterprise)

Task 2301397
ENT PR: https://github.com/odoo/enterprise/pull/11955

closes odoo/odoo#54736

Related: odoo/enterprise#11955
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-24 09:55:08 +00:00
Nicolas Lempereur e8951481b6 [FIX] l10n_ch: add padding on QR-BILL header
QR-BILL report has no margin so we can position things exactly where
they needs to be according to standard.

For example the form must stick at the bottom and have 100% width, so we
can't use paperformat margin that would not allow to have 100% width.

With this change, we set default padding on header so it match
better "European A4" paperformat (that has 5mm top margin and 7mm right
and left margin) for stylistic purpose.

This is currently not configurable so for custom header size still need
view editing to change current values, but this at least make the
edition easy.

opw-2267041
closes #54717

closes odoo/odoo#54725

X-original-commit: b758a02ae50fa13f090190accce1fa6d1dbde7d2
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
2020-07-20 19:30:02 +00:00
Julien MougenotandMathieu Duckerts-Antoine d3dd7b24b0 [IMP] *: adapt tests to Owl search panel
Adaptation of the tests to the changes regarding the refactored search
panel and model.

Part of task 2228968

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23 08:21:10 +00:00
Julien MougenotandMathieu Duckerts-Antoine bb3bc7c9e4 [IMP] *: adapt modules to Owl search panel
Adaptation of the rest of the environment to the changes regarding the
refactored search panel and model.

This commit includes the following changes:

- Since the control panel model is now part of the search model, the
view widget is responsible of its instantiation with the appropriate
API; creating an ActionModel holding the required model extensions.

- The controller is now importing/exporting the state of the entire
search model as well as the current state of the search panel (given
throught its props). Changes have been made to adapt to this behaviour.

- The multiple components linked to the control panel model have been
adapted to reflect the changes brought to it (they will now listen to
the "searchModel" instead of the "controlPanelModel").

- The `test_utils_create` methods have also been adapted to properly
instantiate a searchModel

Part of task 2228968

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23 08:21:10 +00:00
Julien MougenotandMathieu Duckerts-Antoine 7ff2e5822f [IMP] web: Search panel Owl
Refactoring of the search panel and its inner logic to Owl.

The previous search panel widget has been divided in 2 parts:

1. Component
The "Search Panel" component's responsibilities are now to render the
search panel data given by its model, display some rendering logic
(expanded categories, checked groups) and dispatch the events triggered
on it.

2. Model Extension
The "Search Panel Model Extension" holds all the search logic of the
search panel. Its responsibilities are calling the server to update its
data and to provide them to its component and other search extensions.

Part of task 2228968

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23 08:21:10 +00:00
Julien MougenotandMathieu Duckerts-Antoine d6ffbfd479 [IMP] web: Model: extensions registry
Refactoring of the Model class of `model.js` to support multiple
extensions.

The purpose is to build a model having the appropriate modules for a
given situation. For instance, we don't need the control panel model if
we don't have a control panel to start with.

Some logic of the control panel model (which was until now the "main"
search model) has been given to another model extension named
"Search Model Extension" which will synchronize the informations of all
models providing search data (domain, context, etc.).

The model instantiated in the actions/views is now an instance of the
"Action Model" (which directly extends the Model) and is meant to
replace the view model in the long term. It might however need some
improvements to hold such a role (partial interface rendering, etc.).

Part of task 2228968

Co-authored-by: Julien Mougenot <jum@odoo.com>
Co-authored-by: Mathieu Duckerts-Antoine <dam@odoo.com>
2020-07-23 08:21:10 +00:00
Julien Mougenot 5698d1fab9 [IMP] web: add Registry predicate
Before this commit, any value could be added to registries and the class
needed to be overridden to assert that added values would answer to a
certain predicate.

Now, the registry can be instantiated with a given predicate function
that all added value must pass to be registered (default: all values
are accepted).

Existing implentations have been adapted:
- FieldRegistry
- FieldRegistryOwl.
2020-07-23 08:21:09 +00:00
Julien Mougenot ea1741bc74 [REF] web: Registry goes ESNext
Converted the Registry class to an ES6 class with the new framework
standards.
2020-07-23 08:21:09 +00:00
Julien Mougenot 20caa733c6 [IMP] web: TestUtils findItem
Extraction of the findItem function from the control panel test utils
to the dom utils.

This function helps find an item matching a given selector and:
- having the given text as its inner text
OR
- being the item at the given index

An error is thrown if no item matches the predicate
2020-07-23 08:21:09 +00:00
Aaron Bohy 11857adec0 [IMP] web,barcodes: speed up form view rendering
Large form views (containing a lot of fields), e.g. the crm.lead
form view, take a while to render (~ 250 ms). Most form views
contain several (sometimes a lot) invisible fields (invisible="1"),
whose only purpose in the view is to be fetched, so that they can
be used to evalute domains and contexts.

This commit implements a trivial optimization of the form renderer,
which consists in skipping the rendering of those invisible fields.
With this change, we gain ~25% of rendering time on the crm.lead
form view.

closes odoo/odoo#54368

Related: odoo/enterprise#11875
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-07-16 09:19:46 +00:00
Aaron Bohy 12cc5fd0cc [IMP] web: benchmark: revive benchmark suite
The benchmark suite has been broken for a while, by several
refactorings (e.g. use of native Promise). This commit makes it
work again. We do not use it much, but maybe we should as it can
be useful to track changes (mostly in view renderers) that impact
performances.
2020-07-16 07:03:05 +00:00
Romeo Fragomeli e15b5e16f5 [IMP] web: allow to override statusbar's buttons renderer
Related PR odoo/enterprise#10602
Task ID: 2225270
2020-07-22 12:58:46 +00:00
Mohammed Shekha e5ef19b730 [IMP] web: improve explanatory comment in owl_compatibility
after this commit, to update legacy widget from owl component,
one need to override renderWidget and updateWidget instead of
render and update method, this has been changed from commit
https://github.com/odoo/odoo/commit/f2de55322e4d417815e6757517163dd0cff544cc

but comment were still has render and update method to override,
so with this commit update comments as well.

task-2238551

closes odoo/odoo#54763

X-original-commit: 16713aaacbd4f4a25bed435bfa9045fab29a8c53
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
2020-07-22 10:40:14 +00:00
Olivier Dony 2e17c0458c [FIX] web: tests: fix typos in :{last,first}-child
Follow-up of odoo/enterprise#11881, in order to eliminate all similar
typos.

The CSS pseudo-class selectors are spelled `:first-child` and
`:last-child`, and never take any argument, as opposed to
`:nth-child(<nth>)` for example.

Ref: https://developer.mozilla.org/docs/Web/CSS/Pseudo-classes

jQuery doesn't care and matches with or without the `()`, but CSS
engines don't, and now libsass SCSS compilation crashes due to the empty
argument list (cfr. opw-2299465)

Better avoid confusion and fix the typo everywhere.

closes odoo/odoo#54685

X-original-commit: 82244e17339615615535073e6f9e1ddbcf0b57d9
Signed-off-by: Richard Mathot (rim) <rim@openerp.com>
Signed-off-by: Olivier Dony (odo) <odo@openerp.com>
2020-07-17 14:36:08 +00:00
Aaron Bohy 11b1b82c09 [FIX] web: list: do not crush text fields
Before this commit, it might happen that text field columns in list
views were completely crushed, to let space to the other columns.

This commit fixes the issue by preventing text fields from being
wrapped during the ideal column widths computation. Doing so, text
fields will take space they deserve according to their content.
They will then be wrapped if necessary, so that they aren't trimmed,
unlike e.g. char fields.

Task 2275747

closes odoo/odoo#54664

X-original-commit: 5c54111127bd99eedb4e0331aba5a0200feb461c
Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-17 11:58:27 +00:00
Mohammed ShekhaandIpsita Borisagar e69c72f93b [IMP] web: improve tooltip style/design
Improve tooltip style/design to get rid of black background and purple title,
instead design tooltip like popover design, to have tooltip with white
background and light grey title

task-2266829

closes odoo/odoo#53723

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Co-authored-by: Ipsita Borisagar <ibo@odoo.com>
2020-07-17 11:34:21 +00:00
qsm-odoo f16113a06e [IMP] web_editor, *: review the editor design CSS
*: web, mass_mailing, website, website_form, website_sale

New CSS design of the editor (step 1/x).

This work is unfortunately far from perfect but is a first step towards
what we want. In particular, much CSS linked to elements that are meant
to be removed/moved in the upcoming weeks was done in a huge rush but
will thus hopefully be removed/reviewed before the 14.0 release.

As the design is now far more complex including gradients and other
"complex" elements, it was also very difficult to keep a design based on
css-variable so this system was removed, which means that the editor now
appears the same everywhere (backend, frontend, ...). The original goal
of this system was to have an adapted style for backend, frontend and
website visitors. Unfortunately, the current result was a very good
frontend editor design, a not-so-good backend editor design (for mass
mailing at least) and a totally unadapted design for the website
visitors. Making this perfect will be achievable by loading different
assets for those 3 areas and hopefully those assets will only differ by
the values of editor scss variables.

Part of https://github.com/odoo/odoo/pull/53930
task-2157252
2020-07-14 14:43:16 +00:00
Julien Mougenot 55408fd01b [FIX] web: Properly handle default favorite filters
Before this commit, the default active favorite filter was determined by
its ID given by the control panel. These IDs start at index 0, meaning
that if a condition checks for the value of such an ID, it could be
false even though the ID and its filter exists.

Now the indexation starts at 1 to avoid such problems.

closes odoo/odoo#54435

X-original-commit: cfb7bbea1b428a062ee08ca045509d189b1fd1d4
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-14 10:55:59 +00:00
Julien Mougenot 669c2ebaec [IMP] web: improve eval context dates
This commit handles 2 things:

1) the merging of the `py_utils.context()` into the evaluation context
returned by `BasicModel._getEvalContext` to access the same time-related
keys,

2) the addition of 2 new keys into the `py_utils.context` (thus
transmitted to the basic model): `today` (an alias for the already
present `current_date`) and `now` which represents the current date and
time value.

Task 2269697
2020-07-14 09:10:32 +00:00
qsm-odoo b9ad60d5eb [FIX] web_editor, web: fix traceback with drag & drop when no header
Commit [1] introduced the bug by relying on the fact an element with
id=top is in the edited DOM. As the website header can be disabled, this
induced a crash as soon as the header was indeed disabled. Also, the
editor is not meant to edit the website only so we cannot rely at all
on the presence of a #top element.

[1]: https://github.com/odoo/odoo/commit/6df67a28c2f113572acd4a3db19ab6b1bd37e7da

closes odoo/odoo#54409

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-07-13 15:24:07 +00:00
Aaron Bohy b558cb7996 [FIX] web: qweb old inheritance mechanism
Before this commit, defining a extension of a template by using the
combination of directives 't-name' and 't-extend' ignored potential
extensions that could have been defined beforehand.

For instance, let's assume the following templates.
```xml
<t t-name="a">
    <div><span>1</span></div>
</t>
<t t-extend="a">
    <t t-jquery="span" t-operation="replace">
        <span>2</span>
    </t>
</t>
<t t-name="b" t-extend="a">
    <t t-jquery="div" t-operation="append">
        <span>b</span>
    </t>
</t>
```
Rendering template "b" displayed "1b" whereas we would expect "2b".

Moreover, when the extended template is itself an extension of
another template:
```xml
<t t-name="a">
    <div><span>a</span></div>
</t>
<t t-name="b" t-extend="a">
    <t t-jquery="div" t-operation="append">
        <span>b</span>
    </t>
</t>
<t t-name="c" t-extend="b">
    <t t-jquery="div" t-operation="append">
        <span>c</span>
    </t>
</t>
```
Rendering template "a" displayed "a", template "b" displayed "ab",
but template "c" displayed "ac", whereas we would expect "abc".

With this commit, other extensions done to a template are kept when
a new extension is defined. It relies on the templates order, and
takes into account all extensions that have *already* been defined.
This is exactly how the new qweb inheritance mechanism (using
't-inherit' and 't-inherit-mode') behaves.

closes odoo/odoo#54315

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-07-10 11:53:23 +00:00
Aaron Bohy af85bb5e13 [IMP] web,*: do not deploy services in tests
*mail,point_of_sale,web_editor,website

In the tests, required services are deployed for each test
independently. There is no need to have, in additon, all services
deployed globally. Worse, it could conflict and lead to unexpected
results.

This commit ensures services are no longer deployed globally in
tests. It turns the module 'web.env' into a declarative module with
no side-effect, by moving the service deployment to main.js, which
isn't added to the tests page.

Task 2287397

closes odoo/odoo#53817

Signed-off-by: Lucas Perais (lpe) <lpe@odoo.com>
2020-07-13 12:55:07 +00:00
Xavier Morel 350ed97c45 [FIX] web: async operations should not live in init
Support for the "allow exports" group was implemented by checking the
group in init(), which is sync. Move that check over to willStart
instead.

Also add a default mock for user_has_group (makes it so it always
replies that the user doesn't have the group), and override that
specifically for the group we're interested in in the export tests, so
those tests have access to the Export action / option.

closes odoo/odoo#54254

X-original-commit: 30968ac93373990338c23f49e678d272b8e60c6b
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2020-07-09 07:23:04 +00:00
jvm-odoo ccea563abb [FIX] web: fix zoomodoo attachToTarget/dashboard compatible
Issue

    - Install Employees & Dashboard
    - Add employees to kanban
    - Dashboard
    - Hover an employee picture

    There is only the picture visible
    on the page, the remaining space is white.

Cause

    I found several issues.

    1. The pictures are not shown on hover in employees
        But they are on dashboard.

    2. $attach = all `.content` and on dashboard there is
        2 `.content` so the flyout is append 2 times

    3. The move method is trigerred on hover too, it hides
        the flyout if we are not in it. But with attachToTarget
        we are not in it so it's hidden all time.

    4. If everything above is solved, the image is shown but
        not at the correct position because the flyout base
        position is not top 0, left 0

Solution

    1. Reduce the minimum required size to 128px
    2. use closest instead of parents
    3. Don't hide if we have the option attachToTarget
    4. Calculate the flyout offset and replace it correctly
       and set it to position fixed to handle scrolling

OPW-2291493

closes odoo/odoo#54333

X-original-commit: 2c6d692ee40c97d2ae63da64db7623702948407e
Signed-off-by: Nicolas Lempereur (nle) <nle@odoo.com>
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
2020-07-10 13:48:20 +00:00
jvm-odoo 8eb47d8165 [FIX] web: fix optional columns list dropdown
Issue

	- Accounting > General ledger
	- Have 2-3 lines in the table
	  I added filters to have them
	- Toggle optional columns: (...) on the right

	There is an y scroll but you can't scroll
	more than half of the scrollbar.

Cause

	The cause is that the dropdown height is greater
	than the table height.

Solution

	Use data-display: static this way the element doesn't
	scroll with parent scroll and scrolling is working
	as expected on the dropdown

OPW-2291531

closes odoo/odoo#54320

X-original-commit: 9afd7b7ec7461a47ea8d7fbbd4884c24e1af9865
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
2020-07-10 10:48:19 +00:00
qsm-odoo 3783b3855d [FIX] web: remove forgotten console.log
Commit [1] merged a debug console.log. This commit removes it.

[1]: https://github.com/odoo/odoo/commit/6df67a28c2f113572acd4a3db19ab6b1bd37e7da

Part of https://github.com/odoo/odoo/pull/54311

closes odoo/odoo#54311

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-07-10 09:52:30 +00:00
qsm-odoo 7be1429656 [REF] website, *: review how available fonts are defined in scss
*: web, web_editor

Instead of three lists + one map to define font information and user
choices saved as the index of the related fonts in those lists, the
fonts are now stored in an unique map <font-name> -> <data> and the
user choices are saved as the font name. This allow to have a visually
better definition of the fonts and allows to reorder fonts in the UI
without losing user customization (and actually simplify some code).

Unfortunately any user font customization < 14.0 will be lost, but this
is a small price to pay (users can still rechoose the same font in the
editor UI where they will go anyway to discover all the new shiny
features we are introducing there).

Part of https://github.com/odoo/odoo/pull/54065
task-2291398

closes odoo/odoo#54065

Related: odoo/design-themes#269
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-07-09 18:09:59 +00:00
qsm-odoo ec026e76ca [FIX] web: remove test-breaking css property
This is a huge mistery. But this particular `align-items: baseline`
rule, introduced by [1], yields a red runbot ~20% of the time.

As it is not stricly necessary in current master (but necessary if the
font changes which will be the case in the upcoming days), this commit
simply removes the rule temporarily.

[1]: https://github.com/odoo/odoo/commit/94b59b1972e1a18e18dfcd6c2ded495391380b9a

Part of https://github.com/odoo/odoo/pull/54274

closes odoo/odoo#54274

Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-07-09 16:20:22 +00:00
Joseph Caburnay 259cf45346 [FIX] web: trying to create record based on name_create w/o _rec_name
There are orm models that don't have _rec_name defined. The orm doesn't
allow creation of record via name_create if _rec_name is not defined in
the model. This commit considers this fact, such that if name_create
returns false, we don't proceed on displaying the non-existing record.

Note: _rec_name defaults to 'name' if not specified so only few models
don't have _rec_name.

closes odoo/odoo#54270

Task-id: 2285036
X-original-commit: 676c2b8e4fdf7347d44bc5afb7ca51d39338a527
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-09 12:43:36 +00:00
Aaron Bohy 9d99e75453 [FIX] web: list: don't squeeze button columns
Adjacent buttons are not displayed in a single column. When the
table overflows, we try to squeeze largest columns to make it fit
into its container (in this case, text may be clipped and an
ellipsis is displayed). Button columns didn't get away from this.

As a consequence, now that a cell may contain several buttons,
some of them may be clipped and replaced by the ellipsis, which
isn't what we want for buttons.

This commit removes the button columns from the list of columns
to squeeze, so we let the browser reduce them as much as it can,
and we keep them as they are.

Task 2282470

closes odoo/odoo#54258

X-original-commit: e00960daa3ed3d1fd3a7572b2acedd3d2fb0448e
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-09 08:54:28 +00:00
Laurent Stukkens (LTU) 6df67a28c2 [REF] web_editor,web: reuse the autoscroll on drag feature
Prior to this commit, the autoscroll on drag feature was accessible and only
used in the web_editor application.

After this commit, the autoscroll on drag feature will be available in the
web application and has been refactored in order to allow its usage
in other application (as for the sign application).

task-2280965

closes odoo/odoo#54072

Related: odoo/enterprise#11656
Signed-off-by: Yannick Tivisse (yti) <yti@odoo.com>
2020-07-08 12:13:33 +00:00
jvm-odoo e4235a8d16 [FIX] web: fix zoomodoo flyout width
Issue

	- Install eCommerce
	- Modify a product image with one which
	  has more than 1024px width/height to
	  enable zoom (I used: https://bit.ly/2VETQZS)
	- Go on the website preview & hover the image

	Depending on the screen size, a part of the
	flyout is hidden because of overflow-x
	if you want to see it, you should scroll
	right width right arrow key.

Cause

	The flyout has 100% width and is put
	right (position absolute, left: 100%)

Solution

	To avoid this error on all screen size,
	the solution is to compute the max-width
	of the flyout depending on the available
	space on the right.

OPW-2283648

closes odoo/odoo#54222

X-original-commit: c89b4c25ed92542f6fd0279cf3a9e4ef1bac9fa5
Signed-off-by: Jason Van Malder (jvm) <jvm@odoo.com>
2020-07-08 11:39:09 +00:00
Aaron Bohy e55ee0bb1b [FIX] web: kanban: drag column with sample data
Before this commit, in a grouped kanban view with sample data (e.g.
crm.lead), one could toggle the 'settings' dropdown menu of a
group, and then drag&drop the group by clicking on the muted "Fold"
item in the dropdown.

After this commit, dragging a column is only possible by clicking
on the column title (but not on the 'config' or '+' icons, nor the
config dropdown).

Task 2290197

closes odoo/odoo#54179

X-original-commit: 58c38a024c96eba3469c142a8422b7bd0ab54ea4
Signed-off-by: Mathieu Duckerts-Antoine <Polymorphe57@users.noreply.github.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-07 10:14:54 +00:00
Julien Mougenot cd1d339763 [FIX] web: Make sample server tests deterministic
Before this commit, there were a few tests in the "sample server" suite
that asserted that every group resulting of a "read_group" would contain
at least one record, while there was actually a slight chance of it not
happening.

Now, the sample server used in the tests has been rendered deterministic
and these kind of issues are completely avoided.

closes odoo/odoo#54164

X-original-commit: a6d32ff46558b68ce3f19458f29c311ee5c658fd
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-07-07 08:33:28 +00:00
Hardik Prajapati 8e91b0ad3b [FIX] web: properly display boolean fields in kanban
Before this commit, boolean fields (without widget="boolean") in
kanban views were displayed as [Object object], because when no
widget is specified, we display the (textual) formatted value of
the field. However, the boolean formatter returns by default a
string encoding an html checkbox.

This commit passes the correct option to force a string formatting,
so it now displays "True" or "False". Moreover, this commit
uniformizes formatter options for that purpose, as another option
had been recently introduced for monetary field.

Note that those options should not be necessary, as formatters
should always return text values (no html). But this is a larger
change, that we might do in the future.

Task 2280394

closes odoo/odoo#53937

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-07 09:17:37 +00:00
qsm-odoo 94b59b1972 [FIX] web, web_editor, *: review chess-like bg for transparency preview
*: website

The style to achieve the chess-like bg result was duplicated at many
places. The 'web' app was also actually using an image from the
'web_editor' app (we can live with it in stable as web_editor always
comes with web in auto_install but this was still a mistake).

closes odoo/odoo#54154

Also: fix some layout issue in the colorpicker widget.
Signed-off-by: Quentin Smetz (qsm) <qsm@odoo.com>
2020-07-06 15:47:06 +00:00
Xavier ALT 2479da0176 [FIX] web: do no try to render filters referencing access restricted fields
In case a field is limited to specific groups on the model, those fields
are discarded from `fields_view_get()` but can still be referenced by some
filters on the search view causing a traceback (see #53797)

Model:

```python

class MyModel(models.Model):

  my_field = fields.Char(groups='base.group_system')
```

Search views:

```xml
<search string="My Model">
    <filter name="group_myfield" context="{'group_by': 'my_field'}"/>
</search>
```

This commit ensure those filter are correctly discarded.

OPW-2284621

closes odoo/odoo#54112

X-original-commit: b3452a1863c36290b13e16161e2703d9a3737f0e
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-06 09:40:09 +00:00
Aaron Bohy 2e6ec66022 [FIX] web: editable list: correctly edit in readonly
Some widgets allow the edition in readonly (e.g. boolean_toggle,
priority...). In this case, the changed value is saved directly.
Before this commit, this didn't work in (main) list views: the
widget was updated with the new value, but it wasn't saved in db,
so the change was lost at reload.

This was due to the list controller not being correctly aware of
its mode ('edit' or 'readonly'), on which the basic controller
relies to determine whether a change must be saved directly or
not.

With this commit, a list is always in 'readonly', except when a
row is being edited, in which case it is in 'edit'.

Issue reported on task 2288963

closes odoo/odoo#54075

X-original-commit: 64e55cb42163643386740fbd23d710f64033b2ae
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-03 16:41:56 +00:00
Pierre Paridans c9ba9dc94b [FIX] web: TempusDominus unsafe access to config
During TempusDominus autobinding to fields matching its default classes
(like `.datetimepicker-input` used by our DatePicker widget) and no
config was previously provided to the library (like when we disable it
on mobile), an unsafe access to the config's `_options` property results
into an error as the config is `undefined`.

This commit fixes it by first checking for config existence before
attempting to access its property.

Note: as this is a fix inside a library, a comment is added to make
clear. Also similar fixes where already done in the same file.

opw-2242880

X-original-commit: fe1f7c3e361bbd249b4025a464c546f478b6e989
2020-07-03 15:54:08 +00:00
Pierre Paridans eba83eddd4 [FIX] web: extract date picker's input setter
This commit extracts the DatePicker widget's input setter to allow
overriding it and preventing from calling the `datetimepicker` lib when
not initialized (like on mobile).

Note: this change will be used on enterprise.

opw-2242880

X-original-commit: c0413868a8728500c52b7e1dd9a0035f90b654fd
2020-07-03 15:54:08 +00:00
Julien Mougenot ff6263dd3f [FIX] web: Support widgets in search view
Since the refactor of the control panel, support of "widgets" attributes
in the search view archs has been inadvertently dropped.

Now, they are once again supported.

Task 2061795

closes odoo/odoo#54066

X-original-commit: f33b0bc7a93e60bd0ed00b40d7459225ec0b749a
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Signed-off-by: Julien Mougenot (jum) <jum@odoo.com>
2020-07-03 15:48:42 +00:00
Mathieu Duckerts-Antoine c997700181 [FIX] web: correctly reload categories
In the search panel, the categories, i.e. fields select="one",
with attributes expand="0", and enable_counters="0" (defaults) were not
correctly updated when the domain outside of the search panel was
updated. This is no longer the case.

closes odoo/odoo#54040

X-original-commit: 99e9cac63f5034c1ba2154779fe82170dd656236
Related: odoo/enterprise#11642
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2020-07-03 10:27:40 +00:00