| 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 | 3102 |
| Technical Name |
atliis_website_media_library |
| License | OPL-1 |
| Website | https://atliis.com |
| 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 | 3102 |
| Technical Name |
atliis_website_media_library |
| License | OPL-1 |
| Website | https://atliis.com |
Atliis Website Media Library
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.
- Organised gallery with nested folders and colour-coded tags
- Usage index — know exactly where every image is used
- Universal picker injected on every backend image field
- Library button in the website editor image toolbar
Why Teams Use Atliis Media Library
Find Images Instantly
One searchable gallery replaces endless scrolling through ir.attachment. Search by name, filter by folder or tag, or narrow down by usage status or location type.
Full Usage Visibility
See every website page, blog post, product, email template, and mailing that references each image — grouped into clear tabs in the image detail panel.
Reuse Without Re-uploading
Pick any library image from any backend image field or the website editor — no duplicates, no storage waste.
Clean Up Unused Images
Identify orphaned images with the Unused badge and delete them individually from the detail panel, or bulk-delete all unused images in one click.
Key Features
OWL Gallery View
Responsive card grid accessible from Media Library › Gallery. Sidebar with All Images, filter pills (Used / Unused / Products / Website / Blog / Emails / Mailings), nested folders, and colour-coded tags. DB-level pagination (40 images per page).
Folders & Tags
Organise images into nested folders (managed under Media Library › Images) and tag them for cross-folder multi-dimensional filtering. Tags show colour-coded dots in the sidebar and image detail.
Usage Index
Tracks where every image is referenced — Website Pages, Blog Posts, Products (template, variant, extra images), Email Templates, and Mass Mailings. Rebuilt nightly by cron; manual rebuild available in the toolbar.
Image Detail Panel
Click any image card to open a side panel with: full preview (checkerboard for transparent images), dimensions, file size, MIME type, folder, alt text, and a tabbed usage breakdown (All / Website / Blog / Products / Emails / Mailings) with direct page links.
Universal Image Picker
"Choose from Library" button injected next to every backend image field (products, contacts, blog posts, email templates, etc.). Opens a compact picker dialog with search, folder navigation, and upload. Pick once, reuse everywhere — usage is tracked automatically.
Website Editor Integration
A Library button appears in the website editor image toolbar whenever an <img> is selected. Confirming a selection replaces the image src and alt attribute in one click.
Secure Upload
Magic-byte validation rejects SVG and non-image files (JPEG, PNG, GIF, WebP, BMP, TIFF, ICO accepted). CSRF protection on every endpoint. Uploaded images are immediately available in the gallery.
Automatic Dimension Extraction
Width and height are extracted from the image binary at upload time using Pillow (optional). Dimensions are stored once and displayed in the detail panel and image picker selection bar.
Smart Product Image Tracking
Handles Odoo's product image complexity: size-variant deduplication (image_128…image_1920), checksum matching for re-encoded binaries, and source-link tracking for product template, variant, and extra image fields. Product images show as Used immediately without waiting for cron.
Role-based Access Control
Regular users can read, create, and edit images, folders, and tags. Delete, Rebuild Index, and Import Existing operations require Administrator access (base.group_system). Record-level rules prevent unauthorised deletions.
Standard List & Form Views
A traditional Odoo list/kanban/form view under Media Library › Images exposes all image metadata with search filters, group-by options (folder, MIME type, used/unused), and a stat-button showing usage count.
Daily Cron Rebuild
Usage index is rebuilt automatically every night. On the first gallery open after install, all existing Odoo image attachments are imported automatically — no manual setup required.
How to Use
Step 1 — Open the Gallery
Go to Media Library › Gallery from the top menu. On first open the module automatically imports all existing image attachments from Odoo into the library and builds the usage index.
Step 2 — Upload or Import Images
Click Upload to add new images directly into the gallery (optionally into the selected folder). Or click the Import icon () to pull in image attachments already stored in Odoo that were added outside the library. Images are magic-byte validated before any database write.
Step 3 — Organise with Folders & Tags
Create nested folders under Media Library › Images and assign images to keep your library structured. Assign colour-coded tags to images for cross-folder filtering. Folders and tags appear in the gallery sidebar for one-click navigation.
Step 4 — Click an Image for Details & Usage
Click any image card to open the detail panel on the right. It shows a full preview (checkerboard for transparent images), file size, dimensions, MIME type, folder, alt text, and a tabbed usage breakdown — Website / Blog / Products / Emails / Mailings — each row with a direct link to open the page or product.
Step 5 — Pick from Library in Any Image Field
A grid icon () appears next to every backend image field (products, contacts, blog posts, etc.). Click it to open the compact picker dialog, browse or search the library, and confirm your selection — no re-upload needed. Usage is tracked immediately.
Step 6 — Use Library Images in the Website Editor
While editing a page in the website editor, select any <img> element. A Library button appears in the image toolbar. Click it to open the picker and swap the image in one step — the src and alt attributes are updated automatically.
Step 7 — Delete Unused Images
Switch to the Unused filter in the sidebar to see orphaned images. Delete a single image from its detail panel (only shown when the image is unused), or click Delete all unused in the toolbar to bulk-clean the library. Both operations require Administrator access.
Step 8 — Rebuild the Usage Index
The usage index is rebuilt automatically every night by the scheduled cron job. You can also trigger a manual rebuild at any time by clicking the Rebuild icon () in the gallery toolbar. This re-scans all website pages, blog posts, products, email templates, and mass mailings.
Installation
Copy the atliis_website_media_library folder to your custom addons path.
Restart the Odoo server.
Update the app list from the Apps menu.
Install Atliis Website Media Library and hard-reload the browser. The gallery opens automatically and imports existing images on first visit.
Technical Notes
Dependencies
Requires: website, website_sale, website_blog, mass_mailing, web, mail. Pillow is optional (for dimension extraction only).
Storage
Images are still stored as standard ir.attachment records. The library adds metadata, folders, tags, and usage tracking on top without altering core Odoo storage.
Excluded from Gallery
System assets (payment icons, module images, website branding fields), auto-generated size variants (image_128, image_256…), SVG initials avatars, and any attachment shipped with a module are automatically excluded.
Cron Schedule
The usage index cron (media_library_rebuild_cron) runs daily via media.library.usage.rebuild_full_index(). Interval can be adjusted from Settings › Technical › Automation › Scheduled Actions.
FAQs
- No. Images are still stored as
ir.attachmentrecords. The library layer adds metadata, folders, tags, and usage tracking on top without touching core storage.
- 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 standalone library image is marked as used — without cluttering the gallery with duplicates.
- Pillow is optional. Without it the module works fully — only automatic width/height extraction on upload is skipped. Dimensions will show as 0.
- Odoo 19 Community and Enterprise. Built with OWL components and Odoo 19 conventions.
- Delete (single or bulk), Rebuild Index, and Import Existing operations require Administrator access (
base.group_system). Regular users can browse, search, upload, and edit image metadata.
- Yes — for product image fields. When you select a library image via the picker or upload a new product image, 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.
- Please contact us at support@atliis.com to request customisation.
- Yes, we provide 90 days free support from the date of purchase.
Get In Touch With Us
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