Friday, December 8, 2023
67 changes · master
Enhancements to existing features
Warehouse users can now change a package's location directly from the package form or by dragging it to another location. This improves inventory handling by grouping packages by location, showing clearer mobile package views, and recording package moves in the movement history.
Original PR description
This commit adds the ability to edit the location_id of a package by either changing the field in the form or by dragging the package to another location. The packages are now grouped by location by default and filtered by internal locations or empty locations. When a package is moved, a move is created for each of it quants to reflect in Moves History. Also, a kanban view is added to reflect package contents when on mobile as its better on the smaller screen. TaskId:3479578 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Employee searches now include a Department option, making it easier for HR users to find people based on where they work. This improves day-to-day navigation in the employee directory and helps teams locate relevant staff faster.
Original PR description
With this commit, we have improved - The employee search view by adding a 'Department' search option task-3613262 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
When adding new course content without choosing a section, it will now be placed at the bottom of the most recent section. The latest section is shown by default so users can clearly see where their content will be added before uploading.
Original PR description
- When no specific section is selected, the content will now be inserted at the bottom of the latest section. - For further user understanding and control, display the latest section by default, providing clear insight into where the content is going to land. Task-3452346
Survey forms now include clearer internal markers for appraisal-related settings such as time limits, certification, and live sessions. This helps related appraisal features identify and adjust the right survey sections more reliably without changing the visible user experience.
Original PR description
Add the selector to target the elements in the 'hr_appraisal_survey' when 'survey_type' is configured for appraisal. -> Add the name to the 'div' containing 'is_time_limited' and 'certification' field. -> Add a name to the 'group' containing the 'live session' block. Task-3390319
The recruitment demo data has been updated to make product demonstrations smoother and more realistic. Demo job positions now have assigned owners, applicant emails can be triggered at the initial qualification stage, appointment booking is simplified, and resumes are available in Documents.
Original PR description
The purpose of this commit is to improve the demo-data : - every job position have a responsible - automatically send email to applicant where stage "initial qualification" is selected - when a applicant want to have an online appointment , he will just select an hour (it's easier when you want to do a demo) - demo's resume are available in document application task : 3595587 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The recruitment demo data has been enhanced so job openings have assigned owners, applicants can receive automated emails at the initial qualification stage, and booking interview slots is simpler. Demo resumes are also now available in the Documents app, making sales or training demonstrations more complete and realistic.
Original PR description
The purpose of this commit is to improve the demo-data : - every job position have a responsible - automatically send email to applicant where stage "initial qualification" is selected - when a applicant want to have an online appointment , he will just select an hour (it's easier when you want to do a demo) - demo's resume are available in document application task : 3595587
Appraisal surveys now open with sensible default settings and hide options that are not relevant to employee appraisals. This makes the appraisal setup page clearer for HR users and reduces the chance of choosing unsuitable survey settings.
Original PR description
Make the following changes when appraisal is selected 1. Provided default values for the following fields -> "access_mode" - "is_attempts_limited" - "users_can_go_back" 2. Hide the live session section and button 3. Make the following fields invisible -> "is_time_limited" - "scoring_type" - "certification" We also adapt the form/kanban inherited views for hr_appraisal by making them non-primary. As the invisibility rules they add are not specific to this module usage, we want them always applied. This makes the subsequent overrides more consistent and also allows for simplifying the act. window records. Task-3390319
Resolved issues and error corrections
ZPL product labels now print prices based on the pricelist selected in the label printing wizard. This keeps printed labels aligned with the intended customer or sales pricing and avoids showing the wrong product price.
Original PR description
before this commit, the pricelist concept is added in label printing in this commit: https://github.com/odoo/odoo/commit/168b56e0698e443508049cdb3507d1170a21725c and missed to adapt the zpl reports to respect the selected pricelist in the wizard after this commit, the price printed in the zpl product label will be based on the selected pricelist in the wizard --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Code cleanup and technical improvements
The course quiz completion popup has been rebuilt using Odoo’s newer interface framework, keeping the same learner experience while preparing it for future platform changes. Learners still see their success message, progress, and next-step button, with the update reducing reliance on older code that is being phased out.
Original PR description
As legacy dialog code will be removed soon, the following dialog shall be rewritten with OWL. SlideQuizFinishModal ==================== This dialog shows up when a user (successfully) passes a quiz.…
As legacy dialog code will be removed soon, the following dialog shall be rewritten with OWL. SlideQuizFinishModal ==================== This dialog shows up when a user (successfully) passes a quiz. No header, neither footer, but a body containing an image (SVG), an animated progress bar and a button to either go to the next step or end course. The OWL component is renamed SlideQuizFinishDialog. task-3558059 Note on usage of markup: ----------------------- This component receives html messages to display. With the deprecation of the 't-raw' directive, it requires to mark these as markup: see [[IMP] website_slides: de-traw-ify](https://github.com/odoo/odoo/commit/0691736b49543905091daa5208ff361d6bee4ece) But there were actually 3 messages, not 2. The third one, being inserted via JQuery, in the legacy dialog. For reasons of consistency and readability, we have chosen to mark the 3rd message and display it via 't-out', like the first two messages. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Similar to this: ea2efa934e000d36b60d4a0986adbe842ec79def Issue: ====== The shiping and billing address are the same when choosing pick up locations which is not true. Steps to reproduce the error: ============================= - install website_sale and delivery_sendcloud module; - create a shipping method (use Sendcloud provider); - configure the integration with "Mondial Relay Point Relais International 1-2kg"; - configure option with shipping rule and use location; - on website
Original PR description
Similar to this: ea2efa934e000d36b60d4a0986adbe842ec79def Issue: ====== The shiping and billing address are the same when choosing pick up locations which is not true. Steps to reproduce the error:…
Similar to this: ea2efa934e000d36b60d4a0986adbe842ec79def Issue: ====== The shiping and billing address are the same when choosing pick up locations which is not true. Steps to reproduce the error: ============================= - install website_sale and delivery_sendcloud module; - create a shipping method (use Sendcloud provider); - configure the integration with "Mondial Relay Point Relais International 1-2kg"; - configure option with shipping rule and use location; - on website create a new quotation with the pubic user; - process the checkout; (Check in backend the shipping weight) - fill City and Zip Code fields with correct value (example: Paris | 75011) (- configure the company's country) Origin of the issue: ==================== Updating the payment method will trigger a cart update which will reset the access_point_address. Solution: ========= Using the context variable `no_reset_access_point_address` introduced in the commit mentioned above. opw-3615829 opw-3596705 Forward-Port-Of: odoo/odoo#145425 Forward-Port-Of: odoo/odoo#145264
Odoo now recognizes the port provided by a proxy server, so users accessing Odoo through a non-standard web port are no longer redirected to the wrong address. This improves reliability for companies hosting Odoo behind gateways such as Nginx.
Original PR description
Install nginx, setup it to listen on port 8080 instead of default 80
then setup a regular proxy_pass toward a local odoo listening on port
8069 with all the X-Forwarded- headers set:
listen 8080;
server_name mycompany.odoo.com;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Real-IP $remote_addr;
location / {
proxy_pass http://127.0.0.1:8069;
}
Inside your browser, access "http://mycompany.odoo.com:8080" you are
wrongly redirected to "http://mycompany.odoo.com:80".
The `X-Forwarded-Port` header wasn't taken into account by Odoo.
Closes: #64643Fixed an issue where employee avatar cards could fail to open when the Skills app was installed without Planning. Employee skills now display reliably because the shared tag display support is available from the core HR app.
Original PR description
Steps ===== - Install module hr_skills (but not planning) - Open the avatar card of an employee with skills linked to it Issue ===== A traceback appears indicating: "OwlError: Cannot find the definition of component "TagsList", missing static components key in parent". Cause ===== The AvatarCardResourcePopover component was patched in planning to add the component TagsList to it. This component was also used by the patch applied on AvatarCardResourcePopover in hr_skills. However, when hr_skills is installed but not planning, the component TagsList is used (to display the skills of the employee) but no append to the AvatarCardResourcePopover (or the AvatarCardEmployeePopover that inherits from it). Fix === The component TagsList is added in hr instead of planning as this module is required by both planning and hr_skills.
This update makes small popover windows more reliable by allowing them to open even when optional details are not provided. It prevents a crash in this situation, improving stability for users and developers building interface elements.
Original PR description
With this commit, it is no longer necessary to pass props when adding a popover using the popover service. Before this commit, there was a crash if no props were passed. Task ID: 3611253 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This fixes crashes when opening employee or resource avatar cards in cases where related modules or access rights differ. Users can now view relevant avatar details without unexpected errors, including planning users who do not have HR permissions.
Original PR description
[FIX] planning: add TagsList component to avatar card in hr instead of planning =============================================================================== Steps ----- - Install module hr_skills…
[FIX] planning: add TagsList component to avatar card in hr instead of planning =============================================================================== Steps ----- - Install module hr_skills (but not planning) - Open the avatar card of an employee with skills linked to it Issue ----- A traceback appears indicating: "OwlError: Cannot find the definition of component "TagsList", missing static components key in parent". Cause ----- The AvatarCardResourcePopover component was patched in planning to add the component TagsList to it. This component was also used by the patch applied on AvatarCardResourcePopover in hr_skills. However, when hr_skills is installed but not planning, the component TagsList is used (to display the skills of the employee) but no append to the AvatarCardResourcePopover (or the AvatarCardEmployeePopover that inherits from it). Fix --- The component TagsList is added in hr instead of planning as this module is required by both planning and hr_skills. [FIX] planning: avoid traceback for non hr-user when opening avatar card ======================================================================== Steps ----- - Install planning - Log in as a planning user with no hr access - Open the planning app - Click on the avatar of a resource with roles linked to it Issue ----- An access right error message appears indicating that the current user can't access the default_role_id field of the resource. Cause ----- This field of the resource.resource model is protected to user with hr access rights. In the avatar card component it was read, whatever the rights of the current user were. Fix --- A check on the access rights of the current user is added in the component to avoid to read that field if it is not allowed.
Users can once again create a new shift directly from the selection window opened from a planning Gantt cell. This fixes a regression that hid the create option, reducing friction for scheduling teams.
Original PR description
Before this commit, due to a bad rebase the override of `getSelectCreateDialogProps` in `sale_planning` module has been reintroduced and so that override disables the create button in select create dialog displayed when we click on gantt cell. This commit removes that override to allow the user to be able to create a new shift when he is in the select create dialog.
This update simplifies the internal structure behind Odoo's messaging and live chat threads by removing outdated data handling and moving related logic closer to the records it supports. The change should make future improvements to Discuss and live chat easier and safer, with little to no visible impact for users.
Original PR description
[REF] mail: remove deprecated field on Thread [REF] mail: move functions from services to models https://github.com/odoo/enterprise/pull/52046
The website shop module’s large configuration file has been split into smaller, clearer files. This does not change customer-facing behavior, but it should make future maintenance and updates safer and easier for the development team.
Original PR description
--- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update reorganizes how mail-related data and actions are handled so they sit closer to the records they affect. It should make future maintenance easier for teams working on Knowledge, WhatsApp, and related communication features without changing day-to-day user workflows.
Original PR description
All data are related to models, and code using it is simpler by just relying on record at hand. https://github.com/odoo/odoo/pull/144422
To reproduce ============ on time Off -> allocations, open a record and try to open studio -> Owl Traceback Problem ======= the ButtonBox is not well compiled, we check if it has children using `!el.childNodes.length`, but this property returns the total number of child nodes, including text nodes ... So counting text nodes, we proceed to create ButtonBox node and fill it with children `for (const child of el.children)`, but the property `el.children` doesn't take into account text nodes
Original PR description
To reproduce ============ on time Off -> allocations, open a record and try to open studio -> Owl Traceback Problem ======= the ButtonBox is not well compiled, we check if it has children using `!el.childNodes.length`, but this property returns the total number of child nodes, including text nodes ... So counting text nodes, we proceed to create ButtonBox node and fill it with children `for (const child of el.children)`, but the property `el.children` doesn't take into account text nodes, which leads to return `''` then a null object Solution ======== as we loop on `el.children` the check must be done using the same property. opw-3603952 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143804
If we begin to run the test at 23h59m59s, the move date could be put at a day and the freeze for the cron on the following day, and so, make the test fail. Let's just define the day explicitely. Linked to runbot error 36224 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#141799
Original PR description
If we begin to run the test at 23h59m59s, the move date could be put at a day and the freeze for the cron on the following day, and so, make the test fail. Let's just define the day explicitely. Linked to runbot error 36224 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#141799
This commit converts the industry name in the configurator to lowercase it in order to optimize the IAP placeholder cache. See related IAP PR: https://github.com/odoo/iap-apps/pull/730 task-3626875 Forward-Port-Of: odoo/odoo#145231
Original PR description
This commit converts the industry name in the configurator to lowercase it in order to optimize the IAP placeholder cache. See related IAP PR: https://github.com/odoo/iap-apps/pull/730 task-3626875 Forward-Port-Of: odoo/odoo#145231
Issue: When triggering an orderpoint, the date will be set to midnight UTC. This will cause issue with users in timezones UTC-x, as it will display the date as the day before. This is a so-so fix to reduce the number of impacted users by moving the orderpoint date from 0.00 to 12.00. opw-3579318 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#144447 Forward-Port-Of: odoo/odoo#143385
Original PR description
Issue: When triggering an orderpoint, the date will be set to midnight UTC. This will cause issue with users in timezones UTC-x, as it will display the date as the day before. This is a so-so fix to reduce the number of impacted users by moving the orderpoint date from 0.00 to 12.00. opw-3579318 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#144447 Forward-Port-Of: odoo/odoo#143385
Prior to this commit, if the avatar image didn't have a 1:1 ratio, the `rounded-circle` image would be oval instead of the intended circle. To fix this we add the `o_avatar` class to the `img`, and since this class already contains `object-fit: cover` we can remove it from the element's inline styles. <img width="63" alt="Screenshot 2023-11-22 at 12 48 47" src="https://github.com/odoo/odoo/assets/19491443/80c31085-991d-48b8-a398-e41c171f1ab0"> _ratio 3:5_ | Before | After | |--------|-
Original PR description
Prior to this commit, if the avatar image didn't have a 1:1 ratio, the `rounded-circle` image would be oval instead of the intended circle. To fix this we add the `o_avatar` class to the `img`, and since this class already contains `object-fit: cover` we can remove it from the element's inline styles. <img width="63" alt="Screenshot 2023-11-22 at 12 48 47" src="https://github.com/odoo/odoo/assets/19491443/80c31085-991d-48b8-a398-e41c171f1ab0"> _ratio 3:5_ | Before | After | |--------|--------| ||| task-3607243 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#143109
saas-16.3 Steps To reproduce: - install project, sales, and timesheets - open the project module and select any project created from SO - click on any task - click on the Sales Order smart button - to set the end date hover beside the start date Issue: - end date should not be optional to select. Cause: - the unification of datetime, daterange, and date happened in task 3121497 where daterange widget has the end date by default optional. Solution: - I have added attr
Original PR description
saas-16.3 Steps To reproduce: - install project, sales, and timesheets - open the project module and select any project created from SO - click on any task - click on the Sales Order smart button - to set the end date hover beside the start date Issue: - end date should not be optional to select. Cause: - the unification of datetime, daterange, and date happened in task 3121497 where daterange widget has the end date by default optional. Solution: - I have added attrs and Timesheets Period label to have the same behavior as it was in saas-16.2. task-3506482 Forward-Port-Of: odoo/odoo#145115 Forward-Port-Of: odoo/odoo#140874
Previously, the code that sets default tags on bank accounts was in l10n_de_reports, so was not yet loaded when the demo company is created at module init of l10n_de. As a result, the demo company was created without the necessary tags on the 1001 Cash and 1201 Bank accounts, which meant that the Balance Sheet would not be impacted by these accounts on the demo company. This commit fixes this. Enterprise PR: https://github.com/odoo/enterprise/pull/52143 taskid:none Forward-Port-Of:
Original PR description
Previously, the code that sets default tags on bank accounts was in l10n_de_reports, so was not yet loaded when the demo company is created at module init of l10n_de. As a result, the demo company was created without the necessary tags on the 1001 Cash and 1201 Bank accounts, which meant that the Balance Sheet would not be impacted by these accounts on the demo company. This commit fixes this. Enterprise PR: https://github.com/odoo/enterprise/pull/52143 taskid:none Forward-Port-Of: odoo/odoo#145357 Forward-Port-Of: odoo/odoo#145013
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#145291
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 Forward-Port-Of: odoo/odoo#145291
Prior to this commit, attempting to print a receipt for a paid order in the PoS restaurant resulted in an error. This issue was due to the 'getReceiptHeaderData' method in the PoS restaurant using 'this.get_order()' to retrieve the order, which is not applicable for paid orders. Additionally, this problem exists in other modules that override 'getReceiptHeaderData'. To resolve this, the order is now passed as an argument to the 'getReceiptHeaderData' function. Enterprise PR: https://github
Original PR description
Prior to this commit, attempting to print a receipt for a paid order in the PoS restaurant resulted in an error. This issue was due to the 'getReceiptHeaderData' method in the PoS restaurant using 'this.get_order()' to retrieve the order, which is not applicable for paid orders. Additionally, this problem exists in other modules that override 'getReceiptHeaderData'. To resolve this, the order is now passed as an argument to the 'getReceiptHeaderData' function. Enterprise PR: https://github.com/odoo/enterprise/pull/52249 opw-3616997 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145252
If the snippet names are too long (e.g., after being translated), they overflow and cause a horizontal scrollbar to appear on the snippet menu. Steps to reproduce the issue: - Set 'Finnish' as the language for the connected user in Odoo. - Go to Website edit mode. - Bug: Some snippet names are too long and overlfow their parent elements. This commit fixes this issue by adding the CSS rule 'ellipsis' to snippet names. task-3584011 Forward-Port-Of: odoo/odoo#144800
Original PR description
If the snippet names are too long (e.g., after being translated), they overflow and cause a horizontal scrollbar to appear on the snippet menu. Steps to reproduce the issue: - Set 'Finnish' as the language for the connected user in Odoo. - Go to Website edit mode. - Bug: Some snippet names are too long and overlfow their parent elements. This commit fixes this issue by adding the CSS rule 'ellipsis' to snippet names. task-3584011 Forward-Port-Of: odoo/odoo#144800
when user tries 'PRINT PREVIEW' product.report_producttemplatelabel_dymo report in web_studio, A traceback will appear. Step to produce: - Install 'Sales' and 'web_studio'. - Go to 'web_studio' and open 'Sales'. - reports > product.report_producttemplatelabel_dymo - Click PRINT PREVIEW Traceback: ``` KeyError: 'pricelist' File "<481>", line 251, in template_481 File "<481>", line 200, in template_481_content QWebException: Error while render the template KeyError: 'pricelist
Original PR description
when user tries 'PRINT PREVIEW' product.report_producttemplatelabel_dymo report in web_studio, A traceback will appear. Step to produce: - Install 'Sales' and 'web_studio'. - Go to 'web_studio' and…
when user tries 'PRINT PREVIEW' product.report_producttemplatelabel_dymo report in web_studio,
A traceback will appear.
Step to produce:
- Install 'Sales' and 'web_studio'.
- Go to 'web_studio' and open 'Sales'.
- reports > product.report_producttemplatelabel_dymo
- Click PRINT PREVIEW
Traceback:
```
KeyError: 'pricelist'
File "<481>", line 251, in template_481
File "<481>", line 200, in template_481_content
QWebException: Error while render the template
KeyError: 'pricelist'
Template: ir.ui.view(481,)
Path: /t/div/div/div[4]/strong
Node: <strong class="o_label_price_small" t-out="pricelist._get_product_price(product, 1, pricelist.currency_id or product.currency_id)" t-options="{\'widget\': \'monetary\', \'display_currency\': pricelist.currency_id or product.currency_id, \'label_price\': True}"/>
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, 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 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/17.0/web_studio/controllers/report.py", line 372, in get_report_html
report_html = self._render_report(report, record_id)
File "home/odoo/src/enterprise/17.0/web_studio/controllers/report.py", line 454, in _render_report
return request.env['ir.actions.report'].with_context(studio=True)._render_qweb_html(report, [record_id] if record_id else [], {"studio": True})
File "home/odoo/src/enterprise/17.0/web_studio/models/ir_actions_report.py", line 24, in _render_qweb_html
return super(IrActionsReport, self)._render_qweb_html(report_ref, docids, data)
File "odoo/addons/base/models/ir_actions_report.py", line 916, in _render_qweb_html
return self._render_template(report.report_name, data), 'html'
File "odoo/addons/base/models/ir_actions_report.py", line 653, in _render_template
return view_obj._render_template(template, values).encode()
File "home/odoo/src/enterprise/17.0/web_studio/models/ir_ui_view.py", line 1310, in _render_template
return super(View, self)._render_template(template, values)
File "odoo/addons/base/models/ir_ui_view.py", line 2044, in _render_template
return self.env['ir.qweb']._render(template, values)
File "odoo/tools/profiler.py", line 292, in _tracked_method_render
return method_render(self, template, values, **options)
File "odoo/addons/base/models/ir_qweb.py", line 593, in _render
result = ''.join(rendering)
File "<488>", line 49, in template_488
File "<488>", line 31, in template_488_content
File "<488>", line 21, in template_488_t_call_0
File "<483>", line 173, in template_483
File "<483>", line 155, in template_483_content
File "<483>", line 142, in template_483_t_call_0
File "<481>", line 257, in template_481
```
https://github.com/odoo/odoo/blob/e4390c224c2f59afd6456bcf50910fbe3836b4ca/addons/product/report/product_label_report.py#L23-L26
Here 'pricelist' is not present in return.
sentry-4673780990
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Forward-Port-Of: odoo/odoo#144475Steps to reproduce the bug: - In Website edit mode, drag and drop a 'Text-Image' snippet onto the page. - Select the word "Subtitle" in the title of the snippet. - Click on the 'Animate' button in the editor toolbar. - Bug: The 'Highlight Animated Text' icon that appeared on the right of the title ("Inline Text") of the editor toolbar is too big. task-3597377 Forward-Port-Of: odoo/odoo#144892
Original PR description
Steps to reproduce the bug:
- In Website edit mode, drag and drop a 'Text-Image' snippet onto the page.
- Select the word "Subtitle" in the title of the snippet.
- Click on the 'Animate' button in the editor toolbar.
- Bug: The 'Highlight Animated Text' icon that appeared on the right of the title ("Inline Text") of the editor toolbar is too big.
task-3597377
Forward-Port-Of: odoo/odoo#144892### Before this PR If you compute quantity consumable/service and the value is printed by bom overview table, this error appear `Caused by: TypeError: value.toFixed is not a function` This is caused because the quantity attributes are set to false ### After this PR The quantity are always float, when they are consumable/service too --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145449
Original PR description
### Before this PR If you compute quantity consumable/service and the value is printed by bom overview table, this error appear `Caused by: TypeError: value.toFixed is not a function` This is caused because the quantity attributes are set to false ### After this PR The quantity are always float, when they are consumable/service too --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145449
Before this commit we had an issue when a product's description took more than one page. In this case, the following `<tr>` was overlapping. By removing this line we remove an old fix that seems not working anymore... It looks like it was needed when a customer wanted to repeat the table header on each page. This use case is supported by Odoo as we suggest it as a customization in the code, see here: "<!-- In case we want to repeat the header, remove "display: table-row-group" -->" This featu
Original PR description
Before this commit we had an issue when a product's description took more than one page. In this case, the following `<tr>` was overlapping. By removing this line we remove an old fix that seems not…
Before this commit we had an issue when a product's description took more than one page. In this case, the following `<tr>` was overlapping. By removing this line we remove an old fix that seems not working anymore... It looks like it was needed when a customer wanted to repeat the table header on each page. This use case is supported by Odoo as we suggest it as a customization in the code, see here: "<!-- In case we want to repeat the header, remove "display: table-row-group" -->" This feature is still working without this fix except when a line overflows onto another page but the removed fix doesn't help anyway... There is another line that refers to this fix for accounting reports but we prefer to keep this commit minimal and clean it in master. Note that this bug is also present in 15 but as this issue is quite old and tricky we prefer to not fix it this until we have other complains. Feel free to backport this commit if needed. Steps to reproduce: - Go to Sales - Create a new quotation - Add a product with a very long description that takes at least a whole page. - Add anoter product. - Print it as a .pdf. => Product descriptions overlaps on page 3. opw-3411031 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#145388
Since the milk redesign, and the move of the "Add to my dashboard" action from the search view to the CogMenu (next to breadcrumbs), the action was available in all views, especially in form views, which isn't what we want. Adding a form view to the dashboard results in an empty form view (in creation) being displayed in the dashboard. Before milk, the form view naturally didn't allow to add to dashboard as it has no search view. This commit checks the view type to determine if the action
Original PR description
Since the milk redesign, and the move of the "Add to my dashboard" action from the search view to the CogMenu (next to breadcrumbs), the action was available in all views, especially in form views, which isn't what we want. Adding a form view to the dashboard results in an empty form view (in creation) being displayed in the dashboard. Before milk, the form view naturally didn't allow to add to dashboard as it has no search view. This commit checks the view type to determine if the action must be available or not. Task 3552870 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#144805
Partially revert the 'table-responsive' layout introduced by commit https://github.com/odoo/odoo/commit/5abccc. The addition of the 'table-responsive' class effectively addressed the overflowing of very long product names without whitespace. However, it inadvertently introduced a new issue by partially concealing the "Download" dropdowns for digital products. To mitigate this problem, this commit disables the 'table-responsive' layout when website_sale is installed. This adjustment prese
Original PR description
Partially revert the 'table-responsive' layout introduced by commit https://github.com/odoo/odoo/commit/5abccc. The addition of the 'table-responsive' class effectively addressed the overflowing of…
Partially revert the 'table-responsive' layout introduced by commit https://github.com/odoo/odoo/commit/5abccc. The addition of the 'table-responsive' class effectively addressed the overflowing of very long product names without whitespace. However, it inadvertently introduced a new issue by partially concealing the "Download" dropdowns for digital products. To mitigate this problem, this commit disables the 'table-responsive' layout when website_sale is installed. This adjustment preserves the accessibility of the "Download" dropdowns while still offering a workaround for accommodating lengthy product names. task-3335488 (bugfix) task-4720 (rd-design) | 16.0 | This PR | |--------|--------| ||  | --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142839
[FIX] stock: only resupply from a warehouse in the same company Steps to reproduce the bug: - Enable “multi steps routes” in inventory settings - Have two company “A” and “B” - Create another warehouse in company A - refresh the page Problem: You should not select a warehouse in another company, as it will lead to several errors later on. If the user wishes to use this option, they can activate 'Inter-Company Transactions' in the settings and then utilize this feature. opw-3604302
Original PR description
[FIX] stock: only resupply from a warehouse in the same company Steps to reproduce the bug: - Enable “multi steps routes” in inventory settings - Have two company “A” and “B” - Create another warehouse in company A - refresh the page Problem: You should not select a warehouse in another company, as it will lead to several errors later on. If the user wishes to use this option, they can activate 'Inter-Company Transactions' in the settings and then utilize this feature. opw-3604302 Forward-Port-Of: odoo/odoo#145079 Forward-Port-Of: odoo/odoo#144487
When restaurant is installed the demo shop is archived if no session has been made. 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#144135
Original PR description
When restaurant is installed the demo shop is archived if no session has been made. 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#144135
Change adds missing helpers and alters some of their messages in differents parts of HR apps. task-3522163 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#145268 Forward-Port-Of: odoo/odoo#141663
Original PR description
Change adds missing helpers and alters some of their messages in differents parts of HR apps. task-3522163 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#145268 Forward-Port-Of: odoo/odoo#141663
In 16.4, this commit https://github.com/odoo/odoo/commit/c3b7a87462cd41654d0e2bd3beb2f0e065ddfb75 created a notification when replenishing a product. However, it achieved it by modifying a stock.order_point which was not the ideal solution as we don't want the order_point to change. In this commit, we will revert to the previous behaviour, but we'll keep the notification by delegating it to the wizard itself. The way the record created were retreived (to display the notification) was
Original PR description
In 16.4, this commit https://github.com/odoo/odoo/commit/c3b7a87462cd41654d0e2bd3beb2f0e065ddfb75 created a notification when replenishing a product. However, it achieved it by modifying a…
In 16.4, this commit https://github.com/odoo/odoo/commit/c3b7a87462cd41654d0e2bd3beb2f0e065ddfb75 created a notification when replenishing a product. However, it achieved it by modifying a stock.order_point which was not the ideal solution as we don't want the order_point to change. In this commit, we will revert to the previous behaviour, but we'll keep the notification by delegating it to the wizard itself. The way the record created were retreived (to display the notification) was thanks to the orderpoint. As we do not have access to orderpoints now, we are just retreive the first record (of a certain type) created just after the start of the function. This method has a big problem : concurrencies. If anyone creates a record on ``manufacturing.order``, ``purchase.order.line`` or ``stock.move`` between the start of our timer and the creation of our record, a wrong record will be selected in the notification. Also, the previous date shown in the replenishement wizard did not take the following delays into account: - vendor lead time - days to purchase - security days for purchase - security days for mrp - rule lead time - manufacturing lead time (BoM) - days to prepare manufacturing order (BoM) task-3527727 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145384 Forward-Port-Of: odoo/odoo#139182
At the moment, there are two possible flows to modify the personal information of the user. Either during the first checkout (website_sale) or by modifying the information on the account present on the website (portal). For both of these flows, when the client and the website are Brazilian, the input for the VAT must be required. This commit will override the corresponding function to make the input required under these conditions. Also, we have added a new field on the two forms. Jus
Original PR description
At the moment, there are two possible flows to modify the personal information of the user. Either during the first checkout (website_sale) or by modifying the information on the account present on the website (portal). For both of these flows, when the client and the website are Brazilian, the input for the VAT must be required. This commit will override the corresponding function to make the input required under these conditions. Also, we have added a new field on the two forms. Just before the vat input, we can now find the l10n_latam_identification_type_id. Also adding some translation because client from brazil may not know what "VAT" is. task: 3576516 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#142165
### Summary Currently duplicating a journal results in the new journal's mail alias name overwriting the original's. ### Steps to reproduce * install `account_accountant` * duplicate the "Vendor Bills" journal => you should see that the alias name of the new journal overwrites the alias of the original journal. ### Cause When duplicating a journal, the new journal inherits the alias of the original. Because of this, a specific code segment intended to generate missing aliases for sale/
Original PR description
### Summary Currently duplicating a journal results in the new journal's mail alias name overwriting the original's. ### Steps to reproduce * install `account_accountant` * duplicate the "Vendor Bills" journal => you should see that the alias name of the new journal overwrites the alias of the original journal. ### Cause When duplicating a journal, the new journal inherits the alias of the original. Because of this, a specific code segment intended to generate missing aliases for sale/purchase journals, inadvertently modifies the existing alias instead of creating a new. opw-3597349 Forward-Port-Of: odoo/odoo#143771
See comment in diff for rationale about the `isLoaded` change. Also highlighting message before jumping to present can conflict: some programatic scroll changes are prevented or delayed while there is a highlight, jumping to present should clear that. All "previous state" variables need to be reset when re-using the thread component after making a change that led to reloading the message list (such as a long jump). They are used to compare value before/after some changes, but when jumping,
Original PR description
See comment in diff for rationale about the `isLoaded` change. Also highlighting message before jumping to present can conflict: some programatic scroll changes are prevented or delayed while there is a highlight, jumping to present should clear that. All "previous state" variables need to be reset when re-using the thread component after making a change that led to reloading the message list (such as a long jump). They are used to compare value before/after some changes, but when jumping, the state should be considered clean. `isJumpingRecent` is obsolete heuristics that has been replaced by better controlling scroll and visibility check. Extra `await` in `loadAround` makes no sense. It's the best guess to fix the following runbot issues. The error doesn't happen frequently enough to be a guaranteed fix. runbot-40592 runbot-48557 Forward-Port-Of: odoo/odoo#145419
Before this commit, customers were facing issues when syncing events from Outlook that came from external users when the event organizers were from 'Portal' or 'Public' groups with limited access to calendar events, triggering ACL errors regarding absence of event permissions for creating events. This error should not happen because the events are being synced by a user with permission to create them in Odoo. Additionaly, when inserting events, we were not trying to make the requests with the or
Original PR description
Before this commit, customers were facing issues when syncing events from Outlook that came from external users when the event organizers were from 'Portal' or 'Public' groups with limited access to…
Before this commit, customers were facing issues when syncing events from Outlook that came from external users when the event organizers were from 'Portal' or 'Public' groups with limited access to calendar events, triggering ACL errors regarding absence of event permissions for creating events. This error should not happen because the events are being synced by a user with permission to create them in Odoo. Additionaly, when inserting events, we were not trying to make the requests with the organizer user's token but with the current user's token instead. This could lead to errors when the current user is not synced and the request could be lost due to the lack of token. After this commit, the events with external organizers (with limited access rights in Odoo) coming from Outlook synchronization are now created by the attendee in Odoo (synced user) not the external organizer. Additionaly, when inserting, patching and deleting events, first we check if the organizer is synced to make the request with its token, otherwise we use the current user's token to make the request. Task-id: 3627270 Forward-Port-Of: odoo/odoo#145492 Forward-Port-Of: odoo/odoo#144547
Avoid invalidating cache when not needed. This improves a lot performances. Fixes a bug which causes that: self.flush() and self.clear_caches() were called on every property write/update and delete. Known at least in V14/15/16/17. https://github.com/odoo/enterprise/pull/52207 Original PR: https://github.com/odoo/odoo/pull/143403 Forward-Port-Of: odoo/odoo#145333 Forward-Port-Of: odoo/odoo#145171
Original PR description
Avoid invalidating cache when not needed. This improves a lot performances. Fixes a bug which causes that: self.flush() and self.clear_caches() were called on every property write/update and delete. Known at least in V14/15/16/17. https://github.com/odoo/enterprise/pull/52207 Original PR: https://github.com/odoo/odoo/pull/143403 Forward-Port-Of: odoo/odoo#145333 Forward-Port-Of: odoo/odoo#145171
Forward-Port-Of: odoo/odoo#145192
Original PR description
Forward-Port-Of: odoo/odoo#145192
The aim of this commit is to improve the quality of the tax retrieving of the edi import. Context: The tax prediction happens when the invoice is given manually or with the OCR but doesn't happen when it's imported by EDI because the tax is already set by the OCR. Before this commit: During EDI import, the tax retrieved could always be the same even if the user make some modification to the previous bill. After this commit: The tax retrieved leverage the previous data to get better q
Original PR description
The aim of this commit is to improve the quality of the tax retrieving of the edi import. Context: The tax prediction happens when the invoice is given manually or with the OCR but doesn't happen when it's imported by EDI because the tax is already set by the OCR. Before this commit: During EDI import, the tax retrieved could always be the same even if the user make some modification to the previous bill. After this commit: The tax retrieved leverage the previous data to get better quality result for tax retrievement. task-id: 3531473 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#145416 Forward-Port-Of: odoo/odoo#144484
Exports the `sortableDrag` function, so it can be used in other modules (like account_reports for example). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145027
Original PR description
Exports the `sortableDrag` function, so it can be used in other modules (like account_reports for example). --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#145027
Forward-Port-Of: odoo/odoo#145442
Original PR description
Forward-Port-Of: odoo/odoo#145442
Demo data of l10n_us_1099 used to create a bank statement that was before the initial balance of `account` demo data which it relies on. This caused inconsistencies in the balance shown in the dashboard and the balance shown in the bank reco widget. We remove this statement as anyway there are already enough data provided with the accounting module. task-id: 3619563 Forward-Port-Of: odoo/enterprise#52309
Original PR description
Demo data of l10n_us_1099 used to create a bank statement that was before the initial balance of `account` demo data which it relies on. This caused inconsistencies in the balance shown in the dashboard and the balance shown in the bank reco widget. We remove this statement as anyway there are already enough data provided with the accounting module. task-id: 3619563 Forward-Port-Of: odoo/enterprise#52309
Resolves a `ValueError` occurring during migration when the database includes either the l10n_gr_reports or l10n_ie_reports. The cause of the issue is that it sets default accounts for deferred revenue and expenses, but these specific accounts are missing since the COA is never updated. The provided solution simply set these accounts if they exist. The issue occurs since major changes in these localization packages in saas-16.4. task-3629902 Forward-Port-Of: odoo/enterprise#52312
Original PR description
Resolves a `ValueError` occurring during migration when the database includes either the l10n_gr_reports or l10n_ie_reports. The cause of the issue is that it sets default accounts for deferred revenue and expenses, but these specific accounts are missing since the COA is never updated. The provided solution simply set these accounts if they exist. The issue occurs since major changes in these localization packages in saas-16.4. task-3629902 Forward-Port-Of: odoo/enterprise#52312
At the moment, Unaffected Earnings is a sub-line of line VII. Carried forward net loss, which doesn't make any sense if the unaffected earnings are profits. In addition, separating profits and losses is inconsistent with the official balance sheet of the Slovenian Accounting Standards (see task for link.) This commit therefore re-does the Retained Earnings / Current Year Earnings section, to just keep 4 lines: VI. Transferred net profit or loss VI.1 Retained Earnings / Carried fo
Original PR description
At the moment, Unaffected Earnings is a sub-line of line VII. Carried forward net loss, which doesn't make any sense if the unaffected earnings are profits.
In addition, separating profits and losses is inconsistent with the official balance sheet of the Slovenian Accounting Standards (see task for link.)
This commit therefore re-does the Retained Earnings / Current Year Earnings section, to just keep 4 lines:
VI. Transferred net profit or loss
VI.1 Retained Earnings / Carried forward net loss
VI.2 Unaffected Earnings
VII. Net profit or loss for the financial year
In addition, we fix the formulae of lines 3, 10, 15, 19 and 20 of the P&L to ensure that the Balance Sheet is balanced. This can be tested using the Balance Sheet diagnosis tool in #36838.
taskid: 3624482
Forward-Port-Of: odoo/enterprise#52060With this commit, when dragging an element on the creation/edition of a report, it will keep a placeholder at the original place. To do that, we keep a copy of the element that is being dragged. The copied element is sanitized which means that we remove all attributes that could create a conflict with any other element. Task-id 3582082 Forward-Port-Of: odoo/enterprise#50283
Original PR description
With this commit, when dragging an element on the creation/edition of a report, it will keep a placeholder at the original place. To do that, we keep a copy of the element that is being dragged. The copied element is sanitized which means that we remove all attributes that could create a conflict with any other element. Task-id 3582082 Forward-Port-Of: odoo/enterprise#50283
The aim of this commit is to improve the quality of the tax retrieving of the edi import. Context: The tax prediction happens when the invoice is given manually or with the OCR but doesn't happen when it's imported by EDI because the tax is already set by the OCR. Before this commit: During EDI import, the tax retrieved could always be the same even if the user make some modification to the previous bill. After this commit: The tax retrieved leverage the previous data to get better q
Original PR description
The aim of this commit is to improve the quality of the tax retrieving of the edi import. Context: The tax prediction happens when the invoice is given manually or with the OCR but doesn't happen when it's imported by EDI because the tax is already set by the OCR. Before this commit: During EDI import, the tax retrieved could always be the same even if the user make some modification to the previous bill. After this commit: The tax retrieved leverage the previous data to get better quality result for tax retrievement. task-id: 3531473 Forward-Port-Of: odoo/enterprise#52326 Forward-Port-Of: odoo/enterprise#51929
Steps to reproduce: Create a shipping in sendcloud, to a contact that has a company name longer than 50 characters. Error: `"company_name":["Ensure this field has no more than 50 characters."]` This commit truncates the company name to ensure it works with longer names. opw-3627831 Forward-Port-Of: odoo/enterprise#52325 Forward-Port-Of: odoo/enterprise#52311
Original PR description
Steps to reproduce: Create a shipping in sendcloud, to a contact that has a company name longer than 50 characters. Error: `"company_name":["Ensure this field has no more than 50 characters."]` This commit truncates the company name to ensure it works with longer names. opw-3627831 Forward-Port-Of: odoo/enterprise#52325 Forward-Port-Of: odoo/enterprise#52311
Currently, a log error is occurring from [1] due to not added space after 'msgstr' in the 'es_419.po' file. This is because the recently refactored code https://github.com/odoo/enterprise/pull/52141 updated translations but removed space from [1]. Stack Trace: ``` KeyError: ('ir.http', <function IrHttp.get_web_translations_hash at 0x7f1bdaeb8dc0>, frozenset({'stock', 'l10n_mx_edi_stock_extended', 'sale_planning', 'l10n_mx_xml_polizas', 'stock_account_enterprise', 'sale_timesheet_enterprise'
Original PR description
Currently, a log error is occurring from [1] due to not added space after 'msgstr' in the 'es_419.po' file. This is because the recently refactored code https://github.com/odoo/enterprise/pull/52141…
Currently, a log error is occurring from [1] due to not added space after 'msgstr' in the 'es_419.po' file. This is because the recently refactored code https://github.com/odoo/enterprise/pull/52141 updated translations but removed space from [1].
Stack Trace:
```
KeyError: ('ir.http', <function IrHttp.get_web_translations_hash at 0x7f1bdaeb8dc0>, frozenset({'stock', 'l10n_mx_edi_stock_extended', 'sale_planning', 'l10n_mx_xml_polizas', 'stock_account_enterprise', 'sale_timesheet_enterprise', 'hr_skills_survey', 'timer', 'spreadsheet_dashboard_sale_timesheet', 'spreadsheet_dashboard_account_accountant', 'saas_trial', 'digest_enterprise', 'rating', 'currency_rate_live', 'gamification', 'auth_totp', 'barcodes_gs1_nomenclature', 'google_gmail', 'project_enterprise', 'l10n_mx_re...
File "odoo/tools/cache.py", line 99, in lookup
r = d[key]
File "<decorator-gen-5>", line 2, in __getitem__
File "odoo/tools/func.py", line 87, in locked
return func(inst, *args, **kwargs)
File "odoo/tools/lru.py", line 34, in __getitem__
a = self.d[obj]
OSError: Syntax error in po file (line 314)
File "odoo/tools/translate.py", line 1617, in _get_code_translations
p = CodeTranslations._read_code_translations_file(fileobj, filter_func)
File "odoo/tools/translate.py", line 1604, in _read_code_translations_file
reader = TranslationFileReader(fileobj, fileformat='po')
File "odoo/tools/translate.py", line 589, in TranslationFileReader
return PoFileReader(source)
File "odoo/tools/translate.py", line 644, in __init__
self.pofile = polib.pofile(source.read().decode())
File "polib.py", line 130, in pofile
return _pofile_or_mofile(pofile, 'pofile', **kwargs)
File "polib.py", line 78, in _pofile_or_mofile
instance = parser.parse()
File "polib.py", line 1428, in parse
raise IOError('Syntax error in po file %s(line %s)' %
```
This PR fixes the above issue by adding space after 'msgstr' at [1].
[1]-https://github.com/odoo/enterprise/blob/8351e902b9c7ae25b37ba89cc6b75e5da1736e42/l10n_mx_edi_stock/i18n/es_419.po#L314
sentry-4704027071
Forward-Port-Of: odoo/enterprise#52305In the community PR, we avoid calling `flush_all()` when adding no-default `ir.property`. But it means that we need to flush properly when the ir_property table is used in a cr.execute to pass the `test_followup_line_and_status` and `test_followup_multiple_invoices` tests. https://github.com/odoo/odoo/pull/145171 Forward-Port-Of: odoo/enterprise#52291 Forward-Port-Of: odoo/enterprise#52207
Original PR description
In the community PR, we avoid calling `flush_all()` when adding no-default `ir.property`. But it means that we need to flush properly when the ir_property table is used in a cr.execute to pass the `test_followup_line_and_status` and `test_followup_multiple_invoices` tests. https://github.com/odoo/odoo/pull/145171 Forward-Port-Of: odoo/enterprise#52291 Forward-Port-Of: odoo/enterprise#52207
Before this commit ticket reference on new_ticket_request_email_template was the ID of the helpdesk ticket, and not the ticket reference. this commit corrects that mistake. opw-3580532 Forward-Port-Of: odoo/enterprise#51257
Original PR description
Before this commit ticket reference on new_ticket_request_email_template was the ID of the helpdesk ticket, and not the ticket reference. this commit corrects that mistake. opw-3580532 Forward-Port-Of: odoo/enterprise#51257
This adds e-invoicing via Avalara. It relies on l10n_br_avatax for the taxes to submit. This doesn't depend on account_edi and instead builds on top of `account.move.send` which is more flexible. Eligible invoices can be e-invoiced via the "Send & Print" wizard. Errors are handled synchronously for single invoices and asynchronously for multiple. Goods invoices, credit notes and debit notes can be e-invoiced. It's also possible to correct and cancel electronically invoiced invoices with
Original PR description
This adds e-invoicing via Avalara. It relies on l10n_br_avatax for the taxes to submit. This doesn't depend on account_edi and instead builds on top of `account.move.send` which is more flexible.…
This adds e-invoicing via Avalara. It relies on l10n_br_avatax for the taxes to submit. This doesn't depend on account_edi and instead builds on top of `account.move.send` which is more flexible. Eligible invoices can be e-invoiced via the "Send & Print" wizard. Errors are handled synchronously for single invoices and asynchronously for multiple. Goods invoices, credit notes and debit notes can be e-invoiced. It's also possible to correct and cancel electronically invoiced invoices with `l10n_br_edi.invoice.update`. Avalara provides two endpoints for e-invoicing [1][2]. The first provides both tax calculation and e-invoicing, the second provides only e-invoicing. The first one is most convenient but doesn't fit well in Odoo. Taxes could change and at that point the invoice is already posted. We instead opt to implement the second endpoint, and provide the taxes that were calculated when the invoice posted by l10n_br_avatax. This response is temporarily saved in l10n_br_edi_avatax_data and deleted once e-invoicing succeeds. Some fuctions were extracted in l10n_br_avatax to be reused in l10n_br_edi, without changing any functionality in l10n_br_avatax. The only change made to tax calculation is how the hsCode is sent. It needs to be sent to both the tax calculation endpoint and the e-invoice endpoint but only the former accepts the hsCode with periods (.). Removing them works for both endpoints, and is simpler than having to remove them afterwards for just the e-invoice endpoint. A separate feature is number cancellation. It notifies the government a range of numbers in a journal won't be used. It's provided by `l10n_br_edi.cancel.range`. This adds l10n_latam_identification_type_id to each demo partner so there's less to configure. It also sets is_company, which was forgotten before and makes more sense for these partners. It additionally sets an address on BR Company Customer which allows easy testing of in-state transactions (same state as the demo res.company). We finally add some demo products that have been pre-configured to test various tax and EDI calculation scenarios. task-3564171 IAP: https://github.com/odoo/iap-apps/pull/725 [1] https://avataxbr-docs.avalarabrasil.com.br/#/Calculations/payloadTransaction [2] https://avataxbr-docs.avalarabrasil.com.br/#/Invoice%20Goods/sendInvoiceGoods Forward-Port-Of: odoo/enterprise#50780
Change adds missing helpers and alters some of their messages in differents parts of HR apps. task-3522163 Forward-Port-Of: odoo/enterprise#52261 Forward-Port-Of: odoo/enterprise#50490
Original PR description
Change adds missing helpers and alters some of their messages in differents parts of HR apps. task-3522163 Forward-Port-Of: odoo/enterprise#52261 Forward-Port-Of: odoo/enterprise#50490
Before this commit, if the name of the current model on the field popover was to large, there was a blank space. In addition, in debug mode, there was a traceback when trying to add a field in the dynamic table because of props validation. After this commit, no more blank space and the format of the SelectMenu's items are corrected. Forward-Port-Of: odoo/enterprise#50711
Original PR description
Before this commit, if the name of the current model on the field popover was to large, there was a blank space. In addition, in debug mode, there was a traceback when trying to add a field in the dynamic table because of props validation. After this commit, no more blank space and the format of the SelectMenu's items are corrected. Forward-Port-Of: odoo/enterprise#50711
**Steps to reproduce** 1. Open project. 2. Configuration > Project 3. Open any project > Setting tab 4. Try to create a new workspace with the 'create and edit' option. **Issue** Opening the form view of 'documents.folder' model from another model by 'create and edit' option or through the internal link loads a secondary form view which is used for folder deletion. **Technical** The commit https://github.com/odoo/enterprise/commit/2254eb07fd42ec88341d9d7ac92f09a379c6fa55 introduced a
Original PR description
**Steps to reproduce** 1. Open project. 2. Configuration > Project 3. Open any project > Setting tab 4. Try to create a new workspace with the 'create and edit' option. **Issue** Opening the form view of 'documents.folder' model from another model by 'create and edit' option or through the internal link loads a secondary form view which is used for folder deletion. **Technical** The commit https://github.com/odoo/enterprise/commit/2254eb07fd42ec88341d9d7ac92f09a379c6fa55 introduced a new form view for workspace deletion in 'document.folder' model. But the sequence of form views is the same, so the form views are sorted alphabetically by name, causing the first one to be loaded. **After this PR** The correct form view is loaded for 'document.folder'. Task-3575307 Forward-Port-Of: odoo/enterprise#51239
send cloud shipping products, records created automatically and that should be linked to only one carrier are linked to two carriers if we use the duplicate button. **steps to reproduce:** - configure a sendclound carrier (carrier A) - duplicate it (carrier B) - on B, click on "Load your SendCloud shipping products" **before this commit:** - On A, sendcloud shipping product is deleted. This is because of https://github.com/odoo/enterprise/blob/2fcc1224915301b4cbd1c582a319d37961d11
Original PR description
send cloud shipping products, records created automatically and that should be linked to only one carrier are linked to two carriers if we use the duplicate button. **steps to reproduce:** - configure a sendclound carrier (carrier A) - duplicate it (carrier B) - on B, click on "Load your SendCloud shipping products" **before this commit:** - On A, sendcloud shipping product is deleted. This is because of https://github.com/odoo/enterprise/blob/2fcc1224915301b4cbd1c582a319d37961d1120f/delivery_sendcloud/wizard/sendcloud_shipping_wizard.py#L60 **after this commit:** - sendcloud products are not copied when using copy(). Adding an api.constrains on top of that to ensure that a sendcloud product is not used on another carrier seems overkill. opw-3573247 Forward-Port-Of: odoo/enterprise#52346 Forward-Port-Of: odoo/enterprise#51301
The customer wants to use Web Studio to create an add custom button from an existing method in the model; however, there is a non-existent method identified, at that time the error will be generated. step to reproduce: - install the `web_studio & sale_management` - open sale - open any one Quotations - click on `web_studio` button - click on Add button - enter the label & select `call a method` - write method name `action_delete` (non-existing method in model) - the error will be gen
Original PR description
The customer wants to use Web Studio to create an add custom button from an existing method in the model; however, there is a non-existent method identified, at that time the error will be generated.…
The customer wants to use Web Studio to create an add custom button from an existing method in the model; however, there is a non-existent method identified, at that time the error will be generated.
step to reproduce:
- install the `web_studio & sale_management`
- open sale
- open any one Quotations
- click on `web_studio` button
- click on Add button
- enter the label & select `call a method`
- write method name `action_delete` (non-existing method in model)
- the error will be generated,
sentry traceback-
```
AttributeError: 'sale.order' object has no attribute 'prin'
File "odoo/http.py", line 2157, in __call__
response = request._serve_db()
File "odoo/http.py", line 1732, 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 1759, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1960, 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 207, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 722, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/17.0/web_studio/controllers/main.py", line 1697, in check_method
if not callable(getattr(model, method_name)):
```
after this commit ,If the customer prefers a non-existing method,at that time raise Validation Error.
sentry-4614276017
Forward-Port-Of: odoo/enterprise#50890Prior to this commit, attempting to print a receipt for a paid order in the PoS restaurant resulted in an error. This issue was due to the 'getReceiptHeaderData' method in the PoS restaurant using 'this.get_order()' to retrieve the order, which is not applicable for paid orders. Additionally, this problem exists in other modules that override 'getReceiptHeaderData'. To resolve this, the order is now passed as an argument to the 'getReceiptHeaderData' function. Community PR: https://github.
Original PR description
Prior to this commit, attempting to print a receipt for a paid order in the PoS restaurant resulted in an error. This issue was due to the 'getReceiptHeaderData' method in the PoS restaurant using 'this.get_order()' to retrieve the order, which is not applicable for paid orders. Additionally, this problem exists in other modules that override 'getReceiptHeaderData'. To resolve this, the order is now passed as an argument to the 'getReceiptHeaderData' function. Community PR: https://github.com/odoo/odoo/pull/145252 opw-3616997 Forward-Port-Of: odoo/enterprise#52249
Previously, the code that sets default tags on bank accounts was in l10n_de_reports, so was not yet loaded when the demo company is created at module init of l10n_de. As a result, the demo company was created without the necessary tags on the 1001 Cash and 1201 Bank accounts, which meant that the Balance Sheet would not be impacted by these accounts on the demo company. This commit fixes this. Community PR: https://github.com/odoo/odoo/pull/145013 taskid:none Forward-Port-Of: odoo/e
Original PR description
Previously, the code that sets default tags on bank accounts was in l10n_de_reports, so was not yet loaded when the demo company is created at module init of l10n_de. As a result, the demo company was created without the necessary tags on the 1001 Cash and 1201 Bank accounts, which meant that the Balance Sheet would not be impacted by these accounts on the demo company. This commit fixes this. Community PR: https://github.com/odoo/odoo/pull/145013 taskid:none Forward-Port-Of: odoo/enterprise#52302 Forward-Port-Of: odoo/enterprise#52143
After commit 5adeb7f the function `customerDisplayHTML` was called on `this`, which is wrong, as it was not defined on the current context, but rather on the `pos_store`. As such, in this commit we fix the issue by correctly calling the function. Forward-Port-Of: odoo/enterprise#52150
Original PR description
After commit 5adeb7f the function `customerDisplayHTML` was called on `this`, which is wrong, as it was not defined on the current context, but rather on the `pos_store`. As such, in this commit we fix the issue by correctly calling the function. Forward-Port-Of: odoo/enterprise#52150
In some countries, some reports (typically tax report or EC Sales List) need to be submitted to the state with rounded amounts (the exact rounding strategy possibly varying from one country to the other). So far, we did support that. In such cases, aggregations should be computed on the rounded values, so doing something in format_value was not enough. We solve this by introducing a new mechanism controlled from the options: integer rounding. This will be used in future commits to enforce suc
Original PR description
In some countries, some reports (typically tax report or EC Sales List) need to be submitted to the state with rounded amounts (the exact rounding strategy possibly varying from one country to the…
In some countries, some reports (typically tax report or EC Sales List) need to be submitted to the state with rounded amounts (the exact rounding strategy possibly varying from one country to the other). So far, we did support that. In such cases, aggregations should be computed on the rounded values, so doing something in format_value was not enough. We solve this by introducing a new mechanism controlled from the options: integer rounding. This will be used in future commits to enforce such roundings, by calling the provided helper in a custom handler linked to the report, in _custom_options_initializer. When the option is enabled, a new filter is displayed in the exra options, allowing to disable integer rounding. This way, users wishing to audit the details of the report don't loose precision. When printing the report, though, integer rounding is always enforced on reports setup to use it. Note that using this option key on reports using a _dynamic_lines_generator will require case-by-case management of it within the custom code ; it's not supported automatically for them (since they don't use engines). This will change in master, but requires additional changes on the moment formatted values are computed (that are planned to land in master in the near future). Forward-Port-Of: odoo/enterprise#52289 Forward-Port-Of: odoo/enterprise#51414
This reverts commit 95bc0589fdad8479f1288139989f3430837d5612. Forward-Port-Of: odoo/enterprise#52321
Original PR description
This reverts commit 95bc0589fdad8479f1288139989f3430837d5612. Forward-Port-Of: odoo/enterprise#52321