odoo/o-spreadsheet#7897
Created by fw-bot
Merged
at addf98c28cfd47476ee2eb77cafbd9d90ac7f65d
Statuses:
- label
- odoo:saas-18.3-17.0-fix-update-cell-handle-rar-495393-fw
- head
- 3942d74fdf55efcd771374bb590922f5cb52a52d
- merged
- 3 months ago by BI, Lucas Lefèvre (lul)
| odoo/o-spreadsheet | |
|---|---|
| 17.0 | #7795 |
| 18.0 | #7886 |
| saas-18.2 | #7896 |
| saas-18.3 | #7897 |
| saas-18.4 | #7898 |
| 19.0 | #7899 |
| saas-19.1 | #7900 |
| saas-19.2 | |
| saas-19.3 | |
| master | #7909 |
[FIX] Cell: do not rely on key presence in commands
In our handler of UPDATE_CELL, we rely on the presence of a given key in the command to decide how to process it. However, undefined keys tend to be purged from a payload when serialized, which mean different users do not receive the same command payload and their state ends up diverging.
E.g.:
- Alice write something in A1
- Alice copies an empty cell
- Alice pastes it to A1
For Alice, A1 is empty
for others, A1 content did not change
The same applies to the formats but can only be replicated in later versions (18.0 +):
- Alice writes
2in A1 - Alice adds a
%format to A2 - Alice copies A1 and pastes it as value only to A2
Alice sees no % in A2 while other users see it.
Description:
description of this task, what is implemented and why it is implemented that way.
Task: TASK_ID
review checklist
- [ ] feature is organized in plugin, or UI components
- [ ] support of duplicate sheet (deep copy)
- [ ] in model/core: ranges are Range object, and can be adapted (adaptRanges)
- [ ] in model/UI: ranges are strings (to show the user)
- [ ] undo-able commands (uses this.history.update)
- [ ] multiuser-able commands (has inverse commands and transformations where needed)
- [ ] new/updated/removed commands are documented
- [ ] exportable in excel
- [ ] translations (_t("qmsdf %s", abc))
- [ ] unit tested
- [ ] clean commented code
- [ ] track breaking changes
- [ ] doc is rebuild (npm run doc)
- [ ] status is correct in Odoo