[BUG] Incorrect methodology for `is_menu_item_dropdown` simple tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 35/100
Rechercherichtung
Durchsuche das Repository nach dem Simple-Tag is_menu_item_dropdown und untersuche, wie sein page-Wert verwendet wird. Stelle den Fall nach, in dem page fehlt oder standardmäßig falsch gesetzt wird, und verifiziere anschließend, dass das Tag vermeidet, Methoden von page für einen Nicht-Seiten-Wert aufzurufen, während das Verhalten von Sub-Links und Child-Links erhalten bleibt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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.
- Vorherrschende Sprache
- Python
- Sterne
- 765
- Forks
- 154
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Entwicklungsumgebung
Die Einrichtungsdateien dieses Projekts haben wir noch nicht geprüft. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus coderedcorp/coderedcms
-
Type: Bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 78/100
coderedcorp/coderedcms#714 ·
-
Type: Bug
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 65/100
coderedcorp/coderedcms#711 ·
-
Type: Bug
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 45/100
coderedcorp/coderedcms#713 · 1 Kommentar ·
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
coderedcorp/coderedcms#710 · 4 Kommentare ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 58/100
coderedcorp/coderedcms#709 ·
Alle Issues in coderedcorp/coderedcms
Ähnliche Issues
-
bug status/needs-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
prowler-cloud/prowler#12887 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
area: desktop platform: macos priority: p3 status: ready type: enhancement
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 92/100
use-agent-os/agent-os#3484 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 86/100
open-telemetry/opentelemetry-python-contrib#5113 · 2 Kommentare · 2 Reaktionen ·
Maintainer antworten meist innerhalb von 1 Tag
-
external
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 68/100
langchain-ai/docs#6255 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag