U
    »j*g]  ã                   @   s*   d dl T d dlmZ G dd„ dejƒZdS )é    )Ú*)Úcmf_full_searchc                   @   s,   e Zd ZdZejjdg Zeddd„ƒZdS )ÚCmfFullSearchTÚsdesk_fulltext_searchFNc                    s@   ˆ dkrg S ‡ fdd„}	t jjf ˆ |||||||	dœ|—Ž}
|
S )N)ÚCmfDocumentÚCmfSDeskRequestTypeÚ
CmfProjectc                    s„   d}|   ddg¡ | jr€| jjdkr€ˆ dkrB| j d¡rB|  ¡ }n>ˆ dkrb| j d¡rb| j ¡ }nˆ dkr€| j d¡r€| j ¡ }|S )NFÚprojectzproject.logic_prefixzproject.servicedeskr   r   r   )Zload_fieldsr	   Zlogic_prefixÚidÚ
startswithZ_sdesk_check_access)ÚobjÚcheck©Ú
model_name© ú/./modules/servicedesk/models/cmf_full_search.pyÚcheck_access   s    

z9CmfFullSearch.sdesk_fulltext_search.<locals>.check_access)r   Ú
field_nameÚsearch_queryÚonly_idsÚsliceÚfieldsÚno_analitycsr   )Zmodelsr   Zfulltext_search)Úclsr   r   r   r   r   r   r   Úkwargsr   Z
search_resr   r   r   r      s       ÿÿz#CmfFullSearch.sdesk_fulltext_search)FNNF)	Ú__name__Ú
__module__Ú__qualname__Z	api_allowr   r   Zapi_methodsÚclassmethodr   r   r   r   r   r      s   ÿr   N)Zcmf.includeZ
cmf.modelsr   r   r   r   r   r   Ú<module>   s   