Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
103 changes: 103 additions & 0 deletions attachment_preview_xml/README.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
.. image:: https://odoo-community.org/readme-banner-image
:target: https://odoo-community.org/get-involved?utm_source=readme
:alt: Odoo Community Association

======================
Attachment Preview XML
======================

..
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:095b175f3873369b496e37ba321526fcc1ce380e320b1b7fa1bedd395120c548
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png
:target: https://odoo-community.org/page/development-status
:alt: Beta
.. |badge2| image:: https://img.shields.io/badge/license-AGPL--3-blue.png
:target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fknowledge-lightgray.png?logo=github
:target: https://github.com/OCA/knowledge/tree/17.0/attachment_preview_xml
:alt: OCA/knowledge
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
:target: https://translation.odoo-community.org/projects/knowledge-17-0/knowledge-17-0-attachment_preview_xml
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png
:target: https://runboat.odoo-community.org/builds?repo=OCA/knowledge&target_branch=17.0
:alt: Try me on Runboat

|badge1| |badge2| |badge3| |badge4| |badge5|

Preview XML attachments as a collapsible tree instead of a wall of text.

Odoo stores XML attachments with the ``text/plain`` mimetype for any
user without write access on views, so the standard file viewer renders
them as raw text. Machine-generated XML (electronic invoices such as
CFDI or UBL, bank statements, EDI messages) usually comes in a single
line, which makes that preview unreadable.

This module renders XML attachments with their hierarchy: indented
nodes, highlighted tags, attributes and values, and every branch can be
collapsed or expanded. Everything happens in the browser, no conversion
service and no extra software on the server.

**Table of contents**

.. contents::
:local:

Usage
=====

1. Attach an XML file to any record with a chatter, or send it in a
message.
2. Click on the attachment thumbnail.
3. The file opens in the standard Odoo file viewer as a tree. Click a
node to collapse or expand it.

Files that are not well-formed XML (or bigger than 5 MB) fall back to
the raw text preview.

Bug Tracker
===========

Bugs are tracked on `GitHub Issues <https://github.com/OCA/knowledge/issues>`_.
In case of trouble, please check there if your issue has already been reported.
If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/knowledge/issues/new?body=module:%20attachment_preview_xml%0Aversion:%2017.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.

Do not contact contributors directly about support or help with technical issues.

Credits
=======

Authors
-------

* Jarsa

Contributors
------------

- Jesús Alan Ramos Rodríguez <alan.ramos@jarsa.com>

Maintainers
-----------

This module is maintained by the OCA.

.. image:: https://odoo-community.org/logo.png
:alt: Odoo Community Association
:target: https://odoo-community.org

OCA, or the Odoo Community Association, is a nonprofit organization whose
mission is to support the collaborative development of Odoo features and
promote its widespread use.

This module is part of the `OCA/knowledge <https://github.com/OCA/knowledge/tree/17.0/attachment_preview_xml>`_ project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.
Empty file.
26 changes: 26 additions & 0 deletions attachment_preview_xml/__manifest__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# Copyright 2026 Jarsa
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl).
{
"name": "Attachment Preview XML",
"summary": "Preview XML attachments as a collapsible tree instead of raw text",
"version": "17.0.1.0.0",
"category": "Knowledge Management",
"website": "https://github.com/OCA/knowledge",
"author": "Jarsa, Odoo Community Association (OCA)",
"license": "AGPL-3",
"depends": ["mail"],
"assets": {
"web.assets_backend": [
"attachment_preview_xml/static/src/attachment_model_patch.esm.js",
"attachment_preview_xml/static/src/xml_viewer.esm.js",
"attachment_preview_xml/static/src/xml_viewer.xml",
"attachment_preview_xml/static/src/xml_viewer.scss",
"attachment_preview_xml/static/src/file_viewer_patch.esm.js",
"attachment_preview_xml/static/src/file_viewer_patch.xml",
],
"web.qunit_suite_tests": [
"attachment_preview_xml/static/tests/**/*.js",
],
},
"installable": True,
}
3 changes: 3 additions & 0 deletions attachment_preview_xml/pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
[build-system]
requires = ["whool"]
build-backend = "whool.buildapi"
1 change: 1 addition & 0 deletions attachment_preview_xml/readme/CONTRIBUTORS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
- Jesús Alan Ramos Rodríguez \<<alan.ramos@jarsa.com>\>
12 changes: 12 additions & 0 deletions attachment_preview_xml/readme/DESCRIPTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
Preview XML attachments as a collapsible tree instead of a wall of text.

Odoo stores XML attachments with the `text/plain` mimetype for any user
without write access on views, so the standard file viewer renders them as
raw text. Machine-generated XML (electronic invoices such as CFDI or UBL,
bank statements, EDI messages) usually comes in a single line, which makes
that preview unreadable.

This module renders XML attachments with their hierarchy: indented nodes,
highlighted tags, attributes and values, and every branch can be collapsed
or expanded. Everything happens in the browser, no conversion service and no
extra software on the server.
7 changes: 7 additions & 0 deletions attachment_preview_xml/readme/USAGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
1. Attach an XML file to any record with a chatter, or send it in a message.
2. Click on the attachment thumbnail.
3. The file opens in the standard Odoo file viewer as a tree. Click a node to
collapse or expand it.

Files that are not well-formed XML (or bigger than 5 MB) fall back to the raw
text preview.
Loading
Loading