Tuesday, September 5, 2023
61 changes · master
New functionality added to Odoo
Odoo now lets businesses attach product documents to product templates or variants and show them on quotations, confirmed sales orders, and e-commerce product pages. This replaces the older digital files feature with a more unified document setup, though the prior option to release files only after invoice payment is removed.
Original PR description
Introduce new model of "Product Documents" to hold documents linked to a given product template/variant, displayed on: * quotations * confirmed sale orders * e-commerce product page This will also replace the previous "Digital Files" (website_sale_digital) logic & module, which allowed to specify product documents available to customers after the SO invoice was paid. This exact feature will be lost after upgrade, since we only keep the choice to link documents on quotations/orders, but: 1) on e-commerce, carts are supposed paid when confirmed 2) on portal, the "Online Payment" settings makes sure the users have to pay to confirm their quotation. therefore we consider new configuration sufficient, without needing a "paid order" choice as well. task-3249201 See also: * https://github.com/odoo/enterprise/pull/46106 * https://github.com/odoo/upgrade/pull/5069
Odoo now supports Italy's Split Payment rules for invoices involving public administration customers, automatically applying the correct VAT treatment and required legal invoice note. This helps Italian businesses issue compliant electronic invoices and reduces manual tax setup when billing eligible public entities.
Original PR description
Split Payment originally from: odoo/#117989 depends on: odoo/#122194 When an italian company bills a PA business (for example they're selling cleaning services for a public building) the PA business…
Split Payment originally from: odoo/#117989 depends on: odoo/#122194 When an italian company bills a PA business (for example they're selling cleaning services for a public building) the PA business will send the VAT to the Tax Agency themselves, while generally the VAT is collected and sent to the Tax Agency by the buyer (the PA business). This is done to avoid VAT fraud as the PA doesn't trust the business will actually pay the VAT, that's very common in Italy. - Split Payment account.taxes are Groups of Taxes with l10n_it_vat_due_date == 'S'. - The Group of Taxes includes normal VAT and a reversed VAT entry (both for sale and purchase) - New tax groups have been added to build the correct totals in the move form view - _l10n_it_get_tax_kind returns the new split_payment tax kind - account.taxes and account.fiscal.position has been added to change from VAT to VAT Split Payment automatically when you select a res.partner that features the fiscal position. - The Fiscal Position also has the law-required note that has to be featured on invoices that use Split Payment - A PA business demo partner is added to showcase the new fiscal position Task link: https://www.odoo.com/web#id=2823645&model=project.task task-2823645
Enhancements to existing features
Australian bank account records can now include and validate BSB details without requiring ABA payment file features. This helps businesses capture standard Australian banking information even when they do not use ABA files.
Original PR description
Description of the issue/feature this PR addresses: Makes BSB available on bank accounts, even if not using ABA files Current behavior before PR: Can't enter BSB without ABA file handling installed Desired behavior after PR is merged: Makes BSB available, even if ABA file handling not installed. Enterprise PR: https://github.com/odoo/enterprise/pull/46673 Upgrade PR: https://github.com/odoo/upgrade/pull/5105 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Resolved issues and error corrections
Credit notes will no longer try to reconcile with an original invoice or vendor bill that has been reset to draft. This prevents user errors when confirming a credit note again and keeps accounting workflows moving smoothly.
Original PR description
The aim of this commit is to prevent reconciliation with credit note to be triggered when a reversed move is reset to draft Context: reconciliation between credit note and invoice (same for vendor bill) Previous to this commit: Post invoice Create and post credit note Reset to draft both the invoice and the credit note Post (confirm) again the credit note -> User error due to attempt of reconciliation between credit note and draft invoice After this commit: The credit note is posted but not reconciled when the original move is in draft task-3492197
Code cleanup and technical improvements
This update streamlines styling across several HR-related apps by replacing custom design code with standard Bootstrap styling options. This should make the interface easier to maintain, more consistent, and potentially faster to load without changing core business workflows.
Original PR description
This PR is part of the SCSS reviewing process. The SCSS of the `hr` module is being changed to reduce the number of custom code lines. The goal is to use Bootstrap's SCSS variable to optimize the loading time and allow more flexibility. This PR affects the following modules : - hr_appraisal - hr_appraisal_skills - hr_contract_salary - hr_expense - hr_referral task-3244877 Requires : - https://github.com/odoo/enterprise/pull/38825 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Miscellaneous changes
Issue: ------ The `date` field of the `hr.attendance.overtime` model records is not the date of the related leave. Cause: ------ We use: `fields.Date.today()` instead of the leave field `date_from`. Solution: --------- Use `date_from` field of `leave`. opw-3433480 Forward-Port-Of: odoo/odoo#133607
Original PR description
Issue: ------ The `date` field of the `hr.attendance.overtime` model records is not the date of the related leave. Cause: ------ We use: `fields.Date.today()` instead of the leave field `date_from`. Solution: --------- Use `date_from` field of `leave`. opw-3433480 Forward-Port-Of: odoo/odoo#133607
HR teams can now set how far in advance they receive expiration warnings for employee contracts and work permits. This helps each company align reminders with its own renewal processes instead of relying on fixed default timelines.
Original PR description
Currently the warning messages to warn for contracts and work permits that are about to expire are hardcoded to be triggered 7 and 60 days in advance respectively. With this commit, these notice periods are made to be configurable on a per-company basis. task-3340931
Virtual appointment links are now included in calendar invite details so attendees can more easily find where to join. Google Calendar and iCal invitations will carry the discussion link in the appropriate meeting information fields, reducing confusion for remote meetings.
Original PR description
**Before PR:** To propagate the discuss link to the google calendar and in the icall file. **After PR:** Propagate the discuss link in to the location parameter for the google calendar when the meeting is virtual. For icall file propagate the discuss link in to the description parameter. Task-3235765
Businesses can now set default accounts for recording discounts on customer invoices and vendor bills. This makes discount amounts appear on dedicated accounting lines instead of being folded into product revenue or expense accounts, improving financial reporting clarity.
Original PR description
Provides the possibility for the user to enter defaults accounts for discounts allocation. If provided, discounts on Customer Invoices and Vendor BIlls will be allocation on the specified account…
Provides the possibility for the user to enter defaults accounts for discounts allocation. If provided, discounts on Customer Invoices and Vendor BIlls will be allocation on the specified account instead of the product account. Example: Create a journal entry with one product with the following attributes: quantity: 1 price unit: 100 discount 5 We expect the following account move line: Without an account set in the settings for discount allocation: ACCOUNT DEBIT CREDIT 700000 Sales rendered in Belgium (marchandises) 0 95 400000 Trade debtors within one year - Customer 95 0 With discount allocation account set to "657000 Discount Given": ACCOUNT DEBIT CREDIT 700000 Sales rendered in Belgium (marchandises) 0 95 700000 Sales rendered in Belgium (marchandises) 0 5 657000 Discounts Given 5 0 400000 Trade debtors within one year - Customer 95 0 Note: the discount is added on another line than the one of the product even though it is the same account because it does not include taxes and analytic distributions. task: 3278827 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Users can now save a record and load another record, such as the next item in a pager, in a single server request. This reduces waiting time and makes navigating between records smoother in the web interface.
Original PR description
In [1], a new python function was introduced that allows to save and read in one rpc. This commit, adds the possiblitity to read another record in the same rpc call. This is particularly useful when you want to save and read the next record (for instance on a pager). 1: ebd538a1942c532bcf1c9deeab3c25efe23b6893 Task-id : 3453184
This update makes Automated Actions more visible from kanban views and easier to configure with clearer screens, smarter trigger choices, and support for multiple actions in one automation. It also simplifies related Server Actions so users see only the fields and options relevant to what they are trying to automate.
Original PR description
This PR makes "Automated Actions" more discoverable and usable by: - Adding a menu in the kanban header config dropdown to add/edit them. - Creating a new custom kanban view for a clear understanding…
This PR makes "Automated Actions" more discoverable and usable by:
- Adding a menu in the kanban header config dropdown to add/edit them.
- Creating a new custom kanban view for a clear understanding of each
automated action record and its associated actions.
- Introducing new "smart" triggers that appear in the form view based on the
chosen model:
- Updated Values category:
- "Stage is set to" when a `stage_id` field exists in the model,
allowing users to select a specific stage value.
- "State is set to" when a `state` field exists in the model,
allowing users to select a specific state value.
- "Priority is set to" (`priority`) where users can select a specific priority.
- "User is set" (`user_id`, `user_ids` fields)
- "Tag is added" (`tag_ids` field) where users can select a specific tag.
- "On Archive"
- "On Unarchive"
- Timing Conditions:
- "After creation"
- "After last update"
- Deprecating previously known triggers "On Creation" (`on_create`) and "On
Update" (`on_write`) to simplify the user experience. "On Creation & Update"
(`on_create_or_write`) is retained and renamed to "On save".
- Changing the `ir.actions.server` Many2one relationship to a One2many
relationship. Automated actions can now directly contain multiple actions,
eliminating the need for an "Execute several actions" action in automation
rules.
- Introducing a widget for the new `ir.actions.server` One2many field for a
clearer understanding of multiple actions.
This commit also enhances the usability of "Server Actions" (`ir.actions`) by:
- Removing the `ir.server.object.lines` model and the associated `fields_lines`
One2Many field. The attributes of the removed model are now merged into
`ir.actions`. An action can now write to only one field, and the create action
is now a name_create action.
- Adapting the form view when creating an "Update the record" action. The value
field shown adapts itself based on the field to update; this field can be a
`reference` field for a `one2many` `update_field_id`, a `one2many` field for a
selection `update_field_id`, or a `text` field otherwise.
- Refactoring the form view to display only relevant details and other
miscellaneous improvements.
Taskid: 3085360
upgrade: https://github.com/odoo/upgrade/pull/4904
enterprise: https://github.com/odoo/enterprise/pull/37782Website editors can now apply hover-triggered animations to images and adjust image shape orientation with flips or rotation. This gives marketing and content teams more visual options to make pages feel dynamic without custom development.
Original PR description
**[IMP] web_editor: allow to flip/rotate image shapes** This commit adds the possibility to horizontally/vertically mirror and rotate the shape of an image. We've introduced a new sub-option for…
**[IMP] web_editor: allow to flip/rotate image shapes** This commit adds the possibility to horizontally/vertically mirror and rotate the shape of an image. We've introduced a new sub-option for image shapes called "Transform". This new option is not available for certain shapes: - If the transform will have no effect (a vertically and horizontally symmetrical shape). - With some animations, if the animation is too complex for the system to work. - For "devices" shapes because they are too specific for the option to work. And anyway "devices" shapes are already available horizontally flipped in the list. task-3094258 ________________________________________________________ **[IMP] web_editor, website: add an "on hover" option for animations** This commit adds an "on hover" option for animations. We've added the "on hover" option to the animation selector. This feature is only available for images. It allows you to pick an animation that triggers when you hover your mouse over an image. There are six different animations to choose from. This new animation option doesn't work with animated shapes and devices shapes. task-3094258
The Point of Sale demo setup now includes richer sample data, including past orders, open sessions, open orders, and more drink products. This makes demonstrations and testing feel more realistic and helps users evaluate POS workflows more easily.
Original PR description
pos*: point_of_sale, pos_restaurant, pos_self_order **Purpose:** This change is for better UX of the testers. **Notable changes:** 1. Historical pos order data which include past sessions and past orders. 2. New open session and open orders. 3. Onboarding data containing all demo datas and the new open session and open orders. 4. Adding more drinks demo products. Enterprise PR: odoo/enterprise#44198 task-id: 2484444 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The fleet vehicle search menu now presents the employee driver option more clearly as “Drivers (Employee)” and places it higher in the list. Search behavior has also been adjusted so users get more accurate driver-related vehicle results.
Original PR description
Before this commit, the 'Current Driver(Employee)' option was present within the search menu and appeared as the last choice in the search list. IMP: Following this commit, the 'Current Driver(Employee)' is renamed as 'Drivers(Employee)' and moved to the third position among the available search options and filter_domain is applied to get correct search results. taskId: 3459896
The task “Last Stage Update” date now refreshes whenever a task state changes, not only when it moves to a closing state. This date is also shown directly in the task list, helping teams see more easily when task progress was last updated.
Original PR description
This PR brings two small improvements related to the "Last Stage Update" task field: - Update the field when changing the task to any state, not just a closing state. - Display the field in the project.task list view, just before the state. Task-3455177
Inbox message actions are now organized so the most common choices, such as reacting or marking messages, are easier to access. This also makes the action menu more adaptable for different messaging contexts, improving usability as more options are added.
Original PR description
Before this commit, message actions were all defined in template of `Message` component. It's good when there are few actions and the ordering of actions is always the same, but there are now many actions and we want to order these actions depending on context. This commit fixes the issue by introducing a special registry to add message actions. This registry is quite similar to thread actions: each item define conditions to be shown, behaviour on click, and their sequence which can depend on the context where the message is being viewed. In addition to this message action registry, this commit also reorder message actions in inbox as follow: 1. Quick actions: - Add a Reaction - Mark as To do - Mark as Read 2. More menu: - View reactions - Reply - Unfollow - Edit - Delete Task-3458086
Brazilian customer and company records can now distinguish between CNPJ and CPF identification types. This improves validation accuracy using standard checks and makes local compliance data easier to categorize.
Original PR description
This adds the two main identification types we use in Brazil. CNPJ is used the standard VAT type. The custom check_vat logic was removed because stdnum supports this out of the box. Another non-VAT CPF type was added that is checked for validity using stdnum as well. task-3475609
Custom one-to-many and many-to-many views can now include extra related data while still respecting their configured sub-views. This helps customized screens show or use dependent information more reliably without forcing extra fields to appear to users.
Original PR description
The goal of this commit is to allow relatedFields to be added to a one2many field using a sub-view. Before this commit, if an x2many custom contains a sub-view and relatedFields, we ignore the sub-view and use only the relatedFields. Now we're going to add the relatedFields to the fields/activeFields defined in the sub-view. Use case: Created a custom x2many field dependent on the 'display_name' of a many2one field that should not be present in the sub-view. For example, to simulate a groupBy on this many2one field. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Mail app now uses the label "To-Do" instead of "To Do" for activity types. This keeps wording consistent with the To-Do app and reduces small inconsistencies in the user experience.
Original PR description
upgrade: https://github.com/odoo/upgrade/pull/5057 Renaming the activity type 'To Do' into 'To-Do' so that the naming convention is consitent with the To-Do app. **task-3469745**
The self-order kiosk landing page now supports a rotating image carousel. Businesses can configure the displayed images in settings, making the kiosk welcome screen more engaging for promotions, branding, or product highlights.
Original PR description
Carousel is a slideshow for cycling through a series of images. It is a dynamic display of content that can be used to show a rotating series of pictures, articles, or advertisements. Following the specifications, the carousel is displayed on the landing page of the kiosk mode. Images of carousel can be configured from the settings (ir.attachement). Used carousel is a bootstrap carousel. taskId: 3484170
Odoo removed an outdated browser-detection dependency that was only needed for very old, unsupported browsers. This simplifies maintenance across website, portal, point of sale, project, manufacturing subcontracting, web editor, and slides areas without changing expected behavior for supported users.
Original PR description
Enterprise PR: https://github.com/odoo/enterprise/pull/46736 task-3439226 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
The Knowledge app now includes five additional ready-to-use templates, covering personal organization, account management, post-mortems, release notes, and software specifications. These templates help teams start documenting common processes faster and include a full-width display option for a more spacious reading experience.
Original PR description
This PR adds new templates to the Knowledge template library. These templates showcase the practical applications of the Knowledge module through various examples. This commit includes the following templates: - "Personal organizer" - "Account Management" - "Post-mortem" - "Release Notes" - "Software Specification" task-3423795
Brazilian customer tax identifiers are now handled more consistently by storing both company (CNPJ) and individual (CPF) IDs in the same VAT field. This helps Avatax integrations use the expected tax ID source and reduces confusion in Brazilian localization workflows.
Original PR description
Both CNPJ and CPF are now stored in the vat field. For more details see https://github.com/odoo/odoo/pull/132773. task-3475609
The Twitter wall feature no longer uses legacy browser compatibility checks for outdated browsers such as Internet Explorer. This simplifies maintenance while keeping the visual scaling behavior supported in modern browsers.
Original PR description
This commit aims at removing the need to rely on `$.browser`, which was mainly the case to support deprecated and unsupported browsers like MS Internet Explorer or old version of Firefox. Community PR: https://github.com/odoo/odoo/pull/133916 task-3439226
Restaurant point of sale demo and onboarding data has been expanded with realistic past and active orders, sessions, and kitchen display examples. The kitchen display app now opens in a more standard way, making testing smoother and access to settings clearer.
Original PR description
pos*: pos_preparation_display, pos_restaurant_appointment, pos_restaurant_preparation_display **Purpose:** This change is for better UX of the testers. **Notable changes:** 1. Onboarding data now…
pos*: pos_preparation_display, pos_restaurant_appointment, pos_restaurant_preparation_display **Purpose:** This change is for better UX of the testers. **Notable changes:** 1. Onboarding data now includes the data from the demo data. 2. Historical pos order data which include past sessions and past orders. 3. New open session and open orders. 4. New pos_preparation_display data for the preparation display. 5. Onboarding data can be generated from the preparation display as in the session in the classic point_of_sale. 6. Removal of the demo preparation display "Food", "Drinks" and "Drink and Food". Removal of the main preparation display data keeping only "Kitchen Display" as pre-configured preparation display. 7. The kitchen display icon in the main menu is opening directly a preparation display under some conditions. This leads to problems with some js tests (clickEverywhere for example) and is kinda not Odoo-like as it does not follow the normal behaviour of every other apps. It also does not provide direct access to the preparation display settings when the conditions are met. This led to the change of uniformizing this icon and making it so that the click on the app icon will lead to a classical opening of the application (opening the preparation displays main page). This commit follows up the community commit to the change in the demo data. Community PR: odoo/odoo#128699 task-id: 2484444
Updated demo data helps users see how project documents can be managed in realistic scenarios. It showcases turning off documents for a project, tagging files, and sharing selected files as download-only links for portal users.
Original PR description
This PR adds some demo data in documents to showcase the following features: - Disabling the "Documents" feature on a project. - Applying tags to documents. - Creating a share link by documents ids in download only (so that uploading is not available for that project in the portal). Task-2878833
This update makes automation setup easier by opening Automations in a clearer kanban view with the relevant model already selected. It also refreshes Studio promotion dialogs and aligns subscription, HR contract, and marketing automation screens with the updated automation framework.
Original PR description
Enterprise counterpart of task 3085360 It mainly consists of adaptations due to changes in the community part: odoo/odoo#114352 It also improves: - web_studio: the "Automations" action is now a kanban view by default, having the current model put in the context - web_enterprise: better Studio promotion dialogs upgrade: https://github.com/odoo/upgrade/pull/4904
Payroll administrators can now set how far in advance each company is warned about expiring employee contracts and work permits. This replaces fixed warning periods, making reminders better match each company's HR processes and compliance needs.
Original PR description
Currently the warning messages to warn for contracts and work permits that are about to expire are hardcoded to be triggered 7 and 60 days in advance respectively. With this commit, these notice periods are made to be configurable on a per-company basis. task-3340931
Australian bank account BSB details are now available without requiring ABA payment file handling. This lets businesses record and validate BSB information for bank accounts even when they do not use ABA files.
Original PR description
Description of the issue/feature this PR addresses: Makes BSB available on bank accounts, even if not using ABA files Current behavior before PR: Can't enter BSB without ABA file handling installed Desired behavior after PR is merged: Makes BSB available, even if ABA file handling not installed. Community PR: https://github.com/odoo/odoo/pull/133897 Upgrade PR: https://github.com/odoo/upgrade/pull/5105 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update renames a technical product setting so it does not conflict with the main Documents label introduced for product documents. It also adjusts where rental information appears on product pages so customers see it in the intended section.
Original PR description
new field `product_document_ids` on product.template will also use the label 'Documents'. Since the field project_template_use_documents is only a little technical UX field, it could use a less generic label. See also: * https://github.com/odoo/odoo/pull/132739 * https://github.com/odoo/upgrade/pull/5069
Appointment meeting links are now passed into calendar event details when Google Calendar is not synced. This helps attendees find the online meeting link directly from the appointment information, reducing confusion and missed meetings.
Original PR description
Propagate the discuss link to the location parameter when the calendar is not synced with google calendar. Task-3235765
This fix makes an automated test for single notifications run consistently instead of failing at random. It helps keep the bus messaging component's quality checks reliable, reducing false failures during development and release validation.
Original PR description
Before this commit, the "subscribe to single notification" test failed in an undeterministic fashion. This commit solves this issue. fixes runbot-24033
When someone applies for a job that has no recruiter assigned, the applicant record will no longer automatically list the public website user as responsible. This keeps ownership fields accurate and avoids confusion for recruitment teams reviewing new applications.
Original PR description
Steps: - install hr_recruitment app - Create a job Positions without Recruiter - Published job Positions - Got To website and apply - Open applicant - Public user is set in applicant responsible Issue: public user is set if Recruiter is empty in job Position Fix: In this commit we have removed the default current user as the responsible applicant. task-3424017
This fixes a small usability issue in Odoo's web interface where search text stayed visible after selecting a record in avatar-style many-to-many tag fields. Users now get a cleaner input field after each selection, reducing confusion during data entry.
Original PR description
Before this commit, performing a search in a Many2manyTagsAvatarFields and selecting an element does not remove the search value from the input. Why not? The value passed to Autocomplete is the default ''. As this value never changes, onWillUpdateProps is never called and cannot empty the input. Solution: Use the resetOnSelect option to force the input to be reset at each select if props.value is the default value. Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
List and kanban views now use the right display limits when users switch between grouped and ungrouped data. This prevents too many or too few groups or records from appearing, making navigation and reporting views more consistent.
Original PR description
Be in an ungrouped list or kanban view. The "limit" number of records is displayed (by default 80). Apply a group by. The same limit is applied for the number of groups, whereas there's a specific parameter ("groups_limit") for the number of groups to fetch and display. The same problem occurs the other way around (going from grouped to ungrouped), as in this case the groups_limit is kept when the view is no longer grouped.
This commit fixes the issue by forcing a reset of the limit when we go from grouped to ungrouped and from ungrouped to grouped.
We also add a test to ensure that the "groups_limit" is taken into account even when there're multiple groupbys, which wasn't the case in previous versions, but which is working as expected with the new model.
Description of the issue/feature this PR addresses:
Current behavior before PR:
Desired behavior after PR is merged:
---
I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-prThe Knowledge share panel now immediately reflects changes when a user updates an article's workspace visibility. This avoids confusion from the selection snapping back and removes the need to reload the page to confirm the new setting.
Original PR description
Currently, the input selection controlling the visibility of the article in the workspace is not properly updated whenever the user selects a new value. The user has to reload the page to see the change. Steps to reproduce the error: 1. Create an article in "Workspace". 2. Open the share panel of the article you created. 3. Change the visibility of the article. => The input selection changes but returns to its initial state. TO BE: The input selection should be updated and reflect the new configuration of the article. task-3482257
This update streamlines styling across several HR apps by replacing custom code with standard Bootstrap styling where possible. It should make pages easier to maintain, improve loading flexibility, and fixes a few readability issues in referral and salary configurator screens.
Original PR description
This PR is part of the SCSS reviewing process. The SCSS of the hr module is being changed to reduce the number of custom code lines. The goal is to use Bootstrap's SCSS variable to optimize the loading time and allow more flexibility. This PR affects the hr module and its addons from the enterprise plan. Custom CSS that can be replaced by Bootstrap's SCSS classes has been refactored within this PR. This PR affects the following modules : - hr_appraisal - hr_appraisal_skills - hr_contract_salary - hr_expense - hr_referral task-3244877 Requires : - https://github.com/odoo/odoo/pull/116393
Before, when instatating the interfaces if there was an error inside Odoo could stop. This PR prevents that and simply avoids instantiating the interface which causes the error. Forward-Port-Of: odoo/odoo#133791
Original PR description
Before, when instatating the interfaces if there was an error inside Odoo could stop. This PR prevents that and simply avoids instantiating the interface which causes the error. Forward-Port-Of: odoo/odoo#133791
As the Activity button (clock icon) is the same kind of action it make sense to apply the text-muted on the quick assign. task-3382159 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126226
Original PR description
As the Activity button (clock icon) is the same kind of action it make sense to apply the text-muted on the quick assign. task-3382159 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#126226
Commit 72a17bafba6e7 force the PO `date_order` to be >= at ` today() to ensure the select_seller method take the right seller price. This introduces an error in the MPS module that may need to create PO in the past. Instead, this commit patch the call to `_select_seller` to take at least `today()` opw: 3167094 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read t
Original PR description
Commit 72a17bafba6e7 force the PO `date_order` to be >= at ` today() to ensure the select_seller method take the right seller price. This introduces an error in the MPS module that may need to create PO in the past. Instead, this commit patch the call to `_select_seller` to take at least `today()` opw: 3167094 Description of the issue/feature this PR addresses: Current behavior before PR: Desired behavior after PR is merged: --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#134130 Forward-Port-Of: odoo/odoo#133759
As the use of Markup is enforced since [1], we must use a Markup string when adding the subject to incoming vendor bills body otherwise the chatter will contain the escaped html, making it quite difficult for users to understand it. opw-3453136 [1] https://github.com/odoo/odoo/pull/111850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133206
Original PR description
As the use of Markup is enforced since [1], we must use a Markup string when adding the subject to incoming vendor bills body otherwise the chatter will contain the escaped html, making it quite difficult for users to understand it. opw-3453136 [1] https://github.com/odoo/odoo/pull/111850 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133206
Before this commit, when the browser was offline and when an attempt to make a `RTCPeerConnection` was made, a traceback was raised by firefox: > InvalidStateError: Can't create RTCPeerConnection when the network is down This commit prevents the creation of the `RTCPeerConnection` when the browser is offline. task-3186872 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133770
Original PR description
Before this commit, when the browser was offline and when an attempt to make a `RTCPeerConnection` was made, a traceback was raised by firefox: > InvalidStateError: Can't create RTCPeerConnection when the network is down This commit prevents the creation of the `RTCPeerConnection` when the browser is offline. task-3186872 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#133770
…after_invoice_pdf_render If a web-service after the PDF generation failed but does a cr.commit(), the attachments should not be generated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132349
Original PR description
…after_invoice_pdf_render If a web-service after the PDF generation failed but does a cr.commit(), the attachments should not be generated. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132349
Steps to reproduce the problem: - Go on the "Courses" application and select a course. - Edit. - Replace the main image of the course with one of your own. - Save. -> The function route `/web_editor/modify_image/` is called two times leading to the creation of two attachments instead of one. The `saveModifiedImages()` function iterates through editable elements and calls `/web_editor/modify_image/` for each image with a `o_modified_image_to_save` class inside those elements. In our cas
Original PR description
Steps to reproduce the problem: - Go on the "Courses" application and select a course. - Edit. - Replace the main image of the course with one of your own. - Save. -> The function route…
Steps to reproduce the problem: - Go on the "Courses" application and select a course. - Edit. - Replace the main image of the course with one of your own. - Save. -> The function route `/web_editor/modify_image/` is called two times leading to the creation of two attachments instead of one. The `saveModifiedImages()` function iterates through editable elements and calls `/web_editor/modify_image/` for each image with a `o_modified_image_to_save` class inside those elements. In our case, the image has an editable element parent that has itself an editable element parent. Because since [1], the `o_modified_image_to_save` class is removed after the `rpc` call, this class is not removed while the `saveModifiedImages()` loops on the second editable element parent of the image. As a result, `/web_editor/modify_image/` is called two times. Note that before [1], the process was partially wrong as well. `/web_editor/modify_image/` was indeed called only once but with the wrong arguments. This is now fixed by ensuring that the function is called with the arguments coming from the closest editable element. [1]: https://github.com/odoo/odoo/commit/8872aab2d108ff3e2ec06ca4579479898c87738c task-3451349 Forward-Port-Of: odoo/odoo#134061 Forward-Port-Of: odoo/odoo#130472
before this commit, on inheriting the function _get_custom_rendering_context_values the argument values are not received in the inherited function as it is not passed along with the super scenario: * consider that the payment link is shared to customer * customer made the full payment * once the sale or invoice is fully paid, the link has to be shown as fully paid or expired * for doing this, if we inherit the above function, the arguments is not passed to the function after this commi
Original PR description
before this commit, on inheriting the function _get_custom_rendering_context_values the argument values are not received in the inherited function as it is not passed along with the super scenario: * consider that the payment link is shared to customer * customer made the full payment * once the sale or invoice is fully paid, the link has to be shown as fully paid or expired * for doing this, if we inherit the above function, the arguments is not passed to the function after this commit, the argument values are passed to super and the value can be used re used in the further inherit of this function --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#134088
=== ISSUE 1 === Prior to this commit, there was a missing padding on the `o_list_selection_box`. === ISSUE 2 === On mobile, Cog and Print icons had no margin and were stick next to their label. This commit fixes these issues. task-3454841 Part of task-3326263 BEFORE:  AFTER:  AFTER:  --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#130824
Steps to reproduce: 1. install l10n_ar_website_sale 2. try to checkout out using a guest account (without sigining in) 3. error on address form very similar to: https://github.com/odoo/odoo/pull/130455 Issue: due to https://github.com/odoo/odoo/pull/118701 public users can't read `l10n_ar.afip.responsibility.type` anymore Fix: open access to the models opw-3460719 Forward-Port-Of: odoo/odoo#133457
Original PR description
Steps to reproduce: 1. install l10n_ar_website_sale 2. try to checkout out using a guest account (without sigining in) 3. error on address form very similar to: https://github.com/odoo/odoo/pull/130455 Issue: due to https://github.com/odoo/odoo/pull/118701 public users can't read `l10n_ar.afip.responsibility.type` anymore Fix: open access to the models opw-3460719 Forward-Port-Of: odoo/odoo#133457
Current behaviour: --- When clicking on a note containing multi-line text, the textarea shrinks Expected behaviour: --- Note should show whole text Steps to reproduce: --- 1. Install sale_management 2. Head to Sales > Quotations 3. Click on any quotation line 4. Click on "Add a note" 5. Input multi-line text 6. Click on the "Save manually" button 7. Click again on the note 8. Note is only one character tall opw-3457234 --- I confirm I have signed the CLA and read the P
Original PR description
Current behaviour: --- When clicking on a note containing multi-line text, the textarea shrinks Expected behaviour: --- Note should show whole text Steps to reproduce: --- 1. Install sale_management 2. Head to Sales > Quotations 3. Click on any quotation line 4. Click on "Add a note" 5. Input multi-line text 6. Click on the "Save manually" button 7. Click again on the note 8. Note is only one character tall opw-3457234 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#132437
This traceback arises when a user tries to make a payment on the website. To reproduce this issue: 1) Install `website_sale` 2) open invoicing/configuration/journals 3) Change the journal type if it is `sales` for all journals 4) Install and enable `Wire Transfer` payment provider in `invocing/configuration/Payment Providers` 5) Now open `website/shop` add any product to `Cart` and proceed to checkout 6) Make a payment with `Wire Transfer` Error: ``` ValueError: Expected single
Original PR description
This traceback arises when a user tries to make a payment on the website. To reproduce this issue: 1) Install `website_sale` 2) open invoicing/configuration/journals 3) Change the journal type if it…
This traceback arises when a user tries to make a payment on the website.
To reproduce this issue:
1) Install `website_sale`
2) open invoicing/configuration/journals
3) Change the journal type if it is `sales` for all journals
4) Install and enable `Wire Transfer` payment provider in `invocing/configuration/Payment Providers`
5) Now open `website/shop` add any product to `Cart` and proceed to checkout
6) Make a payment with `Wire Transfer`
Error:
```
ValueError: Expected singleton: account.journal()
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 233, 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 "addons/payment_custom/controllers/main.py", line 17, in custom_process_transaction
request.env['payment.transaction'].sudo()._handle_notification_data('custom', post)
File "addons/payment/models/payment_transaction.py", line 669, in _handle_notification_data
tx._process_notification_data(notification_data)
File "addons/payment_custom/models/payment_transaction.py", line 71, in _process_notification_data
self._set_pending()
File "addons/sale/models/payment_transaction.py", line 53, in _set_pending
so.reference = tx._compute_sale_order_reference(so)
File "addons/sale/models/payment_transaction.py", line 27, in _compute_sale_order_reference
order_reference = invoice_journal._process_reference_for_sale_order(order_reference)
File "addons/account/models/account_journal.py", line 912, in _process_reference_for_sale_order
self.ensure_one()
File "odoo/models.py", line 5420, in ensure_one
raise ValueError("Expected singleton: %s" % self)
```
On `_compute_sale_order_reference` method, `invoice_journal` variable is getting values with the reference of `type=sale`.
See:-
https://github.com/odoo/odoo/blob/ebc4ed6c4fb11b01be28cf417b27de83d5361cef/addons/sale/models/payment_transaction.py#L20-L30
Because of user changed the type of journal, `invoice_journal` value will be empty recordset and it is referenced to call `_process_reference_for_sale_order` method.
In `_process_reference_for_sale_order` method `ensure_one()` is used, which leads to above traceback.
sentry-4392496618
Forward-Port-Of: odoo/odoo#131934Forward-Port-Of: odoo/odoo#130709
Original PR description
Forward-Port-Of: odoo/odoo#130709
Issue: ------ It is possible to modify the `recurring_invoice` field even if the product has already been sold. After closing the error message, it is possible to save the product with the modifications. Cause: ------ Even if we return an error message (>< raising an exception), the value is changed in the backend. opw-3483040 Forward-Port-Of: odoo/enterprise#46571
Original PR description
Issue: ------ It is possible to modify the `recurring_invoice` field even if the product has already been sold. After closing the error message, it is possible to save the product with the modifications. Cause: ------ Even if we return an error message (>< raising an exception), the value is changed in the backend. opw-3483040 Forward-Port-Of: odoo/enterprise#46571
Since odoo/odoo#128244, when in the workspace share popup 1. A user clicks on `Share` 2. `onClose` (via `saveRecord`) is called before our `onSave` handler 3. the flag `saved` is `false` and the share record is **deleted** 4. Bonus: the user gets a link thinks all is going fine, but of course it leads to nowhere. Note that onSavedRecords works anyway to solve this, so we can clean our class extension, but not completely as we're in stable. We take this opportunity to rename the c
Original PR description
Since odoo/odoo#128244, when in the workspace share popup 1. A user clicks on `Share` 2. `onClose` (via `saveRecord`) is called before our `onSave` handler 3. the flag `saved` is `false` and the share record is **deleted** 4. Bonus: the user gets a link thinks all is going fine, but of course it leads to nowhere. Note that onSavedRecords works anyway to solve this, so we can clean our class extension, but not completely as we're in stable. We take this opportunity to rename the cancel button into "Discard", so users can figure out that using the "Copy Link" button does not mean that the share will exist. I.e. if one clicks on "Copy link", then "Cancel" or "X", they also have a link to a deleted record. Task-3489334 Forward-Port-Of: odoo/enterprise#46813 Forward-Port-Of: odoo/enterprise#46690
Currently when you open the deferred expense or revenue report and there already exist deferral moves for that period, we show a banner indicating that. However the user has no direct way of going to the involved entries. This commit makes the message clickable to that a user can quicly access the mentioned entries. Also the message mentions the entries are posted, but they are not always. So we renamed the term to 'generated' instead. Furthermore an issue is fixed where you couldn't gener
Original PR description
Currently when you open the deferred expense or revenue report and there already exist deferral moves for that period, we show a banner indicating that. However the user has no direct way of going to the involved entries. This commit makes the message clickable to that a user can quicly access the mentioned entries. Also the message mentions the entries are posted, but they are not always. So we renamed the term to 'generated' instead. Furthermore an issue is fixed where you couldn't generate a grouped deferral entry when there already was an automatic one on the same date from before (when the mode was automatic). [task-3441804](https://www.odoo.com/web#id=3441804&menu_id=4720&cids=1&action=333&active_id=967&model=project.task&view_type=form) Forward-Port-Of: odoo/enterprise#46798 Forward-Port-Of: odoo/enterprise#44940
This PR will allow people to generate a PDF containing a list of all attendees of an event. People can also manually select attendees and generate a PDF listing them. task-3470464 Forward-Port-Of: odoo/enterprise#46227
Original PR description
This PR will allow people to generate a PDF containing a list of all attendees of an event. People can also manually select attendees and generate a PDF listing them. task-3470464 Forward-Port-Of: odoo/enterprise#46227
The query for the pnd tax report in Thailand does not have a defined order. It may not always the same. Linked to runbot error 24566 Forward-Port-Of: odoo/enterprise#46792
Original PR description
The query for the pnd tax report in Thailand does not have a defined order. It may not always the same. Linked to runbot error 24566 Forward-Port-Of: odoo/enterprise#46792
Versions: --------- - 14.0e+ Steps to reproduce: ------------------- 1. install l10n_pe_edi; 2. switch company to PE Company; 3. create a new invoice in Accounting; 4. set operation type to "[1001] Operation Subject to Detraction"; 5. add a product with a price >= 700; 6. open the product screen; 7. set withhold code "Madera" & withhold percentage to 4.00, then save; 8. preview invoice. Issue: ------ The sentence in the middle of the page includes a percentage with the sign in
Original PR description
Versions: --------- - 14.0e+ Steps to reproduce: ------------------- 1. install l10n_pe_edi; 2. switch company to PE Company; 3. create a new invoice in Accounting; 4. set operation type to "[1001] Operation Subject to Detraction"; 5. add a product with a price >= 700; 6. open the product screen; 7. set withhold code "Madera" & withhold percentage to 4.00, then save; 8. preview invoice. Issue: ------ The sentence in the middle of the page includes a percentage with the sign in front of the number. Cause: ------ In the formatting string, `%%` is placed in front of `%s`. Solution: --------- Place the `%%` directly behind `%s`. opw-3478679 Forward-Port-Of: odoo/enterprise#46752
Bugfixes: - Balance Sheet line 'VI. Current profit (loss)': only the profit was taken from the P&L, not the loss, so the Balance Sheet was unbalanced when the P&L is a net loss. - Profit & Loss: Line 'Increase in inventories and work in progress' had the wrong sign. This is part of the task of re-balancing the Balance Sheets. I've verified that with these changes, the Balance Sheet is balanced regardless of the balances created in all the accounts. Affected versions: 16.0 -> master. t
Original PR description
Bugfixes: - Balance Sheet line 'VI. Current profit (loss)': only the profit was taken from the P&L, not the loss, so the Balance Sheet was unbalanced when the P&L is a net loss. - Profit & Loss: Line 'Increase in inventories and work in progress' had the wrong sign. This is part of the task of re-balancing the Balance Sheets. I've verified that with these changes, the Balance Sheet is balanced regardless of the balances created in all the accounts. Affected versions: 16.0 -> master. taskid:3239795 Forward-Port-Of: odoo/enterprise#46648
Purpose ======= Migrate social twitter to the new API. Changes ======= We can not search user by name anymore, we need to type their username directly. To know if we liked a tweet or not, we need to request a different endpoint `/2/users/:id/liked_tweets`, but we can not search on this endpoint, so we will need to iterate over ALL the tweets the users liked (each time we want to update the like status). So we do not synchronize the like status with Twitter (the like status is just stor
Original PR description
Purpose ======= Migrate social twitter to the new API. Changes ======= We can not search user by name anymore, we need to type their username directly. To know if we liked a tweet or not, we need to request a different endpoint `/2/users/:id/liked_tweets`, but we can not search on this endpoint, so we will need to iterate over ALL the tweets the users liked (each time we want to update the like status). So we do not synchronize the like status with Twitter (the like status is just stored in the database). See https://developer.twitter.com/en/docs/twitter-api/tweets/likes/introduction Task-3431873 Forward-Port-Of: odoo/enterprise#46782 Forward-Port-Of: odoo/enterprise#44625
Before this commit, `o-gantt-zindex` mixin was used for the styling in grid renderer component, the problem is that mixin is defined in `web_gantt` module and that module is not in the dependencies of `web_grid` module. This commit creates a new mixin function called `o-grid-zindex` to use it instead of `o-gantt-zindex` for grid renderer to be sure the mixin function is available even if web_gantt is not installed Forward-Port-Of: odoo/enterprise#46561
Original PR description
Before this commit, `o-gantt-zindex` mixin was used for the styling in grid renderer component, the problem is that mixin is defined in `web_gantt` module and that module is not in the dependencies of `web_grid` module. This commit creates a new mixin function called `o-grid-zindex` to use it instead of `o-gantt-zindex` for grid renderer to be sure the mixin function is available even if web_gantt is not installed Forward-Port-Of: odoo/enterprise#46561
The introduction of sections in reports put in light an inappropriate behavior in the dispatching of the option buttons. In a browser, when the currently displayed report is a section of another, the `dispatch_report_action` (`controller.js` in `account_reports`) would dynamically adapt the buttons to have them use the original report id. Hence, there would be no problem in the browser. However, during testing, `dispatch_report_action` can't do its magic ; a button is called from the secti
Original PR description
The introduction of sections in reports put in light an inappropriate behavior in the dispatching of the option buttons. In a browser, when the currently displayed report is a section of another, the `dispatch_report_action` (`controller.js` in `account_reports`) would dynamically adapt the buttons to have them use the original report id. Hence, there would be no problem in the browser. However, during testing, `dispatch_report_action` can't do its magic ; a button is called from the section instead of its parent, causing the test to fail. Adapted the test to take sections into account. Forward-Port-Of: odoo/enterprise#46817
Before this commit, when the currency of the order did not matched the current currency, the result were not properly displayed in the list view. Forward-Port-Of: odoo/enterprise#46323
Original PR description
Before this commit, when the currency of the order did not matched the current currency, the result were not properly displayed in the list view. Forward-Port-Of: odoo/enterprise#46323