{"push_id":4222011392,"size":396,"distinct_size":396,"ref":"refs/heads/12.0","head":"e1d6c521a4b49d7f11985d29ba173af0563a931f","before":"b2c391ee31bf99bef6c8143680e55d1ba6fdb754","commits":[{"sha":"ed90ad0a01b25c25953b5d111e636317c00ca83c","author":{"name":"Richard Mathot","email":"5f1d1f6ddf3e29edc21cd1c407a621f18d6c734e@odoo.com"},"message":"[FIX] mail: restore \"pencil\" icon behaviour in Followers widget\n\nWhen editing the followers, the \"pencil\" icon that leads to the edition\nof subtypes should be displayed only when \"debug\" mode is activated.\nThis commit restores this behaviour, as it was not the case anymore.\n\n`has_group()` looks for static groups stored in database, whereas\n`base.group_no_one` is dynamically added/removed depending on the flag\n`debug` of the request.\n\nWe thus use `models.user_has_groups()` that adapts on the `debug` flag.\n\nopw-2055848\n\ncloses odoo/odoo#36327\n\nSigned-off-by: Richard Mathot (rim) <rim@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/ed90ad0a01b25c25953b5d111e636317c00ca83c"},{"sha":"149d782a0eb02fe036620fcd05d074886f1da4fe","author":{"name":"Christophe Simonis","email":"0e117f2b429bfa19751522a564765b352cb7b946@odoo.com"},"message":"[MERGE] forward port branch saas-11.3 up to 79ff916b596","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/149d782a0eb02fe036620fcd05d074886f1da4fe"},{"sha":"15f6170bed1cf64537339d698fb78b21b98baeae","author":{"name":"Alexandre Kühn","email":"22220c18caede9806cb42c8e2b41136d711673bf@odoo.com"},"message":"[FIX] bus: background slave tabs should not loose notifications\n\nBefore this commit, some notifications may be lost while forwarding\nthem between browser tabs by means of the local storage (i.e. from\nthe master tab to slave tabs).\n\nThis happened when some slave tabs are in the background and are\nthrottled by the browser: the master tab writes twice in the local\nstorage (to notify slave tabs of new notifications), and slave tabs\ndrops the 1st notification. This is caused by the mismatch between\nthe new value in the local storage event and the actual value in the\nlocal storage. For example:\n\n```\n  t(0) - Master tab receives `message` notification;\n  t(1) - Master tab writes notifications (= `message`) in local\n         storage;\n  t(2) - Master tab receives `message_seen` notification;\n  t(3) - Master tab writes notifications (= `message_seen`) in\n         local storage;\n  t(4) - Slave tab detects new notifications (= `message`)\n         from local storage event, but drops it since it does not\n         match actual local storage value (= `message_seen`);\n  t(5) - Slave tab detects new notifications (= `message_seen`)\n         from local storage event, and handles it since it\n         matches actual local storage value (= `message_seen`);\n  => Notifications received + handled:\n        - master tab: `message`, `message_seen`\n        - slave tab:  `message_seen`\n  => Slave tab lost \"message\" notification.\n```\n\nThis commit fixes the issue by letting all tabs handle any local\nstorage events, regardless of the actual value in the local storage.\nIn the example above, this means the slave tab will not drop the\nnotification `message` at t(4).\n\nTask-ID 2044231\n\nCloses #36177","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/15f6170bed1cf64537339d698fb78b21b98baeae"},{"sha":"7bdcef9c1c4d42f39302403e1c5e56682788022c","author":{"name":"Alexandre Kühn","email":"22220c18caede9806cb42c8e2b41136d711673bf@odoo.com"},"message":"[FIX] web: add support for `localStorage.key()` and `.length`\n\nThese operations on local storage are necessary in order to\nloop on all local storage keys.\n\nCloses #36177","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/7bdcef9c1c4d42f39302403e1c5e56682788022c"},{"sha":"a9bb6694876165aaf5d9a3af0823b2b5e37b866f","author":{"name":"Goffin Simon","email":"b3ed2cf313e7546085c3c50622143ff31e467d23@odoo.com"},"message":"[FIX] mrp: Kit in manufacturing\n\nSteps to reproduce the bug:\n\n- Create a MO with a product with a normal bom B\n- Save the MO\n- Change the type of B to phantom\n- Try to produce the MO\n\nBug:\n\nIt was impossible to cancel or confirm the MO.\nIt's not allowed to produce a MO with phantom bom.\n\nopw:2061958\n\ncloses odoo/odoo#36329\n\nSigned-off-by: Simon Goffin (sig) <sig@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/a9bb6694876165aaf5d9a3af0823b2b5e37b866f"},{"sha":"40b57ca824e967a9221f7834e4c9b3db7a4849d0","author":{"name":"Alexandre Kühn","email":"22220c18caede9806cb42c8e2b41136d711673bf@odoo.com"},"message":"[FIX] bus, mail: correctly synchronize document chat windows\n\nBefore this commit, there could be an infinite loop when changing\nthe chat window state of a document chat window.\n\nThis is caused when mutiple tabs overwrite the chat window state\nwith a different value everytime, resulting to an infinite loop.\nAccross multiple tabs, `setItem` and `onStorage` are not synchronous.\nThat's why tabs should communicate through local storage events\ninstead of actual value in the local storage.\n\nTo illustrate the issue, suppose there are 2 tabs (T1 and T2) with\none document chat windows (C) and the following user interactions:\n\n     -  T1 and T2 both have C open\n     -  on T1, user folds C\n     -  on T2, user folds C\n\nNow let's add an example of local storage (LS) logics that could\napply from above example:\n\n     -  T1 and T2 both have C open\n     -  on T1, user folds C\n    [1] T1 writes 'C folded' in LS\n     -  on T2, user folds C\n    [2] T2 writes 'C folded' in LS\n    [3] T2 detects 'C folded' in LS (from [1])\n           => T2 writes 'C folded' in LS\n    [4] T1 detects 'C folded' in LS (from [2])\n           => T1 writes 'C folded' in LS\n    [5] T1 detects 'C folded' in LS (from [3])\n           => T1 writes 'C folded' in LS\n    [6] T2 detects 'C folded' in LS (from [4])\n           => T2 writes 'C folded' in LS\n     etc...\n\nThis scenario could have been easily prevented by not writing on\nlocal storage when the chat window state has not changed. However,\nthis wouldn't fix this scenario that also introduces an infinite\nloop:\n\n    -  T1 and T2 both have C open\n    -  on T1, user folds C\n   [1] T1 writes 'C folded' in LS\n    -  on T2, user folds C\n   [2] T2 writes 'C folded' in LS\n   -   on T2, user unfolds C\n   [3] T2 writes 'C unfolded' in LS\n   [4] T2 detects 'C folded' in LS (from [1])\n          => T2 writes 'C folded' in LS\n   [5] T1 detects 'C unfolded' in LS (from [3])\n          => T1 writes 'C unfolded' in LS\n   [6] T2 detects 'C unfolded' in LS (from [5])\n          => T2 writes 'C unfolded' in LS\n   [7] T1 detects 'C folded' in LS (from [4])\n          => T1 writes 'C folded' in LS\n   [8] T2 detects 'C folded' in LS (from [7])\n          => T2 writes 'C folded' in LS\n   [9] T1 detects 'C unfolded' in LS (from [6])\n          => T1 writes 'C folded' in LS\n   etc...\n\nThis commit fixes the infinite loop issue:\n\n  - by turning local storage read during cross-tab communication into\n    local storage event read instead. This should prevent race\n    conditions based on read/write operations in local, since their\n    order is not guaranteed accros tabs.\n  - by isolating document chat window state to their own local\n    storage entry. This should prevent a tab from notifying a chat\n    window state that it didn't change, which may also result in\n    an infinite loop.\n\nSome tests were adapted from the changes above. Also, some tests did\npass thanks to local storage being mocked by a ram storage: the\nhandler `_onStorage` should have been called, but it didn't because\nit was registered on the actual local storage instead of the ram\nstorage. In order to make tests pass again, the following additional\nchanges were required:\n\n  - Cross-tab bus service now exports the unique tab ID with\n    `getTabId`.\n  - document thread entries in local storage now track the tab ID, so\n    that self-tab ignore their own local storage writes.\n\nTask-Id 2034997\n\nCloses #36177","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/40b57ca824e967a9221f7834e4c9b3db7a4849d0"},{"sha":"82c0e9b620bfbd409914e1941e5c8e9117982bd1","author":{"name":"Goffin Simon","email":"b3ed2cf313e7546085c3c50622143ff31e467d23@odoo.com"},"message":"[FIX] payment: Publish Sips online payment\n\nSteps to reproduce the bug:\n\n- When trying to publish the sips payment acquirer not in debug mode\n\nBug:\n\nIt raised a access rights error because the fields: sips_test_url, sips_prod_url, sips_version\nwere not readable in function _check_required_if_provider and  a default value was set for all\nthese fields.\n\nopw:2061123\n\ncloses odoo/odoo#36346\n\nSigned-off-by: Simon Goffin (sig) <sig@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/82c0e9b620bfbd409914e1941e5c8e9117982bd1"},{"sha":"85c5d0a4be4bf7afb7d15f0b5a07cc0daecaa1a5","author":{"name":"Odoo's Mergebot","email":"e5b8af77144c7ab3b64f7d349223922596815c76@odoo.com"},"message":"[MERGE][FIX] bus, mail, web: several cross-tab communication fixes\n\n### [FIX] bus: background slave tabs should not loose notifications\n\nSlave tabs missed some notifications in case the local storage\nevent's `newValue` did not match actual value in local storage. This\nhappens when master tab overwrites a value that slave tabs did not\ntake the time to read. Slave tabs should now always handle all local\nstorage events.\n\nTask-ID 2044231\n\n### [FIX] bus, mail: correctly synchronize document chat windows\n\nCross-tab synchronization of document chat windows resulted sometimes\nwith an infinite loop. This happens due to tabs relying on actual\nvalue in the local storage and all document chat windows state being\nset as a single local storage entry. Cross-tab communication of\ndocument chat windows now is relying on event's `newValue`, and each\ndocument chat window has its own local storage entry. Changes from\nlocal storage no longer writes again in the local storage, so that\nit no longer makes an echo (= infinite loop).\n\nTask-Id 2034997\n\ncloses odoo/odoo#36177\n\nSigned-off-by: Alexandre Kühn (aku) <aku@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/85c5d0a4be4bf7afb7d15f0b5a07cc0daecaa1a5"},{"sha":"fbbfa6ddcaf5cb8ef75672a73d1a928704484850","author":{"name":"Harpritsinh Sisodiya","email":"caea1cf3564b6ff81df6bd547713e1d4f3a008b2@odoo.com"},"message":"[FIX] web: datepicker: crash on invalid date\n\nThere is an open issue on the tempusdominus lib:\nhttps://github.com/tempusdominus/bootstrap-4/issues/223\n\nIt occurs when there is a valid value in a date(time) field, and\nthe user unsets it by setting an invalid one.\n\nThis rev. fixes the issue in Odoo by preventing to reach the buggy\npiece of code in the lib. In a few words, when the user sets an\ninvalid date, we reset the previous valid date (which is what the\nlib tries to do anyway).\n\nTask 2057009\n\ncloses odoo/odoo#36211\n\nSigned-off-by: Aaron Bohy (aab) <aab@odoo.com>\n\n\nCo-authored-by: Aaron Bohy <aab@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/fbbfa6ddcaf5cb8ef75672a73d1a928704484850"},{"sha":"75460e697a20505aa22b3a273d3056e0bdc75633","author":{"name":"Nans Lefebvre","email":"a573b540d2dde90ba6da3b9d6286c8ec60c10044@odoo.com"},"message":"[FIX] mrp: block partial post inventory of MO with workorders and tracking\n\nEnable work orders, routings, and track components by lot numbers or serial.\nCreate an MO for a certain X quantity of finished products and plan work orders.\nOnly complete a partial amount Y of the overall X amount.\nSpecify the lots for the consumed tracked materials equal to the Y amount.\nThen, return to the MO and click \"Post Inventory\".\nAn error is raised because the lot is missing.\nThis is because when processing workorders temporary lines\nare created without lot/serial for tracked component products.\n\nThis is a limitation that require a task to be removed;\nin the meantime we remove the button, in true bugfix fashion.\n\nopw 2049806\n\ncloses odoo/odoo#35731\n\nSigned-off-by: Nans Lefebvre (len) <len@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/75460e697a20505aa22b3a273d3056e0bdc75633"},{"sha":"b7e3469931f69091e47b4c6c2ce8a83669fa7313","author":{"name":"Lucas Perais (lpe)","email":"42d29efea96f3992aa24782120ec2948e42548fa@odoo.com"},"message":"[FIX] web: grouped list as grouped list as child\n\nIn grouped editable list, get rid of the groups\nEdit one record in the editable list\nIn a M2O, click on search more\n\nIn search's list, group by a field\nExpand a group in the search's list\n\nBefore this commit, it crashes because the event was propagated\nonto the first main list\n\nAfter this commit, it doesn't crash and the group is expanded\n\nOPW 2064156\n\ncloses odoo/odoo#36383\n\nSigned-off-by: Lucas Perais (lpe) <lpe@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/b7e3469931f69091e47b4c6c2ce8a83669fa7313"},{"sha":"0b146aa253bdd8f5f420511253c644e64e850543","author":{"name":"Aaron Bohy","email":"40b904fd8852297daeaeb426b1bca46fd2454aa3@odoo.com"},"message":"[FIX] web: form: race condition when editing in readonly\n\n... and switching to 'edit' mode before the write RPC returns.\n\nFor instance, on a project task form view, in readonly, change the\nstate by clicking on the bullet, and directly switch to 'edit'\nmode: when the RPC returns, the view is switched back in readonly.\n\nTask 2065443\n\ncloses odoo/odoo#36400\n\nSigned-off-by: VincentSchippefilt <VincentSchippefilt@users.noreply.github.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/0b146aa253bdd8f5f420511253c644e64e850543"},{"sha":"450269b26805b21428b16bd6deab30d4a8d9dd16","author":{"name":"Goffin Simon","email":"b3ed2cf313e7546085c3c50622143ff31e467d23@odoo.com"},"message":"[FIX] account: Wrong amount due when reconciling with refund\n\nSteps to reproduce the bug:\n- Let's consider the following currency rates: 1.00 for USD and 0.50 for EUR\n- Create invoice I with the same currency of your company (USD) and amount due = 100$\n- Validate I\n- Create refund R with  a diffenrent currency of your company (EUR) and amount due = 1€\n- Validate R\n- Reconcile R with I\n\nBug:\n\nThe amount due of I was 196$ instead of 98$\n\nPS: The root of this issue was coming from function assign_outstanding_credit that was called when\nreconciling R with I. This function changes the currency_id and the amount_currency of the account move line.\nSo the function _amount_residual defined on model account.move.line was triggered as\nthe currency_id was changed. In _amount_residual, the residual_amount_currency was computed.\n\nopw:2062103\n\ncloses odoo/odoo#36379\n\nSigned-off-by: Simon Goffin (sig) <sig@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/450269b26805b21428b16bd6deab30d4a8d9dd16"},{"sha":"116dda06a767598dfdf1147e0e6baee105f5c860","author":{"name":"Nans Lefebvre","email":"a573b540d2dde90ba6da3b9d6286c8ec60c10044@odoo.com"},"message":"[FIX] account: do not sent user as vendor when sending bill by email\n\nOn purchase journals, there is the possibility to set up an alias to\nautomatically create vendor bills from incoming email.\nThree types of emails can send the bill:\n- the vendor, with email matching a partner in database\n- an internal user, possibly forwarding the bill he received from the vendor\n- an unknown address\nIn the third case, the address will be ignored.\nIn the first, we found the vendor, so he can be set as partner_id of the bill.\nThe tricky one is the second case, where we try to guess the vendor.\n\nBefore, the code would take only the first email found in the body;\nif it found a matching partner, then it used that partner anyway,\neven if that partner belonged to a user and was skipped before.\n\nAfter the fix, we get the partners for all emails\nand take arbitrarily the first vendor, then backup on the first non-user.\n\nNote also that email_addresses would duplicate every address read in the body;\nwe make a set to avoid duplicate processing.\n\nopw 1885070\n\ncloses odoo/odoo#36399\n\nSigned-off-by: Nans Lefebvre (len) <len@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/116dda06a767598dfdf1147e0e6baee105f5c860"},{"sha":"dde5227546099d7eea99a44c6b12661d48c4645a","author":{"name":"Goffin Simon","email":"b3ed2cf313e7546085c3c50622143ff31e467d23@odoo.com"},"message":"[FIX] l10n_ae: Wrong translation\n\nTVA in english is VAT\n\nopw:2065413\n\ncloses odoo/odoo#36410\n\nSigned-off-by: Simon Goffin (sig) <sig@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/dde5227546099d7eea99a44c6b12661d48c4645a"},{"sha":"2761393b06bb396cf08799948e6fda3091ff1f35","author":{"name":"jev-odoo","email":"2758caf5b45751f464ed82e2698171da31c76d8a@odoo.com"},"message":"[FIX] stock,sale_stock: Speed up sale_order confirmation\n\nIn case there is a lot of stock_moves and/or lot of\nstock_quants, the function _get_qty_procurement\ntakes a lot of time because there is no index defined\non most accessed fields.\n\nI.E. OPW-2027183\n\ncloses odoo/odoo#36113\n\nSigned-off-by: Richard Mathot (rim) <rim@openerp.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/2761393b06bb396cf08799948e6fda3091ff1f35"},{"sha":"638eac9baea60ee9126043ee0088232a5dee3668","author":{"name":"Christophe Simonis","email":"0e117f2b429bfa19751522a564765b352cb7b946@odoo.com"},"message":"[MERGE] forward port branch saas-11.3 up to a4fe211ee2f","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/638eac9baea60ee9126043ee0088232a5dee3668"},{"sha":"19b17365d78febe5fbf5ac8319d19e48703bc369","author":{"name":"Nans Lefebvre","email":"a573b540d2dde90ba6da3b9d6286c8ec60c10044@odoo.com"},"message":"[FIX] stock_landed_costs: do not (incorrectly) use float_compare to mean float_is_zero\n\nTake a landed cost with an amount_total of 2464788.5\nin a currency with no decimals, so precision_digits is 0.\nNow let the sum of the lines 2464788.499999999.\nAdditionally, we have that 2464788.5 is rounded up to\n2464789 and 2464788.499999999 is rounded down to 2464788.\nSo float_compare returns a nonzero value.\nHowever, it turns out that the docstring of float_compare contains:\n\nWarning: ``float_is_zero(value1-value2)`` is not equivalent to\n``float_compare(value1,value2) == 0``\n\nSo the intended use was to use float_is_zero.\n\nopw-2048388\n\ncloses odoo/odoo#36208\n\nSigned-off-by: Nans Lefebvre (len) <len@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/19b17365d78febe5fbf5ac8319d19e48703bc369"},{"sha":"3df5c5dd562ca5f0ffa925677653e62dabb05c0c","author":{"name":"Nans Lefebvre","email":"a573b540d2dde90ba6da3b9d6286c8ec60c10044@odoo.com"},"message":"[FIX] product: filter out archived pricelists from candidate pricelists\n\nHave a pricelist Pl set as property_product_pricelist on some partner Pa.\nArchive Pl, so that the public user Pu use another pricelist Pl'.\nGo to the shop, create some order.\nThe prices are obtained from Pl'.\nLog in as Pa; prices are updated using Pl.\nHowever since Pl is archived, it is not visible on the pricelist views,\nso the end user cannot explain why the prices changed.\n\nWhen the pricelist is archived, nothing is done regarding the ir.property\nstoring the partner/pricelist mapping, so the pricelist is retrieved as default\nnonetheless.\n\nWe filter out the active pricelists when getting the property.\n\nopw 1946476\n\nco-authored with JKE-be\n\ncloses odoo/odoo#36389\n\nSigned-off-by: Nans Lefebvre (len) <len@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/3df5c5dd562ca5f0ffa925677653e62dabb05c0c"},{"sha":"6d8e5efa84ddabd349068bbbaa7c25de14ce1dbc","author":{"name":"Nicolas Martinelli","email":"771435c469f83f6aa9c405ac5e1ed06314a94f2d@odoo.com"},"message":"[FIX] purchase: default user_id on bill\n\nOn top of leading to AccessError in multi-company (if the PO was created\nby OdooBot), it might also assign a user without Accounting rights to a\nvendor bill.\n\nThis reverts commit 392f6f2b2bbb49a8a55b94510d51fa789b20a127.\n\nopw-2056061\n\ncloses odoo/odoo#36173\n\nSigned-off-by: Nicolas Martinelli (nim) <nim@odoo.com>","distinct":true,"url":"https://api.github.com/repos/steingabelgaard/odoo/commits/6d8e5efa84ddabd349068bbbaa7c25de14ce1dbc"}]}
{"actor":{"display_login":"hhgabelgaard"}}