Impossible to access Odoo 8 with Google Chrome 50 (50.0.2661.75 or lower) #11629

Closed
cedric190985 opened this Issue Apr 7, 2016 · 58 comments

Comments

Projects
None yet
@cedric190985

Impacted versions:
Odoo V8

Steps to reproduce:
1 Use Chrome 50 Beta
2 Go to http://runbot.odoo.com/runbot
3 Click to 8.0 on the icon blue

Current behavior:
Blank Page

Expected behavior:
A data is display

Video/Screenshot link (optional):

@bradhaywood

This comment has been minimized.

Show comment
Hide comment
@bradhaywood

bradhaywood Apr 11, 2016

Running Chrome 50 on ChromeOS and having a similar problem. Once logged in, I can see the menu at the top, but the page content is actually blank. Only started happening once I upgraded from 49 to 50.

Running Chrome 50 on ChromeOS and having a similar problem. Once logged in, I can see the menu at the top, but the page content is actually blank. Only started happening once I upgraded from 49 to 50.

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 14, 2016

Same problem with Chrome 50.

Works fine with Chrome 49.

Same problem with Chrome 50.

Works fine with Chrome 49.

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 14, 2016

Same problem with Odoo 9

Same problem with Odoo 9

@Julien-BARRAU

This comment has been minimized.

Show comment
Hide comment
@Julien-BARRAU

Julien-BARRAU Apr 14, 2016

Update automatic today on Chrome : Version 50.0.2661.75 m

Odoo v8 is not working anymore !

We have installed Firefox for now

Update automatic today on Chrome : Version 50.0.2661.75 m

Odoo v8 is not working anymore !

We have installed Firefox for now

@qndi

This comment has been minimized.

Show comment
Hide comment
@qndi

qndi Apr 14, 2016

Some problem here.
It is strange that there is not more information and communication about this issue, since it seams to effect every Odoo User on V8 who is running v8 with the newest Google Chrome Update.

qndi commented Apr 14, 2016

Some problem here.
It is strange that there is not more information and communication about this issue, since it seams to effect every Odoo User on V8 who is running v8 with the newest Google Chrome Update.

@takis

This comment has been minimized.

Show comment
Hide comment
@takis

takis Apr 14, 2016

Contributor

Same problem here. I'd reported it to Google months ago (as I also use both Chrome Canary and daily builds) using the in-browser "Report an issue..." menu, but never got any reply.

Contributor

takis commented Apr 14, 2016

Same problem here. I'd reported it to Google months ago (as I also use both Chrome Canary and daily builds) using the in-browser "Report an issue..." menu, but never got any reply.

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 14, 2016

Same Problem,

Odoo 8 and 9 is useless in Chrome 50+

Fix the issue ODOO SA!!

On Thu, Apr 14, 2016 at 4:58 AM, Panagiotis H.M. Issaris <
notifications@github.com> wrote:

Same problem here. I'd reported it to Google months ago (as I also use
both Chrome Canary and daily builds) using the in-browser "Report an
issue..." menu, but never got any reply.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

Same Problem,

Odoo 8 and 9 is useless in Chrome 50+

Fix the issue ODOO SA!!

On Thu, Apr 14, 2016 at 4:58 AM, Panagiotis H.M. Issaris <
notifications@github.com> wrote:

Same problem here. I'd reported it to Google months ago (as I also use
both Chrome Canary and daily builds) using the in-browser "Report an
issue..." menu, but never got any reply.


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

sle-odoo added a commit to odoo-dev/odoo that referenced this issue Apr 14, 2016

[FIX] web: fix layout issue in Chrome 50
The height was not distributed anymore to the children of a `table-row`
element if they are not themselves `table-cell` elements.

Fixes #11629

@sle-odoo sle-odoo closed this Apr 14, 2016

@qndi

This comment has been minimized.

Show comment
Hide comment
@qndi

qndi Apr 14, 2016

I tried you apply the patch on saas-6 without success. Do you also have a patch for that version?

qndi commented Apr 14, 2016

I tried you apply the patch on saas-6 without success. Do you also have a patch for that version?

@sle-odoo

This comment has been minimized.

Show comment
Hide comment
@sle-odoo

sle-odoo Apr 14, 2016

Contributor

The issue doesn't appear on the last saas-6 on runbot. In this version, the scrolling parts of the webclient are using flex and not table layouts. Are you sure it's related?

Contributor

sle-odoo commented Apr 14, 2016

The issue doesn't appear on the last saas-6 on runbot. In this version, the scrolling parts of the webclient are using flex and not table layouts. Are you sure it's related?

@agcopley

This comment has been minimized.

Show comment
Hide comment
@agcopley

agcopley Apr 14, 2016

The fixes above do not address the issue in the POS. A blank screen is still showing

The fixes above do not address the issue in the POS. A blank screen is still showing

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 14, 2016

HELP!!

Odoo8 and Odoo9 pos doenst work anymore!!

http://prnt.sc/as9q4t

Emergency!!

HELP!!

Odoo8 and Odoo9 pos doenst work anymore!!

http://prnt.sc/as9q4t

Emergency!!

@spadae22

This comment has been minimized.

Show comment
Hide comment
@spadae22

spadae22 Apr 14, 2016

Contributor

We are seeing many issue on odoo v8. I updated the patch but we see things not lining up.
screen shot 2016-04-14 at 3 25 53 pm

Contributor

spadae22 commented Apr 14, 2016

We are seeing many issue on odoo v8. I updated the patch but we see things not lining up.
screen shot 2016-04-14 at 3 25 53 pm

@lmignon

This comment has been minimized.

Show comment
Hide comment
@lmignon

lmignon Apr 15, 2016

Contributor

@Yenthe666 This fix breaks IE 11.0.9600.18.282. Once applied, the application no more works on IE. Only the main menu is displayed.

Contributor

lmignon commented Apr 15, 2016

@Yenthe666 This fix breaks IE 11.0.9600.18.282. Once applied, the application no more works on IE. Only the main menu is displayed.

@Yenthe666

This comment has been minimized.

Show comment
Hide comment
@Yenthe666

Yenthe666 Apr 15, 2016

Contributor

@lmignon thanks for the heads-up. Looks like Odoo has quite some CSS issues to fix now!

Contributor

Yenthe666 commented Apr 15, 2016

@lmignon thanks for the heads-up. Looks like Odoo has quite some CSS issues to fix now!

@sle-odoo sle-odoo reopened this Apr 15, 2016

@sle-odoo

This comment has been minimized.

Show comment
Hide comment
@sle-odoo

sle-odoo Apr 15, 2016

Contributor

@spadae22 this is not related. let's kee focus on the scrollable div not so scrollable according to different browsers..

@lmignon arg you are right. i tested the patched only on ie9 where it is working as expected. note that the layout is broken differently in ie10..
Edit: in ie9 the content appears but the menu and the content are not independently scrollable. i'm reverting the fix.

@agcopley i confirm that the point of sale is also broken. looks linked to table-row, table-cell and distribution of 100% height too.

Contributor

sle-odoo commented Apr 15, 2016

@spadae22 this is not related. let's kee focus on the scrollable div not so scrollable according to different browsers..

@lmignon arg you are right. i tested the patched only on ie9 where it is working as expected. note that the layout is broken differently in ie10..
Edit: in ie9 the content appears but the menu and the content are not independently scrollable. i'm reverting the fix.

@agcopley i confirm that the point of sale is also broken. looks linked to table-row, table-cell and distribution of 100% height too.

@sle-odoo

This comment has been minimized.

Show comment
Hide comment
@sle-odoo

sle-odoo Apr 15, 2016

Contributor

There are issues in the Chromium bug tracker here and there.

Contributor

sle-odoo commented Apr 15, 2016

There are issues in the Chromium bug tracker here and there.

@wtaferner

This comment has been minimized.

Show comment
Hide comment
@wtaferner

wtaferner Apr 15, 2016

Contributor

@sle-odoo
No official confirmation from any Google employee yet, right? But it really seems that Chrome did a major fail on the update...unless they did not implement any official standard which was ignored by all browsers until now and they want to force the whole net to adapt ;-)

Contributor

wtaferner commented Apr 15, 2016

@sle-odoo
No official confirmation from any Google employee yet, right? But it really seems that Chrome did a major fail on the update...unless they did not implement any official standard which was ignored by all browsers until now and they want to force the whole net to adapt ;-)

@soyharso

This comment has been minimized.

Show comment
Hide comment
@soyharso

soyharso Apr 16, 2016

Same here, problems with Canary wit Odoo8 portal too, after only update Chrome to versión

Same here, problems with Canary wit Odoo8 portal too, after only update Chrome to versión

@aek

This comment has been minimized.

Show comment
Hide comment
@aek

aek Apr 17, 2016

I solve it using this quick fix, hope that helps to find the complete solution. I add this css rules in one of my modules and make it works mostly everything. Just the database manager view menu continue hide because that view works without a database so no modules are loaded and for that it works by adding the css rules on the base.css of the web module(I tried using a module with a server_wide_modules or --load options but no luck).
The css rules are:

.openerp .oe_leftbar > div > div > div {
    min-height: 455px;
}
.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div{
    min-height: 532px;
}

This it's tested on Odoo 8, the same should apply to Odoo 9 or others versions. This solution of course could be improved for anyone with more deep knowledge of css than me but it works. I hope this guide to the final solution

aek commented Apr 17, 2016

I solve it using this quick fix, hope that helps to find the complete solution. I add this css rules in one of my modules and make it works mostly everything. Just the database manager view menu continue hide because that view works without a database so no modules are loaded and for that it works by adding the css rules on the base.css of the web module(I tried using a module with a server_wide_modules or --load options but no luck).
The css rules are:

.openerp .oe_leftbar > div > div > div {
    min-height: 455px;
}
.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div{
    min-height: 532px;
}

This it's tested on Odoo 8, the same should apply to Odoo 9 or others versions. This solution of course could be improved for anyone with more deep knowledge of css than me but it works. I hope this guide to the final solution

@hardikns

This comment has been minimized.

Show comment
Hide comment
@hardikns

hardikns Apr 17, 2016

I think this would be a cleaner solution. Not sure if it breaks in IE or Safari.


.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div{
   display:table-cell;
}

.openerp .oe_leftbar > div > div > div {
    display:table-cell;
}

Can something similar be included in the base css of the web?

I think this would be a cleaner solution. Not sure if it breaks in IE or Safari.


.openerp .oe_application > div > .oe_view_manager > .oe_view_manager_wrapper > div{
   display:table-cell;
}

.openerp .oe_leftbar > div > div > div {
    display:table-cell;
}

Can something similar be included in the base css of the web?

@aek

This comment has been minimized.

Show comment
Hide comment
@aek

aek Apr 17, 2016

That works too!!

aek commented Apr 17, 2016

That works too!!

@sle-odoo

This comment has been minimized.

Show comment
Hide comment
@sle-odoo

sle-odoo Apr 17, 2016

Contributor

@hardikns please look at the patch that was reverted. this works fine in chrome 50 but breaks internet explore 9, 10 and 11.

@aek not tested but: you set a min height because the height is not properly passed from the parents, so indeed you get a scrollable zone but not from below the bottom searchview to the bottom of the screen.

@wtaferner while looking at the but reports i saw this one and the author of the patch said: "It got us closer to the css spec". Reference of this commit, The change does not directly apply to our breakage but maybe it's a side effect?

Contributor

sle-odoo commented Apr 17, 2016

@hardikns please look at the patch that was reverted. this works fine in chrome 50 but breaks internet explore 9, 10 and 11.

@aek not tested but: you set a min height because the height is not properly passed from the parents, so indeed you get a scrollable zone but not from below the bottom searchview to the bottom of the screen.

@wtaferner while looking at the but reports i saw this one and the author of the patch said: "It got us closer to the css spec". Reference of this commit, The change does not directly apply to our breakage but maybe it's a side effect?

@wtaferner

This comment has been minimized.

Show comment
Hide comment
@wtaferner

wtaferner Apr 17, 2016

Contributor

@sle-odoo
yep, I saw this one too and had the same conclusion as you had...it is a really bad situation and I would suggest to implement a workaround for Chrome (remembers me a little bit on IE6-8 times whereas I have more trust in Google) which can be reverted later when Google Devs might consider and "repair".
In case they insist on their view about the specs which might be correct, Odoo can improve their implementation anyway.
It is anyway a blocking issue which needs to be tackled real quick...I informed my customers not to update to version 50 and use Firefox as a fallback but this is something users normally do not understand and tend to have irrational conclusions about browsers and/or the software in use.

Contributor

wtaferner commented Apr 17, 2016

@sle-odoo
yep, I saw this one too and had the same conclusion as you had...it is a really bad situation and I would suggest to implement a workaround for Chrome (remembers me a little bit on IE6-8 times whereas I have more trust in Google) which can be reverted later when Google Devs might consider and "repair".
In case they insist on their view about the specs which might be correct, Odoo can improve their implementation anyway.
It is anyway a blocking issue which needs to be tackled real quick...I informed my customers not to update to version 50 and use Firefox as a fallback but this is something users normally do not understand and tend to have irrational conclusions about browsers and/or the software in use.

@aek

This comment has been minimized.

Show comment
Hide comment
@aek

aek Apr 17, 2016

@sle-odoo Indeed I don't get into the bottom of the screen but could be the start for a way to get it calculated using something like resize of the screen and onload events to calculate the height to the bottom of the screen. I just seek for a quick way to get it work because my customers that have been updated to Chrome 50 see nothing when open their Odoo instance

aek commented Apr 17, 2016

@sle-odoo Indeed I don't get into the bottom of the screen but could be the start for a way to get it calculated using something like resize of the screen and onload events to calculate the height to the bottom of the screen. I just seek for a quick way to get it work because my customers that have been updated to Chrome 50 see nothing when open their Odoo instance

@thomich

This comment has been minimized.

Show comment
Hide comment
@thomich

thomich Apr 17, 2016

for customers that use chrome, use this fix in a own module: 00ead29

if ie is used at customer, use firefox, chromium or vivaldi...

thomich commented Apr 17, 2016

for customers that use chrome, use this fix in a own module: 00ead29

if ie is used at customer, use firefox, chromium or vivaldi...

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 17, 2016

What about POS?? pos in Odoo8 and Odoo9 still broken

On Sun, Apr 17, 2016 at 5:03 AM, Thomas Winteler notifications@github.com
wrote:

for customers that use chrome, use this fix in a own module: 00ead29
00ead29

if ie is used at customer, use firefox, chromium or vivaldi...


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

What about POS?? pos in Odoo8 and Odoo9 still broken

On Sun, Apr 17, 2016 at 5:03 AM, Thomas Winteler notifications@github.com
wrote:

for customers that use chrome, use this fix in a own module: 00ead29
00ead29

if ie is used at customer, use firefox, chromium or vivaldi...


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

@aek

This comment has been minimized.

Show comment
Hide comment
@aek

aek Apr 17, 2016

I test this css rules using my approach with pos and works:

.pos .subwindow .subwindow-container-fix {
    min-height: 186px;
}
.pos .subwindow .subwindow-container-fix.screens{
    min-height: 608px;
}
.pos .screen .content-cell .content-container {
    min-height: 559px;
}

To load those in a custom module you will need something like this:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <template id="assets_backend" name="solt_web assets" inherit_id="point_of_sale.index">
            <xpath expr="//head" position="inside">
                <link rel="stylesheet" href="/solt_pos/static/src/css/styles.css"/>
            </xpath>
        </template>
    </data>
</openerp>

Otherwise it will not load your css

aek commented Apr 17, 2016

I test this css rules using my approach with pos and works:

.pos .subwindow .subwindow-container-fix {
    min-height: 186px;
}
.pos .subwindow .subwindow-container-fix.screens{
    min-height: 608px;
}
.pos .screen .content-cell .content-container {
    min-height: 559px;
}

To load those in a custom module you will need something like this:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
    <data>
        <template id="assets_backend" name="solt_web assets" inherit_id="point_of_sale.index">
            <xpath expr="//head" position="inside">
                <link rel="stylesheet" href="/solt_pos/static/src/css/styles.css"/>
            </xpath>
        </template>
    </data>
</openerp>

Otherwise it will not load your css

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 17, 2016

Works in POS, Odoo9 and Odoo8

Thank bro!

On Sun, Apr 17, 2016 at 9:30 AM, Ing. Axel Mendoza Pupo <
notifications@github.com> wrote:

I test this css rules using my approach with pos and works:

.pos .subwindow .subwindow-container-fix {
min-height: 186px;
}.pos .subwindow .subwindow-container-fix.screens{
min-height: 608px;
}.pos .screen .content-cell .content-container {
min-height: 559px;
}

To load those in a custom module you will need something like this:

Otherwise it will not load your css


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

Works in POS, Odoo9 and Odoo8

Thank bro!

On Sun, Apr 17, 2016 at 9:30 AM, Ing. Axel Mendoza Pupo <
notifications@github.com> wrote:

I test this css rules using my approach with pos and works:

.pos .subwindow .subwindow-container-fix {
min-height: 186px;
}.pos .subwindow .subwindow-container-fix.screens{
min-height: 608px;
}.pos .screen .content-cell .content-container {
min-height: 559px;
}

To load those in a custom module you will need something like this:

Otherwise it will not load your css


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

@Yenthe666

This comment has been minimized.

Show comment
Hide comment
@Yenthe666

Yenthe666 Apr 18, 2016

Contributor

@sle-odoo any status update on this? In Odoo 8 there are a LOT of issues with Odoo V8.
The POS is rendered useless and almost all views are completely broken. Example:
image

Contributor

Yenthe666 commented Apr 18, 2016

@sle-odoo any status update on this? In Odoo 8 there are a LOT of issues with Odoo V8.
The POS is rendered useless and almost all views are completely broken. Example:
image

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 18, 2016

Contributor

@Yenthe666 yes we're actively working on it. In the mean time please have customers use an older version of Chrome, or temporarily switch to Firefox/IE or apply patch 00ead29 (if no IE users).
Patches for POS and web client are both upcoming, with compatibility shims for IE.

Contributor

odony commented Apr 18, 2016

@Yenthe666 yes we're actively working on it. In the mean time please have customers use an older version of Chrome, or temporarily switch to Firefox/IE or apply patch 00ead29 (if no IE users).
Patches for POS and web client are both upcoming, with compatibility shims for IE.

sle-odoo added a commit that referenced this issue Apr 18, 2016

[FIX] web: fix layout issue in Chrome 50
A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a9919
Fixes #11629
@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 18, 2016

Contributor

The issue should now be fixed in web client 8.0 with patch f992c8e.
As for the POS, it is actually broken in Chrome 50 in all versions: 7.0, 8.0, 9.0! Different fixes are being tested at the moment by @jorenvo.

Note: it doesn't seem the Chrome developers realized the complete side-effects of their change. They apparently tried to mimic Firefox, but Firefox handles the bug they were trying to fix without breaking this classical layout, used by Odoo and many other web apps.

Contributor

odony commented Apr 18, 2016

The issue should now be fixed in web client 8.0 with patch f992c8e.
As for the POS, it is actually broken in Chrome 50 in all versions: 7.0, 8.0, 9.0! Different fixes are being tested at the moment by @jorenvo.

Note: it doesn't seem the Chrome developers realized the complete side-effects of their change. They apparently tried to mimic Firefox, but Firefox handles the bug they were trying to fix without breaking this classical layout, used by Odoo and many other web apps.

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 18, 2016

Contributor

note: upstream issue for tracking the regression apparently introduced by this commit

Contributor

odony commented Apr 18, 2016

note: upstream issue for tracking the regression apparently introduced by this commit

@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 18, 2016

Contributor

v7 POS fixed at 09a9e4a. Fixes for other versions are slightly more complicated and will follow shortly.

Contributor

jorenvo commented Apr 18, 2016

v7 POS fixed at 09a9e4a. Fixes for other versions are slightly more complicated and will follow shortly.

@mariuszmizgier

This comment has been minimized.

Show comment
Hide comment
@mariuszmizgier

mariuszmizgier Apr 18, 2016

Contributor

Not sure that whether it was already spotted, but now new message window is broken - screenshot attached.

image

Contributor

mariuszmizgier commented Apr 18, 2016

Not sure that whether it was already spotted, but now new message window is broken - screenshot attached.

image

@phoenixsampras

This comment has been minimized.

Show comment
Hide comment
@phoenixsampras

phoenixsampras Apr 18, 2016

same here!! help!!

On Mon, Apr 18, 2016 at 3:56 PM, Mariusz Mizgier notifications@github.com
wrote:

Not sure that whether it was already spotted, but now new message window
is broken - screenshot attached.

[image: image]
https://cloud.githubusercontent.com/assets/7665343/14617852/31902490-05b0-11e6-96df-b9d84f99b80f.png


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

same here!! help!!

On Mon, Apr 18, 2016 at 3:56 PM, Mariusz Mizgier notifications@github.com
wrote:

Not sure that whether it was already spotted, but now new message window
is broken - screenshot attached.

[image: image]
https://cloud.githubusercontent.com/assets/7665343/14617852/31902490-05b0-11e6-96df-b9d84f99b80f.png


You are receiving this because you commented.
Reply to this email directly or view it on GitHub
#11629 (comment)

adrienpeiffer added a commit to acsone/odoo that referenced this issue Apr 19, 2016

[FIX] web: fix layout issue in Chrome 50
The height was not distributed anymore to the children of a `table-row`
element if they are not themselves `table-cell` elements.

Fixes #11629

adrienpeiffer added a commit to acsone/odoo that referenced this issue Apr 19, 2016

[FIX] web: fix layout issue in Chrome 50
A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a9919
Fixes #11629
@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 19, 2016

Contributor

v8 POS fixed at 9fa53b7. Fixes for later versions will follow shortly.

Contributor

jorenvo commented Apr 19, 2016

v8 POS fixed at 9fa53b7. Fixes for later versions will follow shortly.

@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 19, 2016

Contributor

saas-6 POS fixed at 77dae4c. Fixes for later versions will follow shortly.

Contributor

jorenvo commented Apr 19, 2016

saas-6 POS fixed at 77dae4c. Fixes for later versions will follow shortly.

@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 19, 2016

Contributor

v9 POS fixed at 4ff34a9. This patch will forward-port cleanly to all later versions of Odoo.

Contributor

jorenvo commented Apr 19, 2016

v9 POS fixed at 4ff34a9. This patch will forward-port cleanly to all later versions of Odoo.

hhgabelgaard added a commit to steingabelgaard/odoo that referenced this issue Apr 19, 2016

[FIX] web: fix layout issue in Chrome 50
A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a9919
Fixes #11629

@KangOl KangOl closed this in 00ead29 Apr 19, 2016

@thomich

This comment has been minimized.

Show comment
Hide comment
@thomich

thomich Apr 19, 2016

there are more layout issues with this chrome 50 update.. and i think there are a lot of odoo layout issues following.. here one of it:

sale
selection_002

purchase
selection_003

there will be more views... eg. more in purchase, warehouse,...

so, it's not really fixed for us...

thomich commented Apr 19, 2016

there are more layout issues with this chrome 50 update.. and i think there are a lot of odoo layout issues following.. here one of it:

sale
selection_002

purchase
selection_003

there will be more views... eg. more in purchase, warehouse,...

so, it's not really fixed for us...

@sle-odoo sle-odoo reopened this Apr 19, 2016

odony added a commit to odoo-dev/odoo that referenced this issue Apr 19, 2016

[FIX] web: fix layout issue in Chrome 50 (again)
Makes the fix in f992c8e
specific to the view manager of the main oe_application
container, in order to avoid disrupting other view manager
occurrences (such as the ones in modal windows or x2many
list views).

Fixes #11629 (again)

Note: Hopefully the Blink team will fix Chrome so we can
get rid of this hack in the future:
  https://bugs.chromium.org/p/chromium/issues/detail?id=603507
@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 19, 2016

Contributor

Hopefully the latest version of the fix at 7f6bd2d should solve the issue in chrome 50 without the side-effects of breaking modal windows (e.g. mail composer) or x2m view managers, as reported by @thomich and @mariuszmizgier.
All issues (including all POS versions) seem to be fixed now, so I'm closing the issue again.
Thanks for your feedback and patience!

BTW the upstream issue is still open here, so there is still hope to see it fixed in Chrome.

Contributor

odony commented Apr 19, 2016

Hopefully the latest version of the fix at 7f6bd2d should solve the issue in chrome 50 without the side-effects of breaking modal windows (e.g. mail composer) or x2m view managers, as reported by @thomich and @mariuszmizgier.
All issues (including all POS versions) seem to be fixed now, so I'm closing the issue again.
Thanks for your feedback and patience!

BTW the upstream issue is still open here, so there is still hope to see it fixed in Chrome.

@odony odony closed this Apr 19, 2016

@spadae22

This comment has been minimized.

Show comment
Hide comment
@spadae22

spadae22 Apr 19, 2016

Contributor

@odony Yes Chrome should fix the bug as I read your report as well as others.

Contributor

spadae22 commented Apr 19, 2016

@odony Yes Chrome should fix the bug as I read your report as well as others.

@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 20, 2016

Contributor

Seems like this particular change is being a considered a bug by Google and is being reverted [1], which is good news.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=603507#c24

Contributor

jorenvo commented Apr 20, 2016

Seems like this particular change is being a considered a bug by Google and is being reverted [1], which is good news.

[1] https://bugs.chromium.org/p/chromium/issues/detail?id=603507#c24

hhgabelgaard added a commit to steingabelgaard/odoo that referenced this issue Apr 20, 2016

[FIX] web: fix layout issue in Chrome 50 (again)
Makes the fix in f992c8e
specific to the view manager of the main oe_application
container, in order to avoid disrupting other view manager
occurrences (such as the ones in modal windows or x2many
list views).

Fixes #11629 (again)

Note: Hopefully the Blink team will fix Chrome so we can
get rid of this hack in the future:
  https://bugs.chromium.org/p/chromium/issues/detail?id=603507
@mpellicer

This comment has been minimized.

Show comment
Hide comment
@mpellicer

mpellicer Apr 20, 2016

So what should we do? Patch our instance or wait for the Chrome update?

TBH i've patched our instance and everything seems to work fine, should i revert the patches once Chrome is patched?

Thanks

So what should we do? Patch our instance or wait for the Chrome update?

TBH i've patched our instance and everything seems to work fine, should i revert the patches once Chrome is patched?

Thanks

@jorenvo

This comment has been minimized.

Show comment
Hide comment
@jorenvo

jorenvo Apr 20, 2016

Contributor

We plan on waiting until the revert makes it into the stable Chrome release on all platforms. After that we will wait a couple of weeks so everyone's updated and revert our patches that workaround the bug. The POS patches don't break anything but I'd like to get rid of them as they're ugly and they won't have any impact anymore after Chrome is fixed.

Contributor

jorenvo commented Apr 20, 2016

We plan on waiting until the revert makes it into the stable Chrome release on all platforms. After that we will wait a couple of weeks so everyone's updated and revert our patches that workaround the bug. The POS patches don't break anything but I'd like to get rid of them as they're ugly and they won't have any impact anymore after Chrome is fixed.

@mpellicer

This comment has been minimized.

Show comment
Hide comment
@mpellicer

mpellicer Apr 20, 2016

Thank you so much @jorenvo

Thank you so much @jorenvo

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 20, 2016

Contributor

@carllhw thanks, indeed the fix needs to be applied to the database manager screen as well, will fix it shortly.

So the problematic commit was just reverted upstream, and is included as of Chrome build 50.0.2661**.86**.
This release is not blessed as stable yet (on most platform it's 50.0.2661.75), so we'll have to wait until it is by watching the Chrome release dashboard. Then as @jorenvo says, we'll wait a bit and revert all relevant commits, as they are strictly unnecessary.

Like @mcarropellicer, if you've got the problem now you should update to the latest Odoo 8 version (or apply the patches), and when you next update Chrome will be fixed and the fixes will be gone from Odoo to.

Contributor

odony commented Apr 20, 2016

@carllhw thanks, indeed the fix needs to be applied to the database manager screen as well, will fix it shortly.

So the problematic commit was just reverted upstream, and is included as of Chrome build 50.0.2661**.86**.
This release is not blessed as stable yet (on most platform it's 50.0.2661.75), so we'll have to wait until it is by watching the Chrome release dashboard. Then as @jorenvo says, we'll wait a bit and revert all relevant commits, as they are strictly unnecessary.

Like @mcarropellicer, if you've got the problem now you should update to the latest Odoo 8 version (or apply the patches), and when you next update Chrome will be fixed and the fixes will be gone from Odoo to.

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 20, 2016

Contributor

@carllhw The db manager issue should be fixed by fc2aa73.

Contributor

odony commented Apr 20, 2016

@carllhw The db manager issue should be fixed by fc2aa73.

odony added a commit that referenced this issue Apr 20, 2016

[FIX] web: fix db manager layout in Chrome 50
Complement of f992c8e,
to be reverted in saas-6+ and in 8.0 when Chrome's
fix reaches the stable Chrome channel.

Fixes #11629

See https://bugs.chromium.org/p/chromium/issues/detail?id=603507
@fernandomr

This comment has been minimized.

Show comment
Hide comment
@fernandomr

fernandomr Apr 20, 2016

The fix sugested by @odony works!
Just a note, the datepicker is a little bit unformatted. It seems another thing that the Chrome update caused.
captura de tela de 2016-04-20 15 47 30

The fix sugested by @odony works!
Just a note, the datepicker is a little bit unformatted. It seems another thing that the Chrome update caused.
captura de tela de 2016-04-20 15 47 30

@thomich

This comment has been minimized.

Show comment
Hide comment
@thomich

thomich Apr 21, 2016

btw... chrome was updated this night:
google-chrome-stable:
Installed: 50.0.2661.86-1
Candidate: 50.0.2661.86-1
Version table:
*** 50.0.2661.86-1 0
500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
100 /var/lib/dpkg/status

thomich commented Apr 21, 2016

btw... chrome was updated this night:
google-chrome-stable:
Installed: 50.0.2661.86-1
Candidate: 50.0.2661.86-1
Version table:
*** 50.0.2661.86-1 0
500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
100 /var/lib/dpkg/status

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 21, 2016

Contributor

Status update: according to their dashboard, the latest Chrome 50 update on Linux and Mac is 50.0.2661.86 and has the fix already. All Windows versions are still broken (2661.75) and the IOS build is now broken (used to be Chrome 49 until today: 50.0.2661.77) iOS does not use the Blink engine (due to Apple's policy it must use the original Webkit), so it's not affected, and Android is still on Chrome 49.

Contributor

odony commented Apr 21, 2016

Status update: according to their dashboard, the latest Chrome 50 update on Linux and Mac is 50.0.2661.86 and has the fix already. All Windows versions are still broken (2661.75) and the IOS build is now broken (used to be Chrome 49 until today: 50.0.2661.77) iOS does not use the Blink engine (due to Apple's policy it must use the original Webkit), so it's not affected, and Android is still on Chrome 49.

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 21, 2016

Contributor

@fernandomr The graphical glitch in the datepicker was visible before Chrome 50, so it seems to be a different issue.

Contributor

odony commented Apr 21, 2016

@fernandomr The graphical glitch in the datepicker was visible before Chrome 50, so it seems to be a different issue.

@spadae22

This comment has been minimized.

Show comment
Hide comment
@spadae22

spadae22 Apr 21, 2016

Contributor

@odony I see Chrome we updated with the bug reverted. So are you reverting the revisions?

Contributor

spadae22 commented Apr 21, 2016

@odony I see Chrome we updated with the bug reverted. So are you reverting the revisions?

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 21, 2016

Contributor

@spadae22 Not yet, as explained in previous comments.

Contributor

odony commented Apr 21, 2016

@spadae22 Not yet, as explained in previous comments.

@alyngsoe

This comment has been minimized.

Show comment
Hide comment
@alyngsoe

alyngsoe Apr 22, 2016

This works for me (Windows 8.1): (I had the same problems as described)

  1. removed old chrome (newest 32bit version)
  2. restart
  3. installed new 64bit version https://www.google.com/chrome/browser/desktop/index.html

This works for me (Windows 8.1): (I had the same problems as described)

  1. removed old chrome (newest 32bit version)
  2. restart
  3. installed new 64bit version https://www.google.com/chrome/browser/desktop/index.html
@Yenthe666

This comment has been minimized.

Show comment
Hide comment
@Yenthe666

Yenthe666 Apr 22, 2016

Contributor

@alyngsoe it is enough to go to settings > about and then Chrome will automatically update.
A simple reloading of the browser and you have the latest version, which indeed fixes everything again.

Contributor

Yenthe666 commented Apr 22, 2016

@alyngsoe it is enough to go to settings > about and then Chrome will automatically update.
A simple reloading of the browser and you have the latest version, which indeed fixes everything again.

@odony

This comment has been minimized.

Show comment
Hide comment
@odony

odony Apr 22, 2016

Contributor

Both 32bit and 64bit versions of Chrome on Windows have the fixed build (50.0.2661.87) as of last night, so anyone affected by the bug should simply update to the latest version.
We'll wait until next week so the majority of users who ended up with the broken Chrome 50 builds will have auto-updated to a fixed one, and then we'll revert our workarounds.

Contributor

odony commented Apr 22, 2016

Both 32bit and 64bit versions of Chrome on Windows have the fixed build (50.0.2661.87) as of last night, so anyone affected by the bug should simply update to the latest version.
We'll wait until next week so the majority of users who ended up with the broken Chrome 50 builds will have auto-updated to a fixed one, and then we'll revert our workarounds.

@mpellicer

This comment has been minimized.

Show comment
Hide comment
@mpellicer

mpellicer Apr 22, 2016

As additional info, i've reverted the patches in our instance and everything works fine so far, thanks for addressing the problem.

Chrome Version 50.0.2661.87 m

As additional info, i've reverted the patches in our instance and everything works fine so far, thanks for addressing the problem.

Chrome Version 50.0.2661.87 m

@odony odony changed the title from Impossible to acces at Odoo V8 with Google Chrome 50 to Impossible to access Odoo 8 with Google Chrome 50 (50.0.2661.75 or lower) Apr 22, 2016

oeiter added a commit to oeiter/odoo that referenced this issue Jun 8, 2016

8.0 (#5)
* [FIX] purchase: _get_price_unit_invoice

If the costing method of the product is "average", the price unit
of the stock move is set in the currency of the field "price_currency_id"
with the function "do_partial" (addons/stock/stock.py).

opw:672552

* [I18N] Update translation terms from Transifex

* [FIX] res.partner: modifying users requires extra access

* [FIX] base: require wizard for passwd change

* [FIX] base_import: avoid JS error in callback

* [FIX] base: only run postinstall tests for installed or updated modules

Uninstalled modules are skipped with the filtering on the state.
Fixes #9768, Closes #11378

* [REV] usage of m2m listview for o2m

Turns out to break way more than it fixes.

* [FIX] doc: configuration file destination

db_name instead of dbname

Closes #11603

* [FIX] website: prefer to get exact language

request.website.get_languages returns a list of tuple in the form:

        (`language code`, `language name`)

With this commit the code first check if there is a language exactly
matching, and only if failed check if there is a match on the short
form.

closes #11613
opw-672412

* [I18N] Update translation terms from Transifex

* [FIX] crm_partner_assign: avoid report view deletion

The SQL view `crm_partner_report_assign`
makes a join on `account_invoice_report`

A column is added to
`account_invoice_report` in the module
`sale` (`section_id` is added to the view),
making the SQL view `account_invoice_report`
replaced automatically at the install/update
of the `sale` module, which leads
to the automatic deletion of the SQL
view `crm_partner_report_assign`,
because the SQL view `account_invoice_report` is
altered.

Therefore, after the install/update of the `sale`
module, the view `crm_partner_report_assign` was
deleted, and the "partnership anaylsis" unusable.

This revision makes sure to init the
`crm.partner.report.assign` report after
every init of the `account.invoice.report`.

opw-674177

* [FIX] res.partner: relax condition in 3ab436f

Users may sometimes need to edit their own partner records directly,
although indirect access by writing on `res.users` directly works
fine in most cases.

* [FIX] web: prevent crash in rare case with status field

Current behavior before PR: if you create a new record within a one2many
field and the model's form has a clickable status bar defined, clicking
this status bar will raise an exception because the virtual id
(one2many_v_XXXX) will be passed to the model's write method

Desired behavior after PR is merged: clicking just changes the cached
value

* [FIX] website_event_sale: get_unit_price with event ticket

When the line is linked to an event ticket, the price must be taken
on the ticket.

Fixes #11521

opw:673176

* [FIX] website_sale: verify match between TX and SO amount

When processing a payment transaction, double-check the
match between the amount of the transaction and the
amount of the SO, to be sure that we won't be validating
a SO that has been modified since the payment.

Such cases have to be double-checked manually.

Also add a bit of extra logging to make auditing ecommerce
transactions easier.

* [FIX] paypal: no spurious warning about IPN version

In addition to being mostly useless because Paypal's API
changes are supposed to be backwards-compatible, this
warning was using inconsistent version numbers.

Switched to a simple INFO line with IPN version.

* [IMP] point_of_sale: migrate POSBox to Raspbian Jessie

The main reason for doing this is supporting the new Raspberry Pi 3. No
functional changes where made.

For Raspbian Wheezy we used to download the full image and strip it as
best we could to obtain a reasonable image size for people to
download. Since Raspbian Jessie the Raspberry Pi Foundation has started
releasing an official minimal image (Raspbian Jessie Lite) which we will
use from now on to build our image. One downside of this is that the
minimal image is a 1.3 GiB image which is too small for our
purposes so it has to be resized.

Because Raspbian Jessie migrated to systemd we cannot rely on
/etc/init.d/rcS to set up the ramdisks anymore. Jessie provides a
compatibility layer so old SysVinit scripts still work but rcS does not
block like it does in a SysVinit system, it is run in parallel with
other startup services. In our case this is a bad thing as setting up
the ramdisks has to be done before any other services are started. To
accomplish this the rcS hack has been migrated to a systemd service
running before basic.target and with DefaultDependencies=no. This has a
similar effect as the rcS hack because normal systemd services (with
DefaultDependencies=yes) all require basic.target by default.

* [IMP] point_of_sale: redirect POSBox image init script output to file

Useful when updates to the initialization scripts don't go as
planned. This leaves something to inspect.

The initialization script already automatically stops (because of 'set
-o errexit') but it was a bit tricky to actually see what went wrong
because scrollback in QEMU isn't great.

* [IMP] point_of_sale: move POSBox AP to a less used subnet

When the POSBox boots without a network cable attached it will
automatically launch a wireless AP that people can connect to. This
allows them to configure what wireless network the POSBox should connect
to.

This wireless AP was configured to use the 10.10.0.0/24 subnet. The AP
itself was on 10.10.0.1. Although this is fine if used as intended it is
a quick way to take down an existing network if you where to plug in an
ethernet cable after the wireless AP has started. 10.10.0.1 is commonly
used by routers all over the world and plugging in a booted POSBox into
their networks will cause serious issues because the POSBox will share
the same IP as the router.

This moves the POSBox AP to the 10.11.12.0/24 subnet, with the AP on
10.11.12.1.

This also makes the DHCP server listen only on wlan0 because otherwise
you can end up with two DHCP servers on the same network which would
still break stuff.

* [IMP] point_of_sale: release POSBox image v14

Marks official support for the Raspberry Pi 3.

* [FIX] web: fix layout issue in Chrome 50

The height was not distributed anymore to the children of a `table-row`
element if they are not themselves `table-cell` elements.

Fixes #11629

* [FIX] account_analytic_analysis: comment field in account.invoice

When creating an invoice from a contract with button "create invoices",
the description linked to the contract has to written in the comment field
of the invoice.

opw:671660

* [FIX] qweb: escape alt-field properly in image widget

This is very unlikely to be exploitable because the
alt-field usually comes from master data (e.g. product
names) that can't be injected.

Courtesy of Naglis Jonaitis

* [FIX] point_of_sale: do not hide transactional errors

Catching and hiding database transactional errors can
sometimes cause a POS order to be entirely lost.

When it occurs, the transaction won't be committed
into the database, and if there is only one order
in the batch, the server won't return any error to
the frontend POS which will consider the order saved.

* Revert "[FIX] web: fix layout issue in Chrome 50"

or how to break every internet explorer releases while
attempting to fix chrome 50

* [FIX] web: fix layout issue in Chrome 50

A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a9919
Fixes #11629

* [FIX] point_of_sale: deal with Chrome 50's new height inheritance

Chrome 50 treats percent-height divs inside of auto-height cells as
auto [1]. So from now on it's important that an explicit 'height: 100%' CSS
property is set on parent tds, otherwise you'll end up with elements
with a height of 0.

DO NOT FORWARD-PORT!

[1] https://chromium.googlesource.com/chromium/src/+/8876584335b48c99cf8df552ef4d8efebb131041

* [FIX] purchase: Shipping  exception when cancelling a PO

When canceling and clicking on "reset to draft" button a PO with
invoicing method = Based on generated draft invoice, the purchase
workflow led to a shipping exception.

To be in state done the PO must have:

All its PO lines invoiced with _set_po_lines_invoiced
All its incoming shipments done with test_moves_done

opw:673561

* [FIX] point_of_sale: adapt to Chrome 50's new handling of cell heights

Chrome 50 treats percent-height divs inside of auto-height cells as
auto [1]. So from now on it's important that an explicit 'height: 100%' CSS
property is set on parent tds, otherwise you'll end up with elements
with a height of 0.

An extra difficulty is that this new height property on
subwindow-container will result in the element being as high as his
parent table. So the collapsed trick doesn't work anymore in the
customer list.

This has to be done conditionally. The proposed workaround of adding
100% height to parents of affected elements causes issues in IE/Edge
because the effect of adding a height in percent to a table-{cell,row}
element is not defined by CSS [2].

DO NOT FORWARD-PORT!

[1] https://chromium.googlesource.com/chromium/src/+/8876584335b48c99cf8df552ef4d8efebb131041
[2] http://stackoverflow.com/a/27384730

* [FIX] account_asset: asset_create

When creating assets from invoice lines, the system must check
that assets have not already been created for the related invoice.
If assets already exist then these assets have to be removed.

Used case:

- In the purchase journal, tick "allow canceling entries"
- On a supplier invoice line, set an asset category
- validate the invoice
- cancel the invoice
- set to draft
- validate the invoice

Before the fix: the asset was created twice.
After the fix: A warning is raised if an asset already exists for the invoice.

opw:674674

* [FIX] hw_escpos: RBG images do not necessarily have an alpha channel

* [FIX] audittrail: prevent loop between models having *2m between each other

When setting rules on models having o2m/m2m relationship
between each other
e.g.
- `res.partner`:
  o2m `sale_order_ids` to `sale.order`
- `sale.order`
  o2m `message_follower_ids` to `res.partner`

an infinite loop could occur if records
of these models referenced records of the
other models in their o2m relationships
e.g.
 - `res.partner` ID 68:
   `sale.order` ID 9 in its `sale_order_ids`
 - `sale.order` ID 9:
   `res.partner` ID 68 in its `message_partner_ids`

This revision solves this use case, by passing the already
treated records in the context and checking that the records
haven't yet be treated before making the recursive call.

This revision makes sure to not break the API of methods
`get_data_context` and `prepare_audittrail_log_line`
(a new parameter had to be introduced for the above purpose)

opw-670904

* [FIX] web: fix layout issue in Chrome 50 (again)

Makes the fix in f992c8e
specific to the view manager of the main oe_application
container, in order to avoid disrupting other view manager
occurrences (such as the ones in modal windows or x2many
list views).

Fixes #11629 (again)

Note: Hopefully the Blink team will fix Chrome so we can
get rid of this hack in the future:
  https://bugs.chromium.org/p/chromium/issues/detail?id=603507

* [FIX] server: support psutils >= 4.0

In version 3, process.memory_info() returns only rss and vms
In version 4, it now returns rss, vms, shared, text, lib, data and dirty
Automatic unpacking is no longer possible in 4.0

Fixes #11052, Closes #11459

* [CLA] signature for erocre

Closes #11639

* [CLA] signature for stephen144

signature #11459

* [FIX] point_of_sale: display correct uom on weighable products

Everything's displayed fine on orderlines with weighable products, this
only affected the small blue labels on the products.

opw-674264

* [FIX] web: fix db manager layout in Chrome 50

Complement of f992c8e,
to be reverted in saas-6+ and in 8.0 when Chrome's
fix reaches the stable Chrome channel.

Fixes #11629

See https://bugs.chromium.org/p/chromium/issues/detail?id=603507

* [FIX] stock_landed_costs: use correct UoM

Use the normalized quantity, otherwise the amount per unit is wrongly
calculated.

* [FIX] stock_landed_costs: former_cost_per_unit precision

The precision of `former_cost_per_unit` should not be set. Indeed, a
stock move can contain several quants with different unit prices.
Therefore, we should not round the field when stored, otherwise the
difference per unit will not be calculated correctly.

This is a workaround since we cannot change the DB structure in stable.

opw-675222

* [FIX] stock_account: account/valuation inconsistencies

When the product price is divided per product unit, inconsistencies
may arise between the real stock valuation and the stock valuation
account. This is likely to happen when a product is bought in a UoM
different from the standard UoM of the product.

A numerical example is the following: a box of 13 is bought for 15.00.
An amount of 15.00 is recorded when the products enter the stock. If the
product leave the stock one at a time, 13 entries of 1.15 are recorded
(15.00/13 = 1.153846... ≈ 1.15), which is then equal to
13 * 1.15 = 14.95. In this case, All the products have left the stock
(stock valuation is zero), but 5 cents remain on the account.

This is of course even worse the higher the ratio is. For example, a
box of 4.00 split into 1000 units sold piece by piece will never be
recorded when a product leaves the stock.

The fix is to record the rounding difference on a specific quant. In the
previous example, instead of adding 1.153846... on the unit cost of the
13 units, we do the following:
- 12 units to which we add 1.15 on unit cost
- 1 unit to which we add 1.20 on unit cost

opw-675222

* [FIX] stock_landed_costs: account/valuation inconsistencies

When stock landed costs are divided per product unit, inconsistencies
may arise between the real stock valuation and the stock valuation
account. This is likely to happen when several products are bought, but
these products leave the stock one at a time.

A numerical example is the following: a landed cost of 15.00 is applied
to a purchase of 13 units. An amount of 15.00 is recorded when the
products enter the stock. If the product leave the stock one at a time,
13 entries of 1.15 are recorded (15.00/13 = 1.153846... ≈ 1.15), which
is then equal to 13 * 1.15 = 14.95. In this case, All the products have
left the stock (stock valuation is zero), but 5 cents remain on the
account.

This is of course even worse the higher the ratio is. For example, a
landed cost of 4.00 split into 1000 units sold piece by piece will never
be recorded when a product leaves the stock.

The fix is to record the rounding difference on a specific quant. In the
previous example, instead of adding 1.153846... on the unit cost of the
13 units, we do the following:
- 12 units to which we add 1.15 on unit cost
- 1 unit to which we add 1.20 on unit cost

opw-675222

* [FIX] stock_landed_costs: precision

Oversight of commit bd025cd.
I'm an idiot, I should have checked that another solution was applied
from 9.0 with accounting refactoring. We apply it here as well.

* [FIX] hr_timesheet_invoice: fully qualify grouped fields in SQL view

Avoids name collisions when custom columns are involved.

Closes #11743

* [FIX] membership: update membership state daily

This is a complement to commit 6d4a78a. The 'invoiced' status should
be removed automatically once the membership is expired.

opw-672259

* [FIX] stock_account: stock history view

The stock history doesn't take into account internal moves. For example,
in the following situation:
- Receive 1000 products to Internal Warehouse 1
- Move these 1000 products to Internal Warehouse 2

The 1000 products are still recorded on the Internal Warehouse 1.

opw-672277

* [FIX] mail: Missing translation `Send a message to the group`

The above string was not translated, when creating a new
discussion group, in the group message input placeholder.

opw-673712

* [FIX] account_asset: compute depreciation board

From af61494
Allow to compute the depreciation when the asset is in state: draft

* [FIX] website_event: event dates within event timezone

The dates of an event on the website was always
within the user timezone. If not signed in,
it was within the public user timezone
(which is quite not user-friendly to change)

For this purpose, we weed get the context
from the record (the context used when using
`record.with_context`), and therefore
the QWeb field
`ir.qweb.field.datetime` is slightly altered,
to use the context from the record.

opw-675427

* [FIX] ir_qweb: regression of 8395f0d

This revision corrects a regression introduced by
8395f0d:
the possibility to call
`ir.qweb.field.datetime`.`value_to_html` with
a datetime string directly, instead of calling
`ir.qweb.field.datetime`.`record_to_html`
(which call `value_to_html` as well).

opw-675427

* [FIX] mail: mail template translation

Do not match with source
Closes #11789

* [FIX] sale: untranslated label

attribute string is translatable on a search filter, not name (which is used as fallback label
Closes #10419

* [FIX] account: Allow to select sale taxes in bank statement reconciliation process. Courtesy of adrienpeiffer. PR #11673

* [FIX] orm: do not save empty translation as 'false'

When writting a value on a translatable field in a different language than
English, the submitted *raw* value was saved in the database.

This could cause the following issues:
- empty value (provided as `False` by the web client) saved as the string
  'false' in the translations table
- no encoding or sanitization convertion
- ignore size parameter on the translatable field

Process the submitted translation through symbol_set method to clean it before
storing it blindly in the database.

This allows to convert `False` into `''` for empty value and fixes #10862

* [FIX] models: fix *2many multi-onchange bug

This fixes the case where the lines of a one2many field are modified several
times by onchange methods: instead of retrieving the most recent updates, we
merge them with former updates.

This solution was written as an improvement of a proposal made by Alexis
Delattre and Sébastien Beau as #11620.

* [I18N] Update translation terms from Transifex

* [FIX] res_company: some information missed on company creation

On the `res.company` model, the fields
`name`, `phone`, `email`, `website`, `vat` are
related field on the `partner_id` of the company.

When creating a new company, the partner
associated to the company is created automatically,
it's handled in the overrided `create` method
of the model, but it forgots the values
`phone`, `email`, `website`, `vat` at the moment
the partner is being created.

opw-675526

* [FIX] web: Allow for translation of a login error message

Closes #11815

* [FIX] website_sale: log if no pricelist

The pricelist field is not a mandatory field on the partner. A default
value is usually defined for any new partner created. However, if the
pricelist is manually removed from the partner, errors (tracebacks) will
occur in the eCommerce when no pricelist is found.

We cannot make the field mandatory, as it could potentially break the
workflow of some users which are not using eCommerce. Therefore, we
simply log an error message to help debugging.

opw-673453

* [FIX] account_asset: asset_create

When creating assets from invoice lines, the system must check
that assets have not already been created for the related invoice.
If assets already exist then these assets have to be removed.

Used case:

- In the purchase journal, tick "allow canceling entries"
- On a supplier invoice line, set an asset category
- validate the invoice
- cancel the invoice
- set to draft
- validate the invoice

Before the fix: the asset is created twice.
After the fix: the asset is created once.

opw:674674

* [FIX] calendar: correct search on mail.message and ir.attachment

Handle the case of immutable (tuple) domain leafs.

* [FIX] tools: export translated fields not included in _columns

Non-stored new API computed fields are only defined in _fields
but not in _columns, and they were never exported within translation
files.

Closes #9081

* [FIX] fields: filter result of 2many related fields with related_sudo

When traversing relational fields as superuser, you end up with a recordset for
which only a subset is accessible to the current user.  An earlier fix to this
issue completely dropped the `related_sudo` feature; change its implementation
to keep the feature.

* [FIX] expression: fix missing results in direct search on many2many fields

This case corresponds to searches like `[(field, 'ilike', name)]` where `field`
is a many2many field.  The domain processing performs a `name_search` on the
field's comodel, then makes the relation match the returned record ids.

Problem: the call to `name_search` uses the default limit (100), and this makes
the search return less results than expected.  Make the search complete by
forcing `limit=None`.

* [FIX] expression: fix missing results in direct search on many2many fields

This case corresponds to searches like `[(field, 'ilike', name)]` where `field`
is a many2many field.  The domain processing performs a `name_search` on the
field's comodel, then makes the relation match the returned record ids.

Problem: the call to `name_search` uses the default limit (100), and this makes
the search return less results than expected.  Make the search complete by
forcing `limit=None`.

* [I18N] Update translation terms from Transifex

* [I18N] Update translation terms from Transifex

* [FIX] project: make copy overridable in v8 api

Without the proper decorator, the method is matched as `cr_ui_context`.
This is because the `guess` mechanism expects a name `res_id` instead of
`record_id`.
For stability reason it is better to add the decorator than modify the signature
of the method.
Closes #11735

* [CLA] update signature of initos

Changes due to changes in the legal form of the company
Closes #11759

* [FIX] product_expiry: 'product_id' in context

When creating a new lot from an incoming picking transfer, the product_id
is written in the context.

opw:674608

* [FIX] account: A negative amount with sale taxes on bank statement line must be considered as a refund. Courtesy of Adrien Peiffer (ACSONE). PR #11877

* [FIX] purchase: Context propagation in wkf_confirm_order.

Closes #11916

* [FIX] account: set reconciliation date as admin

The user performing reconciliations may not always
have the right to update the corresponding partners,
for example if a partner is also a system user.

Doing it as super-user after verifying that the
user is indeed allowed to reconcile journal items
works around the problem.

Fixes #11931

* [FIX] import: broken translation cache for absent translation of 'false'

Backport of 7d732b1

Fixes #979

* [IMP] product: order attribute by name

closes #11951
fixes #11602
opw-673857

* [I18N] Update translation terms from Transifex

* [IMP] web: multi-click on save on view form (no fp)

When clicking on save several time when editing a view form it can be
saved several times which can be an issue for one to many.

The normal happenstance when saving should be as follow:

-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

But when clicking several time, it could become:

-> save (click)
-> wait write result
-> received write result
-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

This commit only reinstate the saving feature once the form is reloaded.

closes #11926
opw-671793

note: no need to forward-port

* [FIX] google_calendar: user invited to one recurring event occurence only

When a Google user was invited to one occurrence of a recurring event,
but not to the recurring event itself (and the other occurrences, therefore),
and the user owner of the recurring event did not sync his calendar in Odoo,
the event occurrence could not be synced in Odoo, because it attempted
to attach it to the parent/main recurring event, which was not present
in Odoo.

In such a case, Odoo now syncs the event occurrence as a simple classic
event. In addition, if the owner of the event sync his calendar with Odoo
afterwards, or if the user is invited later to the main/parent recurring event
and then sync again his calendar,
it then attach the event occurrence that was previously
synced to this main event, to avoid events duplication.

opw-676535

* [FIX] fields: invalidate x2many fields with a domain

Invalidate the cache of a x2many field when any of the fields appearing in its
domain is modified.  Use the invalidation triggers mechanism for that purpose.

* [FIX] sale: outdated .pot file

Was having content of website_quote

* [FIX] account_anglo_saxon: default account value

The default account value set for purchases invoices
lines for product of type Service was wrong: It used
the stock account, which is wrong as a Service
as no stock. Instead, it should left the product
expense account, as usual.

opw-676110

* [FIX] google_calendar: do not copy user Google info

If a user syncs his calendar with Google,
and a second user is created in the database by copying this first
user, the Google information of the first user was copied
(The Google account to sync, the token to use, the last
syncrhonization date, ...), which is obviously wrong.

On calendar syncrhonization, which can be done
manually or automatically with the according cron, all
events of the first user were created a second time,
as a second user synchronized the same Google Calendar.

opw-674141

* [FIX] http: clear environment/caches on transaction rollback

Backport of 8423a0d

Clear the cache/environment in addition to rolling back
the cursor, in order to retry the transaction with fresh
data, not partially stale data.

* [FIX] account: periods in general ledger report

When "Filter by Periods" is choosen in the wizard, the right periods
must be set in ctx to filter the account moves according to the right periods

opw:674593

* [ADD] tools: Swiss German language

Closes #4722

* [ADD] tools: Burmese language

* [FIX] purchase: date planned

When a PO is copied, the date planned of the order lines should be
recomputed based on the order date.

opw-675480

* [FIX] mail: remove unneeded call to `refresh()`

With new api, this call is not wanted anymore. The cache is cleared
automatically, no need to clear the whole cache; that's a little bit
overkill and reduce performances.

* [IMP] account: improve reconciliation speed

 - Only invalidate cache for fields and records we modify
 - Rewrite query to be more efficient
 - Avoid o2m commands to be more efficient; write directly on reverse m2o

* [IMP] models: mark records as recomputed as soon as they are

When recomputing stored function fields, the `write` may trigger a
cache invalidation which lead to a recompute of all the recordset
values, even the ones already saved in database.

* [FIX] purchase: fiscal position from onchange_partner_id

Used case:

-Configure admin as multi-company user
-Create 2 fiscal positions (one for company "Odoo BE" and one for company "Odoo US")
-Set admin on company "Odoo BE"
-On supplier (Asustek) configure fiscal position Odoo BE
-Set admin on company "Odoo US"
-On supplier (Asustek) configure fiscal position Odoo US
-Configure a product (Laptop E5023) with:
   *route "Buy"
   *supplier (Asustek) without company
   *reordering rules (min qty: 20, max qty: 40)
-Set admin on company "Odoo BE"
-Run scheduler via the cron

Behavior before the fix:

-Fiscal position on the created PO is the fiscal position for "Odoo BE" (and PO is for the company "Odoo US")

Behavior after the fix:

-Fiscal position on the create PO is the fiscal position for "Odoo US".

Closes #11537

opw:673288

* [FIX] website: URL of website_published is wrong when using next/previous

Steps to reproduce:

-go to runbot 8.0 and connect
-go into human ressources/job positions
-pass into list view and click on the first item
-click on the url to open this record into the website (website_published)
-go back (back into the browser)
-you're now into the form view again and then next step is to click on the button
"next" to access the following record
-click on the url of website_published

Before the fix:

wrong record, this is the previous one that is into the href

After the fix:

correct record with the correct id into the href

Closes #11800
opw:675832

* [FIX] l10n_fr: FIX default Sale/Purchase tax. Courtesy of alexis-via. PR #11139

* [FIX] tools: correct Burmese locale

* [I18N] Update translation terms from Transifex

* [FIX] base: Add missing return values

The _auto_init method was overriden without keeping the return value of
the super on some models.
This break the new stored computed fields computation at field creation.

Closes #11985
opw-677232

* [FIX] account: readonly bank statement line

Like in "view_bank_statement_form" when a line is linked to
a journal entry, this line must be in readonly.

opw:676344

* [FIX] mail: receiving a notification without notifying the parent message.

Used case:

If you add a user which has no acces on a model(ex:purchase.order)
as follower on a record of this model. When someone responded by email on
this record, and when a message is sent on this record, an exception is raised
at the connection of the user added as a follower.

Fix:

To have the rights to read the message, a read notification for this follower must
be added to all parents of this message.

Closes #11902

opw:676699

* [IMP] web: multi-click on save on view form (no fp)

When clicking on save several time when editing a view form it can be
saved several times which can be an issue for one to many.

The normal happenstance when saving should be as follow:

-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

But when clicking several time, it could become:

-> save (click)
-> wait write result
-> received write result
-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

This commit only reinstate the saving feature once the form is reloaded.

related to opw-671793
backport of 8.0's dd714ac

note: no need to forward-port

* [FIX] l10n_be: allow more than 120 periods

The widget selection only shows the first 120 results.
The selection was most likely set to avoid creating new entries but it can be
done with an option tag. This allows to use the search on many2one fields.

opw-677908

* [FIX] mail: to prevent infinite loop

Introduced by fac0442

* [FIX] hr_holidays: missing context

Closes #9386, opw-677958

* [CLA] signature for Baldi Leandro (lbaldi)

Closes #12110

* [I18N] Update translation terms from Transifex

* Revert "[FIX] res.currency: allow duplication"

This reverts commit d780f94.

Did not work due to the size=3 on name field that strips the code to the first
three letters only (removing the " (copy)" part).
Copying a currency has a few business cases as the rates are not copied.
As can not increase the size of a field in stable, remove the method that had no
effect.

Fixes #11036

* [FIX] account: partner_id set on a bank fee

Used case:

-Create several customer invoices and validate them
-Register a payment without any partner_id and in a bank statement for an amount
a bit lower than the total of the invoice (the difference is the paypal fees)
-Reconcile the invoices with the payment and create a write-off for the paypal fees
-When you close the bank statement, check the journal items, the paypal fees are
automatically assigned with a partner.

Fix:

-When creating the account move line for the fee, if all the account move lines
linked to the move are for different partners then you cannot determine the partner
of the fee.

opw:674822

* [FIX] hr_payroll: avoid infinite recursion

The get_recursive_parent function seemingly depended on the ordering of
the rule_categories recordset which happens to work fine in most cases
because all data first defines the parent before defining the children
rule categories. But if you happen to do it the other way around it
won't work and it will infinitely call itself because:

if rule_categories[0].parent_id:
    rule_categories = rule_categories[0].parent_id | rule_categories

won't change the value of rule_categories[0].

opw-673222 (loosely related)

* [IMP] gamification: prevent misconfiguration

Prevent selecting wrong field or models or computed fields

Fixes #8545

* [FIX] web: raise a warning for bad domain

When a user wrote a wrong value in char_domain field it should raise a warning
message instead of a traceback.

Backport of b3a88b6

opw:676783

* [FIX] calandar: all day events email notification

When sending a notification email to an event attendee
for an all day event, the timezone must be ignored
as the `start` and `stop` datetime are stored as
the day date + '00:00:00'. If the timezone is applied,
for users being in a negative timezone (such as an American
timezone), the day displayed would be the day just before.

opw-677019

* [FIX] web: fix backport #4c7a9bd

* [FIX] gamification: bad backport to 8.0

UserError was defined in version 9, not 8

* [INP] gamification: skip check for not required fields

Could get a definition with a model only

* [CLA] Rock Solid Solutions signs corporate CLA.

Closes #12182

* [FIX] sale: propagate context

Closes #9521

* [FIX] server: Do not listen when --no-xmlrpc is set

This is a fix for f04f409, which only
prevented the workers from being spawned in Prefork mode, while the
socket was still being bound to - this is a problem when starting a
worker-only server as it cannot coexist with the XMLRPC server on the
same machine.

Closes #1828

* [FIX] crm_partner_assign: minimum access rights to employee

Give the same as access rights to the employee as for the public user.
This patch is needed to allow a user to access the partner form.
Same for portal.
The list of grades in not a confidential information.

Fixes #7719

* [FIX] point_of_sale: respect user timezone for all data in Sale Details

9f0120d solved this issue already, but
it was only applied to POS orderlines. There is other data on the
report (eg. payments, taxes, ...) that should also correctly respect the
user time zone as well.

opw-678748

* [FIX] website_sale: allow to override product order on shop

Close #11202

* [FIX] payment_ogone: missing key

The key 'PAYIDSUB' should be added in the list of SHA-OUT keys.,
otherwise the signature is wrong.

opw-678718

* [FIX] account: substitution in aged partner report

'foo %s bar' % 'alice' if False else 'bob' returns 'bob', not 'foo bob bar'

The previous strings returns '>=' when the direction is future while it should
be 'COALESCE(l.date_maturity,l.date) >= %s'

Fixes #10654
Closes #10695

* [FIX] sale: avoid division by zero in _get_price_reduce

close #11999

* [I18N] Update translation terms from Transifex

* [CLA] Update Therp BV's signature

To have consistent email in author and signer key.
Also update list of contributors as Stefan is no longer working for Therp BV.

Closes #12202

* [CLA] corporate signature for DevCo Colombia

Closes #11755

* [FIX] account,*: preserve deactivated taxes

By default, when reading a m2m field, entries that are
deactivated in the destination table are not included.
This behavior is desirable in some cases (e.g. for
"tags" or "categories", but not for entries that
significantly impact other field values in the parent
record, such as taxes.

The problem is rather obvious: when displaying a
paid invoice that used taxes that are now deactivated,
the taxes are hidden while they still affect the
computed amount. And after cancelling + resetting
to draft, the tax is not taken into account anymore,
while still being linked.

Forcing the field-level (python) domain to include
both active and inactive entries solves the problem:
 - when reading, displaying and recomputing values,
   deactivated taxes will be included.
 - when trying to pick a tax, deactivated entries
   will still be ignored, as expected.

This commit applies the technique to all m2m
fields that refer to taxes.

Fixes #12066
opw-677751

* [CLA] Corporate signature for Aetna Softwares

Closes #12214

* [FIX] purchase: wrong call to super

opw-675480

* [FIX] crm,gamification: flexible reference to field

The field generation is most of the time following the pattern
`field_<table name>_<field name>`
but in case of name clash (e.g. res.partner.category - id and res.partner -
category_id), the id of ir.model.field is added at the end of the external id
during the field creation.

The more flexible way to link to an ir.model.field is to use the syntax
`search=[('model', '=', <model>), ('name', '=', <field name>)]`
to avoid errors as in #12192 when the "first" external id no longer exists.

Fixes #12192
Closes #12198

* [I18N] Update translation terms from Transifex

* [Fix] website_sale: add color value on attributes

xml template was using color name, because color index was empty.
It works in English, but once translated (in french e.g.) we have background-color:noir

Fix #12251

* [FIX] mass_mailing: filter emails to avoid duplicates

When subscribing a user to a mailing list, the `mail.mass_mailing.contact`
created is processed to identify it's name and email from the address (method
`get_name_email` called in `add_to_list` and `name_create`).
For a better consistency, the search of existing contacts should also be done
using the method `get_name_email`.

This avoids that subscribing twice `Example <example@example.com>` fails to
detect duplicates and creates two subscriptions.

Closes #12265

* [FIX] website_sale: `State` select readonly in shipping info

If we take the below facts:
 - The country select is set as disabled
   when Shipping is set to "Ship to the same address"
 - The disable property of select inputs is
   removed when shipping is set to
   `create a new address`:
   In `website_sale.js`:
   ```
   $selects.attr("disabled", value <= 0 ? null : "disabled" ).prop("disabled", value <= 0 ? null : "disabled" );
   ```

We can safely assume that the select input "State / Province" was supposed
to be set as `disabled` in the first place, not as `readonly`

Before this revision, State / Provice was greyed when choosing
"Create a new address" for shipping, and selecting the United States
(but the select input was still usable, though, it was just greyed)

opw-675739

* [FIX] website_forum: convert content of posted comment to plaintext

HTML content should be escaped before being sanitized. Any content (link, image,
code,...) that is acceptable in usual mail.message but should not be interprated
when posted on a comment of the forum.

Fixes #3737

* [FIX] l10n_lu: Change the sign for VP-IC-EX. Was PR #12041

* [I18N] Update translation terms from Transifex

* [FIX] fields: translations of the help of inherited fields

This is similar to revision 5414033

opw-673716

* [FIX] account: Exchange test failing on Jun 6

The test `test_balanced_exchanges_gain_loss`
failed on Jun 6, because it created a specific rate
for today's date at midnight
(e.g. on Jun 6, 201x-06-06 00:00:00) for the test purpose,
but a rate is created in the demo data for Jun 6 midnight exactly:
`base.rateUSDbis`, making the test confused about which rate
to use.

We solve this by making the test use the rate `base.rateUSDbis`,
modifying the rate for its own need, instead of creating a new
rate.

* [FIX] hr_evaluation: badly rendered form

The date was positioned inside the h1 and was badly rendered (field too small)
Fixes #2476

* [FIX] account_analytic_analysis: fpos of invoices

When an invoice is created automatically thanks to the cron task, the
superuser is used. However, this implies that the company of the
superuser will be used for the account invoice creation, leading to
potentially incorrect taxes and fiscal positions.

opw-669714

* [IMP] hw_scanner: support multiple simultaneously attached devices

The hw_scanner module not only supports barcode readers (although that
was it's original intention). It also happens to support certain card
readers (like the MagTek Dynamag we use for Mercury) because they act
the same way as barcode scanners (like a keyboard and end sequence with
ENTER).

Before we supported Mercury there was no real reason to support multiple
devices on the POSBox, because it didn't make much sense to attach >1
barcode reader to the same POSBox. With Mercury however, this is a real
use case, as users want both a barcode reader and a card reader.

This commit implements support for this, while keeping the functionality
as close as possible to how it was before (eg. care was taken to not
break plug and play support).

oeiter added a commit to oeiter/odoo that referenced this issue Jun 10, 2016

8.0 (#6)
* [FIX] purchase: _get_price_unit_invoice

If the costing method of the product is "average", the price unit
of the stock move is set in the currency of the field "price_currency_id"
with the function "do_partial" (addons/stock/stock.py).

opw:672552

* [I18N] Update translation terms from Transifex

* [FIX] res.partner: modifying users requires extra access

* [FIX] base: require wizard for passwd change

* [FIX] base_import: avoid JS error in callback

* [FIX] base: only run postinstall tests for installed or updated modules

Uninstalled modules are skipped with the filtering on the state.
Fixes #9768, Closes #11378

* [REV] usage of m2m listview for o2m

Turns out to break way more than it fixes.

* [FIX] doc: configuration file destination

db_name instead of dbname

Closes #11603

* [FIX] website: prefer to get exact language

request.website.get_languages returns a list of tuple in the form:

        (`language code`, `language name`)

With this commit the code first check if there is a language exactly
matching, and only if failed check if there is a match on the short
form.

closes #11613
opw-672412

* [I18N] Update translation terms from Transifex

* [FIX] crm_partner_assign: avoid report view deletion

The SQL view `crm_partner_report_assign`
makes a join on `account_invoice_report`

A column is added to
`account_invoice_report` in the module
`sale` (`section_id` is added to the view),
making the SQL view `account_invoice_report`
replaced automatically at the install/update
of the `sale` module, which leads
to the automatic deletion of the SQL
view `crm_partner_report_assign`,
because the SQL view `account_invoice_report` is
altered.

Therefore, after the install/update of the `sale`
module, the view `crm_partner_report_assign` was
deleted, and the "partnership anaylsis" unusable.

This revision makes sure to init the
`crm.partner.report.assign` report after
every init of the `account.invoice.report`.

opw-674177

* [FIX] res.partner: relax condition in 3ab436f

Users may sometimes need to edit their own partner records directly,
although indirect access by writing on `res.users` directly works
fine in most cases.

* [FIX] web: prevent crash in rare case with status field

Current behavior before PR: if you create a new record within a one2many
field and the model's form has a clickable status bar defined, clicking
this status bar will raise an exception because the virtual id
(one2many_v_XXXX) will be passed to the model's write method

Desired behavior after PR is merged: clicking just changes the cached
value

* [FIX] website_event_sale: get_unit_price with event ticket

When the line is linked to an event ticket, the price must be taken
on the ticket.

Fixes #11521

opw:673176

* [FIX] website_sale: verify match between TX and SO amount

When processing a payment transaction, double-check the
match between the amount of the transaction and the
amount of the SO, to be sure that we won't be validating
a SO that has been modified since the payment.

Such cases have to be double-checked manually.

Also add a bit of extra logging to make auditing ecommerce
transactions easier.

* [FIX] paypal: no spurious warning about IPN version

In addition to being mostly useless because Paypal's API
changes are supposed to be backwards-compatible, this
warning was using inconsistent version numbers.

Switched to a simple INFO line with IPN version.

* [IMP] point_of_sale: migrate POSBox to Raspbian Jessie

The main reason for doing this is supporting the new Raspberry Pi 3. No
functional changes where made.

For Raspbian Wheezy we used to download the full image and strip it as
best we could to obtain a reasonable image size for people to
download. Since Raspbian Jessie the Raspberry Pi Foundation has started
releasing an official minimal image (Raspbian Jessie Lite) which we will
use from now on to build our image. One downside of this is that the
minimal image is a 1.3 GiB image which is too small for our
purposes so it has to be resized.

Because Raspbian Jessie migrated to systemd we cannot rely on
/etc/init.d/rcS to set up the ramdisks anymore. Jessie provides a
compatibility layer so old SysVinit scripts still work but rcS does not
block like it does in a SysVinit system, it is run in parallel with
other startup services. In our case this is a bad thing as setting up
the ramdisks has to be done before any other services are started. To
accomplish this the rcS hack has been migrated to a systemd service
running before basic.target and with DefaultDependencies=no. This has a
similar effect as the rcS hack because normal systemd services (with
DefaultDependencies=yes) all require basic.target by default.

* [IMP] point_of_sale: redirect POSBox image init script output to file

Useful when updates to the initialization scripts don't go as
planned. This leaves something to inspect.

The initialization script already automatically stops (because of 'set
-o errexit') but it was a bit tricky to actually see what went wrong
because scrollback in QEMU isn't great.

* [IMP] point_of_sale: move POSBox AP to a less used subnet

When the POSBox boots without a network cable attached it will
automatically launch a wireless AP that people can connect to. This
allows them to configure what wireless network the POSBox should connect
to.

This wireless AP was configured to use the 10.10.0.0/24 subnet. The AP
itself was on 10.10.0.1. Although this is fine if used as intended it is
a quick way to take down an existing network if you where to plug in an
ethernet cable after the wireless AP has started. 10.10.0.1 is commonly
used by routers all over the world and plugging in a booted POSBox into
their networks will cause serious issues because the POSBox will share
the same IP as the router.

This moves the POSBox AP to the 10.11.12.0/24 subnet, with the AP on
10.11.12.1.

This also makes the DHCP server listen only on wlan0 because otherwise
you can end up with two DHCP servers on the same network which would
still break stuff.

* [IMP] point_of_sale: release POSBox image v14

Marks official support for the Raspberry Pi 3.

* [FIX] web: fix layout issue in Chrome 50

The height was not distributed anymore to the children of a `table-row`
element if they are not themselves `table-cell` elements.

Fixes #11629

* [FIX] account_analytic_analysis: comment field in account.invoice

When creating an invoice from a contract with button "create invoices",
the description linked to the contract has to written in the comment field
of the invoice.

opw:671660

* [FIX] qweb: escape alt-field properly in image widget

This is very unlikely to be exploitable because the
alt-field usually comes from master data (e.g. product
names) that can't be injected.

Courtesy of Naglis Jonaitis

* [FIX] point_of_sale: do not hide transactional errors

Catching and hiding database transactional errors can
sometimes cause a POS order to be entirely lost.

When it occurs, the transaction won't be committed
into the database, and if there is only one order
in the batch, the server won't return any error to
the frontend POS which will consider the order saved.

* Revert "[FIX] web: fix layout issue in Chrome 50"

or how to break every internet explorer releases while
attempting to fix chrome 50

* [FIX] web: fix layout issue in Chrome 50

A 100% height is not distributed anymore to the children of a table-row
if they are not themselves table-cell in Chrome 50. This breaks the
indenpendent scrolling of the menu and the view manager.

However, setting the `table-cell` display breaks the layout in Internet
Explorer.

When the webclient is loaded by Chrome 50, we load a stylesheet
forcing a `table-cell` for display.

Seems to be related to https://bugs.chromium.org/p/chromium/issues/detail?id=353580
and https://chromium.googlesource.com/chromium/src.git/+/8876584335b48c99cf8df552ef4d8efebb131041

Related to e1a9919
Fixes #11629

* [FIX] point_of_sale: deal with Chrome 50's new height inheritance

Chrome 50 treats percent-height divs inside of auto-height cells as
auto [1]. So from now on it's important that an explicit 'height: 100%' CSS
property is set on parent tds, otherwise you'll end up with elements
with a height of 0.

DO NOT FORWARD-PORT!

[1] https://chromium.googlesource.com/chromium/src/+/8876584335b48c99cf8df552ef4d8efebb131041

* [FIX] purchase: Shipping  exception when cancelling a PO

When canceling and clicking on "reset to draft" button a PO with
invoicing method = Based on generated draft invoice, the purchase
workflow led to a shipping exception.

To be in state done the PO must have:

All its PO lines invoiced with _set_po_lines_invoiced
All its incoming shipments done with test_moves_done

opw:673561

* [FIX] point_of_sale: adapt to Chrome 50's new handling of cell heights

Chrome 50 treats percent-height divs inside of auto-height cells as
auto [1]. So from now on it's important that an explicit 'height: 100%' CSS
property is set on parent tds, otherwise you'll end up with elements
with a height of 0.

An extra difficulty is that this new height property on
subwindow-container will result in the element being as high as his
parent table. So the collapsed trick doesn't work anymore in the
customer list.

This has to be done conditionally. The proposed workaround of adding
100% height to parents of affected elements causes issues in IE/Edge
because the effect of adding a height in percent to a table-{cell,row}
element is not defined by CSS [2].

DO NOT FORWARD-PORT!

[1] https://chromium.googlesource.com/chromium/src/+/8876584335b48c99cf8df552ef4d8efebb131041
[2] http://stackoverflow.com/a/27384730

* [FIX] account_asset: asset_create

When creating assets from invoice lines, the system must check
that assets have not already been created for the related invoice.
If assets already exist then these assets have to be removed.

Used case:

- In the purchase journal, tick "allow canceling entries"
- On a supplier invoice line, set an asset category
- validate the invoice
- cancel the invoice
- set to draft
- validate the invoice

Before the fix: the asset was created twice.
After the fix: A warning is raised if an asset already exists for the invoice.

opw:674674

* [FIX] hw_escpos: RBG images do not necessarily have an alpha channel

* [FIX] audittrail: prevent loop between models having *2m between each other

When setting rules on models having o2m/m2m relationship
between each other
e.g.
- `res.partner`:
  o2m `sale_order_ids` to `sale.order`
- `sale.order`
  o2m `message_follower_ids` to `res.partner`

an infinite loop could occur if records
of these models referenced records of the
other models in their o2m relationships
e.g.
 - `res.partner` ID 68:
   `sale.order` ID 9 in its `sale_order_ids`
 - `sale.order` ID 9:
   `res.partner` ID 68 in its `message_partner_ids`

This revision solves this use case, by passing the already
treated records in the context and checking that the records
haven't yet be treated before making the recursive call.

This revision makes sure to not break the API of methods
`get_data_context` and `prepare_audittrail_log_line`
(a new parameter had to be introduced for the above purpose)

opw-670904

* [FIX] web: fix layout issue in Chrome 50 (again)

Makes the fix in f992c8e
specific to the view manager of the main oe_application
container, in order to avoid disrupting other view manager
occurrences (such as the ones in modal windows or x2many
list views).

Fixes #11629 (again)

Note: Hopefully the Blink team will fix Chrome so we can
get rid of this hack in the future:
  https://bugs.chromium.org/p/chromium/issues/detail?id=603507

* [FIX] server: support psutils >= 4.0

In version 3, process.memory_info() returns only rss and vms
In version 4, it now returns rss, vms, shared, text, lib, data and dirty
Automatic unpacking is no longer possible in 4.0

Fixes #11052, Closes #11459

* [CLA] signature for erocre

Closes #11639

* [CLA] signature for stephen144

signature #11459

* [FIX] point_of_sale: display correct uom on weighable products

Everything's displayed fine on orderlines with weighable products, this
only affected the small blue labels on the products.

opw-674264

* [FIX] web: fix db manager layout in Chrome 50

Complement of f992c8e,
to be reverted in saas-6+ and in 8.0 when Chrome's
fix reaches the stable Chrome channel.

Fixes #11629

See https://bugs.chromium.org/p/chromium/issues/detail?id=603507

* [FIX] stock_landed_costs: use correct UoM

Use the normalized quantity, otherwise the amount per unit is wrongly
calculated.

* [FIX] stock_landed_costs: former_cost_per_unit precision

The precision of `former_cost_per_unit` should not be set. Indeed, a
stock move can contain several quants with different unit prices.
Therefore, we should not round the field when stored, otherwise the
difference per unit will not be calculated correctly.

This is a workaround since we cannot change the DB structure in stable.

opw-675222

* [FIX] stock_account: account/valuation inconsistencies

When the product price is divided per product unit, inconsistencies
may arise between the real stock valuation and the stock valuation
account. This is likely to happen when a product is bought in a UoM
different from the standard UoM of the product.

A numerical example is the following: a box of 13 is bought for 15.00.
An amount of 15.00 is recorded when the products enter the stock. If the
product leave the stock one at a time, 13 entries of 1.15 are recorded
(15.00/13 = 1.153846... ≈ 1.15), which is then equal to
13 * 1.15 = 14.95. In this case, All the products have left the stock
(stock valuation is zero), but 5 cents remain on the account.

This is of course even worse the higher the ratio is. For example, a
box of 4.00 split into 1000 units sold piece by piece will never be
recorded when a product leaves the stock.

The fix is to record the rounding difference on a specific quant. In the
previous example, instead of adding 1.153846... on the unit cost of the
13 units, we do the following:
- 12 units to which we add 1.15 on unit cost
- 1 unit to which we add 1.20 on unit cost

opw-675222

* [FIX] stock_landed_costs: account/valuation inconsistencies

When stock landed costs are divided per product unit, inconsistencies
may arise between the real stock valuation and the stock valuation
account. This is likely to happen when several products are bought, but
these products leave the stock one at a time.

A numerical example is the following: a landed cost of 15.00 is applied
to a purchase of 13 units. An amount of 15.00 is recorded when the
products enter the stock. If the product leave the stock one at a time,
13 entries of 1.15 are recorded (15.00/13 = 1.153846... ≈ 1.15), which
is then equal to 13 * 1.15 = 14.95. In this case, All the products have
left the stock (stock valuation is zero), but 5 cents remain on the
account.

This is of course even worse the higher the ratio is. For example, a
landed cost of 4.00 split into 1000 units sold piece by piece will never
be recorded when a product leaves the stock.

The fix is to record the rounding difference on a specific quant. In the
previous example, instead of adding 1.153846... on the unit cost of the
13 units, we do the following:
- 12 units to which we add 1.15 on unit cost
- 1 unit to which we add 1.20 on unit cost

opw-675222

* [FIX] stock_landed_costs: precision

Oversight of commit bd025cd.
I'm an idiot, I should have checked that another solution was applied
from 9.0 with accounting refactoring. We apply it here as well.

* [FIX] hr_timesheet_invoice: fully qualify grouped fields in SQL view

Avoids name collisions when custom columns are involved.

Closes #11743

* [FIX] membership: update membership state daily

This is a complement to commit 6d4a78a. The 'invoiced' status should
be removed automatically once the membership is expired.

opw-672259

* [FIX] stock_account: stock history view

The stock history doesn't take into account internal moves. For example,
in the following situation:
- Receive 1000 products to Internal Warehouse 1
- Move these 1000 products to Internal Warehouse 2

The 1000 products are still recorded on the Internal Warehouse 1.

opw-672277

* [FIX] mail: Missing translation `Send a message to the group`

The above string was not translated, when creating a new
discussion group, in the group message input placeholder.

opw-673712

* [FIX] account_asset: compute depreciation board

From af61494
Allow to compute the depreciation when the asset is in state: draft

* [FIX] website_event: event dates within event timezone

The dates of an event on the website was always
within the user timezone. If not signed in,
it was within the public user timezone
(which is quite not user-friendly to change)

For this purpose, we weed get the context
from the record (the context used when using
`record.with_context`), and therefore
the QWeb field
`ir.qweb.field.datetime` is slightly altered,
to use the context from the record.

opw-675427

* [FIX] ir_qweb: regression of 8395f0d

This revision corrects a regression introduced by
8395f0d:
the possibility to call
`ir.qweb.field.datetime`.`value_to_html` with
a datetime string directly, instead of calling
`ir.qweb.field.datetime`.`record_to_html`
(which call `value_to_html` as well).

opw-675427

* [FIX] mail: mail template translation

Do not match with source
Closes #11789

* [FIX] sale: untranslated label

attribute string is translatable on a search filter, not name (which is used as fallback label
Closes #10419

* [FIX] account: Allow to select sale taxes in bank statement reconciliation process. Courtesy of adrienpeiffer. PR #11673

* [FIX] orm: do not save empty translation as 'false'

When writting a value on a translatable field in a different language than
English, the submitted *raw* value was saved in the database.

This could cause the following issues:
- empty value (provided as `False` by the web client) saved as the string
  'false' in the translations table
- no encoding or sanitization convertion
- ignore size parameter on the translatable field

Process the submitted translation through symbol_set method to clean it before
storing it blindly in the database.

This allows to convert `False` into `''` for empty value and fixes #10862

* [FIX] models: fix *2many multi-onchange bug

This fixes the case where the lines of a one2many field are modified several
times by onchange methods: instead of retrieving the most recent updates, we
merge them with former updates.

This solution was written as an improvement of a proposal made by Alexis
Delattre and Sébastien Beau as #11620.

* [I18N] Update translation terms from Transifex

* [FIX] res_company: some information missed on company creation

On the `res.company` model, the fields
`name`, `phone`, `email`, `website`, `vat` are
related field on the `partner_id` of the company.

When creating a new company, the partner
associated to the company is created automatically,
it's handled in the overrided `create` method
of the model, but it forgots the values
`phone`, `email`, `website`, `vat` at the moment
the partner is being created.

opw-675526

* [FIX] web: Allow for translation of a login error message

Closes #11815

* [FIX] website_sale: log if no pricelist

The pricelist field is not a mandatory field on the partner. A default
value is usually defined for any new partner created. However, if the
pricelist is manually removed from the partner, errors (tracebacks) will
occur in the eCommerce when no pricelist is found.

We cannot make the field mandatory, as it could potentially break the
workflow of some users which are not using eCommerce. Therefore, we
simply log an error message to help debugging.

opw-673453

* [FIX] account_asset: asset_create

When creating assets from invoice lines, the system must check
that assets have not already been created for the related invoice.
If assets already exist then these assets have to be removed.

Used case:

- In the purchase journal, tick "allow canceling entries"
- On a supplier invoice line, set an asset category
- validate the invoice
- cancel the invoice
- set to draft
- validate the invoice

Before the fix: the asset is created twice.
After the fix: the asset is created once.

opw:674674

* [FIX] calendar: correct search on mail.message and ir.attachment

Handle the case of immutable (tuple) domain leafs.

* [FIX] tools: export translated fields not included in _columns

Non-stored new API computed fields are only defined in _fields
but not in _columns, and they were never exported within translation
files.

Closes #9081

* [FIX] fields: filter result of 2many related fields with related_sudo

When traversing relational fields as superuser, you end up with a recordset for
which only a subset is accessible to the current user.  An earlier fix to this
issue completely dropped the `related_sudo` feature; change its implementation
to keep the feature.

* [FIX] expression: fix missing results in direct search on many2many fields

This case corresponds to searches like `[(field, 'ilike', name)]` where `field`
is a many2many field.  The domain processing performs a `name_search` on the
field's comodel, then makes the relation match the returned record ids.

Problem: the call to `name_search` uses the default limit (100), and this makes
the search return less results than expected.  Make the search complete by
forcing `limit=None`.

* [FIX] expression: fix missing results in direct search on many2many fields

This case corresponds to searches like `[(field, 'ilike', name)]` where `field`
is a many2many field.  The domain processing performs a `name_search` on the
field's comodel, then makes the relation match the returned record ids.

Problem: the call to `name_search` uses the default limit (100), and this makes
the search return less results than expected.  Make the search complete by
forcing `limit=None`.

* [I18N] Update translation terms from Transifex

* [I18N] Update translation terms from Transifex

* [FIX] project: make copy overridable in v8 api

Without the proper decorator, the method is matched as `cr_ui_context`.
This is because the `guess` mechanism expects a name `res_id` instead of
`record_id`.
For stability reason it is better to add the decorator than modify the signature
of the method.
Closes #11735

* [CLA] update signature of initos

Changes due to changes in the legal form of the company
Closes #11759

* [FIX] product_expiry: 'product_id' in context

When creating a new lot from an incoming picking transfer, the product_id
is written in the context.

opw:674608

* [FIX] account: A negative amount with sale taxes on bank statement line must be considered as a refund. Courtesy of Adrien Peiffer (ACSONE). PR #11877

* [FIX] purchase: Context propagation in wkf_confirm_order.

Closes #11916

* [FIX] account: set reconciliation date as admin

The user performing reconciliations may not always
have the right to update the corresponding partners,
for example if a partner is also a system user.

Doing it as super-user after verifying that the
user is indeed allowed to reconcile journal items
works around the problem.

Fixes #11931

* [FIX] import: broken translation cache for absent translation of 'false'

Backport of 7d732b1

Fixes #979

* [IMP] product: order attribute by name

closes #11951
fixes #11602
opw-673857

* [I18N] Update translation terms from Transifex

* [IMP] web: multi-click on save on view form (no fp)

When clicking on save several time when editing a view form it can be
saved several times which can be an issue for one to many.

The normal happenstance when saving should be as follow:

-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

But when clicking several time, it could become:

-> save (click)
-> wait write result
-> received write result
-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

This commit only reinstate the saving feature once the form is reloaded.

closes #11926
opw-671793

note: no need to forward-port

* [FIX] google_calendar: user invited to one recurring event occurence only

When a Google user was invited to one occurrence of a recurring event,
but not to the recurring event itself (and the other occurrences, therefore),
and the user owner of the recurring event did not sync his calendar in Odoo,
the event occurrence could not be synced in Odoo, because it attempted
to attach it to the parent/main recurring event, which was not present
in Odoo.

In such a case, Odoo now syncs the event occurrence as a simple classic
event. In addition, if the owner of the event sync his calendar with Odoo
afterwards, or if the user is invited later to the main/parent recurring event
and then sync again his calendar,
it then attach the event occurrence that was previously
synced to this main event, to avoid events duplication.

opw-676535

* [FIX] fields: invalidate x2many fields with a domain

Invalidate the cache of a x2many field when any of the fields appearing in its
domain is modified.  Use the invalidation triggers mechanism for that purpose.

* [FIX] sale: outdated .pot file

Was having content of website_quote

* [FIX] account_anglo_saxon: default account value

The default account value set for purchases invoices
lines for product of type Service was wrong: It used
the stock account, which is wrong as a Service
as no stock. Instead, it should left the product
expense account, as usual.

opw-676110

* [FIX] google_calendar: do not copy user Google info

If a user syncs his calendar with Google,
and a second user is created in the database by copying this first
user, the Google information of the first user was copied
(The Google account to sync, the token to use, the last
syncrhonization date, ...), which is obviously wrong.

On calendar syncrhonization, which can be done
manually or automatically with the according cron, all
events of the first user were created a second time,
as a second user synchronized the same Google Calendar.

opw-674141

* [FIX] http: clear environment/caches on transaction rollback

Backport of 8423a0d

Clear the cache/environment in addition to rolling back
the cursor, in order to retry the transaction with fresh
data, not partially stale data.

* [FIX] account: periods in general ledger report

When "Filter by Periods" is choosen in the wizard, the right periods
must be set in ctx to filter the account moves according to the right periods

opw:674593

* [ADD] tools: Swiss German language

Closes #4722

* [ADD] tools: Burmese language

* [FIX] purchase: date planned

When a PO is copied, the date planned of the order lines should be
recomputed based on the order date.

opw-675480

* [FIX] mail: remove unneeded call to `refresh()`

With new api, this call is not wanted anymore. The cache is cleared
automatically, no need to clear the whole cache; that's a little bit
overkill and reduce performances.

* [IMP] account: improve reconciliation speed

 - Only invalidate cache for fields and records we modify
 - Rewrite query to be more efficient
 - Avoid o2m commands to be more efficient; write directly on reverse m2o

* [IMP] models: mark records as recomputed as soon as they are

When recomputing stored function fields, the `write` may trigger a
cache invalidation which lead to a recompute of all the recordset
values, even the ones already saved in database.

* [FIX] purchase: fiscal position from onchange_partner_id

Used case:

-Configure admin as multi-company user
-Create 2 fiscal positions (one for company "Odoo BE" and one for company "Odoo US")
-Set admin on company "Odoo BE"
-On supplier (Asustek) configure fiscal position Odoo BE
-Set admin on company "Odoo US"
-On supplier (Asustek) configure fiscal position Odoo US
-Configure a product (Laptop E5023) with:
   *route "Buy"
   *supplier (Asustek) without company
   *reordering rules (min qty: 20, max qty: 40)
-Set admin on company "Odoo BE"
-Run scheduler via the cron

Behavior before the fix:

-Fiscal position on the created PO is the fiscal position for "Odoo BE" (and PO is for the company "Odoo US")

Behavior after the fix:

-Fiscal position on the create PO is the fiscal position for "Odoo US".

Closes #11537

opw:673288

* [FIX] website: URL of website_published is wrong when using next/previous

Steps to reproduce:

-go to runbot 8.0 and connect
-go into human ressources/job positions
-pass into list view and click on the first item
-click on the url to open this record into the website (website_published)
-go back (back into the browser)
-you're now into the form view again and then next step is to click on the button
"next" to access the following record
-click on the url of website_published

Before the fix:

wrong record, this is the previous one that is into the href

After the fix:

correct record with the correct id into the href

Closes #11800
opw:675832

* [FIX] l10n_fr: FIX default Sale/Purchase tax. Courtesy of alexis-via. PR #11139

* [FIX] tools: correct Burmese locale

* [I18N] Update translation terms from Transifex

* [FIX] base: Add missing return values

The _auto_init method was overriden without keeping the return value of
the super on some models.
This break the new stored computed fields computation at field creation.

Closes #11985
opw-677232

* [FIX] account: readonly bank statement line

Like in "view_bank_statement_form" when a line is linked to
a journal entry, this line must be in readonly.

opw:676344

* [FIX] mail: receiving a notification without notifying the parent message.

Used case:

If you add a user which has no acces on a model(ex:purchase.order)
as follower on a record of this model. When someone responded by email on
this record, and when a message is sent on this record, an exception is raised
at the connection of the user added as a follower.

Fix:

To have the rights to read the message, a read notification for this follower must
be added to all parents of this message.

Closes #11902

opw:676699

* [IMP] web: multi-click on save on view form (no fp)

When clicking on save several time when editing a view form it can be
saved several times which can be an issue for one to many.

The normal happenstance when saving should be as follow:

-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

But when clicking several time, it could become:

-> save (click)
-> wait write result
-> received write result
-> save (click)
-> wait write result
-> received write result
-> reload the form with updated data and updates buttons

This commit only reinstate the saving feature once the form is reloaded.

related to opw-671793
backport of 8.0's dd714ac

note: no need to forward-port

* [FIX] l10n_be: allow more than 120 periods

The widget selection only shows the first 120 results.
The selection was most likely set to avoid creating new entries but it can be
done with an option tag. This allows to use the search on many2one fields.

opw-677908

* [FIX] mail: to prevent infinite loop

Introduced by fac0442

* [FIX] hr_holidays: missing context

Closes #9386, opw-677958

* [CLA] signature for Baldi Leandro (lbaldi)

Closes #12110

* [I18N] Update translation terms from Transifex

* Revert "[FIX] res.currency: allow duplication"

This reverts commit d780f94.

Did not work due to the size=3 on name field that strips the code to the first
three letters only (removing the " (copy)" part).
Copying a currency has a few business cases as the rates are not copied.
As can not increase the size of a field in stable, remove the method that had no
effect.

Fixes #11036

* [FIX] account: partner_id set on a bank fee

Used case:

-Create several customer invoices and validate them
-Register a payment without any partner_id and in a bank statement for an amount
a bit lower than the total of the invoice (the difference is the paypal fees)
-Reconcile the invoices with the payment and create a write-off for the paypal fees
-When you close the bank statement, check the journal items, the paypal fees are
automatically assigned with a partner.

Fix:

-When creating the account move line for the fee, if all the account move lines
linked to the move are for different partners then you cannot determine the partner
of the fee.

opw:674822

* [FIX] hr_payroll: avoid infinite recursion

The get_recursive_parent function seemingly depended on the ordering of
the rule_categories recordset which happens to work fine in most cases
because all data first defines the parent before defining the children
rule categories. But if you happen to do it the other way around it
won't work and it will infinitely call itself because:

if rule_categories[0].parent_id:
    rule_categories = rule_categories[0].parent_id | rule_categories

won't change the value of rule_categories[0].

opw-673222 (loosely related)

* [IMP] gamification: prevent misconfiguration

Prevent selecting wrong field or models or computed fields

Fixes #8545

* [FIX] web: raise a warning for bad domain

When a user wrote a wrong value in char_domain field it should raise a warning
message instead of a traceback.

Backport of b3a88b6

opw:676783

* [FIX] calandar: all day events email notification

When sending a notification email to an event attendee
for an all day event, the timezone must be ignored
as the `start` and `stop` datetime are stored as
the day date + '00:00:00'. If the timezone is applied,
for users being in a negative timezone (such as an American
timezone), the day displayed would be the day just before.

opw-677019

* [FIX] web: fix backport #4c7a9bd

* [FIX] gamification: bad backport to 8.0

UserError was defined in version 9, not 8

* [INP] gamification: skip check for not required fields

Could get a definition with a model only

* [CLA] Rock Solid Solutions signs corporate CLA.

Closes #12182

* [FIX] sale: propagate context

Closes #9521

* [FIX] server: Do not listen when --no-xmlrpc is set

This is a fix for f04f409, which only
prevented the workers from being spawned in Prefork mode, while the
socket was still being bound to - this is a problem when starting a
worker-only server as it cannot coexist with the XMLRPC server on the
same machine.

Closes #1828

* [FIX] crm_partner_assign: minimum access rights to employee

Give the same as access rights to the employee as for the public user.
This patch is needed to allow a user to access the partner form.
Same for portal.
The list of grades in not a confidential information.

Fixes #7719

* [FIX] point_of_sale: respect user timezone for all data in Sale Details

9f0120d solved this issue already, but
it was only applied to POS orderlines. There is other data on the
report (eg. payments, taxes, ...) that should also correctly respect the
user time zone as well.

opw-678748

* [FIX] website_sale: allow to override product order on shop

Close #11202

* [FIX] payment_ogone: missing key

The key 'PAYIDSUB' should be added in the list of SHA-OUT keys.,
otherwise the signature is wrong.

opw-678718

* [FIX] account: substitution in aged partner report

'foo %s bar' % 'alice' if False else 'bob' returns 'bob', not 'foo bob bar'

The previous strings returns '>=' when the direction is future while it should
be 'COALESCE(l.date_maturity,l.date) >= %s'

Fixes #10654
Closes #10695

* [FIX] sale: avoid division by zero in _get_price_reduce

close #11999

* [I18N] Update translation terms from Transifex

* [CLA] Update Therp BV's signature

To have consistent email in author and signer key.
Also update list of contributors as Stefan is no longer working for Therp BV.

Closes #12202

* [CLA] corporate signature for DevCo Colombia

Closes #11755

* [FIX] account,*: preserve deactivated taxes

By default, when reading a m2m field, entries that are
deactivated in the destination table are not included.
This behavior is desirable in some cases (e.g. for
"tags" or "categories", but not for entries that
significantly impact other field values in the parent
record, such as taxes.

The problem is rather obvious: when displaying a
paid invoice that used taxes that are now deactivated,
the taxes are hidden while they still affect the
computed amount. And after cancelling + resetting
to draft, the tax is not taken into account anymore,
while still being linked.

Forcing the field-level (python) domain to include
both active and inactive entries solves the problem:
 - when reading, displaying and recomputing values,
   deactivated taxes will be included.
 - when trying to pick a tax, deactivated entries
   will still be ignored, as expected.

This commit applies the technique to all m2m
fields that refer to taxes.

Fixes #12066
opw-677751

* [CLA] Corporate signature for Aetna Softwares

Closes #12214

* [FIX] purchase: wrong call to super

opw-675480

* [FIX] crm,gamification: flexible reference to field

The field generation is most of the time following the pattern
`field_<table name>_<field name>`
but in case of name clash (e.g. res.partner.category - id and res.partner -
category_id), the id of ir.model.field is added at the end of the external id
during the field creation.

The more flexible way to link to an ir.model.field is to use the syntax
`search=[('model', '=', <model>), ('name', '=', <field name>)]`
to avoid errors as in #12192 when the "first" external id no longer exists.

Fixes #12192
Closes #12198

* [I18N] Update translation terms from Transifex

* [Fix] website_sale: add color value on attributes

xml template was using color name, because color index was empty.
It works in English, but once translated (in french e.g.) we have background-color:noir

Fix #12251

* [FIX] mass_mailing: filter emails to avoid duplicates

When subscribing a user to a mailing list, the `mail.mass_mailing.contact`
created is processed to identify it's name and email from the address (method
`get_name_email` called in `add_to_list` and `name_create`).
For a better consistency, the search of existing contacts should also be done
using the method `get_name_email`.

This avoids that subscribing twice `Example <example@example.com>` fails to
detect duplicates and creates two subscriptions.

Closes #12265

* [FIX] website_sale: `State` select readonly in shipping info

If we take the below facts:
 - The country select is set as disabled
   when Shipping is set to "Ship to the same address"
 - The disable property of select inputs is
   removed when shipping is set to
   `create a new address`:
   In `website_sale.js`:
   ```
   $selects.attr("disabled", value <= 0 ? null : "disabled" ).prop("disabled", value <= 0 ? null : "disabled" );
   ```

We can safely assume that the select input "State / Province" was supposed
to be set as `disabled` in the first place, not as `readonly`

Before this revision, State / Provice was greyed when choosing
"Create a new address" for shipping, and selecting the United States
(but the select input was still usable, though, it was just greyed)

opw-675739

* [FIX] website_forum: convert content of posted comment to plaintext

HTML content should be escaped before being sanitized. Any content (link, image,
code,...) that is acceptable in usual mail.message but should not be interprated
when posted on a comment of the forum.

Fixes #3737

* [FIX] l10n_lu: Change the sign for VP-IC-EX. Was PR #12041

* [I18N] Update translation terms from Transifex

* [FIX] fields: translations of the help of inherited fields

This is similar to revision 5414033

opw-673716

* [FIX] account: Exchange test failing on Jun 6

The test `test_balanced_exchanges_gain_loss`
failed on Jun 6, because it created a specific rate
for today's date at midnight
(e.g. on Jun 6, 201x-06-06 00:00:00) for the test purpose,
but a rate is created in the demo data for Jun 6 midnight exactly:
`base.rateUSDbis`, making the test confused about which rate
to use.

We solve this by making the test use the rate `base.rateUSDbis`,
modifying the rate for its own need, instead of creating a new
rate.

* [FIX] hr_evaluation: badly rendered form

The date was positioned inside the h1 and was badly rendered (field too small)
Fixes #2476

* [FIX] account_analytic_analysis: fpos of invoices

When an invoice is created automatically thanks to the cron task, the
superuser is used. However, this implies that the company of the
superuser will be used for the account invoice creation, leading to
potentially incorrect taxes and fiscal positions.

opw-669714

* [IMP] hw_scanner: support multiple simultaneously attached devices

The hw_scanner module not only supports barcode readers (although that
was it's original intention). It also happens to support certain card
readers (like the MagTek Dynamag we use for Mercury) because they act
the same way as barcode scanners (like a keyboard and end sequence with
ENTER).

Before we supported Mercury there was no real reason to support multiple
devices on the POSBox, because it didn't make much sense to attach >1
barcode reader to the same POSBox. With Mercury however, this is a real
use case, as users want both a barcode reader and a card reader.

This commit implements support for this, while keeping the functionality
as close as possible to how it was before (eg. care was taken to not
break plug and play support).

* [FIX] base_import: disable tracking during validation

Force the value tracking_disable to be make sure that the validation (which is
supposed to have no impact), will not send any email.

Fixes #3173

* [FIX] website_quote: delay in SO line

When creating an SO line with a quotation template, the customer
lead time must be set.

opw:678039

* [IMP] l10n_es: New taxes, taxes codes and fiscal positions according law changes

* v5.2: Añadida retención 19,5% arrendamientos.
* v5.1: Renombrado todo lo relacionado con arrendamientos para no incluir la
  palabra "IRPF", ya que no es como tal IRPF.
* v5.0: Se ha rehecho toda la parte de impuestos para dar mayor facilidad de
  consulta de los datos para las declaraciones de la AEAT y para cubrir todas
  las casuísticas fiscales españolas actuales. Éstas son las características
  más destacadas:

  * Desdoblamiento de los impuestos principales para bienes y para servicios.
  * Nuevo árbol de códigos de impuestos orientado a cada modelo de la AEAT.
  * Nuevos códigos para los códigos de impuestos para facilitar su
    actualización.
  * La casilla del modelo viene ahora en la descripción, no en el código.
  * Posiciones fiscales ajustadas para el desdoblamiento.
  * Nuevo impuesto y posición fiscal para retención IRPF 19%.
  * Nuevo impuesto para revendedores con recargo de equivalencia.
  * Nuevas posiciones fiscales para retenciones de arrendamientos.
  * Pequeños ajustes en cuentas contables.

Closes #8453

* [IMP] l10n_es: Added a new tax "IVA soportado no sujeto"

* [CLA] individual signautre for Patrik Lermon (kler)

Closes #12347

* [FIX] sale,procurement: use super instead of direct call

Otherwise inheritance is not properly propagated

Closes #12337

* [CLA] signature for sheltonfreddy141

Closes #12326

* [FIX] purchase: do not allow creation on purchase.order.line

To match the behaviour on sale.order.line.
Purchase line form is expected to be open in popup (where parent is defined),
not individually when creating a line alone is not useful.

Fixes #6644
Closes #12325

* [FIX] l10n_fr_hr_payroll: children categories

When a rule category has children, the total of the category should
include the total of the children categories.

opw-673222

* [FIX] l10n_fr_hr_payroll: use `child_of`

Previous commit 8f71292 searches recursively for children of a rule
category. Use `child_of` instead which is way more efficient.

opw-673222
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment