Add multimedia URL field and website audio iframe embeds

This commit is contained in:
snt 2026-03-29 16:50:00 +02:00
parent efae7d5d03
commit cd54429cf8
5 changed files with 78 additions and 2 deletions

View file

@ -1,4 +1,6 @@
from odoo import api, models, fields
from odoo import api, models
class ProductTemplate(models.Model):
_inherit = 'product.template'
@ -12,6 +14,8 @@ class ProductTemplate(models.Model):
search_details['fetch_fields'].append('editorial')
search_details['search_fields'].append('subtitle')
search_details['fetch_fields'].append('subtitle')
search_details['fetch_fields'].append('multimedia_url')
search_details['fetch_fields'].append('multimedia_embed_url')
search_details['search_fields'].remove('description')
search_details['search_fields'].remove('description_sale')
return search_details
return search_details

View file

@ -7,3 +7,37 @@
border: 1px solid #99d;
border-radius: 6px;
}
.oe_product_cart {
position: relative;
}
.o_multimedia_hover_player {
position: absolute;
left: 0;
right: 0;
bottom: 0.75rem;
z-index: 4;
opacity: 0;
pointer-events: none;
transition: opacity 0.2s ease-in-out;
padding: 0 0.5rem;
}
.oe_product_cart .o_wsale_product_grid_wrapper:hover + .o_multimedia_hover_player,
.oe_product_cart .o_multimedia_hover_player:hover {
opacity: 1;
pointer-events: auto;
}
.o_multimedia_hover_player iframe,
.o_multimedia_product_player iframe {
width: 100%;
min-width: 0;
}
@media (max-width: 991.98px) {
.o_multimedia_hover_player {
display: none !important;
}
}

View file

@ -13,6 +13,16 @@
<span t-if="product.autor"><b><t t-out="product.autor" /></b></span>
</a>
</xpath>
<xpath expr="//a[contains(@class, 'o_wsale_product_grid_wrapper')]" position="after">
<div t-if="product.multimedia_embed_url" class="o_multimedia_hover_player">
<iframe
loading="lazy"
t-att-src="product.multimedia_embed_url"
style="border: none; height: 49.6px; width: 100%;"
t-att-title="'Widget de reproductor de audio para %s' % product.name"
/>
</div>
</xpath>
</template>
<template
id="products_item_description"
@ -42,6 +52,14 @@
<t t-out="product.subtitle" />
</div>
<div t-if="product.autor"><b><t t-out="product.autor" /></b></div>
<div t-if="product.multimedia_embed_url" class="o_multimedia_product_player mt-3">
<iframe
loading="lazy"
t-att-src="product.multimedia_embed_url"
style="border: none; height: 49.6px; width: 100%;"
t-att-title="'Widget de reproductor de audio para %s' % product.name"
/>
</div>
</div>
</xpath>
</template>