Thursday, November 16, 2023
25 changes · master
New functionality added to Odoo
This update adds Starshipit delivery integration for Australian and New Zealand carriers and improves Australian payroll reporting setup. It also cleans up payroll labels and supports PAYG withholding reporting so businesses can better prepare Australian tax reports.
Original PR description
Aggregation of last minute fixes and features for Australian talk Will not be merged in this PR
Enhancements to existing features
Field Service task analysis reports now present time-based measures in an easier-to-read hours-and-minutes format and hide zero values that can clutter reporting. Default pivot and graph views are also better grouped, helping managers spot trends by month and project more quickly.
Original PR description
This PR makes the following improvements: ->Remove 'remaining hours percentage' measure from task analysis. -> change 'total hours' into 'total hours spent' and 'working days to assign' into 'Working…
Resolved issues and error corrections
Argentine electronic invoice users can now mark a reversal credit note as a cancellation directly in the reversal wizard. This lets businesses fully reverse customer-rejected SME credit invoices and continue the required electronic invoicing process without being blocked.
Original PR description
Steps to reproduce: (only in a production environment) - Install l10n_ar_edi - Switch to an Argentinian company (e.g. (AR) Responsanble Inscripto) - Create an invoice in "Electronic Invoice (FE)"…
Steps to reproduce: (only in a production environment) - Install l10n_ar_edi - Switch to an Argentinian company (e.g. (AR) Responsanble Inscripto) - Create an invoice in "Electronic Invoice (FE)" journal: * Customer: [an Argentinian one] (e.g. Belgrano Cargas Y Logistica S (Mipyme)) * Journal: Electronic Invoice (FE) * Document Type: (201) ELECTRONIC CREDIT INVOICE FOR SMBs (FCE) TO * FCE: Is Cancellation? (in "Other Info" tab): [NOT CHECKED] * FCE: Transmission Option (in "Other Info" tab): [anything] * Invoice Lines: Tax 21% and the total amount must be greater than 1000000 - Confirm the invoice - The invoice must be rejected by customer (that's why a production environment is required) - Create a credit note: * Document Type: (203) ELECTRONIC CREDIT NOTE SME SMEs (FCE) A - Click on "Reverse and Create Invoice" It is not possible to send the credit note because its "FCE: Is Cancellation?" property should be checked as the invoice has been rejected, but there is no way to do it. Solution: Add "FCE: Is Cancellation?" option in the reversal wizard. opw-3379792
Miscellaneous changes
In planning dashboard create a new planning Set any start date and an end date after 2 days Check "Save as Template" Save Check the creted template (Configuration>Shift Templates) Issues: Template name will have a greater days count because normal hours are counted as working hours opw-3475656 Forward-Port-Of: odoo/enterprise#50782 Forward-Port-Of: odoo/enterprise#46538
Original PR description
In planning dashboard create a new planning Set any start date and an end date after 2 days Check "Save as Template" Save Check the creted template (Configuration>Shift Templates) Issues: Template name will have a greater days count because normal hours are counted as working hours opw-3475656 Forward-Port-Of: odoo/enterprise#50782 Forward-Port-Of: odoo/enterprise#46538
This PR makes the following improvements:
->Remove 'remaining hours percentage' measure from task analysis. -> change 'total hours' into 'total hours spent' and 'working days to assign' into 'Working Days to Assign'.
->In pivot view and graph view of task analysis report, following measure will be appear as hh:mm.
-overtime, total hours, working hours to close, working hours to assign
->Hide the value if it is equal to 0 for the following measures:
-hours spent, overtime, progress, total hours, working hours to assign,
working days to assign, working hours to close, working days to close ->When calculating the average the following measures should exclude records with a value of 0
-progress, working hours to assign, working days to assign,
working hours to close, working days to close.
->Set the by default grouping for the following task analysis report
-for pivot view add the group by 'create date>month' and made changes
following changes in measure :
-count, working hours to assign, working hours to close, total hours
-for graph view add the group by 'create date>month>project'.
task-3514437Helpdesk teams can now access chatbot configuration directly from the live chat settings, making it easier to set up automated support flows. The live chat ticket search command now shows results in smaller batches with a load more option, helping agents browse matching tickets without being overwhelmed.
Original PR description
List of features this PR implements: - add a 'chatbots' menu under the 'configuration > tags' menu item / add a '-> configure chatbots' link that should redirect users to the configuration > chatbots…
List of features this PR implements: - add a 'chatbots' menu under the 'configuration > tags' menu item / add a '-> configure chatbots' link that should redirect users to the configuration > chatbots menu - /search_tickets command: if there are more than 5 results, display a 'load more' button ### Implementation details For the search_tickets command: This command triggers the method _execute_command_helpdesk_search_, it now calls a new method _fetch_ticket_by_keyword_ that return the msg containing links to the tickets corresponding to the query, by default the fetch tickets return only 5 tickets, if there are more than 5 ticket corresponding to the query a link *load more* will be added to the messages. When clicked this link will rpc call _fetch_ticket_by_keyword_ to fetch 5 more tickets this time, the steps can be repeated until all the tickets are fetched. To know if there are more tickets corresponding to the query than returned, we try and fetch one more ticket than the limit (so if we're at 5 we try to fetch 6 tickets), the last ticket will be removed from the list and the load more link will be added to the message The ticket fetching is ordered by 'id desc', fetching first the *6* tickets with the highest id corresponding to the query. The sixth tickets is ditched but it's ID is saved in the button tags so it can be recovered in the frontend to be given back to the backend in case the user clicks on load more. Once clicked the backend will only fetch ticket with ID lower or equal to the last ticket ID. Community PR: https://github.com/odoo/odoo/pull/131702 Task-3186593 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
When a helpdesk ticket is created with people copied on the email, those contacts are now automatically added as followers. This helps copied stakeholders receive updates and stay informed as the ticket progresses.
Original PR description
This commit's purpose is to ensure that when a ticket is created with an email_cc field set, the partners linked to this email will be set as follower of the ticket, in order for them to be able to follow the ticket evolution task-3251657
This update ensures prepaid support service lines remain visible even when an SLA ticket uses more hours than were originally available. This helps teams track over-consumed prepaid support work more accurately and avoids confusion when reviewing ticket billing details.
Original PR description
Before this PR, there was an issue where we couldn't display the SOL for a prepaid product when the remaining hours fell below 0 under an SLA policy. In this PR, we have addressed this problem by correctly setting the SOL for prepaid products even when their remaining hours go below 0 within the context of an SLA policy. task-3504562
Approval requests now only allow selecting request owners who belong to the current company. This helps prevent assigning approvals to the wrong company’s users in multi-company setups.
Original PR description
Request owner field's domain was extended - now only users from current company can be selected. task-3497563
## Description Portal routes `/my/tickets` or `/my/tasks` were reported slow to load with many items. ## Analysis The avatars that are loaded are of too large sizes (encoded in base64) compared to their rendering size. `o_portal_contact_img` limits the dimensions to `2.3em` (roughly `37px` on desktop), so it's useless to load `avatar_1024` for those image sources. This has a significant impact when the user has a slow connection, the server is hosted far away from the user, or the images us
Original PR description
## Description Portal routes `/my/tickets` or `/my/tasks` were reported slow to load with many items. ## Analysis The avatars that are loaded are of too large sizes (encoded in base64) compared to their rendering size. `o_portal_contact_img` limits the dimensions to `2.3em` (roughly `37px` on desktop), so it's useless to load `avatar_1024` for those image sources. This has a significant impact when the user has a slow connection, the server is hosted far away from the user, or the images used are of badly compressed (so each images takes a quite a few MiB). ## Fix Scan for all instances of the usage of `avatar_1024` on an `<img>` with the class `o_portal_contact_img` and reduce it to `avatar_128`. ## Reference opw-3470171 ## Linked PR https://github.com/odoo/odoo/pull/141877 Forward-Port-Of: odoo/enterprise#50678 Forward-Port-Of: odoo/enterprise#50557
product_qty no longer represent done qty after the move is done. Change to use quantity to calculate quantity produced on the Production Analysis report. Forward-Port-Of: odoo/enterprise#50398
Original PR description
product_qty no longer represent done qty after the move is done. Change to use quantity to calculate quantity produced on the Production Analysis report. Forward-Port-Of: odoo/enterprise#50398
https://github.com/odoo/enterprise/pull/34883 started showing the fuel type of the car_id in the form view of hr_contract. However, when selecting new cars, the car_id won't be set. Instead we'll set the new_car_model_id field and the fuel type won't be shown. This commit changes the fuel_type field in hr_contract to be a computed field that will either take the fuel_type from car_id or from new_car_model_id. task-3515936 Forward-Port-Of: odoo/enterprise#47717
Original PR description
https://github.com/odoo/enterprise/pull/34883 started showing the fuel type of the car_id in the form view of hr_contract. However, when selecting new cars, the car_id won't be set. Instead we'll set the new_car_model_id field and the fuel type won't be shown. This commit changes the fuel_type field in hr_contract to be a computed field that will either take the fuel_type from car_id or from new_car_model_id. task-3515936 Forward-Port-Of: odoo/enterprise#47717
Before this commit, when a barcode starting with "O-CMD." is scanned, the barcode handler checks if it knows a command and either calls it if it exists, either displays a notification if not. The issue with the notification is that some modules can use barcodes starting with "O-CMD." (`stock_barcode` with "O-CMD.MAIN-MENU" for example), meaning scanning one of those will display a warning notification even if the action linked to the barcode is correctly called. This commit adds an empty f
Original PR description
Before this commit, when a barcode starting with "O-CMD." is scanned, the barcode handler checks if it knows a command and either calls it if it exists, either displays a notification if not. The issue with the notification is that some modules can use barcodes starting with "O-CMD." (`stock_barcode` with "O-CMD.MAIN-MENU" for example), meaning scanning one of those will display a warning notification even if the action linked to the barcode is correctly called. This commit adds an empty function for each "O-CMD." barcode used by `stock_barcode` to let `barcodeGenericHandlers` know those commands exist and should not trigger a warning. Forward-Port-Of: odoo/enterprise#49898
Steps to reproduce: 1. Enable GS1 Barcode nomenclature 2. Create 2 products, P1 and P2 both tracked by lots. 3. Add barcode for P2 here is the barcode: 05711544001952 4. Create two lots. You MUST create a lot for P1 before lot P2. 5. These two lots must have the same name. I'm using "304" as the name 6. Go to barcode and delivery order 7. Scan this barcode: This is for the location odoo.__DEBUG__.services['web.core'].bus.trigger('barcode_scanned', "WH-STOCK", $(".o_web_client")[0])
Original PR description
Steps to reproduce: 1. Enable GS1 Barcode nomenclature 2. Create 2 products, P1 and P2 both tracked by lots. 3. Add barcode for P2 here is the barcode: 05711544001952 4. Create two lots. You MUST…
Steps to reproduce:
1. Enable GS1 Barcode nomenclature
2. Create 2 products, P1 and P2 both tracked by lots.
3. Add barcode for P2 here is the barcode: 05711544001952
4. Create two lots. You MUST create a lot for P1 before lot P2.
5. These two lots must have the same name. I'm using "304" as the name
6. Go to barcode and delivery order
7. Scan this barcode:
This is for the location
odoo.__DEBUG__.services['web.core'].bus.trigger('barcode_scanned', "WH-STOCK", $(".o_web_client")[0])
This is for the product, expiration date, lot number
odoo.__DEBUG__.services['web.core'].bus.trigger('barcode_scanned', "01057115440019521524071010304", $(".o_web_client")[0])
Bug:
Based on the GS1 Nomenclature, you're scanning the product, expiration, and lot number.
This scan will go through but you will not see the lot number get populated. This is because Odoo is pulling the other lot with the same name. (P1).
Fix:
apply filter (by product id) on the lots
opw-3387326
Forward-Port-Of: odoo/enterprise#50333
Forward-Port-Of: odoo/enterprise#47734Steps: - Install helpdesk - Open helpdesk - Go to my tickets - Create new ticket Issue: - when create new ticket breadcrumb shows "False(#False)" instead of "New". Cause: - Not returning the super method. Fix: - Create new field filtered with name running loop on that field and returning the super method. task-3478920 Forward-Port-Of: odoo/enterprise#46288
Original PR description
Steps: - Install helpdesk - Open helpdesk - Go to my tickets - Create new ticket Issue: - when create new ticket breadcrumb shows "False(#False)" instead of "New". Cause: - Not returning the super method. Fix: - Create new field filtered with name running loop on that field and returning the super method. task-3478920 Forward-Port-Of: odoo/enterprise#46288
Prior to this commit, opening studio mode on the gantt view of the attendance app would lead to a traceback in get_gantt_data() This is due to the fact that start_date is not well assigned because context seems to be lost in studio mode. Forward-Port-Of: odoo/enterprise#50644
Original PR description
Prior to this commit, opening studio mode on the gantt view of the attendance app would lead to a traceback in get_gantt_data() This is due to the fact that start_date is not well assigned because context seems to be lost in studio mode. Forward-Port-Of: odoo/enterprise#50644
When merging the models `knowledge.article` and `knowledge.article.template`, we unintentionally forgot to add a condition in the search domain of the select menu to filter out the templates from the search results. As a result, the select menu currently lists both articles and templates. This commit will simply add the missing condition in the search domain to exclude the templates from the search results. Steps to reproduce the issue: 1. Open the Knowledge editor 2. Type the /article comm
Original PR description
When merging the models `knowledge.article` and `knowledge.article.template`, we unintentionally forgot to add a condition in the search domain of the select menu to filter out the templates from the search results. As a result, the select menu currently lists both articles and templates. This commit will simply add the missing condition in the search domain to exclude the templates from the search results. Steps to reproduce the issue: 1. Open the Knowledge editor 2. Type the /article command 3. Click on the selection menu => The select menu lists the articles and the templates. TO BE: The selection menu should only display the articles and not the templates Reference: https://github.com/odoo/enterprise/pull/48691 task-3593373 Forward-Port-Of: odoo/enterprise#50546
This commit changes the icons of the pivot/list menu items to match the standard pivot/list icons of Odoo. Task: [3559271](https://www.odoo.com/web#id=3559271&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49191
Original PR description
This commit changes the icons of the pivot/list menu items to match the standard pivot/list icons of Odoo. Task: [3559271](https://www.odoo.com/web#id=3559271&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#49191
Steps to reproduce: - Have a user that have the interviewer rights but not higher ones - Set the user as the referrer of an applicant but not as the interviewer and not as the job position interviewer - As this user go to the recruitment app - You can see the applicant and you can open it Expected behavior: in that situation the user should not be able to see the applicant or access it in any way in the recruitment app. Explanation: The user was able to see the applicant because the
Original PR description
Steps to reproduce: - Have a user that have the interviewer rights but not higher ones - Set the user as the referrer of an applicant but not as the interviewer and not as the job position…
Steps to reproduce: - Have a user that have the interviewer rights but not higher ones - Set the user as the referrer of an applicant but not as the interviewer and not as the job position interviewer - As this user go to the recruitment app - You can see the applicant and you can open it Expected behavior: in that situation the user should not be able to see the applicant or access it in any way in the recruitment app. Explanation: The user was able to see the applicant because the my referral view is based on the hr.applicant model and thus the user has access to the record in both apps. But the problem should be fixed in the recruitment app because the user should still be able to see the applicant in the referral app. after this fix: You'll not be able to see the applicant in the recruitment app if you are not the interviewer of the applicant or the interviewer of the job position if you only have the interviewer rights. You'll also get an access error if you try to access the applicant directly by URL. task-3457405 Forward-Port-Of: odoo/enterprise#50683
This commit includes email address of the sender and the receiver in send_shipping request. opw-3487959 Forward-Port-Of: odoo/enterprise#48689
Original PR description
This commit includes email address of the sender and the receiver in send_shipping request. opw-3487959 Forward-Port-Of: odoo/enterprise#48689
This commit adds the commodity code in the request for international shipping in UPS, so that the commercial invoice has it listed for every commodity. opw-3487614 Forward-Port-Of: odoo/enterprise#50687
Original PR description
This commit adds the commodity code in the request for international shipping in UPS, so that the commercial invoice has it listed for every commodity. opw-3487614 Forward-Port-Of: odoo/enterprise#50687
Steps to reproduce the bug: Steps to reproduce the bug: - Configure Product Category All to use FIFO automated valuation - Create two products that are storable with category All: “P1” and “C1” - Set costs on the products: - “P1”: 40 - “C1”: 25 - On”P1” create a BoM with Product B as the component - Create an MO and scrap the component into negative quantities - Complete the MO and view the Cost Analysis, it works. - Purchase and receive the component product so that the nega
Original PR description
Steps to reproduce the bug:
Steps to reproduce the bug:
- Configure Product Category All to use FIFO automated valuation
- Create two products that are storable with category All: “P1” and “C1”
- Set costs on the products:
- “P1”: 40
- “C1”: 25
- On”P1” create a BoM with Product B as the component
- Create an MO and scrap the component into negative quantities
- Complete the MO and view the Cost Analysis, it works.
- Purchase and receive the component product so that the negative inventory is revalued for the scrap move:
- in the PO -> C1 = 47
- Try to view the Cost Analysis
Problem:
Traceback is triggered:
Error when render the template
ValueError: Expected singleton: stock.valuation.layer(7, 11)
<span t-esc="scrap.stock_valuation_layer_ids.unit_cost"
t-options="{"widget": "monetary", "display_currency": currency}"/>
opw-3574431
Forward-Port-Of: odoo/enterprise#50692
Forward-Port-Of: odoo/enterprise#50534This commit slightly adapts the template data to add a br element after the hr separator, which is necessary to be able to easily click on the embed view toolbar that appears right next to it. In addition, we modify the toolbar styling to make it appear "connected" to its embed view rather than floating a few pixels above it. Forward-Port-Of: odoo/enterprise#50724
Original PR description
This commit slightly adapts the template data to add a br element after the hr separator, which is necessary to be able to easily click on the embed view toolbar that appears right next to it. In addition, we modify the toolbar styling to make it appear "connected" to its embed view rather than floating a few pixels above it. Forward-Port-Of: odoo/enterprise#50724
Related to: https://github.com/odoo/odoo/pull/141001 Forward-Port-Of: odoo/enterprise#50282
Original PR description
Related to: https://github.com/odoo/odoo/pull/141001 Forward-Port-Of: odoo/enterprise#50282
Steps ===== - Install module planning - Go to menu Configuration > Roles - Click on the resource column of a given role - In the opened dropdown, click on a resource Issue ===== A traceback appears when the resource is clicked. Cause ===== The field resource_type is needed for the widget many2many_avatar_resource and is therefore added as a relatedFields. However, for field of type 'selection' the selection's values have to be added in the field info since the change of the rela
Original PR description
Steps ===== - Install module planning - Go to menu Configuration > Roles - Click on the resource column of a given role - In the opened dropdown, click on a resource Issue ===== A traceback appears when the resource is clicked. Cause ===== The field resource_type is needed for the widget many2many_avatar_resource and is therefore added as a relatedFields. However, for field of type 'selection' the selection's values have to be added in the field info since the change of the relational model (see odoo/odoo#114024). Fix === Selection values are added in the field description. Forward-Port-Of: odoo/enterprise#50695
Settings>Accounting>Argentinean Localization Change AFIB Certificate Save Issue: Traceback will raise because we input the file size to the b64decode instead of the content opw-3589877 Forward-Port-Of: odoo/enterprise#50691
Original PR description
Settings>Accounting>Argentinean Localization Change AFIB Certificate Save Issue: Traceback will raise because we input the file size to the b64decode instead of the content opw-3589877 Forward-Port-Of: odoo/enterprise#50691