| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Email Marketing (mass_mailing) • Website (website) • eCommerce (website_sale) • Contacts (contacts) • Invoicing (account) |
| Lines of code | 5795 |
| Technical Name |
atliis_media_library |
| License | OPL-1 |
| Website | https://atliis.com |
| Versions | 17.0 18.0 19.0 |
Media Library & Image Manager
Centralised image library with usage tracking and universal picker.
Stop hunting through ir.attachment every time you need an image. One organised gallery to upload, find, and reuse images — with full visibility into exactly where each image is used across your website, blog, products, emails, and mailings.
One gallery. Every image. Zero duplicates.
Media Library & Image Manager replaces the fragmented Odoo attachment store with a single organised gallery — nested folders, usage tracking, and a reusable picker that works across the entire backend and website editor.
Find Images Instantly
One searchable gallery replaces endless scrolling through ir.attachment. Folder, usage status, and advanced filters narrow results immediately.
Full Usage Visibility
See every website page, blog post, product, email, and mailing that references each image — grouped in clear tabs in the detail panel.
Reuse Without Re-uploading
Pick any library image from any backend image field or the website editor — no duplicates, no storage waste, usage tracked immediately.
Clean Up Unused Images
Identify orphaned images with the Unused badge and delete individually or bulk-delete all unused images in one click.
Everything your image workflow needs
From gallery to picker to website editor — every image management task in one module.
OWL Gallery View
Responsive card grid under Media Library › Gallery. Sidebar with All Media count, folder tree, filter pills (All / Used / Unused / Products / Website / Blog / Messages / Attachments), search bar, and DB-level pagination.
Kanban & List Views
Switch to Media Library › Images for a standard Odoo kanban or list view showing image name, thumbnail, folder path, file size, usage count, and an Unused toggle — sortable and exportable.
Advanced Filters
Expand the filter bar to narrow by file size range (KB), minimum image dimensions (W × H), MIME type, and upload date range — on top of the one-click filter pills always visible in the toolbar.
Nested Folders
Organise images into unlimited nested, color-coded folders. The sidebar shows live image counts per folder. The folder context menu supports New Subfolder, Move, Rename (Edit), Change Color, and Delete.
Image Detail Panel
Click any card to open a right-side panel with full preview, dimensions, file size, MIME type, editable folder dropdown, upload date, and a usage count showing exactly where the image is used.
Universal Image Picker
"Choose from Media Library" button injected next to every backend image field (products, contacts, blog posts, email templates). Opens a full picker dialog with folder navigation, search, upload, and Select Image.
Website Editor Integration
A dedicated Media Library tab appears inside the standard "Select a media" dialog in the website editor. Browse, search, and apply any library image to the page in one step.
Secure Upload
Magic-byte validation ensures only accepted formats are stored (JPEG, PNG, GIF, WebP, SVG). Non-image files are rejected before the database write. CSRF protection on every upload endpoint.
Role-based Access Control
Regular users can browse, upload, and organise folders. Delete (single or bulk), Rebuild Index, and Import Existing require Administrator access (base.group_system).
Configuration & Settings
Control what the library tracks from a single Configuration page. Enable or disable file type categories (Images, Videos, PDFs, Spreadsheets, Documents, Archives, Audio), choose which Odoo models appear as filter pills in the gallery toolbar, and set the maximum upload file size per file.
Multi-Type Media Support
The gallery handles more than images. File type tabs across the top — Images, Videos, PDFs, Spreadsheets, Presentations — each show a live count and switch the grid to that file type. All filter pills (Used / Unused / model filters) apply within each tab.
Record-Level Model Filtering
Each enabled model (Products, Contacts, Blog Posts, etc.) appears as a filter pill. Selecting a pill restricts the gallery to media linked to that model, and a Search records… field lets you drill down to a specific record by name — showing only the media assigned to that single product, contact, or page.
Step-by-step workflow
From opening the gallery for the first time to swapping images in the website editor — every step covered with real screenshots.
Open the Gallery
Navigate to Media Library › Gallery from the top menu. The gallery opens with a left sidebar showing All Media with a live image count and a Folders section (click + to create your first folder). The toolbar provides a search bar, filter pills — All / Used / Unused / Products / Website / Blog / Messages / Attachments — plus icons for advanced filters, import, rebuild, and Upload. On first open, the module automatically imports all existing Odoo image attachments and builds the full usage index.
Browse Images in Kanban View
Switch to Media Library › Images in the top menu to open the standard Odoo kanban view. Each card displays a thumbnail, the file name, pixel dimensions (e.g. 500 × 500 px), and a green uses badge showing how many times the image is referenced across Odoo. This view is ideal for a quick visual scan of your entire library with usage counts at a glance.
Switch to List View for Detailed Metadata
Click the list-view icon in the top-right of Media Library › Images to switch to a tabular layout. Columns show Name, a thumbnail, Folder path (e.g. Contacts / vendors), Size (KB), Usages count, and an Unused toggle. The record counter (e.g. 1–38 / 38) confirms the total. Use this view to sort, group, filter, or bulk-select images for mass actions.
Use Advanced Filters to Narrow Your Search
The gallery offers three layers of filtering you can combine freely:
- Search by name — type any part of the filename into the search bar to instantly narrow the grid to matching images.
- Filter pills — click Used, Unused, Products, Website, Blog, Messages, or Attachments to restrict results by usage location in one click.
- Advanced filter bar — click the funnel icon to expand filters for Size (KB) range (Min – Max), minimum pixel dimensions (W × H), Type (All types / JPEG / PNG / WebP / etc.), and an Uploaded date range.
- Tags — assign tags to images from the detail panel and filter the gallery by tag to group images independently of folders.
All four layers work together — for example, type a filename, select Unused, and set a minimum size to find large orphaned images with that name, ready for cleanup in one step.
Organise Images into Nested Folders
Click + in the sidebar Folders header to create a root folder, or use the folder context menu to add a subfolder. The sidebar shows a live count next to each folder name (e.g. Customers 5, vendors 3). Click any folder to browse its images — the breadcrumb above the grid shows your current path (All Images › Contacts › Customers). When unused images are present, a red Delete all unused button appears in the toolbar for one-click cleanup.
Manage Folders with the Context Menu
Hover or right-click any folder in the sidebar to open its context menu. Available actions are: New subfolder — add a child folder; Move to folder — relocate the entire folder tree; Change color — set a custom icon color; Edit — rename the folder; Delete — remove it (only available when the folder is empty). Safeguards prevent moving a folder into itself or any of its own subfolders.
Inspect the Image Detail Panel
Click any image card in the gallery to open the detail panel on the right. The panel shows the image name, action icons (share link, download original, delete), and the full metadata: Dimensions (e.g. 275 × 183 px), File size, Type (e.g. image/jpeg), Folder (editable dropdown to move the image), and Uploaded date. The Used On count shows how many records reference this image — a count of 0 with "Not used anywhere" confirms the image is safe to delete.
Choose from Library on Any Backend Image Field
A Choose from Media Library button is automatically injected next to every backend image field across Odoo — products, contacts, blog posts, email templates, and more. Open any record (e.g. Inventory › Products › Cabinet with Doors), locate the image field, and click the button to open the library picker without leaving the current form. No re-upload, no copy-paste.
Select an Image in the Picker Dialog
The picker dialog opens over the current form and provides the full gallery experience: All Images count, folder sidebar, filter pills, search bar, and an Upload button. Browse or search for the image you need, click its card to select it (highlighted with a green border), and review the preview and metadata in the bottom bar. Click Select Image to apply it — the field is updated instantly and a source link is created so the usage index reflects the assignment immediately.
Select an Image in the Website Editor
Open a page in the website editor and click any image to select it. The builder panel on the right shows image controls (Replace, Add More, Remove All). At the bottom of the viewport an image toolbar appears with Media, Replace, and Remove options. Click Replace or Media to open the media selection dialog where the library tab is available.
Pick from the Media Library Tab in the Website Editor
In the Select a media dialog, click the Media Library tab (next to
Images). The full library picker loads with All Images count, folder
sidebar (Contacts, Employee, Products, etc.), and an image grid showing all your library images
with usage badges. Click an image to select it, then click Add to replace the current
page image — the src attribute is updated instantly with no page reload.
Library Image Applied — Result on the Website Page
The selected library image is applied to the product page immediately — no re-upload, no broken link. The page now displays the new image in full quality. Save the page to publish the change. The usage index updates on the next nightly cron run or on a manual rebuild, marking the image as Used on this website page.
The steps below cover the Settings page, file-type tab navigation, model-based filter pills with record search, and the tabbed usage breakdown in the detail panel — all added to give you precise control over what the library tracks and how you filter it.
Configure the Module — File Types, Filter Models & Upload Limits
Navigate to Media Library › Configuration to control exactly what the module tracks and displays. The Settings page is divided into three clear sections:
- Allowed File Types — toggle each category the gallery accepts. Images (JPEG, PNG, GIF, WebP, SVG) is enabled by default. Additional categories — Videos (MP4, WebM, OGG, MOV, AVI), PDFs, Spreadsheets (Excel, .xlsx, .csv, ODS), Documents (Word, .docx, ODT, TXT, RTF), Presentations (PowerPoint, .pptx, ODP), Archives (ZIP, RAR, 7z, TAR, GZ), and Audio (MP3, WAV, OGG, FLAC, AAC) — can be switched on as needed. The Attachments option catches any file type not covered by the specific categories above, and files appear in an Attachments section of the gallery.
- Filter Models — select which Odoo models appear as filter pills in the gallery toolbar. Tick a model to make it a one-click filter option for users. Available models include Blog Post, Companies, Contact, Employee, Journal Entry, Mass Mailing, Product, Project, Sales Order, Task, Transfer, Email Templates, Message, Page, and User. Only the models you tick appear in the toolbar — keep it focused on what your team actually uses.
- Upload Limits — set the maximum upload size (in MB) that applies to all file types. The default is 50 MB.
Browse the Gallery by File Type Tab
Once additional file types are enabled in Configuration, a row of file type tabs appears at the top of the gallery area — one tab per enabled category. Each tab shows the category name and a live count of files in that category (e.g. Images 31, Videos 2, PDFs 2, Spreadsheets 2, Presentations). Clicking a tab switches the entire gallery grid to show only files of that type.
The existing filter pills — All, Used, Unused, and any model pills enabled in Configuration (e.g. Products) — stay active within the selected tab. This means you can combine tabs with pills freely: for example, select the PDFs tab and click Unused to instantly isolate unreferenced PDF documents ready for cleanup.
Filter by Model and Search for a Specific Record
Every model enabled in Configuration appears as a filter pill in the gallery toolbar (e.g. Products). Clicking a model pill restricts the gallery to media that is linked to records of that model — images assigned to products, contacts, blog posts, and so on. Each card still shows its Used badge and usage count.
When a model pill is active, a Search records… text field appears immediately to its right. Type any part of a record name to narrow the gallery down to a single record — for example, type a product name to see only the media assigned to that specific product. This gives you a precise audit of image assignments at the individual record level without leaving the gallery.
Explore the Tabbed Usage Breakdown in the Detail Panel
Click any image card to open the detail panel. The USED ON section now shows a tabbed breakdown of every record that references the image, grouped by model type:
- All — the total usage count across all models combined (e.g. All 2).
- Per-model tabs — one tab per model type that references the image (e.g. user_profile 1, Products 1), each showing how many records of that type reference it.
- Record list — clicking a tab reveals the specific record names grouped under their model heading (e.g. CONTACT — Abigail Peterson, PRODUCT — Acoustic Bloc Screens), each with an Open link to jump directly to that record in Odoo.
This breakdown answers "where exactly is this file used?" at a glance — no extra navigation required. The Open link beside each record name lets you jump straight to the product, contact, or page that uses the file, making cross-reference checks effortless.
Browse Non-Image Files with File Type Tabs
Click the Videos, PDFs, Spreadsheets, or Presentations tab to switch the gallery to that file type. The grid adapts: instead of image thumbnails, each card displays a file-type icon (e.g. a PDF icon for documents), the file name, and the file size. Used and Unused badges remain on every card, and the sidebar folder tree, filter pills, and search bar all work exactly as they do for images.
This unified interface means you can manage all your media — product spec PDFs, training videos, spreadsheet templates — from one place. Upload a PDF, assign it to a folder, confirm it is referenced somewhere, and delete unused documents using the same workflow as your image library, without switching to a separate tool.
Install and get started
Install the module, restart Odoo, and open the gallery. Existing image attachments are imported automatically on first visit — no configuration required.
1. Add the module
Copy atliis_media_library into your Odoo custom addons path.
2. Restart Odoo
Restart the Odoo server so the new addons path is picked up.
3. Update Apps
In Apps, click Update Apps List and search for Media Library & Image Manager.
4. Install
Install the module, hard-reload the browser, and open Media Library › Gallery. Existing images are imported on first visit.
Common questions
Does it replace ir.attachment?
No. Images are still stored as standard ir.attachment records. The library layer adds metadata, folders, and usage tracking on top without altering core Odoo storage.
Will product image size variants (image_128, image_512…) appear in the gallery?
No. All Odoo auto-generated size variants are excluded at the sync layer. Product source fields (image_1920, image_variant_1920) are tracked via source links so the original library image is marked as Used — without cluttering the gallery with duplicates.
Does usage update immediately when I assign an image to a product?
Yes — for product image fields. When you select a library image via the picker, a source link is created immediately and the image is marked as Used without waiting for the nightly cron. Website pages, blog posts, email templates, and mailings update on the next cron run or manual rebuild.
Is Pillow required?
Pillow is optional. Without it the module works fully — only automatic width/height extraction on upload is skipped. Dimensions will show as 0 in the detail panel.
Who can delete images or rebuild the index?
Delete (single or bulk), Rebuild Index, and Import Existing operations require Administrator access (base.group_system). Regular users can browse, search, upload, move images, and organise folders.
Which Odoo versions are supported?
Odoo 18 and 19, Community and Enterprise. Built with OWL components and Odoo 19 conventions.
Do I get free support?
Yes. We provide 90 days of free support from the date of purchase. Contact us at helpdesk@atliis.com.
Get in touch with us
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Discuss (mail)
• Email Marketing (mass_mailing) • Website (website) • eCommerce (website_sale) • Contacts (contacts) • Invoicing (account) |
| Lines of code | 5795 |
| Technical Name |
atliis_media_library |
| License | OPL-1 |
| Website | https://atliis.com |
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module