
    69h                        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mZ d dlmZmZ d d	lmZmZ d d
lmZ 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&m'Z' d dl(m)Z) d dl*m+Z+m,Z, d dl-m.Z. d dl/m0Z0 d dl1m2Z2 d dl3m4Z4  e4d e d      dd       Z5e&e_6        e'e_7         G d de,e+e      Z G d de,e      Z G d  d!e,e
      Z	y")#    )update_wrapper)Optional)forms)
ModelAdmin)StackedInline)TabularInline)displayhelpers)BLANK_CHOICE_DASHModel)HttpRequestHttpResponse)redirect)TemplateResponse)
URLPatternpath)	mark_safe)gettext_lazy)View)UnfoldModelAdminChecks)UnfoldAdminFieldUnfoldAdminReadonlyField)
ActionForm)ActionModelAdminMixinBaseModelAdminMixin)FORMFIELD_OVERRIDES_INLINE)FieldsetsType
ChangeList)UnfoldBooleanWidgetzaction-selectzSelect record)classz
aria-labelc                      y)NF )values    G/var/www/html/backend/venv/lib/python3.12/site-packages/unfold/admin.py<lambda>r&       s        c            	           e Zd ZeZdZdZdZdZdZ	dZ
dZdZdZdZdZdZdZdZi ZdZeZ	 ddedeeeef      def fdZddedef fd	Zdeeeee f   d
f   fdZ!de"e#   f fdZ$de#fdZ%e&fdef fdZ' e( e)e*jW                  dd                  de,fd       Z-dede,de.f fdZ/	 ddede,dee   de.f fdZ0d Z1 xZ2S )r   r#   FTNrequestextra_contextreturnc                 <   t        j                         }| j                  |      D ]  }t        |t        t
        f      rXt        |d   d      rIt        |d   j                  d      r0|t        j                  |d   j                  j                        z  }qt        |d      s~t        |j                  d      s|t        j                  |j                  j                        z  } |si }|j                  d| j                  |z   i       t        | -  ||      S )N   
form_classMediamedia)r   r/   get_list_filter
isinstancetuplelisthasattrr.   updater0   superchangelist_view)selfr)   r*   additional_mediafilter	__class__s        r%   r8   zModelAdmin.changelist_view<   s     !;;=**73 	IF6E4=1F1I|4F1I00': EKKq	0D0D0J0J$KK .76;L;Lg3V EKK0A0A0G0G$HH 	I M&66	
 w&w>>r'   c                 X    |s| j                   r| j                   S t        | 	  ||      S N)add_fieldsetsr7   get_fieldsets)r9   r)   objr<   s      r%   r@   zModelAdmin.get_fieldsetsV   s,    t))%%%w$Wc22r'   .c                 6    | j                   dS | j                   S )z
        Method to get custom views for ModelAdmin with their urls

        Format of custom_urls item:
            ("path_to_view", "name_of_view", view_itself)
        r#   )custom_urls)r9   s    r%   get_custom_urlszModelAdmin.get_custom_urls[   s      %%-rC43C3CCr'   c           	          t         	          } fd} j                         D cg c]  } j                  |       }} j	                         D cg c]4  }t        |j
                   ||j                        |j                        6 }} j                         D cg c]8  }t        d|j
                   d ||j                        |j                        : }} j                         D cg c]7  }t        d|j
                    ||j                        |j                        9 }}||z   |z   |z   |z   S c c}w c c}w c c}w c c}w )Nc                 8      fd}|_         t        |       S )Nc                  F     j                   j                        | i |S r>   )
admin_site
admin_view)argskwargsr9   views     r%   wrapperz2ModelAdmin.get_urls.<locals>.wrap.<locals>.wrapperh   s$    7t11$7HHHr'   )model_adminr   )rL   rM   r9   s   ` r%   wrapz!ModelAdmin.get_urls.<locals>.wrapg   s     I #'G!'400r'   namez<path:object_id>//)
r7   get_urlsrD   _path_from_custom_url_get_base_actions_listr   methodaction_name_get_base_actions_detail_get_base_actions_row)
r9   urlsrO   
custom_urlrC   actionactions_list_urlsaction_detail_urlsaction_row_urlsr<   s
   `        r%   rS   zModelAdmin.get_urlsd   s~   w!	1 #224
 &&z2
 
 557
  V]]#''
 
 779
  #FKK=2V]]#''
 
 446
  #FKK=1V]]#''
 
   !! 		
A




s   D>9E!=E2<Ec                 h    t        |d   | j                  j                  |d         d| i|d         S )Nr      rN   r-   rP   )r   rH   rI   )r9   r[   s     r%   rT   z ModelAdmin._path_from_custom_url   s;    qMOO&&z!}5D!A	
 	
r'   c                 @    dt        d      fg}t        | 	  ||      S )N zSelect action)_r7   get_action_choices)r9   r)   default_choicesr<   s      r%   re   zModelAdmin.get_action_choices   s)     / 234w)'?CCr'   action_toggle_allr-   )descriptionrA   c                 p    t         j                  t        j                  t	        |j
                              S r>   )checkboxrenderr
   ACTION_CHECKBOX_NAMEstrpk)r9   rA   s     r%   action_checkboxzModelAdmin.action_checkbox   s!    w;;S[IIr'   c                 t    t         |   ||      }d|j                  v rt        |j                  d         S |S Nnext)r7   response_changeGETr   )r9   r)   rA   resr<   s       r%   rs   zModelAdmin.response_change   s9    g%gs3W[[ GKK/00
r'   post_url_continuec                 v    t         |   |||      }d|j                  v rt        |j                  d         S |S rq   )r7   response_addrt   r   )r9   r)   rA   rv   ru   r<   s        r%   rx   zModelAdmin.response_add   s>     g"7C1BCW[[ GKK/00
r'   c                     t         S r>   r   )r9   r)   rK   s      r%   get_changelistzModelAdmin.get_changelist   s    r'   r>   )3__name__
__module____qualname__r   action_formrC   r?   list_horizontal_scrollbar_toplist_filter_submitlist_filter_sheetlist_fullwidthlist_disable_select_alllist_before_templatelist_after_templatechange_form_before_templatechange_form_after_template!change_form_outer_before_template change_form_outer_after_templatecompressed_fieldsreadonly_preprocess_fieldswarn_unsaved_formr   checks_classr   r   dictrm   r   r8   r   r@   r3   r   rD   r4   r   rS   rT   r   re   r	   r   rj   rk   r   ro   r   rs   rx   rz   __classcell__)r<   s   @r%   r   r   (   s   KKM$)!N#"&!%(,%'+$!#)L OS?"?3;DcN3K?	?43[ 3} 3
DuS#t^'<c'A!B D0
$z* 0
d
: 
 5FD"D 8??3F#JKLJ5 J MJ{  <  TX").CKC=	r'   r   c                       e Zd ZeZi ZdZdZy)r   NFr{   r|   r}   r   formfield_overridesr   ordering_fieldhide_ordering_fieldr#   r'   r%   r   r          4!#Nr'   r   c                       e Zd ZeZi ZdZdZy)r   NFr   r#   r'   r%   r   r      r   r'   r   N)8	functoolsr   typingr   djangor   django.contrib.adminr   BaseModelAdminr   BaseStackedInliner   BaseTabularInliner	   r
   django.db.modelsr   r   django.httpr   r   django.shortcutsr   django.template.responser   django.urlsr   r   django.utils.safestringr   django.utils.translationr   rd   django.viewsr   unfold.checksr   unfold.fieldsr   r   unfold.formsr   unfold.mixinsr   r   unfold.overridesr   unfold.typingr   unfold.viewsr   unfold.widgetsr    rj   
AdminFieldAdminReadonlyFieldr#   r'   r%   <module>r      s    $   = C C 1 5 1 % 5 ( - 6  0 D # D 7 ' # . (  & 5 O$&;^ Od '):   '):  r'   