
    >Tf                     h    d dl 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ddZdS )    N)settings)ObjectDoesNotExist)gettext)registry)DEFAULT_DASHBOARD)get_dashboardget_default_dashboardget_widget_classregister_widgetc                     | j                             dd          d         }| d| j         }| t          d         |<   | S )z<
    Decorator for registering a DashboardWidget class.
    .   )maxsplitr   widgets)
__module__split__name__r   )cls	app_labellabels      ;/var/www/html/netbox-4.1.3/netbox/extras/dashboard/utils.pyr   r      sL     $$S1$55a8I))3<))E!$HYJ    c                     	 t           d         |          S # t          $ r1 t          t          d                              |                     w xY w)zK
    Return a registered DashboardWidget class identified by its name.
    r   z!Unregistered widget class: {name}name)r   KeyError
ValueError_formatr   s    r   r
   r
      s_    S	"4(( S S S>??FFDFQQRRRSs	    ;Ac                     | j         rt                      }nB	 | j        }n9# t          $ r, t                      }| |_        |                                 Y nw xY w|S )z_
    Return the Dashboard for a given User if one exists, or generate a default dashboard.
    )is_anonymousr	   	dashboardr   usersave)r#   r"   s     r   r   r   '   su      	)++			II! 	 	 	-//I!INNN		 s     3AAc           
         ddl m}  |            }| pt          j        pt          } | D ]}t	          t          j                              }|j                            ||d         |d         |	                    d          |	                    d          d           |d         |	                    d	          |	                    d
          |	                    di           d|j
        |<   |S )Nr   )	Dashboardwidthheightxy)idwhr)   r*   widgettitlecolorconfig)classr/   r0   r1   )extras.modelsr&   r   r   struuiduuid4layoutappendgetr1   )r1   r&   r"   r.   r+   s        r   r	   r	   9   s    ''''''	IFx1F5FF 
 
!CC!
 !
 	 	 	 H%ZZ((ZZ((jj2..	 
  
	 r   )N)r5   django.confr   django.core.exceptionsr   django.utils.translationr   r   netbox.registryr   extras.constantsr   __all__r   r
   r   r	    r   r   <module>rA      s                 5 5 5 5 5 5 1 1 1 1 1 1 $ $ $ $ $ $ . . . . . .  S S S  $     r   