addons-cm/website_sale_aplicoop/models/stock_picking_extension.py
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

44 lines
1.2 KiB
Python

# Copyright 2026 Criptomart
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl)
from odoo import fields
from odoo import models
class StockPicking(models.Model):
_inherit = "stock.picking"
group_order_id = fields.Many2one(
"group.order",
related="sale_id.group_order_id",
string="Consumer Group Order",
store=True,
readonly=True,
help="Consumer group order from the related sale order",
)
home_delivery = fields.Boolean(
related="sale_id.home_delivery",
string="Home Delivery",
store=True,
readonly=True,
help="Whether this picking includes home delivery (from sale order)",
)
pickup_date = fields.Date(
related="sale_id.pickup_date",
string="Pickup Date",
store=True,
readonly=True,
help="Pickup/delivery date from sale order",
)
consumer_group_id = fields.Many2one(
"res.partner",
related="sale_id.partner_id",
string="Consumer Group",
store=True,
readonly=True,
domain=[("is_group", "=", True)],
help="Consumer group (partner) from sale order for warehouse grouping",
)