-
- Downloads
[FIX] mail: remove previous attachments when changing template
Open a mail.compose.message wizard. Select a template that generates an attachment. Reselect it. A second attachment has been generated. Can be repeated ad infinitum. At template onchange, the template is rendered to overwrite the composers values This includes the attachments. Let L1 be the list of attachments generated by the template. When _convert_to_write(values) is called with {'attachment_ids': L1}, it gets self.attachments_ids = L2, and generates a [(6, 0, L1 + L2)] command. As a result attachments are only added, the previous ones need to be removed manually. Since c6d718f2, the semantics of _convert_to_write changed. Before, it always returned an empty list for new records (without an id). In other words, wa always had L2 == []. As a result we need to adapt the wizard to keep its old behaviour. To solve it we bypass the _convert_to_write for 'attachment_ids' and directly generate the 6 command with the list of ids L1 generated by the template. We only do this for templates that add attachments to keep the templates composable (a template only overwrites the values it defines). Unfortunately, we don't have any way to know which attachments have been added manually, so we can't preserve these (which was the old behaviour anyway). opw 1997430 opw 1987169 opw 1998115 opw 1998782 closes odoo/odoo#33387 Signed-off-by:Nans Lefebvre (len) <len@odoo.com>
Loading
Please register or sign in to comment