import logging from odoo import http, tools, _ from odoo.http import request def check_render(dbname): try: registry = odoo.registry(dbname) with registry.cursor() as cr: env = odoo.api.Environment(cr, odoo.SUPERUSER_ID, {}) # Try to render the contactus page view # Typically 'website.contactus' is the template print("Attempting to render website.contactus...") try: view_id = env.ref('website.contactus') print(f"View ID: {view_id.id}") # We need a website context website = env['website'].browse(1) # Mock request object if needed, or just use context # Rendering view directly arch = env['ir.ui.view']._render_template(view_id.id, {'main_object': view_id}) print("Render SUCCESS (length: {})".format(len(arch))) except Exception as e: print("Render FAILED:") import traceback traceback.print_exc() print("-" * 20) print("Checking for broken XPaths specifically on this view inheritance...") # List inherited views for inherit in view_id.inherit_children_ids: print(f"Child View: {inherit.id} {inherit.name} (Active: {inherit.active})") except Exception as e: print(f"General failure: {e}") if __name__ == "__main__": check_render('FOODIES-DELIGHT')