
    Nwg                     J    d dl mZ d dlmZ d dlmZ d dlmZ  G d de      Z	y)    )
DebugPanel)render_to_string)gettext_lazy)connectionsc                   H     e Zd ZdZdZdZ fdZd Zd Zd Z	d Z
d	 Z xZS )
HaystackDebugPanelzj
    Panel that displays information about the Haystack queries run while
    processing the request.
    HaystackTc                     t        |   |i | t        j                  j	                         D ci c]  }|t        t        |   j                        ! c}| _        d| _        g | _	        i | _
        y c c}w )Nr   )super__init__r   connections_infokeyslenqueries_offset_search_time_queries	_backends)selfargskwargsalias	__class__s       F/var/www/horilla/myenv/lib/python3.12/site-packages/haystack/panels.pyr   zHaystackDebugPanel.__init__   sr    $)&) %55::<
 3{5)1122
 
s   $A3c                     t        d      S )Nr	   _r   s    r   	nav_titlezHaystackDebugPanel.nav_title   s    }    c                 z   g | _         i | _        t        j                  j	                         D ]{  }t        |   j
                  | j                  |   d  }t        d |D              t        |      d| j                  |<   | j                   j                  |D cg c]  }||f c}       } | j                   j                  d        t        | j                  j                         D cg c]  }|d   	 c}      | _        t        | j                         }d||dk(  xr dxs d	| j                  fz  S c c}w c c}w )
Nc              3   8   K   | ]  }t        |d            yw)timeN)float).0qs     r   	<genexpr>z2HaystackDebugPanel.nav_subtitle.<locals>.<genexpr>%   s     !Kq%&	"2!Ks   )
time_spentr   c                     | d   d   S )N   start xs    r   <lambda>z1HaystackDebugPanel.nav_subtitle.<locals>.<lambda>*   s    1g r    keyr(   z%d %s in %.2fmsr*   queryr   )r   r   r   r   r   r   r   sumr   extendsortvaluesr   )r   r   search_queriesr&   dnum_queriess         r   nav_subtitlezHaystackDebugPanel.nav_subtitle   s%    11668 	GE(/77U8K8MNN!!KN!KK~.%DNN5! MM  n!E5!*!EF	G 	67$..:O:O:Q RQ< RS$--( A*77i$
 
 	
 "F !Ss   D3
)D8c                     t        d      S )NzSearch Queriesr   r   s    r   titlezHaystackDebugPanel.title3   s    !""r    c                      y)N r,   r   s    r   urlzHaystackDebugPanel.url6   s    r    c           	      ^   d}| j                   D ]}  \  }}||d<   |d   |d<   |j                  d      r+|d   j                  d      rt        |d   d         |d   d<   	 t        |d         | j                  z  dz  |d	<   ||d
<   ||d	   z  } | j                  j                         }|j                  t        | j                  j                         d       | j                   D cg c]  \  }}|	 c}}| j                  d       t        d|      S # t
        $ r d|d	<   Y w xY wc c}}w )Nr   r   query_stringr2   additional_kwargsresult_classr#   d   width_ratiostart_offsetc                     | d   d    S )Nr*   r(   r,   r-   s    r   r/   z,HaystackDebugPanel.content.<locals>.<lambda>R   s    1Q4;M:M r    r0   )backendsr   sql_timezpanels/haystack.html)r   getstrr$   r   ZeroDivisionErrorcontextcopyupdatesortedr   itemsr   )r   width_ratio_tallyr   r2   rM   ar&   s          r   contentzHaystackDebugPanel.content9   sP    MM 	6LE5"E'N">2E'Nyy,-,-11.AAD12>BBE-.~>)(-eFm(<t?P?P(PTW'Wm$ %6E.!}!55!	6$ ,,##%"NN((*0M +/--8$!QA8 --	
   6@@# % )'(m$) 9s   !D(D)D&%D&)__name__
__module____qualname____doc__namehas_contentr   r   r:   r<   r?   rT   __classcell__)r   s   @r   r   r      s3    
 DK
*# Ar    r   N)
debug_toolbar.panelsr   django.template.loaderr   django.utils.translationr   r   haystackr   r   r,   r    r   <module>r`      s!    + 3 6  QA QAr    