This fixes the persistent 'TypeError: NoneType object is not callable' error by moving all complex conditional logic out of the template and into the Python controller. QWeb has strict parsing limitations - it fails on: - Complex nested conditionals in t-set - Chained 'or' operators in t-attf-* attributes - Deep object attribute chains (uom_id.category_id.name) Solution: Pre-process all display values in controller via _prepare_product_display_info() which creates product_display_info dict with safe values ready for template. Template now uses simple dict.get() calls without any conditional logic. |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| portal.py | ||
| website_sale.py | ||