Friday, October 13, 2023
65 changes · master
Enhancements to existing features
The domain selector now handles a wider range of filter rules and gives clearer guidance when a field, operator, or value is invalid. Users benefit from easier editing of advanced filter conditions, cleaner selection controls, and a more consistent interface across related screens.
Original PR description
### Main goals - Make the domain selector be able to display all domains accepted by the class Domain (domain.js) - Improve the edition/selection of values, e.g. for the operators in/not in - Improve…
### Main goals - Make the domain selector be able to display all domains accepted by the class Domain (domain.js) - Improve the edition/selection of values, e.g. for the operators in/not in - Improve the style/dom ### Changes/Specification **Edition of conditions** We call _condition_ a triple (_path_, _operator_, _value_). Each component can be edited via a dedicated _editor_. **Path editor** - a _valid_ path (a string or 0/1) is accepted by the path editor and edited via the model field selector. - an _invalid_ path is displayed with an error message "Invalid field chain" and a clear button. The button clear reset the path to a valid default path (e.g. ID). **Operator editor** - displays a selection of operators determined by the path field type (if any) - a _valid_ operator (see TERM_OPERATORS in expression.py) is added temporarily to the selection if missing - an __invalid_ operator is displayed with an error message "Invalid operator" and a clear button. The button clear reset the operator to a valid default operator (determined by the path field type) **Value editors** - the value editor used is determined by the path field type (if any) and the operator - each value editor has a set of supported value types - a value not supported is displayed with an error message, e.g. "Value not supported", and a clear button. The clear button reset the value to a default value accepted by the editor - (_basic editor_) In general, a supported value is edited via an input or a select/autocomplete dropdown when appropriate or a datetime picker. - editor for _in/not in_ operators: the current value is displayed as a list of tags (removable) and a value can be added via the suitable basic editor. - editor for _between_: two suitable basic editors are displayed **DOM/Style** - The dom has been refactored and now contains less elements/custom classes - The stylesheet has been almost emptied - Bootstrap is used intensively Task IDs: 3507123, 3508940
Event registrations are now confirmed by default, while unpaid sale-linked registrations no longer reserve seats until payment or order confirmation. This simplifies event management, removes redundant payment tracking, and improves registration views and seat availability handling.
Original PR description
We remove the is_paid field and based the logic on the payment_status as these two fields are a bit redundant. It is also in preparation to the removal of the field auto_confirm on the event.event model. The goal is to ease and simplify the management of registrations. Remove autoconfirm logic and simplify the flow of event registrations. Now a registration is by default considered as confirmed and the draft state is not used anymore by default. It is used in combination with sales before a registration is considered as paid. It allows to avoid blocking seats in an event while registration fees are not paid. task-3061849
This update prepares the file insertion experience for upcoming improvements in Knowledge. It makes shared file viewing and media dialog behavior easier to customize, helping future enhancements integrate more smoothly across Odoo apps.
Original PR description
Preparations for the rework of the Knowledge `/file` command (see [enterprise PR]) - Extract basic props needed by the `FileViewer` for `files` instances in a reusable `Mixin`. - Allow providing a custom `MediaDialog` class through `openMediaDialog` to allow Knowledge custom behaviors. - Export the rendering part of `save` for the `MediaDialog` so it can be overridden. [enterprise PR]: https://github.com/odoo/enterprise/pull/43488 task-3172056
Odoo has removed older background web service and environment components, replacing related notification handling with newer mechanisms. This helps simplify the platform and reduce maintenance risk, with changes mainly affecting internal web behavior rather than day-to-day business workflows.
This update makes the checkout country selection logic easier to extend in future customizations. It helps developers build on the online shop checkout flow more reliably without changing the customer-facing experience.
Original PR description
Changed _onChangeCountry and _changeCountry from website_sale.js to make them inheritable by returning the value of the promise instead of returning nothing. [RELATED PR](https://github.com/odoo/odoo/pull/130155#discussion_r1342821487) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Financial reports can now omit lines that have no value when reporting options request it. This makes reports cleaner and easier to review by keeping only lines with meaningful amounts or visible child lines.
Original PR description
In the enterprise PR, we allow to have a new options on reports that can hide line that are equals to zero under certain condition. A line should be visible depending on its value and the ones of its children. For parent lines, it's visible if there is at least one child with a value different from zero or if a child is visible, indicating it's a parent line. For leaf nodes, it's visible if the value is different from zero. This commit add the filter in the account_reports model. task: 3359936 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update streamlines generated styling across Calendar, Mail, Portal, Project, and Web areas by reducing duplicated CSS rules and using more direct style definitions. It helps keep the interface code easier to maintain without introducing visible functional changes for users.
Original PR description
task-3546717 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Tracked links now count each click separately, even when repeated from the same device. This gives businesses more accurate engagement metrics for campaigns and shared links.
Original PR description
This PR removes filter on ip so that each click should count as one. previously multiple clicks from the same device only counted as one, but now because of the ip removal, they are being counted as many times as you go to the link. task-3328661 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
Project screens now show customer ratings as a clearer score out of 5 instead of a percentage, making feedback easier to understand at a glance. The update also adds helpful placeholders for project stages and task types and reduces unnecessary clickable fields in task lists for a smoother user experience.
Original PR description
The purpose of this commit is to do generic improvements to the project.
In Commit, made the following changes:
- replace the rating % by the value out of 5 in the project kanban card.
- replace the rating % by the value out of 5 and satisfaction by average rating in the
project update right-side panel.
- project field should not be clickable in the task list view.
- add the placeholder in project stages and project task type.
task-2962386This update streamlines how on-screen pop-ups, menus, and guided tour pointers are positioned across Odoo. It makes these interface elements more consistent and easier to maintain, reducing the risk of display issues in future changes.
Website editors can now move images by dragging directly from anywhere on the image instead of using a separate move handle. This makes page editing more intuitive while preventing the browser's default image dragging from interfering with Odoo's own editor tools.
Original PR description
This commit permits to drag and drop images without using the `o_move_handle`. The user can directly drag the image in edit mode by grabbing the image itself. --- Before this commit when the user was dragging an image in the editor, the image was always dragged from the top middle of the image. Now the user can drag the image from anywhere on it. --- By default, images on websites can be dragged and dropped in browsers. As we have a custom drag & drop system, this commit removes the default drag & drop behavior during the edition of a website page. --- task-3369600
Payment methods are now configured and presented more consistently across checkout, customer portals, and provider settings. This helps customers better understand available payment options and gives businesses clearer payment configuration across sales, invoices, and delivery flows.
Original PR description
task-3516670
Employees can now analyze their own timesheets using pivot and graph views in the Timesheets app. This makes it easier to review time spent across projects and spot patterns without needing custom reports.
Original PR description
Improve added pivot view for my timesheet in the timesheet app. - Before this commit there was no pivot view for my timseet in timesheet app. - In this commit pivot view is added or my timseet in timesheet app. Task-3479322
Website pages must now have a URL, preventing pages from being created or kept without a web address. This simplifies website search behavior and avoids special handling for incomplete page records.
Original PR description
Commit [1] was made to avoid that the search snippet fails when there are pages without URLS. In master this can be reverted and the URL field can be made mandatory. [1]: https://github.com/odoo/odoo/commit/f75ec6131eff9165b06d42d27a49dd756387f4a0 task-3443119
Product label printing now lets users select a pricelist before generating labels. This helps businesses print labels with the correct customer, store, or promotional pricing instead of always using the default product price.
Original PR description
before this commit, on printing product labels there is no option to select the price list, always the printed price is the default product price after this commit, in the label printing wizard the price list field is introduced and user can select the price list before printing the labels  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The project form now prevents users from creating new worksheet templates directly from the worksheet template field. This helps keep template management controlled and reduces accidental or duplicate template creation during field service project setup.
Original PR description
In Commit, made the following changes:
- disable the creation for the 'worksheet template' field in the project form view.
task-2962386Financial reports can now hide rows with zero values when appropriate, making reports easier to read and focus on meaningful figures. The option is enabled by default for tax reports and can be configured for other reports, with related filter layout improvements.
Original PR description
This PR allow to have a new options on reports that can hide line that are equals to zero under certain conditions. A line should be visible depending on its value and the ones of its children. For parent lines, it's visible if there is at least one child with a value different from zero or if a child is visible, indicating it's a parent line. For leaf nodes, it's visible if the value is different from zero. The option is by default put on tax report but can be applied in the settings of the report Also correcting a indentation problem task: 3359936
Odoo Studio templates are now loaded only when Studio is opened instead of being included in the main application load. This should make the regular backend lighter and faster, while Studio may take slightly more resources when first accessed.
Original PR description
Before this commit, the xml's of all the studio components, that is, used only in the StudioClientAction environment were included into the main `web.assets_backend` bundle. This was because many studio templates inherit from some template in web,mail and web_enterprise. After this commit, we resolve these dependencies the other way around: the relevant dependencies in xml are included in the `web_studio.studio_assets` that is lazy loaded when first entering studio. This is supposed to lighten the main assets bundle, while making the studio assets a bit heavier. Some more granularity is possible by cherry picking which templates are to be effectively included in the studio lazy loaded assets.
The signature request wizard now labels the employee email option as Work instead of Public, making the choice clearer for users. When only one employee is selected, the selected email address is shown underneath so users can confirm where the request will be sent.
Original PR description
One of selection possibilities in mail_to field of signature request changes from 'Public' to 'Work'. Also, mail value is displayed below but only if there's one mail (= one employee selected). task-3530707
This update removes older internal service layers and updates related notification displays to use the newer approach. It helps keep the platform easier to maintain and reduces reliance on outdated infrastructure, with minimal expected user-facing impact.
The Avatax connection test now shows its response in a popup titled "Test Result" instead of "User Error". This avoids confusing users by making it clear that the popup is an informational test outcome, not necessarily a problem.
Original PR description
"Testing" the Avatax connection opens a pop-up titled "User Error" and the detail of the Avatax response. It is not an error and the wording is therefore not coherent. We therefore replace the title by "Test Result". task-3540749
The domain selector has been updated across Enterprise apps to match recent platform improvements in editing, layout, and styling. This should make configuration screens and related workflows more consistent and easier to use, with supporting test updates to keep key business flows reliable.
Original PR description
Adapt the code to the changes brought in the domain selector by the corresponding community PR. Task IDs: 3507123, 3508940
Knowledge articles now offer a more flexible file block: users can preview files, rename how files appear in an article, and download or view them from public pages. The update also prevents unsaved article content from being lost when related files are deleted from the chatter.
Original PR description
Rework the `/file` command to add more flexibility and features: - Allow a file preview with the FileViewer - Allow to rename the file in the article (not the attachment itself) (that name will be used when downloading the file). In a technical point of view: - Store the attachment information as an object (`FileModel`) that is directly usable by the `FileViewer` and more detailed than the limited props that were available before. - Improve the custom `MediaDialog` used with the command so that it directly renders the `Behavior` block. - Fixes some minor issues related to this `Behavior`. see commits for a more detailed overview task-3172056
The WhatsApp event integration no longer includes an unused automatic confirmation setting, reducing configuration clutter. Related event sales status wording was also aligned, helping keep event workflows clearer and more consistent.
Original PR description
Remove auto_confirm option that is no longer used. For more details: odoo/odoo#126431 task-3061849
Resolved issues and error corrections
This change fixes an internal test setup issue that could make websocket-related tests start in the wrong order. It helps keep the bus module's automated test results stable and trustworthy without changing customer-facing behavior.
Original PR description
Since [1], the asset watchdog bundle is added to the registry during bus tests. Websocket tests wait for the `connect` event after starting the environment. This `connect` event can be triggered sooner than expected since the asset watchdog services starts the bus. This commit removes the asset watchdog service from bus tests in order to ensure the test will be the one to actually start the bus. [1]: https://github.com/odoo/odoo/pull/138221
Code cleanup and technical improvements
Spreadsheet and dashboard filters now use a newer multi-record selection control, making selection more consistent across Odoo. Users also get helpful placeholder text and keyboard navigation for easier tag selection and removal.
Original PR description
These commits replace the use of `RecordsSelector` by the `MultiRecordSelector`. To be able to achieve this, we have to enhance the behavior of `MultiRecordSelector` with the support of placeholder and the support of the keyboard navigation
Miscellaneous changes
Currently, log error occurs when the user tries to export "Discuss". This is because the wrong closing tag of `xpath` is added at https://github.com/odoo/odoo/blob/9b2c2c0540bd52a082216ddadb0aeb361acf0bdc/addons/mail/static/src/discuss/call/web/discuss_patch.xml#L4-L6 Error ``` XMLSyntaxError: Opening and ending tag mismatch: xpath line 4 and t, line 6, column 13 (discuss_patch.xml, line 6) File "odoo/tools/translate.py", line 1157, in _babel_extract_terms for extracted in extra
Original PR description
Currently, log error occurs when the user tries to export "Discuss". This is because the wrong closing tag of `xpath` is added at…
Currently, log error occurs when the user tries to export "Discuss". This is because the wrong closing tag of `xpath` is added at
https://github.com/odoo/odoo/blob/9b2c2c0540bd52a082216ddadb0aeb361acf0bdc/addons/mail/static/src/discuss/call/web/discuss_patch.xml#L4-L6
Error
```
XMLSyntaxError: Opening and ending tag mismatch: xpath line 4 and t, line 6, column 13 (discuss_patch.xml, line 6)
File "odoo/tools/translate.py", line 1157, in _babel_extract_terms
for extracted in extract.extract(extract_method, src_file, keywords=extract_keywords, options=options):
File "babel/messages/extract.py", line 322, in extract
results = func(fileobj, keywords.keys(), comment_tags,
File "odoo/tools/translate.py", line 910, in babel_extract_qweb
tree = etree.parse(fileobj)
File "src/lxml/etree.pyx", line 3539, in lxml.etree.parse
File "src/lxml/parser.pxi", line 1897, in lxml.etree._parseDocument
File "src/lxml/parser.pxi", line 1917, in lxml.etree._parseFilelikeDocument
File "src/lxml/parser.pxi", line 1811, in lxml.etree._parseDocFromFilelike
File "src/lxml/parser.pxi", line 1201, in lxml.etree._BaseParser._parseDocFromFilelike
File "src/lxml/parser.pxi", line 615, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 725, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 654, in lxml.etree._raiseParseError
```
This commit fix issue by adding correct closing tag.
sentry-3951803776
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#138509Time Off list views now show key employee information where it was previously missing. This helps managers and HR users more easily identify whose leave or allocation records they are reviewing, while keeping the My Time menu appropriately focused.
Original PR description
Before this commit, In time off if we got to dashboard and open list view then information related to employee is missing. In this commit, removed invisible attribute from field to show employee information. task-3482508
This fix prevents live chat messages from being incorrectly shown as sent by the visitor when an agent has a customized live chat name. It preserves the correct author information so conversations are clearer and less confusing for support teams and customers.
Original PR description
Before this commit, the `_message_format` override of the live chat module would overwrite the author. Since [1], values provided by the live chat override are incomplete which result in incorrect message display in the discuss app. This commit modify the live chat override to enrich the author instead of totally overwriting it. Steps to reproduce: - Log in with mitchell admin - Change its live chat user name in its profile - Open a chat with a visitor - Send a message with mitchell - The message is incorrectly marked as sent by the visitor [1]: https://github.com/odoo/odoo/pull/137276
Search filters and fields that should be hidden based on context are now evaluated in the browser and hidden as intended. This prevents users from seeing irrelevant options, such as private task filters, improving consistency in search menus.
Original PR description
Since [1], invisible attributes on views are no longer evaluated server-side. In search views, field and filter nodes can have an invisible attribute which can be static ("1" or "True") or dynamic,…
Since [1], invisible attributes on views are no longer evaluated server-side. In search views, field and filter nodes can have an invisible attribute which can be static ("1" or "True") or dynamic, depending on the context (e.g. "context.get('something')"). Before [1], in the arch received by the client, the value of the invisible attribute was always static as "context.get(...)" expressions were evaluated server-side. This is no longer the case, and we thus have to evaluate the expression client side.
Before this commit, the invisible attributes in search archs were simply ignored if they weren't static. This could be observed for instance in Project > open a project: the "Private tasks" filter was available even though it is dynamically invisible, and shouldn't be there.
This commit ensures the invisible attributes are always taken into account and evaluated.
[1] odoo/odoo@ba1a5509fa49fd846739252d16083dd8cb334b53
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-prProject settings can now be saved when projects from different companies are updated together. This prevents an error that previously interrupted users working in multi-company environments.
Original PR description
How to reproduce:
- Link 2 distinct projects to at least 2 different companies
- Modify and save any setting in project settings (this action
should trigger the write function of the project)
--> Traceback: expected singleton
Why?
- If projects associated with differing companies are updated
collectively, the condition self.company_id.id anticipates a
singular value, but it’s possible for there to be multiple.
Solution:
- When we want to write a company_id on some projects, take back the
ones already with the right companyc(as we don't have to change their
stage) and then write the first stage found on the other records (
by putting self.company_id.ids in order to avoid the singleton
exception).
taskid:3520107
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThis update cleans up generated styling and removes outdated layout rules in several areas. Users should see more consistent card layouts in Sign, a working Sign onboarding tour, and better aligned activity fields in Marketing Automation.
Original PR description
task-3546717
This update streamlines the internal data handling behind Odoo Discuss, live chat, and messaging features. It reduces duplicated conversions and legacy structures, making the messaging code easier to maintain while keeping expected user-facing behavior stable.
Original PR description
- Remove "channel" field in thread formatter. - Pass `type` for all persona formatters. - Remove some snake_case to camelCase conversions. - Add support for inverse fields in discuss JS models. https://github.com/odoo/enterprise/pull/48484
Spanish tax reports 111, 115, and 303 now use a newer reporting engine that standardizes how tax amounts are calculated. This improves report performance and includes migration support so existing accounting history is converted correctly.
Original PR description
This commit replaces the outdated expressions and unsigned tags in mod 111, 115, and 303 with tax_tags expressions. This update follows the removal of the old technical decision after Reportalypse. A migration script is included to ensure proper conversion of accounting history. As a result, Spanish reports are more standardized and performance is significantly enhanced due to batching in the tax_tags engine. Community-PR: https://github.com/odoo/odoo/pull/120675 Enterprise-PR: https://github.com/odoo/enterprise/pull/40777 Upgrade-PR: https://github.com/odoo/upgrade/pull/4800 Task-Id: 3126178 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Spanish tax declaration reports 111, 115, and 303 now use Odoo's newer tax reporting engine. This standardizes how these reports are calculated, improves performance, and includes migration support so existing accounting history is converted correctly.
Original PR description
This commit replaces the outdated expressions and unsigned tags in mod 111, 115, and 303 with tax_tags expressions. This update follows the removal of the old technical decision after Reportalypse. A migration script is included to ensure proper conversion of accounting history. As a result, Spanish reports are more standardized and performance is significantly enhanced due to batching in the tax_tags engine. Community-PR: https://github.com/odoo/odoo/pull/120675 Enterprise-PR: https://github.com/odoo/enterprise/pull/40777 Upgrade-PR: https://github.com/odoo/upgrade/pull/4800 Task-Id: 3126178
The spreadsheet global filters panel now uses an updated selection component for choosing related records. This keeps the filter editing experience aligned with newer interface patterns while preserving existing behavior.
Original PR description
…ctor This commit replaces the use of RecordsSelector by MultiRecordSelector in the global filters side panel. Part of task-id 3433922
This refactoring simplifies how Odoo handles Discuss and messaging data behind the scenes, especially for conversations, notifications, and reactions. It should make the messaging code easier to maintain and extend, with little to no direct change for end users.
Original PR description
- Remove "channel" field in thread formatter. - Pass `type` for all persona formatters. - Remove some snake_case to camelCase conversions. - Add support for inverse fields in discuss JS models. https://github.com/odoo/odoo/pull/137750
Steps to reproduce: ------------------- - create a project; - set project visibility of project as 'Invited portal users and all internal users (public)'; - share that project with a portal user; - create a task in that project and set one of user in 'Assignee' of the task; - login in website as that portal user; - from kanban view of task, open a task. Issue: ------ The 'Assignees' are not visible in the opened form view. The `portal_user_name` field will be empty, with the result t
Original PR description
Steps to reproduce: ------------------- - create a project; - set project visibility of project as 'Invited portal users and all internal users (public)'; - share that project with a portal user; -…
Steps to reproduce:
-------------------
- create a project;
- set project visibility of project as 'Invited portal users and all internal users (public)';
- share that project with a portal user;
- create a task in that project and set one of user in 'Assignee' of the task;
- login in website as that portal user;
- from kanban view of task, open a task.
Issue:
------
The 'Assignees' are not visible in the opened form view. The `portal_user_name` field will be empty, with the result that no assignees to the task will be displayed in the project task form view.
Cause:
------
In the business flow, we first perform a `read` (with portal rights) which will set the value:
`project.task.user_ids: {project_id: ()}` in the cache.
After, we try to get `user_ids` inside the `_compute_portal_user_names` method.
The `insert_missing` method of the cache does not overwrite existing values in cache.
Solution:
---------
It is necessary to invalidate the cache for this field for the recordset to make sure the value is updated.
opw-3536187
Forward-Port-Of: odoo/odoo#138244
Forward-Port-Of: odoo/odoo#138122When pressing delete on "[a] b c" the result is " b c" instead of " b c". As result, text is rendered as "[]b c". The cause lies in `deleteRange`: it ensures trailing spaces remains visible, but does not take care of eventual invisible leading spaces. task-3143042 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#138105 Forward-Port-Of: odoo/odoo#128562
Original PR description
When pressing delete on "[a] b c" the result is " b c" instead of " b c". As result, text is rendered as "[]b c". The cause lies in `deleteRange`: it ensures trailing spaces remains visible, but does not take care of eventual invisible leading spaces. task-3143042 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#138105 Forward-Port-Of: odoo/odoo#128562
State code is shown instead of state name in company details for Thailand companies. opw-3493307 Forward-Port-Of: odoo/odoo#137291
Original PR description
State code is shown instead of state name in company details for Thailand companies. opw-3493307 Forward-Port-Of: odoo/odoo#137291
Description of the issue/feature this PR addresses: Fixes #134454 Current behavior before PR: The image_url widget was not working properly. The problem was in the Owl state update when changing records, because it was trying to update the state.value key, but the key that the view is using is state.src Desired behavior after PR is merged: After this change the image_url widget is working properly again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.c
Original PR description
Description of the issue/feature this PR addresses: Fixes #134454 Current behavior before PR: The image_url widget was not working properly. The problem was in the Owl state update when changing records, because it was trying to update the state.value key, but the key that the view is using is state.src Desired behavior after PR is merged: After this change the image_url widget is working properly again --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#136434 Forward-Port-Of: odoo/odoo#134477
This commit https://github.com/odoo/odoo/commit/a9980477048e4adffda4a71a72ff1cc8490637f9 wrongly impeached to generate a SEPA QR-code on the invoice when l10n_ch was installed and the company and customer were in Switzerland. This was too restrictive, and broke the previous behavior, which allowed manually enabling the SEPA QR invoice by invoice if necessary. We restore the old behavior with this commit. OPW 3516380 Forward-Port-Of: odoo/odoo#138265 Forward-Port-Of: odoo/odoo#137293
Original PR description
This commit https://github.com/odoo/odoo/commit/a9980477048e4adffda4a71a72ff1cc8490637f9 wrongly impeached to generate a SEPA QR-code on the invoice when l10n_ch was installed and the company and customer were in Switzerland. This was too restrictive, and broke the previous behavior, which allowed manually enabling the SEPA QR invoice by invoice if necessary. We restore the old behavior with this commit. OPW 3516380 Forward-Port-Of: odoo/odoo#138265 Forward-Port-Of: odoo/odoo#137293
Before this commit, there was a huge gap between Uom and duration in time off wizard. In this commit, moved the Uom closer to duration. task-3482508 Forward-Port-Of: odoo/odoo#134451
Original PR description
Before this commit, there was a huge gap between Uom and duration in time off wizard. In this commit, moved the Uom closer to duration. task-3482508 Forward-Port-Of: odoo/odoo#134451
When l10n_dk is installed, the tests on the peppol fields (EAS/Endpoint) fail. This is due to the `_compute_company_registry` being overriden, which will assign the VAT number as the company_registry. To fix this, we simply use another country that currently hasn't any loca module in Odoo (so we ensure the VAT/company_registry will not be affected in any unexpected way). Linked to runbot error 25700. Forward-Port-Of: odoo/odoo#138546
Original PR description
When l10n_dk is installed, the tests on the peppol fields (EAS/Endpoint) fail. This is due to the `_compute_company_registry` being overriden, which will assign the VAT number as the company_registry. To fix this, we simply use another country that currently hasn't any loca module in Odoo (so we ensure the VAT/company_registry will not be affected in any unexpected way). Linked to runbot error 25700. Forward-Port-Of: odoo/odoo#138546
Description of the issue/feature this PR addresses: Current behavior before PR: https://github.com/odoo/odoo/assets/43790414/81bcee85-8a36-4c63-9110-b6e8cb604532 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#136234
Original PR description
Description of the issue/feature this PR addresses: Current behavior before PR: https://github.com/odoo/odoo/assets/43790414/81bcee85-8a36-4c63-9110-b6e8cb604532 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#136234
This pull request appears to introduce early proof-of-concept changes for the website product configurator used in online sales. The available information is limited, but the affected area relates to how product options are handled on the website storefront.
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
Before this commit: When we click on 'send' and 'log,' the left border disappears for a short while. After this commit: The left border on the 'send' and 'log' buttons is visible even after clicking on them. task-3549138 Forward-Port-Of: odoo/odoo#138337
Original PR description
Before this commit: When we click on 'send' and 'log,' the left border disappears for a short while. After this commit: The left border on the 'send' and 'log' buttons is visible even after clicking on them. task-3549138 Forward-Port-Of: odoo/odoo#138337
Steps to reproduce: - Activate the receipts in the Accounting Settings - Go to Vendors -> Receipts - Upload a file -> Error "The journal in which to upload the invoice is not specified." opw-3544292 Forward-Port-Of: odoo/odoo#138569 Forward-Port-Of: odoo/odoo#138530
Original PR description
Steps to reproduce: - Activate the receipts in the Accounting Settings - Go to Vendors -> Receipts - Upload a file -> Error "The journal in which to upload the invoice is not specified." opw-3544292 Forward-Port-Of: odoo/odoo#138569 Forward-Port-Of: odoo/odoo#138530
task-3542892 Requires: - https://github.com/odoo/odoo/pull/136917 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137976
Original PR description
task-3542892 Requires: - https://github.com/odoo/odoo/pull/136917 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#137976
Forward-Port-Of: odoo/odoo#138578
Original PR description
Forward-Port-Of: odoo/odoo#138578
Task: #3471557 Current behavior before PR: Previously, a user could be a recruiter but not an interviewer. With the new changes, the recruiter role is also an interviewer. On the job positions kanban view, the functionality of the "X to Recruit" link depended on whether a user was an interviewer or not. Desired behavior after PR is merged: Now, since an admin is also an interviewer, they only have interviewer access and can only see the application list, which is not desired. In t
Original PR description
Task: #3471557 Current behavior before PR: Previously, a user could be a recruiter but not an interviewer. With the new changes, the recruiter role is also an interviewer. On the job positions kanban view, the functionality of the "X to Recruit" link depended on whether a user was an interviewer or not. Desired behavior after PR is merged: Now, since an admin is also an interviewer, they only have interviewer access and can only see the application list, which is not desired. In this commit, we've changed the condition from being an interviewer to being a recruiter. Consequently, the admin can navigate to the job position edit form while interviewers only see the application list. Users with neither role won't see the kanban view at all, so there's no concern regarding that. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133060
This commit fixes the `website_livechat_chatbot_flow_tour` that was failing in a nondeterministc way. This is due to the tour sometimes taking more than `60` seconds which is the default timeout for python tours. Most of the time is consumed waiting for the user to finish its multiline input. This issue is solved by shortening the delay to consider the multiline input as done: from `10`s to `500`ms. fixes runbot-24557 Forward-Port-Of: odoo/odoo#138582
Original PR description
This commit fixes the `website_livechat_chatbot_flow_tour` that was failing in a nondeterministc way. This is due to the tour sometimes taking more than `60` seconds which is the default timeout for python tours. Most of the time is consumed waiting for the user to finish its multiline input. This issue is solved by shortening the delay to consider the multiline input as done: from `10`s to `500`ms. fixes runbot-24557 Forward-Port-Of: odoo/odoo#138582
When a user tries to import the CSV file with an empty text delimiter or more than one character in text delimiter at that time the traceback will be generated. Steps to reproduce: - Install Accounting module. - Click on import in the bank statement. - Select any CSV file for the bank statement line or can download and import this file - https://drive.google.com/file/d/1lnScw4RN6T01pOkyNON8vvb3FQOPiy1O/view?usp=drive_link - Enter empty text delimiter or more than one character in text del
Original PR description
When a user tries to import the CSV file with an empty text delimiter or more than one character in text delimiter at that time the traceback will be generated. Steps to reproduce: - Install…
When a user tries to import the CSV file with an empty text delimiter or more than one character in text delimiter at that time the traceback will be generated.
Steps to reproduce:
- Install Accounting module.
- Click on import in the bank statement.
- Select any CSV file for the bank statement line or can download and import this file - https://drive.google.com/file/d/1lnScw4RN6T01pOkyNON8vvb3FQOPiy1O/view?usp=drive_link
- Enter empty text delimiter or more than one character in text delimiter.
- Click on the test or Import button.
- Error will occur.
Error:
```
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1938, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 30, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 461, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "odoo/api.py", line 448, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "addons/base_import/models/base_import.py", line 1311, in execute_import
input_file_data, import_fields = self._convert_import_data(fields, options)
File "addons/base_import/models/base_import.py", line 1048, in _convert_import_data
_file_length, rows_to_import = self._read_file(options)
File "addons/base_import/models/base_import.py", line 385, in _read_file
raise ValueError(_("Unsupported file format \"{}\", import only supports CSV, ODS, XLS and XLSX").format(self.file_type))
ValueError: Unsupported file format "text/csv", import only supports CSV, ODS, XLS and XLSX
```
The issue is occurring because text delimiter (options['quoting']) is used as quotechar while reading csv file and quotechar is always a single character string. Check here -
https://github.com/odoo/odoo/blob/0fde590bee71618f78e5f954349530bd007c62cf/addons/base_import/models/base_import.py#L494-L497
To solve this issue the length of text delimiter has been checked and if it is not equal to one
then a warning is given to the user.
sentry-4390461991
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#137923
Forward-Port-Of: odoo/odoo#135590Current behavior: When trying to print the bill in PoS restaurant from a mobile device, the bill appears completely blank. Steps to reproduce: - Open Odoo on mobile device - Go to PoS restaurant - Create an order - Click on the "Bill" button - Click on the "Print" button - The bill is completely blank This is happening because on mobile after clicking on the "Print" button the pos directly return to the order screen. What happens when you do `window.print()` is you basically do a sc
Original PR description
Current behavior: When trying to print the bill in PoS restaurant from a mobile device, the bill appears completely blank. Steps to reproduce: - Open Odoo on mobile device - Go to PoS restaurant - Create an order - Click on the "Bill" button - Click on the "Print" button - The bill is completely blank This is happening because on mobile after clicking on the "Print" button the pos directly return to the order screen. What happens when you do `window.print()` is you basically do a screenshot of the screen with some specific CSS rules. But on mobile, we go back too fast on the order screen and the screenshot is empty. opw-3507918 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#138197 Forward-Port-Of: odoo/odoo#137398
- [FIX] account_reports: journal filter sub companies When having a company with branch(es), the journal filter appears 'n' number of times based on the number of branches. opw-3518440 - [REF] account_reports: cleaning _init_options_journals Forward-Port-Of: odoo/enterprise#48522
Original PR description
- [FIX] account_reports: journal filter sub companies When having a company with branch(es), the journal filter appears 'n' number of times based on the number of branches. opw-3518440 - [REF] account_reports: cleaning _init_options_journals Forward-Port-Of: odoo/enterprise#48522
This commit updates the `mrp_display` icon to maintain consistency with other app icons and to keep the simple shape concept. Requires: - https://github.com/odoo/odoo/pull/136917 - https://github.com/odoo/enterprise/pull/48064 task-3072562 Forward-Port-Of: odoo/enterprise#48071
Original PR description
This commit updates the `mrp_display` icon to maintain consistency with other app icons and to keep the simple shape concept. Requires: - https://github.com/odoo/odoo/pull/136917 - https://github.com/odoo/enterprise/pull/48064 task-3072562 Forward-Port-Of: odoo/enterprise#48071
Change replaces word "CV" with word "Resume" in error message telling that you don't have enough credits to digitize document in application task-3539236 Forward-Port-Of: odoo/enterprise#48461
Original PR description
Change replaces word "CV" with word "Resume" in error message telling that you don't have enough credits to digitize document in application task-3539236 Forward-Port-Of: odoo/enterprise#48461
Steps to reproduce: - Set up operation type receipts in 2 steps: receive and put in stock - Go to operation types > internal transfers > settings set up as entire packages are moved in the barcode section: set up mandatory scan of destination location after each product - Configure product packaging - Create a planned receipt, put in pack and validate - Go to the barcode app and open the new internal transfer created - Scan product package and click validate - No destination location was
Original PR description
Steps to reproduce: - Set up operation type receipts in 2 steps: receive and put in stock - Go to operation types > internal transfers > settings set up as entire packages are moved in the barcode section: set up mandatory scan of destination location after each product - Configure product packaging - Create a planned receipt, put in pack and validate - Go to the barcode app and open the new internal transfer created - Scan product package and click validate - No destination location was required Bug: mandatory scan destination is only checked if the line is selected Fix: select the package line we scaning its barcode opw-3482415 Forward-Port-Of: odoo/enterprise#48077
[Context] Intrastat Country is not not displayed while vieweing/editing Bill. Showing it improves UX. [Reproduce] - Run odoo with account_intrastat,l10n_be_intrastat - go to: Accounting/Vendors/Bills/New - on Invoice_Lines tab click on "more" - observe issue: There is NO column called "Product Country (intrastat_product_origin_country_id)" opw-3412222 Forward-Port-Of: odoo/enterprise#48552
Original PR description
[Context] Intrastat Country is not not displayed while vieweing/editing Bill. Showing it improves UX. [Reproduce] - Run odoo with account_intrastat,l10n_be_intrastat - go to: Accounting/Vendors/Bills/New - on Invoice_Lines tab click on "more" - observe issue: There is NO column called "Product Country (intrastat_product_origin_country_id)" opw-3412222 Forward-Port-Of: odoo/enterprise#48552
Fixing various issue with the Register Production operation in shop floor: - tracebacks - correctly showing quantity production in progress in workcenter view - generating serial number when one already exists - updating component consumption on MO when updating production quantity Adding features: - lot number quickcreate button for lot products on the workcenter view - new button for lot/serial quick creation on the Register Production popup Removing feature: - Continue Production
Original PR description
Fixing various issue with the Register Production operation in shop floor: - tracebacks - correctly showing quantity production in progress in workcenter view - generating serial number when one already exists - updating component consumption on MO when updating production quantity Adding features: - lot number quickcreate button for lot products on the workcenter view - new button for lot/serial quick creation on the Register Production popup Removing feature: - Continue Production button task 3488228 Forward-Port-Of: odoo/enterprise#47093
With an MX company setup Go to Trial balance Hit 'PDF' button Issue: traceback will raise It occurs because a date field is left in the options dict and it cannot be serialized as json opw-3541165 Forward-Port-Of: odoo/enterprise#48814
Original PR description
With an MX company setup Go to Trial balance Hit 'PDF' button Issue: traceback will raise It occurs because a date field is left in the options dict and it cannot be serialized as json opw-3541165 Forward-Port-Of: odoo/enterprise#48814
Currently when we refund a payslip, instead of subtracting to the paid amount of salary attachments we add to it task-3477871 Forward-Port-Of: odoo/enterprise#46232
Original PR description
Currently when we refund a payslip, instead of subtracting to the paid amount of salary attachments we add to it task-3477871 Forward-Port-Of: odoo/enterprise#46232
When enterprise is installed as a package, importing this odoo.addons.hr_expense_extract will raise an ImportError due to this invalid import. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48672
Original PR description
When enterprise is installed as a package, importing this odoo.addons.hr_expense_extract will raise an ImportError due to this invalid import. @moduon MT-1075 Forward-Port-Of: odoo/enterprise#48672
To reproduce ============ - on any app open studio - create blank report - try to add a field => client Error Problem ======= when trying to add a field, we look for the node containing the context, in this case it's not found which leads to the Error Solution ======== inject the context in node with `t-call` attribute opw-3499802 Forward-Port-Of: odoo/enterprise#47406
Original PR description
To reproduce ============ - on any app open studio - create blank report - try to add a field => client Error Problem ======= when trying to add a field, we look for the node containing the context, in this case it's not found which leads to the Error Solution ======== inject the context in node with `t-call` attribute opw-3499802 Forward-Port-Of: odoo/enterprise#47406
Following a conversion of the report to owl, the Expected date picker seems to not have any effect anymore. This fix will bring back the expected behaviour (update the date, only for the report) as it was working before. As a bonus, it will also pre-populate the datepicker with the date currently set on the report line. task id # 3547268 Forward-Port-Of: odoo/enterprise#48881 Forward-Port-Of: odoo/enterprise#48675
Original PR description
Following a conversion of the report to owl, the Expected date picker seems to not have any effect anymore. This fix will bring back the expected behaviour (update the date, only for the report) as it was working before. As a bonus, it will also pre-populate the datepicker with the date currently set on the report line. task id # 3547268 Forward-Port-Of: odoo/enterprise#48881 Forward-Port-Of: odoo/enterprise#48675