Thursday, March 30, 2023
63 changes · master
Enhancements to existing features
Sales reports can now identify the related point-of-sale order when the report entry comes from POS. This improves traceability between reporting data and the original transaction, while leaving regular sales order report entries unchanged.
Original PR description
Steps to reproduce: Solution: Add a field `pos_order_id` (which is null when the `sale.report` comes from a `sale.order`) Problem: `sale.report` doesn't have any field linking it to its `pos.order` opw-3067700
Project sample data now includes additional business context such as company, customer, and assigned users. This helps teams test and demonstrate project workflows with more realistic information.
Original PR description
In this commit, we added extra fields: company, partner, users task-3082068
Live survey presenters now see a short label next to the forward arrow indicating what content comes next. This helps speakers prepare their transition and run survey presentations more smoothly.
Original PR description
Current behavior before PR: While presenting a survey, sometimes it is good to know what content will be next. However, this is not possible currently. Desired behavior after PR is merged: Ease the job of the live speaker by letting them know in advance what the next slide will be about? Added a label next to the arrow icon based on what the next slide will be. Task: https://www.odoo.com/web#id=2791000&cids=2&menu_id=4720&action=4043&model=project.task&view_type=form -- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
CRM users can now access cancelled quotations linked to a lead from the lead’s quotation shortcut, giving them a more complete view of past sales activity. Cancelled quotes remain excluded from the visible quotation count and only appear when users remove the standard quotations filter, so regular pipeline figures stay unchanged.
Original PR description
In order to be able to see all quotes linked to a crm lead, we now allow cancelled quotes in the domain of leads when using the stat button. The cancelled ones are not shown until the 'quotations' filter is removed in the search. Also, cancelled ones are not accounted for in the counter. To do that, we create a specific domain method for the action, and override it in sale_renting_crm to exclude rental orders. The _get_lead_quotation_domain is not directly modified as one would also need to exclude cancelled quotes in _compute_sale_data. Also, we cannot add an expression.OR method in the action code, because the domain is extended in sale_renting_crm and the domain order of operation could include cancelled rental orders, which is not desired. Task-3237734 ENT PR https://github.com/odoo/enterprise/pull/38957
This update adds a way to quickly generate sample Discuss channels, members, and messages. It helps teams test and demonstrate Discuss with realistic data more easily, without affecting day-to-day users.
Original PR description
This PR add a populate command for models `mail.channel`, `mail.channel.member` and `mail.message`.
It will only create channel of type `channel` and `group`.
I used this bash function to quickly delete/create a database and populate it.
```bash
# Quickly drop the current db (it use the git branch name as database name) and
# create a new one that will be populated.
# usage: odoo-populate model_name size
odoo-populate() {
dropdb $(git branch --show-current)
odoo -i mail --stop-after-init
./odoo-bin populate --models $1 --size $2 -d $(git branch --show-current) --addons-path=~/projets/pro/odoo/addons,~/projets/pro/enterprise --c ~/projets/pro/.odoorc
}
```This update makes it easier for administrators and developers to edit action helper text by enabling a raw HTML editing option. It improves maintenance of on-screen guidance without changing day-to-day business workflows.
Original PR description
When editing an action using the dev options, one may need to update the action helper of the current action. Currently, the html field used to edit the action helper does not have the "codeview" option. As a result, the raw html of the action helper can not be edited easily. To solve that problem, this commit will simply add the "codeview" option on the html field. task-3252414 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Sales order fields now show clearer placeholder text to indicate that users can type with the keyboard to search. This small usability improvement helps users find and select related records more easily while entering sales orders.
Original PR description
make clear for the user that the keyboard can be used for the search task-3175239 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The project burndown chart search options have been aligned more closely with the standard task search views. This makes reporting filters more consistent and useful for users analyzing project progress.
Original PR description
This commit removes some field from the burndown chart search view that were previously removed from the task search views. It also adds a few fields present in the task search views but missing from the burndown chart. Enterprise: https://github.com/odoo/enterprise/pull/36804 Task-3142077
Clicking charts or pivot tables in Project reporting will no longer open the underlying form or list views. This keeps reporting focused on analysis and avoids accidentally navigating users away from the report.
Original PR description
Before this commit open the form/list view from reporting views when clicking on the graph and pivot. This commit prevents the opening of the form/list view from reporting. task-3166747
Field service burndown chart reporting can now include worksheet template information in its search options. This helps teams analyze progress by the type of worksheet used, making operational reporting more flexible and easier to segment.
Original PR description
This PR adds the worksheet template field to the burndown chart search view Community: https://github.com/odoo/odoo/pull/112194 Task-3142077
Field Service reporting charts and pivot tables now keep users within the reporting view when they click data points. This reduces accidental navigation and helps users stay focused on analyzing reports rather than opening individual record lists or forms.
Original PR description
Before this commit open the form/list view from reporting views when clicking on the graph and pivot. This commit prevents the opening of the form/list view from reporting. task-3166747
Rental quotations created from CRM leads now use the salesperson assigned to the lead when one is set. This keeps sales reporting aligned with the person responsible for the opportunity instead of defaulting to another salesperson from the customer record.
Original PR description
In order to match the logic of sale_crm, we want the salesperson set on the lead to be propagated on the quotation, so that the reporting correctly accounts for them. The user set on the lead is added to context for both actions leading to the rental quotations. It will be prioritized as the salesperson on the newly created quotation, if any. Note: we want to add it as a default user_id only if set, otherwise user_id will be False by default in the newly created quotation. Before, the next salesperson in line inherited the quotation, i.e. the one set on the partner_id. (For more details on order of user_id based on the partner_id, check the _compute_user_id method in the sale.order model) Task-2612207
Users can now leave extracted field selections empty when processing documents. This reduces unnecessary validation friction across invoice, purchase, expense, recruitment, and extraction workflows when no suitable value is available.
Original PR description
Before this commit, `selected_value` needed to be set with a content. This commit allows `selected_value` that are `None`. task-3109453
Sales teams can now see cancelled quotes linked to a CRM lead while keeping rental orders out of that quote view. This makes lead follow-up clearer by showing relevant quote history without mixing in rental-specific orders.
Original PR description
In this part of the task, we extend the new function returning the domain of the action leading from crm lead to quotes, to exclude rental orders. Task-3237734 COM PR https://github.com/odoo/odoo/pull/115864
The Field Service and Project apps now include generated sample data to make demonstrations, testing, and onboarding easier. This helps teams evaluate workflows with realistic records without having to create them manually.
Original PR description
This commit add populate for FSM app. task-3082068
This update makes it easier for payroll localizations to use a different payslip email template. It reduces the need for deeper custom changes when adapting payslip emails for specific business or country requirements.
Original PR description
Useful improvement for payroll module localization It will be nice to have a way to change payslip email template without rewriting all `_generate_pdf` method
Resolved issues and error corrections
A stale internal comment in the Mail module was removed after a related naming change made it irrelevant. This has no effect on how users work in Odoo, but keeps the codebase clearer for future maintenance.
Original PR description
Since the rename of partnerRoot to odoobot (https://github.com/odoo/odoo/pull/116823), this comment is now irrelevant.
Code cleanup and technical improvements
This update reorganizes how Odoo Mail tracks real-time communication channels so it better matches the underlying browser technology. The change is internal and should make future maintenance of voice or video communication features more reliable without changing day-to-day user workflows.
Original PR description
This commit puts the rtcDataChannels field on RtcPeerConnection which is closer to the webRtc implementation.
Miscellaneous changes
Before this commit, the invoices were marked as sent only when sending them via email or post. After, it is mark as sent once the PDF is being generated via the send&print wizard. Rational, we want to consider a generated invoice via the send&print wizard as being sent as it can be printed/downloaded. This also makes the invoice available in the portal. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116698
Original PR description
Before this commit, the invoices were marked as sent only when sending them via email or post. After, it is mark as sent once the PDF is being generated via the send&print wizard. Rational, we want to consider a generated invoice via the send&print wizard as being sent as it can be printed/downloaded. This also makes the invoice available in the portal. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116698
This fix corrects the alignment of the selected-count button in list-based selection dialogs, including the plan Gantt view. It improves visual consistency and makes dialog actions look cleaner for users without changing functionality.
Original PR description
Description of the issue/feature this PR addresses: The footer 'selected count' button in the plan gantt view wasn't aligned, but it's the case for every dialogbox where you can select many records, simply removed a forced `bottom-margin` on the container Task-3249673 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Notification messages now correctly show the read more/read less option when their content is long. This makes longer messages easier to scan and avoids users missing hidden content controls.
Original PR description
Read more/less requires content being `t-ref="body". It was not properly set for messages of type notification, thus skipping the read more/less insertion in the content.
This fixes an issue in the Mail app where administrators could no longer disable automatic link previews. The setting now works as intended, giving businesses control over whether shared links generate previews in conversations.
Original PR description
Before this PR it was not possible to disable the link preview by setting `mail.link_preview_throttle` to 0. This feature was lost in the refactoring. This PR reintroduce this feature.
Users can now copy text from chat conversations with Ctrl+C even when a chat window is open from the home menu. This fixes a frustrating issue where the home menu captured the keyboard shortcut instead of the chat, making message copying unreliable.
Original PR description
Before this commit, when in home menu with a chat window, it was not possible to copy content in conversation with CTRL-C. This was due to keydown event being intercepted by the hidden home menu input. This commit solves the issue by not propagating keydown events above chat window, so it's not intercepted by the home menu for his input.
Several automated tests were adjusted to keep them aligned with the new overlay service behavior. This helps maintain reliability across affected Odoo apps without changing business functionality for end users.
Original PR description
* account_invoice_extract, knowledge, project_forecast, web_grid, web_studio This commit adapts some tests after the introduction of the overlay service. task id: 3233266
This change simplifies the shared kanban view framework by removing a rarely used grouping option from the general web module. The CRM forecast view keeps the same behavior through its own dedicated logic, reducing complexity without changing the expected business 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
Spreadsheet-related data handling has been reorganized so shared spreadsheet fields and import/export logic live in one common foundation. This internal cleanup should make spreadsheet dashboards easier to maintain and extend without changing day-to-day user workflows.
Original PR description
This pr refactors the current model structure of spreadsheet-related module. Data fields are integrated into an abstract model `spreadsheet.mixin` and all sub-models are inherited from it. This way we can group all decode/encode logics into one place. task [3222572](https://www.odoo.com/web#id=3222572&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The point of sale hardware connection code was updated to use a newer internal structure and clearer naming. This helps reduce reliance on older framework parts, making future maintenance and upgrades easier without changing cashier-facing functionality.
Original PR description
*: pos_epson_printer, pos_restaurant, pos_six This commit continues the work of reducing the reliance of the pos modules on legacy features from the JS framework, such as core.Class and mixins, by converting the ProxyDevice class to ES6 (and renaming it HardwareProxy, to avoid confusion with DeviceProxy from iot). It also makes it available as a service in the new environment so that we can hopefully get rid of the legacy environment in the near future.
This change reorganizes spreadsheet code so Odoo uses its spreadsheet library through the same module path as an external package. It mainly improves developer tooling, making autocomplete and type checking easier, with no expected direct change for business users.
Original PR description
Using o-spreadsheet features and functions is done using the same import module as if it was installed from npm. Additionaly, by adding the library as dev dependency in package.json[1], IDEs can now leverage Typescript types for autocomplete and type checking. The "alpha" release tag is always the lastest master version. [1] enable web tooling `addons/web/tooling/enable.sh` ;) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update changes how Odoo’s spreadsheet features connect to the shared spreadsheet library, aligning it with a standard package-style setup. It should not visibly change day-to-day use, but it helps developers work faster with better code assistance and type checking, improving long-term maintainability.
Original PR description
Using o-spreadsheet features and functions is done using the same import module as if it was installed from npm. Additionaly, by adding the library as dev dependency in package.json[1], IDEs can now leverage Typescript types for autocomplete and type checking. The "alpha" release tag is always the lastest master version. [1] enable web tooling `addons/web/tooling/enable.sh` ;)
Spreadsheet-related data handling has been reorganized so shared spreadsheet information is managed in one common structure. This internal cleanup should make spreadsheet templates, documents, dashboards, and related accounting or CRM spreadsheet features easier to maintain and evolve with less duplicated logic.
Original PR description
This PR refactors the current model structure of spreadsheet-related module. Data fields are integrated into an abstract model `spreadsheet.mixin` and all sub-models are inherited from it. This way we can group all decode/encode logics into one place. task [3222572](https://www.odoo.com/web#id=3222572&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update aligns Point of Sale IoT and Swedish fiscal device integrations with recent internal changes in the core Point of Sale system. It helps keep connected hardware features maintainable and compatible without changing the expected business workflow.
Original PR description
The corresponding community PR converts point_of_sale's ProxyDevice to an ES6 class and removes the JobQueue as it is no longer needed, this commit adapts the overrides on that class to use patch instead of the legacy include system.
Use case -------- If the a user has partner_share set to NULL not to 'false' he will not receive any notification Problem -------- The orm consider False and NULL value as False for boolean field, the query that fetch the recipient data should have a consistent behavior --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116986 Forward-Port-Of: odoo/odoo#115329
Original PR description
Use case -------- If the a user has partner_share set to NULL not to 'false' he will not receive any notification Problem -------- The orm consider False and NULL value as False for boolean field, the query that fetch the recipient data should have a consistent behavior --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116986 Forward-Port-Of: odoo/odoo#115329
Fixes an issue with the tax total computation that would happen if the tax of type group has the same tax_group_id as one of the children taxes. This would lead to a tax total computation where the other child of the tax will be summed into the child sharing the same tax group as the parent. As it is no longer possible to set a tax group id on a tax of type group, we do not need to take it into account when computing the tax total anymore. To reproduce before the fix: - Make a bill wit
Original PR description
Fixes an issue with the tax total computation that would happen if the tax of type group has the same tax_group_id as one of the children taxes. This would lead to a tax total computation where the…
Fixes an issue with the tax total computation that would happen if the tax of type group has the same tax_group_id as one of the children taxes.
This would lead to a tax total computation where the other child of the tax will be summed into the child sharing the same tax group as the parent.
As it is no longer possible to set a tax group id on a tax of type group, we do not need to take it into account when computing the tax total anymore.
To reproduce before the fix:
- Make a bill with the Australian tax au_tax_purchase_10_service_tpar_no_abn.
- Save.
- You will notice that the amount in the tax total widget for the tax
"GST 10%" is wrong as it takes into account the amount of the other
tax.
After the fix, the amount will not be wrongly grouped anymore. And the tax total will correctly represent what is in the line_ids.
Task id # 3252271
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#116946**Description of the issue/feature this PR addresses:** Before this commit, no default date filter was set on the report. For older databases, it results in a heavy query. **Current behavior before PR:** When you click on sale report menu, sales order are fetched since the beginning of time. **Desired behavior after PR is merged:** Only last 365 days sale orders are displayed. opw-3134913 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Original PR description
**Description of the issue/feature this PR addresses:** Before this commit, no default date filter was set on the report. For older databases, it results in a heavy query. **Current behavior before PR:** When you click on sale report menu, sales order are fetched since the beginning of time. **Desired behavior after PR is merged:** Only last 365 days sale orders are displayed. opw-3134913 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#115113
Following errors in previous export Forward-Port-Of: odoo/odoo#116886
Original PR description
Following errors in previous export Forward-Port-Of: odoo/odoo#116886
Quotation templates feature simplifies creating Sale Order on backend. To make the process even faster, Odoo allows set up Default Quotation Template, which is applied automatically on every new quotation. However, it doesn't make sense to apply quotation templates for orders created by eCommerce users. Particularly, it leads to an error if quotation template has recurrence. Fix by ignoring default quotation template on eCommerce sale orders. STEPS 1. Create a sale template with a recur
Original PR description
Quotation templates feature simplifies creating Sale Order on backend. To make the process even faster, Odoo allows set up Default Quotation Template, which is applied automatically on every new…
Quotation templates feature simplifies creating Sale Order on backend. To make the process even faster, Odoo allows set up Default Quotation Template, which is applied automatically on every new quotation. However, it doesn't make sense to apply quotation templates for orders created by eCommerce users. Particularly, it leads to an error if quotation template has recurrence. Fix by ignoring default quotation template on eCommerce sale orders. STEPS 1. Create a sale template with a recurrence 2. Set this sale template as the default sale template in settings 3. Go to /shop page and add any product to cart that is not recurring -> The sales order will be created with the default template's recurrence 4. Try to pay & confirm the order -> Error when trying to make an order with recurrence and no recurring product opw-3115232 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#116795
Install german localization Select DIN5008 for the document layout Print an invoice After 5030a0c19949ff1db24c88fb0b5df60ab84dd1ef In the report header information about the partner are replaced by company info opw-3208615 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#114181
Original PR description
Install german localization Select DIN5008 for the document layout Print an invoice After 5030a0c19949ff1db24c88fb0b5df60ab84dd1ef In the report header information about the partner are replaced by company info opw-3208615 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#114181
Reproduction: 1. Switch to French, create a /heading 1, and input nothing 2. The placeholder “Heading 1” is not translated Fix: add translate function around the terms and manually add the translations in pot Note: since OdooEditor.js is under web_editor/static/lib/web-editor, only the js code under /static/src/ is considered for translation export. The translation is manually added with specific path. In Odoo 16, the path is changed to /static/src/ and translations can be exported corre
Original PR description
Reproduction: 1. Switch to French, create a /heading 1, and input nothing 2. The placeholder “Heading 1” is not translated Fix: add translate function around the terms and manually add the translations in pot Note: since OdooEditor.js is under web_editor/static/lib/web-editor, only the js code under /static/src/ is considered for translation export. The translation is manually added with specific path. In Odoo 16, the path is changed to /static/src/ and translations can be exported correctly. The translation code paths added here should be changed in Odoo 16 Related PR adding translations: https://github.com/odoo/odoo/pull/93272 opw-3224482 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116956 Forward-Port-Of: odoo/odoo#115708
Before this commit, in the form view dialog of an x2m, resequencing an x2m will cause a crash. Why: The basic_relatonal_model passes the wrong view type to the basic_model when resequencing. In this case, we want to use the form view. How to reproduce: - Going into a form view with an editable x2m - Open a record of the x2m in a form view dialog with an x2m containing a handle field - Change the order of the records using the handle field (resequence) Before this commit: A
Original PR description
Before this commit, in the form view dialog of an x2m, resequencing an
x2m will cause a crash.
Why:
The basic_relatonal_model passes the wrong view type to the basic_model
when resequencing. In this case, we want to use the form view.
How to reproduce:
- Going into a form view with an editable x2m
- Open a record of the x2m in a form view dialog with an x2m containing
a handle field
- Change the order of the records using the handle field (resequence)
Before this commit:
A crash is displayed
After this commit:
The records have been resequenced correctly.
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#116561Steps to reproduce ================== - Access a company with no records in transfer model (IT Company, SE Company, etc.) - Go to transfers menu - Click Studio - Click form view button - Click view tab on the left - Click Show invisible elements - Error "The requested change caused an error in the view. It could be because a field was deleted, but still used somewhere else" Cause of the issue ================== Since we are not editing an existing record, the PopoverWidgetField
Original PR description
Steps to reproduce ================== - Access a company with no records in transfer model (IT Company, SE Company, etc.) - Go to transfers menu - Click Studio - Click form view button - Click view tab on the left - Click Show invisible elements - Error "The requested change caused an error in the view. It could be because a field was deleted, but still used somewhere else" Cause of the issue ================== Since we are not editing an existing record, the PopoverWidgetField component is loaded without a field value (it is an empty string). This means that JSON.parse will fail opw-3249161 Forward-Port-Of: odoo/odoo#117060
before this commit, open a pos session form, click on cash register smart button and if you click on view button, traceback is shown. * open a pos session * click cash register smart button * click view button under ID column * traceback is shown after the commit, on clicking view button traceback wont be shown and view will get opened. close: https://github.com/odoo/odoo/issues/111560 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forwa
Original PR description
before this commit, open a pos session form, click on cash register smart button and if you click on view button, traceback is shown. * open a pos session * click cash register smart button * click view button under ID column * traceback is shown after the commit, on clicking view button traceback wont be shown and view will get opened. close: https://github.com/odoo/odoo/issues/111560 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116627
Settings>Accounting, activate analytics Create an Analytic Plan: - Default Applicability: Optional - Add 1 applicability line: - Domain: Vendor Bill - Product Category: All / Saleable / Office Furniture - Applicability: Mandatory Create a vendor bill, fill partner, billdate and create a line without product Save and Confirm Action will be blocked with message: "One or more lines require a 100% analytic distribution." This should not occur as the mandatory applicability shou
Original PR description
Settings>Accounting, activate analytics
Create an Analytic Plan:
- Default Applicability: Optional
- Add 1 applicability line:
- Domain: Vendor Bill
- Product Category: All / Saleable / Office Furniture - Applicability: Mandatory Create a vendor bill, fill partner, billdate and create a line without product
Save and Confirm
Action will be blocked with message:
"One or more lines require a 100% analytic distribution." This should not occur as the mandatory applicability should not match the bill
opw-3189829
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#114658## Current behaviour The project profitability panel doesn't take into account the AA distribution of the project's AA for solo invoices and bills. ## Expected behaviour It should take the distribution set into account. ## Steps to reproduce - Install Accounting, Sales, Project, Purchase - Settings > Activate AA - Create a new project with a new AA for it. - Create a new bill or invoice, on the line set the 2 AA, one with the project's AA with some X%, and the other AA is irrelevant
Original PR description
## Current behaviour The project profitability panel doesn't take into account the AA distribution of the project's AA for solo invoices and bills. ## Expected behaviour It should take the…
## Current behaviour The project profitability panel doesn't take into account the AA distribution of the project's AA for solo invoices and bills. ## Expected behaviour It should take the distribution set into account. ## Steps to reproduce - Install Accounting, Sales, Project, Purchase - Settings > Activate AA - Create a new project with a new AA for it. - Create a new bill or invoice, on the line set the 2 AA, one with the project's AA with some X%, and the other AA is irrelevant (the sum of all AA on the line should be 100%) - Confirm the invoice/bill - Go to the project profitability report (project updates), see that we have 100% of the line value that contributed, when it should have. ## Reason for the problem The contribution of the AA was not taken into account when computing the project profitability for solo invoices/bills (invoices/bills w/o SO/PO respectively) ## Fix Additionally get the analytic_distribution when fetch the account_move_lines to compute the project's profitability. ## Affected versions - 16.0 - saas-16.1 - saas-16.2 - master --- opw-3246199 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#117094
The aimf of this commit is to make the query of a specific tag with a specific sign easier by avoiding all the filtering in `expression._get_tax_tags().filtered(lambda t: t.tax_negate)` With this commit, we just leverage the existing filtering on domain to only get the desired tag. no-task Forward-Port-Of: odoo/odoo#117053 Forward-Port-Of: odoo/odoo#116543
Original PR description
The aimf of this commit is to make the query of a specific tag with a specific sign easier by avoiding all the filtering in `expression._get_tax_tags().filtered(lambda t: t.tax_negate)` With this commit, we just leverage the existing filtering on domain to only get the desired tag. no-task Forward-Port-Of: odoo/odoo#117053 Forward-Port-Of: odoo/odoo#116543
When importing a vendor bill/invoice, a matching partner is searched. If no match is found, a new partner will created. task-3141337 same as https://github.com/odoo/odoo/pull/112412 but we now can use `_run_vat_test` instead of the try except in 14.0 Forward-Port-Of: odoo/odoo#117075 Forward-Port-Of: odoo/odoo#114329
Original PR description
When importing a vendor bill/invoice, a matching partner is searched. If no match is found, a new partner will created. task-3141337 same as https://github.com/odoo/odoo/pull/112412 but we now can use `_run_vat_test` instead of the try except in 14.0 Forward-Port-Of: odoo/odoo#117075 Forward-Port-Of: odoo/odoo#114329
Steps to reproduce: - Get Marketing Automation module and mass_mailing module - Go to Marketing Automation > Configuration > Favorite filters - Create a new filter with for example, Recipient Model as Contact and the domain to be 'Name contains test' - Now we go back to Campaigns (Inside Marketing Automation) and create a new campaign with the filter that we have just created. - Create a new activity for this campaign with any mail template and save it. - Now just pres "start" to start t
Original PR description
Steps to reproduce: - Get Marketing Automation module and mass_mailing module - Go to Marketing Automation > Configuration > Favorite filters - Create a new filter with for example, Recipient Model as Contact and the domain to be 'Name contains test' - Now we go back to Campaigns (Inside Marketing Automation) and create a new campaign with the filter that we have just created. - Create a new activity for this campaign with any mail template and save it. - Now just pres "start" to start the campaign. - After that you can also use "Launch a test" to see the trace-back. Issue: We receive a trace-back when we try to access to a value of a undefined object. That it is launch whenever we have a campaign with filters. Solution: Added the handling of the case when the `inputElement` is undefined. opw-3146908 Forward-Port-Of: odoo/odoo#117068 Forward-Port-Of: odoo/odoo#111215
Settings page lacks a space between some labels and corresponding selection input. Example: label *Digest Email* and default value *Your Odoo Periodic Digest*. v15 has margin: https://github.com/odoo/odoo/blob/eee0a77619b0cef70272b24f6ff663210e94eb1e/addons/web/static/src/legacy/scss/form_view.scss#L673 while v16 doesn't have it https://github.com/odoo/odoo/blob/3ee5d7a0fbccae5f742e1aba8d3d24f8bab3cbdd/addons/web/static/src/views/form/form_controller.scss#L605 v16 was refactored first
Original PR description
Settings page lacks a space between some labels and corresponding selection input. Example: label *Digest Email* and default value *Your Odoo Periodic Digest*. v15 has margin:…
Settings page lacks a space between some labels and corresponding selection input. Example: label *Digest Email* and default value *Your Odoo Periodic Digest*. v15 has margin: https://github.com/odoo/odoo/blob/eee0a77619b0cef70272b24f6ff663210e94eb1e/addons/web/static/src/legacy/scss/form_view.scss#L673 while v16 doesn't have it https://github.com/odoo/odoo/blob/3ee5d7a0fbccae5f742e1aba8d3d24f8bab3cbdd/addons/web/static/src/views/form/form_controller.scss#L605 v16 was refactored first https://github.com/odoo/odoo/commit/8fa6e923d0fc8695d92e0b114e230d3abab7d9bc - margin: 0 $o-form-spacing-unit 0 0; + margin-right: $o-form-spacing-unit; but then it was completely removed https://github.com/odoo/odoo/commit/fb629dc91df1720cb0658d3e9f946a4fda83fbd0 opw-3115232 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#116924 Forward-Port-Of: odoo/odoo#114300
The pinned version of markupsafe for python > 3.10 is incompatible with the pinned version of jinja. With this commit, the Jinja version is pinned to follow Debian bookworm version when python > 3.10 which should fix the issue. Forward-Port-Of: odoo/odoo#117110
Original PR description
The pinned version of markupsafe for python > 3.10 is incompatible with the pinned version of jinja. With this commit, the Jinja version is pinned to follow Debian bookworm version when python > 3.10 which should fix the issue. Forward-Port-Of: odoo/odoo#117110
*: website_blog,website_event,website_forum,website_hr_recruitment, website_livechat,website_sale,website_slides Prior to this commit, elements inside the New+ modal had a `isDisplayed` property that was meant to be changed by the patches done by each module. Unfortunately, this was forgotten in the refactor done in [1]. This commit fixes that by checking the access rights of the user on each individual model used on the create form. Similar to what is done when viewing a list view.
Original PR description
*: website_blog,website_event,website_forum,website_hr_recruitment, website_livechat,website_sale,website_slides Prior to this commit, elements inside the New+ modal had a `isDisplayed` property that was meant to be changed by the patches done by each module. Unfortunately, this was forgotten in the refactor done in [1]. This commit fixes that by checking the access rights of the user on each individual model used on the create form. Similar to what is done when viewing a list view. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b opw-3198700 Forward-Port-Of: odoo/odoo#114477
In case the videocall_location was a relative URL, the link wouldn't work properly. This commit fixes this by converting all URLs to absolute automatically. Note that this only works for http and https protocols. If using proprietary schemes such as :skype is desired, this implementation should be done in the respective module. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CL
Original PR description
In case the videocall_location was a relative URL, the link wouldn't work properly. This commit fixes this by converting all URLs to absolute automatically. Note that this only works for http and https protocols. If using proprietary schemes such as :skype is desired, this implementation should be done in the respective module. 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#116873
There can be multiple reasons that could prevent that a sales order gets confirmed when we push the *Confirm* button. This can be common when extension modules come to play. The simplest way to reproduce it (no extra modules needed) would be to make an automated action on sale.order with a criteria that could avoid the confirmation throwing a UserError. The coupon email would be sent anyway as we can't rollback a mail sending once it's gone away but it wouldn't be valid as the process stop
Original PR description
There can be multiple reasons that could prevent that a sales order gets confirmed when we push the *Confirm* button. This can be common when extension modules come to play. The simplest way to reproduce it (no extra modules needed) would be to make an automated action on sale.order with a criteria that could avoid the confirmation throwing a UserError. The coupon email would be sent anyway as we can't rollback a mail sending once it's gone away but it wouldn't be valid as the process stopped after it. So we want to prevent sending that mail if the sale.order can't be confirmed. cc @Tecnativa TT42124 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#116898 Forward-Port-Of: odoo/odoo#116817
The color that was used for portal chatter published dates was the muted color that we use at some places in the backend. The portal screens being frontend screens, it of course did not work with all website color schemes. This simply uses the `$text-muted` color to fix the issue. This probably needs refactoring in master to avoid those extra CSS rules that could simply be gone with proper bootstrap XML structures. opw-3146164 Forward-Port-Of: odoo/odoo#116968
Original PR description
The color that was used for portal chatter published dates was the muted color that we use at some places in the backend. The portal screens being frontend screens, it of course did not work with all website color schemes. This simply uses the `$text-muted` color to fix the issue. This probably needs refactoring in master to avoid those extra CSS rules that could simply be gone with proper bootstrap XML structures. opw-3146164 Forward-Port-Of: odoo/odoo#116968
The tax adjustment could fail in the case where the user used another language than English. The `Untaxed Total` key was translated when inserted in the `tax_totals['groups_by_subtotal']` dictionary ([see account_tax.py#L1174](https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_tax.py#L1174)) but not when it was accessed ([see account_move.py#L2660](https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_move.py#L2660)). Ticket #3207452 Forward-Port-Of: odoo/od
Original PR description
The tax adjustment could fail in the case where the user used another language than English. The `Untaxed Total` key was translated when inserted in the `tax_totals['groups_by_subtotal']` dictionary ([see account_tax.py#L1174](https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_tax.py#L1174)) but not when it was accessed ([see account_move.py#L2660](https://github.com/odoo/odoo/blob/16.0/addons/account/models/account_move.py#L2660)). Ticket #3207452 Forward-Port-Of: odoo/odoo#117223
*: appointment Prior to this commit, elements inside the New+ modal had a `isDisplayed` property that was meant to be changed by the patches done by each module. Unfortunately, this was forgotten in the refactor done in [1]. This commit fixes that by checking the access rights of the user on each individual model used on the create form. Similar to what is done when viewing a list view. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b opw-3198700 For
Original PR description
*: appointment Prior to this commit, elements inside the New+ modal had a `isDisplayed` property that was meant to be changed by the patches done by each module. Unfortunately, this was forgotten in the refactor done in [1]. This commit fixes that by checking the access rights of the user on each individual model used on the create form. Similar to what is done when viewing a list view. [1]: https://github.com/odoo/odoo/commit/31cc10b91dc7762e23b4bde9b945be0c4ce3fe3b opw-3198700 Forward-Port-Of: odoo/enterprise#37954
When checking if the BS is balanced with a script,it seems that some accounts were missing in the BS and some sign were reverse, this pr corrects that task-id: 3041738 Forward-Port-Of: odoo/enterprise#38126
Original PR description
When checking if the BS is balanced with a script,it seems that some accounts were missing in the BS and some sign were reverse, this pr corrects that task-id: 3041738 Forward-Port-Of: odoo/enterprise#38126
Settings page lacks a space between some labels and corresponding selection input. Example: label *Digest Email* and default value *Your Odoo Periodic Digest*. Fix it by adding margin via mr8 class See also https://github.com/odoo/odoo/pull/114300/ Forward-Port-Of: odoo/enterprise#38931 Forward-Port-Of: odoo/enterprise#38499
Original PR description
Settings page lacks a space between some labels and corresponding selection input. Example: label *Digest Email* and default value *Your Odoo Periodic Digest*. Fix it by adding margin via mr8 class See also https://github.com/odoo/odoo/pull/114300/ Forward-Port-Of: odoo/enterprise#38931 Forward-Port-Of: odoo/enterprise#38499
The aimf of this commit is to make the query of a specific tag with a specific sign easier by avoiding all the filtering in `expression._get_tax_tags().filtered(lambda t: t.tax_negate)` With this commit, we just leverage the existing filtering on domain to only get the desired tag. no-task Forward-Port-Of: odoo/enterprise#38974 Forward-Port-Of: odoo/enterprise#38700
Original PR description
The aimf of this commit is to make the query of a specific tag with a specific sign easier by avoiding all the filtering in `expression._get_tax_tags().filtered(lambda t: t.tax_negate)` With this commit, we just leverage the existing filtering on domain to only get the desired tag. no-task Forward-Port-Of: odoo/enterprise#38974 Forward-Port-Of: odoo/enterprise#38700
The employee's avatar would show the placeholder to users without read rights on hr.employee in the gantt view. Equivalent of: odoo/odoo#116998 task-3252995 Forward-Port-Of: odoo/enterprise#38965
Original PR description
The employee's avatar would show the placeholder to users without read rights on hr.employee in the gantt view. Equivalent of: odoo/odoo#116998 task-3252995 Forward-Port-Of: odoo/enterprise#38965
In form modals, list widgets have too much padding if the form does not use 'sheet' presentation. This adds a horizontal scroll bar to the modal. Forward-Port-Of: odoo/enterprise#38978 Forward-Port-Of: odoo/enterprise#38381
Original PR description
In form modals, list widgets have too much padding if the form does not use 'sheet' presentation. This adds a horizontal scroll bar to the modal. Forward-Port-Of: odoo/enterprise#38978 Forward-Port-Of: odoo/enterprise#38381
Before this commit compute method of total time on team was taking more time than expected because to 3 for loops. This commit fix performance by making operation simple and use only 2 for loops. Original feedback on PR - https://github.com/odoo/enterprise/pull/30950 opw-3242278 Forward-Port-Of: odoo/enterprise#38539
Original PR description
Before this commit compute method of total time on team was taking more time than expected because to 3 for loops. This commit fix performance by making operation simple and use only 2 for loops. Original feedback on PR - https://github.com/odoo/enterprise/pull/30950 opw-3242278 Forward-Port-Of: odoo/enterprise#38539
This commit simply corrects how the Unavailability days setting is displayed in rental settings Also fixed the display of the Minimal Rental Duration setting opw-3246065 Forward-Port-Of: odoo/enterprise#38892 Forward-Port-Of: odoo/enterprise#38860
Original PR description
This commit simply corrects how the Unavailability days setting is displayed in rental settings Also fixed the display of the Minimal Rental Duration setting opw-3246065 Forward-Port-Of: odoo/enterprise#38892 Forward-Port-Of: odoo/enterprise#38860
Following errors in previous export Forward-Port-Of: odoo/enterprise#38914
Original PR description
Following errors in previous export Forward-Port-Of: odoo/enterprise#38914
latam task 1003 / adhoc task 30169 --- When we try to validate an invoice with perceptions in AFIP we receive this error: ``` AFIP Validation: * Code 10029: La suma de los importes en Tributo debe ser igual al valor ingresado en ImpTrib. ```  In version 15.0 we used the price_subtotal because it was the amount of the tax line in th
Original PR description
latam task 1003 / adhoc task 30169 --- When we try to validate an invoice with perceptions in AFIP we receive this error: ``` AFIP Validation: * Code 10029: La suma de los importes en Tributo debe…
latam task 1003 / adhoc task 30169
---
When we try to validate an invoice with perceptions in AFIP we receive this error:
```
AFIP Validation:
* Code 10029: La suma de los importes en Tributo debe ser igual al valor ingresado en ImpTrib.
```

In version 15.0 we used the price_subtotal because it was the amount of the tax line in the currency of the move, but in version 16 this field and others price_xx fields are equal 0.0.
Thanks to this when we have perceptions taxes in a customer invoice and we need to validate in AFIP it returns an error because the amount we are sending about the perception is 0.0.

With this change, we are able to report the proper amount to AFIP, which is the amount of the perception tax actually applied to the customer invoice and currency.
Forward-Port-Of: odoo/enterprise#38939