Tuesday, April 16, 2024
21 changes · master
Enhancements to existing features
Adds ready-to-use Indian payroll sample data so salespeople and business analysts can demonstrate payroll workflows more easily. The demo setup includes employees, users, contracts, leave allocations, bank details, payslips, and payslip batches for an Indian company.
Original PR description
The purpose of these demo data is for our salesperson or business analyst to give a demo to customers/partners. This PR includes the following demo data: --------- - Addition of Indian employees - Creation of users for the Indian company - Generation of contracts for all employees - Allocation of leaves for these employees - Inclusion of partners and their bank account details - Generation of payslips for all employees with varying structures - Creation of payslips batch task-3491700
This update adds broader automated checks to make sure the timesheet leaderboard behaves correctly across timer, grid, list, kanban, and holiday-related scenarios. It helps reduce the risk of ranking or display issues reaching users, improving confidence in timesheet reporting.
Original PR description
This commit will add a certain number of tests to ensure that the timesheets leaderboard works properly. task-3570306
Users can now enable a Merge option on selected business records and send them directly to the deduplication screen as one merge group. This makes it easier to clean up duplicate or noisy data on supported models without relying only on automated rules.
Original PR description
Purpose ======= Introduce a "manual" merge mode. Indeed, while the current rules introduced some "ongoing hygiene", one may wants to take manual action to "clean up one's database". For example,…
Purpose ======= Introduce a "manual" merge mode. Indeed, while the current rules introduced some "ongoing hygiene", one may wants to take manual action to "clean up one's database". For example, because one is working on a report (pivot table, o-spreadsheet, ...). Or because one is able to take a more drastic approach (merge records that aren't technically the same to reduce the amount of noise, ...). The objective is to allow the user to select multiple records on a model to open the data_merge deduplicate view with the records them selected to merge them quickly. Specification ============= Add a button on ir.model view that allow the user to enable the Merge contextual action on the current model. Once the merge action is enable, the user is able to select multiple records and open the data_merge deduplicate view targetting only the records them selected. The selected records are placed in the same merge group. In Data_merge/configuration, user can find the list of models in which the merge action has been activated. By default, display the "Merge" option in the action menu for the following models: crm.lost.reason crm.tag event.tag.category product.category project.tags project.task helpdesk.ticket helpdesk.tag res.country res.country.state res.partner.category res.partner.industry res.partner.title utm.campaign utm.medium utm.source As some models already have custom merge methods, the generic merge action should not be activated on those models, notably: crm.lead res.partner account.analytic.line Link ==== Task ID: 2459416 COM PR: https://github.com/odoo/odoo/pull/67613
Kenyan payroll now lets employees handle their own life insurance contributions while still having the appropriate deduction reflected on their payslip. This gives employees more flexibility and reduces company-managed administration for this benefit, while also cleaning up unused related code.
Original PR description
Add the possibility for employees to manage their life insurance by themselves instead of the company so they can contribute to the life insurance by themselves and still have the deduction on their payslip. Also this PR remove unused code by the same occasion task-3827182
Embedded view links in Knowledge articles now open a popover with clear actions to open, copy, edit, or remove the link. This makes linked views easier to manage directly from the article editor and improves guidance in the Helpdesk Knowledge flow.
Original PR description
*= knowledge website_helpdesk_knowledge With this PR, the behavior for embedded view links is, On the click, it opens a popover that contains the name (same as the body) and three buttons(copy, edit,…
*= knowledge website_helpdesk_knowledge With this PR, the behavior for embedded view links is, On the click, it opens a popover that contains the name (same as the body) and three buttons(copy, edit, remove). - Name in the popover which is a link, on the click, it will redirect to that view. - Copy button: It copies the name (with styling if applied) and prints on the paste as it is with the popover behavior. - Edit button: It opens a dialog box where the name has already been printed and users can edit the name and save it to edit the name in the main body. -> There is styling too, for customizing the link and making it a button. - Remove button: It converts the link into simple text. So, this is a new functionality to click on the link from the popover to redirect to that view, - For that, modified the tour which directs the users on how the flow works. **Task**-3082042 Co-authored-by: Naman Shah <nash@odoo.com> Co-authored-by: Damien Abeloos <abd@odoo.com>
A new digest gives teams regular visibility into social post engagement and clicks over the past day, week, and month. Appointment digest reporting is also enhanced with a linked action for booked meetings, making it easier to review related activity.
Original PR description
This PR will add a new digest for the `social` module. The digest will provide the following statistics: - Engagement on the posts created over the last 24h / 7 days / 30 days. - Number of clicks generated by the posts created over the last 24h / 7 days / 30 days. We will also link an action to the digest "# Meetings Booked" digest added to the community version (see related PR). task-2647241
Shop attribute filters now carry through from the product listing to product pages and remain selected when shoppers return to the shop. This makes browsing more consistent and reduces friction for customers refining products by attributes.
Original PR description
- Attributes filtered on /shop should carry over to the product page - When going back to /shop, the attributes selected should remain task-3067205 See also: - odoo/odoo#157412
Features or functions removed from Odoo
The subscription-specific warning for archived products was removed because this check is now handled in the main Sales app. This avoids duplicate warnings and keeps the subscription workflow aligned with the broader sales process.
Original PR description
The feature has been moved to the `sale` module. task-3757933
Miscellaneous changes
Issue --> When creating a POS order via any pos config, any active preparation display that has any of the product categories used in the order will cause the customer display to reload. This happens regardless of the `pos_config_ids` set on the preparation display record. Therefore, an order from a `pos.config` **not** on the preparation display will still cause the display to reload Solution --> Edit the search domain on `pos_preparation_display.display` to check the origin of the ord
Original PR description
Issue --> When creating a POS order via any pos config, any active preparation display that has any of the product categories used in the order will cause the customer display to reload. This happens regardless of the `pos_config_ids` set on the preparation display record. Therefore, an order from a `pos.config` **not** on the preparation display will still cause the display to reload Solution --> Edit the search domain on `pos_preparation_display.display` to check the origin of the order to keep the display from reloading unnecessarily. opw-3838879 Forward-Port-Of: odoo/enterprise#60575
Commit 2740da2701557da09566aa25f064fe3cac7a881a modified a mail template's subject, which is translatable. Update the .pot file to reflect the change. opw-3748509 Forward-Port-Of: odoo/enterprise#60820
Original PR description
Commit 2740da2701557da09566aa25f064fe3cac7a881a modified a mail template's subject, which is translatable. Update the .pot file to reflect the change. opw-3748509 Forward-Port-Of: odoo/enterprise#60820
It is not working because some issues with AFIP test envrionment that added new restrictions that need to adapt- In this case we depend on AFIP to solve it and we do not know when we will have a solution. After everything is ok we will re add the test. Forward-Port-Of: odoo/enterprise#60577
Original PR description
It is not working because some issues with AFIP test envrionment that added new restrictions that need to adapt- In this case we depend on AFIP to solve it and we do not know when we will have a solution. After everything is ok we will re add the test. Forward-Port-Of: odoo/enterprise#60577
Follow-up of 0fd53102589e2bdc4d4a257f367a37eca88604c8 The mail template 'Helpdesk: Ticket Received' should also use the `name` instead of the `display_name` for emails all emails to be properly grouped. opw-3748509 Forward-Port-Of: odoo/enterprise#60242
Original PR description
Follow-up of 0fd53102589e2bdc4d4a257f367a37eca88604c8 The mail template 'Helpdesk: Ticket Received' should also use the `name` instead of the `display_name` for emails all emails to be properly grouped. opw-3748509 Forward-Port-Of: odoo/enterprise#60242
Work order can be start by employee, in scenario when creating new company there is no employees added by default, hence the work order can't be started. This commit is added an error message informing about it. ### [Reproduce] - Install: mrp,account - Create a new company, Select it - Update Settings: - Enable "work orders" (Settings/Manufacturing/Operations) - Set "Generic Chart Template" (Accounting/ Settings/ Fiscal Localization) - Create a new Manufacturing Order (Manufacturing/
Original PR description
Work order can be start by employee, in scenario when creating new company there is no employees added by default, hence the work order can't be started. This commit is added an error message informing about it. ### [Reproduce] - Install: mrp,account - Create a new company, Select it - Update Settings: - Enable "work orders" (Settings/Manufacturing/Operations) - Set "Generic Chart Template" (Accounting/ Settings/ Fiscal Localization) - Create a new Manufacturing Order (Manufacturing/ Operations/ Manufacturing Orders) - Select any product - Create a work order line - Confirm Manufacturing Order - Click on the start button in the operation line - BUG: Timer not timing opw-3770873 Forward-Port-Of: odoo/enterprise#60551 Forward-Port-Of: odoo/enterprise#59969
**Current behavior:** Adding a product to a POS order then zero-ing out the quantity of the line will result in an instance of division with this qty (now zero) in the denominator. **Expected behavior:** Don't allow a scenario to occur where 0 can appear in the denominator of a division operation. **Steps to reproduce:** 1. Switch to the demo German company installed with `l10n_de_pos_res_cert` 2. Enable Fiskaly in the company settings for the German company 3. Add
Original PR description
**Current behavior:** Adding a product to a POS order then zero-ing out the quantity of the line will result in an instance of division with this qty (now zero) in the denominator. **Expected…
**Current behavior:**
Adding a product to a POS order then zero-ing out the quantity
of the line will result in an instance of division with this qty
(now zero) in the denominator.
**Expected behavior:**
Don't allow a scenario to occur where 0 can appear in the
denominator of a division operation.
**Steps to reproduce:**
1. Switch to the demo German company installed with
`l10n_de_pos_res_cert`
2. Enable Fiskaly in the company settings for the German
company
3. Add a payment method in the POS config
3. Add a POS of type Restaurant and enable the TSS toggle
setting (comment out the `_l10n_de_fiskaly_iap_rpc()` call
in `l10n_de_pos_cert/models/pos_config.py` to save)
4. Add a floor and a table to the restaurant
5. Start a POS session and start an order, add some product
then select the order line and zero out the quantity with
the digital numpad
6. Go to payment -> register payment -> validate
7. Observe the error dialog
**Cause of the issue:**
In `l10n_de_pos_res_cert/models/pos_order.py`, the
`remove_from_ui` method calls `_line_differences()` if fiskaly
is setup for our German company which makes the call to
`_merge_order_lines()` where the following operation:
`str(group[0]['price_subtotal_incl']/group[0]['qty'])` may have
a denominator equal to 0.
**Fix:**
Do not call `_merge_order_lines()` on order lines which have a
quantity of zero.
opw-3751492
Forward-Port-Of: odoo/enterprise#60097Purpose ======= Since a recent update, the number of caracters for rule parameter Canton (ZG) - Church _tax (N) - Tax Scale (B) - Children (0) is exceeding the default buffer size, leading to a traceback on file import. Forward-Port-Of: odoo/enterprise#60716
Original PR description
Purpose ======= Since a recent update, the number of caracters for rule parameter Canton (ZG) - Church _tax (N) - Tax Scale (B) - Children (0) is exceeding the default buffer size, leading to a traceback on file import. Forward-Port-Of: odoo/enterprise#60716
**Before this commit** At the start of a pill resize sequence, if you go fast and your pointer enters an adjacent pill right before the sequence starts you may end up resizing the wrong record. **After this commit** The draggable_hook_builder has been improved in order to inform us when a drag sequence will start. We take advantage of this in order to fix the above issue. Forward-Port-Of: odoo/enterprise#60662 Forward-Port-Of: odoo/enterprise#60328
Original PR description
**Before this commit** At the start of a pill resize sequence, if you go fast and your pointer enters an adjacent pill right before the sequence starts you may end up resizing the wrong record. **After this commit** The draggable_hook_builder has been improved in order to inform us when a drag sequence will start. We take advantage of this in order to fix the above issue. Forward-Port-Of: odoo/enterprise#60662 Forward-Port-Of: odoo/enterprise#60328
Purpose ======= Add unit tests for the document activity view Test the fix of document archiving in the activity view PR: odoo/odoo/pull/151741 Task: 3704340 Load the services in a utils function to remove code redundancy. Task-3714544 Forward-Port-Of: odoo/enterprise#60614 Forward-Port-Of: odoo/enterprise#60140
Original PR description
Purpose ======= Add unit tests for the document activity view Test the fix of document archiving in the activity view PR: odoo/odoo/pull/151741 Task: 3704340 Load the services in a utils function to remove code redundancy. Task-3714544 Forward-Port-Of: odoo/enterprise#60614 Forward-Port-Of: odoo/enterprise#60140
The NHIF and AHL computation were not correct because they were based on the gross salary instead of the basic salary. task-3827167 Forward-Port-Of: odoo/enterprise#59518
Original PR description
The NHIF and AHL computation were not correct because they were based on the gross salary instead of the basic salary. task-3827167 Forward-Port-Of: odoo/enterprise#59518
Currently when auditing entries in the deferred report, you get a list of AMLs (journal items), but can't change the view. It is useful though to use other views, like the pivot view e.g. For this reason we let the user choose to switch between any view available in the generic Journal Items list. (Feedback from TSB) Forward-Port-Of: odoo/enterprise#53079
Original PR description
Currently when auditing entries in the deferred report, you get a list of AMLs (journal items), but can't change the view. It is useful though to use other views, like the pivot view e.g. For this reason we let the user choose to switch between any view available in the generic Journal Items list. (Feedback from TSB) Forward-Port-Of: odoo/enterprise#53079
Before this commit, the timesheets created inside `test_timesheet_ticket_consistency_when_helpdesk_team_change` and `test_timesheet_check_warning_when_helpdesk_team_change` tests could be unvalidated even after calling `action_timesheet_validate`. The reason is because the timesheets are created by the current user (OdooBot) is our case and his timezone could be different than the user who validates the timesheets and so the timesheets date could be tomorrow for the timesheet approver used
Original PR description
Before this commit, the timesheets created inside `test_timesheet_ticket_consistency_when_helpdesk_team_change` and `test_timesheet_check_warning_when_helpdesk_team_change` tests could be unvalidated even after calling `action_timesheet_validate`. The reason is because the timesheets are created by the current user (OdooBot) is our case and his timezone could be different than the user who validates the timesheets and so the timesheets date could be tomorrow for the timesheet approver used inside that test becaue of the timezone is not the same for the both users. To avoid timezone issue, this commit makes sure the same user creates and validates those timesheets since the goal of that test is to check the `project_id` field is unchanged for validated timesheets even if the ticket changed. runbot-61592 Forward-Port-Of: odoo/enterprise#60502
Steps to reproduce: ----------------- - install project module - create new project - click on project,and click on see examples button - click on use this for my project - create tasks and click on list view - unhide the start date and end date - give start date and end date for more than 1 records Issue: - Bug when mass editing the task's date_deadline (always showing the wrong date for one of the records) Cause: - this is because the for single record it is not accepting work
Original PR description
Steps to reproduce: ----------------- - install project module - create new project - click on project,and click on see examples button - click on use this for my project - create tasks and click on list view - unhide the start date and end date - give start date and end date for more than 1 records Issue: - Bug when mass editing the task's date_deadline (always showing the wrong date for one of the records) Cause: - this is because the for single record it is not accepting work intervals Solution: - by giving condition using len then issue will be solved task-3561946 Forward-Port-Of: odoo/enterprise#60748 Forward-Port-Of: odoo/enterprise#53164