Monday, April 8, 2024
40 changes · saas-17.2
Resolved issues and error corrections
This fixes a display issue where 15-minute appointment events could lose their intended styling after refreshing the calendar. Short appointments now keep the correct visual indicators, making schedules easier to read and reducing confusion for users.
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
This update prevents an Australian payroll report from failing when a payslip has no recorded worked days. It improves reliability for payroll reporting by handling an empty payslip detail safely instead of triggering an error.
Original PR description
Adds a check to avoid calling `_get_l10n_au_hourly_rate` on an empty `hr.payslip.worked_days` record Issues: test_reports failed when the payslip with no worked_days was used. The method _get_l10n_au_hourly_rate requires one record but none were passed. https://runbot.odoo.com/web#id=60794&view_type=form&model=runbot.build.error&menu_id=405&cids=1
This fix ensures a helpdesk timesheet test uses the same user to create and validate timesheets, avoiding timezone differences that could make entries appear on the wrong day. It improves the reliability of automated checks without changing day-to-day user behavior.
Original PR description
Before this commit, the timesheets created inside `test_timesheet_check_warning_when_helpdesk_team_change` test could be unvalidated even after calling `action_timesheet_validate`. The reason is because the timesheets are created by the current user (OdooBot) is our case and his timezone could be different than the user who validates the timesheets and so the timesheets date could be tomorrow for the timesheet approver used inside that test becaue of the timezone is not the same for the both users. To avoid timezone issue, this commit makes sure the same user creates and validates those timesheets since the goal of that test is to check the `project_id` field is unchanged for validated timesheets even if the ticket changed. runbot-61011
This update prevents a possible error in subscription order processing by ensuring transaction information is handled safely. It supports smoother upgrades to newer code quality checks and reduces the risk of unexpected failures in subscription 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 Note: `self.transaction_ids` could raise, this is why we have no garantee that `existing_transactions` will be defined. But the try except does not look to manage this case, this is why it should be safe to move this line outside the try.
This update restores two interface customizations that were no longer being applied after a recent platform change. It helps ensure the Enterprise settings view and the appointment no-slot message display as intended.
Original PR description
Since https://github.com/odoo/odoo/pull/145602, an exact match t-inherit = t-name is needed for an extension to be applied. Here we make sure that the extensions of the templates - "res_config_edition" (web_enterprise) - "Appointment.appointment_info_no_slot" (website_appointment) are applied.
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).
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
Before this commit, when the user clicks on a gantt cell of the planning gantt view to create a shift for a specific date. By doing that, the planned dates set by default to the form view is the whole period of the gantt view instead of the date set on the gantt cell clicked. This commit removes the override erasing the default planned dates by the period of the gantt to keep the standard behavior as before. Forward-Port-Of: odoo/enterprise#59247
Original PR description
Before this commit, when the user clicks on a gantt cell of the planning gantt view to create a shift for a specific date. By doing that, the planned dates set by default to the form view is the whole period of the gantt view instead of the date set on the gantt cell clicked. This commit removes the override erasing the default planned dates by the period of the gantt to keep the standard behavior as before. Forward-Port-Of: odoo/enterprise#59247
Before this commit the Whatsapp Sent Count (located in the Communication tab of the event view) wasn't including messages sent to the attendees who weren't confirmed. ### [This commit changes] Event mail scheduler will include seats_uncofirmed into calculation of the mail_count_done which is the count of emails sent. This is reflecting the actual number of messages sent. ### [Reproduce] - Install whatsapp_event - Create event E starting in time T (Events/Events) - Add an "Unconfirmed"
Original PR description
Before this commit the Whatsapp Sent Count (located in the Communication tab of the event view) wasn't including messages sent to the attendees who weren't confirmed. ### [This commit changes] Event…
Before this commit the Whatsapp Sent Count (located in the Communication tab of the event view) wasn't including messages sent to the attendees who weren't confirmed. ### [This commit changes] Event mail scheduler will include seats_uncofirmed into calculation of the mail_count_done which is the count of emails sent. This is reflecting the actual number of messages sent. ### [Reproduce] - Install whatsapp_event - Create event E starting in time T (Events/Events) - Add an "Unconfirmed" attendee - Add an E-Mail in the Communication tab of the event E - Set Interval time > T, - Template: "Email Reminder" - Trigger "Before the event" - Run scheduled Action sending whatsapp (Scheduled Actions / Event: Mail Scheduler) - BUG: message sent, but not included in the sent count in the communication tab of the event E Related to the commit in the odoo community called: [FIX] event: Include unregistered attendee emails in total sent count # Related PRs in odoo Community This Pr is a part of fix/test bundle. For more details check out the here Community PR: https://github.com/odoo/odoo/pull/153795 opw-3693626 Forward-Port-Of: odoo/enterprise#60065 Forward-Port-Of: odoo/enterprise#58428
Bug === When we send a UBL file by email, it is not detected as a UBL file. Technical ========= Since odoo/odoo@8214247 the XML files are imported as plain text. But the check for the UBL file check only the mimetype XML. Task-3792364 Forward-Port-Of: odoo/enterprise#58577
Original PR description
Bug === When we send a UBL file by email, it is not detected as a UBL file. Technical ========= Since odoo/odoo@8214247 the XML files are imported as plain text. But the check for the UBL file check only the mimetype XML. Task-3792364 Forward-Port-Of: odoo/enterprise#58577
## Issue: - When trying to select any new email template on follow up reports, it will only display the current template (the one configured in the followup level that the customer is currently in), and if you delete it, it's impossible to select one again. ## Steps To Reproduce: - accounting > Follow-up reports. - On a report click on FOLLOW UP. - Notice missing templates in Content Template. ## Solution: - The template_id field's domain is defined as `domain="[('model', '=',
Original PR description
## Issue:
- When trying to select any new email template on follow up reports, it will only display the current template (the one configured in the followup level that the customer is currently in), and if you delete it, it's impossible to select one again.
## Steps To Reproduce:
- accounting > Follow-up reports.
- On a report click on FOLLOW UP.
- Notice missing templates in Content Template.
## Solution:
- The template_id field's domain is defined as `domain="[('model', '=', render_model)]"`, which filters based on render_model. However, it was not functioning correctly because the computation for `render_model` was not being triggered.
- To resolve this issue, I set 'res.partner' as the default render_model in the `default_get`.
opw-3776312
Forward-Port-Of: odoo/enterprise#58400- Set up tax support configuration for new VAT purchase taxes of 5% and 15%. - Add rate and tax group codes for electronic documents - Add unit test for VAT 5% and 15% - Fix ATS report to declare VAT taxes inactive - Add tax support configuration migration for new VAT taxes in 2024 - Cover base and tax amounts scenario for the ATS, including new tax percentages - Fix missing tax support configuration for taxes with xml_ids: tax_vat_545_sup_08_vat0, tax_vat_545_sup_08_vat_exempt, tax_vat_54
Original PR description
- Set up tax support configuration for new VAT purchase taxes of 5% and 15%. - Add rate and tax group codes for electronic documents - Add unit test for VAT 5% and 15% - Fix ATS report to declare VAT taxes inactive - Add tax support configuration migration for new VAT taxes in 2024 - Cover base and tax amounts scenario for the ATS, including new tax percentages - Fix missing tax support configuration for taxes with xml_ids: tax_vat_545_sup_08_vat0, tax_vat_545_sup_08_vat_exempt, tax_vat_545_sup_08_vat_not_charged - Add default company configuration for sale and purchase taxes, with new 15% tax Forward-Port-Of: odoo/enterprise#59839 Forward-Port-Of: odoo/enterprise#59788
Previously, testing HMRC features with dummy credentials required manually changing variables within the code. This commit introduces a more user-friendly approach by adding a new configuration parameter. The new configuration parameter defaults to "production" to maintain existing behavior. However, users can switch to a "demo" or other values to transition the APIs to a sandbox environment for testing with mock credentials. task-3820114 Forward-Port-Of: odoo/enterprise#59152
Original PR description
Previously, testing HMRC features with dummy credentials required manually changing variables within the code. This commit introduces a more user-friendly approach by adding a new configuration parameter. The new configuration parameter defaults to "production" to maintain existing behavior. However, users can switch to a "demo" or other values to transition the APIs to a sandbox environment for testing with mock credentials. task-3820114 Forward-Port-Of: odoo/enterprise#59152
Some MUA allow users to group messages 'by thread', so that all emails that share some specific headers are bundled together in a 'conversation' view. In general, using the 'References' header to point to the original message in the thread is enough for most MUAs to properly group emails together. This is not the case for Outlook, which also wants the title to somewhat match the original title - some changes are accepted (typically at the start of the subject header) but others aren't.
Original PR description
Some MUA allow users to group messages 'by thread', so that all emails that share some specific headers are bundled together in a 'conversation' view. In general, using the 'References' header to…
Some MUA allow users to group messages 'by thread', so that all emails that share some specific headers are bundled together in a 'conversation' view. In general, using the 'References' header to point to the original message in the thread is enough for most MUAs to properly group emails together. This is not the case for Outlook, which also wants the title to somewhat match the original title - some changes are accepted (typically at the start of the subject header) but others aren't. For example, if a ticket is submitted by email alias with the title 'Important issue', then replies with titles like 'Re: Important issue' or '(#123) Important issue' are recognized as being from the same thread, but others like 'Important issue (#123)' are not. Since the helpdesk override of the display name is mostly there for the backend and not for email communications, this commit forces the helpdesk app to send emails with the exact same title as the initial ticket instead of including the ticket reference in the reply's title. The ticket reference is still included in the mail body for the customer so no information is lost. opw-3748509 Forward-Port-Of: odoo/enterprise#60150
This commit fixes an issue with the embedded views of the knowledge article 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 (
Original PR description
This commit fixes an issue with the embedded views of the knowledge article 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). task-3834795 Forward-Port-Of: odoo/enterprise#60126 Forward-Port-Of: odoo/enterprise#59629
The templates are used to create a report that will be sent to the fiscal authorities of the Netherlands. They have updated to a newer version of the template. Forward-Port-Of: odoo/enterprise#59907
Original PR description
The templates are used to create a report that will be sent to the fiscal authorities of the Netherlands. They have updated to a newer version of the template. Forward-Port-Of: odoo/enterprise#59907
Issue: If a customer was using `round globally` and at some point wanted to export its date, he could not do it because of this rounding parameter. The reason of the fix in the first place is not strong enough (occasional 1 cent rounding issue) to justify blocking such an important flow original pr: https://github.com/odoo/enterprise/pull/34560 opw-3848827 Forward-Port-Of: odoo/enterprise#60026
Original PR description
Issue: If a customer was using `round globally` and at some point wanted to export its date, he could not do it because of this rounding parameter. The reason of the fix in the first place is not strong enough (occasional 1 cent rounding issue) to justify blocking such an important flow original pr: https://github.com/odoo/enterprise/pull/34560 opw-3848827 Forward-Port-Of: odoo/enterprise#60026
**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