from django import template
from wagtail.models import Site

register = template.Library()

@register.simple_tag(takes_context=True)
def get_menu_data(context):
    page = context.get('page')
    data = {'home': None, 'items': []}
    
    # Método blindado: Sube por la rama de la página actual hasta la portada (Nivel 2)
    if page:
        home_page = page.get_ancestors(inclusive=True).filter(depth=2).first()
        if home_page:
            data['home'] = home_page.specific
            data['items'] = home_page.get_children().live().in_menu()
    else:
        # Respaldo de seguridad si estamos fuera de Wagtail (ej: página de Login nativa)
        request = context.get('request')
        if request:
            site = Site.find_for_request(request)
            if site and site.root_page:
                data['home'] = site.root_page.localized.specific
                data['items'] = site.root_page.localized.get_children().live().in_menu()
                
    return data