
    7i!                         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e      Zy)    N)forms)site)ForeignKeyRawIdWidget)render_to_string)static)reverse)	mark_safe)	Truncatorc                   J     e Zd ZdZdZdZed        Zd Zd fd	Z	ddZ
 xZS )	ForeignKeySearchInputzj
    Widget for displaying ForeignKeys in an autocomplete search input
    instead in a <select> box.
    Nc                     t        d      t        d      t        d      g}t        j                  dt        d      fi|      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)cssjs)r   r   Media)selfjs_filess     r/home/cursorai/projects/telegram-earn/backend/venv/lib/python3.12/site-packages/django_extensions/admin/widgets.pymediazForeignKeySearchInput.media   sM     <==>@A
 {{ OPRS
 	
    c                     | j                   j                         j                  } | j                   j                  j                  j
                  di ||i}t        |      j                  dd      S )N   z...)truncate )relget_related_fieldnamemodel_default_managergetr
   words)r   valuekeyobjs       r   label_for_valuez%ForeignKeySearchInput.label_for_value&   s[    hh((*//1dhhnn--11AS%LA~##B#77r   c                 >    || _         t        | 	  |t        |       y N)search_fieldssuper__init__r   )r   r   r(   attrs	__class__s       r   r*   zForeignKeySearchInput.__init__,   s    *dE*r   c           
      f   |i }| j                   j                  j                  }|j                  }|j                  j                         }t        d|d|d      }| j                  s%t        j                  j                  |d      | _        | j                         }	|	r;ddj                  |	j                         D 
cg c]  \  }
}|
d| c}}
      z   }nd}d	|vrd
|d	<   t        j                  j!                  | |||      g}|r| j#                  |      }nd}||| j                  dj                  | j$                        ||||d}|j'                  t)        | j*                  xs d|d|dd|z  df|             |j                          t-        dj                  |            S c c}}
w )Nzadmin:__changelistzforeignkey_autocomplete/?z&amp;= classvForeignKeyRawIdAdminField,)urlrelated_urlsearch_pathr(   	app_label
model_namelabelr   zdjango_extensions/widgets//z/foreignkey_searchinput.htmlz8django_extensions/widgets/%s/foreignkey_searchinput.htmlz5django_extensions/widgets/foreignkey_searchinput.html)r   r   _metar9   object_namelowerr   r8   urllibparseurljoinurl_parametersjoinitemsr   	TextInputrenderr%   r(   appendr   widget_templater	   )r   r   r"   r+   rendereroptsr9   r:   r7   paramskvr6   outputr;   contexts                   r   rG   zForeignKeySearchInput.render0   s   =Exx~~##NN	%%++-
)ZPQ%||337 D $$&6<<>%R>41aA&6>%RSSCC%9E'N//((tUEBC((/EE &++ XXd&8&89"$	
 	$$  !*.N K 
	
 	))O &Ss   ?F-r'   )NN)__name__
__module____qualname____doc__rI   r8   propertyr   r%   r*   rG   __classcell__)r,   s   @r   r   r      s5     OK

 

8+4*r   r   )r@   djangor   django.contrib.admin.sitesr   django.contrib.admin.widgetsr   django.template.loaderr   django.templatetags.staticr   django.urlsr   django.utils.safestringr	   django.utils.textr
   r   r   r   r   <module>r_      s/      + > 3 -  - 'V*1 V*r   