Compare commits

...

2 commits

Author SHA1 Message Date
GitHub Copilot
9d614ed79e [FIX] website_sale_aplicoop: auto-derive home_delivery from delivery_product_id
Make group.order.home_delivery a computed stored field that is True
whenever delivery_product_id is set, eliminating the manual checkbox
that could be forgotten. This fixes sale.order.home_delivery not being
set when the delivery product was configured but the boolean was left
unchecked.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 17:37:33 +02:00
GitHub Copilot
fb1efb0474 [IMP] website_sale_aplicoop: mostrar día y horario completo en pickup slots
Antes: si el slot tenía label, solo se mostraba el label (sin día ni hora).
Ahora: siempre se muestra día + rango horario (09:00–13:00), con el label
entre paréntesis como información adicional opcional.

Aplicado en eskaera_order_card_meta (tarjeta compacta) y en la vista
detalle de la tienda (group_order.pickup_slot_ids).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 17:28:39 +02:00
3 changed files with 17 additions and 19 deletions

View file

@ -134,7 +134,8 @@ class GroupOrder(models.Model):
# === Home delivery ===
home_delivery = fields.Boolean(
default=False,
compute="_compute_home_delivery",
store=True,
tracking=True,
help="Whether this consumer group order includes home delivery service",
)
@ -255,6 +256,11 @@ class GroupOrder(models.Model):
else:
record.display_image = False
@api.depends("delivery_product_id")
def _compute_home_delivery(self):
for record in self:
record.home_delivery = bool(record.delivery_product_id)
available_products_count = fields.Integer(
compute="_compute_available_products_count",
store=False,

View file

@ -61,8 +61,8 @@
<field name="period" help="How often this order repeats"/>
<field name="pickup_day" help="Day when members pick up orders"/>
<field name="cutoff_day" help="Day when purchases stop"/>
<field name="home_delivery" help="Enable home delivery option for this order"/>
<field name="delivery_product_id" invisible="not home_delivery" required="home_delivery" help="Product to use for home delivery"/>
<field name="home_delivery" readonly="1" help="Automatically enabled when a delivery product is configured"/>
<field name="delivery_product_id" help="Product to use for home delivery. Setting this enables home delivery."/>
</group>
</group>
<group string="Calculated Dates" name="calculated_dates">

View file

@ -129,14 +129,10 @@
<span class="meta-value">
<t t-foreach="order.pickup_slot_ids" t-as="slot">
<div class="slot-entry">
<t t-if="slot.label">
<t t-esc="slot.label" />
</t>
<t t-else="">
<t t-esc="day_names[int(slot.weekday) % 7]" />
&#160;
<t t-esc="('%02d:%02d-%02d:%02d' % (int(slot.start_hour or 0), int(((slot.start_hour or 0) % 1) * 60), int(slot.end_hour or 0), int(((slot.end_hour or 0) % 1) * 60)))" />
</t>
<t t-esc="('%02d:%02d%02d:%02d' % (int(slot.start_hour or 0), int(((slot.start_hour or 0) % 1) * 60), int(slot.end_hour or 0), int(((slot.end_hour or 0) % 1) * 60)))" />
<t t-if="slot.label">&#160;(<t t-esc="slot.label" />)</t>
</div>
</t>
</span>
@ -216,14 +212,10 @@
<span class="info-value">
<t t-foreach="group_order.pickup_slot_ids" t-as="slot">
<div>
<t t-if="slot.label">
<t t-esc="slot.label" />
</t>
<t t-else="">
<t t-esc="day_names[int(slot.weekday) % 7]" />
&#160;
<t t-esc="('%02d:%02d-%02d:%02d' % (int(slot.start_hour or 0), int(((slot.start_hour or 0) % 1) * 60), int(slot.end_hour or 0), int(((slot.end_hour or 0) % 1) * 60)))" />
</t>
<t t-esc="('%02d:%02d%02d:%02d' % (int(slot.start_hour or 0), int(((slot.start_hour or 0) % 1) * 60), int(slot.end_hour or 0), int(((slot.end_hour or 0) % 1) * 60)))" />
<t t-if="slot.label">&#160;(<t t-esc="slot.label" />)</t>
</div>
</t>
</span>