OdooWiki OCA HUB

Attachment Zipped Download

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

This module allows downloading multiple attachments as a zip file.

This also provide a helper class IrAttachmentActionDownloadMixin to be used by developer to add action method on models.

auto_awesome What this module does

AI-generated from the code · Odoo 19.0

Lets users select several attachments in Odoo and download them together as a single ZIP file. It also gives developers a reusable helper so any record can offer a 'download all attachments' action.

This module adds a way to grab many documents at once instead of downloading them one by one.

On the Attachments screen (the ir.attachment list), a new server action called "Download" appears in the Actions menu. When you select one or more attachments and run it, Odoo checks that the selection contains only binary files; if not, it shows an error saying that only binary attachments are allowed. Otherwise it opens a download of a ZIP file named "attachments.zip" containing all the selected files. Each file keeps its own name inside the ZIP, and Odoo verifies you have read access to every attachment before packing it.

For developers, the module provides a reusable helper (a mixin) that can be added to any model. When used, it offers an action that looks at the attachments linked to the selected records: if none are found, a warning notification appears; if exactly one is found, that single file downloads directly; if several are found, they are bundled into a ZIP. The list of attachments to include can be customised by other modules.

No new menus or settings are added; the feature is reached through the standard attachment list and through buttons or actions added by modules that use the helper.

Depends on

base

Required by other modules

Models and fields (2)
  • ir.attachment · extends an existing model
  • ir.attachment.action_download · new model

Text generated by AI (DeepSeek) from reading the Odoo 19.0 code on GitHub; it may contain mistakes, so check the code before deciding. View the code on GitHub

Availability by version

Reviewed: 2026-11-03
Confirmed (verified in repository and branch) Estimated (unverified) No information

Confirmation status: 6 confirmed, 3 with no information of 9 versions.

Sources · Odoo 17.0

Confirmed on 2026-11-03 in branch 17.0 of OCA/knowledge.

terminal Installation and usage

OCA documentation · Odoo 19.0
  • Go to Settings \> Technical \> Database Structure \> Attachments and select some files.
  • Go to Actions \> Download and a zip file containing the selected files will be downloaded.

For developer

You can reuse the IrAttachmentActionDownloadMixin on your favorite models:

from odoo import models

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

Then you can add an action button on list view line or on the action button (when multiple lines are selected) to download all files:

stock.picking.tree download attachments stock.picking

Download attachments

list code

action = records.action_download_attachments()

> [!NOTE] > Even you will be able to generate a zip file with multiple document > with the same name it's advice to overwrite _compute_zip_file_name to > improve the name. When a slash (/) is present in the path it will > create a directory. This example will create a directory per > stock.picking using its name: > > 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()

No verified information in OCA: Installation, Configuration.

info

Data imported from GitHub: this sheet reflects the latest catalog review, not a live lookup. Always check the module documentation and staging before installing in production.