Friday, March 1, 2024
70 changes
11 changes
Enhancements to existing features
This update adds ‘lastmod’ attributes to forum post URLs in the website sitemap. This helps search engines like Google efficiently crawl and index our forum content, improving its visibility. While complex date tracking is difficult across the website, this targeted approach focuses on the forum, providing a reliable way to signal content freshness.
Original PR description
When a crawler (eg Googlebot) come to visit your website, it grants you a limited amount of time and ressources, it's called "Crawler budget". If you have millions of URLs, it won't go through each…
When a crawler (eg Googlebot) come to visit your website, it grants you a limited amount of time and ressources, it's called "Crawler budget". If you have millions of URLs, it won't go through each one of them in a single go.
The best you can help those crawler, the better. The sitemap `lastmod` attribute, despite not being fully respected and trusted by crawlers, is one of the way you can still try to help them.
For website.pages, it's already done. But for controllers, it's not an easy thing to do as we have no way to automatically figure what are the relevant records/fields to look at to know the last update date. For instance, on the event pages, some pages content are mostly stored inside an `ir.ui.view`, but the title, hours etc are part of the event itself.
We can't just say "we take the last write_date of the record", it's wrong in 2 ways:
- The first one I just explained where we wouldn't be able to easily get all the elements part of the page rendering and would miss a possible element write_date, leaving an outdated date in `lastmod`.
- Then, there is another issue (which is more problematic in stable): the `write_date` is often updated for non website related purposes. For instance, on /partners/<partner>, we wouldn't be able to use the write date on odoo.com as the partners shown there (having a grade) are update every weeks in average, because of many fields, for instance: commission_plan_id, partner_weight, grade_id, ...
Still, there is a quick win possible in stable about forum posts which are not impacted by the 2 issues explained above:
- There is a dedicated `last_activity_date` field which is updated only when relevant information are modified. We can ensure to show a date which is not updated too frequently for no reason.
- All the forum.post information displayed on the page are stored inside the forum.post itself.
This commit is thus adding the `lastmod` on forum.post URLs in the sitemap in hope of not making Google waste time on (very) old posts.
Note: the `lastmod` has to be trustworthy and correct, if you set wrong
or outdated info inside it, Google won't trust you/it anymore.
Forward-Port-Of: odoo/odoo#155197This update adds a placeholder to the industry selection field on the website creation process. Previously, users were unsure of what information to enter, leading to potential confusion. This simple addition provides a helpful hint, streamlining the website setup for our customers.
Original PR description
-User might not know what they going to type in, this commit add a placeholder in the input of industry selection to give a hint for user when in website creation 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#155862
Resolved issues and error corrections
This update resolves a problem where adding new tabs within a 'Tabs' block in website pages would create a disorganized and confusing layout. The fix restricts tab selectors to only the parent tab, ensuring a cleaner and more predictable clone experience. This improves the overall usability of our website templates.
Original PR description
Commit [1] refactored the tabs snippets options, in doing so, it introduced a selector which could also target a tabs snippet from within its own tab. This leads to very weird behaviour on clone.…
Commit [1] refactored the tabs snippets options, in doing so, it introduced a selector which could also target a tabs snippet from within its own tab. This leads to very weird behaviour on clone. Commit [2] introduced a new MultipleItems abstract option, and with it, added a selector which could cause the same issue as above. This commit fixes this by properly restricting the selectors to the direct children. Steps to reproduce: - Create a new web page - Add a "Tabs" block - Put some text in each tab in other to identify which text belongs to which tab - In the first tab, add a new "Tabs" block, so that you will have tabs and sub-tabs - Put some text in sub tabs in order to identify which text belongs to which sub tab - try to add a new tab in your main tab block => look at the beautiful mess it creates. [1]: https://github.com/odoo/odoo/commit/7572cc150d5469af92138533a024cffbd57d878e [2]: https://github.com/odoo/odoo/commit/ebfa28638b47a7be45b96d561bdf144c3487f366 opw-3730155 Forward-Port-Of: odoo/odoo#154695
9 changes
Enhancements to existing features
This update improves the website creation experience by adding a helpful placeholder text to the industry selection field. Users will now see a hint about what to enter when creating a new website, reducing confusion and making the setup process more intuitive.
Original PR description
-User might not know what they going to type in, this commit add a placeholder in the input of industry selection to give a hint for user when in website creation 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
This update fixes a technical issue related to how tax closing accounts are configured for Odoo's international localizations (l10n_xx). Previously, the port from version 16.2 didn't correctly implement the new requirement to define these accounts on the tax group level. This ensures accurate tax reporting across various countries.
Original PR description
Commit 14abe7acb11 (PR #123816) introduced default tax closing accounts for localizations that were so far missing them. However, the mechanism for specifying the default tax closing accounts changed in 16.2: they must now be specified on the tax groups. This was not correctly done in the fw-port, so we fix this in this commit. taskid: 3524378 Forward-Port-Of: odoo/odoo#155911 Forward-Port-Of: odoo/odoo#155074
This update ensures our cyclic inventory tests accurately reflect how Odoo handles annual inventory days, specifically considering leap years. Previously, the tests didn't account for the safeguards that automatically select the latest possible month day. This fix improves the reliability of our inventory testing process.
Original PR description
When a company's annual inventory day is selected which is higher than the number of days in that month, there are already safeguards in the feature to ensure the latest day possible for that month is selected. Unfortunately the related test forgot to take this into account for leap years, so this commit modifies it to test for this expected safeguard. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155841
This update addresses a minor issue in the automated testing of Odoo's email functionality. A temporary problem with how test steps were being handled was causing intermittent failures. The team has applied a standard fix to ensure the tests run reliably, though the original issue wasn't consistently reproducible.
Original PR description
Not a guaranteed fix (not reproducible 1500 attempts), but applying standard fix for `step` failing to use the new step helper. runbot-54560 Forward-Port-Of: odoo/odoo#155925
This update fixes an issue where the default selected value for form selection fields was not being saved after page updates. The change restores this functionality, ensuring users consistently see their preferred selections when editing website forms. This improves the user experience and data consistency.
Original PR description
Since the PR [1] changed the rendering engine of qweb, the default "selected" value set on selects field on the form snippet were lost once the page is saved. This commit builds upon the changes made in [this commit] by reinstating the default "selected" value. Steps to replicate: - Go to Website -> Edit. - Drop a Form snippet onto the page. - Click on the 'Company' field. - In Field > Type, opt for "Selection". - Choose option 3 from the options list to establish it as the default. - Save the modifications. Issue: The expected default value for the selection field is not retained after saving. [1]: https://github.com/odoo/odoo/pull/130467 [this commit]: https://github.com/odoo/odoo/commit/b42e9cc686e7d3ccf82cd091a5dc24028fff8a2b task-3767819 Forward-Port-Of: odoo/odoo#155838
This update fixes issues with how product categories are displayed in the Point of Sale system. Previously, long category names caused overlapping and incorrect ordering, especially when categories had multiple parent levels. This change ensures a cleaner and more organized category display for users.
Original PR description
Before this commit, there were issues with the display and ordering of categories. Long category names would overflow their containers and overlap with other categories. Additionally, the order of parent categories was incorrect when a selected category had many parents. This was due to the `getAllChildren` function not returning all children correctly, which in turn affected the display of the parent sequence. opw-3776740 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
This update resolves a recurring issue where tour scheduling tests were failing intermittently due to timing differences in the Odoo system. The fix adds a verification step to ensure the activity type input is fully loaded before proceeding, improving test reliability and preventing scheduling errors. This ensures tours are scheduled correctly.
Original PR description
Since PR #154105, `mail_activity_schedule_from_chatter` test was failing on some runbot builds. The problem is, the `timeout` to make sure the activity type input is ready (has its data) to click again, is not enough for all builds. Instead of using timeout (which is not same for different builds), we can add an extra step to check if the activity id input has its data after clicking on dropdown, to proceed to the next steps. fixes runbot-57738 Forward-Port-Of: odoo/odoo#156030
This update fixes a minor typo in the Belgian accounting module. The incorrect reference to the Office National de Sécurité Sociale (ONNS) has been corrected to the correct ONSS designation. This ensures accurate reporting for Belgian businesses using the Odoo accounting system.
Original PR description
Office National de Sécurité Sociale (ONNS) should be (ONSS). Forward-Port-Of: odoo/odoo#155828
A bug was causing an error when adding timesheet entries for certain users. This update corrects a technical issue related to how the employee selection field in the Timesheets module handles user permissions, ensuring correct functionality for all employees. This fix improves the user experience for all users.
Original PR description
Steps to reproduce ================== - Install Timesheets - Login as Admin - Edit the access rights of Mark Demo: * Timesheets: "User: all timesheets" * Employees: "None" - Logout and login as Demo…
Steps to reproduce ================== - Install Timesheets - Login as Admin - Edit the access rights of Mark Demo: * Timesheets: "User: all timesheets" * Employees: "None" - Logout and login as Demo - Go to a project task - Switch to the Timesheets notebook - Add a new line - Click on the employee field > Search More => An error occurred Cause of the issue ================== The hr.employee.public model is an SQL view of the hr.employee table with differents permissions. Since the user doesn't have the hr.group_hr_user group, the model hr.employee.public should be used and not hr.employee. Since [0], the model is switched depending on whether the user has the appropriate group. The EmployeeFieldRelationMixin is used and defines a getter for the relation. That relation was not propagated to the Many2OneField. Solution ======== Pass the relation to the many2OneProps. --- [0]: https://github.com/odoo/odoo/pull/136786 opw-3765393 Forward-Port-Of: odoo/odoo#155743
This update removes event booths from the website sitemap to improve search engine efficiency. Search engines will still discover booth pages naturally through website crawling, so explicitly listing each booth in the sitemap is unnecessary. This reduces unnecessary crawler requests and improves overall site performance.
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
Resolved issues and error corrections
This fix removes an incorrectly added country_code field from the Mexico EDI module that was accidentally included during a merge conflict resolution. The field should not have been present and its removal ensures the module functions as intended without unnecessary data duplication.
Original PR description
Erroneously added (https://github.com/odoo/enterprise/commit/0695afece962ad1c5d3dafc930b00c0e16d30b25) coutry_code field when reselving merge conflict. Forward-Port-Of: odoo/enterprise#57774
This update makes the Task Gantt View component available for developers to reuse and customize more easily. Previously, developers had to access the component through a technical registry, but now it can be imported directly. This improves the development experience and makes it simpler to create custom Gantt-based views for project management.
Original PR description
Before this commit, the taskGanttView object was not exported and so if someone would like to override that object, he will have to get that object in the views registry. This commit allows to export taskGanttView from that file to easily use it to create another Gantt JS based on that one instead of getting the object from the registry. task-3776786
This update fixes a spelling error in the Belgian localization module where the French abbreviation for the National Social Security Office was incorrectly spelled as "ONNS" instead of the correct "ONSS". This ensures accurate account naming and compliance with official Belgian terminology in the system.
Original PR description
Office National de Sécurité Sociale (ONNS) should be (ONSS).
This update removes an outdated requirement for Norwegian Bronnoysund field data when creating electronic invoices. The system now uses the newer, more flexible Peppol endpoint fields that were introduced in version 16.2, making it easier for businesses to configure their invoice routing without needing localization-specific fields.
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 fixes a problem where Raspberry Pi 5 devices were generating excessive error messages in system logs when trying to detect connected displays. The fix adds better error handling to prevent these messages from cluttering the logs, making the system more stable and easier to monitor. Once devices receive this update, they will handle display detection issues gracefully without filling up the logs with errors.
Original PR description
Currenlty, on raspberry pi 5 our dislay interface is invading the logger with errors due to the absence of both tvservice and the required vcgencmd methods to identify the connected displays The goal…
Currenlty, on raspberry pi 5 our dislay interface is invading the logger with errors due to the absence of both tvservice and the required vcgencmd methods to identify the connected displays The goal of this PR is to avoid this  While searching for a solution to properly detect displays on a raspberry pi 5 we can avoid the excessive log errors by protecting the subprocess calls. When used with vcgencmd, the python wrapper of 'vcgencmd' bash utility is missing the 'Vcgencmd().display_power_state()' method on raspberry pi 5, which causes a subprocess.CalledSubprocessError because the wrapper itself is missing a try/except block arount its subprocess call [here](https://github.com/sushantnadkar/vcgencmd/blob/68578dd887f2e0f62c1e8bf95323574cfc489be0/vcgencmd/vcgencmd.py#L18) Tvservice is not used on new rpi models so there is no need to protect it While the errors will still be present in the logs for a fresh image at the moment, once an rpi5 is connected to a database, it will receive the code from this PR and will handle the exceptions more gracefully [task-3771334](https://www.odoo.com/web#cids=1&menu_id=4720&action=333&active_id=1428&model=project.task&view_type=form&id=3771334) --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155615
This update fixes an unreliable automated test for scheduling activities in the mail module. The test was failing inconsistently across different build environments because it relied on a fixed timeout that wasn't long enough. The fix replaces the timeout with a more reliable check to ensure the activity type data is ready before proceeding, making the test more stable across all builds.
Original PR description
Since PR #154105, `mail_activity_schedule_from_chatter` test was failing on some runbot builds. The problem is, the `timeout` to make sure the activity type input is ready (has its data) to click again, is not enough for all builds. Instead of using timeout (which is not same for different builds), we can add an extra step to check if the activity id input has its data after clicking on dropdown, to proceed to the next steps. fixes runbot-57738
This update corrects an inventory testing issue where the system properly handles annual inventory dates that fall on days that don't exist in certain months (like February 29th in non-leap years). The test was updated to properly verify this safeguard works correctly across leap years and regular years.
Original PR description
When a company's annual inventory day is selected which is higher than the number of days in that month, there are already safeguards in the feature to ensure the latest day possible for that month is selected. Unfortunately the related test forgot to take this into account for leap years, so this commit modifies it to test for this expected safeguard. --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr Forward-Port-Of: odoo/odoo#155841