[17.0][ADD] attachment_preview_xml: preview XML attachments as a collapsible tree - #636
Open
alan196 wants to merge 1 commit into
Open
[17.0][ADD] attachment_preview_xml: preview XML attachments as a collapsible tree#636alan196 wants to merge 1 commit into
alan196 wants to merge 1 commit into
Conversation
Odoo stores XML attachments as text/plain for users without write access on views, so the standard viewer renders them as raw text. Machine-generated XML (CFDI, UBL, EDI) comes in a single line, which makes that preview unreadable. Render XML attachments client-side as an indented, collapsible tree with highlighted tags, attributes and values. No server-side conversion and no extra software involved. Malformed or oversized files fall back to raw text. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NYJ2yGZfDKKKEW3KxuG2wh
alan196
force-pushed
the
17.0-add-attachment_preview_xml
branch
from
August 24, 2026 21:56
415eab9 to
f427873
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
New module that renders XML attachments in the standard file viewer as an indented, collapsible tree instead of a wall of raw text.
Context
ir.attachment._check_contentsneutralizes xml-like mimetypes totext/plainfor every user without write access on views, so XML attachments end up in the plain-text branch of theFileViewer. Machine-generated XML (electronic invoices such as CFDI or UBL, bank statements, EDI messages) is usually serialized on a single line, which makes that preview unreadable.How it works
Attachmentmodel addsisXml(by extension, or by mimetype when it survives), removes those files from theisTextbranch and keeps them viewable.XmlViewerfetches the attachment, parses it withDOMParserand renders the tree with plain<details>/<summary>elements, so collapsing is native HTML: no library, no server-side conversion, no external service.Test plan
HttpCasethat loads the module suite in a real browser.