Wednesday, September 25, 2024
13 changes · 17.0
Enhancements to existing features
Jordan localization tax names, descriptions, and invoice labels were updated to make tax information clearer for users and customers. An additional exempt tax group was added, improving how exempt taxes are categorized in accounting documents.
Original PR description
Updated the tax names, descriptions, and invoice labels to be more clear. Added an additional tax group for exempt. task-4196993 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Mexican electronic invoicing users can now see the fiscal folio in list views for vendor invoices and all payments, not just customer invoices. This makes it easier for accounting teams to identify, reconcile, and audit documents without opening each record individually.
Original PR description
Allow viewing the fiscal folio for vendor invoices and all payments in the tree view, as it currently only displays for customer invoices.
Resolved issues and error corrections
This fixes an issue that could prevent company accounting templates from loading when custom multi-record fields were added to company records. Businesses can now customize company data more safely without disrupting accounting setup or localization template installation.
Original PR description
template data of model res.company: {id: values}
template data of model account.journal, account.tax...: {xmlid: values}
An error occurred when adding the x2many field to res.company and try load template
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prMiscellaneous changes
**Steps to reproduce the bug:** - Create a storable product “P1”: - Vendor: Azure Interior - Reordering rule: - Trigger: Auto - Route: Buy - Go to the user settings and give Marc Demo access only to Sales. - Log in as Marc. - Create a sales order: - Product: 1 unit of P1. - Confirm the SO. - A purchase order is created. - Create a second SO with another 1 unit of P1. - Confirm it. **Problem:** An error is triggered: `odoo.exceptions.AccessError: You are not al
Original PR description
**Steps to reproduce the bug:** - Create a storable product “P1”: - Vendor: Azure Interior - Reordering rule: - Trigger: Auto - Route: Buy - Go to the user settings and give Marc Demo access only to…
Corrects the Saskatchewan PST tax report so credit notes are tagged and included properly. This helps Canadian businesses produce more accurate tax reports and reduces the risk of reporting discrepancies.
Original PR description
In de29ff9cee5be830b8d2aaf2c703f4f13ee24dec, we missed a tag for credit notes on PST tax for saskatchewan tax report. opw-3955926
This update fixes a display issue on mobile devices where two important alerts were overlapping each other on the map view. Now, the setup token alert will only appear after the address locating process is complete, providing a cleaner and more user-friendly experience on mobile devices.
Original PR description
before this commit: On mobile devices, the `Locating new addresses` and `Set up token` Bootstrap alerts are overlapping. after this commit: On mobile devices, the `Set up token` alert only becomes visible after the `Locating new addresses` process has been completed. Task-3928322 Forward-Port-Of: odoo/enterprise#70526 Forward-Port-Of: odoo/enterprise#69822
This fix adds the missing UNSPSC (United Nations Standard Products and Services Code) classifications for "Square meter" and "Square foot" units of measure. These codes are now properly assigned in the Surface category, ensuring accurate product classification for purchasing and compliance purposes.
Original PR description
Problem: The UNSPSC codes for "Square meter" and "Square foot" were not created for the corresponding units of measure. Steps to reproduce: - Navigate to Purchase > Configuration > UoM Categories > Surface. - There is no UNSPSC category assigned by default for these units of measure. opw-4103838 Forward-Port-Of: odoo/enterprise#70102
**Steps to reproduce the bug:**
- Create a storable product “P1”:
- Vendor: Azure Interior
- Reordering rule:
- Trigger: Auto
- Route: Buy
- Go to the user settings and give Marc Demo access only to Sales.
- Log in as Marc.
- Create a sales order:
- Product: 1 unit of P1.
- Confirm the SO.
- A purchase order is created.
- Create a second SO with another 1 unit of P1.
- Confirm it.
**Problem:**
An error is triggered:
`odoo.exceptions.AccessError: You are not allowed to access 'Purchase Order Line' (purchase.order.line) records.`
When the second SO is confirmed, a quantity request is made, triggering the "buy" rule. A check is made if there is a candidate “purchase order line” with the same specifications to update its quantity instead of creating a new one:
https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase_stock/models/stock_rule.py#L130-L136
The function `_update_purchase_order_line` is called, where access to the taxes associated with the purchase order line is attempted: https://github.com/odoo/odoo/blob/a9cbd2a2ae2e21f1ba14379aecd908c44497b8ab/addons/purchase_stock/models/stock_rule.py#L248
Since it’s a Many2Many field, a query is made to fetch all the records. However, because the user does not have access to the `account.tax` model, an error is triggered.
opw-4193125
Forward-Port-Of: odoo/odoo#181073The Issue: Before this commit, assigning a URL to the page triggered the write function. Within this function, the get_current_website function returned a different website than the one in the test. As a result, the rest of the code applied to this incorrect website instead of the appropriate one. The Fix: Pass the correct website within the context runbot-54617 Forward-Port-Of: odoo/odoo#176032
Original PR description
The Issue: Before this commit, assigning a URL to the page triggered the write function. Within this function, the get_current_website function returned a different website than the one in the test. As a result, the rest of the code applied to this incorrect website instead of the appropriate one. The Fix: Pass the correct website within the context runbot-54617 Forward-Port-Of: odoo/odoo#176032
Steps to reproduce: - Create 2 websites and give them a different domain - Go to any product page (shared between all websites) - Check the source code with https://validator.schema.org/: the URL and image microdata start with the wrong domain. => Case 1: if no company_id was set on the product, the URL returns `web.base.url`. => Case 2: if a company_id is set and that company has a website_id set, both websites return the company's website domain. This commit makes sure to return the cu
Original PR description
Steps to reproduce: - Create 2 websites and give them a different domain - Go to any product page (shared between all websites) - Check the source code with https://validator.schema.org/: the URL and image microdata start with the wrong domain. => Case 1: if no company_id was set on the product, the URL returns `web.base.url`. => Case 2: if a company_id is set and that company has a website_id set, both websites return the company's website domain. This commit makes sure to return the current website domain. opw-4113559 Forward-Port-Of: odoo/odoo#179455
On accounting reports you can set the availability based on various conditions. The `availability_condition` field is a stored computed one that depends on `country_id` since [this commit]. Since the field also has an `onchange` registered that empties the `country_id` field when the `availability_condition` is not `country`, setting the field to anything else than `country` triggers a recomputation of the `availability_condition`. This `compute` function defaults to setting the `availability
Original PR description
On accounting reports you can set the availability based on various conditions. The `availability_condition` field is a stored computed one that depends on `country_id` since [this commit]. Since the field also has an `onchange` registered that empties the `country_id` field when the `availability_condition` is not `country`, setting the field to anything else than `country` triggers a recomputation of the `availability_condition`. This `compute` function defaults to setting the `availability_condition` to `always`. Thus you can never choose the option `coa` again. This commit only sets the default `always` value in the `compute` function when there is no value set yet. That way the field doesn't reset itself to `always` on every computation of the field. [this commit]: https://github.com/odoo/odoo/commit/73a8098f7c5247b4620170f90513b50672f9a776 Forward-Port-Of: odoo/odoo#181195
**Current behavior:** If a kit component is packaged, it will only appear once on a delivery slip for the kit product under the package section. **Expected behavior:** It should always (also) be shown under the kit section. **Steps to reproduce:** 1. Create a product with a kit bom with 2 components 2. Create on-hand quantities for the components, where one is in a package and the other is not 3. Create a delivery for the kit product, validate, print the delivery slip **Cause o
Original PR description
**Current behavior:** If a kit component is packaged, it will only appear once on a delivery slip for the kit product under the package section. **Expected behavior:** It should always (also) be shown under the kit section. **Steps to reproduce:** 1. Create a product with a kit bom with 2 components 2. Create on-hand quantities for the components, where one is in a package and the other is not 3. Create a delivery for the kit product, validate, print the delivery slip **Cause of the issue:** These move lines were intentionally separated. **Fix:** Remove the template logic where the lines that previously displayed such lines one time, prioritizing the package. opw-4148795 Forward-Port-Of: odoo/odoo#180859
With new Type 1 font constraints and the fonts-urw-base35 package, the 'Courier' font may not be available and we have to use the substitution font. However, the delivered afm files lack the required Ascender/Descender for reportlab to correctly position the human readable part of barcodes. task: 4179663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180994
Original PR description
With new Type 1 font constraints and the fonts-urw-base35 package, the 'Courier' font may not be available and we have to use the substitution font. However, the delivered afm files lack the required Ascender/Descender for reportlab to correctly position the human readable part of barcodes. task: 4179663 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#180994
Currently, an exception was generated when the user deleted all website pages and tried to search for anything on the website. error: ``` SyntaxError: syntax error at or near ")" LINE 7: AND "website_page".id IN () ^ File "odoo/http.py", line 2383, in __call__ response = request._serve_db() File "odoo/http.py", line 1913, in _serve_db return self._transactioning( File "odoo/http.py", line 1976, in _tra
Original PR description
Currently, an exception was generated when the user deleted all website pages and tried to search for anything on the website. error: ``` SyntaxError: syntax error at or near ")" LINE 7: AND…
Currently, an exception was generated when the user deleted all website pages and tried to search for anything on the website.
error:
```
SyntaxError: syntax error at or near ")"
LINE 7: AND "website_page".id IN ()
^
File "odoo/http.py", line 2383, in __call__
response = request._serve_db()
File "odoo/http.py", line 1913, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1976, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 134, in retrying
result = func()
File "odoo/http.py", line 1943, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2100, in dispatch
return self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 227, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 757, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website/controllers/main.py", line 606, in hybrid_list
data = self.autocomplete(search_type=search_type, term=search, order='name asc', limit=500, max_nb_chars=200, options=options)
File "odoo/http.py", line 757, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/website/controllers/main.py", line 487, in autocomplete
results_count, search_results, fuzzy_term = request.website._search_with_fuzzy(search_type, term, limit, order, options)
File "addons/website/models/website.py", line 1711, in _search_with_fuzzy
count, results = self._search_exact(search_details, fuzzy_term, limit, order)
File "addons/website/models/website.py", line 1740, in _search_exact
results, count = model._search_fetch(search_detail, search, limit, order)
File "addons/website/models/website_page.py", line 259, in _search_fetch
self.env.cr.execute(SQL(
File "odoo/sql_db.py", line 347, in execute
res = self._obj.execute(query, params)
```
This is because the user deleted all pages, and we got an empty list on `most_specific_pages`.
This commit will fix the above issue by preventing the execution of the query when most_specific_pages is empty.
sentry-5449704973
Forward-Port-Of: odoo/odoo#179619