odoo/addons/website/models
Denis Ledoux 0105cbbcf9 [FIX] website: make website default language required
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
2016-12-01 11:37:03 +01:00
..
__init__.py [IMP] mail,website: improve update_notification 2014-09-15 18:53:22 +02:00
ir_actions.py [FIX] ir_actions in website: allow to compute website_path even when creating a new server action (avoid crash then) 2014-08-08 11:43:28 +02:00
ir_http.py [FIX] website: prefer to get exact language 2016-04-06 15:31:58 +02:00
ir_qweb.py [FIX] qweb: escape alt-field properly in image widget 2016-04-15 09:51:19 +02:00
ir_ui_view.py [FIX] website,ir_qweb: prevent inherit_branding for assets 2015-11-23 17:01:03 +01:00
res_config.py [FIX] website: make website default language required 2016-12-01 11:37:03 +01:00
test_models.py [IMP] website: disable translation exports for test models 2014-07-30 13:24:39 +02:00
update.py [IMP] mail,website: improve update_notification 2014-09-15 18:53:22 +02:00
website.py [FIX] website: make website default language required 2016-12-01 11:37:03 +01:00