addons-cm/website_sale_aplicoop/views/stock_picking_views.xml
snt 9000e92324 [DOC] website_sale_aplicoop: Add lazy loading documentation and implement v18.0.1.3.0 feature
- Add LAZY_LOADING.md with complete technical documentation (600+ lines)
- Add LAZY_LOADING_QUICK_START.md for quick reference (5 min)
- Add LAZY_LOADING_DOCS_INDEX.md as navigation guide
- Add UPGRADE_INSTRUCTIONS_v18.0.1.3.0.md with step-by-step installation
- Create DOCUMENTATION.md as main documentation index
- Update README.md with lazy loading reference
- Update docs/README.md with new docs section
- Update website_sale_aplicoop/README.md with features and changelog
- Create website_sale_aplicoop/CHANGELOG.md with version history

Lazy Loading Implementation (v18.0.1.3.0):
- Reduces initial store load from 10-20s to 500-800ms (20x faster)
- Add pagination configuration to res_config_settings
- Add _get_products_paginated() method to group_order model
- Implement AJAX endpoint for product loading
- Create 'Load More' button in website templates
- Add JavaScript listener for lazy loading behavior
- Backward compatible: can be disabled in settings

Performance Improvements:
- Initial load: 500-800ms (vs 10-20s before)
- Subsequent pages: 200-400ms via AJAX
- DOM optimization: 20 products initial vs 1000+ before
- Configurable: enable/disable and items per page

Documentation Coverage:
- Technical architecture and design
- Installation and upgrade instructions
- Configuration options and best practices
- Troubleshooting and common issues
- Performance metrics and validation
- Rollback procedures
- Future improvements roadmap
2026-02-16 18:39:39 +01:00

86 lines
3.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Extend stock.picking search view to add consumer group filters -->
<record id="view_picking_internal_search_extended" model="ir.ui.view">
<field name="name">stock.picking.search.extended</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_internal_search"/>
<field name="arch" type="xml">
<!-- Add consumer group search fields -->
<field name="partner_id" position="after">
<field name="consumer_group_id" string="Consumer Group"/>
<field name="group_order_id" string="Group Order"/>
</field>
<!-- Add consumer group filters -->
<filter name="internal" position="after">
<separator/>
<filter string="Home Delivery" name="filter_home_delivery"
domain="[('home_delivery', '=', True)]"/>
</filter>
<!-- Add group-by options for consumer groups -->
<filter name="picking_type" position="after">
<filter string="Consumer Group" name="group_by_consumer_group"
domain="[]" context="{'group_by': 'consumer_group_id'}"/>
<filter string="Group Order" name="group_by_group_order"
domain="[]" context="{'group_by': 'group_order_id'}"/>
<filter string="Pickup Date" name="group_by_pickup_date"
domain="[]" context="{'group_by': 'pickup_date'}"/>
</filter>
</field>
</record>
<!-- Extend stock.picking tree view to add hidden columns -->
<record id="view_picking_tree_extended" model="ir.ui.view">
<field name="name">stock.picking.tree.extended</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.vpicktree"/>
<field name="arch" type="xml">
<!-- Add consumer group and home delivery fields as optional columns -->
<field name="partner_id" position="after">
<field name="consumer_group_id" string="Consumer Group"
optional="hide"/>
<field name="group_order_id" string="Group Order"
optional="hide"/>
<field name="pickup_date" string="Pickup Date"
optional="hide"/>
<field name="home_delivery" string="Home Delivery"
optional="hide" widget="boolean_toggle"/>
</field>
</field>
</record>
<!-- Extend stock.picking form view to show consumer group info -->
<record id="view_picking_form_extended" model="ir.ui.view">
<field name="name">stock.picking.form.extended</field>
<field name="model">stock.picking</field>
<field name="inherit_id" ref="stock.view_picking_form"/>
<field name="arch" type="xml">
<!-- Add consumer group info in header after partner -->
<field name="partner_id" position="after">
<field name="consumer_group_id"
invisible="not consumer_group_id"
readonly="1"/>
<field name="group_order_id"
invisible="not group_order_id"
readonly="1"/>
</field>
<!-- Add home delivery and pickup date in notebook page -->
<xpath expr="//page[@name='note']" position="after">
<page string="Consumer Group Info"
name="consumer_group_info"
invisible="not group_order_id">
<group>
<group>
<field name="home_delivery" readonly="1"/>
<field name="pickup_date" readonly="1"/>
</group>
</group>
</page>
</xpath>
</field>
</record>
</odoo>