Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

[BUG] Incorrect methodology for `is_menu_item_dropdown` simple tag

Aperta
#184 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
2/5
Tempo stimato
1-3 ore
Idoneità per principianti
35/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Ferma
Stack tecnologico
django, python
Ambito
backend

Direzione di ricerca

Cerca nel repository il simple tag is_menu_item_dropdown e ispeziona come viene utilizzato il suo valore page. Riproduci il caso in cui page è assente o ha un valore predefinito errato, quindi verifica che il tag eviti di chiamare i metodi di page quando il valore non è una pagina, preservando al contempo il comportamento dei sub-link e dei child-link.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Area: Core ⚙ Type: Tech Debt

Describe the bug
A clear and concise description of what the bug is.

This code block:

@register.simple_tag
def is_menu_item_dropdown(value):
    return \
        len(value.get('sub_links', [])) > 0 or \
        (
            value.get('show_child_links', False) and \
            len(value.get('page', []).get_children().live()) > 0
        )

What if you actually hit the case where value.get('page', []) defaults to a list? Then .get_children().live() is being called on an object which doesn't have these methods. Also, probably shouldn't inline all of this for readability despite the faster evaluation.

One simple fix:

@register.simple_tag
def is_menu_item_dropdown(value):
     has_sub_links = len(value.get('sub_links', [])) > 0
     show_child_links = value.get('show_child_links', False)
     page_has_children = False
     if has_sub_links or show_child_links: # No need to evaluate the below if this case fails...
         page = value.get('page')
         if page is not None:
             page_has_children= len(page.get_children().live()) > 0
     return has_sub_links or (show_child_links and page_has_children)

This is also assuming you still want to be verbose with the evaluation into booleans here.

Lingua principale
Python
Stelle
761
Fork
153
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Preparare l'ambiente

  • Nessun Dockerfile né file Docker Compose
  • Ha un modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di coderedcorp/coderedcms

Tutte le issue di coderedcorp/coderedcms

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.