OdooWiki OCA HUB

Attachment Zipped Download

attachment_zipped_download folder_open OCA/knowledge open_in_new
Tools Licencia: AGPL-3

Este módulo permite descargar varios archivos adjuntos como un archivo zip.

También proporciona una clase auxiliar IrAttachmentActionDownloadMixin para que la use el desarrollador al añadir un método de acción en los modelos.

Traducción automática al español (DeepSeek) de la descripción original de OCA, que está en inglés.

auto_awesome Qué hace este módulo

Generado por IA a partir del código · Odoo 19.0

Permite a los usuarios seleccionar varios archivos adjuntos en Odoo y descargarlos juntos como un único archivo ZIP. También ofrece a los desarrolladores un helper reutilizable para que cualquier registro pueda ofrecer una acción de «descargar todos los archivos adjuntos».

Este módulo añade una forma de obtener muchos documentos a la vez en lugar de descargarlos uno por uno.

En la pantalla de Adjuntos (la lista ir.attachment), aparece una nueva acción de servidor llamada "Download" en el menú Acciones. Cuando seleccionas uno o más adjuntos y la ejecutas, Odoo comprueba que la selección contenga solo archivos binarios; si no es así, muestra un error indicando que solo se permiten adjuntos binarios. En caso contrario, abre una descarga de un archivo ZIP llamado "attachments.zip" que contiene todos los archivos seleccionados. Cada archivo conserva su propio nombre dentro del ZIP, y Odoo verifica que tengas acceso de lectura a cada adjunto antes de empaquetarlo.

Para los desarrolladores, el módulo proporciona un helper reutilizable (un mixin) que se puede añadir a cualquier modelo. Cuando se usa, ofrece una acción que examina los adjuntos vinculados a los registros seleccionados: si no se encuentra ninguno, aparece una notificación de advertencia; si se encuentra exactamente uno, ese único archivo se descarga directamente; si se encuentran varios, se empaquetan en un ZIP. La lista de adjuntos que se deben incluir puede personalizarse mediante otros módulos.

No se añaden menús ni ajustes nuevos; se accede a la funcionalidad a través de la lista estándar de adjuntos y mediante botones o acciones añadidos por los módulos que usan el helper.

Depende de

base

Lo necesitan otros módulos

Modelos y campos (2)
  • ir.attachment · amplía un modelo existente
  • ir.attachment.action_download · modelo nuevo

Texto generado por IA (DeepSeek) al leer el código de la versión 19.0 en GitHub; puede contener errores, así que verifícalo en el código antes de decidir. Ver el código en GitHub

Disponibilidad por versión

Revisado: 2026-11-03
Confirmado (verificado en repositorio y rama) Estimado (sin verificar) Sin información

Estado de confirmación: 6 confirmadas, 3 sin información de 9 versiones.

terminal Instalación y uso

Documentación de OCA · Odoo 19.0
  • Vaya a Ajustes \> Técnico \> Estructura de la base de datos \> Archivos adjuntos y seleccione algunos archivos.
  • Vaya a Acciones \> Descargar y se descargará un archivo zip que contiene los archivos seleccionados.

Para desarrolladores

Puede reutilizar el IrAttachmentActionDownloadMixin en sus modelos favoritos:

from odoo import models

class StockPicking(models.Model): _name = "stock.picking" _inherit = ["stock.picking", "ir.attachment.action_download"]

Después puede añadir un botón de acción en la línea de la vista de lista o en el botón de acción (cuando se seleccionan varias líneas) para descargar todos los archivos:

stock.picking.tree download attachments stock.picking

Download attachments

list code

action = records.action_download_attachments()

> [!NOTE] > Incluso podrá generar un archivo zip con varios documentos > con el mismo nombre, se recomienda sobrescribir _compute_zip_file_name para > mejorar el nombre. Cuando hay una barra (/) presente en la ruta, > creará un directorio. Este ejemplo creará un directorio por > stock.picking usando su nombre: > > class IrAttachment(models.Model): > _inherit = "ir.attachment" > > def _compute_zip_file_name(self): > self.ensure_one() > if self.res_model and self.res_model == "stock.picking": > return ( > self.env[self.res_model] > .browse(self.res_id) > .display_name.replace("/", "-") > + "/" > + self.name > ) > return super()._compute_zip_file_name()

Traducción automática al español (DeepSeek) de la documentación original de OCA; los comandos y el código no se traducen. Sin información verificada en OCA: Instalación, Configuración.

info

Datos importados de GitHub: esta ficha refleja la última revisión del catálogo, no una consulta en directo. Verifica siempre en la documentación del módulo y en staging antes de instalar en producción.