Skip to content
Snippets Groups Projects
  1. Nov 24, 2022
    • 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
  2. Nov 23, 2022
  3. Nov 22, 2022
  4. Nov 21, 2022
  5. Nov 20, 2022
  6. 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
    • Victor Piryns (pivi)'s avatar
      [FIX] web, stock: rollback database when crashing on report generation · d7fdcdce
      Victor Piryns (pivi) authored
      
      Current behaviour:
      When we are printing a report and then the report fails to generate
      (for ex. wkhtmltopdf memory limit/timeout),
      the incorrect state is committed to the database.
      
      Expected behaviour:
      We should rollback when generating reports fails, since it is an error state.
      
      Steps to reproduce:
      To reproduce the behaviour, we need to force an error state.
      - In odoo/addons/base/models/ir_actions_report.py:`_run_wkhtmltopdf()`,
      raise an exception before spawning the subprocess (for ex. adding a 1/0).
      - In addons/web/controllers/main.py:`report_download()`#L2126,
      add this little code snippet:
      ```python
      ids = [int(x) for x in docids.split(",")]
      report = request.env['ir.actions.report']._get_report_from_name(reportname)
      obj = request.env[report.model].browse(ids)
      if getattr(obj, 'message_post'):
          obj.message_post(body='This report was committed!')
      ```
      - Install Inventory
      - Pick a delivery order and try to print it, there should be an error
      (whatever exception you decided to raise in `_run_wkhtmltopdf()`)
      - See that in the message board we got a message that the report has been committed,
      which isn't the case, it failed to generate.
      
      Reason for the problem:
      Controllers are catching the exception when generating reports,
      but never reset the state of the database.
      
      Fix:
      Raise an InternalServerError with an error code of 500 to trigger
      a database rollback.
      
      Affected versions:
      - 14.0
      - 15.0
      - saas-15.2
      - saas-15.3
      - 16.0
      - master
      
      opw-3001950
      
      closes odoo/odoo#104594
      
      Related: odoo/enterprise#33443
      Signed-off-by: default avatarJulien Castiaux <juc@odoo.com>
      d7fdcdce
    • Nasreddin Boulif (bon)'s avatar
      [FIX] hr_expense: display right error if no employee found · a339caa2
      Nasreddin Boulif (bon) authored
      
      Steps to reproduce:
      
        - Install `Expenses` module
        - Go to Settings > Technical > Email > Aliases
        - Edit the `expense` alias
        - Ensure the model is `Expense`
        - Set `Alias Contact Security` to `Everyone`, then save
      
        - Send an e-mail to the expense alias, using an e-mail address not
          referenced on one of the employees.
      
      Issue:
      
        Error in logs related to `currency` variable.
      
      Cause:
      
        Trying to create an expense for a non-existing user, therefore,
        no currency is set.
      
      Solution:
      
        If no user is found, no need to create the expense and let the orm
        raise the error that a required field is not set (field employee on
        expense).
      
      opw-3027350
      
      closes odoo/odoo#105771
      
      Signed-off-by: default avatarKevin Baptiste <kba@odoo.com>
      a339caa2
    • Thomas Lefebvre (thle)'s avatar
      [FIX] base: calendar for new model with studio · f72a7493
      Thomas Lefebvre (thle) authored
      Version:
      V14 only
      
      Steps to reproduce:
      install Studio app (web_studio module);
      inside an app create a new model with Studio;
      choose the "Date & Calendar" feature for the new model;
      create the model.
      
      Issue:
      An error occurs "Invalid view Default calendar view for x_modelName definition in False".
      
      Causes:
      Server log:
      `odoo.tools.view_validation: <string>:1:0:ERROR:RELAXNGV:RELAXNG_ERR_INVALIDATTR: Invalid attribute edit for element calendar`
      `odoo.tools.view_validation: Invalid XML: Get RNG validator and validate RNG file.`
      
      Explanation:
      ".xml" files must be verified with the grammar inside the ".rng" files. The "edit" attribute is missing in the calendar tag grammar (calendar_view.rng file). This attribute is added during the validation's process of a view when it is created.
      
      Link of the function which add the attribute: https://github.com/odoo/odoo/blob/14.0/odoo/addons/base/models/ir_ui_view.py#L899-L912
      
      
      
      Solutions:
      Add the "edit" attribute inside the "calendar_view.rng".
      
      opw-2972415
      
      closes odoo/odoo#100456
      
      Signed-off-by: default avatarXavier Morel (xmo) <xmo@odoo.com>
      f72a7493
  7. Nov 16, 2022
    • Ahmad Khanalizadeh's avatar
      [FIX] membership: calculate membership state · 6d6ff5ea
      Ahmad Khanalizadeh authored
      
      Steps to reproduce:
      1. Create a membership product for a period of time in the past,
       and one including the current day
      2. Create a member, make him non-free
      3. Create an invoice for the member for the past membership, cancel
       the invoice
      4. Note that membership state is not updated to `cancelled` (Problem 1)
      5. Change the `date_cancel` on membership.membership.line
       to a date in the past
      6. Add an invoice for the current membership, note that the state is
       updated to `cancelled`
      7. confirm the invoice and register payment, note that the state is
       not update to `paid` (Problem 2)
      
      This line in `_compute_membership_state` causes the bug to appear:
      ```
      if partner.membership_cancel and today > partner.membership_cancel:
          partner.membership_state = 'free' if partner.free_member else 'canceled'
          continue
      ```
      
      To solve the issue, we remove the lines of code that made the state
      to be stuck and use the membership lines only to calculate the correct
      state.
      
      opw-2978902
      
      closes odoo/odoo#104178
      
      Signed-off-by: default avatarGrazioso Andrea (agr) <agr@odoo.com>
      6d6ff5ea
    • damr's avatar
      [FIX] 14.0 rating: submit rating feedback with 'get' method · d8f3c941
      damr authored
      
      In rating/controllers/main.py, the method action_submit_rating accepts
      only post request. This creates a problem when you're trying to use the
      web editor on the template as well as when you just paste the url in
      your browser, for those are get request. The current behavior is a crash
      with 'method not allowed'. This commit's purpose is to change the method
      so it also accept get request. The use case of editing the feedback
      rating page is arguable but it schould not crash.
      
      The behavior after this commit is that the web editor is enable for the
      page, and relaoding the page does not crash anymore.
      
      task-3047893
      
      closes odoo/odoo#104856
      
      Signed-off-by: default avatarLaurent Stukkens (ltu) <ltu@odoo.com>
      d8f3c941
    • Adrien Widart (awt)'s avatar
      [FIX] mrp: include unscrapped SN when checking uniqueness · ac11b7e0
      Adrien Widart (awt) authored
      
      It is not possible to consume a component tracked by serial that comes
      back from a scrap location
      
      To reproduce the issue:
      1. In Settings, enable "Multi Routes"
      2. Create two storable products P_compo, P_finished
          - P_compo is tracked by serial number
      3. Update the on-hand qty of P_compo:
          - 1 x P_compo with serial SN
      4. Process a manufacturing order MO:
          - Product: P_finished
          - Compo: 1 x P_compo with SN
      5. Unbuild P_finished
          - It brings SN back to stock
      5. Scrap one P_compo with SN
      6. Unscrap it (thanks to an internal transfer)
      7. Repeat step 4
      
      Error: a user error is raised: "The serial number SN used for component
      P_compo has already been consumed"
      
      When checking the SN uniqueness of a component, we don't consider the
      case where a product came back from a srap location
      
      OPW-3055252
      
      closes odoo/odoo#105843
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      ac11b7e0
    • Adrien Widart (awt)'s avatar
      [FIX] mrp: check SN uniqueness on WO · 402dfd0a
      Adrien Widart (awt) authored
      When marking a WO as done, if the serial number defined is related to an
      unbuilt product, an error will be raised and the user will not be able
      to mark the WO as done
      
      To reproduce the issue:
      1. Create a BoM for product P with one operation
          - P is tracked by SN
      2. Produce one P with serial S
      3. Unbuild it
      4. Create and confirm a second MO with 1 x P
      5. Start the WO
      6. On tablet view, set the finished lot to S
      7. Mark the WO as done
      
      Error: a UserError is raised because "This serial number [...] has
      already been produced". However, this serial number has been unbuilt so
      the worker should be able to use it again
      
      When marking the WO as done, we check the uniqueness of the defined
      serial number. But:
      - The check is not accurate enough, hence the above error
      - The lot of the WO is a computed/inverse field based on lot of the MO
      - Once the WO closed, we can still change the lot of the MO
      - When marking the MO as done, a better method checks the SN uniqueness
      (does not fail in the above case)
      
      Therefore, the checking on WO side is useless. We should let the MO side
      handle this.
      
      Moreover, let's say that there is already one P in stock with serial S2.
      On tablet view, if the worker set the lot to S2, there should be a
      warning so he can be aware of the situation. This is already the case on
      MO side:
      https://github.com/odoo/odoo/blob/45e37b2ad7bdcfd9f9f7e1dabbd0a99c9a0b5cdc/addons/mrp/models/mrp_production.py#L694-L705
      
      
      
      (This commit is linked to a similar commit OE side, same opw)
      
      OPW-3002424
      
      closes odoo/odoo#104456
      
      Related: odoo/enterprise#33377
      Signed-off-by: default avatarTiffany Chang <tic@odoo.com>
      402dfd0a
  8. Nov 15, 2022
    • Nshimiyimana Séna's avatar
      [FIX] base_vat: keep leading zeros on San Marino tax id · 24207914
      Nshimiyimana Séna authored
      
      ### Steps to reproduce
      * install the *VAT Number Validation `(base_vat)`* and Contacts module.
      * Create a new contact from San Marino and set their Tax Id to SM05426
      * Save the contact
      
      You should see that the leading zeros have been removed on the Tax Id
      (here, SM05426 became SM5426)
      
      opw-3007722
      
      closes odoo/odoo#103545
      
      Signed-off-by: default avatarJosse Colpaert <jco@odoo.com>
      24207914
    • Hubert Van de Walle (huvw)'s avatar
      [FIX] web: list view: don't rerender a row before the previous render is done · 6ee17243
      Hubert Van de Walle (huvw) authored
      Setup:
      
        - Add a checkbox to the sublist view of quotations with studio and save
        - In the chrome devtools, select a custom network throttling profile
          with 1s of latency
      
      Steps to reproduce:
      
        First example:
      
        - Go to a quotation with at least two lines
        - Enter edit mode
        - Change the quantity of the first line
        - Double click on the price field of the second line
        -> A traceback appears: `Cannot set properties of null (setting 'props')`
      
        Second example:
        - Go to a quotation with at least two lines
        - Enter edit mode
        - Change the quantity of the first line
        - Click on the price field of the second line
        - Click on Save
        -> The same traceback is there
      
      Cause of the issue:
      
        The checkbox field is implemented in owl and thus the
        owl_compatibility layer is used.
        Mounted is not called on the checkbox if a new rendering is being done
        cf: https://github.com/odoo/odoo/pull/75950
      
      
        Currently, it is possible to set a row mode before the previous call
        and rendering is done.
      
      Solution:
      
        Use a mutex for each record to prevent simultaneous render
      
      opw-2937444
      
      closes odoo/odoo#101419
      
      Signed-off-by: default avatarAaron Bohy (aab) <aab@odoo.com>
      6ee17243
    • Adrien Widart (awt)'s avatar
      [FIX] mrp_subcontracting_dropshipping,purchase_stock: return to supplier · 8276a9b5
      Adrien Widart (awt) authored
      
      When returning a dropshipped and subcontracted product to the supplier
      location, the received quantity of the PO line will be incorrect
      
      To reproduce the issue:
      1. Create two storable products P_compo, P_Finished
      2. Create a BoM:
          - Product: P_finished
          - Type: Subcontracting
          - Subcontractors: a subcontractor S
          - Components: 1 x P_compo
      3. Create and confirm a PO:
          - Vendor: S
          - Deliver To: Dropship
          - Drop Ship Address: a partner P
          - Products: 1 x P_finished
      4. Validate the receipt
      5. Create a return with 1 x P_finished:
          - Update SO/PO quantities: True
          - Return Location: Partner Locations/Vendors
      6. Validate the return
      7. Go back to the PO
      
      Error: The qty received is 2, it should be 0
      
      There is currently no code to handle the return of a dropshipped product
      
      OPW-3030895
      
      closes odoo/odoo#105185
      
      Signed-off-by: default avatarWilliam Henrotin (whe) <whe@odoo.com>
      8276a9b5
    • Adrien Widart (awt)'s avatar
      [FIX] mrp_subcontracting_dropshipping: return to stock location · 0486e2e5
      Adrien Widart (awt) authored
      When returning a dropshipped and subcontracted product to an internal
      location, the received quantity of the PO line will be incorrect
      
      To reproduce the issue:
      1. In Settings, enable "Storage Locations"
      2. Create two storable products P_compo, P_Finished
      3. Create a BoM:
          - Product: P_finished
          - Type: Subcontracting
          - Subcontractors: a subcontractor S
          - Components: 1 x P_compo
      4. In Locations, edit WH/Stock:
          - Return location: True
      5. Create and confirm a PO:
          - Vendor: S
          - Deliver To: Dropship
          - Drop Ship Address: a partner P
          - Products: 1 x P_finished
      6. Validate the receipt
      7. Create a return with 1 x P_finished:
          - Update SO/PO quantities: True
          - Return Location: WH/Stock
      8. Validate the return
      9. Go back to the PO
      
      Error: The qty received is 2, it should be 1 (it should not be 0 since
      the product has been returned to an internal location)
      
      In `/purchase_stock._compute_qty_received`, there is already a code to
      anticipate such a situation (i.e., a user who returns a dropshipped
      product to his stock location):
      https://github.com/odoo/odoo/blob/bf3c398f0644f690c64815b2b6e298aed7bedd70/addons/purchase_stock/models/purchase.py#L300-L305
      However, the methods `_is_dropshipped` and `_is_dropshipped_returned` do
      not include the feature subcontracting + dropshipping. This is the
      reason why, in `_compute_qty_received`, the above condition is not
      respected and why we add the return stock move to the received qty.
      
      OPW-3030895
      
      Part-of: odoo/odoo#105185
      0486e2e5
    • Adrien Widart (awt)'s avatar
      [FIX] core: find currency when writing monetary field · 4456480b
      Adrien Widart (awt) authored
      
      When creating a record, if a value is related to a monetary field and if
      the currency field is a non-stored related one, the value will not be
      rounding: when writing the monetary value in the database, we first call
      `convert_to_column`. In the parameter, `record` is empty (it is not yet
      created) and `values` only contains the stored values (so the currency
      value is not present). As a result, `currency` will not be defined and
      the value will not be rounded.
      
      OPW-2955202
      
      closes odoo/odoo#104346
      
      Signed-off-by: default avatarRaphael Collet <rco@odoo.com>
      4456480b
    • Cao Đình Trung's avatar
      [FIX] maintenance: avoid empty close_date in done stage · badc4ace
      Cao Đình Trung authored
      
      Steps to reproduce the error:
      - Install 'Maintenance'
      - Select 'Maintenance' -> 'Request Maintenance'
      - Create a maintenance request:
                + TH1: Save > Change stage to Repaired > 'Close date' =
      Date.Today()
                + TH2: Don't Save > Change stage to Repaired > Save > 'Close
      date' = blank
      
      closes odoo/odoo#100777
      
      Problem: App will show 'Close Date' blank
      Expected: App will display 'Close Date' as Date.Today()
      Solution: When Click on Save button -> Automatically get current date as end date
      Signed-off-by: default avatarArnold Moyaux (arm) <arm@odoo.com>
      badc4ace
    • gawa-odoo's avatar
      [IMP] l10n_de_{skr03,skr04}: add right accounts to tax groups · 453cf0b6
      gawa-odoo authored
      
      There are specific accounts that should be used for tax groups for
      each version of the CoA
      
      t-3059059
      
      closes odoo/odoo#105648
      
      Signed-off-by: default avatarJohn Laterre (jol) <jol@odoo.com>
      453cf0b6
  9. Nov 14, 2022
  10. Nov 13, 2022
  11. Nov 10, 2022
Loading