[IMP] website_sale_aplicoop: propagate consumer_group_id directly from group_order

- Add consumer_group_id to sale.order for tracking the consumer group
- Fix stock.picking consumer_group_id to use sale_id.consumer_group_id
- Add group_ids inverse relation in res.partner for bidirectional access
- Remove auto-calculation of consumer_group_id, data comes directly from group_order.group_ids[0]
- Add debug logging for consumer_group propagation
- commitment_date propagates directly from group_order (no recalculation)
This commit is contained in:
snt 2026-03-06 13:49:13 +01:00
parent 4141fc5ab1
commit 80539f3e36
8 changed files with 163 additions and 56 deletions

View file

@ -9,29 +9,36 @@
<field name="inherit_id" ref="base.view_partner_tree"/>
<field name="arch" type="xml">
<xpath expr="//list" position="inside">
<field name="member_ids" optional="hide"/>
<field name="group_ids" optional="hide"/>
<field name="is_group" optional="hide"/>
<field name="group_order_ids" optional="hide"/>
</xpath>
</field>
</record>
<!-- Extend res.partner form view to show group_ids -->
<!-- Extend res.partner form view to show group membership -->
<record id="view_res_partner_form_inherit" model="ir.ui.view">
<field name="name">res.partner.form.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<!-- Add group_ids page -->
<!-- Add group membership page -->
<xpath expr="//notebook/page[@name='internal_notes']" position="before">
<page name="group_orders" string="Group Orders">
<group>
<group name="group_membership">
<group name="group_config" string="Group Configuration">
<field name="is_group" colspan="2"/>
<field name="group_order_ids" widget="many2many_tags" colspan="2" help="Consumer Group orders this group manages"/>
<field name="group_order_ids" widget="many2many_tags" colspan="2"
invisible="not is_group"
help="Consumer Group orders this group participates in"/>
<field name="member_ids" widget="many2many_tags" colspan="2"
invisible="not is_group"
help="Members that belong to this consumer group"/>
</group>
<group name="members">
<field name="member_ids" widget="many2many_tags" colspan="2" help="Consumer Groups this partner belongs to"/>
<group name="membership" string="Membership">
<field name="group_ids" widget="many2many_tags" colspan="2"
invisible="is_group"
help="Consumer groups this partner belongs to"/>
</group>
</group>
</page>

View file

@ -12,7 +12,10 @@
<xpath expr="//field[@name='note']" position="before">
<group string="Group Purchase Information" groups="base.group_user">
<field name="group_order_id" readonly="True" />
<field name="consumer_group_id" readonly="True" />
<field name="pickup_day" readonly="True" />
<field name="pickup_date" readonly="True" />
<field name="home_delivery" readonly="True" />
</group>
</xpath>
</field>

View file

@ -471,10 +471,18 @@
<div class="info-item">
<t t-if="group_order.pickup_day and group_order.pickup_date">
<label t-att-class="'info-label'">Store Pickup Day</label>
<span class="info-value" t-attf-data-pickup-date="{{ group_order.pickup_date }}" t-attf-data-delivery-date="{{ group_order.delivery_date }}">
<t t-esc="day_names[int(group_order.pickup_day) % 7]" />
<span class="info-date">(<t t-esc="group_order.pickup_date.strftime('%d/%m/%Y')" />)</span>
</span>
<t t-if="group_order.home_delivery">
<span class="info-value" t-attf-data-pickup-date="{{ group_order.pickup_date }}" t-attf-data-delivery-date="{{ group_order.delivery_date }}">
<t t-esc="day_names[int(group_order.pickup_day) % 7]" />
<span class="info-date">(<t t-esc="group_order.pickup_date.strftime('%d/%m/%Y')" />)</span>
</span>
</t>
<t t-else="">
<span class="info-value" t-attf-data-pickup-date="{{ group_order.pickup_date }}">
<t t-esc="day_names[int(group_order.pickup_day) % 7]" />
<span class="info-date">(<t t-esc="group_order.pickup_date.strftime('%d/%m/%Y')" />)</span>
</span>
</t>
</t>
</div>
</div>