Search
Navigate
Branch
Thursday, October 12, 2023
23 changes
New functionality added to Odoo
Kiosk orders are now automatically sent to the preparation display once completed, helping kitchen staff see and prepare them without extra steps. The display also shows each order's tracking number and whether it is for takeaway or eat-in, improving clarity for fulfillment.
Original PR description
pos*: pos_order_tracking_display, pos_preparation_display, (new) pos_self_order_preparation_display This module is a bridge module between the preparation display and the kiosk mode. It sends the order to the preparation display when the order is done. It also adds the tracking number of the order on the up-right corner of the order-card and an indication if this order is to take away or to eat in. task-id: 3495477 Community PR: odoo/odoo#134980
Users can now ask the PDF splitter to automatically separate a combined invoice document using OCR results. This reduces manual work by creating the resulting documents and prefilled invoices from the detected content, with user notifications for successful requests or missing OCR credits.
Original PR description
[ADD] account_invoice_extract_documents: auto-split document based on OCR results Integrate the documents split functionality in the client side. Add a button in PDF splitter that creates an OCR request to auto-split a document invoice creating documents and prefilled invoices with the results of the OCR. [https://www.odoo.com/web#id=3377433&cids=1&menu_id=4720&action=333&active_id=2068&model=project.task&view_type=form]
Enhancements to existing features
This update reduces the amount of generated CSS used by accounting and marketing automation screens. It should make pages slightly lighter to load while keeping the visual appearance and behavior unchanged.
Original PR description
On a runbot all database, moving from 2.15MB to 1.95MB (uncompressed) of CSS. task-3546717
Miscellaneous changes
task-3497547 Forward-Port-Of: odoo/enterprise#47073
Original PR description
task-3497547 Forward-Port-Of: odoo/enterprise#47073
Odoo now lets teams create reusable activity plans for more business records and launch them for several records at once. This makes follow-up workflows easier to configure and faster to apply across areas such as HR, CRM, projects, subscriptions, documents, field service, and reporting.
Original PR description
Generalize the hr.employee activity plan to any model, allowing to create activity plan that can be launched on any model. The activity can now be created in batch by selecting multiple record in the…
Generalize the hr.employee activity plan to any model, allowing to create activity plan that can be launched on any model. The activity can now be created in batch by selecting multiple record in the list view and then clicking on a "clock" icon in a row similarly to the batch records update (selecting multiple records allows to change for example their name in batch in the list view). We implement also that functionality for the plan, allowing to launch a plan on multiple records at once. We also centralize the launching of activity or activity plan through either the "Activities" button in the chatter or the "clock" button in the view list. Scheduling activity is now taken in charge by a wizard that can schedule a single activity as well as a plan. We add/update tests for checking that the wizard is launched with the right record selection (on a single record or a batch) and add tests for checking the wizard itself. The plan can be defined through an added menu in the technical admin menu but also through configuration menu added in the module crm, project. Technical notes: In the added wizard, to determine that there is a error, we introduce the has_error field because we cannot use easily the error field for that. Indeed, to determine that there is no error, we have to compare it to "<p><br></p>" (more precisely <p><br></p>) which is not handy and may change in the future. This is because when we write False on field error and read it after, we get "<p><br></p>". Instead, we centralize this weird comparison in the model in the compute method of has_error. The ActivityListPopover still displays the activity of the record on which it has been triggered but the button to schedule activity will launch a wizard that create activities in batch for the selected records if more than one was selected. For that, the ActivityListPopover component receives now an additional prop: resIds (selected records) on top of the resId prop (record on which the popup has been triggered). Note that when the line that trigger the popup is not selected, the batch mode is disabled to avoid confusion. We convert the custom plan implementation to use the generic one. As the generic one can define plans for multiple model. We use the check dedicated_to_res_model == 'hr.employee' to activate the specific feature for hr.employee. Indeed, that field contains the model name when the plan is applicable only for one model. Task-3390865
Appraisal screens now rely on employee fields that automatically show the right employee records based on the user's access level. This helps keep appraisal and feedback workflows aligned with permissions while reducing manual view configuration.
Original PR description
In the community counterpart of this PR, we change the employee custom fields to stop using always 'hr.employee.public' as the relation, but dynamically decide which relation it should use depending on the group that the current user has. Also, we allow forcing a relation by passing it as an option in the view. So, this commit removes the relation of the fields that would benefit from having this feature of showing different records depending on the user group. task-3524305
Time off records now track changes to the payslip state in the activity log. This gives HR users a clearer history of payroll-related status updates directly from the employee leave record.
Original PR description
The Payslip State field will be tacked in the chatter so that it will be helpful for the user. task: 3506642
Odoo now loads the rich text editor only when it is actually needed, helping the backend open faster for users. The update also makes the supporting assets available ahead of time to keep automated processes and tests more reliable.
Original PR description
[IMP] knowledge: lazy load wysiwyg In order to improve the loading time of the odoo backend, only load the wysiwyg before starting an html_field. task-3493014
Field service teams can now use the newer product catalog experience when adding products to service tasks and related sales lines. This makes product selection more consistent with sales workflows while preserving the specific update behavior needed for field service operations.
Original PR description
Purpose of this PR: Sales team implemented a new catalog option to select product to add on a Sale Order (https://github.com/odoo/odoo/pull/106382) We want to replace the actual FSM stat button…
Purpose of this PR: Sales team implemented a new catalog option to select product to add on a Sale Order (https://github.com/odoo/odoo/pull/106382) We want to replace the actual FSM stat button product by an access to this catalog ## Details about the implementation: ### Original product.catalog architecture product.catalog view is created in the *sale* module (odoo/addons/sale/views/product_product_views.xml) this product.catalog is using the js_class 'sale_product_kanban' to represent the kanban records of each product (odoo/addons/sale/static/src/js/product_catalog/kanban_view.js) as well as a new componant sale_order_line.js (present at the bottom of the product kanban card, displays the actual number of products in the SOL ) 'sale_product_kanban' record uses RPC call on a specific route to update and fetch informations about the product, this routing is handled by the controller (odoo/addons/sale/controllers/[catalog.py](https://catalog.py/)) The product.catalog view is then inherited by the *sale_stock* module to add the on Hand quantity of product ### Modifications made: Added a new controller with a new route to update the fsm product, this is because the logic of updating a SOL line from the sale module is quite different from updating a sale order line from the industry_fsm module, we just created a new method/route sale_product_catalog_update_sale_order_line_fsm_info which is called by the new kanban_record class we also inherit the method `sale_product_catalog_get_sale_order_lines_info` just to update the context with the task_fsm_id Added the task-id to the product_catalog/kanban_record env Adapted industry_fsm tours accordingly Task-3343547 Community PR: https://github.com/odoo/odoo/pull/127161 Upgrade PR: https://github.com/odoo/upgrade/pull/4887 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
A fillable Danish accounting procedure PDF has been added to the Documents accounting app. This helps Danish businesses document accounting procedures in line with updated government guidance and compliance expectations.
Original PR description
The Danish Tax Agency and the Danish Business Authority are launching an updated common standard chart of accounts. For the accounting act, we need to provide a way to support the function that users can enter an accounting guide for the individual account This commit adds a text file of danish accounting procedure in documents_account, following the strucure from Danish government's documentation task-id: 3531476
Two country-specific payroll accounting test modules are now excluded from the default automated runbot installation. This helps keep automated testing environments lighter and avoids loading extra payroll components unless they are explicitly needed.
Original PR description
*: test_l10n_(ch, us)_hr_payroll_account Prior to this commit, the modules `l10n_ch_hr_payroll`, and `l10n_us_hr_payroll` were automatically loaded on the runbot because these modules depend on `test_l10n_ch_hr_payroll_account` and `test_l10n_us_hr_payroll_account` respectively. In order to avoid overloading these modules on the runbot, we have added `installable: False` in the manifest file on `test_l10n_ch_hr_payroll_account` and `test_l10n_us_hr_payroll_account`. task - 3501382
The Mongolia VAT report is now handled in the Community edition and uses the standard tax tag reporting approach. This keeps the report aligned with Odoo’s common reporting framework and makes it easier to maintain across editions.
Original PR description
- The VAT report was moved to the Community repo Community PR: https://github.com/odoo/odoo/pull/134590 Upgrade PR: https://github.com/odoo/upgrade/pull/5122
After odoo/enterprise@808ec18c3, when updating/upgrading a database where `hr_appraisal_survey` is already installed, Appraisals / Officer where still not able to see all appraisal feedback surveys. Forward-Port-Of: odoo/enterprise#48803 Forward-Port-Of: odoo/enterprise#48720
Original PR description
After odoo/enterprise@808ec18c3, when updating/upgrading a database where `hr_appraisal_survey` is already installed, Appraisals / Officer where still not able to see all appraisal feedback surveys. Forward-Port-Of: odoo/enterprise#48803 Forward-Port-Of: odoo/enterprise#48720
Issue: ====== When the user has a meeting as allday and the user is in a timezone different than `UTC` then getting available slots will produce wrong results. Steps to reproduce the error: ============================= - install calendar + appointment + website - go to calendar and clear all meetings first - go to to online appointments and update create an online appointment which only one user (mitchel admin) and having in schedule only monday from 2 to 23, select America/Chicago in
Original PR description
Issue: ====== When the user has a meeting as allday and the user is in a timezone different than `UTC` then getting available slots will produce wrong results. Steps to reproduce the error:…
Issue: ====== When the user has a meeting as allday and the user is in a timezone different than `UTC` then getting available slots will produce wrong results. Steps to reproduce the error: ============================= - install calendar + appointment + website - go to calendar and clear all meetings first - go to to online appointments and update create an online appointment which only one user (mitchel admin) and having in schedule only monday from 2 to 23, select America/Chicago in options - update the timezone of the user in user setting prefrences to the same one too. - Go back to calendar , create a meeting with allday activated and choose a day in the next week a in monday. - Go to website now and go to appointment and choose the timezone the same as before. you will see that that monday will still have some slots available. Origin of the issue: ==================== When calculating availabilities in the backend we use UTC time for the slots , so some of them might be in the next day which is tuesday so there is no allday event in that day and in that way it will be available. Solution: ========= I updated the check to check on allday with the user timezone so we make sure that it will be unavailable on an allday meeting date. opw-3439545 Forward-Port-Of: odoo/enterprise#46481
When a user chooses the same template from the template gallery twice, the preview disappears from the screen. This commit aims to resolve this issue. Steps to reproduce the issue: 1. Open the template gallery of Knowledge 2. Click on a template to preview it 3. Click on the same template again => The preview disappears from the screen TO BE: When the user selects the same template twice, the scroll offset of the preview should be set to 0. To reset the scroll offset of the preview w
Original PR description
When a user chooses the same template from the template gallery twice, the preview disappears from the screen. This commit aims to resolve this issue. Steps to reproduce the issue: 1. Open the…
When a user chooses the same template from the template gallery twice, the preview disappears from the screen. This commit aims to resolve this issue. Steps to reproduce the issue: 1. Open the template gallery of Knowledge 2. Click on a template to preview it 3. Click on the same template again => The preview disappears from the screen TO BE: When the user selects the same template twice, the scroll offset of the preview should be set to 0. To reset the scroll offset of the preview when the user selects a template, we follow these steps to avoid any flickering: 1. We hide the preview 2. We set the scroll offset of the preview back to 0 3. We load the new record 4. When the component is patched and the res id of the record changes, we display the preview to the user. When the user clicks on the same template twice, the step 4 is not executed because the res id of the record does not change (see: the dependencies of the `useEffect`). Hence, the preview remains in the hidden state. This commit will ensure that the preview will be hidden only if the user selects another template. Reference: https://github.com/odoo/enterprise/pull/47451 task-3525333 Forward-Port-Of: odoo/enterprise#48057
The error will be generated when the verified token is not received from WhatsApp and this error can occur in many different kinds of situations, including Incorrect Endpoint URLs, Authentication Issues, and Network Issues, among others. Steps To Reproduce- - Install and open the `WhatsApp` - Open Configuration Menu > WhatsApp Business Accounts. - Create the New > Enter the record > save it. - click on the box of `callback URL` in `Receiving messages`. sentry traceback- ``` KeyError:
Original PR description
The error will be generated when the verified token is not received from WhatsApp and this error can occur in many different kinds of situations, including Incorrect Endpoint URLs, Authentication…
The error will be generated when the verified token is not received from WhatsApp and this error can occur in many different kinds of situations, including Incorrect Endpoint URLs, Authentication Issues, and Network Issues, among others.
Steps To Reproduce-
- Install and open the `WhatsApp`
- Open Configuration Menu > WhatsApp Business Accounts.
- Create the New > Enter the record > save it.
- click on the box of `callback URL` in `Receiving messages`.
sentry traceback-
```
KeyError: 'hub.verify_token'
File "odoo/http.py", line 2134, in __call__
response = request._serve_db()
File "odoo/http.py", line 1710, in _serve_db
return service_model.retrying(self._serve_ir_http, self.env)
File "odoo/service/model.py", line 133, in retrying
result = func()
File "odoo/http.py", line 1737, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 1851, in dispatch
return self.request.registry['ir.http']._dispatch(endpoint)
File "addons/website/models/ir_http.py", line 235, in _dispatch
response = super()._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 191, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 717, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "home/odoo/src/enterprise/saas-16.4/whatsapp/controller/main.py", line 75, in webhookget
token = kwargs['hub.verify_token']
```
sentry-4471221045
Forward-Port-Of: odoo/enterprise#47287Steps: 1. Install the WhatsApp module. 2. Create a WhatsApp template with header type=Text 3. Add Template Header Text = hello {{1}} On saving this record It will raise traceback Problem: the method _compute_variable_ids of the WhatsApp template is trying to fetch the element of set by header_variable[0] which is not supported. So it is giving Traceback for that. Solution: To solve this issue, use a list for header_variable. Also added a unit test case for the dynamic header
Original PR description
Steps:
1. Install the WhatsApp module.
2. Create a WhatsApp template with header type=Text
3. Add Template Header Text = hello {{1}}
On saving this record It will raise traceback
Problem:
the method _compute_variable_ids of the WhatsApp template is trying to fetch
the element of set by header_variable[0] which is not supported.
So it is giving Traceback for that.
Solution:
To solve this issue, use a list for header_variable.
Also added a unit test case for the dynamic header
task - 3510168
Forward-Port-Of: odoo/enterprise#47279Since saas-16.4, the field `name` is required on the new model `soda.account.mapping`, which is wrong because a coda file could be imported without label on transaction line. Therefore, a ValidationError is raised in this case. With this commit, we set the label to an empty string if label is not set. We also adapt a test and the related test file to be consistent with the behavior. opw-3506519 Forward-Port-Of: odoo/enterprise#47416
Original PR description
Since saas-16.4, the field `name` is required on the new model `soda.account.mapping`, which is wrong because a coda file could be imported without label on transaction line. Therefore, a ValidationError is raised in this case. With this commit, we set the label to an empty string if label is not set. We also adapt a test and the related test file to be consistent with the behavior. opw-3506519 Forward-Port-Of: odoo/enterprise#47416
Steps to reproduce: - Create quality point on receipt operations with control per quantity - Create receipt with product tracked by lot - Receive products, create a move line and enter a lot name - save, click quality checks and pass the check - validate the receipt Expected Behavior, the Lot field in quality check form should be the same as the move line in the receipt. Actual Behavior, the Lot field is empty TaskId: 3380442 Forward-Port-Of: odoo/enterprise#47727
Original PR description
Steps to reproduce: - Create quality point on receipt operations with control per quantity - Create receipt with product tracked by lot - Receive products, create a move line and enter a lot name - save, click quality checks and pass the check - validate the receipt Expected Behavior, the Lot field in quality check form should be the same as the move line in the receipt. Actual Behavior, the Lot field is empty TaskId: 3380442 Forward-Port-Of: odoo/enterprise#47727
Duplicate an asset, the acquisition_date is not copied. But that's a bad idea. That's like using the first asset as a model. Instead, we copy the acquisition_date and prorata_date Forward-Port-Of: odoo/enterprise#48776 Forward-Port-Of: odoo/enterprise#48134
Original PR description
Duplicate an asset, the acquisition_date is not copied. But that's a bad idea. That's like using the first asset as a model. Instead, we copy the acquisition_date and prorata_date Forward-Port-Of: odoo/enterprise#48776 Forward-Port-Of: odoo/enterprise#48134
`KnowledgeDocumentsSelector` is an aggregate of both `ImageSelector` and `DocumentsSelector` for files used with the `/file` command in `Knowledge`. As such, the same domain restrictions should apply for technical files so that they are not displayed to the user. See [1], [2]. [1]: https://github.com/odoo-dev/odoo/commit/c46204dff99c42a5b6f8b49da2094f850b619d6f [2]: https://github.com/odoo-dev/odoo/commit/7fd0698cf765a79959566b51e33cb76bff83d344 task-3172056 Forward-Port-Of: odoo/e
Original PR description
`KnowledgeDocumentsSelector` is an aggregate of both `ImageSelector` and `DocumentsSelector` for files used with the `/file` command in `Knowledge`. As such, the same domain restrictions should apply for technical files so that they are not displayed to the user. See [1], [2]. [1]: https://github.com/odoo-dev/odoo/commit/c46204dff99c42a5b6f8b49da2094f850b619d6f [2]: https://github.com/odoo-dev/odoo/commit/7fd0698cf765a79959566b51e33cb76bff83d344 task-3172056 Forward-Port-Of: odoo/enterprise#48758 Forward-Port-Of: odoo/enterprise#48628
Have Account groups defined for the current company Open Balance Sheet Enable "Hierarchy and Subtotals" option Click on unfoldable line twice Issue. error message pops up. OwlError: Got duplicate key in t-foreach: ~account.group~ This occurs because the new lines fetched for the group info have no reference to the parent line. As result the fold/unfold mechanism is not working properly and fetching more lines will raise duplication issues opw-3521189 Forward-Port-Of: odoo/enterpri
Original PR description
Have Account groups defined for the current company Open Balance Sheet Enable "Hierarchy and Subtotals" option Click on unfoldable line twice Issue. error message pops up. OwlError: Got duplicate key in t-foreach: ~account.group~ This occurs because the new lines fetched for the group info have no reference to the parent line. As result the fold/unfold mechanism is not working properly and fetching more lines will raise duplication issues opw-3521189 Forward-Port-Of: odoo/enterprise#48714
The accounts of the demo asset are completely wrong. Atleast make them coherent with the domain available. Forward-Port-Of: odoo/enterprise#48701 Forward-Port-Of: odoo/enterprise#48446
Original PR description
The accounts of the demo asset are completely wrong. Atleast make them coherent with the domain available. Forward-Port-Of: odoo/enterprise#48701 Forward-Port-Of: odoo/enterprise#48446