a
    ÆZEgw  ã                   @   s|   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 dlmZ d dlmZ d d	lmZ G d
d„ deƒZdS )é    N)Úforms)Úsite)ÚForeignKeyRawIdWidget)Úrender_to_string)Ústatic)Úreverse)Ú	mark_safe)Ú	Truncatorc                       sL   e Zd ZdZdZdZdd„ ZeeƒZdd„ Z	d‡ fdd„	Z
dd	d
„Z‡  ZS )ÚForeignKeySearchInputzj
    Widget for displaying ForeignKeys in an autocomplete search input
    instead in a <select> box.
    Nc                 C   s.   t dƒt dƒt dƒg}tjdt dƒfi|d�S )Nz'django_extensions/js/jquery.bgiframe.jsz(django_extensions/js/jquery.ajaxQueue.jsz+django_extensions/js/jquery.autocomplete.jsÚallz-django_extensions/css/jquery.autocomplete.css)ÚcssZjs)r   r   ZMedia)ÚselfZjs_files© r   úX/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/admin/widgets.pyÚ_media   s    ýþzForeignKeySearchInput._mediac                 C   s8   | j  ¡ j}| j jjjf i ||i¤Ž}t|ƒjddd�S )Né   z...)Útruncate)ÚrelZget_related_fieldÚnameÚmodelZ_default_managerÚgetr	   Úwords)r   ÚvalueÚkeyÚobjr   r   r   Úlabel_for_value&   s    z%ForeignKeySearchInput.label_for_valuec                    s   || _ tƒ  |t|¡ d S )N)Úsearch_fieldsÚsuperÚ__init__r   )r   r   r   Úattrs©Ú	__class__r   r   r   ,   s    zForeignKeySearchInput.__init__c              	   C   s  |d u ri }| j jj}|j}|j ¡ }td||f ƒ}| jsLtj	 
|d¡| _|  ¡ }	|	rvdd dd„ |	 ¡ D ƒ¡ }
nd}
d|vrŠd	|d< tj | |||¡g}|r®|  |¡}nd}|
|| jd
 | j¡||||dœ}| t| jpòd||f d| df|ƒ¡ | ¡  td |¡ƒS )Nzadmin:%s_%s_changelistzforeignkey_autocomplete/ú?z&amp;c                 S   s   g | ]\}}d ||f ‘qS )z%s=%sr   )Ú.0ÚkÚvr   r   r   Ú
<listcomp>;   ó    z0ForeignKeySearchInput.render.<locals>.<listcomp>Ú ÚclassZvForeignKeyRawIdAdminFieldú,)ÚurlÚrelated_urlÚsearch_pathr   Ú	app_labelÚ
model_nameÚlabelr   z;django_extensions/widgets/%s/%s/foreignkey_searchinput.htmlz8django_extensions/widgets/%s/foreignkey_searchinput.htmlz5django_extensions/widgets/foreignkey_searchinput.html)r   r   Z_metar.   Zobject_nameÚlowerr   r-   ÚurllibÚparseÚurljoinZurl_parametersÚjoinÚitemsr   Z	TextInputÚrenderr   r   Úappendr   Úwidget_templater   )r   r   r   r   ZrendererÚoptsr.   r/   r,   Úparamsr+   Úoutputr0   Úcontextr   r   r   r7   0   sH    


ø

ýüzForeignKeySearchInput.render)N)NN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r9   r-   r   ÚpropertyZmediar   r   r7   Ú__classcell__r   r   r    r   r
      s   r
   )r2   Zdjangor   Zdjango.contrib.admin.sitesr   Zdjango.contrib.admin.widgetsr   Zdjango.template.loaderr   Zdjango.templatetags.staticr   Zdjango.urlsr   Zdjango.utils.safestringr   Zdjango.utils.textr	   r
   r   r   r   r   Ú<module>   s   