Daily updates from Odoo
Navigate
Branch
Friday, February 14, 2025
53 changes
2 changes
Miscellaneous changes
Before this commit, when tips were enabled after payment and early receipt printing was enabled, clicking on Bill would show the suggested tips on the Bill screen, but they were not included when printing the receipt. opw-4455884 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192726
Original PR description
Before this commit, when tips were enabled after payment and early receipt printing was enabled, clicking on Bill would show the suggested tips on the Bill screen, but they were not included when printing the receipt. opw-4455884 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#192726
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196401 Forward-Port-Of: odoo/odoo#190703
Original PR description
Description of the issue/feature this PR addresses: ticket id: https://www.odoo.com/odoo/my-tasks/4179478 Current behavior before PR: - MENA l10n module descriptions were uncomplete or unconsistent Desired behavior after PR is merged: - improve l10n module description for MENA --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#196401 Forward-Port-Of: odoo/odoo#190703
51 changes
Security fixes and vulnerability patches
Appointment calendar links now check whether a user is signed in before sending them to the internal calendar event view. This helps protect backend calendar details while still allowing guest users to access the appropriate public-facing appointment view.
Original PR description
This PR ensures user authentication before redirecting to the calendar event backend view. If the user is not logged in, they will be prompted to authenticate before accessing the calendar event. However, guest user will not be redirected for login and are redirected to frontend view. Task-4143188
Enhancements to existing features
Documents now supports easier card selection in Kanban views, including Alt-click selection and continued Ctrl-click support in Documents. This also makes Kanban actions more consistent with list views, including options such as inserting selected records into spreadsheets.
Original PR description
For Documents:
This commit reimplements the way Documents handle record selection. Since it
is now supported to select Kanban cards globally, we can now move some implemented
logic where it makes sense (KanbanRecord, KanbanController).
We can now also select cards by clicking on them with the 'Alt' key pressed, since
this is the main key being chosen for the feature to work on most kanbans ('Ctrl' key
cannot be used, since it opens records in new tabs). For Documents, we have decided
to continue supporting 'Ctrl' for the moment.
Code has been cleaned and simplified. Visual consistency with all kanbans has been
given, by slighlty adapting the look of the cards.
General changes:
Kanban has the same actions available as in List view. This includes "Insert in Spreadsheet".
The code has been shared accross both views, thanks to a hook dedicated with core functionalities.
task-4318322Signed PDF documents can now include a cryptographic signature, making it possible to detect if a document is changed after signing. Companies configure the required certificate information in Sign settings, improving trust when signed files are shared externally.
Original PR description
## Purpose Currently when we download a signed document, and send it by mail, we have no way to ensure that no change has been made on this pdf after the recipient signed. We would like to use some format that would keep track of all changes on the pdf. ## Specification Once signed, the pdf should be converted in a format that allows tracking of subsequent changes. ## Technical details In order to be able to add the cryptographic signature documents, the user must upload his private key and certificate files to the database from the settings. The user must also add the password used when creating the files. These settings are found under the sign catergory in the settings app. **Note**: The required files can be generated using the following command ```bash openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -sha256 -days 365 ``` ### Known limitation - The signer currently only supports SHA256-RSA signing keys Task: 4331729
Document-related automations have been adjusted to work with the updated way Odoo links multi-step server actions. This keeps document, accounting, project, signing, and WhatsApp workflows operating consistently after the underlying platform change.
Original PR description
*: documents{_account,_project,_sign}, whatsapp
This commit adapts modules that uses server actions of type "Multi" to
their new type of child's relation: one2many.
It also contains an adaptation for the automatic naming of a child
action of type "Send Whatsapp message".
Task: opw-4370092Updated multiple email templates and demo signatures to better handle double hyphens, improving how automated messages appear to recipients. This is a small consistency and presentation improvement across invoicing, appointments, documents, subscriptions, field service, localization, and payroll-related content.
Original PR description
Part of: https://github.com/odoo/odoo/pull/194131 Task-4485719
Invoice reports now better support global invoices that combine multiple POS orders. This helps businesses using UrbanPiper integrations present consolidated order information more clearly and accurately on invoices.
Original PR description
In this commit: ------------------- - We adapted the report for the case of global invoices which will have multiple POS orders. task: 4256209 Related PR: https://github.com/odoo/odoo/pull/186723
Users can now add Knowledge articles to the templates gallery, making reusable content easier to find and duplicate. The gallery also includes permission-aware delete options, so administrators can remove templates and article owners with write access can remove articles from the gallery.
Original PR description
This commit adds a new button to the Knowledge kebab menu, allowing users to add articles to the templates gallery. This feature improves usability by making it easier for users to locate their templates and create copies. To ease template management, a delete button has been added next to each article and template in the gallery. The button is displayed only to users with the appropriate permissions: - Deleting a template requires administrator privileges. - Deleting an article from the templates gallery requires "write" access to the article. Task-4247544
This update keeps India GST reporting aligned with recent changes to the Indian e-invoicing setup. It is a small internal compatibility change that helps preserve existing reporting and send/print flows without introducing new business features.
Original PR description
Minimal technical changes for the counter commit of communnity commit Before this `l10n_in_edi` dependency was `account_edi` this commits counter community commit removes the dependency of `account_edi` from `l10n_in_edi` this commit only changes the technical things related to `l10n_in_edi` related- - https://github.com/odoo/upgrade/pull/7098 - https://github.com/odoo/odoo/pull/191920 task-4190711
Appraisal survey templates included with the system are no longer limited to a single default language. This helps companies use appraisal surveys across all installed languages without extra configuration.
Original PR description
We have added a field on the model survey (lang_ids) that allow the user to define the language in which the survey is translated. The default value for this field is the current user language. To not limit all the survey created in demo/data to English, we set lang_ids to False for them which means that they are available in all installed language. Task-3884012
Profit and Loss reports can now show financial budget columns alongside horizontal grouping, making it easier to compare grouped results against budgets. Budget values are placed clearly at the end of the report and remain aligned even when reports use multiple header levels.
Original PR description
Previously, the Profit and Loss report could not display both a horizontal groupby and financial budget columns simultaneously. This commit resolves that limitation by ensuring the budget columns (base, amount, and percentage) are displayed at the end of the report, separate from the horizontal groupby columns. Key improvements: - Budget columns are positioned after the horizontal groupby, avoiding mixing them within grouped columns. - If the horizontal groupby spans multiple header layers (e.g., with analytic filters), budget columns now utilize rowspan to ensure proper alignment. - This allows for cleaner reports where both groupby and budget filters can be visualized together. Note: The percentage column does not include the horizontal total, but this approach still enhances the ability to analyze horizontal values against the budget. task-4456510
Product image retrieval by barcode now uses the Barcode Lookup service instead of the previous Google-based approach. The image-fetching workflow has been consolidated into the existing Product Barcode Lookup app, reducing separate module maintenance while keeping product enrichment available.
Original PR description
Before this commit: ================== - Before this commit to fetch images of existing products using barcode we used Google API. - To fetch images of existing products we have a module product_images. After this commit: ================== - To fetch images of existing products we are using barcodelookup.com API. - Removed product_images module - Integrated image fetching logic with existing product_barcodelookup module task -4005612
International payment files now use a clearing number in the ISO 20022 bank information where required. US payment and payroll payment flows have been aligned to this same field, improving consistency and helping banks process payment files correctly.
Original PR description
For international payments, the clearing number is required to be set under ClrSysMmbId node in ISO20022 XML file. Odoo: https://github.com/odoo/odoo/pull/186972 task-4307862
This update keeps the Kenyan OSCU point-of-sale product setup working after related product page changes in Odoo. It also updates automated checks for sales and subscription flows so they match the latest stock quantity process, reducing the risk of false test failures.
Original PR description
This commit aligns with the changes introduced in the related Community PR, where the header element is being removed from the main product template. See Community PR: https://github.com/odoo/odoo/pull/191742 Task: [4385237](https://www.odoo.com/odoo/my-tasks/4385237)
Appointment invite creation now checks for an identical simple setup and reuses the existing invite link when possible, reducing duplicate records. The invite form is also clearer for choosing users or resources, helping staff avoid confusing options.
Original PR description
When opening the appointment invite modal, we now attempt to find a "identical configuration". We only account for simple use cases, aka not multi-appointments, not user/resource specific. If we find an identical configuration, then the "Copy Link & Close" button of the modal will just copy the existing code instead of creating a new record. When the user changes anything to the configuration, we re-generate a new random code Task-4280698
Quality teams can now define a failure destination for any type of quality control, not just checks on individual move lines. This helps route failed products, moves, or full operations to the right inspection or repair location more consistently.
Tax integrations now use the sales or invoice line description instead of only the product name when sending line details. This gives tax providers clearer, more accurate context and keeps behavior consistent across invoices, sales orders, point of sale, and Brazil-specific tax flows.
Original PR description
We replaced the product name with the line description in stable for Brazil [1]. Now that we're in master, we can change the account_external_tax_mixin interface to add it properly and remove the need to browse the line. For consistency, we also do the same for sale.order now. [1] https://github.com/odoo/enterprise/pull/77610 task-4401787
Employees can now submit most expenses directly without creating a separate expense report, reducing extra steps and friction. If an employee has no expense manager assigned, submitted expenses are automatically approved, making reimbursement processing faster.
Original PR description
Most of the time, expenses are created as "standalone"s and forcing the use of an expense report is adding frustrating unnecessary steps. A simplification was decided and the model hr.expense.sheet is removed, giving all of its remaining important logic to the `hr.expense`. In addition, approval flow was simplified with the implementation of an auto-validation process, where submitting an expense also approves it when no expense manager is set on the employee. See task for more details. task-id: 4481615
The Appointment app now shows a helpful prompt in the Gantt view when no calendar events are found, letting users share an appointment link or create a booking directly. This makes it easier to generate bookings from an empty schedule and clarifies resource-based booking details.
Original PR description
This commit adds the action helper in the Gantt view when no calendar event is found. Users can click the button present in Action Helper and share the appointment to get some bookings. Task-4138356
Bank reconciliation can now match payments with draft invoices and bills, helping users avoid creating duplicate documents when payments happen before accountant review. This makes month- or quarter-end workflows smoother for businesses that process bills before they are formally posted.
Original PR description
Since users cannot view draft invoices/bills on the bank recon screen, duplicates may be created. To avoid this, and to simplify the process for users who might pay on draft bills, we allow the reconciliation of bank statement lines with draft invoices & bills. Task-4286245
The spreadsheet styling was updated to stay compatible with a recent change in the underlying spreadsheet component. This helps keep spreadsheet screens and side panels displaying correctly without changing business workflows.
Original PR description
The global directive `content-box` was removed in o-spreadsheet, this commits adapts the Odoo's scss to take this change into account. Task: 4550753
Users can now group search results by Properties in Frontdesk Visitors and HR Appraisal. This makes it easier to organize records by custom property information and quickly compare related entries.
Original PR description
**Specifications** : Add search group by **Properties** in following places: - Frontdesk Visitors - HR Appraisal Task-3989993
Users can now correct OCR results on imported bank statements by selecting a balance field and clicking the correct value directly on the document preview. This extends an existing bill correction workflow to bank statements, helping reduce manual retyping and improve statement accuracy.
Original PR description
After a bank statement has been OCRed, we allow the user to make corrections by simply clicking one of the balance fields and then clicking the correct amount by clicking on the boxes overlay of the imported file. This is a feature that was introduced first for bills, and is now made available to bank statements as well. A new mixin has been written to factorize as much as possible between the two models. Upgrade PR: https://github.com/odoo/upgrade/pull/7010 Upgrade Util PR: https://github.com/odoo/upgrade-util/pull/182 task-id 4260464
A new list view helps users review bank transactions that the provider has marked as duplicates directly in the duplicate transaction wizard. This makes it easier to identify and handle potential duplicate entries during online bank synchronization.
Original PR description
This commit will add a new list view in the wizard of duplicate transaction for transaction that are marked as duplicated by the provider in the transaction details. task-4345739
Appointment pages and website snippets now have refreshed default card styling plus new Picture and List layouts, giving businesses more attractive ways to present booking options. Demo images and descriptions are shared across appointment modules, making previews and sample content more consistent without requiring extra website appointment dependencies.
Original PR description
### Make demo img available in appointment sub-modules Prior to this PR, demo data images were located in `website_appointment`, and this module was mandatory if we wanted to use these demo images.…
### Make demo img available in appointment sub-modules Prior to this PR, demo data images were located in `website_appointment`, and this module was mandatory if we wanted to use these demo images. After this PR, these images are moved to the main `appointment` module to be available in it and its sub-modules. ### Add image & description demo data This PR adds image & description demo data to match the `website_appointment` snippet previews. ### Allow to customize avatar number Prior to this PR, the maximum number of avatars displayed in the `appointment_booking_resource_description` template was set to 6. After this PR, we can now customize the amount of avatars displayed, simply by defining the `avatars_max_count` variable, to match the layout where this template is called. ### Removes unnecessary option for s_appointments Prior to this PR, it was possible to define the height of the column wrapping the main content of `s_appointments`. As this content is dynamic, this option is not necessary and is removed. ### Review the card layout This PR reviews and enhances the default card layout used in the appointment snippet and appointment website page. ### Introduce new snippet layouts This PR introduces the "Picture" and "List" layouts for the appointment snippet. task-4317830 --- Requires: - https://github.com/odoo/odoo/pull/190946 --- Review default snippet layout: | Before | After | |--------|--------| |  | <img width="1343" alt="Capture d’écran 2024-12-18 à 12 55 34" src="https://github.com/user-attachments/assets/1b63448c-559f-4d9b-94c2-8f8a0e853c03" /> | Introduce two new snippet layouts: | Picture Layout | List Layout | |--------|--------| | <img width="1351" alt="Capture d’écran 2024-12-18 à 12 56 17" src="https://github.com/user-attachments/assets/a20eb199-1a42-4abe-9e23-4e386e4d9142" /> |<img width="1337" alt="Capture d’écran 2025-01-29 à 13 01 23" src="https://github.com/user-attachments/assets/0a1e4b7c-84a3-466d-80ce-11a437ba094c" /> |
The Sign app interface has been refined to make the sidebar and document fields clearer and more polished. The update also improves color handling in dark mode, helping users work more comfortably and consistently across display settings.
Original PR description
This commit refines the design of the sidebar and fields and adapts the colors for dark mode for the Sign module. task-4552049
Brazilian AvaTax users can now override a product's purpose of use directly on sales orders and invoices when the sale context requires a different tax treatment. This helps businesses handle cases like B2B versus B2C sales without creating duplicate products.
Original PR description
In some cases the purpose of use will change based on the exact conditions of a sale (e.g. the partner, ...). An example is if you do b2b and b2c sales, the b2b sale's purpose will be "resale" and the b2c sale's purpose could be "use or consumption". To avoid users having to duplicate their products we provide an optional override on sale.order and account.move. task-4520757
The spreadsheet edition styling was updated to match a recent change in the underlying spreadsheet component. This helps keep spreadsheet screens, comments, and side panels displaying consistently without changing user workflows.
Original PR description
The global directive `content-box` was removed in o-spreadsheet, this commits adapts the Odoo's scss to take this change into account. Task: [4550753](https://www.odoo.com/web#id=4550753&cids=1&menu_id=4720&action=333&active_id=2328&model=project.task&view_type=form)
This update aligns several Odoo apps with newer email-style recipient handling, helping messages and suggested recipients behave more consistently. The changes are mostly internal adaptations, with limited direct impact for business users.
Resolved issues and error corrections
The French profit and loss report now includes two previously unmapped accounts in the appropriate sections. This helps businesses get more complete and accurate financial reporting for taxes, duties, and interest charges.
Original PR description
from https://github.com/odoo/enterprise/pull/78791 @FlorianGilbert screencast : https://drive.google.com/file/d/1O-03Mcd58KUbCAUqX7QLN48y2_6V5kQZ/view?usp=sharing What are the steps to reproduce the issue? Go to runbot 18.0 or master, install directly l10n_fr_reports What is the current behavior you observe? There are two account number that no request by the P&L  What would you like the behavior/result to be? I thinks that 638000 account would be in item "Taxes and duties" of french report P&L 669000 account would be in item "Interest and similar charges" of french report P&L   ticket : https://www.odoo.com/fr_FR/my/tasks/4557675
This update fixes an internal test for Belgian tax reporting that was failing after stricter multi-company checks were introduced. It helps keep the Belgian reporting module reliable in environments where multiple companies are configured.
Original PR description
The test started failing because of a multi-company consistency check introduced in https://github.com/odoo/odoo/pull/197494 Community PR: https://github.com/odoo/odoo/pull/197494
This change updates an automated checkout test to match the current button wording in the Colombian e-invoicing website sales flow. It helps keep quality checks reliable without changing the customer-facing shopping experience.
The French profit and loss report has been corrected so accounts 638000 and 669000 are included in the appropriate report lines. This helps businesses using French accounting get more complete and accurate profit and loss reporting without manual adjustments.
Original PR description
screencast : https://drive.google.com/file/d/1O-03Mcd58KUbCAUqX7QLN48y2_6V5kQZ/view?usp=sharing What are the steps to reproduce the issue? Go to runbot 18.0 or master, install directly l10n_fr_reports What is the current behavior you observe? There are two account number that no request by the P&L  What would you like the behavior/result to be? I thinks that 638000 account would be in item "Taxes and duties" of french report P&L 669000 account would be in item "Interest and similar charges" of french report P&L   ticket : https://www.odoo.com/fr_FR/my/tasks/4557675
This update fixes an internal test for Belgian reporting so it works correctly with stricter multi-company checks. It helps keep reporting quality controls reliable without changing day-to-day user behavior.
Original PR description
The test started failing because of a multi-company consistency check introduced in https://github.com/odoo/odoo/pull/197494 Community PR: https://github.com/odoo/odoo/pull/197494
Miscellaneous changes
The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79305 Forward-Port-Of: odoo/enterprise#79183
Original PR description
The assistant to create relation filters only suggested a limited amount of related models, namely the direct co-models of the available datasources. This limitation was quite bothersome if a user wanted to filter on another model that did not have a direct link to the datasource models. Task-4572098 Forward-Port-Of: odoo/enterprise#79305 Forward-Port-Of: odoo/enterprise#79183
Issue: A blank screen appears after canceling an order. Steps to reproduce: - Open a POS restaurant - Select a table - Order some food - Reopen the order - Cancel the order Forward-Port-Of: odoo/enterprise#79249
Original PR description
Issue: A blank screen appears after canceling an order. Steps to reproduce: - Open a POS restaurant - Select a table - Order some food - Reopen the order - Cancel the order Forward-Port-Of: odoo/enterprise#79249
Add more info to the AR EDI XML file: new required tag CondicionIVAReceptorId where we inform the AFIP responsibility code of the partner. LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#78934
Original PR description
Add more info to the AR EDI XML file: new required tag CondicionIVAReceptorId where we inform the AFIP responsibility code of the partner. LATAM Task 1300 - ADHOC Task 47476 Forward-Port-Of: odoo/enterprise#78934
The idea is: 1. Stop to do a lot of thing in the getter `relevantRecords` because all those operations are done every time this getter is called. To achieve that, relevant records are computed each time before the component should be re-rendered and the getter only returns the computed result. It was making the code very hard to work with and very unstable. 2. Move `MrpDisplaySearchModel` `recordCache.ids` into `MrpDisplay` `recordCacheIds`. Why ? Because this array is always used in `MrpD
Original PR description
The idea is: 1. Stop to do a lot of thing in the getter `relevantRecords` because all those operations are done every time this getter is called. To achieve that, relevant records are computed each…
The idea is: 1. Stop to do a lot of thing in the getter `relevantRecords` because all those operations are done every time this getter is called. To achieve that, relevant records are computed each time before the component should be re-rendered and the getter only returns the computed result. It was making the code very hard to work with and very unstable. 2. Move `MrpDisplaySearchModel` `recordCache.ids` into `MrpDisplay` `recordCacheIds`. Why ? Because this array is always used in `MrpDisplay` so it doesn't do a lot of sense to define it in `MrpDisplaySearchModel`. The only exception is in the `_notify` where the cache is invalidated (TODO: to check if it still relevant.) Also, instead of havin an object with one uniq key who refers to an array (`recordCache.ids`), it will now be an array directly. 3. Make `recordCacheIds` part of the `MrpDisplay` `state`. The purpose of this change is to refresh the app everytime the cache is modified. Also, this commit fix an issue where the record cache wasn't correctly updated when the selected employee requieres a PIN code. The issue was the cache was invalided before the PIN code was validated, a lot of async methods weren't awaited and the dialog itself wasn't bound to a callback in a way to be able to invalidate cache at the right moment. OPW-4256568 Forward-Port-Of: odoo/enterprise#78874 Forward-Port-Of: odoo/enterprise#74421
Barcode lookup is not working when activating `restrict_scan_product` Steps: - Go to 'Receipts' operations type - On the barcode tab, activate `restrict_scan_product` - Go to barcode app, receipts operation and scan a new product (eg 510002952387) -> Error: "Not the expected scan - You must scan a product" We should be able to create a new product. With this commit we make an extra check on the guilty condition in the stock_barcode_barcodelookup module opw-4429769 Forward-Port-Of: odoo/en
Original PR description
Barcode lookup is not working when activating `restrict_scan_product` Steps: - Go to 'Receipts' operations type - On the barcode tab, activate `restrict_scan_product` - Go to barcode app, receipts operation and scan a new product (eg 510002952387) -> Error: "Not the expected scan - You must scan a product" We should be able to create a new product. With this commit we make an extra check on the guilty condition in the stock_barcode_barcodelookup module opw-4429769 Forward-Port-Of: odoo/enterprise#79276 Forward-Port-Of: odoo/enterprise#76652
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Community PR: https://github.com/odoo/odoo/pull/195626 Forward-Port-Of: odoo/enterprise#78429
Original PR description
Resetting a move to draft should detach the current attachments generated by the send and print and allow regenerating them after the user is done with the edits. task-4498564 Community PR: https://github.com/odoo/odoo/pull/195626 Forward-Port-Of: odoo/enterprise#78429
The project report query joins multiple tables and aggregates on some fields, everything else should be in the group by clause. The group by here is using the select alias but it is better to use the full column name including the table alias, in case one of the joined tables has a column with the same name as the alias. Forward-Port-Of: odoo/enterprise#79272
Original PR description
The project report query joins multiple tables and aggregates on some fields, everything else should be in the group by clause. The group by here is using the select alias but it is better to use the full column name including the table alias, in case one of the joined tables has a column with the same name as the alias. Forward-Port-Of: odoo/enterprise#79272
1. Insert a graph view into the spreadsheet. 2. Click the "Share" button to generate a shareable link. 3. Open the link in an incognito window. 4. A blank screen appears, with errors logged in the console. The condition for detecting live data in the spreadsheet was incorrect, causing shared links to break. This PR updates the condition to correctly check for the presence of Odoo charts. Task: 4551470 Forward-Port-Of: odoo/enterprise#79290 Forward-Port-Of: odoo/enterprise#79151
Original PR description
1. Insert a graph view into the spreadsheet. 2. Click the "Share" button to generate a shareable link. 3. Open the link in an incognito window. 4. A blank screen appears, with errors logged in the console. The condition for detecting live data in the spreadsheet was incorrect, causing shared links to break. This PR updates the condition to correctly check for the presence of Odoo charts. Task: 4551470 Forward-Port-Of: odoo/enterprise#79290 Forward-Port-Of: odoo/enterprise#79151
Status indicator was designed independently from the calendar indicator. Overriding its behavior leads to the situation where we show appointment status instead of the calendar indicator. This commit attempts to keep the changes minimal so we are hiding the status indicator for non-appointment events from the appointment template. Reproduce --- - Install appointment. - Schedule a meeting in the calendar. - Open the "Decline" link from the received confirmation email (as public_user)
Original PR description
Status indicator was designed independently from the calendar indicator. Overriding its behavior leads to the situation where we show appointment status instead of the calendar indicator. This commit attempts to keep the changes minimal so we are hiding the status indicator for non-appointment events from the appointment template. Reproduce --- - Install appointment. - Schedule a meeting in the calendar. - Open the "Decline" link from the received confirmation email (as public_user). - BUG: See "Appointment Reserved!" even tho we clicked "Decline" Note: The bug doesn't occur when the appointment is not installed. opw-[4295448](https://www.odoo.com/web#id=4295448&view_type=form&model=project.task) Forward-Port-Of: odoo/enterprise#76365
## Versions: 17.0+ ## Issue: Translation of the English "Balance" word is displayed as "Balanza" in all Spanish files but should be "Balance" as well. "Balanza" meaning "Scale", the translation is sometimes right. opw-4461450 Forward-Port-Of: odoo/enterprise#78116
Original PR description
## Versions: 17.0+ ## Issue: Translation of the English "Balance" word is displayed as "Balanza" in all Spanish files but should be "Balance" as well. "Balanza" meaning "Scale", the translation is sometimes right. opw-4461450 Forward-Port-Of: odoo/enterprise#78116
The transfer tip messages displayed at the top in the Barcode app were constructed with `<b>` markup in the OWL template. However, the translation extraction mechanism for OWL templates splits the template up per tag it encounters. So if you had a message like `Scan a <b>transfer</b>, a <b>product</b> ...`, it would extract the `, a` part separately. Moreover, if the final string didn't contain more than 1 alphanumerical character, it wouldn't be exported in the .pot file and thus not be tran
Original PR description
The transfer tip messages displayed at the top in the Barcode app were constructed with `<b>` markup in the OWL template. However, the translation extraction mechanism for OWL templates splits the template up per tag it encounters. So if you had a message like `Scan a <b>transfer</b>, a <b>product</b> ...`, it would extract the `, a` part separately. Moreover, if the final string didn't contain more than 1 alphanumerical character, it wouldn't be exported in the .pot file and thus not be translatable. Also, having these messages chopped up doesn't allow translators to change word order in other languages. In this commit we safely construct the messages in Javascript and have them translated as one full sentence. After this, we show them in the OWL template. [task-4421055](https://www.odoo.com/odoo/project.task/4421055) Related to https://github.com/odoo/odoo/pull/196805 Forward-Port-Of: odoo/enterprise#79078 Forward-Port-Of: odoo/enterprise#78717
Turns out it's used. To minimize the UI space, setting an activity type and user should be enough to "activate" the feature, no need to check a box. Note: removing the creation of activity at upload, this flow is supposed to work on alias upload (setting unavailable without alias defined). Task-4551761 Note: Only the last commit is really part of this PR Forward-Port-Of: odoo/enterprise#79213 Forward-Port-Of: odoo/enterprise#78681
Original PR description
Turns out it's used. To minimize the UI space, setting an activity type and user should be enough to "activate" the feature, no need to check a box. Note: removing the creation of activity at upload, this flow is supposed to work on alias upload (setting unavailable without alias defined). Task-4551761 Note: Only the last commit is really part of this PR Forward-Port-Of: odoo/enterprise#79213 Forward-Port-Of: odoo/enterprise#78681
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228 Forward-Port-Of: odoo/enterprise#79265
Original PR description
This commit fixes an asset issue with web_gantt where the dark mode specific assets from web_gantt were included in the main (light mode) assets from pos_restaurant_appointment. Part of task-4571228 Forward-Port-Of: odoo/enterprise#79265
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This [commit](https://github.com/odoo/enterprise/commit/22878ec7e38c2a9fbf871beb239d01a42a17546a) changes `options['date']['filter']` to replace `tax_period` by the period (`'month', 'quarter', 'year'`). This causes `custom_tax_period` to be replaced by `custom_month` for example. Then in `_init_opt
Original PR description
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This…
### Steps to reproduce: - Go to Accounting > Reporting > Tax return - Select a period in the past - Click on "Closing Entries" - Post - The period on the generated PDF is wrong ### Cause: This [commit](https://github.com/odoo/enterprise/commit/22878ec7e38c2a9fbf871beb239d01a42a17546a) changes `options['date']['filter']` to replace `tax_period` by the period (`'month', 'quarter', 'year'`). This causes `custom_tax_period` to be replaced by `custom_month` for example. Then in `_init_options_date` which computes the date for the report `options['date']['filter']` is checked: - If any of these strings: `'month', 'quarter', 'year'` are in the filter name then it computes the period with today's date - If `tax_period` and `custom` is in the filter name then it keeps the correct date So since this commit, `_init_options_date` always return today's date with `custom_tax_period` as filter. ### Solution: The value `custom_tax_period` wasn't expected by the commit introducing the issue and values like `custom_month` doesn't make sense. So this commit checks if `custom` is in the filter before replacing `tax_period`. opw-4543231 Forward-Port-Of: odoo/enterprise#79011
See commit messages. Task-4510838 Forward-Port-Of: odoo/enterprise#79049 Forward-Port-Of: odoo/enterprise#77783
Original PR description
See commit messages. Task-4510838 Forward-Port-Of: odoo/enterprise#79049 Forward-Port-Of: odoo/enterprise#77783
Forward-Port-Of: odoo/enterprise#79208
Original PR description
Forward-Port-Of: odoo/enterprise#79208
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hour
Original PR description
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps…
Before this commit, the context of the action was just ignored in the grid view and so the default values stored inside that context are not taken into account during `grid_update_cell` method. Steps to reproduce the issue ---------------------------- 0. Install timesheet_grid module 1. Open Employees app 2. Click on an employee to open the form view 3. Click on the timesheets smart button to view the timesheet grid view for that employee 4. Navigate to a week that already contains hours for the current user 5. Update the grid cell containing a timesheet to reduce the number of hours for instance 6. Update another cell without any timesheets linked and set a hour Current Behavior ---------------- After refreshing the page and going to the same week, the changes made in step 5 and 6 are no longer applied. The reason is because those changes have generated new timesheets for the current user instead of the employee displayed in the form view before doing the step 3. Expected behavior ----------------- The grid view should be unchanged after refreshing the page, the changes made in 5 and 6 should be applied without any issues. opw-4491850 Forward-Port-Of: odoo/enterprise#79076
Purpose ======= Fix some UI issues in the appointment type kanban view. Specification ============= - The ribbon is now wrapped around a div which is messing up the kanban display. Applying some style to make it position absolute and avoid a strange spacing. - Keep UI consistency by resizing the empty avatar card for resources to match the one used for users. - On mobile view, align the appointment title with its details. Task-4518542 Forward-Port-Of: odoo/enterprise#77884
Original PR description
Purpose ======= Fix some UI issues in the appointment type kanban view. Specification ============= - The ribbon is now wrapped around a div which is messing up the kanban display. Applying some style to make it position absolute and avoid a strange spacing. - Keep UI consistency by resizing the empty avatar card for resources to match the one used for users. - On mobile view, align the appointment title with its details. Task-4518542 Forward-Port-Of: odoo/enterprise#77884