odoo/odoo#196446

Created by Bugfix, Mathieu Coutant (mcou)
Merged at ae3703954cd8c2be08f45c2fa7c101484482019f

Statuses:

label
odoo-dev:16.0-opw-4486363-switch_main_attachment-mcou
head
69b3e87f3de2108b925c9e1833f99006406ccf7a
merged
7 months ago by Discuss, Alexandre Kühn (aku)
odoo/odoo
16.0 #196446
17.0 #200243
saas-17.4 #200427
18.0 #200817
saas-18.1 #200945
saas-18.2 #200956
saas-18.3
saas-18.4
19.0
master #200995

[FIX] mail: display arrows to switch to a valid attachment

Steps to reproduce:

  • Create a new invoice
  • Attach a ZIP file then a PDF file
  • The file viewer shows but tries to preview the ZIP file
  • Happens with all non-viewable files

Cause:

The ZIP file is put as main attachment and the method register_as_main_attachment only change the main attachment (with force=False) when there is no main attachment.

The behavior of the file viewer is problematic because we cannot switch between the attachments in the preview, so we cannot see the PDF. But if we add another PDF file (so one ZIP and 2 PDFs), we can switch but it will never show the ZIP again, only the two PDFs. This behavior is due to the next/previous arrows being displayed only if attachmentsInWebClientView contains more than one item. But this list only contains viewable attachments (PDF or Images), and the next/previous arrows only take attachments from this list. As the arrows are changing the main attachment to change the displayed preview, it never comes back to the problematic ZIP file.

Solution:

Also display the arrows if the main attachment is not viewable and there is more than one attachment.
This way the user can return in the list of viewable attachments.

This is not an optimal because Odoo will still try to display the ZIP file, but it is a simple fix that works.
I tried restraining the main attachment field only to viewable files in this PR, but it seems to break things specially with OCR extraction and apparently it is sometimes wanted to have an XML as main attachment.

opw-4486363