
    &g                         d Z ddlmZ 	 ddlmZ ddlmZ 	 ddl	m
Z
 ddlmZ ddlmZ d Zd	 Zd
 Zd Zy# e$ r	 ddlmZ Y 3w xY w# e$ r	 ddlm
Z
 Y 7w xY w)z
Dashboard utilities.
    )settings)import_module)capfirst)reverse)Registry)get_admin_sitec                 ^    |dk(  rt        |       S |dk(  rt        |       S t        d|z        )z[
    Returns the dashboard that match the given ``location``
    (index or app_index).
    index	app_indexz Invalid dashboard location: "%s")get_index_dashboardget_app_index_dashboard
ValueError)contextlocations     T/var/www/html/djangosite/lib/python3.12/site-packages/admin_tools/dashboard/utils.pyget_dashboardr      s;    
 7"7++	[	 &w//
7(B
CC    c                    t        | t              r|j                  d      j                  }| D ]  }|j	                  dd      \  }}t        |      }t        ||      }t        d|j                  z        }|j                  |      sY| |   j	                  dd      \  }}	t        |      }t        ||	      c S  n,| j	                  dd      \  }}	t        |      }t        ||	      S t        d| z        )Nrequest.   z%s:indexz!Dashboard matching "%s" not found)
isinstancedictgetpathrsplitr   getattrr   name
startswithr   )
dashboard_clsr   curr_urlkeyadmin_site_modadmin_site_inst
admin_site	admin_urlmodinsts
             r   _get_dashboard_clsr)       s    -&;;y)..  	*C.1jja.@+NO*>:N AJ
Z__ <=I""9-)#.55c1=	T#C(sD))	* "((a0	TC sD!!
8=H
IIr   c                 B     t        t        t        dd      |              S )M
    Returns the admin dashboard defined by the user or the default one.
    ADMIN_TOOLS_INDEX_DASHBOARDz6admin_tools.dashboard.dashboards.DefaultIndexDashboard)r)   r   r   r   s    r   r   r   3   s.    g%@ 	  r   c                    | d   d   }g }d}|d   }t        |       }|j                  j                         D ]  \  }}|d   |j                  j                  k(  s#|j
                  j                  |j                  j                        }|j
                  d| |j                  j                  z   }|d   D ]T  }	|	d   t        |j                  j                        k(  s)|j
                  d|j                  }
|j                  |
       V  |+|t        j                  v rt        j                  |   ||      S  t        t        t        d	d
      |       ||      S )r+   app_listr   Nr   r-   	app_labelmodelsr   ADMIN_TOOLS_APP_INDEX_DASHBOARDz9admin_tools.dashboard.dashboards.DefaultAppIndexDashboard)r   	_registryitems_metar0   
__module__findr   verbose_name_plural__name__appendr   registryr)   r   r   )r   app
model_listr0   	app_titler%   modelmodel_adminsplitmr'   s              r   r   r   >   s[   
 *
a
 CJIFI0J(2288: +{{u{{444$$))%++*?*?@E((51EKK4I4III] +V9)H)H II%*%5%5u~~FC%%c*+	+ h.?.?!?  +IzBBg)C 	 :	' 'r   N)__doc__django.confr   	importlibr   ImportErrordjango.utils.importlibdjango.utils.textr   django.urlsr   django.core.urlresolversadmin_tools.dashboard.registryr   admin_tools.utilsr   r   r)   r   r    r   r   <module>rN      sj    !5' '1# 4 ,	DJ&'o  545  101s    6 A AAAA