Tuesday, November 26, 2024
11 changes · 18.0
Resolved issues and error corrections
This fixes the live chat chatbot layout so answer buttons appear outside the message bubble as intended. The change improves readability and makes chatbot interactions look cleaner for website visitors.
Original PR description
Before this commit, chatbot answers buttons appear inside the message bubble. This happens because the new xpath target introduced in https://github.com/odoo/odoo/pull/188407 had the wrong position argument. This commit fixes the issue by changing the position to `after`. Before:  After: 
This fixes a timezone mismatch that could cause Odoo to incorrectly decide whether a page became outdated after a websocket disconnection. Users should see more accurate refresh warnings, reducing unnecessary confusion or missed prompts.
Original PR description
The outdated page watcher detects when the page is outdated i.e. when the autovacuum ran while the websocket was disconnected. To do so, it compares the last disconnection datetime with the last autovacuum datetime received from the server. However, last disconnected datetime is saved in UTC while value coming from the server is parsed using the default timezone. This PR fixes the issue by handling both datetime with the default timezone.
The blog author snippet now uses the stored author name instead of directly checking the author record. This prevents public website visitors from hitting permission-related issues when viewing blog posts, helping author information display consistently.
Original PR description
Author snippet previously used the author_id field on the blog post record which would run in to permission issues as public user. Used the already existing author_name field on the blog record which also seemed to be used in older versions of Odoo to bypass this permission issue. opw-4330319
The HTML editor now correctly detects when selected text has a custom font size, so users can use the remove formatting button to reset it. The toolbar also shows the correct font size when selecting all content, reducing confusion while editing formatted text.
Original PR description
**Behaviour before PR:** When a `font-size` is applied on a text, remove-format icon is disabled in toolbar when that text is selected and user is unable to reset `font-size`. This happens because in `formatSpecs` `isFormatted` method fails to get correct value in case of `setFontSizeClassName`. Same scenario is with `isFormatted` method of `fontSize`. **Behaviour after PR:** Now remove-format icon is enable when font-sized text is selected and user can remove and reset font-size of selected text. task-4263625 --- I confirm I have signed the CLA and read the PR guidelines at www.odoo.com/submit-pr
Task records in Website Project will no longer log phone or company-name changes that are not useful for task history. This keeps task activity cleaner and avoids inconsistent behavior depending on which related apps are installed first.
Original PR description
Before this commit, the partner_phone field in `project.task` model is tracked because it is a related field linked to `partner_id.phone` and `phone` is tracked. Moreover, that field is also defined in `industry_fsm` module but its definition is different which could lead to unexpected behavior depending on the installation order. This commit duplicates the definition of that field from industry_fsm to website_project to make sure to not have a different behavior depending on the installation order of those modules. It also removes the tracking on `partner_company_name` since it is not really useful in task if one day `company_name` in `res.partner` model is tracked.
This fixes a visual issue in the mail area where logged notes displayed with an unnecessary border. The change makes note entries look cleaner and more consistent, improving readability without changing functionality.
Original PR description
Before / After <img width="254" alt="Screenshot 2024-11-25 at 14 23 16" src="https://github.com/user-attachments/assets/0ea6235e-ad18-4001-8c6c-31860e5d0371"> <img width="268" alt="Screenshot 2024-11-25 at 14 23 00" src="https://github.com/user-attachments/assets/efb3a21b-ce6c-4999-9aea-e67e52332011">
The sick leave relapse checkbox is now only visible to authorized time off officers. This prevents regular employees from seeing an internal payroll-related option that they should not access.
Original PR description
A checkbox to indicate if a Sick leave is a relapse of a previous sick leave was added to version 18.0. Regular users can see the checkbox when creating or viewing sick leave while the intention was for only time off officers to be able to see it. This patch fixes this issue by assigning the checkbox to the correct group. task-4354558
Fixed a layout issue in Appraisals where feedback editor buttons could appear broken when users clicked into feedback fields. This keeps the appraisal feedback experience cleaner and easier to use across screen sizes.
Original PR description
Steps ----- 1. Appraisals > Click on one or go to Configuration > Appraisal templates 2. Click on the feedback. A text 'Type "/" for commands' appears with buttons in a broken layout. Cause ----- With the new html_editor, editor buttons are descendants of `o_appraisal_input` in the DOM. Changes ----- - restrict the selector that is used to prevent overflow so it doesn't impact editor - hide the power buttons to avoid overflow when ui size is between `sm` and `md` (they are hidden automatically below `sm`) opw-4338929
This fix ensures overtime work entries are only generated when the relevant overtime setting/status allows it. It helps avoid incorrect overtime records, improving payroll and attendance accuracy for affected employees.
Original PR description
Purpose ======= The field was introduced when the overtime generation mechanism was already existing. But was included into the decision process to generate overtime work entries.
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513
Original PR description
**Issue:** Two terms appear in English on an invoice. **Expected:** These terms should be translated in Spanish. **Steps to reproduce:** - Activate Accounting app in a Mexican database; - Create a customer invoice; - Send and print including the CFDI; - Open the PDF for the invoice; - The terms "Usage" and "Predial Account" appear untranslated. **Cause:** No translation have been found for these keys. **Fix:** Add Spanish translations for these terms. opw-4332513
Users can now delete Data Cleaning storage records without hitting an unexpected system error. This prevents disruption during routine storage cleanup and keeps the Data Cleaning workflow reliable.
Original PR description
When the user tries to delete the storage record, A traceback will appear. Steps to reproduce the error: - Install ``data_cleaning`` module - Go to Data Cleaning > Storage > Select any record >…
When the user tries to delete the storage record,
A traceback will appear.
Steps to reproduce the error:
- Install ``data_cleaning`` module
- Go to Data Cleaning > Storage > Select any record > Actions > Delete > Delete
Traceback:
```
UndefinedTable: relation "ir_attachment_report" does not exist
LINE 1: DELETE FROM "ir_attachment_report" WHERE id IN (498, 963, 12...
^
File "odoo/http.py", line 2363, in __call__
response = request._serve_db()
File "odoo/http.py", line 1891, in _serve_db
return self._transactioning(
File "odoo/http.py", line 1954, in _transactioning
return service_model.retrying(func, env=self.env)
File "odoo/service/model.py", line 137, in retrying
result = func()
File "odoo/http.py", line 1921, in _serve_ir_http
response = self.dispatcher.dispatch(rule.endpoint, args)
File "odoo/http.py", line 2168, in dispatch
result = self.request.registry['ir.http']._dispatch(endpoint)
File "odoo/addons/base/models/ir_http.py", line 329, in _dispatch
result = endpoint(**request.params)
File "odoo/http.py", line 727, in route_wrapper
result = endpoint(self, *args, **params_ok)
File "addons/web/controllers/dataset.py", line 35, in call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 517, in call_kw
result = getattr(recs, name)(*args, **kwargs)
File "odoo/models.py", line 4498, in unlink
cr.execute(SQL(
File "odoo/sql_db.py", line 354, in execute
res = self._obj.execute(query, params)
```
``ir.attachment.report`` model is ``_auto = False``.
So, a database table will not be created for the model.
When the user tries to delete the record of that model,
It will lead to the above traceback.
sentry-6073448766