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. |
||
|---|---|---|
| .. | ||
| group_order_views.xml | ||
| load_from_history_templates.xml | ||
| portal_templates.xml | ||
| product_template_views.xml | ||
| res_config_settings_views.xml | ||
| res_partner_views.xml | ||
| sale_order_views.xml | ||
| stock_picking_views.xml | ||
| website_templates.xml | ||