Skip to content
Snippets Groups Projects
  1. Nov 30, 2022
    • jard@odoo.com's avatar
      [FIX] tools.image: Allow conversion of P to JPEG · a44a0359
      jard@odoo.com authored
      
      While upgrade of a customer database, A P-type image
      was being converted to JPEG image. It didn't allow to save
      as direct conversion from P-type(palette) to JPEG. So, fix
      covers conversion of such corner cases to first convert it
      to RGB and then RGB can convert it to desired output format
      opw-3043418
      
      closes odoo/odoo#105549
      
      Signed-off-by: default avatarSébastien Theys (seb) <seb@odoo.com>
      a44a0359
  2. Nov 29, 2022
    • qsm-odoo's avatar
      [FIX] website: update comment in user_custom_bootstrap_overridden file · ed9a7832
      qsm-odoo authored
      
      The comment became outdated:
      - For 14.0 and above: mentioned the "Customize dialog" which does not
        exist anymore.
      - For 16.0 and above: mentioned "Bootstrap 4" instead of "Bootstrap 5".
      
      Related to opw-3056683
      
      closes odoo/odoo#106794
      
      Signed-off-by: default avatarQuentin Smetz (qsm) <qsm@odoo.com>
      ed9a7832
    • Walid HANNICHE (waha)'s avatar
      [FIX] purchase_stock: stock valuation foreign currency Journal Entry · 822b5f88
      Walid HANNICHE (waha) authored
      
      Steps to reproduce:
      - Setup product (
          cost 10$
          Storeable Product
          Standard Price Accounting
          automated valuation
          add account for price difference
      )
      
      - Purchase product in foreign currency (set a different price)
      - Receive the product
      - Create and validate Bill
      
      Bug:
      The reception JE is for the cost amount set on the product ($10)
      debit and credit value are correct but the amount in currency
      is wrong (purchase cost)
      
      After creating the bill the Journal items are not correctly matched
      since reconciliation is done on currency amount in the case fo foreign
      currency transaction
      
      Fix:
      Set the correct amount (cost configured on product page)
      in currency amount if costing method is standard
      
      opw-2822366
      
      closes odoo/odoo#101809
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      822b5f88
    • Julien Van Roy's avatar
      [FIX] account_edi_ubl_cii: import customer when uploading an invoice · 7eb401e3
      Julien Van Roy authored
      
      Previously, it was only possible to upload a bill, so the partner_id was read
      from the vendor in the imported file. Now, it is also possible to upload a
      file to create an invoice, so we need to be able to decode the customer in
      the imported file.
      
      opw-3072989
      
      closes odoo/odoo#106765
      
      Signed-off-by: default avatarLaurent Smet <las@odoo.com>
      7eb401e3
    • Adrien Widart (awt)'s avatar
      [FIX] core: clean env between tests · 0fa99e31
      Adrien Widart (awt) authored
      This commit description is in three parts: a generic explanation, a real
      use case and the solutions
      
      **Explanations**
      1. When getting an odoo `Environment`, we first generate a tuple used as
      an environment identifier:
         https://github.com/odoo/odoo/blob/7475bcbef601b69e11c88a2ebb5fa39d7fcb52ab/odoo/api.py#L446
         Then, there are two possibilities:
         1. If such environment already exists in the environments list of the
      transaction, we reuse it:
            https://github.com/odoo/odoo/blob/7475bcbef601b69e11c88a2ebb5fa39d7fcb52ab/odoo/api.py#L448-L452
         2. Else, we create a new one and store it in the transaction:
            https://github.com/odoo/odoo/blob/7475bcbef601b69e11c88a2ebb5fa39d7fcb52ab/odoo/api.py#L454-L464
      2. The `company` attribute of an `Environment` object is a lazy property
         https://github.com/odoo/odoo/blob/7475bcbef601b69e11c88a2ebb5fa39d7fcb52ab/odoo/api.py#L537-L538
         It means that its value won't be recomputed unless we delete it
         https://github.com/odoo/odoo/blob/083c70bbb63f27839b2c9a4b549e216947bc4dd1/odoo/tools/func.py#L12-L17
      3. When running a `SavepointCase` test class, the `setUp` method ensures
      that, after each test, we do cleaning:
         https://github.com/odoo/odoo/blob/a50a65be19b682201fc010d33c1b1f0b90cdf4d3/odoo/tests/common.py#L652-L662
         The functions are added in a stack. So, in the execution order, we
      will
         1. Clear the current environment and the registry
         2. Reset the environments list with the ones that were existing
      before the executed test
      4. Suppose a test class TC that inherits `SavepointCase`. TC has a
      special `setUpClass`:
         1. We create a new user U and replace the environment with a new one,
      E1, based on U. This user has a company Comp_U. Because of [1], the new
      environment E1 is added to the environments list of the transaction.
         2. For some reasons, we need to do some operations in `sudo` mode:
      again, because of [1], a new environment E2 (same as E1 but with the
      `su` flag to `True`) is created and added to the environments list of
      the transaction
      5. TC contains a first test T1. In that test, we create a company
      Comp_tmp and set it as default one to U. Therefore, E1 and E2 are
      updated (their `company` attribute is now Comp_tmp)
      6. At the end of T1, because of [3]:
         1. E1 is reset (but its lazy properties are not deleted)
         2. The environments list of the transaction is reset and still
      contains E1 and E2 as they have been created in the class setup (i.e.
      before the test setup)
      7. In a second test T2, there will be an inconsistency: both E1 and E2
      have an incorrect value for their field `company`: Comp_tmp, which is
      not the value defined on `self.env.user.company_id` (the value Comp_tmp
      does not even exist anymore)
      
      **Real use case**
      - The class `AccountTestInvoicingCommon` is an inheritance of
      `SavepointCase`. In its class setup, we create a user and set it on the
      current environment. Later on, we create a company (the sudo mode will
      be activated during the company creation process)
        https://github.com/odoo/odoo/blob/1e69c4fe5f8dd8a92d92f350b6d6a9539157f206/addons/account/tests/common.py#L38-L52
      - The class `TestPurchaseOrder` inherits `AccountTestInvoicingCommon`
      - The test `:TestPurchaseOrder.test_06_on_time_rate` creates a company
      and sets it as the one of the current user
        https://github.com/odoo/odoo/blob/87ffe5983be7f0f4a926b458c4bd1f13001048ec/addons/purchase_stock/tests/test_purchase_order.py#L313-L316
      
      
      - Therefore, all next tests will have an issue with the environment
      (unless we force the writing of the company on the current user to
      bypass the issue)
      ```py
      self.assertEqual(self.env.user.company_id, self.env.company) # will fail
      self.assertTrue(self.env.company.exists()) # will fail
      ```
      
      **Solution**
      The above issue has been fixed from Odoo 15 on, thanks to commit C1.
      Thanks to that diff, at step [3.1] in the above explanations, the lazy
      properties of E1 are deleted (so, because of [2], the `company`
      attribute of E1 will be correct again). However, once C1 is applied, we
      can still add some lines in T2 to fail the test:
      ```py
      sudo_env = self.env.user.sudo().env
      self.assertEqual(self.env.user.company_id, sudo_env.company) # will fail
      self.assertTrue(sudo_env.company.exists()) # will fail
      ```
      The reason: at the end of the test T1, we reset the environments list of
      the transaction ([6.2]). However, E2 has been created before the test
      setup (it was in the class setup, see [4.2]). So, after the list reset,
      E2 is still in that list and still has the value Comp_tmp for its
      `company` attribute.
      
      So... first we can conclude that C1 is not enough. Second, once the
      environments list of the transaction is reset ([3.2]), we also have to
      reset each environment to ensure that their lazy properties are correct.
      We can then remove [3.1] since it will be included in that new step.
      
      C1 a40511cd
      
      closes odoo/odoo#106252
      
      Signed-off-by: default avatarRaphael Collet <rco@odoo.com>
      0fa99e31
  3. Nov 28, 2022
  4. Nov 27, 2022
  5. Nov 25, 2022
    • Florent de Labarre's avatar
      [FIX] website_crm : impossible to add a crm form · 0f597b3a
      Florent de Labarre authored
      
      In large database with lot of user, the browser don't respond.
      
      closes odoo/odoo#100106
      
      Signed-off-by: default avatarRomain Derie (rde) <rde@odoo.com>
      0f597b3a
    • Stefan-Calin Crainiciuc (stcc)'s avatar
      [FIX] account: narration css overlap · 1484765c
      Stefan-Calin Crainiciuc (stcc) authored
      
      Steps to reproduce:
      
      - Open an invoice
      - Enter a long link without spaces in the terms and conditions field
      - Save
      
      Issue:
      The word doesn't break and spans outside its bounding box, possibly
      overlapping with the subtotal footer on the right.
      
      Solution:
      Add class `text-break` to the narration field.
      
      opw-3050054
      
      closes odoo/odoo#106359
      
      Signed-off-by: default avatarGrazioso Andrea (agr) <agr@odoo.com>
      1484765c
    • Guillaume (gdi)'s avatar
      [FIX] website: prevent carousel indicators errors · 16405934
      Guillaume (gdi) authored
      In this commit [1] (merged in 16.0) a bugfix has been made in the
      `removeSlide` function but this one should have been applied on all
      supported versions because the bug it fixes is present on all versions.
      The bug it fixes is the following:
      - Drop a carousel block on a page
      - Remove the *first* slide
      
      => There is no active indicator.
      
      Moreover, the bugfix made in 16.0 [1] introduces another error: when a
      slide is removed from the carousel the indicators are not in a correct
      state anymore.
      
      Following the same steps with the changes of [1]:
      - Drop a carousel block on a page
      - Remove a slide
      
      => Indicators are no longer consistent with the slides so tracebacks
      appear during the carousel slides. The list of indicators must have on
      each element a `data-slide-to` attribute which must reflect the
      position of the slide (starting with 0).
      
      So this commit is to backport the fix from 16.0 [1] to 14.0 and to fix
      the new bug that [1] introduces.
      
      [1]: https://github.com/odoo/odoo/commit/f7055d3dbabfbe471f490bd65c2032f5251f3f37
      
      
      
      task-3040931
      opw-3051615
      
      closes odoo/odoo#103963
      
      Signed-off-by: default avatarQuentin Smetz (qsm) <qsm@odoo.com>
      16405934
    • Jérôme Hellinckx's avatar
      [FIX] purchase_stock: avoid PO exception propagation to DONE receipts on less received quants · d6fad232
      Jérôme Hellinckx authored
      
      Before this commit:
      1. Create PO with quantity 10, confirm (creates receipt-1)
      2. Receive 2 quantities on first receipt (receipt-1), backorder (receipt-1 is 'done', creates receipt-2)
      3. Receive 3 quantities on second receipt (receipt-2), backorder (receipt-2 is 'done', creates receipt-3)
      4. Change quantity to 5 in PO
      5. An exception is created on all receipts (1, 2 and 3)
      
      In the scenario above, receipt-1 and receipt-2 are partial receipts that are set to 'done'.
      It is not necessary to create an exception in these receipts when the quantity is changed to less than originally expected in the PO.
      Since the system checks that the new quantity has to be equal or greater than the received quantities, the already received quantities cannot be impacted.
      
      After this commit:
      The exception is only propagated to the receipts that are not done.
      e.g. in the example above, an exception appears only in receipt-3.
      
      task-2648209
      
      resolves #76297
      
      closes odoo/odoo#76691
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      d6fad232
    • Florent de Labarre's avatar
      [FIX] stock: impossible to search correctly location · 71a3b5b2
      Florent de Labarre authored
      
      Before this PR Odoo don't pre-search on location.
      
      closes odoo/odoo#97014
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      71a3b5b2
    • Antoine Dupuis (andu)'s avatar
      [FIX] account: Deferred income wiz - don't reconcile draft entries · edaf019e
      Antoine Dupuis (andu) authored
      
      When creating draft deferred entries in a reconcilable account,
      we should not attempt to reconcile them, because only posted entries
      can be reconciled.
      
      closes odoo/odoo#106524
      
      Signed-off-by: default avatarWilliam André (wan) <wan@odoo.com>
      edaf019e
    • roen-odoo's avatar
      [FIX] pos_restaurant: correctly save splitted order · a61c2b88
      roen-odoo authored
      
      Current behavior:
      When splitting the order in a pos_restaurant session, the order was not
      correctly saved in the backend. It resulted in an order that still had
      all the product of the original order and another order with the
      correctly splitted products.
      
      Steps to reproduce:
      - Start a pos_restaurant session.
      - Go to table A and add 3 products to the table.
      - Go back to the floor screen
      - Go back to the table A
      - Split the order in 2
      - Click on payment, and go back to the product screen without paying
      - Click on the ticket button, and click on the order that was splitted,
        it still contains all the products from the original order.
      
      opw-3061569
      
      closes odoo/odoo#106358
      
      Signed-off-by: default avatarTrinh Jacky (trj) <trj@odoo.com>
      a61c2b88
    • Aurélien (avd)'s avatar
      [FIX] res_currency: add order by to _select_companies_rates query · 274a28a0
      Aurélien (avd) authored
      
      PG12 introduced an optimization for CTEs that automatically inlines
      CTEs if they are only refered once in the parent query. Prior to that
      CTEs were always materialzed, meaning that PG created a sort of temp
      table on the fly to store the result of the CTE's evaluation.
      
      Whereas this leads to performance improvements in general, in the
      particular case of _select_companies_rates this inlining becomes a
      performance bottleneck. This is because while the currency_rate CTE
      is only refered once in both purchase_report and product_margin,
      the join condition (cr.date_end is null or cr.date_end > ...)
      requires evaluating the CTE's date_end subquery twice. This, combined
      with the fact that in PG12 the planner goes for a Nested Loop JOIN instead
      of a HASH Join in PG10 makes the performances of the whole query
      much worse in PG12 than in PG10.
      
      Adding an ORDER BY (or an OFFSET 0, the resulting plan is the same)
      creates a kind of optimization fence that forces PG to evaluate the
      subquery first using its own plan. This removes the need to rescan the
      subquery each time the Merge JOIN filter has to be applied, which
      is a good strategy in this specific situation.
      
      The same result could be achieved by adding the keyword "MATERIALIZED"
      in the CTE definition. The issue is that this keyword did not exist
      in PG 10 so using it would require to check the PG version at runtime
      from python.
      
      Examples of query timings change before and after PR:
      
      Number of POs | Before PR | After PR
            2000    |     7s    |    345ms
            7000    |     23s   |    1.1s
      
      opw-2930578
      
      closes odoo/odoo#106078
      
      X-original-commit: 8b7a3941
      Signed-off-by: default avatarRaphael Collet <rco@odoo.com>
      274a28a0
    • Adrien Widart (awt)'s avatar
      [FIX] mrp: backorder with reserved qty in sublocation · 2c853f90
      Adrien Widart (awt) authored
      If a MO has some operations and if there are some reserved quantities
      from sub-locations, when creating a backorder, the consuming lines in
      the backorder will not use theses sub-locations.
      
      To reproduce the issue:
      1. In Settings, enable "Multi-Locations"
      2. Create two storable products P_compo, P_finished
      3. Update the on-hand quantity of P_compo:
          - 2 x P_compo at WH/Stock/Shelf 1
      4. Create a bill of materials BM:
          - Product: P_finished
          - Compo: 1 x P_compo
          - Operations: add a new one
      5. Create and confirm a MO:
          - Bill of materials: BM
          - Qty: 2
      6. Check the availability
          - It reserves two P_compo from WH/Stock/Shelf 1
      7. Set the producing qty to 1
      8. Validate & Backorder
          - The producing qty of the backorder is already set to 1
      9. Open the detailed operations related to P_compo
      
      Error: There is a reservation line for 1 x P_compo from WH/Stock/Shelf
      1, which is correct, but its done quantity is 0 instead of 1. Moreover,
      there is another line from WH/Stock with the done quantity set to 1.
      This line should not exist.
      
      When creating the backorder, because there is at least one WO, we set
      the remaining producing qty on the WO of the backorder:
      https://github.com/odoo/odoo/blob/ac11b7e00dea13a0d20bf0c39e544d12c0a1e9fe/addons/mrp/models/mrp_production.py#L1501-L1506
      When writing on such a field, an inverse method is triggered:
      https://github.com/odoo/odoo/blob/402dfd0a53af74e64278ff8746326c024128a2ee/addons/mrp/models/mrp_workorder.py#L221-L225
      This method will update the producing quantity of the backorder and
      generate the SML that consume the components
      https://github.com/odoo/odoo/blob/ac11b7e00dea13a0d20bf0c39e544d12c0a1e9fe/addons/mrp/models/mrp_production.py#L993-L998
      
      
      However, we write the producing quantity of the WO before the quantity
      reservation on the backorder. Therefore, when generating the consuming
      SML, because there isn't any reserved quantity, we consume the
      components from the default location (this is the reason why there is a
      SML with a done qty from WH/Stock). Later on, we will unassign the
      initial MO and reserve the backorder (and here is the reason why there
      is a second SML from WH/Stock/Shelf 1)
      
      The solution is an adapted backport of [1]
      
      [1] 1180b6f7
      
      OPW-3020189
      
      closes odoo/odoo#106147
      
      Related: odoo/enterprise#34179
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      2c853f90
    • Walid HANNICHE (waha)'s avatar
      [FIX] sale_coupon: move all discounts to the end of the sale_order · af8cc475
      Walid HANNICHE (waha) authored
      update to this PR[1]
      
      BUG:
      some discounts are still displayed on the middle of the order
      
      FIX:
      move all discounts to the end
      
      [1]:https://github.com/odoo/odoo/pull/102700
      
      
      opw-2985632
      
      closes odoo/odoo#106322
      
      Signed-off-by: default avatarWilliam Braeckman (wbr) <wbr@odoo.com>
      af8cc475
  6. Nov 24, 2022
    • Fernanda Hernández's avatar
      [FIX] pos_restaurant: use odoo groupby instead itertools · 877059b2
      Fernanda Hernández authored
      
      closes odoo/odoo#105518
      
      Signed-off-by: default avatarOlivier Dony (odo) <odo@odoo.com>
      877059b2
    • Valentin Vallaeys (vava)'s avatar
      [FIX] payment_sips: wrong numerical code for PLN currency · 94dd698d
      Valentin Vallaeys (vava) authored
      
      closes odoo/odoo#106424
      
      Signed-off-by: default avatarAntoine Vandevenne (anv) <anv@odoo.com>
      94dd698d
    • Julien Van Roy's avatar
      [FIX] {l10n_}account_edi_ubl_cii{_tests}: handle price_include taxes · 649e0f2d
      Julien Van Roy authored
      
      In Factur-X, there is no way to represent a tax "price_include" because
      every amounts should be tax excluded.
      
      Currently in Factur-X, a line with a tax price_include = True will be
      incorrectly exported. Indeed, the Factur-X.xml is generated by setting the
      GrossPriceProduct as the price_unit. In Factur-X, this amount (and the others
      in the line details) should be tax excluded. Thus, it's wrong to set the
      GrossPriceProduct as the price_unit.
      
      To fix this, the GrossPriceProduct should be the price_unit if no tax
      price_include = True is set, otherwise, the gross price = price_unit/(1+tax/100).
      
      This way, the Factur-X file will be consistent with the norm.
      
      Note that the import of a Factur-X xml will thus try to pick taxes with price_include = False,
      and the price_unit will be tax excluded. If no matching tax with price_include = False is
      retrieved, a tax with price_include = True is searched, if found, the price_unit is
      recomputed accordingly. In both cases, the lines subtotals are the same.
      
      opw-3032382
      
      closes odoo/odoo#105276
      
      Signed-off-by: default avatarWilliam André (wan) <wan@odoo.com>
      649e0f2d
    • Guillaume (gdi)'s avatar
      [FIX] website: scroll to the next visible element · 076d7ac7
      Guillaume (gdi) authored
      
      Before this commit, the buttons to scroll to the next element might not
      work if the next element was invisible.
      Steps to reproduce the bug fixed by this commit:
      
      (Note that these steps are only reproducible from 15.0. We decided to
      merge this fix in 14.0 to be custo-friendly)
      
      - Install two languages on a website
      - Drop a cover block (1), with a height of 100% and a scroll down button
      - Drop a new block (2) only visible for language B below the block 1
      - Drop a new block (3) visible for everyone below the block 2
      - Save and go to the site in language A
      - Click on the scroll down button
      
      => No scroll at all while the user expects to scroll to the block
      visible to everyone (3). This commit fixes that by making the user
      scroll down to see the next visible element.
      
      opw-2967706
      
      closes odoo/odoo#105334
      
      Signed-off-by: default avatarQuentin Smetz (qsm) <qsm@odoo.com>
      076d7ac7
    • Loan (lse)'s avatar
      [FIX] pos_adyen: JS error in loop if deleted Adyen payment line · 52a517ca
      Loan (lse) authored
      
      Before this commit:
       If we remove a payment line using an Adyen payment method,
       `pending_adyen_line()` return `undefined`.
       With the `_poll_for_response` still being executed,
       it will pop some JS traceback each call with:
       ```js
       TypeError: Cannot read properties of undefined (reading 'terminalServiceId')
       ```
      
      After this commit:
       No JS traceback loop
      
      OPW-3032391
      
      closes odoo/odoo#105716
      
      Signed-off-by: default avatarQuentin Lejeune (qle) <qle@odoo.com>
      52a517ca
    • Thomas Beckers's avatar
      [FIX] account: reduce performance impact when checking CABA moves · 9d6db3af
      Thomas Beckers authored
      
      Commit 7fbb337e introduced performance slowdown when reconciling a
      bank statement line with multiple invoices. This is due to the
      compute function being called a lot of times and each time need to
      trigger a search for CABA moves (even if the company do not use
      cash basis).
      
      This commit aims to not trigger the search if the company do not use
      cash basis and add some domain conditions on indexed fields to speed up
      the search when it's a cash basis company.
      
      opw-3013391
      
      closes odoo/odoo#105925
      
      Signed-off-by: default avatarJohn Laterre (jol) <jol@odoo.com>
      Co-authored-by: default avatarArnaud-Sibille <arsi@odoo.com>
      9d6db3af
    • Nicolas Martinelli's avatar
      [FIX] account: do not call `button_install` is not necessary · 11e9d3f1
      Nicolas Martinelli authored
      
      If the method `_auto_install_l10n` is called programmatically on a DB
      where the localization has already been installed, useless processing is
      performed by `button_install`.
      
      Do not call this method if no module need to be installed.
      
      closes odoo/odoo#106310
      
      Signed-off-by: default avatarNicolas Martinelli (nim) <nim@odoo.com>
      11e9d3f1
  7. Nov 23, 2022
  8. Nov 22, 2022
  9. Nov 21, 2022
  10. Nov 20, 2022
  11. Nov 18, 2022
    • Raphael Collet's avatar
      [FIX] core: ignore imported modules when loading registry · e1cfc1f7
      Raphael Collet authored
      
      The existing code was generating misleading errors for imported Odoo
      modules that could not be loaded.  Although there was a specific hack
      for module 'studio_customization', imported modules were not handled
      properly.  This patch adds the right condition in the SQL query in the
      module that introduces imported modules.
      
      closes odoo/odoo#105955
      
      Signed-off-by: default avatarVincent Schippefilt (vsc) <vsc@odoo.com>
      e1cfc1f7
    • Thomas Lefebvre (thle)'s avatar
      [FIX] account_edi: check fiscal period for an EDI cancellation · fda04e21
      Thomas Lefebvre (thle) authored
      
      Steps to reproduce:
          - install a localization which uses the account_edi module;
          - define Lock date for the fiscal period;
          - choose an invoice which was sent before this date;
          - click on the "REQUEST EDI CANCELLATION" button.
      
      Issue:
          We try to cancel the EDI document despite exceeding the fiscal period.
      
      Cause:
      	The verification of the fiscal period is done when clicking on the "RESET TO DRAFT" button which, in the flow, is after the request for cancellation of the EDI document.
      
      Solution:
          Make a verification of the fiscal period when clicking on the "REQUEST EDI CANCELLATION" button.
      
      opw-2990873
      
      closes odoo/odoo#106014
      
      Signed-off-by: default avatarJosse Colpaert <jco@odoo.com>
      fda04e21
    • Alvaro Fuentes's avatar
      [FIX] account: add index for account.move.tax_cash_basis_move_id · 8d0a4e50
      Alvaro Fuentes authored
      
      Computing account.move.payment_state relies on this field. When
      perfoming payment operations in bulk (like during an upgrade) the field
      computation may become too slow.
      
      On recent upgrade cases the abscense of this index caused delays ranging
      from 5 hours to whole days in the upgrade of big DBs.
      
      closes odoo/odoo#105794
      
      Signed-off-by: default avatarChristophe Simonis <chs@odoo.com>
      8d0a4e50
Loading