Thursday, March 2, 2023
63 changes · master
Enhancements to existing features
The profile verification message now shows the user's email address without italic styling, preventing it from visually overlapping with nearby punctuation. This makes the verification email clearer and more polished for website users.
Original PR description
before this commit, when a verification email is send to the user when validating the website user profile, there is no spacing/overlapping between the email(in italic) and ! after this commit as the italic is removed from the email, there will be proper spacing(no overlapping) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update applies recommended JavaScript improvements to HR-related screens and the data recycling list view. It should make these areas easier to maintain and help keep the employee attendance and organization chart experience consistent and reliable.
Original PR description
*: hr_attendance, hr_org_chart Apply recommendations from odoo/odoo#104975 to HR apps. task-3069138
This change removes duplicate reporting screens, menu items, records, and related code from the Swedish point of sale localization after the reporting functionality was merged into the main point of sale module. It helps keep the system cleaner and reduces maintenance overlap without introducing a major business workflow change.
Original PR description
Description of the issue/feature this PR addresses: A module (pos_daily_sales_reports) has been added to in 16.0 and forward ported to master. In master we merge this module with the module point_of_sale. --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr)
Amazon shipment updates now include the ship-from location when pickings are synchronized. This helps avoid Amazon warnings about missing shipping origin details and improves the reliability of marketplace order processing.
Original PR description
When sending the information about the pickings, Amazon warns against the lack of information about the shipping location. This commit adds the location to the feed message when syncing the pickings. task-2904163
Resolved issues and error corrections
Fixed an issue that could make the restaurant floor screen crash when staff used a pinch gesture on a touch screen. This improves reliability for point-of-sale teams using floor plans on tablets or touch devices.
Original PR description
In odoo/odoo#112610 the draggable/resizable behaviour of the floor screen was refactored, and in doing so the FloorScreen was converted to a Component from a LegacyComponent. Doing so makes `this.el` unavailable in the component but it was still using that for the pinch, causing a crash. This commit fixes that issue by using a ref instead of using querySelector on this.el.
Code cleanup and technical improvements
This update streamlines how Odoo tracks edited fields in forms and lists by replacing a direct field property with a shared internal notification mechanism. It should make the web interface code easier to maintain while keeping normal user workflows unchanged.
Original PR description
This commit, is part of a series of commits that aim to simplifie the concrete fields API. In this commit we will remove setDirty prop from concrete fields. Now if needed the fields can declare itself dirty using triggering "FIELD_IS_DIRTY" on the model's bus. Note that this PR partially revert [1] and completely revert [2] task-id 3179751 [1] : https://github.com/odoo/odoo/commit/89c2a3978e5f46b003789f8a8a06d69162f4a404 [2]: https://github.com/odoo/odoo/commit/c79bb3c9c6ba7fcbd6cd8ad3919f83a4fa777d0a
Miscellaneous changes
In some cases, Odoo's move state is unaligned to that on the IAP Proxy Server, because the ACK message from Odoo to IAP deletes all attachments from the EDI transactions on the IAP without regard if they are with type "Send" or "Receive". We fix both cases by making Odoo just look at the state and not to the attachment when it's not needed, and it's only needed when there is a rejection of the document being sent. We reserve for the future a change to the ACK to only delete the attachments
Original PR description
In some cases, Odoo's move state is unaligned to that on the IAP Proxy Server, because the ACK message from Odoo to IAP deletes all attachments from the EDI transactions on the IAP without regard if…
In some cases, Odoo's move state is unaligned to that on the IAP Proxy Server, because the ACK message from Odoo to IAP deletes all attachments from the EDI transactions on the IAP without regard if they are with type "Send" or "Receive". We fix both cases by making Odoo just look at the state and not to the attachment when it's not needed, and it's only needed when there is a rejection of the document being sent. We reserve for the future a change to the ACK to only delete the attachments by transmission type (Send/Receive) so that they don't interfere. Error case 1: - Odoo client sends an invoice to the IAP Proxy - The IAP proxy will send it to the SdI - If everything goes well, the SdI will send a notification back - The IAP proxy sees the notification and saves it - The Odoo of the client downloads the notification and sends an ack - The IAP proxy sees the ack and deletes the attachment - (ERR!) The client resets to draft, modifies and re-confirms - The state of his invoice is set again To Send - Odoo tries to re-send the invoice with the same Id Transaction - The notification for that Id Transaction is already on the IAP proxy - Odoo client asks for changes, but just sees the old notification - (-->) The old notification has no attachment, so Odoo thinks there's no news - The move in Odoo stays in the To Send state forever Error case 2: - Odoo client sends a Tax Integration for a Vendor Bill (reverse charge) - The IAP proxy will send it to the SdI - If everything goes well, the SdI will send the same Vendor Bill back as the client's CodiceDestinatario is actually the recipient in the XML - The IAP proxy sees the file, the Id Transaction is the same for both the received and the sent documents - The SdI sends a notification because the tax integration is OK - The IAP proxy saves the notification, there are now two EDI transactions with the same Id Transaction. - Odoo checks for new documents - IAP proxy sends the document to Odoo - Odoo sends an ACK for that - (ERR!) the IAP proxy sees the ACK and clears the attachment from BOTH the records for sent and received document - Odoo checks for documents updates and gets the record without the attachment - (-->) The notification has no attachment, so Odoo thinks there's no news - The move in Odoo stays in the To Send state forever Ticket link: https://www.odoo.com/web#id=3194378&model=project.task opw-3194378 Forward-Port-Of: odoo/odoo#113913 Forward-Port-Of: odoo/odoo#113666
This fixes a missing style reference that caused the barcode scanner on the mobile point-of-sale employee login screen to display incorrectly. The change restores the intended appearance, helping staff use barcode login smoothly on mobile devices.
Original PR description
In odoo/enterprise#35884 the style for the barcode scanner was moved to the barcodes module, but the manifest of pos_hr_mobile was improperly adapted: the existing scss file was removed from the manifest but the new location of the scss file was not added. This commit fixes that.
Spreadsheet downloads now wait for background formulas to finish using direct data source updates instead of a repeated timer. This makes loading behavior cleaner and more dependable, with no visible workflow change for users.
Original PR description
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
This change removes duplicate spreadsheet sorting code and reuses the shared version already available in Odoo. It helps keep behavior consistent across the system and makes future maintenance safer, with no expected change for users.
Original PR description
The orderByToString function has been duplicated in spreadsheet. We will replace it with the one defined in web. 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
The graph view code was cleaned up by removing an unused dependency and streamlining how chart data points are processed. This should make the feature easier to maintain without changing how users interact with graphs.
Original PR description
We remove a useless import of GroupByMenu and refactor the processing of data points in the model.
This update adjusts how color picker and priority fields determine their display context, reducing reliance on an internal view setting. It helps keep these interface elements more consistent and easier to maintain without changing the overall user workflow.
Original PR description
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
This update simplifies how several Odoo apps read field values behind the scenes. It should make future maintenance easier and reduce implementation complexity without changing day-to-day user workflows.
Before this commit, we-matrix could create a horizontal scroll bar in the editor. This was because the inputs had a minimum width size. Steps to reproduce the bug: - Drop a chart block on a page - Add some series => The matrix overflows from the editor. There is no perfect solution to this problem... We have the choice between: 1) Leave the existing overflow on the editor. 2) Put a horizontal scroll on the we-matrix. 3) Distribute the available space between the columns. As we
Original PR description
Before this commit, we-matrix could create a horizontal scroll bar in the editor. This was because the inputs had a minimum width size. Steps to reproduce the bug: - Drop a chart block on a page - Add some series => The matrix overflows from the editor. There is no perfect solution to this problem... We have the choice between: 1) Leave the existing overflow on the editor. 2) Put a horizontal scroll on the we-matrix. 3) Distribute the available space between the columns. As we don't want a horizontal scrollbar, the best solution is to distribute the available space between the columns. This solution has a drawback which is that the cells can become really small if there are a lot of columns but this solution seems to be the least bad from a UX point of view. task-3094162 Forward-Port-Of: odoo/odoo#107400
Since [1] when only website is installed, dropping a dynamic snippet produces an error because no dynamic filter is defined and it tries to specify one selected by default. This commit avoids setting a default filter when there is none. It did work in 15.0 because the log was inside `_renderDynamicFiltersSelector` which contained an `if (dynamicFilters.length > 0)` that avoided the problem. In [2], when most of that logic was moved from the render method to the fetch method, that con
Original PR description
Since [1] when only website is installed, dropping a dynamic snippet produces an error because no dynamic filter is defined and it tries to specify one selected by default. This commit avoids setting a default filter when there is none. It did work in 15.0 because the log was inside `_renderDynamicFiltersSelector` which contained an `if (dynamicFilters.length > 0)` that avoided the problem. In [2], when most of that logic was moved from the render method to the fetch method, that condition was lost. Steps to reproduce: - Install website only - Go to debug mode - Drop a "Dynamic Snippet" or a "Dynamic Carousel" => Traceback appears because there cannot be a default filter when there is no filter. [1]: https://github.com/odoo/odoo/commit/3355dc16235355fe51e894f14e275210464608c6 [2]: https://github.com/odoo/odoo/commit/9e0b398fe608e716835260c5f9923f933d723f8e opw-3166634 Forward-Port-Of: odoo/odoo#111803
This reviews [1] (in particular changing my mind about [2] upon further review). Indeed this was marking potential non editable tab panes as editable by searching the whole DOM instead of editable savable zones. In the end, what is searched for is also reviewed. Instead of searching for a very specific structure, we now mark all oe_structure which are direct children of tab-pane as editable (if in an editable zone) and their parent (the tab-pane who have a direct oe_structure child) as readon
Original PR description
This reviews [1] (in particular changing my mind about [2] upon further review). Indeed this was marking potential non editable tab panes as editable by searching the whole DOM instead of editable savable zones. In the end, what is searched for is also reviewed. Instead of searching for a very specific structure, we now mark all oe_structure which are direct children of tab-pane as editable (if in an editable zone) and their parent (the tab-pane who have a direct oe_structure child) as readonly. [1]: https://github.com/odoo/odoo/commit/5fd99855654d220bafb8887cd0ae267042836d4b [2]: https://github.com/odoo/odoo/pull/109430#discussion_r1115792052 Forward-Port-Of: odoo/odoo#113909 Forward-Port-Of: odoo/odoo#113605
To reproduce ============ - with Invoicing installed, give a user the group Billing Administrator without giving any Administration group - connect to this user and try to add a bank account an access right is raised Problem ======= the `groups_id` on the action `action_new_bank_setting` is not specified so when running the action we check if it has `groups_id`, if not, we check if the user has the right to write on the target model which is `res.company` here, which is not for this user
Original PR description
To reproduce ============ - with Invoicing installed, give a user the group Billing Administrator without giving any Administration group - connect to this user and try to add a bank account an access right is raised Problem ======= the `groups_id` on the action `action_new_bank_setting` is not specified so when running the action we check if it has `groups_id`, if not, we check if the user has the right to write on the target model which is `res.company` here, which is not for this user because he doesn't have any Administration group. Solution ======== specify `groups_id` to `account.group_account_manager` opw-3199435 Forward-Port-Of: odoo/odoo#113836
After vendoring unittest in 9a5d1ea54be49e4cc8208c33e76a6bbd2414d5d0, The assumption that all tests class should inherit from BaseCase was not correct in all cases since some external developers may have create custom test without following this habit. This commit brings back the initial behavior using getattr for 16.0, but inheriting from BaseCase will become required in future versions. closes #114015 Forward-Port-Of: odoo/odoo#114027
Original PR description
After vendoring unittest in 9a5d1ea54be49e4cc8208c33e76a6bbd2414d5d0, The assumption that all tests class should inherit from BaseCase was not correct in all cases since some external developers may have create custom test without following this habit. This commit brings back the initial behavior using getattr for 16.0, but inheriting from BaseCase will become required in future versions. closes #114015 Forward-Port-Of: odoo/odoo#114027
This refactoring on test suite https://github.com/odoo/odoo/commit/9a5d1ea54be49e4cc8208c33e76a6bbd2414d5d0 introduced a regression on tests out there. Normally `__unittest_skip__` is set only if `skip` is used see https://github.com/python/cpython/blob/main/Lib/unittest/case.py#L147 Hence normal tests depending on base test classes should not fail if is not available. See https://github.com/python/cpython/blob/main/Lib/unittest/case.py#L602 ``` Traceback (most recent call las
Original PR description
This refactoring on test suite https://github.com/odoo/odoo/commit/9a5d1ea54be49e4cc8208c33e76a6bbd2414d5d0 introduced a regression on tests out there. Normally `__unittest_skip__` is set only if…
This refactoring on test suite https://github.com/odoo/odoo/commit/9a5d1ea54be49e4cc8208c33e76a6bbd2414d5d0 introduced a regression on tests out there.
Normally `__unittest_skip__` is set only if `skip` is used
see https://github.com/python/cpython/blob/main/Lib/unittest/case.py#L147
Hence normal tests depending on base test classes should not fail if is not available.
See https://github.com/python/cpython/blob/main/Lib/unittest/case.py#L602
```
Traceback (most recent call last):
File "/opt/odoo/odoo/service/server.py", line 1299, in preload_registries
registry = Registry.new(dbname, update_module=update_module)
File "<decorator-gen-14>", line 2, in new
File "/opt/odoo/odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "/opt/odoo/odoo/modules/registry.py", line 90, in new
odoo.modules.load_modules(registry, force_demo, status, update_module)
File "/opt/odoo/odoo/modules/loading.py", line 487, in load_modules
processed_modules += load_marked_modules(cr, graph,
File "/opt/odoo/odoo/modules/loading.py", line 371, in load_marked_modules
loaded, processed = load_module_graph(
File "/opt/odoo/odoo/modules/loading.py", line 289, in load_module_graph
test_results = loader.run_suite(suite, module_name)
File "/opt/odoo/odoo/tests/loader.py", line 65, in run_suite
suite(results)
File "/usr/lib/python3.10/unittest/suite.py", line 84, in __call__
return self.run(*args, **kwds)
File "/opt/odoo/odoo/tests/suite.py", line 40, in run
self._handleClassSetUp(test, result)
File "/opt/odoo/odoo/tests/suite.py", line 172, in _handleClassSetUp
super()._handleClassSetUp(test, result)
File "/opt/odoo/odoo/tests/suite.py", line 56, in _handleClassSetUp
if currentClass.__unittest_skip__:
AttributeError: type object 'TestEvent' has no attribute '__unittest_skip__'
``
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#114007In this commit, the horizontal sizing options are disabled from the snippets overlay on mobile view as they were ineffective and unnecessary. task-2978500 Forward-Port-Of: odoo/odoo#110302
Original PR description
In this commit, the horizontal sizing options are disabled from the snippets overlay on mobile view as they were ineffective and unnecessary. task-2978500 Forward-Port-Of: odoo/odoo#110302
The test returns an error if today is within 365 days before the next 29th February: datetime.date(2024, 3, 1) != datetime.date(2024, 2, 29) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#113967
Original PR description
The test returns an error if today is within 365 days before the next 29th February: datetime.date(2024, 3, 1) != datetime.date(2024, 2, 29) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#113967
Before this commit, when moving inner content inside a carousel slide (with the 'move' button), the carousel was jumping to the first slide. Steps to reproduce the bug: - In website edit mode, drag and drop a Carousel snippet onto the page. - Move to the second slide. - Click on the column to activate its overlay. - Click and hold the "drag and drop" button of the column to start dragging it. - Release the mouse button. - Bug: the carousel jumps to the first slide. task-3006831
Original PR description
Before this commit, when moving inner content inside a carousel slide (with the 'move' button), the carousel was jumping to the first slide. Steps to reproduce the bug: - In website edit mode, drag and drop a Carousel snippet onto the page. - Move to the second slide. - Click on the column to activate its overlay. - Click and hold the "drag and drop" button of the column to start dragging it. - Release the mouse button. - Bug: the carousel jumps to the first slide. task-3006831 Forward-Port-Of: odoo/odoo#113904 Forward-Port-Of: odoo/odoo#103086
*: point_of sale, web Previously, the error handling code was refactored and centralized, in doing so, we broke the ability to select a table while offline: when selecting a table we ask the server about the orders for the table. When offline, this creates an error that was previously caught, and showed an offline error popup, but continued the rest of the flow normally. The refactoring centralized the display of offline errors to an error handler, but removed the catching, causing the error
Original PR description
*: point_of sale, web Previously, the error handling code was refactored and centralized, in doing so, we broke the ability to select a table while offline: when selecting a table we ask the server about the orders for the table. When offline, this creates an error that was previously caught, and showed an offline error popup, but continued the rest of the flow normally. The refactoring centralized the display of offline errors to an error handler, but removed the catching, causing the error to interrupt the flow. This commit fixes that by catching the error again, and when it's a ConnectionLostError, it dispatched the error in a separate async call stack (using Promise.reject) so that the display of offline errors is still centralized, the the flow can continue normally. Forward-Port-Of: odoo/odoo#114005
Commit [1] introduced a usage of `structuredClone` in 16.0 where it is not supported. This was a mistake introduced by backporting [2] from master to 16.0. However, the `structuredClone` was not necessary in the first place anyway, so this commit removes it. [1]: c472e600da3237d3cb0a6352a4d26ebb3ed6e20c [2]: a5036864b11890c197d636c461a42720fbce6227 Forward-Port-Of: odoo/odoo#114018
Original PR description
Commit [1] introduced a usage of `structuredClone` in 16.0 where it is not supported. This was a mistake introduced by backporting [2] from master to 16.0. However, the `structuredClone` was not necessary in the first place anyway, so this commit removes it. [1]: c472e600da3237d3cb0a6352a4d26ebb3ed6e20c [2]: a5036864b11890c197d636c461a42720fbce6227 Forward-Port-Of: odoo/odoo#114018
Steps to reproduce: - Go to a product with a long name - Inside the product page go to "print labels" - Choose "Dymo" as label type and print. (For barcode you need to add a barcode number to the product.) Issue: The product name is not displayed correctly on the label because is too long. Solution: Removing the fixed height int he label seem to have good behavior with sizing the text.  Issue: The product name is not displayed correctly on the label because is too long. Solution: Removing the fixed height int he label seem to have good behavior with sizing the text.  opw-3120807 Forward-Port-Of: odoo/odoo#109789
Previously when we tried to delete default_website it was deleted. Traceback on Sentry : https://drive.google.com/file/d/1dBKajYpEyMzdGp0qW3J3_W6yvymgKnA6/view?usp=sharing In this commit i have fixed this issue by preventing user to unlink default_website as it is generated by the system. We have raised usererror when user tries to delete default_website. sentry-3874625419 Forward-Port-Of: odoo/odoo#113176 Forward-Port-Of: odoo/odoo#112752
Original PR description
Previously when we tried to delete default_website it was deleted. Traceback on Sentry : https://drive.google.com/file/d/1dBKajYpEyMzdGp0qW3J3_W6yvymgKnA6/view?usp=sharing In this commit i have fixed this issue by preventing user to unlink default_website as it is generated by the system. We have raised usererror when user tries to delete default_website. sentry-3874625419 Forward-Port-Of: odoo/odoo#113176 Forward-Port-Of: odoo/odoo#112752
How to reproduce ================= 1. Install `l10n_din5008` and `purchase` 2. Create a RFQ and print a Purchase Order. 2 Titles are displayed How this fix works =================== the l10n_din5008 report inherit parts of the content of `purchase_order_templates.xml`. That template adds a title to the report in addition of the title offered by `din5008`. This fix checks if that specific template is used (by using `xmlid`) and if this is not the case, `din5008` will not add any title
Original PR description
How to reproduce ================= 1. Install `l10n_din5008` and `purchase` 2. Create a RFQ and print a Purchase Order. 2 Titles are displayed How this fix works =================== the l10n_din5008 report inherit parts of the content of `purchase_order_templates.xml`. That template adds a title to the report in addition of the title offered by `din5008`. This fix checks if that specific template is used (by using `xmlid`) and if this is not the case, `din5008` will not add any title. opw-3162177 Forward-Port-Of: odoo/odoo#112675
LE is most commonly used today. opw-3188129 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#113513
Original PR description
LE is most commonly used today. opw-3188129 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#113513
When uploading a file on a draft record, it crashed. This happens because the file upload was applied on record while still in "draft". This fixes the issue by awaiting chatter is saved, to proceed with the file uploading. opw-3204555 Forward-Port-Of: odoo/odoo#114090 Forward-Port-Of: odoo/odoo#113890
Original PR description
When uploading a file on a draft record, it crashed. This happens because the file upload was applied on record while still in "draft". This fixes the issue by awaiting chatter is saved, to proceed with the file uploading. opw-3204555 Forward-Port-Of: odoo/odoo#114090 Forward-Port-Of: odoo/odoo#113890
With DB having only one blog (most common case, but we are used to test it with demo data where we have two), the search param is lost when accessing the blog controller without passing a blog. Eg, `/blog?search=hubble` will redirect to `/blog/traval-1` This is because the business code is doing an early redirect if we access the `/blog` URL without a blog post passed to it to redirect to that blog post URL directly (since there is only one), but that redirect is not passing the query para
Original PR description
With DB having only one blog (most common case, but we are used to test it with demo data where we have two), the search param is lost when accessing the blog controller without passing a blog. Eg, `/blog?search=hubble` will redirect to `/blog/traval-1` This is because the business code is doing an early redirect if we access the `/blog` URL without a blog post passed to it to redirect to that blog post URL directly (since there is only one), but that redirect is not passing the query parameters, which `search` is part of. Step to reproduce (in later version): - Be sure to only have one blog - Drag & drop the search snippet in the homepage or anywhere - Make it search on blog only (through the snippet option) Type anything, it will not work and won't do the search. It will just redirect to the blog page. Forward-Port-Of: odoo/odoo#113997 Forward-Port-Of: odoo/odoo#113855
This commit fixes the style of the "Add a note" element in the activities menu list. Before this commit, the background was white because the color was hardcoded in a scss file. This is not longer the case with this fix. Also, the input has a transparent background to match with the background color. task-3208042 Forward-Port-Of: odoo/odoo#113743
Original PR description
This commit fixes the style of the "Add a note" element in the activities menu list. Before this commit, the background was white because the color was hardcoded in a scss file. This is not longer the case with this fix. Also, the input has a transparent background to match with the background color. task-3208042 Forward-Port-Of: odoo/odoo#113743
OPW 3117373 Task: 973 **Description of the issue/feature this PR addresses**: The customer printed invoice hides part of the document type letter in the header. This commit solves that problem and also this issue: https://github.com/odoo/odoo/issues/108994 **Current behavior before PR**: The customer printed invoice hides part of the document type header letter. For example: Invoice:  Printed Invoice. At the top of the invoice the document type (letter "B") is not shown completely:  **Desired behavior after PR is merged**: Invoice:  Printed Invoice. At the top of the invoice the document type (letter "B") is shown completely:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#112715 Forward-Port-Of: odoo/odoo#112549
A double line would appear if the resume / skills were empty. task-3196398 Forward-Port-Of: odoo/odoo#113986
Original PR description
A double line would appear if the resume / skills were empty. task-3196398 Forward-Port-Of: odoo/odoo#113986
The button to regenerate work entries was no longer disabled, thus it lead to a traceback when clicking on it. The warning message was confusing and misleading. task-3203225 Forward-Port-Of: odoo/odoo#113867
Original PR description
The button to regenerate work entries was no longer disabled, thus it lead to a traceback when clicking on it. The warning message was confusing and misleading. task-3203225 Forward-Port-Of: odoo/odoo#113867
**Current behavior before PR:** When copy-pasting from Discord into Notes, get a text with color and background color. But when clicking on the trash icon inside the toolbar to remove the background color, it doesn't remove the background color. **Desired behavior after PR is merged:** Allowed to remove background color from text using trash icon. Task-2889682 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo
Original PR description
**Current behavior before PR:** When copy-pasting from Discord into Notes, get a text with color and background color. But when clicking on the trash icon inside the toolbar to remove the background color, it doesn't remove the background color. **Desired behavior after PR is merged:** Allowed to remove background color from text using trash icon. Task-2889682 -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114044 Forward-Port-Of: odoo/odoo#96501
When cancelling a confirmed order the message displayed on the chatter was en English, regardless of the language set for the customer or the user. After this commit the correct language will be used. opw-3175301 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#113977
Original PR description
When cancelling a confirmed order the message displayed on the chatter was en English, regardless of the language set for the customer or the user. After this commit the correct language will be used. opw-3175301 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#113977
Steps to reproduce: - create a sale order; - add products which are based on timesheets for invoicing policy; - create an invoice an confirm it; - make a full refund for this invoice with "ADD CREDIT NOTE" button; - create an new invoice for the sale order. Issue: There is no longer a statistics button that displays the hours worked on the invoice view. Cause: To reassign an account move to an account analytic line, it is necessary either that there is no invoice or that the invoi
Original PR description
Steps to reproduce: - create a sale order; - add products which are based on timesheets for invoicing policy; - create an invoice an confirm it; - make a full refund for this invoice with "ADD CREDIT NOTE" button; - create an new invoice for the sale order. Issue: There is no longer a statistics button that displays the hours worked on the invoice view. Cause: To reassign an account move to an account analytic line, it is necessary either that there is no invoice or that the invoice is in the cancel state. The case where the invoice has been refunded is not taken into account. Solution: Correct the domain that determines the timesheets (account analytic line) to be linked with the invoice being created. opw-3187219 Forward-Port-Of: odoo/odoo#113985
align chat bubble and remove space between label and h1 https://www.odoo.com/web#id=3131441&menu_id=4720&cids=1&action=333&active_id=1251&model=project.task&view_type=form Forward-Port-Of: odoo/odoo#111577
Original PR description
align chat bubble and remove space between label and h1 https://www.odoo.com/web#id=3131441&menu_id=4720&cids=1&action=333&active_id=1251&model=project.task&view_type=form Forward-Port-Of: odoo/odoo#111577
Forward-Port-Of: odoo/odoo#114099 Forward-Port-Of: odoo/odoo#114001
Original PR description
Forward-Port-Of: odoo/odoo#114099 Forward-Port-Of: odoo/odoo#114001
**Current behavior before PR:** For the safari browser, when typing any URL and pressing space, and continuing typing, the cursor jumps before the URL. **Desired behavior after PR is merged:** Inserting an element into a range clears the selection in Safari. Hence, use the cloned range to reselect it, and now the cursor position remains at the end of the URL. Task-3089091 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forwa
Original PR description
**Current behavior before PR:** For the safari browser, when typing any URL and pressing space, and continuing typing, the cursor jumps before the URL. **Desired behavior after PR is merged:** Inserting an element into a range clears the selection in Safari. Hence, use the cloned range to reselect it, and now the cursor position remains at the end of the URL. Task-3089091 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#110851
When multiple liquidity lines exist on an account.move (occuring before 14.0), the bank reconciliation widget crashes. Taking the sum of the `amount` and `amount_currency` solves it. opw-3202392 Forward-Port-Of: odoo/odoo#114126
Original PR description
When multiple liquidity lines exist on an account.move (occuring before 14.0), the bank reconciliation widget crashes. Taking the sum of the `amount` and `amount_currency` solves it. opw-3202392 Forward-Port-Of: odoo/odoo#114126
Before this commit, on iPhone 8 (and lower) it was possible to scroll the page to the right when there were animated elements in the page. A "transform: none" property was applied to non-visible animated elements to prevent the page from expanding to the right. However, this property wasn't properly overriding keyframe transforms on iPhone 8 and lower. This has been resolved by adding "overflow-x: hidden" on the wrapwrap in case "transform: none" is not applied correctly. Steps to rep
Original PR description
Before this commit, on iPhone 8 (and lower) it was possible to scroll the page to the right when there were animated elements in the page. A "transform: none" property was applied to non-visible animated elements to prevent the page from expanding to the right. However, this property wasn't properly overriding keyframe transforms on iPhone 8 and lower. This has been resolved by adding "overflow-x: hidden" on the wrapwrap in case "transform: none" is not applied correctly. Steps to reproduce the issue: - On iPhone 8 (Safari). - Drop a few snippets into a page. - Add a "Fade In-Right" animation to one of the snippets. - Scrolls the page so that the animated element is invisible. - Bug => a horizontal scrollbar appears and it is possible to scroll the page to the right. opw-3165651 Forward-Port-Of: odoo/odoo#114091 Forward-Port-Of: odoo/odoo#111750
To reproduce the issue: 1. Go to 'res.country.state.csv' in base 2. state_ch_sh is "Shaffhausen" Error: should be "Schaffhausen" State code is still SH because ISO 3166 code for this state is CH-SH OPW-3199628 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114139
Original PR description
To reproduce the issue: 1. Go to 'res.country.state.csv' in base 2. state_ch_sh is "Shaffhausen" Error: should be "Schaffhausen" State code is still SH because ISO 3166 code for this state is CH-SH OPW-3199628 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114139
task - 3203843 Fixing the accrual plan start_count help message Forward-Port-Of: odoo/odoo#113655
Original PR description
task - 3203843 Fixing the accrual plan start_count help message Forward-Port-Of: odoo/odoo#113655
This update contains the following commit: - [FIX] compiler: t-key and t-ref together More details at: https://github.com/odoo/owl/releases/tag/v2.0.7 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#113099
Original PR description
This update contains the following commit: - [FIX] compiler: t-key and t-ref together More details at: https://github.com/odoo/owl/releases/tag/v2.0.7 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#113099
Prior to this commit, animations on SVG shapes could use a lot of CPU and make the page stutter on some website + machine combo. This commit applies a new class which will warn the browser that the element is animated. Depending on the browser, some optimisations are done. On Chrome and Safari, a new layer is created which simplifies the render of the page and sometimes takes advantage of hardware acceleration. On Firefox, no optimisation is done yet. This might change in an update wh
Original PR description
Prior to this commit, animations on SVG shapes could use a lot of CPU and make the page stutter on some website + machine combo. This commit applies a new class which will warn the browser that the…
Prior to this commit, animations on SVG shapes could use a lot of CPU and make the page stutter on some website + machine combo. This commit applies a new class which will warn the browser that the element is animated. Depending on the browser, some optimisations are done. On Chrome and Safari, a new layer is created which simplifies the render of the page and sometimes takes advantage of hardware acceleration. On Firefox, no optimisation is done yet. This might change in an update which will take advantage of the CSS Property. The documentation says to only use `will-change` when an element is about to change. This is the case however, as most of the shape's animations are going all the time. Which is why it's applied to every shape that has animation. This optimisation only applies to background shapes with this commit. To note: one way to easily see the improvement is on the "Layers" tab of the Chrome devtools. Before this commit, the entire #wrapwrap is repainted every time the shape changes (so 60 times per second since that is the framerate the browser aims for). With this commit, the #wrapwrap and the shape are contained in their own layers so the #wrapwrap is only painted once. task-3142001 Forward-Port-Of: odoo/odoo#113843 Forward-Port-Of: odoo/odoo#110260
To reproduce ============ - on accounting -> Vendor -> Bills - upload the PDF attached on the ticket an exception is raised Problem ======= PyPDF2 finds that this pdf is encrypted,so we try to decrypt it with empty password, but the decryption fails which rise an error. Solution ======== according to this [commit](https://github.com/odoo/odoo/commit/851fe64f7789bb398383c22e3ebbaebb051791f6), when the decryption fails we skip reading the attachments and carry on to allow the user to
Original PR description
To reproduce ============ - on accounting -> Vendor -> Bills - upload the PDF attached on the ticket an exception is raised Problem ======= PyPDF2 finds that this pdf is encrypted,so we try to decrypt it with empty password, but the decryption fails which rise an error. Solution ======== according to this [commit](https://github.com/odoo/odoo/commit/851fe64f7789bb398383c22e3ebbaebb051791f6), when the decryption fails we skip reading the attachments and carry on to allow the user to upload the document. opw-3196780 Forward-Port-Of: odoo/odoo#114050
### latam task 976 / OPW 3204261 account_sequence module is adding an extra value to the move name in order to make it unique. For example if we have more than one vendor bills with name FA-A 0001-00000088 the result will be: * record 1: FA-A 0001-00000088 * record 2: FA-A 0001-00000088 (1) * record 3: FA-A 0001-00000088 (2) When using document type the vendor bill name should not need to be unique and it can be repeated, because it depends completely in the partner, in that
Original PR description
### latam task 976 / OPW 3204261 account_sequence module is adding an extra value to the move name in order to make it unique. For example if we have more than one vendor bills with name FA-A 0001-00000088 the result will be: * record 1: FA-A 0001-00000088 * record 2: FA-A 0001-00000088 (1) * record 3: FA-A 0001-00000088 (2) When using document type the vendor bill name should not need to be unique and it can be repeated, because it depends completely in the partner, in that case we should not add the "(N)" and leave the name as it is, because changing the name will result in problems, for example, like reporting VAT BOOK (AR LOC) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#114109
How to reproduce ================= Give a badge to an employee, when checking the sent mail, The image and description of the badge is nowhere to be seens. Those fields don't display because the description contains P html tags. The presence of the removed `t-if` is the main cause of the issue. Adding a `not` to the condition solves the issue. This not was lost during the Jinja -> Qweb translation (#68182ba) opw-3099419 Forward-Port-Of: odoo/odoo#111975
Original PR description
How to reproduce ================= Give a badge to an employee, when checking the sent mail, The image and description of the badge is nowhere to be seens. Those fields don't display because the description contains P html tags. The presence of the removed `t-if` is the main cause of the issue. Adding a `not` to the condition solves the issue. This not was lost during the Jinja -> Qweb translation (#68182ba) opw-3099419 Forward-Port-Of: odoo/odoo#111975
The overridden `_get_customer_country` method could not be called in two places where we referenced the base appointment controller instead of * in `Appointment` itself, the current class which could have been extended * for `_search_get_detail`, the `WebsiteAppointment` controller We here restore this override lost with 6ca7f201. The test included fails without both fix part of this commit. Forward-Port-Of: odoo/enterprise#37712 Forward-Port-Of: odoo/enterprise#36323
Original PR description
The overridden `_get_customer_country` method could not be called in two places where we referenced the base appointment controller instead of * in `Appointment` itself, the current class which could have been extended * for `_search_get_detail`, the `WebsiteAppointment` controller We here restore this override lost with 6ca7f201. The test included fails without both fix part of this commit. Forward-Port-Of: odoo/enterprise#37712 Forward-Port-Of: odoo/enterprise#36323
A filter named options:'extended' or 'standard' exists on the intrastat report to allow the user to include or exclude (respectively) the transport and incoterm columns on the report. This filter hasn't been functioning since v16.0 although the code was written to adapt the options based on the setting of this filter, the options are not adapted after the 'new_columns' are determined in the code. This code updates the options dictionary so that the columns in the options reflect those dete
Original PR description
A filter named options:'extended' or 'standard' exists on the intrastat report to allow the user to include or exclude (respectively) the transport and incoterm columns on the report. This filter hasn't been functioning since v16.0 although the code was written to adapt the options based on the setting of this filter, the options are not adapted after the 'new_columns' are determined in the code. This code updates the options dictionary so that the columns in the options reflect those determined by the filter. Forward-Port-Of: odoo/enterprise#37566
An infinite loop was blocking the interface when importing journal items from the settings menu. (Accounting > Settings > Accounting Import > Import Journal Items). https://watch.screencastify.com/v/mXeIfhBi5oHofvEAaAhp Task ID: 3211540 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#37658
Original PR description
An infinite loop was blocking the interface when importing journal items from the settings menu. (Accounting > Settings > Accounting Import > Import Journal Items). https://watch.screencastify.com/v/mXeIfhBi5oHofvEAaAhp Task ID: 3211540 --- I confirm I have signed the CLA and read the PR guidelines at [www.odoo.com/submit-pr](http://www.odoo.com/submit-pr) Forward-Port-Of: odoo/enterprise#37658
The hyphen should also be replaced by an underscore when generating the SQL query. Steps to reproduce (not really linked, but the bug was detected this way) - Install Accounting and HR payroll - Uninstall Accounting - Reinstall Accounting - Error `psycopg2.errors.SyntaxError: syntax error at or near "-"` Part of ticket 3204290 Forward-Port-Of: odoo/enterprise#37689
Original PR description
The hyphen should also be replaced by an underscore when generating the SQL query. Steps to reproduce (not really linked, but the bug was detected this way) - Install Accounting and HR payroll - Uninstall Accounting - Reinstall Accounting - Error `psycopg2.errors.SyntaxError: syntax error at or near "-"` Part of ticket 3204290 Forward-Port-Of: odoo/enterprise#37689
Grid 65 is a percentage and used to be stored as a float between 0 and 1. In 16.0, due to the introduction of external values, it now directly is the percentage. The computation of grid 66 and generation of the BOE file hence needed to be adapted. OPW 3180936 Forward-Port-Of: odoo/enterprise#37601
Original PR description
Grid 65 is a percentage and used to be stored as a float between 0 and 1. In 16.0, due to the introduction of external values, it now directly is the percentage. The computation of grid 66 and generation of the BOE file hence needed to be adapted. OPW 3180936 Forward-Port-Of: odoo/enterprise#37601
### The issue Currently, automatic currency rate updates with Bank of Peru do not work if your locale is not English. The Bank of Peru exchange rate service return dates in *English* with the following format: `%d.%b.%y`. Internally, we parse that date using`datetime.datetime.strptime`. However, parsing fails when the locale is not English because `strptime` uses the locale when parsing. For example, trying to parse `29.Dec.22`with Spanish locale does not work because `strptime` expects
Original PR description
### The issue Currently, automatic currency rate updates with Bank of Peru do not work if your locale is not English. The Bank of Peru exchange rate service return dates in *English* with the following format: `%d.%b.%y`. Internally, we parse that date using`datetime.datetime.strptime`. However, parsing fails when the locale is not English because `strptime` uses the locale when parsing. For example, trying to parse `29.Dec.22`with Spanish locale does not work because `strptime` expects `29.Dic.22`. ### Fix Replace the short month names by numbers. opw-3091837 Forward-Port-Of: odoo/enterprise#35285
With an MX Company and multicurrency setup Create an Invoice in USD, validate CFDI. Register a payment in, validate CFDI. It may occur the payment cfdi is rejected with error CRP20275, claiming that the amount of the Payment isn't correct. Since January 07th, the SAT implemented the "Complemento de Pago Versión 2.0 Versión A" https://blog.mysuitemex.com/2023/01/10/complemento-de-pago-2-0-cambios-sat/ https://soltum.com.mx/nuevo-complemento-de-pagos-2-0-revision-a-del-cfdi/ Raising the
Original PR description
With an MX Company and multicurrency setup Create an Invoice in USD, validate CFDI. Register a payment in, validate CFDI. It may occur the payment cfdi is rejected with error CRP20275, claiming that the amount of the Payment isn't correct. Since January 07th, the SAT implemented the "Complemento de Pago Versión 2.0 Versión A" https://blog.mysuitemex.com/2023/01/10/complemento-de-pago-2-0-cambios-sat/ https://soltum.com.mx/nuevo-complemento-de-pagos-2-0-revision-a-del-cfdi/ Raising the Decimal precision of EquivalenciaDR from 6 to 10 opw-3168140 Forward-Port-Of: odoo/enterprise#37679 Forward-Port-Of: odoo/enterprise#36729
Before this commit, the move was set to sent before calling send_success_mail. As send_success_mail would early return if the is_move_sent was true, the email would never be sent. Forward-Port-Of: odoo/enterprise#37678
Original PR description
Before this commit, the move was set to sent before calling send_success_mail. As send_success_mail would early return if the is_move_sent was true, the email would never be sent. Forward-Port-Of: odoo/enterprise#37678
### Steps to reproduce - install l10n_mx_edi - print a payment receipt while not in a Mexican company You should see that invoices are not displayed on the payment receipt. opw-3031324 Forward-Port-Of: odoo/enterprise#37050
Original PR description
### Steps to reproduce - install l10n_mx_edi - print a payment receipt while not in a Mexican company You should see that invoices are not displayed on the payment receipt. opw-3031324 Forward-Port-Of: odoo/enterprise#37050
When performing the extra joins we need to ensure the first join with the model table is correctly done by res_id and res_model_id. Forward-Port-Of: odoo/enterprise#37628
Original PR description
When performing the extra joins we need to ensure the first join with the model table is correctly done by res_id and res_model_id. Forward-Port-Of: odoo/enterprise#37628
To reproduce: 1/ Post an invoice with the Avatax fiscal position 2/ Click “Generate a Payment Link” in the action dropdown 3/ An Avatax error is shown mentioning “DocStatus is invalid for this operation” Odoo calls `button_update_avatax` with `commit=False` in the `payment.link.wizard` _inherit. This shouldn't happen when the invoice is committed because: - From Avatax's view we try to "uncommit" because of `commit: False`, and - We don't want to recompute the taxes anyway, the invoi
Original PR description
To reproduce: 1/ Post an invoice with the Avatax fiscal position 2/ Click “Generate a Payment Link” in the action dropdown 3/ An Avatax error is shown mentioning “DocStatus is invalid for this operation” Odoo calls `button_update_avatax` with `commit=False` in the `payment.link.wizard` _inherit. This shouldn't happen when the invoice is committed because: - From Avatax's view we try to "uncommit" because of `commit: False`, and - We don't want to recompute the taxes anyway, the invoice is posted Excluding posted invoices in `payment.link.wizard` was considered but is trickier because it's used both on `sale.order` and `account.move`. Changing the signature of private functions is allowed but discouraged in the stable policy. Not changing the signature was also considered but would be less clean and it's unlikely anyone overrode `_send_to_avatax`. opw-3136249 Forward-Port-Of: odoo/enterprise#37649 Forward-Port-Of: odoo/enterprise#37153
We can have a salary cost (so misc entries) capitalized. So, we need to be able to create assets with these. So, the condition on the domain on `original_move_line_ids` has to be lighter, to allow miscellaneous entries. task-3178241 Forward-Port-Of: odoo/enterprise#37666
Original PR description
We can have a salary cost (so misc entries) capitalized. So, we need to be able to create assets with these. So, the condition on the domain on `original_move_line_ids` has to be lighter, to allow miscellaneous entries. task-3178241 Forward-Port-Of: odoo/enterprise#37666
Forward-Port-Of: odoo/enterprise#37603
Original PR description
Forward-Port-Of: odoo/enterprise#37603
Steps to reproduce: - Install Accounting, Payroll (in this order!!) - Payroll > Payslips > All Payslips > Create - Employee = Ronnie Hart > Compute Sheet > Create Draft Entry - Under the Other Info tab, you can see the created accounting entry - Refund, select the refund payslip > Create Draft Entry - Check the refund accounting entry Issue: The refund accounting entry is a copy of the original, and not its inverse. This happens because of an unintentional change in 6e3c35a11239
Original PR description
Steps to reproduce: - Install Accounting, Payroll (in this order!!) - Payroll > Payslips > All Payslips > Create - Employee = Ronnie Hart > Compute Sheet > Create Draft Entry - Under the Other Info tab, you can see the created accounting entry - Refund, select the refund payslip > Create Draft Entry - Check the refund accounting entry Issue: The refund accounting entry is a copy of the original, and not its inverse. This happens because of an unintentional change in 6e3c35a112393921600cbb6efa56531f860e1833, which reverted the correct behaviour added in 25b74bc9d7102797c7ef76faef46138576ef9aa5. opw-3107841 Forward-Port-Of: odoo/enterprise#37620 Forward-Port-Of: odoo/enterprise#36642