
    DvgH                        d dl Z d dlmZ d dlmZmZmZmZmZm	Z	 d dl
mZ d dlmZmZ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 d d
lmZmZ d dlmZ d dlm Z  d dlm!Z" dZ# G d dej$                  Z% G d d          Z& G d d          Z' G d d          Z( G d d          Z) G d d          Z* G d d          Z+ G d de&          Z, G d d e'          Z- G d! d"ej.        j/                  Z0dS )#    N)forms)display_for_fieldflatten_fieldsetshelp_text_for_fieldlabel_for_fieldlookup_fieldquote)ObjectDoesNotExist)ForeignObjectRelManyToManyRelOneToOneField)flatatt)capfirstlinebreaksbr)NoReverseMatchreverse)cached_property)conditional_escapeformat_html)	mark_safe)gettext)gettext_lazy_selected_actionc            	           e Zd Z ej         ed                    Z ej        ddd ej        ddi                    Z	d	S )

ActionFormzAction:)label Fr   classzselect-across)r   requiredinitialwidgetN)
__name__
__module____qualname__r   ChoiceField_actionBooleanFieldHiddenInputselect_across     Y/var/www/pixelcanvas.ch/venv/lib/python3.11/site-packages/django/contrib/admin/helpers.pyr   r      sb        UQQy\\222F&E& u '?!;<<	  MMMr,   r   c                       e Zd Z	 	 d
dZd Zd Zed             Zed             Zed             Z	ed             Z
ed	             ZdS )	AdminFormNc                     |c| _         | _        fd|                                D             | _        || _        |d}|| _        d S )Nc                 D    g | ]\  }}|         fd |D             dS )c                      g | ]
}|         S r+   r+   ).0fforms     r-   
<listcomp>z1AdminForm.__init__.<locals>.<listcomp>.<listcomp>3   s    8W8W8WQa8W8W8Wr,   )fielddependenciesr+   )r3   
field_namer8   r5   s      r-   r6   z&AdminForm.__init__.<locals>.<listcomp>2   sO     $
 $
 $
(
L :&8W8W8W8W,8W8W8WXX$
 $
 $
r,   r+   )r5   	fieldsetsitemsprepopulated_fieldsmodel_adminreadonly_fields)selfr5   r:   r<   r>   r=   s    `    r-   __init__zAdminForm.__init__)   so     %))!	4>$
 $
 $
 $
,?,E,E,G,G$
 $
 $
  '" O.r,   c                 V    d| j         j         d| j        j         j         d| j        dS )N<z: form=z fieldsets=>)	__class__r$   r5   r:   r?   s    r-   __repr__zAdminForm.__repr__;   sF    -+ - -I'4- -- - -	
r,   c              #   h   K   | j         D ]'\  }}t          | j        |f| j        | j        d|V  (d S )N)r>   r=   )r:   Fieldsetr5   r>   r=   r?   nameoptionss      r-   __iter__zAdminForm.__iter__B   sp      !^ 	 	MD'	 !% 4 ,	 
      	 	r,   c                     | j         j        S N)r5   errorsrE   s    r-   rO   zAdminForm.errorsL       yr,   c                     | j         j        S rN   )r5   non_field_errorsrE   s    r-   rR   zAdminForm.non_field_errorsP   s    y))r,   c                     | j         j        S rN   )r5   fieldsrE   s    r-   rT   zAdminForm.fieldsT   rP   r,   c                     | j         j        S rN   )r5   is_boundrE   s    r-   rV   zAdminForm.is_boundX   s    y!!r,   c                 <    | j         j        }| D ]}||j        z  }|S rN   )r5   mediar?   rX   fss      r-   rX   zAdminForm.media\   s-    	 	 	BRXEEr,   NN)r"   r#   r$   r@   rF   rL   propertyrO   rR   rT   rV   rX   r+   r,   r-   r/   r/   (   s         / / / /$
 
 
       X  * * X*     X  " " X"   X  r,   r/   c                   T    e Zd Z	 	 	 	 	 	 ddZed             Zed             Zd ZdS )rH   Nr+   c                     || _         ||c| _        | _        d                    |          | _        || _        || _        || _        d S )N )r5   rJ   rT   joinclassesdescriptionr=   r>   )r?   r5   rJ   r>   rT   ra   rb   r=   s           r-   r@   zFieldset.__init__e   sL     	!%v	4;xx((&&.r,   c                 (    t          j                    S rN   )r   MediarE   s    r-   rX   zFieldset.mediav   s    {}}r,   c                 d     t           fd j        j        D                       rdS d j        v S )Nc                 "    g | ]}|j         v S r+   )rT   r3   r7   r?   s     r-   r6   z+Fieldset.is_collapsible.<locals>.<listcomp>|   s     CCC$CCCr,   Fcollapse)anyr5   rO   ra   rE   s   `r-   is_collapsiblezFieldset.is_collapsiblez   s?    CCCC$)2BCCCDD 	5T\))r,   c              #   f   K   | j         D ]&}t          | j        || j        | j                  V  'd S )Nr=   )rT   	Fieldliner5   r>   r=   )r?   r7   s     r-   rL   zFieldset.__iter__   sX      [ 	 	E	5$"6DDT      	 	r,   )Nr+   r+   r+   NN)	r"   r#   r$   r@   r\   rX   r   rj   rL   r+   r,   r-   rH   rH   d   s         / / / /"   X * * _*
    r,   rH   c                   "    e Zd ZddZd Zd ZdS )rm   Nc                      | _         t          |d          rt          |t                    r	|g _        n| _        t           fd j        D                         _        | _        |d}| _        d S )NrL   c              3   l   K   | ].}|j         j        v oj         j        |         j        j        V  /d S rN   )r5   rT   r!   	is_hiddenrg   s     r-   	<genexpr>z%Fieldline.__init__.<locals>.<genexpr>   sV       )
 )
 TY%%R$)*:5*A*H*R)
 )
 )
 )
 )
 )
r,   r+   )	r5   hasattr
isinstancestrrT   allhas_visible_fieldr=   r>   )r?   r5   r7   r>   r=   s   `    r-   r@   zFieldline.__init__   s    	uj)) 	 Zs-C-C 	  'DKKDK%( )
 )
 )
 )
)
 )
 )
 &
 &
 "
 '" O.r,   c              #      K   t          | j                  D ]O\  }}|| j        v r$t          | j        ||dk    | j                  V  2t          | j        ||dk              V  Pd S )Nr   )is_firstr=   )ry   )	enumeraterT   r>   AdminReadonlyFieldr5   r=   
AdminField)r?   ir7   s      r-   rL   zFieldline.__iter__   s      !$+.. 	F 	FHAu,,,(IuQTEU       !EQ!VEEEEEEE	F 	Fr,   c                      t          d                     fd j        D                                           d                    S )N
c              3   r   K   | ]1}|j         vj        |         j                                        V  2d S rN   )r>   r5   rO   as_ul)r3   r4   r?   s     r-   rr   z#Fieldline.errors.<locals>.<genexpr>   sR        D000 	!#))++0000 r,   )r   r`   rT   striprE   s   `r-   rO   zFieldline.errors   s[    II         eDkk
 
 	
r,   r[   )r"   r#   r$   r@   rL   rO   r+   r,   r-   rm   rm      sI        / / / /F F F
 
 
 
 
r,   rm   c                        e Zd Zd Zd Zd ZdS )r|   c                     ||         | _         || _        t          | j         j         j        t          j                  | _        d| _        d S NF)r7   ry   rt   r!   r   CheckboxInputis_checkboxis_readonly)r?   r5   r7   ry   s       r-   r@   zAdminField.__init__   s?    %[
 %dj&6&=u?RSS r,   c                    g }t          | j        j                  }| j        r|                    d           | j        j        j        r|                    d           | j        s|                    d           |rdd                    |          ini }| j                            t          |          || j        rdnd           S )NvCheckboxLabelr   inliner   r_   r   )contentsattrslabel_suffix)
r   r7   r   r   appendr   ry   r`   	label_tagr   )r?   ra   r   r   s       r-   r   zAdminField.label_tag   s    %dj&677 	-NN+,,,:$ 	'NN:&&&} 	%NN8$$$07?#((7++,,R z##x((#/9T $ 
 
 	
r,   c                 X    t          | j        j                                                  S rN   )r   r7   rO   r   rE   s    r-   rO   zAdminField.errors   s!    *0022333r,   N)r"   r#   r$   r@   r   rO   r+   r,   r-   r|   r|      sA        ! ! !
 
 
&4 4 4 4 4r,   r|   c                   (    e Zd ZddZd Zd Zd ZdS )r{   Nc                 L   t          |          r|j        dk    r|j        nd}n|}|j        j        r!||j        j        v r|j        j        |         }nt	          ||j        j        ||          }|j        j        r!||j        j        v r|j        j        |         }nt          ||j        j                  }||j        v r|j        |         j	        j
        }nd}|||||d| _        || _        || _        || _        d| _        d| _        |                                | _        d S )Nz<lambda>r   r5   F)rJ   r   	help_textr7   rq   T)callabler"   _metalabelsr   model
help_textsr   rT   r!   rq   r7   r5   r=   ry   r   r   get_empty_value_displayempty_value_display)	r?   r5   r7   ry   r=   
class_namer   r   rq   s	            r-   r@   zAdminReadonlyField.__init__   sB    E?? 	+0>Z+G+GRJJJ: 	Utz/@!@!@J%j1EE#E4:+;[tTTTE:  	JZ4:3H%H%H
-j9II+J
8HIIIDKE*1;III ""
 

 	&  #.#F#F#H#H   r,   c                     i }| j         sd|d<   | j        d         }t          dt          |          t	          |          | j        j                  S )Nr   r   r   z<label{}>{}{}</label>)ry   r7   r   r   r   r5   r   )r?   r   r   s      r-   r   zAdminReadonlyField.label_tag   sU    } 	&%E'N
7##ENNUOOI"	
 
 	
r,   c                    d|j         j        j        d|j         j        j        d}	 t	          |t          |j                  g| j        j        j	                  }t          d||          S # t          $ r t          |          cY S w xY w)Nzadmin:r&   _change)argscurrent_appz<a href="{}">{}</a>)r   r   	app_label
model_namer   r	   pkr=   
admin_siterJ   r   r   ru   )r?   remote_field
remote_objurl_nameurls        r-   get_admin_urlz AdminReadonlyField.get_admin_url   s     $...$///
	#JM**+ ,7<  C
 4c:FFF 	# 	# 	#z??"""	#s   AA. .B
	B
c                 v   ddl m} | j        d         | j        j        | j        }}}	 t          |||          \  }}}|| j        j        v r>| j        |         j        j        }t          |dd          r|
                    ||          S |At          |dd          r ||          }	nt          |d          r|}	nt          |          }	nt          |j        t                    r=|;d                    t#          t$          |                                                    }	nUt          |j        t(          t*          f          r||                     |j        |          }	nt/          ||| j                  }	t          |	          }	n$# t2          t4          t6          f$ r
 | j        }	Y nw xY wt9          |	          S )	Nr   )_boolean_iconr7   	read_onlyFboolean__html__z, ),django.contrib.admin.templatetags.admin_listr   r7   r5   instancer=   r   rT   r!   getattrrenderrs   r   rt   r   r   r`   mapru   rv   r   r   r   r   r   AttributeError
ValueErrorr
   r   )
r?   r   r7   objr=   r4   attrvaluer!   result_reprs
             r-   r   zAdminReadonlyField.contents
  s   NNNNNN JwI  s
	8)%kBBNAtU 	(((5)/6 6;66 7!==666y4E22 :"/-"6"6KKuj11 :&+&25&9&9anm<< XAR"&))CUYY[[,A,A"B"BKKq~0@-/PQQX)"&"4"4Q^U"K"KKK"3E1d>V"W"WK*;777 
,>? 	3 	3 	32KKK	38 "+...s   F F)(F)rN   )r"   r#   r$   r@   r   r   r   r+   r,   r-   r{   r{      sZ        $I $I $I $IL

 

 

# # #&/ &/ &/ &/ &/r,   r{   c                       e Zd ZdZ	 	 	 	 	 	 	 ddZd Zd Zd Zed             Z	e
d	             Zd
 Zed             Zed             Zed             ZdS )InlineAdminFormSetzI
    A wrapper around an inline formset for use in the admin system.
    NTc                     || _         || _        || _        || _        |d}|| _        |i }|| _        |j        rd                    |j                  nd| _        || _        || _	        |	| _
        |
| _        d S )Nr+   r_   r   )optsformsetr:   r=   r>   r<   ra   r`   has_add_permissionhas_change_permissionhas_delete_permissionhas_view_permission)r?   r   r   r:   r<   r>   r=   r   r   r   r   s              r-   r@   zInlineAdminFormSet.__init__8  s     	"&" O.&"$#6 39>Isxx///r"4%:"%:"#6   r,   c              #   d  K   | j         r| j        }n| j        t          | j                  z   }t	          | j        j        | j                                                  D ]L\  }}| j        	                    |          }t          | j        || j        | j        ||| j        |          V  M| j        j        D ]3}t          | j        || j        | j        d | j        | j                  V  4| j        r=t          | j        | j        j        | j        | j        d | j        | j                  V  d S d S )N)r=   view_on_site_urlrl   )r   r>   r   r:   zipr   initial_formsget_querysetr   get_view_on_site_urlInlineAdminFormr<   extra_formsr   
empty_form)r?   readonly_fields_for_editingr5   originalr   s        r-   rL   zInlineAdminFormSet.__iter__U  s     % 	*.*>''*.*>ARB B +' "L&(A(A(C(C
 
 	 	ND(  $y==hGG!(+ I!1	 	 	 	 	 	 	 L, 		 		D!($ I       " 		!'($ I       		 		r,   c           	   #     K   t          | j        dd           }| j        j        }|j        j        pi }|j        j        pi }t          t          | j                            D ]\  }}|r|j	        |k    r| j
        r	|| j        v r|j                            |          }d}||j        j        }||                    |          p!t!          || j        j        | j        |          d|id|                    |          pt'          || j        j                  dV  |j        |         }|j        }	|	"t!          || j        j        | j        |          }	||	|j        |j        |j        dV  d S )NfkFr   rq   )rJ   r   r!   r   r   )r   r   r   r   r   r   rz   r   r:   rJ   r   r>   rT   getr!   rq   r   r   r   r   r   r   r   )
r?   r   r   meta_labelsmeta_help_textsr}   r9   
form_fieldwidget_is_hiddenr   s
             r-   rT   zInlineAdminFormSet.fields  s     T\4..\,
 &-3$*5;&'8'H'HII #	 #	MAz bg++-  t?S1S1S'.22:>>
#( )'1'8'B$&(__Z88 &"		'	    +,<= %!0!4!4Z!@!@ "H*:tyGG      (.z:
"(=+"DIOTYZ  E '"(/ * 3!+!5     ;#	 #	r,   c           	          | j         j        }t          j        d| j        j        z  | j        j        t          d          dt          |          iz  t          d          dd          S )Nz#%szAdd another %(verbose_name)sverbose_nameRemove)prefixaddText
deleteText)rJ   rK   )r   r   jsondumpsr   r   r   r   )r?   r   s     r-   inline_formset_dataz&InlineAdminFormSet.inline_formset_data  sy    y-z 33"l1&'EFF&(>(>  #*("3"3 
 

 
 	
r,   c                     | j         j        S rN   )r   r   rE   s    r-   r   zInlineAdminFormSet.forms  s    |!!r,   c                 J    t          | j        j                  rdS d| j        v S )NFrh   )ri   r   rO   ra   rE   s    r-   rj   z!InlineAdminFormSet.is_collapsible  s)    t|"## 	5T\))r,   c                 4    | j                                         S rN   )r   non_form_errorsrE   s    r-   r   z"InlineAdminFormSet.non_form_errors  s    |++---r,   c                     | j         j        S rN   )r   rV   rE   s    r-   rV   zInlineAdminFormSet.is_bound  s    |$$r,   c                     | j         j        S rN   )r   total_form_countrE   s    r-   r   z#InlineAdminFormSet.total_form_count  s    |,,r,   c                 V    | j         j        | j        j        z   }| D ]}||j        z  }|S rN   )r   rX   r   rY   s      r-   rX   zInlineAdminFormSet.media  s7    	$,"44 	 	BRXEEr,   )NNNTTTT)r"   r#   r$   __doc__r@   rL   rT   r   r\   r   r   rj   r   rV   r   rX   r+   r,   r-   r   r   3  s         !"" 7 7 7 7:) ) )V( ( (T
 
 
  " " X" * * _*
. . . % % X% - - X-   X  r,   r   c                   H     e Zd ZdZ	 	 	 d	 fd	Zd Zd Zd Zd Zd Z	 xZ
S )
r   zF
    A wrapper around an inline form for use in the admin system.
    Nc	                     || _         || _        || _        |o|d u| _        || _        t                                          |||||           d S rN   )r   r=   r   show_urlabsolute_urlsuperr@   )
r?   r   r5   r:   r<   r   r>   r=   r   rD   s
            r-   r@   zInlineAdminForm.__init__  sg     &  A%5T%A,)0/;	
 	
 	
 	
 	
r,   c              #   t   K   | j         D ]-\  }}t          | j        | j        || j        fd| j        i|V  .d S )Nr=   )r:   InlineFieldsetr   r5   r>   r=   rI   s      r-   rL   zInlineAdminForm.__iter__  su      !^ 	 	MD' 	$	 
 !,      	 	r,   c                 b   | j         j        j        j        j        p| j         j        j        j        j        j         ps| j         j        j        o0| j         j        j        j        j        j        | j         j        j        v p1t          d | j         j        j        j        j	        D                       S )Nc              3   f   K   | ],}|j         j        p|j         j        j         j        j         V  -d S rN   )r   
auto_fieldr   r   editable)r3   parents     r-   rr   z:InlineAdminForm.needs_explicit_pk_field.<locals>.<genexpr>	  sQ         'Sv|/A/G/J/S+S     r,   )
r5   r   r   r   r   r   excluderJ   ri   all_parentsrE   s    r-   needs_explicit_pk_fieldz'InlineAdminForm.needs_explicit_pk_field  s     IO!'2 9?(.1:: 	' SIO)/2749?;RR   "io39E    	
r,   c                 L    t          | j        | j        j        j        d          S r   )r|   r5   r   	_pk_fieldrJ   rE   s    r-   pk_fieldzInlineAdminForm.pk_field  s    $)T\%;%@%HHHr,   c                 l    t          | j        dd           }|rt          | j        |j        d          S dS )Nr   Fr   )r   r   r|   r5   rJ   )r?   r   s     r-   fk_fieldzInlineAdminForm.fk_field  s8    T\4.. 	di%8882r,   c                 :    ddl m} t          | j        |d          S )Nr   )DELETION_FIELD_NAMEF)django.forms.formsetsr   r|   r5   )r?   r   s     r-   deletion_fieldzInlineAdminForm.deletion_field  s)    ======$)%8%@@@r,   )NNN)r"   r#   r$   r   r@   rL   r   r   r   r   __classcell__rD   s   @r-   r   r     s          
 
 
 
 
 
(	 	 	
 
 
(I I I  A A A A A A Ar,   r   c                   $     e Zd Z fdZd Z xZS )r   c                 H    || _          t                      j        |i | d S rN   )r   r   r@   )r?   r   r   kwargsrD   s       r-   r@   zInlineFieldset.__init__   s,    $)&)))))r,   c              #      K   t          | j        dd           }| j        D ]3}|r|j        |k    r$t	          | j        || j        | j                  V  4d S )Nr   rl   )r   r   rT   rJ   rm   r5   r>   r=   )r?   r   r7   s      r-   rL   zInlineFieldset.__iter__$  s{      T\4..[ 	 	E E))Iud&:HX     	 	r,   )r"   r#   r$   r@   rL   r  r  s   @r-   r   r     sG        * * * * *      r,   r   c                   "     e Zd ZdZ fdZ xZS )AdminErrorListz9Store errors for the form/formsets in an add/change view.c                 l   t                                                       |j        r|                     |j                                                   |D ]\}|                     |                                           |j        D ])}|                     |                                           *[d S d S rN   )r   r@   rV   extendrO   valuesr   )r?   r5   inline_formsetsinline_formseterrors_in_inline_formrD   s        r-   r@   zAdminErrorList.__init__0  s    = 	@KK**,,---"1 @ @N::<<===-;-B @ @)KK 5 < < > >????@		@ 	@@ @r,   )r"   r#   r$   r   r@   r  r  s   @r-   r  r  -  sG        CC@ @ @ @ @ @ @ @ @r,   r  )1r   djangor   django.contrib.admin.utilsr   r   r   r   r   r	   django.core.exceptionsr
   django.db.models.fields.relatedr   r   r   django.forms.utilsr   django.template.defaultfiltersr   r   django.urlsr   r   django.utils.functionalr   django.utils.htmlr   r   django.utils.safestringr   django.utils.translationr   r   r&   ACTION_CHECKBOX_NAMEFormr   r/   rH   rm   r|   r{   r   r   r   utils	ErrorListr  r+   r,   r-   <module>r     s9                         6 5 5 5 5 5         
 ' & & & & & A A A A A A A A / / / / / / / / 3 3 3 3 3 3 = = = = = = = = - - - - - - , , , , , , 6 6 6 6 6 6)        9 9 9 9 9 9 9 9x               F 
  
  
  
  
  
  
  
F4 4 4 4 4 4 4 4<h/ h/ h/ h/ h/ h/ h/ h/Va a a a a a a aHEA EA EA EA EAi EA EA EAP    X   @ @ @ @ @U[* @ @ @ @ @r,   