QWeb's get_template:
* remove the fallback that returned the entire result of IRQweb's
`load` if no match was made between the t-name of the first children
of this result and the template to render
* When get_template receives an etree, directly return it and don't
try to find a matching t-name in it. The loader was not called but
a matching was trying to be made, now that we removed the fallback
a lot of tests that were relying on passing etree didn't work
anymore.
IRQweb's load now return consistently the full result of IrUiView's
`read_templace` when asked to load an id or an xmlid. We make a special
case to patch the result if asked with an id or with a child view so
that the "t-name" of one of the first children of what we return is
always what QWeb is looking for.
The website `default_lang_id` was not required,
while the algorithm choosing the website language
expects it to be required.
This solves the below issue, when your browser language is en_US:
- add a second language to the website (e.g. fr_BE or es_VE),
- in the website settings, remove English from the languages
- in the website settings, unset the default language
- try to go on the website
You will have a crash:
```
File "/home/odoo/src/odoo/saas-11/addons/website/models/ir_http.py", line 193, in _dispatch
resp.set_cookie('website_lang', request.lang)
File "/usr/lib/python2.7/dist-packages/werkzeug/wrappers.py", line 992, in set_cookie
self.charset))
File "/usr/lib/python2.7/dist-packages/werkzeug/http.py", line 905, in dump_cookie
value = to_bytes(value, charset)
File "/usr/lib/python2.7/dist-packages/werkzeug/_compat.py", line 106, in to_bytes
raise TypeError('Expected bytes')
TypeError: Expected bytes
```
This is because the `request.lang` is set to `False`
because of the below algorithm in `ir_http.py`:
```
nearest_lang = not func and self.get_nearest_lang(path[1])
url_lang = nearest_lang and path[1]
preferred_lang = ((cook_lang if cook_lang in langs else False)
or self.get_nearest_lang(request.lang)
or request.website.default_lang_code)
is_a_bot = self.is_a_bot()
request.lang = request.context['lang'] = nearest_lang or preferred_lang
```
`nearest_lang` is `False`, because there is no nearest language
available for the browser lang (`en_US`)
`cook_lang` is `False` for users who never went on the website
`request.website.default_lang_code`, which is the last feedback,
is also `False` because you removed the default language
in the website settings.
opw-695621
When on a page event for example, when the user choose "Edit menu",
a modal is first opened to ask which menu to edit (the top menu or
the event menu ?).
This feature was broken with a web_editor refactoring. Indeed, the
dialog was converted to use the standard dialog class but the
widget was still inserted in the DOM thanks to "appendTo" instead of
the modal built-in "open" method, preventing it to be properly opened.
Previous implementation did not allow the user to search for pages 'name'
but only on the slugified name.
Now we slugify the needles before to find a match.
1. Create a new page: 'The new'
2. add a link on your website and try to find this page...
- Before this commit, the only ways was to type 'the-new'
- After this commit 'the new', 'The new', 'The-new', ... will match
This commit closes#10771
Depending on the context, the s_parallax snippet content was not
showing after save. This was because the HTML is prettyfied on save
and so spaces are inserted around the .oe_structure, making it break
over the next line.
This commit removed the vertical middle alignment of the .oe_structure
block (so back like it was before v10.0), allowing to fix the problem.
Add widget to specify that this module is an enterprise module.
Fix layout (missing margin between last label and tag enterprise)
Fix behaviour widget_radio, popup was never opened because we
compare the str value with an int value.
This commit is related to #14241
Since this snippet comes with a bg image, using 'text-muted' here
caused undesired result. The text may be invisible or difficult to read.
Moreover adding or remove this class is not natively supported by the
editor.
Note: this is not a full stable fix as it requires an update to be
deployed but the fix is not critical and may so be ignored without
breaking anything.
Wrap the text content of s_button and s_share snippets so that it can
be edited easily (on chrome, the icons which are next to the next give
the user a hard time).
Note: this is not a full stable fix as it requires an update to be
deployed but the fix is not critical and may so be ignored without
breaking anything.
The default background-size for the s_big_message snippet was not
set to "cover" as the "oe_img_bg" class is missing from the snippet
structure. As this change is not critical but should not be merged
in a stable version, this change will be done in master and this
10.0 fix will only force the "cover" value for the default bg thanks
to LESS.
The s_parallax snippet was refactored in 10.0 but this refactoring
broke some snippet extensions such as the s_parallax_slider.
This made the texts disappear once the snippet was resized.