Tuesday, January 23, 2024
55 changes · saas-17.1
Resolved issues and error corrections
This fix prevents Odoo from showing a misleading warning about a database text-search helper when that helper is not installed. It reduces false alarms for administrators and keeps system logs clearer without changing business functionality.
Original PR description
Since 261d3f3999c60727d9e5e875f4f1aa1caeb788f9, we warned "PostgreSQL function 'unaccent' is present but not immutable ..." but we do it even if unaccent is missing. Fix it.
The Audit Trail menu will now only appear when the Audit Trail option is enabled. This prevents users from seeing or opening a menu for a feature their company has not activated, reducing confusion in accounting settings.
Original PR description
When the "Audit Trail" option is not activated, we should not show the corresponding menu item. [task-3696126](https://www.odoo.com/web#id=3696126&cids=1&menu_id=4720&action=333&active_id=967&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
When ticking 'Replenish' on a scrapping, the created move is unrelated to the production order. This means that in a 2-steps manufacturing flow, validating the move will not automatically reserve the product(s) on the production order as is done when validating the moves created by the MO confirmation. This is because the new move has no move_dest_ids. This fix has 2 parts: - first, add the new move to the already existing procurement group of the MO so that it is easier to find. - second,
Original PR description
When ticking 'Replenish' on a scrapping, the created move is unrelated to the production order. This means that in a 2-steps manufacturing flow, validating the move will not automatically reserve the product(s) on the production order as is done when validating the moves created by the MO confirmation. This is because the new move has no move_dest_ids. This fix has 2 parts: - first, add the new move to the already existing procurement group of the MO so that it is easier to find. - second, assign a move_dest_ids to that move so that when it is validated, the quantity is automatically reserved on the MO. opw-3560182 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150499 Forward-Port-Of: odoo/odoo#149054
Steps to reproduce ================== - Use a mobile viewport / device (small window) - Go to Dashboard - Double click on a chart => `this.env.openSidePanel is not a function` Cause of the issue ================== On mobile, the MobileFigureContainer is used instead of the Spreadsheet component. The both use `useSubEnv` but the mobile one was missing the openSidePanel function. Solution ======== Add an empty `openSidePanel` function that does nothing. opw-3677552 Forwa
Original PR description
Steps to reproduce ================== - Use a mobile viewport / device (small window) - Go to Dashboard - Double click on a chart => `this.env.openSidePanel is not a function` Cause of the issue ================== On mobile, the MobileFigureContainer is used instead of the Spreadsheet component. The both use `useSubEnv` but the mobile one was missing the openSidePanel function. Solution ======== Add an empty `openSidePanel` function that does nothing. opw-3677552 Forward-Port-Of: odoo/odoo#150629
Steps to reproduce (17.0+): - Go to an event website page > go to “Site” > “This Page”. - The menu item used to edit the page content menu “Edit Event Menu” is duplicated. After the event page refactoring in [1], a second template using the same content menu ID was added to customize the UI for mobile. And since the “Edit Menu” items generation is based on detecting current sub menus from the DOM using the same ID (`data-content_menu_id`), we get a new menu item in the nav bar for
Original PR description
Steps to reproduce (17.0+): - Go to an event website page > go to “Site” > “This Page”. - The menu item used to edit the page content menu “Edit Event Menu” is duplicated. After the event page…
Steps to reproduce (17.0+): - Go to an event website page > go to “Site” > “This Page”. - The menu item used to edit the page content menu “Edit Event Menu” is duplicated. After the event page refactoring in [1], a second template using the same content menu ID was added to customize the UI for mobile. And since the “Edit Menu” items generation is based on detecting current sub menus from the DOM using the same ID (`data-content_menu_id`), we get a new menu item in the nav bar for every menu template using it. The goal of this PR is to fix this behaviour by simply ignoring the duplicated menu IDs (The same menu record will be edited anyway). Remark: the behaviour fixed by this PR was detected in 17.0, but we target 16.0 to prevent any potential issue linked to duplicated menus in the DOM, also, the duplicated data attribute will be removed in master (one ID is enough for the content menu to be detected and edited.) [1]: https://github.com/odoo/odoo/commit/9f2442d09b62fcb3f687ec39928ea0e3ac49557e Forward-Port-Of: odoo/odoo#150491
Actually when we link a DB and the iot need checkout a specific version of Odoo, the service odoo in the iot is still active. This can disrupt the checkout and make the box unusable. So now we stop the odoo service before the checkout. 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#14982
Original PR description
Actually when we link a DB and the iot need checkout a specific version of Odoo, the service odoo in the iot is still active. This can disrupt the checkout and make the box unusable. So now we stop the odoo service before the checkout. 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#149825
Before this commit, when a message without bubble layout is squashed (e.g. with `/who` command twice in a channel), mouse-hovering on the squashed message pushed increased the height of the message. This happens because the sidebar of squashed message contains the date and it uses 12-hour format with AM/PM. This design requires cautious use of content in the sidebar, and had 24-hour format to make it work. A recent refactoring changed it to 12-hour format as localization was a better conce
Original PR description
Before this commit, when a message without bubble layout is squashed (e.g. with `/who` command twice in a channel), mouse-hovering on the squashed message pushed increased the height of the message.…
Before this commit, when a message without bubble layout is squashed (e.g. with `/who` command twice in a channel), mouse-hovering on the squashed message pushed increased the height of the message. This happens because the sidebar of squashed message contains the date and it uses 12-hour format with AM/PM. This design requires cautious use of content in the sidebar, and had 24-hour format to make it work. A recent refactoring changed it to 12-hour format as localization was a better concern. However, the UI is not designed for it, and there's not much value in having 12-hour format rather than 24-hour format. Indeed, users assume AM if no AM/PM is shown, except if hour is greater than 12 which is quite obvious the current time. 12-hour format is best for some users, but we can't have it without overhauling parts of the UI which is not worth it at the time of this commit. Therefore using 24-hour format is the better tradeoff. Also took the opportunity of this PR to better align the date and seen indicator in squashed message sidebar. Task-3637270 Before / After   Forward-Port-Of: odoo/odoo#150369
Prior to this commit, when the product income account was absent, and the product category income account was also missing, PoS would fail to create an invoice. Now, it correctly utilizes the PoS config journal default account. opw-3615194 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149816
Original PR description
Prior to this commit, when the product income account was absent, and the product category income account was also missing, PoS would fail to create an invoice. Now, it correctly utilizes the PoS config journal default account. opw-3615194 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149816
Current behavior: When the list of order line is too long in the split bill screen there was no scroll bar to see the last order lines. Steps to reproduce: - Open PoS restaurant - Create a new order - Add a lot of order lines - Click on the split bill button - The list of order lines is not scrollable opw-3676165 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149800
Original PR description
Current behavior: When the list of order line is too long in the split bill screen there was no scroll bar to see the last order lines. Steps to reproduce: - Open PoS restaurant - Create a new order - Add a lot of order lines - Click on the split bill button - The list of order lines is not scrollable opw-3676165 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149800
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we first want to check that the device_id linked to the printer still exists. To do this we need to move the constraint to the pos_iot module (because the device_id field is defined there) Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try
Original PR description
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we first want to check that the device_id linked to the printer still exists. To do this we need to move the constraint to the pos_iot module (because the device_id field is defined there) Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try to delete the iot_box opw-3597370 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149186
PURPOSE Provide fixes for web push notifications implementation in mail, especially it has been moved in standard mail in 17.0 . FIXES Fix override of recipients computation: add missing keys to match standard structure Fix 'notify_by_web_push' being called two times in discuss channels Fix web push recipients being computed at wrong place: should be done in a clean override of '_notify_recipients' Fix access issue when sending push notifications in public channels Ta
Original PR description
PURPOSE Provide fixes for web push notifications implementation in mail, especially it has been moved in standard mail in 17.0 . FIXES Fix override of recipients computation: add missing keys to match standard structure Fix 'notify_by_web_push' being called two times in discuss channels Fix web push recipients being computed at wrong place: should be done in a clean override of '_notify_recipients' Fix access issue when sending push notifications in public channels Task-3695571 Related to Task-3669738 (Mail: Web Push Models Rename and Fixes) Forward-Port-Of: odoo/odoo#150011 Forward-Port-Of: odoo/odoo#149167
Before this commit, when looking at old messages of a message, clicking on "Jump to presence" was frequently not scrolling to most recent message. This happens because loading messages is not immediate, and thread UI has some heuristics to adjust scrolls that were working against scrolling to presence when the RPC to load messages around presence is not immediate. This commit fixes the issue by handling the actual scroll to presence in the same workflow as all other scroll adjustments. Als
Original PR description
Before this commit, when looking at old messages of a message, clicking on "Jump to presence" was frequently not scrolling to most recent message. This happens because loading messages is not immediate, and thread UI has some heuristics to adjust scrolls that were working against scrolling to presence when the RPC to load messages around presence is not immediate. This commit fixes the issue by handling the actual scroll to presence in the same workflow as all other scroll adjustments. Also the logic for adjusting scrolls requires immediate scrolling, hence this commit has to remove smooth scrolling to comply with current scroll adjustment techniques. Forward-Port-Of: odoo/odoo#149915
Current behavior before PR: Font styles shows active while selecting cells. Desired behavior after PR is merged: Font styles should not be active by default. task-3547652 Forward-Port-Of: odoo/odoo#138220
Original PR description
Current behavior before PR: Font styles shows active while selecting cells. Desired behavior after PR is merged: Font styles should not be active by default. task-3547652 Forward-Port-Of: odoo/odoo#138220
Example of steps: - Install `web_studio` - add a `many2many` field from res.partner - create a record - add a line by selecting a partner In this case `_parseServerValue` will crash https://github.com/odoo/odoo/blob/29d55e44035b6e6c6aba6fa4a114d555a766b7c7/addons/web/static/src/legacy/js/views/abstract_model.js#L101-L111 Because `field.selection` is undefined this code is getting field from this line https://github.com/odoo/odoo/blob/d3ef5891e8e92636dd61b8f2b7186ad139e8b42a/
Original PR description
Example of steps: - Install `web_studio` - add a `many2many` field from res.partner - create a record - add a line by selecting a partner In this case `_parseServerValue` will crash https://github.com/odoo/odoo/blob/29d55e44035b6e6c6aba6fa4a114d555a766b7c7/addons/web/static/src/legacy/js/views/abstract_model.js#L101-L111 Because `field.selection` is undefined this code is getting field from this line https://github.com/odoo/odoo/blob/d3ef5891e8e92636dd61b8f2b7186ad139e8b42a/addons/mail/static/src/web/fields/kanban_activity/kanban_activity.js#L14 Instead of specifying `selection: []` in the fieldDependencies this pr fixes this issue generally and prevents these kind of fixes https://github.com/odoo/odoo/pull/125052 opw-3671417 Forward-Port-Of: odoo/odoo#150445 Forward-Port-Of: odoo/odoo#149930
Create an Expense Report Add an expense paid by company Submit to manager > Approve > Post journal entries Choose the payment method to be Checks Open Accounting dashboard, in Bank card click on 'Checks to print' Select the check Print the check Issue: Action will be blocked by error "You cannot do this modification since the payment is linked to an expense report." This occurs because the system does not allow writing to the payment record once it has been linked to the expense T
Original PR description
Create an Expense Report Add an expense paid by company Submit to manager > Approve > Post journal entries Choose the payment method to be Checks Open Accounting dashboard, in Bank card click on 'Checks to print' Select the check Print the check Issue: Action will be blocked by error "You cannot do this modification since the payment is linked to an expense report." This occurs because the system does not allow writing to the payment record once it has been linked to the expense This commit allow to edit fields that would not trigger a move synchronize opw-3633035 Forward-Port-Of: odoo/odoo#149440 Forward-Port-Of: odoo/odoo#146893
Description of the issue/feature this PR addresses: - Create a company A with a ebsite - Create a company B without website - Create user 1 in company B only --> Issue when user 1 go to /shop --> error 403 Due to security restrictions, you are not allowed to access 'Companies' (res.company) records. https://github.com/odoo/odoo/assets/16716992/968c5c73-e5b5-41e1-b1b2-4916f7283e36 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forwar
Original PR description
Description of the issue/feature this PR addresses: - Create a company A with a ebsite - Create a company B without website - Create user 1 in company B only --> Issue when user 1 go to /shop --> error 403 Due to security restrictions, you are not allowed to access 'Companies' (res.company) records. https://github.com/odoo/odoo/assets/16716992/968c5c73-e5b5-41e1-b1b2-4916f7283e36 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150108
This replaces the former domain operator '?=' which is not allowed, This domain property, new to Odoo 16 does not permit the edition of the field with Studio, this change will enhance the configuration and will prevent future issues. owp-3484144 Forward-Port-Of: odoo/odoo#139977 Forward-Port-Of: odoo/odoo#135243
Original PR description
This replaces the former domain operator '?=' which is not allowed, This domain property, new to Odoo 16 does not permit the edition of the field with Studio, this change will enhance the configuration and will prevent future issues. owp-3484144 Forward-Port-Of: odoo/odoo#139977 Forward-Port-Of: odoo/odoo#135243
See the README.md file for more details. 2946329 task-2946329 See also: - https://github.com/odoo/documentation/pull/6045 Forward-Port-Of: odoo/odoo#141661
Original PR description
See the README.md file for more details. 2946329 task-2946329 See also: - https://github.com/odoo/documentation/pull/6045 Forward-Port-Of: odoo/odoo#141661
**Before this commit:** If Indian-Accounting is installed in the user's system but the user is in another company, still the l10n_in_pan(PAN) field is visible. **Technical Reason:** attrs was not there to invisible the field. Adding invisible attrs if the active company is not Indian. **After this commit:** l10n_in_pan(PAN) field is not visible if the active company is not Indian. **Task**-3635445 Forward-Port-Of: odoo/odoo#147532
Original PR description
**Before this commit:** If Indian-Accounting is installed in the user's system but the user is in another company, still the l10n_in_pan(PAN) field is visible. **Technical Reason:** attrs was not there to invisible the field. Adding invisible attrs if the active company is not Indian. **After this commit:** l10n_in_pan(PAN) field is not visible if the active company is not Indian. **Task**-3635445 Forward-Port-Of: odoo/odoo#147532
Steps to reproduce: - Re-install Odoo 17 with custom account demo data (e.g. account.account.csv) Issue: Import fails with: TypeError: 'ABCMeta' object does not support the context manager protocol Cause: In load() in account_account.py, commit 2ca15862a731a84560f761fc5e7b65e6d2885c54 introduced the line `manager = nullcontext`, which must be `manager = nullcontext()` (https://docs.python.org/3/library/contextlib.html#contextlib.nullcontext). Description of the issue/feature this PR
Original PR description
Steps to reproduce: - Re-install Odoo 17 with custom account demo data (e.g. account.account.csv) Issue: Import fails with: TypeError: 'ABCMeta' object does not support the context manager protocol Cause: In load() in account_account.py, commit 2ca15862a731a84560f761fc5e7b65e6d2885c54 introduced the line `manager = nullcontext`, which must be `manager = nullcontext()` (https://docs.python.org/3/library/contextlib.html#contextlib.nullcontext). Description of the issue/feature this PR addresses: Account demo data import fails Current behavior before PR: Account demo data fails with: TypeError: 'ABCMeta' object does not support the context manager protocol Desired behavior after PR is merged: Account demo data import works again. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150364
**Current behavior:** Trying to print or send a sale order quotation that contains non-saleable lines (notes or sections) will result in a ValueError. --- **Expected behavior:** The quotation should print/download or be prepared for sending. --- **Steps to reproduce:** 1. Create a new quotation with at least one note or section line 2. Click the action gear, select Print -> PDF Quote --- **Cause of the issue:** A method involved in the control flow for building a P
Original PR description
**Current behavior:** Trying to print or send a sale order quotation that contains non-saleable lines (notes or sections) will result in a ValueError. --- **Expected behavior:** The quotation should print/download or be prepared for sending. --- **Steps to reproduce:** 1. Create a new quotation with at least one note or section line 2. Click the action gear, select Print -> PDF Quote --- **Cause of the issue:** A method involved in the control flow for building a PDF from a quotation, _get_sol_form_fields_mapping(), attempts to format the sale price of all order lines involved in an order without first ensuring one exists. --- **Fix:** The fix prevents _get_sol_form_fields_mapping() from being invoked if the SOL does not have a linked doc (i.e., if the line has no associated product and thus no price). opw-3664710 Forward-Port-Of: odoo/odoo#148291
When obtaining several batches of images for the same string query on Unsplash, sometimes the same image appears in several batches. Because of this the `t-foreach` in the `web_unsplash.ImagesListTemplate` template fails when duplicate records appear in the list of images. This commit ignores duplicates received from Unsplash to avoid the issue. task-3637756 Forward-Port-Of: odoo/odoo#150183
Original PR description
When obtaining several batches of images for the same string query on Unsplash, sometimes the same image appears in several batches. Because of this the `t-foreach` in the `web_unsplash.ImagesListTemplate` template fails when duplicate records appear in the list of images. This commit ignores duplicates received from Unsplash to avoid the issue. task-3637756 Forward-Port-Of: odoo/odoo#150183
How to reproduce: - Install contacts - Go to any contact - Schedule an activity on the contact by clicking on "Activities" The flag automated of the created activity is set to True which shouldn't be the case (you can check either in the DB or by adding the field with studio) The same happens when scheduling plan, scheduling activities on multiple records in the view list or a plan on multiple records. This fixes the problem by modifying the activity schedule wizard so that it alw
Original PR description
How to reproduce: - Install contacts - Go to any contact - Schedule an activity on the contact by clicking on "Activities" The flag automated of the created activity is set to True which shouldn't be…
How to reproduce:
- Install contacts
- Go to any contact
- Schedule an activity on the contact by clicking on "Activities"
The flag automated of the created activity is set to True which shouldn't be
the case (you can check either in the DB or by adding the field with studio)
The same happens when scheduling plan, scheduling activities on multiple
records in the view list or a plan on multiple records.
This fixes the problem by modifying the activity schedule wizard so that it
always creates activities with automated flag set to False.
Note that that flags is used to distinguish activities created manually from
those created automatically. Some flows automatically cancel automated
activities (e.g. cancel 'validate my ticket') but those should probably not
cancel user defined activities (e.g. 'ask customer to pay'). That's why we must
ensure that activity created manually have that flag set to False.
[IMP] {test_}mail: modify tests to check the automated activity field value
Following the fix that ensures that activities scheduled manually (i.e.
scheduled through the mail activity schedule wizard) have the "automated" flag
set to False, we modify some tests to check that.
Task-3691827
Forward-Port-Of: odoo/odoo#149965The Ptt extension makes use of the `chrome.session` API to keep track of the connected clients. Before this PR, the session storage was initialized at the top level of the background script. This is an issue since it will be executed after the service worker wake up thus overwriting the existing client map. This PR removes this initialization: the map will be created when needed instead. Forward-Port-Of: odoo/odoo#150084
Original PR description
The Ptt extension makes use of the `chrome.session` API to keep track of the connected clients. Before this PR, the session storage was initialized at the top level of the background script. This is an issue since it will be executed after the service worker wake up thus overwriting the existing client map. This PR removes this initialization: the map will be created when needed instead. Forward-Port-Of: odoo/odoo#150084
Currently, when a worker (process/thread) has finished processing a request, it will keep handles on resources held by the werkzeug `Request` object. This includes open filhandles to temporary files, e.g. those of uploaded files. On platforms supporting `O_TMPFILE`, these files are not visible in the filesystem, but keep using up space in `TMPDIR` until werkzeug finally closes the file handles when the next Request is being handled. In some contexts, e.g. the upgrade platform, it can happen t
Original PR description
Currently, when a worker (process/thread) has finished processing a request, it will keep handles on resources held by the werkzeug `Request` object. This includes open filhandles to temporary files,…
Currently, when a worker (process/thread) has finished processing a request, it will keep handles on resources held by the werkzeug `Request` object. This includes open filhandles to temporary files, e.g. those of uploaded files. On platforms supporting `O_TMPFILE`, these files are not visible in the filesystem, but keep using up space in `TMPDIR` until werkzeug finally closes the file handles when the next Request is being handled. In some contexts, e.g. the upgrade platform, it can happen that there are multiple workers that only handle rare requests that upload big files (multiple GiB), kept open after the upload has finished: ```shell lsof -nP | grep -E 'odoo\/tmp.*(deleted)' | grep -vE 'GeoIP' python3 213853 odoo 13u REG 252,3 1064251 926275 /home/odoo/tmp/#926275 (deleted) python3 213853 213865 python3 odoo 13u REG 252,3 1064251 926275 /home/odoo/tmp/#926275 (deleted) ``` This can pose problems, because often the filesystem on `TMPDIR` is not very large and idle workers holding on to large files can increase the chance for ENOSPC. This patch changes the behavior such that the resources held by the werkzeug `Request` object are being closed[^1] after the response has been sent out. This also has the advantage that this work is done at potentially idle time instead of within handling the next request. [^1]: https://werkzeug.palletsprojects.com/en/2.0.x/wrappers/#werkzeug.wrappers.Request.close Forward-Port-Of: odoo/odoo#150029 Forward-Port-Of: odoo/odoo#149904
When creating a new column in kanban view, the user should be able to either hit enter or click the add button. This launched the validation process to add the column. There has been a fix in owl that would force a t-model.trim to be lazy. This was causing problems in this case as the "enter" pressed by the user was detected through the hotkey system. This was causing the change event not to fire, resulting in the behavior of the feature being broken. We fix this by using the t-on-ke
Original PR description
When creating a new column in kanban view, the user should be able to either hit enter or click the add button. This launched the validation process to add the column. There has been a fix in owl that would force a t-model.trim to be lazy. This was causing problems in this case as the "enter" pressed by the user was detected through the hotkey system. This was causing the change event not to fire, resulting in the behavior of the feature being broken. We fix this by using the t-on-keydown directive instead of the hotkey. We also remove the t-model directive as it is no longer of any use. The trim is done in the validate function. task id 3691208 Forward-Port-Of: odoo/odoo#150297 Forward-Port-Of: odoo/odoo#149939
### Steps to reproduce * install `l10n_ph` * switch to a Filipino company * create a vendor bill with a line with no product and a tax that has a "Philippines ATC" defined (ex: 5% WI010 - Prof Fees) * attempt to generate the `BIR 2307 Report` through the action menu You should be met with a traceback. opw-3683037 Forward-Port-Of: odoo/odoo#150380
Original PR description
### Steps to reproduce * install `l10n_ph` * switch to a Filipino company * create a vendor bill with a line with no product and a tax that has a "Philippines ATC" defined (ex: 5% WI010 - Prof Fees) * attempt to generate the `BIR 2307 Report` through the action menu You should be met with a traceback. opw-3683037 Forward-Port-Of: odoo/odoo#150380
The method `getValue` of the wysiwyg could have some cleaning on the value that will always make it different from the original value. The _isDirty method of the html field will now make the original value be processed by the wysiwyg `getValue` to be able to compare it with the current value. The sanizite call in `OdooEditor.cleanForSave` had the wrong root. As we are calling `cleanForSave` for an element that is not inside the editable, the root cannot be `this.editable`. task-3679122
Original PR description
The method `getValue` of the wysiwyg could have some cleaning on the value that will always make it different from the original value. The _isDirty method of the html field will now make the original value be processed by the wysiwyg `getValue` to be able to compare it with the current value. The sanizite call in `OdooEditor.cleanForSave` had the wrong root. As we are calling `cleanForSave` for an element that is not inside the editable, the root cannot be `this.editable`. task-3679122 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#148996
Steps to reproduce: [l10n_sa_edi] - create a SA customer with phone number e.g.:`+971 56 777 7777` - create an invoice - Zatca Process it Issue: Error: "The Buyer’s contact phone number (BT-57) shall start with “0“ or “+”, followed by a maximum of 15 number and minimum 4 character after the “+“ or “0“ , if exist." Solution: For Saudi Arabia, it is not necessary to have the phone number. For other locations, I assume that stripping the phone number could not harm the process. opw-3
Original PR description
Steps to reproduce: [l10n_sa_edi] - create a SA customer with phone number e.g.:`+971 56 777 7777` - create an invoice - Zatca Process it Issue: Error: "The Buyer’s contact phone number (BT-57) shall start with “0“ or “+”, followed by a maximum of 15 number and minimum 4 character after the “+“ or “0“ , if exist." Solution: For Saudi Arabia, it is not necessary to have the phone number. For other locations, I assume that stripping the phone number could not harm the process. opw-3666195 Forward-Port-Of: odoo/odoo#148124
**Current behavior before PR:** If we entered text within a inline-code block and pressed the backspace key,the zero-width space (zws) at the end of the inline-code block would be deleted. Consequently, there was no way to exit the inline-code block. **Desired behavior after PR is merged:** Users can now navigate out of the inline-code block by using the right or left arrow keys when inside an inline-code block. task-3613340 --- I confirm I have signed the CLA and read the PR
Original PR description
**Current behavior before PR:** If we entered text within a inline-code block and pressed the backspace key,the zero-width space (zws) at the end of the inline-code block would be deleted. Consequently, there was no way to exit the inline-code block. **Desired behavior after PR is merged:** Users can now navigate out of the inline-code block by using the right or left arrow keys when inside an inline-code block. task-3613340 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145936
Current behavior before PR: - HTML tags are displayed in the onboarding tour. Desired behavior after PR is merged: - Display the HTML tag effects instead of showing it in the onboarding tour. After the https://github.com/odoo/odoo/pull/107618 web_tour was converted into Owl, 'markup' was required to show the html tag effect instead of htm tags. Related Enterprise PR-https://github.com/odoo/enterprise/pull/53893 Task-3457112 Forward-Port-Of: odoo/odoo#149957 Forward-Port-Of: od
Original PR description
Current behavior before PR: - HTML tags are displayed in the onboarding tour. Desired behavior after PR is merged: - Display the HTML tag effects instead of showing it in the onboarding tour. After the https://github.com/odoo/odoo/pull/107618 web_tour was converted into Owl, 'markup' was required to show the html tag effect instead of htm tags. Related Enterprise PR-https://github.com/odoo/enterprise/pull/53893 Task-3457112 Forward-Port-Of: odoo/odoo#149957 Forward-Port-Of: odoo/odoo#148604
**Description of the issue this PR addresses:** When a normal user writes to a previously created hr.leave an access error is raised because of reading `employee_ids`. This happens because the field is restricted to the group `hr_holidays.group_hr_holidays_user` and it's used in `_check_date`. To prevent this `all_employee_ids` should be used because of the `compute_sudo` set. **Current behavior before PR:** Access error on save **Desired behavior after PR is merged:** No access error o
Original PR description
**Description of the issue this PR addresses:** When a normal user writes to a previously created hr.leave an access error is raised because of reading `employee_ids`. This happens because the field is restricted to the group `hr_holidays.group_hr_holidays_user` and it's used in `_check_date`. To prevent this `all_employee_ids` should be used because of the `compute_sudo` set. **Current behavior before PR:** Access error on save **Desired behavior after PR is merged:** No access error on save --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149308 Forward-Port-Of: odoo/odoo#148638
Above IOT Image 23.09, the Debian "bookworm" distribution is used. This distribution uses the NetworkManager configuration tool suite to setup the network. This break the code used until 23.09 included. In this PR, the code check the Image version and switch to NetworkManager if necessary. Before: Conflict with wpa_supplicant management in Debian "bookworm" Now: The network management tool is choosen in relation to image version mool --- I confirm I have signed the CLA and read th
Original PR description
Above IOT Image 23.09, the Debian "bookworm" distribution is used. This distribution uses the NetworkManager configuration tool suite to setup the network. This break the code used until 23.09 included. In this PR, the code check the Image version and switch to NetworkManager if necessary. Before: Conflict with wpa_supplicant management in Debian "bookworm" Now: The network management tool is choosen in relation to image version mool --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150473 Forward-Port-Of: odoo/odoo#149970
Start a live session, on the manager side stay on the welcome page (the one that counts how many attendees joined). Using several other private browsing tabs join the live session. On the manager side, the number of attendees never changes. During a previous refactoring of legacy rpc => orm, an error slipped, instead the records and fields as separated arguments, the two were passed together as a list in a single argument. We used the opportunity to increase the verbosity in case of errors
Original PR description
Start a live session, on the manager side stay on the welcome page (the one that counts how many attendees joined). Using several other private browsing tabs join the live session. On the manager side, the number of attendees never changes. During a previous refactoring of legacy rpc => orm, an error slipped, instead the records and fields as separated arguments, the two were passed together as a list in a single argument. We used the opportunity to increase the verbosity in case of errors and to enrich our test cases. Fine tunning of 7422eb6 ([IMP] *: remove legacy rpc) Task-2834638 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#149427
- Because default use_anglo_saxon is False - In the l10n_vn module, Anglo-Saxon is not accepted in Vietnam --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150202 Forward-Port-Of: odoo/odoo#123641
Original PR description
- Because default use_anglo_saxon is False - In the l10n_vn module, Anglo-Saxon is not accepted in Vietnam --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#150202 Forward-Port-Of: odoo/odoo#123641
Before this commit, opening chat window from messaging menu might not work. Step to reproduce: - open Discuss app - Go to home menu - Reload the page - Click on Messaging Menu - Click on chat item to open chat => Chat window is not open This happens because when in the home menu from Discuss app in background page reload, the URL contains the Discuss app menu_id, but the action is "menu" rather the action id. This difference is crucial to distinct discuss app being actively open or it
Original PR description
Before this commit, opening chat window from messaging menu might not work. Step to reproduce: - open Discuss app - Go to home menu - Reload the page - Click on Messaging Menu - Click on chat item to…
Before this commit, opening chat window from messaging menu might not work. Step to reproduce: - open Discuss app - Go to home menu - Reload the page - Click on Messaging Menu - Click on chat item to open chat => Chat window is not open This happens because when in the home menu from Discuss app in background page reload, the URL contains the Discuss app menu_id, but the action is "menu" rather the action id. This difference is crucial to distinct discuss app being actively open or it's in the background from home menu. The latter should NOT consider Discuss app being open. This is not a problem when opening/closing Discuss app, because the mounting/unmounting of the Discuss app component is good enough to detect that. However, with page reload, the way to detect Discuss app being open from URL was only relying on `menu_id` instead of `action` value. This commit fixes the issue by checking `active_id` of discuss app rather than `menu_id`, as `active_id` is 100% reliable whereas `menu_id` is not. The problem with home menu is one example among many other cases (e.g. page reload in channel settings form view). https://github.com/odoo/enterprise/pull/54638 Forward-Port-Of: odoo/odoo#149969
Before this commit, any new message in a channel of type "channel" was automatically opening a chat window and showing new message counter in tab title when out-of-focus. This behaviour is only intended for important messages. In chat (group chat, DM chat, livechat), all new messages are considered as important so this is good. However, for channels, these are intended for communication with many users, and we only want to notify on messages that are explicitly flagged as "needaction". As a r
Original PR description
Before this commit, any new message in a channel of type "channel" was automatically opening a chat window and showing new message counter in tab title when out-of-focus. This behaviour is only intended for important messages. In chat (group chat, DM chat, livechat), all new messages are considered as important so this is good. However, for channels, these are intended for communication with many users, and we only want to notify on messages that are explicitly flagged as "needaction". As a reminder, message are needaction through `@mention` or reply-to for example. This commit fixes the issue by limiting notifying out-of-focus of new messages in channel "channel" to only needaction. Also the auto-opening of chat window as a consequence from this new message is also limited to needaction messages. Forward-Port-Of: odoo/odoo#149943
Current behavior: In Belgium when using a EU intracom tax, as we need to report those special sales to the government we need to create an invoice as we need to report the customer name, VAT number and the country where the goods are going to end up Steps to reproduce: - Create an order with a product and a tax (0% EU M) - Settle the order in the PoS and pay it (no invoice) - Go to the accounting and check the EC Sales List report - There is an error shown in the report opw-3514737 -
Original PR description
Current behavior: In Belgium when using a EU intracom tax, as we need to report those special sales to the government we need to create an invoice as we need to report the customer name, VAT number and the country where the goods are going to end up Steps to reproduce: - Create an order with a product and a tax (0% EU M) - Settle the order in the PoS and pay it (no invoice) - Go to the accounting and check the EC Sales List report - There is an error shown in the report opw-3514737 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#149239 Forward-Port-Of: odoo/odoo#139467
Fine tuning of #143380 It only works for stock.move but it should also be the case for stock.move.line 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#147597 Forward-Port-Of: odoo/odoo#144783
Original PR description
Fine tuning of #143380 It only works for stock.move but it should also be the case for stock.move.line 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#147597 Forward-Port-Of: odoo/odoo#144783
Steps to reproduce: - Open Tax report - Define "current fiscal year" Issue: Dutch tax report should not display the totaal of `Rubriek 5: Voorbelasting, kleineondernemersregeling en totaal (BTW)` opw-3446056 Forward-Port-Of: odoo/odoo#149671 Forward-Port-Of: odoo/odoo#143841
Original PR description
Steps to reproduce: - Open Tax report - Define "current fiscal year" Issue: Dutch tax report should not display the totaal of `Rubriek 5: Voorbelasting, kleineondernemersregeling en totaal (BTW)` opw-3446056 Forward-Port-Of: odoo/odoo#149671 Forward-Port-Of: odoo/odoo#143841
…ve edition Since 396fe57c08f3997a0a600190d12e2229089627bc, the spreadsheets shown in the spreadsheet selector dialog (dialog to select a spreadsheet to insert something into) are not correctly ordered anymore. This is due to the fact that the contributor table is not correctly updated when a modification is made in the spreadsheet, as with the collaborative edition we use `spreadsheet.revision` to update the spreadsheet whereas before we used the `write` method. This commit fixes this iss
Original PR description
…ve edition Since 396fe57c08f3997a0a600190d12e2229089627bc, the spreadsheets shown in the spreadsheet selector dialog (dialog to select a spreadsheet to insert something into) are not correctly ordered anymore. This is due to the fact that the contributor table is not correctly updated when a modification is made in the spreadsheet, as with the collaborative edition we use `spreadsheet.revision` to update the spreadsheet whereas before we used the `write` method. This commit fixes this issue by updating the contributor table when the user join the spreadsheet. We could also have updated the contributor table when the user do an update (create a `spreadsheet.revision`), but this would have cause a lot of useless updates. Task-id 3601075 Forward-Port-Of: odoo/enterprise#54929 Forward-Port-Of: odoo/enterprise#52324
[FIX] l10n_lt_reports: Balance Sheet: respect legal line order "Total Assets" and "Total Equity and Liabilities" were inverted. This occured because those lines used to declare an explicit sequence in 15.0, and this sequence got removed from the data file in 16.0. We fix that by enforcing a sequence, and also reorder the lines in the file in order to ease the forward-port to 17.0, where the auto-sequencing feature is used (this way, we also minimize the number of conflicts when forward-portin
Original PR description
[FIX] l10n_lt_reports: Balance Sheet: respect legal line order "Total Assets" and "Total Equity and Liabilities" were inverted. This occured because those lines used to declare an explicit sequence in 15.0, and this sequence got removed from the data file in 16.0. We fix that by enforcing a sequence, and also reorder the lines in the file in order to ease the forward-port to 17.0, where the auto-sequencing feature is used (this way, we also minimize the number of conflicts when forward-porting a fix in this report in the future). ------------------------------------ [FIX] l10n_lt_reports: Balance Sheet: make less line foldable For usability. This will require less clicks to have a broader view of the report. OPW 3608139 Forward-Port-Of: odoo/enterprise#54717 Forward-Port-Of: odoo/enterprise#54299
…fers Only hr admins are able to generate offers from contracts, which should not be the case Forward-Port-Of: odoo/enterprise#54811
Original PR description
…fers Only hr admins are able to generate offers from contracts, which should not be the case Forward-Port-Of: odoo/enterprise#54811
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the article to restore should be detached from its parent. Note: If the parent article is in the trash, the article should be detached from its parent. Otherwise, it will be automatically deleted when deleting the parent article due to the cascading delete. When the user does not have access to the p
Original PR description
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the…
Currently, the user encounters an access error when attempting to restore an article whose parent is inaccessible. Upon restoration, the system accesses the parent article to determine whether the article to restore should be detached from its parent. Note: If the parent article is in the trash, the article should be detached from its parent. Otherwise, it will be automatically deleted when deleting the parent article due to the cascading delete. When the user does not have access to the parent article, the system will raise an access error when doing the check. This commit addresses the issue by introducing a `sudo` on the read call causing the access error. Steps to reproduce the issue: 1. Log in as "Mitchell Admin" 2. Create an article in the workspace 3. Add "Marc Demo" to the member list with "No access" 4. Create an article under the article create at step 2 5. Set the permission of "Marc Demo" to "Can write" 6. In the "More option" panel, click on "Delete" 7. Log in as "Marc Demo" 8. On the Knowledge editor, click on "Open the Trash" 9. Open the article you deleted 10. In the "More option" panel, click on "Restore From Trash" => "Marc Demo" gets an access error when restoring the article. TO BE: "Marc Demo" should be able to restore the article and should not get any access error. task-3648854 Forward-Port-Of: odoo/enterprise#53148
In #42351, the account.report.expression with xmlid `account_financial_report_line_02_0_6_fr_bilan_passif_balance` was deleted, and in its place was defined `account_financial_report_line_02_0_6_fr_bilan_passif_net`. However, since the two have the same `label='net'` the SQL constraint introduced in https://github.com/odoo/odoo/commit/987b82e5c9add1e9e2a9fdabe6dc73a3a6daa9ec would fail when upgrading the module. To resolve this, we prefer to delete the old expression pre-migration rather t
Original PR description
In #42351, the account.report.expression with xmlid `account_financial_report_line_02_0_6_fr_bilan_passif_balance` was deleted, and in its place was defined `account_financial_report_line_02_0_6_fr_bilan_passif_net`. However, since the two have the same `label='net'` the SQL constraint introduced in https://github.com/odoo/odoo/commit/987b82e5c9add1e9e2a9fdabe6dc73a3a6daa9ec would fail when upgrading the module. To resolve this, we prefer to delete the old expression pre-migration rather than revert the change in xmlid, in order to not break things for new databases where the new xmlid is used. Upgrade PR: https://github.com/odoo/upgrade/pull/5533 opw-3659810 Forward-Port-Of: odoo/enterprise#54629 Forward-Port-Of: odoo/enterprise#53492
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we are forced to delete the pos_printer first and then the iot_box. Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try to delete the iot_box opw-3597370 Forward-Port-Of: odoo/enterprise#52953
Original PR description
Current behavior: You couldn't delete an iot_box if a pos_printer was linked to it. You always get a validation error saying that "Proxy IP cannot be empty" To fix this we are forced to delete the pos_printer first and then the iot_box. Steps to reproduce: - Install pos_iot - Activate preparation printer in POS - Create a printer and link it to an iot_box device - Try to delete the iot_box opw-3597370 Forward-Port-Of: odoo/enterprise#52953
**Current behavior:** Sending a follow-up report to an overdue client with no due date attached will cause a TypeError. --- **Expected behavior:** If no due date is specified in the follow-up report, it will use a fallback date value from elsewhere. --- **Steps to reproduce:** 1. Create an invoice which is passed due 2. In the Follow-up Reports view, delete the due date field value from one of the invoice lines in the report 3. Click 'Follow up' then 'Send & Print'
Original PR description
**Current behavior:** Sending a follow-up report to an overdue client with no due date attached will cause a TypeError. --- **Expected behavior:** If no due date is specified in the follow-up report, it will use a fallback date value from elsewhere. --- **Steps to reproduce:** 1. Create an invoice which is passed due 2. In the Follow-up Reports view, delete the due date field value from one of the invoice lines in the report 3. Click 'Follow up' then 'Send & Print' --- **Cause of the issue:** A method _update_next_followup_action_date() tries to update the follow-up date for the next deadline without considering the due date field may be empty. --- **Fix:** Filter the account_move_line objects which do not have legitimate date values from the iteration block where the offending operations take place. --- opw-3666901 Forward-Port-Of: odoo/enterprise#53829
Forward-Port-Of: odoo/enterprise#54647 Forward-Port-Of: odoo/enterprise#54189
Original PR description
Forward-Port-Of: odoo/enterprise#54647 Forward-Port-Of: odoo/enterprise#54189
Forward-Port-Of: odoo/enterprise#54621
Original PR description
Forward-Port-Of: odoo/enterprise#54621
Like we have it for cars, we add the following description to bikes in the salary configurator : Monthly cost : [contract value] (Rent) Electric Assistance : Yes/No Color Bike Frame Type Frame Size task-3640749 Forward-Port-Of: odoo/enterprise#53084
Original PR description
Like we have it for cars, we add the following description to bikes in the salary configurator : Monthly cost : [contract value] (Rent) Electric Assistance : Yes/No Color Bike Frame Type Frame Size task-3640749 Forward-Port-Of: odoo/enterprise#53084
Forward-Port-Of: odoo/enterprise#54503 Forward-Port-Of: odoo/enterprise#54321
Original PR description
Forward-Port-Of: odoo/enterprise#54503 Forward-Port-Of: odoo/enterprise#54321
Prior to this commit, the `o_menu_toggle` arrow had a glitch when the language was set on RTL. This commit adapts the arrow to fix this glitch. task-3548808 | Before | After | |--------|--------| |  |  | Forward-Port-Of: odoo/
Original PR description
Prior to this commit, the `o_menu_toggle` arrow had a glitch when the language was set on RTL. This commit adapts the arrow to fix this glitch. task-3548808 | Before | After | |--------|--------| |  |  | Forward-Port-Of: odoo/enterprise#51554
Currently the gantt view for user appointments (dentist, interview,...) is grouped by organizer of the event. While this works for the purpose of managing appointments it also hides the fact that the partners linked to each user may be attending some other event at the same time. To make this more clear we enable grouping by partner_ids and we make the gantt view default to that grouping. task-3452277 Forward-Port-Of: odoo/enterprise#45114
Original PR description
Currently the gantt view for user appointments (dentist, interview,...) is grouped by organizer of the event. While this works for the purpose of managing appointments it also hides the fact that the partners linked to each user may be attending some other event at the same time. To make this more clear we enable grouping by partner_ids and we make the gantt view default to that grouping. task-3452277 Forward-Port-Of: odoo/enterprise#45114
Before this commit, the error mail subject was converted to HTML. It would not look professionnal in a mail client... Forward-Port-Of: odoo/enterprise#54680
Original PR description
Before this commit, the error mail subject was converted to HTML. It would not look professionnal in a mail client... Forward-Port-Of: odoo/enterprise#54680
*= industry_fsm_sale, planning Current behavior before PR: - HTML tags are displayed in the onboarding tour. Desired behavior after PR is merged: - Display the tag effects instead of showing it in the onboarding tour. After the https://github.com/odoo/odoo/pull/107618 web_tour was converted into Owl, 'markup' was required to show the html tag effect instead of htm tags. Task-3457112 Forward-Port-Of: odoo/enterprise#54622 Forward-Port-Of: odoo/enterprise#53893
Original PR description
*= industry_fsm_sale, planning Current behavior before PR: - HTML tags are displayed in the onboarding tour. Desired behavior after PR is merged: - Display the tag effects instead of showing it in the onboarding tour. After the https://github.com/odoo/odoo/pull/107618 web_tour was converted into Owl, 'markup' was required to show the html tag effect instead of htm tags. Task-3457112 Forward-Port-Of: odoo/enterprise#54622 Forward-Port-Of: odoo/enterprise#53893