a
    Dg                     @   s   d dl mZ d dlmZ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 dlmZ d d	lmZ d d
lmZ G dd dedZG dd dZedddZdS )    )warn)MediaMediaDefiningClass)flatatt)render_to_string)cached_property)	mark_safe)slugify)hooks)
SearchForm)RemovedInWagtail70Warningc                   @   s^   e Zd ZdZdddZdd Zd	d
 Zdd Zdd Zdd Z	dd Z
dddZdddZdS )
SearchAreaz$wagtailadmin/shared/search_area.htmlN   c	           	      C   s^   |rt dtd || _|| _|p"|| _|| _|p:tt|| _|| _	|rTt
|| _nd| _d S )NzNThe `classnames` kwarg for SearchArea is deprecated - use `classname` instead.)categoryr   )r   r   labelurl	classname	icon_namer	   strnameorderr   attr_string)	selfr   r   r   r   Z
classnamesr   attrsr    r   S/var/www/lab.imftr.de/x/nb_venv/lib/python3.9/site-packages/wagtail/admin/search.py__init__   s    
zSearchArea.__init__c                 C   s&   t |tstS | j| jf|j|jfk S N
isinstancer   NotImplementedr   r   r   otherr   r   r   __lt__.   s    
zSearchArea.__lt__c                 C   s&   t |tstS | j| jf|j|jfkS r   r   r"   r   r   r   __le__3   s    
zSearchArea.__le__c                 C   s&   t |tstS | j| jf|j|jfkS r   r   r"   r   r   r   __gt__8   s    
zSearchArea.__gt__c                 C   s&   t |tstS | j| jf|j|jfkS r   r   r"   r   r   r   __ge__=   s    
zSearchArea.__ge__c                 C   s&   t |tstS | j| jf|j|jfkS r   r   r"   r   r   r   __eq__B   s    
zSearchArea.__eq__c                 C   s   dS )z
        Whether this search area should be shown for the given request; permission
        checks etc should go here. By default, search areas are shown all the time
        Tr   r   requestr   r   r   is_shownG   s    zSearchArea.is_shownc                 C   s$   |d u r|j | jS | j|kS d S r   )path
startswithr   r   r   r*   currentr   r   r   	is_activeN   s    zSearchArea.is_activec                 C   s6   t | j| j| j| j| j| j| j| |||d|dS )N)r   r   r   r   r   r   activeZquery_stringr*   )	r   templater   r   r   r   r   r   r0   )r   r*   queryr/   r   r   r   render_htmlT   s    

zSearchArea.render_html)Nr   r   r   Nr   )N)N)__name__
__module____qualname__r3   r   r$   r%   r&   r'   r(   r+   r0   r5   r   r   r   r   r      s          

r   )	metaclassc                   @   sJ   e Zd ZdddZedd Zdd Zddd	Zed
d Z	dddZ
dS )SearchNc                 C   s   || _ || _d S r   register_hook_nameconstruct_hook_name)r   r<   r=   r   r   r   r   f   s    zSearch.__init__c                 C   s   t dd t| jD S )Nc                 S   s   g | ]
}| qS r   r   ).0fnr   r   r   
<listcomp>l       z2Search.registered_search_areas.<locals>.<listcomp>)sortedr
   	get_hooksr<   )r   r   r   r   registered_search_areasj   s    zSearch.registered_search_areasc                    s    fdd| j D S )Nc                    s   g | ]}|  r|qS r   )r+   r>   itemr2   r   r   r@   o   rA   z3Search.search_items_for_request.<locals>.<listcomp>)rD   r)   r   r2   r   search_items_for_requestn   s    zSearch.search_items_for_requestc                    s    fdd|  D S )Nc                    s   g | ]}|  r|qS r   )r0   rE   r/   r*   r   r   r@   r   s   z(Search.active_search.<locals>.<listcomp>)rG   r.   r   rH   r   active_searchq   s    zSearch.active_searchc                 C   s    t  }| jD ]}||j7 }q|S r   )r   rD   media)r   rJ   rF   r   r   r   rJ   x   s    
zSearch.mediac           	      C   s|   |  |}t|j}d}| r*|jd }| jrLt| jD ]}||| q<g }|D ]}||	||| qTt
d|S )Nr   q)rG   r   GETZis_validZcleaned_datar=   r
   rC   appendr5   r   join)	r   r*   r/   Zsearch_areasformr4   r?   Zrendered_search_areasrF   r   r   r   r5      s    


zSearch.render_html)N)N)N)r6   r7   r8   r   r   rD   rG   rI   propertyrJ   r5   r   r   r   r   r:   e   s   



r:   Zregister_admin_search_areaZconstruct_searchr;   N)warningsr   Zdjango.formsr   r   Zdjango.forms.utilsr   Zdjango.template.loaderr   Zdjango.utils.functionalr   Zdjango.utils.safestringr   Zdjango.utils.textr	   Zwagtailr
   Zwagtail.admin.forms.searchr   Zwagtail.utils.deprecationr   r   r:   Zadmin_search_areasr   r   r   r   <module>   s   V/