Monday, April 8, 2024
26 changes · saas-17.2
Resolved issues and error corrections
Runbot now recognizes a failed web test as a completed test run instead of waiting until it times out. This helps developers and teams get faster, clearer feedback when automated tests fail.
Original PR description
Before this commit, when a test failed, runbot would wait until a message does not contain "[HOOT]" and timout. Now, it will wait until a message does not contain "[HOOT]" or a message that contains "[HOOT] test failed (see above for details)". This means that the runbot will not time out anymore. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Odoo now checks template relationships while preparing website and app assets, helping spot configuration or naming mistakes that could otherwise silently disable interface customizations. Several affected templates were also corrected so their intended extensions apply reliably.
Original PR description
With https://github.com/odoo/odoo/pull/145602, template inheritance is now applied lazily browser side. When OWL needs a template, the template and all related templates (if any) are parsed and used to construct the final template used by OWL. So if some parent template in the chain is missing, it is only detected at that time. But for extensions (t-inherit-mode="extension"), the situation is different. If for some reason (e.g a typo) the parent of an extension is not found, the extension will simply never be used and will never cause a crash (if not tested in a test/tour). In this commit, we check if all parent templates are available in the bundles when they are prepared server side. That check will only log an error in the console. We also make sure that some template extensions are now applied by modifying some template t-inherit attributes (an exact match t-inherit = t-name is needed now).
Odoo now waits until the web client has the complete user context before loading actions. This prevents server actions from running with missing information such as the active company, reducing errors in multi-company or context-dependent workflows.
Original PR description
Since [1], when an action is loaded, if the action is a server action, the server will execute the action directly and return the resulting action. Before the commit [1], only a part of the context was need, now that the server execute the action, the complete user context is need. Before this commit, a performance improvement was to call the action load at the beginning of the action service. The issue with calling the action load in such an early step, is that all the user context is not complete yet (For instance, the allowed_company_id is not yet there, it's added later by the company service). Now, the call to the action load is made on the mount of the WebClient, in which moment it should have the complete user context. [1] : https://github.com/odoo/odoo/commit/f49e97e9ad41c1c5e7123bad9c429a9af2732b73
This update fixes an internal code issue found by newer quality checks, helping prevent potential errors in hardware receipt printer handling. It supports a smoother upgrade of development tools without changing day-to-day user workflows.
Original PR description
We are planning to upgrade the pylint version since ruff is now fully deployed. This will fix some of the issue that where not detected with the previous version This will be backported from 15.0 to 17.1 by moc with additional fixes.
This fixes a display issue where 15-minute calendar events could lose their intended styling after refreshing the page. Short meetings now keep the correct visual indicators, making the calendar easier to read and preventing confusing event displays.
Original PR description
For info FullCalendar V6 use Preact internally. Preact is similar to OWL/React/Vue as when some props change it apply the change on the element linked to the props. In our case for the events, when…
For info FullCalendar V6 use Preact internally. Preact is similar to OWL/React/Vue as when some props change it apply the change on the element linked to the props. In our case for the events, when an event has a duration of 15 minutes FullCalendar changes the `isShort` to `true` so Preact can add the `fc-timegrid-event-short` class to the event. In Odoo we add also other classes to these events for our needs (e.g.: `o_event_striked`). In FullCalendar V4 it was done in `eventRender` using `el.classList.add()`. During the migration to FullCalendar V6 [1] the `eventRender` was changed into `eventDidMount` (a Preact HOOK). In most cases, `eventDidMount` is fine but not for short event, as in FullCalendar V6 there is another HOOK especially for the classes `eventClassNames` [2]. Before this fix, the render flow of the event was: 1) pre-render event 2) add the event to the DOM 3) call `eventDidMount` (here we add our classes) 4) FullCalendar set `true` to `isShort` props 5) Preact sets the classes on the event to add `fc-timegrid-event-short` (here FullCalendar removes our classes added in `eventDidMount`) After the fix, the render flow is the same as before, but as we add the classes using the `eventClassNames` HOOK, FullCalendar knows all additional classes per event so when Preact (in steps 5) sets the classes its adds `fc-timegrid-event-short` and all other classes added by our code in `eventClassNames`. Steps to reproduce: * Open Calendar App * Make an event with a duration of 15 minutes * Refresh the page (F5) => Bug the style of new event (15 min) is wrong [1]: odoo/odoo@90f85a19deaea33cd747c969762ff20f1d59ef4c [2]: https://fullcalendar.io/docs/event-render-hooks --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The web test timeout has been increased to reduce random failures in automated checks. This helps keep development and release validation more stable while the team investigates why some tests occasionally take longer than expected.
Original PR description
This PR increases the duration after which a test is considered as failed. This has been done because undeterministic failures have been observed on the CI, and this fix gives us time to investigate exactly what causes these tests to take a long time. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Fixes an error that occurred when saving a Point of Sale product category after removing its parent category. This helps users update POS category structures without being blocked by a system error.
Original PR description
Currently, an error is generated when the user removes the parent category from the POS product categories and tries to save it. Steps to produce and error: 1. Go to Point of Sale > Configuration >…
Currently, an error is generated when the user removes the parent category from the
POS product categories and tries to save it.
Steps to produce and error:
1. Go to Point of Sale > Configuration > Products > PoS Product Categories
2. Open any PoS product categories that contains Parent Category.
3. Now remove Parent Category and try to save it >>> error generate
Stack Trace:
```
IndexError: list index out of range
File "odoo/http.py", line 2251, in __call__
response = request._serve_db()
File "odoo/http.py", line 1827, in _serve_db
return self._transactioning(_serve_ir_http, readonly=ro)
File "odoo/http.py", line 1847, 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 1825, in _serve_ir_http
return self._serve_ir_http(rule, args)
File "odoo/http.py", line 1832, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2057, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 220, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 739, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 38, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 34, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 458, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "addons/web/models/models.py", line 71, in web_save
self.write(vals)
File "addons/point_of_sale/models/pos_category.py", line 67, in write
vals["color"] = self.search_read([("id", "=", vals["parent_id"])])[0][
```
This is because at [1], we receive the `False` value in `vals["parent_id"]` as a result of
the search; it has no value, and a key error is generated because we try to access the first element but it is empty.
This commit will fix this issue by ensuring that the value of `parent_id` is in `vals` before searching.
[1]-https://github.com/odoo/odoo/blob/7479ffdc43c857bfd6439aefc024330dc22825b3/addons/point_of_sale/models/pos_category.py#L66-L69
sentry-5153069546Miscellaneous changes
**Description of the issue/feature this PR addresses:** **Before this PR:** When disabling the submenu for events, it would show a 404 Page Not Found error. **After this PR:** Now, the current behavior is that when the submenu is disabled, it redirects to the /register page of the event. task-3658380 Forward-Port-Of: odoo/odoo#160544 Forward-Port-Of: odoo/odoo#152409
Original PR description
**Description of the issue/feature this PR addresses:** **Before this PR:** When disabling the submenu for events, it would show a 404 Page Not Found error. **After this PR:** Now, the current behavior is that when the submenu is disabled, it redirects to the /register page of the event. task-3658380 Forward-Port-Of: odoo/odoo#160544 Forward-Port-Of: odoo/odoo#152409
Before this commit when accepting a recurrent event from google calendar with option "this event", it didn't reflect on odoo calendar. This happened due to the write_date check which applies google update only if their write_date is after odoo write_date, but multiple updates from google might change some events write_date to now, which causes other google updates to get discarded. This commit aims to fix this issue by keeping the write_date of the affected events before applying any google u
Original PR description
Before this commit when accepting a recurrent event from google calendar with option "this event", it didn't reflect on odoo calendar. This happened due to the write_date check which applies google update only if their write_date is after odoo write_date, but multiple updates from google might change some events write_date to now, which causes other google updates to get discarded. This commit aims to fix this issue by keeping the write_date of the affected events before applying any google updates, and considering these dates instead of the live odoo write_date. Task: 3731552 Forward-Port-Of: odoo/odoo#160357 Forward-Port-Of: odoo/odoo#158509
Description of the issue/feature this PR addresses: Commit [1] resolved an issue related to the behavior of small font sizes, which caused 'NaN' to appear in the font-size dropdown within the floating toolbar. This occurred due to the removal of a variable definition, resulting in the inability to compute the font size. This commit rectifies the problem by reintroducing the variable in the SCSS file to ensure correct rendering. [1]: https://github.com/odoo/odoo/commit/7931d1a14a3e4e65463cc
Original PR description
Description of the issue/feature this PR addresses: Commit [1] resolved an issue related to the behavior of small font sizes, which caused 'NaN' to appear in the font-size dropdown within the floating toolbar. This occurred due to the removal of a variable definition, resulting in the inability to compute the font size. This commit rectifies the problem by reintroducing the variable in the SCSS file to ensure correct rendering. [1]: https://github.com/odoo/odoo/commit/7931d1a14a3e4e65463cc101536061fa259b615d task-3801894 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#158811
How to reproduce: - Install website_slides with demo data - Log in from localhost - Log in from dev.localhost - Switch to localhost - (The system property web.base.url is http://dev.localhost:8069 but we are on localhost) - Go to a course in the back end and click on “Go to website” button You are redirected to the frontend website home page instead of the course home page. This fix solves the problem. Afer correcting this error for the courses (slide.channel), we have found the s
Original PR description
How to reproduce: - Install website_slides with demo data - Log in from localhost - Log in from dev.localhost - Switch to localhost - (The system property web.base.url is http://dev.localhost:8069…
How to reproduce: - Install website_slides with demo data - Log in from localhost - Log in from dev.localhost - Switch to localhost - (The system property web.base.url is http://dev.localhost:8069 but we are on localhost) - Go to a course in the back end and click on “Go to website” button You are redirected to the frontend website home page instead of the course home page. This fix solves the problem. Afer correcting this error for the courses (slide.channel), we have found the same problem for: - event.sponsor - event.meeting.room - slide.slide So we apply the same correction for them. Technical note: the button "Go to website" uses the open_website_url method of WebsitePublishedMultiMixin that relies on website_url. That method expects a relative URL in the computed field website_url and not an absolute one (actually, the method already handle adding the website domain, so it expect the relative part). The problem is that the compute method for the field website_url of channel compute an absolute URL. The consequence is that the user is redirected to the home page instead of the course page (by WebsitePreview, see get path method). In stable, we cannot change easily website_url to make it relative as it is used in other of places (ex.: if we make it relative the share link in the sidebar on the frontend is relative which is not correct and in mail template, the URL might not be correct as the mail system append the default domain for relative URLs). So instead, we override open_website_url to use a relative URL when the website is not defined. If the website is defined on the course, we call the super implementation because a domain change might be required. Note that by doing that, we duplicate the code of _compute_website_url in open_website_url but making the URL relative instead of absolute. So we should clean that in master. Task-3635856 Forward-Port-Of: odoo/odoo#160114 Forward-Port-Of: odoo/odoo#148103
Current behavior before PR: The cursor kept on flickering when attempting to enter a space at the end of label text field of a link resulting in not being able to add space at all. Desired behavior after PR is merged: Now, it's possible to add spaces at the end of a link label. task-3820250 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160661 Forward-Port-Of: odoo/odoo#160060
Original PR description
Current behavior before PR: The cursor kept on flickering when attempting to enter a space at the end of label text field of a link resulting in not being able to add space at all. Desired behavior after PR is merged: Now, it's possible to add spaces at the end of a link label. task-3820250 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160661 Forward-Port-Of: odoo/odoo#160060
If user had less than 1 point, which is equivalent to 1 quantity of set currency, on gift card and eWallet, they could not use it due to not enough point on Gift Card and eWallet for claiming reward. opw-3667934 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159984 Forward-Port-Of: odoo/odoo#155161
Original PR description
If user had less than 1 point, which is equivalent to 1 quantity of set currency, on gift card and eWallet, they could not use it due to not enough point on Gift Card and eWallet for claiming reward. opw-3667934 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159984 Forward-Port-Of: odoo/odoo#155161
This commit fixes an issue with the embedded views of "My dashboard" view: the embedded could take as much height as they needed which could result in excessive place taken by a single embedded view and this also had issues with the virtual hook which is not adapted to embedded views without scroll (this could result in completly blank space inside embedded gantt views when they would take too much space). To solve this issue, the commit adds a fixed maximum height to the embedded views (80% of
Original PR description
This commit fixes an issue with the embedded views of "My dashboard" view: the embedded could take as much height as they needed which could result in excessive place taken by a single embedded view and this also had issues with the virtual hook which is not adapted to embedded views without scroll (this could result in completly blank space inside embedded gantt views when they would take too much space). To solve this issue, the commit adds a fixed maximum height to the embedded views (80% of the window height) and also adds a minimum width to their content so that it will be horizontally scrollable instead of being weirdly squished. Also tweaks a bit the padding of the embedded view so that it looks a bit better even with the added scroll bars. task-3834795 Forward-Port-Of: odoo/odoo#160584 Forward-Port-Of: odoo/odoo#159663
A partner found a bug, when `write` (public method) is called on a recordset of more than one journal then the restriction will traceback, as the `id` can only be called on one journal. Simplest solution is to simply get `id` on the loop variable instead, and let the code normally block the user with a UserError. Credits to: https://github.com/juppe Old PR: https://github.com/odoo/odoo/pull/150888 Forward-Port-Of: odoo/odoo#158536
Original PR description
A partner found a bug, when `write` (public method) is called on a recordset of more than one journal then the restriction will traceback, as the `id` can only be called on one journal. Simplest solution is to simply get `id` on the loop variable instead, and let the code normally block the user with a UserError. Credits to: https://github.com/juppe Old PR: https://github.com/odoo/odoo/pull/150888 Forward-Port-Of: odoo/odoo#158536
Currently, when you copy the viva wallet webhook to configure it in your account, you have to select it manually. With this commit we add a “CopyClipboardChar” widget which does this automatically. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160516
Original PR description
Currently, when you copy the viva wallet webhook to configure it in your account, you have to select it manually. With this commit we add a “CopyClipboardChar” widget which does this automatically. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160516
Related to previous commit: a9a9d2f12740b02c025f992d62c0d4f5feeaab1d From initial PR: #158843 Improve Regexp to match double slugs /blog/blog-1/post-2 or /blog/1/2 Ignore param order: `?a=<param>&b=<param>` == `?b=<param>&a=<param>` Remove trailing / from base url when querystring is present Ignore '/en' url instead of '/en_US' since the default url_code has been updated meanwhile (269aa594111a152ad4b7714856ea745bfef57155). Add a new test to check that urls are cleaned as expected Remo
Original PR description
Related to previous commit: a9a9d2f12740b02c025f992d62c0d4f5feeaab1d From initial PR: #158843 Improve Regexp to match double slugs /blog/blog-1/post-2 or /blog/1/2 Ignore param order:…
Related to previous commit: a9a9d2f12740b02c025f992d62c0d4f5feeaab1d From initial PR: #158843 Improve Regexp to match double slugs /blog/blog-1/post-2 or /blog/1/2 Ignore param order: `?a=<param>&b=<param>` == `?b=<param>&a=<param>` Remove trailing / from base url when querystring is present Ignore '/en' url instead of '/en_US' since the default url_code has been updated meanwhile (269aa594111a152ad4b7714856ea745bfef57155). Add a new test to check that urls are cleaned as expected Remove crawl as admin, since the demo user already have all groups and so we will check the same urls. The overlap is important for a really low value. _**after** this pr https://github.com/odoo/odoo/pull/159370_ public crawled 68 urls in 6.44s 3167 queries, 0.095s 46.57q per request demo crawled 271 urls in 21.93s 13365 queries, 0.081s 49.32q per request _**currently**_ public crawled 92 urls in 8.74s 4233 queries, 0.095s 46.01q per request demo crawled 819 urls in 68.03s 36603 queries, 0.083s 44.69q per request admin crawled 813 urls in 67.46s 36441 queries, 0.083s 44.82q per request _**before** pr https://github.com/odoo/odoo/pull/158843_ public crawled 185 urls in 12.62s 7526 queries, 0.068s 40.68q per request demo crawled 6691 urls in 443.84s 342327 queries, 0.066s 51.16q per request admin crawled 6605 urls in 417.36s 336151 queries, 0.063s 50.89q per request So, it should reduce the crawling from 872" => 27" for the v16. Forward-Port-Of: odoo/odoo#160409 Forward-Port-Of: odoo/odoo#159370
Don't show HSN value for sale.order not linked to this localization. Before this commit, if you have multi company with multi localization, you see this field whatever the current localization. It uses the same condition than other report: purchase/invoice/... Forward-Port-Of: odoo/odoo#160766
Original PR description
Don't show HSN value for sale.order not linked to this localization. Before this commit, if you have multi company with multi localization, you see this field whatever the current localization. It uses the same condition than other report: purchase/invoice/... Forward-Port-Of: odoo/odoo#160766
When we want to post a vendor bill having duplicates, we show a `RedirectError` that should bring us to the list of duplicate bills. However, the action domain contained records instead of record ids, causing a traceback when clicking the button. The issue was introduced in 64a7a80bd8a87e984b73504113b1c31926557c05. This commit fixes that by providing a valid domain for the moves. task-3797825 Forward-Port-Of: odoo/odoo#160133
Original PR description
When we want to post a vendor bill having duplicates, we show a `RedirectError` that should bring us to the list of duplicate bills. However, the action domain contained records instead of record ids, causing a traceback when clicking the button. The issue was introduced in 64a7a80bd8a87e984b73504113b1c31926557c05. This commit fixes that by providing a valid domain for the moves. task-3797825 Forward-Port-Of: odoo/odoo#160133
The conditionnal `isinstance(exc, NotFound)` is shadowed by the conditionnal `isinstance(exc, HTTPException)` two lines above. Nobody ever complained that the warning for NotFound error was gone. Since werkzeug 1.0.0, the status code in the response log is colored, 404 is colored yellow which should catch the eye. The explicit warning line isn't really necessary. Forward-Port-Of: odoo/odoo#159665
Original PR description
The conditionnal `isinstance(exc, NotFound)` is shadowed by the conditionnal `isinstance(exc, HTTPException)` two lines above. Nobody ever complained that the warning for NotFound error was gone. Since werkzeug 1.0.0, the status code in the response log is colored, 404 is colored yellow which should catch the eye. The explicit warning line isn't really necessary. Forward-Port-Of: odoo/odoo#159665
First commit fixes an issue introduced by https://github.com/odoo/odoo/pull/154203 which could keep the autocomplete options list opened even after a click away when the user would "drag and drop" an option out of the list instead of simply clicking on it. This is caused by the fact that the onInputBlur code is directly terminated in this case (because of ignoreBlur) while it is the only way for the autocomplete list to be closed in this case. The solution is therefore to add an external listene
Original PR description
First commit fixes an issue introduced by https://github.com/odoo/odoo/pull/154203 which could keep the autocomplete options list opened even after a click away when the user would "drag and drop" an…
First commit fixes an issue introduced by https://github.com/odoo/odoo/pull/154203 which could keep the autocomplete options list opened even after a click away when the user would "drag and drop" an option out of the list instead of simply clicking on it. This is caused by the fact that the onInputBlur code is directly terminated in this case (because of ignoreBlur) while it is the only way for the autocomplete list to be closed in this case. The solution is therefore to add an external listener on pointer down which will always close the autocomplete list when clicking away from it. Steps to reproduce: - go to any autocomplete (crm salesperson for example) - click on the input - drag and drop a result outside of the list - try to close the autocomplete list by clicking away Before the fix, the autocomplete list would only close by scrolling or clicking on the input once again. Second commit fixes an issue regarding unwanted interaction between the regular autocomplete option click selection and the onChange handler from the input field hook used in the PartnerAutoCompleteCharField component. This became an issue starting from https://github.com/odoo/odoo/pull/154203 because of the disappearance of the t-on-mousedown.prevent handler placed on the autocomplete options list which would prevent the onChange event from being triggered when clicking on an option. The issue would be that the onChange handler from the input field hook would take precedence over the option click handler of the autocomplete which would most of the time be ignored afterwards. The solution found for this problem is to prevent the immediate propagation of the change event in the autocomplete handler when an option has been clicked on so that it will never be propagated to the input field hook handler in this case. Steps to reproduce: - Go to contacts and open a company contact - Type in the name field a few characters (at least 3) - Click on any autocomplete option Most of the time, the option will not be applied and the name won't change Forward-Port-Of: odoo/odoo#159765 Forward-Port-Of: odoo/odoo#159333
It should not be common, but through custo or in debug mode, one can create a menu without an URL since it's not required on the model. Through regular flows, it won't be possible since our UI won't let you go through when creating a menu if you don't set a URL. Followup of https://github.com/odoo/odoo/commit/948235079f002794f9837d3cf91e2d20e3254e20 Forward-Port-Of: odoo/odoo#160546 Forward-Port-Of: odoo/odoo#160457
Original PR description
It should not be common, but through custo or in debug mode, one can create a menu without an URL since it's not required on the model. Through regular flows, it won't be possible since our UI won't let you go through when creating a menu if you don't set a URL. Followup of https://github.com/odoo/odoo/commit/948235079f002794f9837d3cf91e2d20e3254e20 Forward-Port-Of: odoo/odoo#160546 Forward-Port-Of: odoo/odoo#160457
### Steps to reproduce: - Activate Subcontracting in the settings. - Create a storable product - Create a BOM of type "subcontracting" where the subcontractor is a Portal user (e.g. Joel Willis) for that product. - Log out and connect as your portal user. - Go to the website shop and search your product. ### Expected behavior: The portal user should only be able to see the published products. ### Current behavior: The portal user sees unpublished products for which he is subco
Original PR description
### Steps to reproduce: - Activate Subcontracting in the settings. - Create a storable product - Create a BOM of type "subcontracting" where the subcontractor is a Portal user (e.g. Joel Willis) for…
### Steps to reproduce: - Activate Subcontracting in the settings. - Create a storable product - Create a BOM of type "subcontracting" where the subcontractor is a Portal user (e.g. Joel Willis) for that product. - Log out and connect as your portal user. - Go to the website shop and search your product. ### Expected behavior: The portal user should only be able to see the published products. ### Current behavior: The portal user sees unpublished products for which he is subcontractor. ### Cause of the issue: The commit 99b56ec has introduced a subcontracting portal. In order for portal users to be able to interact with product templates, the following rule was added to the "base.group_portal": https://github.com/odoo/odoo/blame/f0a0d596ab716c96de38a5c0f837da2924338d7b/addons/mrp_subcontracting/security/mrp_subcontracting_security.xml#L120-L131 When you go to the website shop, the records displayed in the shop will be computed here: https://github.com/odoo/odoo/blob/1c321cd1fe0aabd9cd92c13cd1eae604e5817ae0/addons/website_sale/controllers/main.py#L348 https://github.com/odoo/odoo/blob/f0a0d596ab716c96de38a5c0f837da2924338d7b/addons/website/models/mixins.py#L353-L357 However, during this call, the "ir.rule" added for portal users will be added to the SQL query here: https://github.com/odoo/odoo/blob/1c321cd1fe0aabd9cd92c13cd1eae604e5817ae0/odoo/models.py#L4682 As such, products (enven if unpublished) for which the portal user is a subcontractor will be fetched and displayed in the shop. ### Fix: Since the "ir.rule" can not be changed only for flows involving the `website_sale` application, we propose to make a change similar to commit b1f6171 whose purpose is to hide unpublished products for non internal users: https://github.com/odoo/odoo/blob/1c321cd1fe0aabd9cd92c13cd1eae604e5817ae0/addons/website_sale/models/product_template.py#L105-L108 opw-3768845 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#159420
… portal Steps to reproduce: - Open project share any project which has task. - My account > project > open that project you can see task . - Open any task and add new sub-task you can see once the sub-task is saved 'task view' button is displayed. Issue: - Sub-tasks notebook > add a line > 'view task' is displayed at the creation but is then hidden once the task is saved. Solution: - Correct the attrs and change the condition in able to invisible 'view task' once the sub-task is s
Original PR description
… portal Steps to reproduce: - Open project share any project which has task. - My account > project > open that project you can see task . - Open any task and add new sub-task you can see once the sub-task is saved 'task view' button is displayed. Issue: - Sub-tasks notebook > add a line > 'view task' is displayed at the creation but is then hidden once the task is saved. Solution: - Correct the attrs and change the condition in able to invisible 'view task' once the sub-task is saved task-3602610 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#160773 Forward-Port-Of: odoo/odoo#145214
In the cart, customers can edit the quantity, add or remove products, and redeem promo codes, coupons, etc. The express checkout form handles only the quantity change, but the buttons are still shown even with a free cart (e.g. coupon for a free desk). When the customers use them, an error is thrown. Now, if a user has free cart after his modification, it will make express checkout button disappear. task-3568644 Forward-Port-Of: odoo/odoo#160386 Forward-Port-Of: odoo/odoo#149565
Original PR description
In the cart, customers can edit the quantity, add or remove products, and redeem promo codes, coupons, etc. The express checkout form handles only the quantity change, but the buttons are still shown even with a free cart (e.g. coupon for a free desk). When the customers use them, an error is thrown. Now, if a user has free cart after his modification, it will make express checkout button disappear. task-3568644 Forward-Port-Of: odoo/odoo#160386 Forward-Port-Of: odoo/odoo#149565
Current behavior: --- Cannot send SMS to a partner that has a mobile phone number from Panama. Steps to reproduce: --- ```python # 6198 5462 is a valid phone number parsed = phonenumbers.parse('6198 5462', region='PA') is_valid = phonenumbers.is_valid_number(parsed) is_valid == False ``` Cause of the issue: --- Old versions of phonenumbers (external library) are not updated to Panamas mobile phone numbers system change. Fix: --- Monkey patched the library Similar as: ht
Original PR description
Current behavior:
---
Cannot send SMS to a partner that has a mobile phone number from Panama.
Steps to reproduce:
---
```python
# 6198 5462 is a valid phone number
parsed = phonenumbers.parse('6198 5462', region='PA')
is_valid = phonenumbers.is_valid_number(parsed)
is_valid == False
```
Cause of the issue:
---
Old versions of phonenumbers (external library) are not updated
to Panamas mobile phone numbers system change.
Fix:
---
Monkey patched the library
Similar as: https://github.com/odoo/odoo/commit/b21df8797141dac9f2cf0315658a08a238849f5b
opw-3682631
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#159970
Forward-Port-Of: odoo/odoo#156969