Friday, September 1, 2023
18 changes · master
Enhancements to existing features
Subscription analysis now includes Quantity as an available measure, giving teams another way to review subscription performance. The wording around Subscription Status is also made more consistent, helping users interpret subscription stages more clearly across related views and reports.
Original PR description
- Add "Quantity" in the list of measure in Subscriptions analysis - Generalise the use of "Subscription Status" for subscription_stage task-id: 3460063
Facebook stream comments now display attached images directly inside the comment message bubble. This makes social conversations easier to review because users can see the full comment context without opening images separately.
Original PR description
Purpose ======= Show the comments images inside the message bubble, for the Facebook stream posts. Task-3339389
The VoIP calling library now loads only for users who have VoIP credentials. This reduces unnecessary loading for other users, improving efficiency without changing the calling experience for VoIP users.
Original PR description
This commit creates a separate bundle for the SIP.js library and only loads it when the current user can use VoIP (i.e. when they have VoIP credentials).
Signing request emails now present the expiration date in an improved way. This makes deadlines easier for recipients to understand, helping reduce missed or delayed signatures.
Original PR description
UX change for the expiration date in mail. task-id: 3470270
Resolved issues and error corrections
Fields that are only needed as dependencies in forms are now treated as read-only unless explicitly made editable. This prevents accidental edits and avoids sending unintended data when records are created or updated.
Original PR description
The purpose of this commit is to make fieldDependencies are readonly by default. This avoids making fields unintentionally editable. If the field is editable, it will be sent during create/write, which is what we want to avoid.
Use case:
Go to a form view with 2 fields "a" which is readonly and "b" which has "a" as fieldDependencies.
Before this commit:
Record Datapoint thinks that field "a" is editable
After this commit:
Record Datapoint thinks that field "a" is readonlyCode cleanup and technical improvements
This update modernizes internal automated tests across multiple Odoo Enterprise apps by replacing older jQuery-based text checks with native browser checks. It helps make tests more reliable and prevents rare infinite-loop situations during test execution, with no direct change to end-user features.
Miscellaneous changes
The #, link will be linkified appropriately via 'social_post_formatter'. Task-3109584 Forward-Port-Of: odoo/enterprise#39763
Original PR description
The #, link will be linkified appropriately via 'social_post_formatter'. Task-3109584 Forward-Port-Of: odoo/enterprise#39763
After regenerating employee work entries from the Gantt view, the screen now refreshes automatically so users can immediately see the updated entries. This removes the need to manually reload the page and makes payroll or scheduling checks more reliable.
Original PR description
task-3382376
Fixed an issue where My Timesheets could show an error instead of sample data when no timesheet entries were available. The grid also now avoids overlapping row and section labels with the empty-state helper, making the empty view clearer for users.
Related form fields used behind the scenes are now treated as read-only unless explicitly made editable. This prevents unintended changes from being saved when creating or updating records, reducing the risk of accidental data edits.
Original PR description
The purpose of this commit is to make fieldDependencies are readonly by default. This avoids making fields unintentionally editable. If the field is editable, it will be sent during create/write, which is what we want to avoid.
Use case:
Go to a form view with 2 fields "a" which is readonly and "b" which has "a" as fieldDependencies.
Before this commit:
Record Datapoint thinks that field "a" is editable
After this commit:
Record Datapoint thinks that field "a" is readonlyOriginal PR description
* = approvals, crm_enterprise, documents_spreadsheet, test_mail_enterprise, timesheet_grid, website_helpdesk_livechat The choice was made to have "trimmed text" check rather than "contains" to have more robust tests, at the cost of slightly more effort to write complete and unique asserts. There is no direct speed improvement from this one, but it is one step closer to removing jQuery. Moreover, it will fix infinite loops in some situations, because jQuery selectors would write attributes on the body, which would trigger the mutation observer, which itself will call the selector again. https://github.com/odoo/odoo/pull/133717
This update removes outdated compatibility code across Manufacturing Planning, Barcode, Enterprise web navigation, Studio, and Worksheet areas. It helps keep the platform easier to maintain and better aligned with the current interface framework, with no intended change to day-to-day business workflows.
Original PR description
*: mrp_mps, stock_barcode, web_enterprise, web_studio, worksheet Part of task-id 3439226
#### [FIX] mrp_workorder: keep the move button clickable > Before this commit, the button to mark the move's qty as done was disabled once the demand is filled. This commit removes the "disabled" CSS class and replaces it by other CSS classes to keep the same style while still be able to click again on this button. #### [FIX] mrp_workorder: display register by-product > In the Shop Floor, the by-product moves were displayed as any other moves, so there was no distinction between a by-produ
Original PR description
#### [FIX] mrp_workorder: keep the move button clickable > Before this commit, the button to mark the move's qty as done was disabled once the demand is filled. This commit removes the "disabled" CSS class and replaces it by other CSS classes to keep the same style while still be able to click again on this button. #### [FIX] mrp_workorder: display register by-product > In the Shop Floor, the by-product moves were displayed as any other moves, so there was no distinction between a by-product move and a raw move. With this commit, instead of displaying only the name of the product (like for the raw moves), it will display "Register by-product's name" (like the final product). task-3456817 Forward-Port-Of: odoo/enterprise#45784
This error occurs when the next() function has no more items to retrieve from the iterator and we receive an empty `attachments_iter` when calling the next() function. To produce this error turn on the developer mode and directly open the `sign.template` model `form view` from the `Open View` and click on the save button without entering anything. see the traceback: ``` StopIteration: null File "odoo/http.py", line 2134, in __call__ response = request._serve_db() File "odoo/ht
Original PR description
This error occurs when the next() function has no more items to retrieve from the iterator and we receive an empty `attachments_iter` when calling the next() function. To produce this error turn on…
This error occurs when the next() function has no more items to retrieve from the iterator and we receive an empty `attachments_iter` when calling the next() function.
To produce this error turn on the developer mode and directly open the `sign.template` model `form view` from the `Open View` and click on the save button without entering anything.
see the traceback:
```
StopIteration: null
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 1938, in dispatch
result = self.request.registry['ir.http']._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/web/controllers/dataset.py", line 30, in call_kw
return self._call_kw(model, method, args, kwargs)
File "addons/web/controllers/dataset.py", line 26, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "odoo/api.py", line 459, in call_kw
result = _call_kw_model_create(method, model, args, kwargs)
File "odoo/api.py", line 439, in _call_kw_model_create
result = method(recs, *args, **kwargs)
File "<decorator-gen-235>", line 2, in create
File "odoo/api.py", line 409, in _model_create_multi
return create(self, [arg])
File "home/odoo/src/enterprise/saas-16.4/sign/models/sign_template.py", line 109, in create
val['attachment_id'] = next(attachments_iter).id
```
To handle this issue we have added a try-except block. using that if we do not get an `attachment_id` or `name`, the record will not be saved.
sentry-4410298400
Forward-Port-Of: odoo/enterprise#46158If the actual date of an outgoing stock move is out of the mps dates range, a traceback will appear To reproduce the issue: (Need `sale_management`) 1. In Settings: - Enable Multi-Step Routes - Configure MPS: - Range: Daily - Number: 7 2. Create a product P 3. Add P in MPS 4. Inventory > Configuration > Rules, edit "Pull from Stock to Custo": - Lead Time: 10 days 5. Create and confirm a SO with P: - Delivery Date: today + 15 days 6. Open MPS Error: an Od
Original PR description
If the actual date of an outgoing stock move is out of the mps dates range, a traceback will appear To reproduce the issue: (Need `sale_management`) 1. In Settings: - Enable Multi-Step Routes -…
If the actual date of an outgoing stock move is out of the mps dates
range, a traceback will appear
To reproduce the issue:
(Need `sale_management`)
1. In Settings:
- Enable Multi-Step Routes
- Configure MPS:
- Range: Daily
- Number: 7
2. Create a product P
3. Add P in MPS
4. Inventory > Configuration > Rules, edit "Pull from Stock to Custo":
- Lead Time: 10 days
5. Create and confirm a SO with P:
- Delivery Date: today + 15 days
6. Open MPS
Error: an Odoo Server Error appears: "IndexError: list index out of
range"
When confirming the SO, a procurement has been created for "today +
15 days". Then, the delivery rule has been used, its lead time has
been applied: the SM is created with a date equal to "today + 5
days", which is inside MPS dates range. As a result, when getting
the outgoing SM for the MPS:
https://github.com/odoo/enterprise/blob/c679d196ac165a8e62aefd2fd5fc69e103c6ebdd/mrp_mps/models/mrp_mps.py#L891-L903
In `_get_moves_and_date` we find the SM and cancel the rule lead
time (so we get the actual expected date): we have a tuple with the
SM and "today + 15 days". But here is the issue: in the while-loop,
we try to find which range index corresponds to that date -> it is
not possible as we are out of dates ranges -> index will be greater
than `len(date_range)` -> `IndexError`
OPW-3372579
Forward-Port-Of: odoo/enterprise#46569
Forward-Port-Of: odoo/enterprise#46293To reproduce ============ - create a document with Signature - set its validity date and send it - change your computer's date to future after the validity date - the request should be in Expired state (if it's not the case, run the Sign crone manually on server actions) - try to open the expired request, an error is raised Problem ======= on `sign_log` we try to set the field `request_sate` to `expired` which is not a valid value as it was not defined in the selection. Solution =
Original PR description
To reproduce ============ - create a document with Signature - set its validity date and send it - change your computer's date to future after the validity date - the request should be in Expired state (if it's not the case, run the Sign crone manually on server actions) - try to open the expired request, an error is raised Problem ======= on `sign_log` we try to set the field `request_sate` to `expired` which is not a valid value as it was not defined in the selection. Solution ======== as adding a value at `field.Selection` is not safe on stable, we will consider expired requests as cancelled in logs, in master we put the proper fix. opw-3473467 Forward-Port-Of: odoo/enterprise#46468
This commit fixes layout issues, in this case margin issue with the hierarchy panel, and adapts design for Milk. task-3326357 part of task-3326263 Forward-Port-Of: odoo/enterprise#41038
Original PR description
This commit fixes layout issues, in this case margin issue with the hierarchy panel, and adapts design for Milk. task-3326357 part of task-3326263 Forward-Port-Of: odoo/enterprise#41038
With the demo data: - Enable workorders - Create a table and a drawec with SEC-ASSEM BoM Some moves are on incorrect production. It's due to a mistake checking the production key in the record and not in record.data Forward-Port-Of: odoo/enterprise#46316
Original PR description
With the demo data: - Enable workorders - Create a table and a drawec with SEC-ASSEM BoM Some moves are on incorrect production. It's due to a mistake checking the production key in the record and not in record.data Forward-Port-Of: odoo/enterprise#46316
Purpose: -------- This commit makes sure that portal users also have published articles in their sidebar. As unlike internal users they cannot join these articles by searching them, these articles should always be visible in their sidebar. Otherwise, they would see fewer articles than non-logged users. This issue was introduced during the [refactoring of the sidebar](https://github.com/odoo/enterprise/commit/b55ee8f06d7990fc71ee2430029775d5e8277020) Task-3346593 Forward-Port-Of: odoo/en
Original PR description
Purpose: -------- This commit makes sure that portal users also have published articles in their sidebar. As unlike internal users they cannot join these articles by searching them, these articles should always be visible in their sidebar. Otherwise, they would see fewer articles than non-logged users. This issue was introduced during the [refactoring of the sidebar](https://github.com/odoo/enterprise/commit/b55ee8f06d7990fc71ee2430029775d5e8277020) Task-3346593 Forward-Port-Of: odoo/enterprise#45469