3

\                 @   sP   d dl mZ d dlmZ d dlmZ d dlmZ eddZdd Z	dd
dZ
d	S )    )settings)ImproperlyConfigured)import_string)	get_classzdashboard.navNodec             C   sH   t tj}g }x4|D ],}|j| }|r|j s6|j r|j| qW |S )zA
    Return the visible navigation nodes for the passed user
    )create_menur   OSCAR_DASHBOARD_NAVIGATIONfilterhas_childrenZ
is_headingappend)user	all_nodesZvisible_nodesnodeZfiltered_node r   4/var/www/html/oscar2019/oscar/apps/dashboard/menu.py	get_nodes
   s    


r   Nc             C   s   g }t tj}x| D ]}y|d }W n tk
r@   tdY nX |jdg }|r~t||jdd|jd|d}t||d n<t||jdd|jd	d|jd
d|jdd|jd|d}|dkr|j| q|j	| qW |S )zE
    Create the navigation nodes based on a passed list of dicts
    labelz-No label specified for menu item in dashboardchildreniconN	access_fn)r   r   r   )parenturl_name
url_kwargsurl_args)r   r   r   r   r   r   )
r   r   'OSCAR_DASHBOARD_DEFAULT_ACCESS_FUNCTIONKeyErrorr   getr   r   r   	add_child)
menu_itemsr   nodesZ
default_fnZ	menu_dictr   r   r   r   r   r   r      s.    



r   )N)django.confr   django.core.exceptionsr   django.utils.module_loadingr   oscar.core.loadingr   r   r   r   r   r   r   r   <module>   s   
