Friday, March 1, 2024
70 changes
22 changes
New functionality added to Odoo
This update adds support for Jordanian country states to the Odoo system. Previously, Odoo did not recognize or allow for state-level selection within Jordan. This change ensures users can accurately manage locations within Jordan, improving data accuracy and operational efficiency.
Original PR description
Description of the issue/feature this PR addresses: Add country states for Jordan Current behavior before PR: No country states are imported by default for Jordan Desired behavior after PR is merged: Country states are imported by default for Jordan --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155010
Resolved issues and error corrections
This update fixes a previous issue where products within a POS category's child categories weren't visible. Now, all products associated with a category and its children are correctly displayed, improving the user experience for product browsing in the Point of Sale system. This ensures accurate product listings and simplifies the sales process.
Original PR description
Before this commit, if a POS category had children, we didn't show the products in the child categories. This commit fixes this issue by ensuring that products in child categories are also displayed. opw-3754832 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
3 changes
Miscellaneous changes
This commit(https://github.com/odoo/enterprise/commit/217594fe8ba00329b3eb5c68e3eca3b556127cde) removed a filter on products that are services and that shouldn't be in the intrastat report (for now). This commit adds again this filter. opw-3763306 opw-3764904 opw-3730803 Forward-Port-Of: odoo/enterprise#57701 Forward-Port-Of: odoo/enterprise#57607
Original PR description
This commit(https://github.com/odoo/enterprise/commit/217594fe8ba00329b3eb5c68e3eca3b556127cde) removed a filter on products that are services and that shouldn't be in the intrastat report (for now). This commit adds again this filter. opw-3763306 opw-3764904 opw-3730803 Forward-Port-Of: odoo/enterprise#57701 Forward-Port-Of: odoo/enterprise#57607
This update fixes a potential issue where manually editing follower lists could cause errors when assigning users to records after merging. The change ensures that follower lists are always up-to-date, preventing duplicate entries and improving the reliability of follower management. This primarily impacts users managing leads and contacts.
Original PR description
`_message_auto_subscribe` relies on `_get_subscription_data` to know who is subscribed to what. This method uses a raw SQL query but doesn't flush the relevant records beforehand. This is not an issue in most normal cases, but if followers are edited manually, for example in order to merge existing models, it may cause issues when then assigning someone to the model will attempt adding them to the list of followers, when they already were on it. task-3713472 original issue in opw-3634410 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155043 Forward-Port-Of: odoo/odoo#152041
This update resolves an issue where users were unable to save custom background colors for product ribbons on the website. The fix adds an 'important' tag to the ribbon color setting, ensuring changes are applied as intended. This improves the user experience by allowing for personalized product displays.
Original PR description
Before this commit, the `bg-primary` class was overwriting the `bg_color` set by the user after saving changes as it has the `!important` tag. Steps to reproduce the issue: 1. Go to Shop page on website 2. Enable edit mode 3. Pick a product and create a new Badge (ribbon) 4. Change the background color and save changes -> color reverts to `bg-primary` This commit fixes this behavior by adding the `!important` tag to the `bg_color` so that it properly overwrites the `bg-primary` color. opw-3734598 Forward-Port-Of: odoo/odoo#155040
This update fixes a minor issue where loyalty points were being displayed with slight rounding errors due to how the system calculates points. The change ensures that loyalty points are shown accurately, providing a better customer experience. This improves the reliability of the loyalty program's point calculations.
Original PR description
Steps ----- 1. Create a loyalty card program awarding 1 point per $ spent; 2. make sure "Show points Unit" is enabled; 3. give yourself a loyalty card with 267.39 points on it; 4. create a product with a price of $0.89; 5. go to website and add it to your shopping car; 6. go to checkout. Issue ----- > You have 268.28000000000003 Loyalty point(s) Cause ----- The number comes from the `_get_real_points_for_coupon` method, which uses `float_round` by way of `res.currency`. The `float_round` function isn't suited for raw number display, as it can make tiny rounding errors due to floating point arithmetic. Solution -------- Add a `_format_points` method to `loyalty.card` which will return a string using the same format the `points_display` field uses. opw-3705546 Forward-Port-Of: odoo/odoo#155466 Forward-Port-Of: odoo/odoo#153541
This update fixes an issue where pricelists created in new databases caused problems with multi-company sales reporting. The change now ensures pricelists are tied to the current company, simplifying setup and preventing errors, especially for businesses using a single company.
Original PR description
Since 83c52575d0ce3d7deb1737c622c6ce366db8c31b, there is no default pricelist in new database, and a magic pricelist is created for each company when the pricelist setting is enabled. But, since this…
Since 83c52575d0ce3d7deb1737c622c6ce366db8c31b, there is no default pricelist in new database, and a magic pricelist is created for each company when the pricelist setting is enabled. But, since this automatically created pricelist is restricted to a specific company, you couldn't use it as 'Base' for rules of other pricelists, which are, by default, shared between companies, unless you set a specific company on them. This commit changes that default behavior, to restrict pricelists to the current company (unless the field is manually emptied), to avoid those multi-company issues, particularly in single-company databases where multi-company issues are not expected. Also, while testing this task, we discovered that a user could change the company of a pricelist, even if it conflicted with existing rules. To avoid this situation, we now trigger the multi-company check on the pricelist rules when the pricelist company is updated. task-3610823 See odoo/enterprise#55857 Forward-Port-Of: odoo/odoo#147014
This update resolves an issue where the 'l10n_ar_withholding' module couldn't be installed correctly when multiple Argentine companies were set up in Odoo. The fix ensures that tax data is properly calculated and linked to each company individually, preventing compatibility errors.
Original PR description
Steps to reproduce: - Install Accounting and l10n_ar - Create 2 companies located in Argentina (e.g. Company A & Company B) - Switch to Company A - Go to Accounting settings - Set Fiscal Localization…
Steps to reproduce: - Install Accounting and l10n_ar - Create 2 companies located in Argentina (e.g. Company A & Company B) - Switch to Company A - Go to Accounting settings - Set Fiscal Localization to Argentina (e.g. Argentina - Argentine Generic Chart of Accounts for Excempt individuals) - Switch to Company B - Go to Accounting settings - Set Fiscal Localization to the same Fiscal Localization than Company A (i.e. Argentina - Argentine Generic Chart of Accounts for Excempt individuals) - Try to install "l10n_ar_withholding" module Issue: A User Error is raised: "Incompatible companies on records: - 'account.tax.repartition.line,1230' belongs to company 'Company A' and 'Account' (account_id: '1.1.4.03.020 SUSS Withholding incurred') belongs to another company. - 'account.tax.repartition.line,1232' belongs to company 'Company A' and 'Account' (account_id: '1.1.4.03.020 SUSS Withholding incurred') belongs to another company. - 'account.tax.repartition.line,1234' belongs to company 'Company A' and 'Account' (account_id: '1.1.4.05.030 Withholdings of Profits incurred') belongs to another company. - 'account.tax.repartition.line,1236' belongs to company 'Company A' and 'Account' (account_id: '1.1.4.05.030 Withholdings of Profits incurred') belongs to another company." Cause: When installing "l10n_ar_withholding" module, each Argentine company is updated with some tax data. These data are "generic" (not linked to any company) and used for each company, but some treatment is performed on them by the first Argentine company, linking them to the account ids of that company. The following companies are then updated with data linked to the first company. Solution: Compute the data for each company. opw-3709819 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154219
This update fixes an issue where the website's header search field couldn't be accessed using the keyboard. The change ensures all users, including those using assistive technologies, can easily find and use the search function, improving website usability and accessibility. This resolves a previous accessibility concern.
Original PR description
This commit resolves the accessibility issue where the search field located within the header was not navigable (see [1]) via keyboard tabbing, rendering it inaccessible to users relying on keyboard navigation. This fix ensures that users can seamlessly navigate to the search field in the header using the keyboard, thereby enhancing the overall accessibility and usability of the website. [1]: https://github.com/odoo/odoo/commit/ac5866a059c345480e246b558eeae1e94aead822 task-3607481 Forward-Port-Of: odoo/odoo#153197
A warning was appearing during internal transfers when tracked products had existing serial numbers. This update prevents the warning from triggering, ensuring smoother internal transfers and avoiding potential disruptions to inventory management. The fix addresses a technical issue related to serial number verification.
Original PR description
Steps to reproduce the bug:
- Create a storable product “P1”:
- Tracked by “SN”
- Update the qty to 1 in “WH/stock” with “SN1”
- Create an internal transfer:
- Location: wh/Stock
- Dest location: wh2/stock
- Mark as todo
- Try to select SN1 in the `stock.move`
Problem:
A warning is triggered:
`Existing Serial numbers. Please correct the serial numbers encoded: (001) exists in location WH/Stock`
We do a search to find all the quants in every location to verify if the same serial number is not being used, but we do not exclude the source location.
opw-3734300
Forward-Port-Of: odoo/odoo#155651
Forward-Port-Of: odoo/odoo#154626This update fixes a potential issue where channel subscriptions weren't reliably updating, leading to test failures. The change simplifies the subscription process using 'onAdd/onDelete' events, ensuring accurate channel tracking. This improves the overall stability and performance of the messaging system.
Original PR description
Before this PR, the `bus subscription is refreshed when channel is left` test was sometimes failing. This actually reveals a real issue: if a channel is joined a leave very quickly, the bus subscription is not updated. This occurs because we rely on the last subscription made and the one that should be made to detect if channels differ. Since the `updateBusSubscription` method is debounced, we can miss information. This PR replaces the complicated `updateBusSubscription` method by a `onAdd/onDelete`. This is much more reliable and more efficient since there is no need to walk through every channel to detect changes. This PR also remove a test that was redundant that the failing one. fixes runbot-55292,57645,56232 Forward-Port-Of: odoo/odoo#155720
This update resolves an issue where clicking on a color code in the colorpicker would reset the text field instead of updating the color. The fix ensures that color selections from the colorpicker now correctly update the note's color, improving usability.
Original PR description
Issue: ===== Clicking on hex color or rbga in colorpicker will reselect the inital selected text and not the value if hex or rgba. Steps to reproduce the issue: ============================= - Create…
Issue: ===== Clicking on hex color or rbga in colorpicker will reselect the inital selected text and not the value if hex or rgba. Steps to reproduce the issue: ============================= - Create a note , type anything and apply custom color - When clicking on the hex color code , the cursor is alwyas set back to the text. Origin of the issue: ==================== The behavior was introduced by https://github.com/odoo/odoo/commit/033b49e1a810c3decd8988698620616bd927f6c3 In the click listener, we always reset the comuted selection wich reselects the original text. When clicking on empty space on the dropdown menu, it happens too but it doesn't matter since the menu closes anyway, but clicking on text input fields that you want to update will be a problem since the menu doesn't close but the text get reselected. Solution: ========= To overcome the problem of resetting when clicking on the dropdown, we first check if the click is on the colorpicker or not, if Yes do nothing and skip this. task-3648629 Forward-Port-Of: odoo/odoo#149480
This update clarifies the analytic widget by replacing a confusing floppy disk button with a 'New model' link. This change simplifies the process of creating analytic distribution templates, reducing user confusion and improving the overall user experience. The update also automatically populates relevant fields for easier setup.
Original PR description
On the analytic widget, when putting an Analytic Account, a floppy disk appear on top of the wizard. This button is used to create a new analytic distribution template. It is confusing for users that thinks that the purpose of the button is to save the analytic distribution. This PR will replace the button to be a link called "New model". Also, this pr will fill some field (partner_id, account_prefix and product_id) if there are populated. task: 3736786 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155611 Forward-Port-Of: odoo/odoo#153588
This update fixes an issue where the Kanban view incorrectly displayed overdue statuses for activities, even when no overdue activities existed. The fix ensures the Kanban column header accurately reflects the status of activities, improving the user experience and data consistency. This resolves a visual inconsistency impacting lead management.
Original PR description
How to reproduce: - Install CRM with demo data - Configure one activity type to keep done activities - Go to CRM and chose a kanban column with a green status (only planned activities for that state)…
How to reproduce: - Install CRM with demo data - Configure one activity type to keep done activities - Go to CRM and chose a kanban column with a green status (only planned activities for that state) - On a lead of that column, add an activity of the type chosen above with a deadline in the past - When going back to the kanban view, that column has the overdue status (red) - Mark that activity as done - Reload the kanban view The kanban column has still the status overdue (red) while there are no more overdue activity in that state. With this fix, after reloading the kanban view, the header displays the correct status summary. In the example above, the kanban column header is green. Technical note: archived activities were returned when grouping by activity_state because that part was done in SQL and not taking into account the recently added active field. While adding it in the "_read_group_groupby" method, we also add it in "_search_activity_state" to avoid the same problem when searching on activity_state. Note that we don't add flush in those methods using raw SQL so flush is needed in the added test. Task-3732333 Forward-Port-Of: odoo/odoo#153274
This update simplifies the process for international partners by removing unnecessary state validation within the l10n_in_edi module. Now, state requirements are only enforced for e-invoicing specifically for partners in India. This streamlines operations and reduces complexity for our overseas clients.
Original PR description
This commits removes the state validation for `l10n_in_edi` for overseas partner and now state will be only required for e-invoicing for partner having country `India` --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#154118
This update resolves an issue where SelectionFields within draggable kanban views couldn't be edited. The fix prevents a technical restriction that blocked the opening of the SelectionField's edit options. This ensures users can now correctly modify SelectionFields within the kanban interface, improving usability.
Original PR description
Before this commit, if a SelectionField was used in a kanban view alongside the HandleField (enabling re-sequencing, i.e. drag&drop), the "select" element couldn't be edited. This is because the d&d feature calls preventDefault on almost all "pointerdown" events occuring in the card, and the "pointerdown" event is the one that opens the select. There's no usecase in 17.0, but there's one in master, in the product document kanban view. We fix this in 17.0 which is the version that introduced the kanban version of the SelectionField. 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#155827
This update simplifies the process of generating UBL invoices by removing a redundant check for the 'Bronnoysund' field. Previously, a constraint ensured this field was populated, but now that 'peppol_endpoint' and 'peppol_eas' fields are used, this check is no longer needed. This streamlines the system and improves efficiency.
Original PR description
In saas-16.2, the `peppol_endpoint` and `peppol_eas` fields were added on the partner. These fields are used to fill the `<cbc:EndpointID` node. Before that, we had to map every localization specific field to this node. For instance, with the norvegian "Bronnoysund" field (see: [1]). To ensure the node was filled, a constraint was checking the existence of this field. Now that we have the `peppol_endpoint` and `peppol_eas`, we no longer have to require the bronnoysund to be filled. [1] https://github.com/odoo/odoo/blob/saas-16.1/addons/account_edi_ubl_cii/models/account_edi_xml_ubl_bis3.py#L119 opw-3763725 Forward-Port-Of: odoo/odoo#155604
This update resolves an issue where the Contact widget on Odoo.com would crash when a partner's display name was blank. Approximately 3,000 partners had a null display name, causing this error. This fix ensures the widget functions correctly even with missing display name data.
Original PR description
In case where display_name is null, the widget contact crash - AttributeError: 'bool' object has no attribute 'split' On odoo.com we have around 3K of partners that have name with null value. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155735
This update fixes an issue where employees with flexible hours and removed calendars displayed 0 remaining holiday leave on their dashboards. The change prioritizes the employee's contract calendar to ensure accurate leave balances are shown, improving the employee experience and reporting accuracy.
Original PR description
Steps to reproduce the issue: - have an employee with an allocation with an end date - remove the employee's calendar - go on his dashboard - his remaining leaves amount is 0 This commit implements a new method on the resource mixin to fetch a calendar for the record even though it might not have one. The default behaviour is to fall back on the company's calendar to ensure a value. This is overrided in the `hr_contract` module so that the calendar of the contract is prioritized. task-3609738 Forward-Port-Of: odoo/odoo#155753 Forward-Port-Of: odoo/odoo#144418
This update fixes a visual issue where the 'Apply' button in the daterange picker appeared flattened and misaligned. The change centers the button vertically and adds a 'close' button, mirroring the behavior of pressing ESC or clicking outside the picker, for a more polished user experience.
Original PR description
Current behaviour - when we access the daterange picker, it was observed that the `apply` button appeared flatter and was not vertically centered. Expected behaviour - add h-100 on buttons container to ensure they are vertically centered and no longer appear flatter - add cancel button in which action is similar to pressing ESC or clicking outside the popover Task-3624556 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#148812
This update streamlines how the Odoo website identifies event booths. Previously, the system repeatedly checked for booth existence, which was inefficient. Now, the website automatically discovers booths through crawling, ensuring accurate event listings without unnecessary manual checks.
Original PR description
If booth exists for this event, bot will discover it via crawling. Don't need to ask to crawler to check for each event if a booth exists. 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#156022
This update fixes a layout issue in the Point of Sale interface that occurred after printing receipts. Previously, the receipt's placement caused scrolling, but this change uses a 'fixed' positioning to prevent overflow and maintain a clean, non-scrollable POS experience for users.
Original PR description
Before this commit, the POS receipt was added to the bottom of the page after printing. In some browsers, this caused overflow and made the POS interface scrollable. With this commit, we fix this issue by changing the position of the receipt container to 'fixed'. This prevents the receipt from affecting the layout of the page after printing, thus avoiding the overflow issue and keeping the POS interface non-scrollable. opw-3775808 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#156025
This update resolves an issue where selling consumable products through Point of Sale (POS) automatically generated an unnecessary expense entry in the accounting system. The fix ensures that consumable products are no longer tracked for Cost of Goods Sold (COGS), streamlining the accounting process and improving accuracy. This change was made to address a reported bug and improve the overall POS experience.
Original PR description
Steps to reproduce: - Open POS session - Sell a consumable product in POS (no invoice) - Close session Bug: an expense entry is added to the Account move opw-3705156 Forward-Port-Of: odoo/odoo#153657
At the moment, when auto sending the customer statement, it will always send the values for the current month. This means that if you send it bi-weekly, the first sending will contain the values for the first two weeks of the month, while the second will contain the values for the whole month. But this does not work well when you can have custom frequency, as there will be cases, where you will want the values of the last x weeks/months, or when a two-week period is between two months.
Original PR description
At the moment, when auto sending the customer statement, it will always send the values for the current month. This means that if you send it bi-weekly, the first sending will contain the values for the first two weeks of the month, while the second will contain the values for the whole month. But this does not work well when you can have custom frequency, as there will be cases, where you will want the values of the last x weeks/months, or when a two-week period is between two months. To have a more flexible system, we will now compute the start date by taking into account the set frequency. The end date of the statement will always be the day before the sending date, while the start date will be the end date minus the frequency (so minus two weeks if set to bi-weekly). Task id # 3713352 Forward-Port-Of: odoo/enterprise#56893
- Adds an option/filter to display amount in different units, i.e, 'decimals', 'units', 'thousands', 'lakhs' and 'millions'. - Makes 'format_value' a private python method and creates a new public 'format_value' method that should be called from the client. This change was made because we can not pass records from the client to the server. For example for currency, we can pass the currency_id to the server, but then we need to fetch the currency before continuing. task-3626894 Forwar
Original PR description
- Adds an option/filter to display amount in different units, i.e, 'decimals', 'units', 'thousands', 'lakhs' and 'millions'. - Makes 'format_value' a private python method and creates a new public 'format_value' method that should be called from the client. This change was made because we can not pass records from the client to the server. For example for currency, we can pass the currency_id to the server, but then we need to fetch the currency before continuing. task-3626894 Forward-Port-Of: odoo/enterprise#56817 Forward-Port-Of: odoo/enterprise#55218