+
    SjY                     0   ^ RI t ^ RIHt ^ RIHt ^ RIHt ^ RIHt ^ RI	H
t
HtHt ^ RIHt ^ RIHt ^ R	IHt ^ R
IHt ^ RIHt ^ RIHtHtHt ^ RIHt ^ RIHt ^ RIH t  R t!R t"R t#R t$ ! R R4      t% ! R R]%4      t& ! R R]%4      t'R t(R t)R t*R# )    N)chain)apps)settings)NotRegistered)NotRelationFieldflattenget_fields_from_path)checks)FieldDoesNotExist)models)
LOOKUP_SEP)
Combinable)BaseModelFormBaseModelFormSet_get_foreign_key)engines)DjangoTemplates)import_stringc                >     \        W4      #   \         d     R# i ; i)zL
issubclass() variant that doesn't raise an exception if cls isn't a
class.
F)
issubclass	TypeError)cls	classinfos   &&P/var/www/idalgo/venv/lib/python3.14/site-packages/django/contrib/admin/checks.py_issubclassr      s$    
#)) s   
 c                    \        V 4      pV F#  p \        V4      p\        YB4      '       g   K"   R# 	  R#   \         d     K7  i ; i)zp
Return whether or not a dotted class path (or a subclass of that class) is
found in a list of candidate paths.
TF)r   ImportErrorr   )
class_pathcandidate_pathsr   pathcandidate_clss   &&   r   _contains_subclassr"      sP    
 

#C	)$/M }**     		s   7AAc                 h    ^ RI Hp . pV F#  pVP                  VP                  V 4      4       K%  	  V# )r   	all_sites)django.contrib.admin.sitesr%   extendcheck)app_configskwargsr%   errorssites   &,   r   check_admin_appr-   /   s.    4Fdjj-. M    c                    ^ RI Hp \        P                  ! R4      '       g   . # . pR!pV FX  w  rE\        P                  ! V4      '       d   K#  VP	                  \
        P                  ! RV,          RV,          R7      4       KZ  	  \        P                  ! 4        F'  p\        V\        4      '       g   K  VP                  p M	  RpV'       g*   VP	                  \
        P                  ! RRR7      4       EMR	VP                  9  dH   \        R
\        P                  4      '       d(   VP	                  \
        P                  ! RRR7      4       RVP                  9  d(   VP	                  \
        P                  ! RRR7      4       \         ;QJ d    R V 4       F  '       g   K   RM	  RM! R V 4       4      pV'       d9   RVP                  9  d(   VP	                  \
        P"                  ! RRR7      4       \        R\        P$                  4      '       g(   VP	                  \
        P                  ! RRR7      4       \        R\        P$                  4      '       g(   VP	                  \
        P                  ! RRR7      4       \        R\        P$                  4      '       g)   VP	                  \
        P                  ! RRRR 7      4       V# )"z>
Check that the admin's dependencies are correctly installed.
r$   zdjango.contrib.adminzE'%s' must be in INSTALLED_APPS in order to use the admin application.z	admin.E%d)idNzA 'django.template.backends.django.DjangoTemplates' instance must be configured in TEMPLATES in order to use the admin application.z
admin.E403z+django.contrib.auth.context_processors.authz)django.contrib.auth.backends.ModelBackendz'django.contrib.auth.context_processors.auth' must be enabled in DjangoTemplates (TEMPLATES) if using the default auth backend in order to use the admin application.z
admin.E402z3django.contrib.messages.context_processors.messagesz'django.contrib.messages.context_processors.messages' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin application.z
admin.E404c              3   8   "   T F  qP                   x  K  	  R # 5iN)enable_nav_sidebar).0r,   s   & r   	<genexpr>%check_dependencies.<locals>.<genexpr>{   s     L)$55)s   TFz*django.template.context_processors.requestz'django.template.context_processors.request' must be enabled in DjangoTemplates (TEMPLATES) in order to use the admin navigation sidebar.z
admin.W411z7django.contrib.auth.middleware.AuthenticationMiddlewarezv'django.contrib.auth.middleware.AuthenticationMiddleware' must be in MIDDLEWARE in order to use the admin application.z
admin.E408z4django.contrib.messages.middleware.MessageMiddlewarezs'django.contrib.messages.middleware.MessageMiddleware' must be in MIDDLEWARE in order to use the admin application.z
admin.E409z4django.contrib.sessions.middleware.SessionMiddlewarezs'django.contrib.sessions.middleware.SessionMiddleware' must be in MIDDLEWARE in order to use the admin application.zInsert 'django.contrib.sessions.middleware.SessionMiddleware' before 'django.contrib.auth.middleware.AuthenticationMiddleware'.z
admin.E410)hintr0   ))zdjango.contrib.contenttypesi  )zdjango.contrib.authi  )zdjango.contrib.messagesi  )r&   r%   r   is_installedappendr
   Errorr   all
isinstancer   enginecontext_processorsr"   r   AUTHENTICATION_BACKENDSanyWarning
MIDDLEWARE)	r*   r%   r+   app_dependenciesapp_name
error_coder=   django_templates_instancesidebar_enableds	   ,        r   check_dependenciesrH   8   s}    5344	F
 !1  **MM#%-."Z/ !1 ++-fo..(.%  
 %)!$LL  		
 :,??@";00 
 MMJ $	 B,??@ MM- $	 #L)L###L)LL<,??@ MM* $	 A8CVCV  	LLJ	
 >@S@S  	LLJ	
 >@S@S  	LLJQ
  
	
 Mr.   c                      a  ] tR t^t o R tR tR tR tR tR t	R t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tRtV t R# )BaseModelAdminChecksc                   . V P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P	                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      O# r2   )_check_autocomplete_fields_check_raw_id_fields_check_fields_check_fieldsets_check_exclude_check_form_check_filter_vertical_check_filter_horizontal_check_radio_fields_check_prepopulated_fields_check_view_on_site_url_check_ordering_check_readonly_fields)self	admin_objr*   s   &&,r   r(   BaseModelAdminChecks.check   s   
,,Y7
&&y1
 	*
 ""9-	

   +
 i(
 ((3
 **95
 %%i0
 ,,Y7
 )))4
 !!),
 ((3
 	
r.   c                2   \        VP                  \        \        34      '       g   \	        RRVRR7      # \        \
        P                  ! \        VP                  4       UUu. uF  w  r#V P                  WRV,          4      NK   	  upp4      4      # u uppi )zF
Check that `autocomplete_fields` is a list or tuple of model fields.
a list or tupleautocomplete_fieldsz
admin.E036optionobjr0   zautocomplete_fields[%d])	r<   r^   listtuplemust_ber   from_iterable	enumerate_check_autocomplete_fields_item)rY   ra   index
field_names   &&  r   rL   /BaseModelAdminChecks._check_autocomplete_fields   s     #11D%=AA!,	  ##
 2;3;R;R1S	 2T-E <<-F-N 2T		 	s   #$Bc           	         VP                   P                  P                  V4      pVP                  '       g0   \	        V\
        P                  4      '       g   \        RVVRR7      #  VP                  P                  VP                  P                   4      pVP                  '       gT   \        P                  ! VP                  P                  : R\!        V4      P                  : R2VP                  RR7      .#  . #   \"         db    \        P                  ! RTP                  P                   P                  : R	\!        T4      P                  : R2TP                  R
R7      .u # i ; i  \$         d    \'        Y#TRR7      u # i ; i)z
Check that an item in `autocomplete_fields` is a ForeignKey or a
ManyToManyField and that the item has a related ModelAdmin with
search_fields defined.
%a foreign key or a many-to-many fieldz
admin.E038r_   z9 must define "search_fields", because it's referenced by z.autocomplete_fields.z
admin.E040ra   r0   zAn admin for model "z+" has to be registered to be referenced by z
admin.E039z
admin.E037fieldr`   ra   r0   )model_meta	get_fieldmany_to_manyr<   r   
ForeignKeyrd   
admin_siteget_model_adminremote_fieldsearch_fieldsr
   r:   	__class____name__typer   r   refer_to_missing_field)rY   ra   ri   labelro   related_admins   &&&&  r   rg   4BaseModelAdminChecks._check_autocomplete_fields_item   s\   +	IIOO--j9E %%%j@Q@Q.R.R; #	  # > >u?Q?Q?W?W X %222 !. 7 7 @ @ $S	 2 2	 !$+	  3 I7 ! LL "..44== I..	  MM'	  ! 	) CL 	s$   %E/ )/D   A)E,+E,/F
Fc                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )zRCheck that `raw_id_fields` only contains field names that are listed
on the model.r]   raw_id_fieldsz
admin.E001r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zraw_id_fields[%d]N)_check_raw_id_fields_itemr4   rh   ri   ra   rY   s   &  r   r5   <BaseModelAdminChecks._check_raw_id_fields.<locals>.<genexpr>  s>      $ .J) 22Z)<u)D  .J   ),)r<   r   rb   rc   rd   r   re   rf   rY   ra   s   ffr   rM   )BaseModelAdminChecks._check_raw_id_fields  si     #++dE];;!/s|  ## $ .7s7H7H-I	$  r.   c                R    VP                   P                  P                  V4      pVP                  V8w  d   \	        VVVRR7      # VP
                  '       g0   \        V\        P                  4      '       g   \        RVVRR7      # . #   \         d    \	        Y#TRR7      u # i ; i)zCheck an item of `raw_id_fields`, i.e. check that field named
`field_name` exists in model `model` and is a ForeignKey or a
ManyToManyField.z
admin.E002rn   rl   z
admin.E003r_   )rp   rq   rr   namer|   rs   r<   r   rt   rd   r   rY   ra   ri   r}   ro   s   &&&& r   r   .BaseModelAdminChecks._check_raw_id_fields_item  s    
	IIOO--j9E zzZ'-$ #	  %%%j@Q@Q.R.R; #	  	+ ! 	) CL 	s   %B
 
B&%B&c           
       a a SP                   f   . # \        SP                   \        \        34      '       g   \	        RRSRR7      # SP
                  '       d%   \        P                  ! RSP                  RR7      .# \        P                  ! \        SP                   4      4      pVP                  4        UUu. uF  w  r4V^8  g   K  VNK  	  upp;p'       dJ   \        P                  ! RR	R
P                  \        \        V4      4      ,          SP                  RR7      .# \        \         P"                  ! VV 3R lSP                    4       4      4      # u uppi )zCheck that `fields` only refer to existing fields, doesn't contain
duplicates. Check if at most one of `fields` and `fieldsets` is
defined.
r]   fieldsz
admin.E004r_   z,Both 'fieldsets' and 'fields' are specified.z
admin.E005rm   z2The value of 'fields' contains duplicate field(s).Remove duplicates of %s., z
admin.E006r7   ra   r0   c              3   J   <"   T F  pSP                  SVR 4      x  K  	  R# 5i)r   N_check_field_spec)r4   ri   ra   rY   s   & r   r5   5BaseModelAdminChecks._check_fields.<locals>.<genexpr>^  s*       ",J &&sJAA",s    #)r   r<   rb   rc   rd   	fieldsetsr
   r:   ry   collectionsCounterr   itemsjoinmapreprr   re   rY   ra   field_countsro   countduplicate_fieldss   ff    r   rN   "BaseModelAdminChecks._check_fields=  s.    ::ICJJu66,X3<XX]]]B#  #**73::+>?&2&8&8&: 
&:leeaiEE&: 
 
 
 H3iiD*: ;<=#    "%**  
 	
 
s   :E
Ec                  a aa SP                   f   . # \        SP                   \        \        34      '       g   \	        RRSRR7      # . o\        \
        P                  ! VVV 3R l\        SP                   4       4       4      4      # )zJCheck that fieldsets is properly formatted and doesn't contain
duplicates.r]   r   z
admin.E007r_   c              3   ^   <"   T F"  w  rSP                  SVR V,          S4      x  K$  	  R# 5i)zfieldsets[%d]N)_check_fieldsets_item)r4   rh   fieldsetra   seen_fieldsrY   s   &  r   r5   8BaseModelAdminChecks._check_fieldsets.<locals>.<genexpr>q  s>      $ ,D ..X'>  ,D   *-)r   r<   rb   rc   rd   r   re   rf   )rY   ra   r   s   ff@r   rO   %BaseModelAdminChecks._check_fieldsetsd  sy     == ICMMD%=99!+3<  K## $ ,5S]]+C	$  r.   c           
     "  a aa \        V\        \        34      '       g   \        RSSRR7      # \	        V4      ^8w  d   \        RSSRR7      # \        V^,          \
        4      '       g   \        RRS,          SRR7      # R	V^,          9  d,   \        P                  ! R
S,          SP                  RR7      .# \        V^,          R	,          \        \        34      '       g   \        RRS,          SRR7      # \        V^,          R	,          4      pVP                  V4       \        P                  ! V4      p\        V4      pVP                  4        UU	u. uF  w  rV	^8  g   K  W9   g   K  VNK  	  up	p;p
'       dQ   \        P                  ! RS,          RRP                  \!        \"        V
4      4      ,          SP                  RR7      .# \        \$        P&                  ! VVV 3R lV^,          R	,           4       4      4      # u up	pi )ztCheck an item of `fieldsets`, i.e. check that this is a pair of a
set name and a dictionary containing "fields" key.r]   z
admin.E008r_   zof length 2z
admin.E009a dictionary%s[1]z
admin.E010r   z3The value of '%s[1]' must contain the key 'fields'.z
admin.E011rm   z%s[1]['fields']z(There are duplicate field(s) in '%s[1]'.r   r   z
admin.E012r   c              3   X   <"   T F  pSP                  SVR S,          4      x  K!  	  R# 5i)z%s[1]["fields"]Nr   )r4   fieldset_fieldsr}   ra   rY   s   & r   r5   =BaseModelAdminChecks._check_fieldsets_item.<locals>.<genexpr>  s1       '<O &&sO=NQV=VWW'<s   '*)r<   rb   rc   rd   lendictr
   r:   ry   r   r'   r   r   setr   r   r   r   r   re   )rY   ra   r   r}   r   r   r   fieldset_fields_setro   r   r   s   ff&f&      r   r   *BaseModelAdminChecks._check_fieldsets_itemy  s    (T5M22,UUU]a=CLQQHQK..wCL  Xa[(IEQ#  HQK1D%=AA!(50	  "(1+h"78?+"**;7!/2 !- 2 2 4 
 4qy "9 E 4 
 
 
 >F3iiD*: ;<=#    '/{8'<  
 	
 
s   H(H0Hc                   a aa \        V\        4      '       d5   \        \        P                  ! VVV 3R l\        V4       4       4      4      # S P                  SVS4      # )z`fields` should be an item of `fields` or an item of
fieldset[1]['fields'] for any `fieldset` in `fieldsets`. It should be a
field name or a tuple of field names.c              3   `   <"   T F#  w  rSP                  SVR SV3,          4      x  K%  	  R# 5i)z%s[%d]N)_check_field_spec_item)r4   rh   ri   r}   ra   rY   s   &  r   r5   9BaseModelAdminChecks._check_field_spec.<locals>.<genexpr>  s?      $ .?) //ZUEN)B  .?s   +.)r<   rc   rb   r   re   rf   r   )rY   ra   r   r}   s   ff&fr   r   &BaseModelAdminChecks._check_field_spec  sX    
 fe$$## $ .7v->	$   ..sFEBBr.   c                   W!P                   9   d   . #  VP                  P                  P                  V4      p\	        V\
        P                  4      '       d^   VP                  P                  P                  P                  '       g.   \        P                  ! R V: RV: R2VP                  RR7      .# . #   \         d    . u # i ; i)The value of '&' cannot include the ManyToManyField '>', because that field manually specifies a relationship model.
admin.E013rm   )readonly_fieldsrp   rq   rr   r<   r   ManyToManyFieldrw   throughauto_createdr
   r:   ry   r   r   s   &&&& r   r   +BaseModelAdminChecks._check_field_spec_item  s    ,,, I		11*= uf&<&<==!..66<<III  6;JH !$+  I' %  	s   %B8 8CCc           
        VP                   f   . # \        VP                   \        \        34      '       g   \	        RRVRR7      # \
        P                  ! VP                   4      pVP                  4        UUu. uF  w  r4V^8  g   K  VNK  	  upp;p'       dJ   \        P                  ! RRRP                  \        \        V4      4      ,          VP                  RR	7      .# . # u uppi )
z4Check that exclude is a sequence without duplicates.r]   excludez
admin.E014r_   z3The value of 'exclude' contains duplicate field(s).r   r   z
admin.E015r   )r   r<   rb   rc   rd   r   r   r   r
   r:   r   r   r   ry   r   s   &&    r   rP   #BaseModelAdminChecks._check_exclude  s     ;;ICKK$77!)  #**3;;7&2&8&8&: 
&:leeaiEE&: 
 
 
 I3iiD*: ;<=#  I 
s   9C&	C&c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )z)Check that form subclasses BaseModelForm.r   formz
admin.E016parentr`   ra   r0   )r   r   r   must_inherit_fromr   s   &&r   rQ    BaseModelAdminChecks._check_form  s0    388]33$&v3<  Ir.   c                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )z8Check that filter_vertical is a sequence of field names.r]   filter_verticalz
admin.E017r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zfilter_vertical[%d]N_check_filter_itemr   s   &  r   r5   >BaseModelAdminChecks._check_filter_vertical.<locals>.<genexpr>  s>      $ .L) ++Z)>)F  .Lr   )r<   r   rb   rc   rd   r   re   rf   r   s   ffr   rR   +BaseModelAdminChecks._check_filter_vertical  sh    #--e}==!*;  ## $ .7s7J7J-K	$  r.   c                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )z:Check that filter_horizontal is a sequence of field names.r]   filter_horizontalz
admin.E018r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zfilter_horizontal[%d]Nr   r   s   &  r   r5   @BaseModelAdminChecks._check_filter_horizontal.<locals>.<genexpr>  s>      $ .N) ++Z)@5)H  .Nr   )r<   r   rb   rc   rd   r   re   rf   r   s   ffr   rS   -BaseModelAdminChecks._check_filter_horizontal  sh    #//$??!*=3<  ## $ .7s7L7L-M	$  r.   c                    VP                   P                  P                  V4      pVP                  '       d!   \	        V\
        P                  4      '       d   \        RW1RR7      # VP                  P                  P                  P                  '       g,   \        P                  ! RV RV R2VP                  RR7      .# . #   \         d    \        Y#TR	R
7      u # i ; i)zxCheck one item of `filter_vertical` or `filter_horizontal`, i.e.
check that given field exists and is a ManyToManyField.za many-to-many fieldz
admin.E020r_   r   r   r   r   rm   z
admin.E019rn   )rp   rq   rr   rs   r<   r   ManyToManyRelrd   rw   r   r   r
   r:   ry   r   r|   r   s   &&&& r   r   'BaseModelAdminChecks._check_filter_item  s    	IIOO--j9E %%%E6;O;O)P)P*5l  ''//55BBBLL( 0&< (./  MM'  	) ! 	) CL 	s   %C C C c                   a a \        SP                  \        4      '       g   \        RRSRR7      # \	        \
        P                  ! VV 3R lSP                  P                  4        4       4      4      # )z*Check that `radio_fields` is a dictionary.r   radio_fieldsz
admin.E021r_   c              3      <"   T F9  w  rSP                  SVR 4      SP                  SVRV,          4      ,           x  K;  	  R# 5i)r   zradio_fields["%s"]N)_check_radio_fields_key_check_radio_fields_valuer4   ri   valra   rY   s   &  r   r5   ;BaseModelAdminChecks._check_radio_fields.<locals>.<genexpr>C  sT      $
 ,D
	 00j.Q44S"6"C  ,D   AA)r<   r   r   rd   rb   r   re   r   r   s   ffr   rT   (BaseModelAdminChecks._check_radio_fields;  sg    #**D11~3<  ## $
 ,/+;+;+A+A+C$  r.   c                N    VP                   P                  P                  V4      p\        V\        P
                  4      '       g@   VP                  '       g.   \        P                  ! RV: RV: R2VP                  RR7      .# . #   \         d    \        Y#TRR7      u # i ; i)zCheck that a key of `radio_fields` dictionary is name of existing
field and that the field is a ForeignKey or has `choices` defined.r   ' refers to 'zT', which is not an instance of ForeignKey, and does not have a 'choices' definition.z
admin.E023rm   z
admin.E022rn   )rp   rq   rr   r<   r   rt   choicesr
   r:   ry   r   r|   r   s   &&&& r   r   ,BaseModelAdminChecks._check_radio_fields_keyL  s    	IIOO--j9E uf&7&788EMMMLL */
<  MM'  	! ! 	) CL 	s   %B B$#B$c                |    ^ RI HpHp W$V39  d,   \        P                  ! RV,          VP
                  RR7      .# . # )z3Check type of a value of `radio_fields` dictionary.)
HORIZONTALVERTICALzDThe value of '%s' must be either admin.HORIZONTAL or admin.VERTICAL.z
admin.E024rm   )django.contrib.admin.optionsr   r   r
   r:   ry   )rY   ra   r   r}   r   r   s   &&&&  r   r   .BaseModelAdminChecks._check_radio_fields_valued  sG     	F8,,&(-.#	  Ir.   c                    \        VP                  4      '       gE   \        VP                  \        4      '       g%   \        P
                  ! R VP                  RR7      .# . # )zBThe value of 'view_on_site' must be a callable or a boolean value.z
admin.E025rm   )callableview_on_siter<   boolr
   r:   ry   r   s   &&r   rV   ,BaseModelAdminChecks._check_view_on_site_urlu  sQ    (())*S=M=Mt2T2T#	  Ir.   c                   a a \        SP                  \        4      '       g   \        RRSRR7      # \	        \
        P                  ! VV 3R lSP                  P                  4        4       4      4      # )zPCheck that `prepopulated_fields` is a dictionary containing allowed
field types.r   prepopulated_fieldsz
admin.E026r_   c              3      <"   T F9  w  rSP                  SVR 4      SP                  SVRV,          4      ,           x  K;  	  R# 5i)r   zprepopulated_fields["%s"]N)_check_prepopulated_fields_key _check_prepopulated_fields_valuer   s   &  r   r5   BBaseModelAdminChecks._check_prepopulated_fields.<locals>.<genexpr>  sZ      $ ,K
 77Z)> ;;S"=
"J  ,Kr   )r<   r   r   rd   rb   r   re   r   r   s   ffr   rU   /BaseModelAdminChecks._check_prepopulated_fields  sj     #11488'<#,  ## $ ,/+B+B+H+H+J$ 
 
r.   c                h    VP                   P                  P                  V4      p\        V\        P
                  \        P                  \        P                  34      '       d.   \        P                  ! RV: RV: R2VP                  RR7      .# . #   \         d    \        Y#TRR7      u # i ; i)zCheck a key of `prepopulated_fields` dictionary, i.e. check that it
is a name of existing field and the field is one of the allowed types.
r   r   zZ', which must not be a DateTimeField, a ForeignKey, a OneToOneField, or a ManyToManyField.z
admin.E028rm   z
admin.E027rn   )rp   rq   rr   r<   r   DateTimeFieldrt   r   r
   r:   ry   r   r|   r   s   &&&& r   r   3BaseModelAdminChecks._check_prepopulated_fields_key  s    
	IIOO--j9E ,,f.?.?AWAWX  LL /4ZA  MM'  	% ! 	) CL 	s   %B B10B1c                   a aa \        V\        \        34      '       g   \        RSSRR7      # \        \        P
                  ! VVV 3R l\        V4       4       4      4      # )z\Check a value of `prepopulated_fields` dictionary, i.e. it's an
iterable of existing fields.r]   z
admin.E029r_   c           	   3   ^   <"   T F"  w  rSP                  SVS: R V: R24      x  K$  	  R# 5i)[]N)%_check_prepopulated_fields_value_item)r4   rh   subfield_namer}   ra   rY   s   &  r   r5   HBaseModelAdminChecks._check_prepopulated_fields_value.<locals>.<genexpr>  s;      $ 1?, >>]u,E  1?r   )r<   rb   rc   rd   r   re   rf   )rY   ra   r   r}   s   ff&fr   r   5BaseModelAdminChecks._check_prepopulated_fields_value  sV     #e}--,UUU## $ 1:#	$  r.   c                     VP                   P                  P                  V4       . #   \         d    \	        Y#TRR7      u # i ; i)zQFor `prepopulated_fields` equal to {"slug": ("title",)},
`field_name` is "title".z
admin.E030rn   )rp   rq   rr   r   r|   rY   ra   ri   r}   s   &&&&r   r  :BaseModelAdminChecks._check_prepopulated_fields_value_item  sI    	IIOO%%j1 I ! 	) CL 	s   %) AAc                
  a a SP                   f   . # \        SP                   \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                   4       4       4      4      # )z;Check that ordering refers to existing fields or is random.r]   orderingz
admin.E031r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zordering[%d]N)_check_ordering_itemr   s   &  r   r5   7BaseModelAdminChecks._check_ordering.<locals>.<genexpr>  s3      $-D) --c:~PU?UVV-Dr   )r
  r<   rb   rc   rd   r   re   rf   r   s   ffr   rW   $BaseModelAdminChecks._check_ordering  sr     <<ICLL4-88!*#,  ## $-6s||-D$  r.   c                   \        V\        \        P                  34      '       dt   \        V\        P                  4      '       g   VP	                  4       p\        VP
                  \        P                  4      '       d   VP
                  P                  pM. # VR8X  d@   \        VP                  4      ^8w  d&   \        P                  ! RRVP                  RR7      .# VR8X  d   . # \        V9   d   . # VP                  R4      pVR8X  d   . #  VP                  P                   P#                  V4       . #   \$         d    \'        Y#TRR	7      u # i ; i)
z0Check that `ordering` refers to existing fields.?z^The value of 'ordering' has the random ordering marker '?', but contains other fields as well.z2Either remove the "?", or remove the other fields.z
admin.E032r   -pkz
admin.E033rn   )r<   r   r   OrderByasc
expressionFr   r   r
  r
   r:   ry   r   removeprefixrp   rq   rr   r   r|   r  s   &&&&r   r  )BaseModelAdminChecks._check_ordering_item  s$   j:v~~">??j&..99'^^-
*//::'2277
	S\\!2a!79M#  3I:% I#005JT!			))*5 	 % -$ s   %D8 8EEc                  a a SP                   R8X  d   . # \        SP                   \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                   4       4       4      4      # )z?Check that readonly_fields refers to proper attribute or field.r]   r   z
admin.E034r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zreadonly_fields[%d]N)_check_readonly_fields_itemr   s   &  r   r5   >BaseModelAdminChecks._check_readonly_fields.<locals>.<genexpr>  s>      $ .L) 44Z)>)F  .Lr    )r   r<   rb   rc   rd   r   re   rf   r   s   ffr   rX   +BaseModelAdminChecks._check_readonly_fields  s}     "$IC//$??!*;  ## $ .7s7J7J-K	$  r.   c                   \        V4      '       d   . # \        W4      '       d   . # \        VP                  V4      '       d   . #  VP                  P                  P	                  V4       . #   \
         dk    \        P                  ! R T: RT: RTP                  P                  : RTP                  P                  P                  : R2	TP                  RR7      .u # i ; i)r   r   z-', which is not a callable, an attribute of 'z', or an attribute of ''.z
admin.E035rm   )r   hasattrrp   rq   rr   r   r
   r:   ry   rz   r}   r  s   &&&&r   r  0BaseModelAdminChecks._check_readonly_fields_item  s    JIS%%ISYY
++I		))*5" 	! % LL "&MM22IIOO11  MM' s   %A- -A2C"!C"r  N)!rz   
__module____qualname____firstlineno__r(   rL   rg   rM   r   rN   rO   r   r   r   rP   rQ   rR   rS   r   rT   r   r   rV   rU   r   r   r  rW   r  rX   r  __static_attributes____classdictcell__)__classdict__s   @r   rJ   rJ      s     
".1f$<%
N*3
jC"<2  8"0"(6 $$L& r.   rJ   c                      a a ] tR tRt oV 3R ltR tR tR tR tR t	R t
R	 tR
 tR tR tR tR tR tR tR tR tR tR tRtVtV ;t# )ModelAdminChecksi6  c                  < . \         SV `  V4      OV P                  V4      OV P                  V4      OV P	                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      O# r2   )superr(   _check_save_as_check_save_on_top_check_inlines_check_list_display_check_list_display_links_check_list_filter_check_list_select_related_check_list_per_page_check_list_max_show_all_check_list_editable_check_search_fields_check_date_hierarchy_check_actions)rY   rZ   r*   ry   s   &&,r   r(   ModelAdminChecks.check7  s-   
W]9%
  +
 $$Y/
   +	

 %%i0
 ++I6
 $$Y/
 ,,Y7
 &&y1
 **95
 &&y1
 &&y1
 ''	2
   +
 	
r.   c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )zCheck save_as is a boolean.	a booleansave_asz
admin.E101r_   )r<   r=  r   rd   r   s   &&r   r-  ModelAdminChecks._check_save_asI  s+     #++t,,;yclSSIr.   c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )zCheck save_on_top is a boolean.r<  save_on_topz
admin.E102r_   )r<   r@  r   rd   r   s   &&r   r.  #ModelAdminChecks._check_save_on_topQ  s+     #//400;}#,WWIr.   c                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )z%Check all inline model admin classes.r]   inlinesz
admin.E103r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zinlines[%d]N)_check_inlines_itemr4   rh   itemra   rY   s   &  r   r5   2ModelAdminChecks._check_inlines.<locals>.<genexpr>b  s1      $'= ,,S$8MNN'=r   )r<   rC  rb   rc   rd   r   re   rf   r   s   ffr   r/  ModelAdminChecks._check_inlinesY  sc     #++e}55!)  ## $'0'=$  r.   c                    VP                   R,           VP                  ,           p^ RIHp \        Y%4      '       g,   \        P                  ! RT,          TP
                  RR7      .# TP                  '       g,   \        P                  ! RT,          TP
                  RR7      .# \        TP                  \        P                  4      '       g   \        RR	T,          TR
R7      # T! TP                  TP                  4      P                  4       #   \         d/    \        P                  ! RT,          TP
                  RR7      .u # i ; i)zCheck one inline model admin..z*'%s' must inherit from 'InlineModelAdmin'.z
admin.E104rm   )InlineModelAdminz#'%s' must have a 'model' attribute.z
admin.E105za Modelz%s.modelz
admin.E106r_   )r#  rz   AttributeErrorr
   r:   ry   r   rL  r   rp   r   Modelrd   ru   r(   )rY   ra   inliner}   inline_labelrL  s   &&&&  r   rE  $ModelAdminChecks._check_inlines_itemh  s   		!,,s2V__DL 	B644@<O#  9LH#  V\\6<<88*|";  #))S^^4::<<A  	@3F# 	s   $D 6E	E	c                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )z=Check list_display only contains fields or usable attributes.r]   list_displayz
admin.E107r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zlist_display[%d]N)_check_list_display_itemrF  s   &  r   r5   7ModelAdminChecks._check_list_display.<locals>.<genexpr>  s3      $'B 11#t=ORW=WXX'Br   )r<   rS  rb   rc   rd   r   re   rf   r   s   ffr   r0  $ModelAdminChecks._check_list_display  sg     #**T5M::!.cl  ## $'01A1A'B$  r.   c                z   \        V4      '       d   . # \        W4      '       d   . #  VP                  P                  P	                  V4      p\        TRR	4      '       d%   TP                  '       gL   TP                   '       g:   \        TR
R4      '       dO   TP"                  P$                  P&                  '       d)   \        P                  ! RT R2TP                  RR7      .# . #   \
         d     \        TP                  T4      p L  \         d     \        TP                  T4      R,          p  L  \
        \        3 dk    \        P                  ! RT RT RTP                  P                   RTP                  P                  P                   R2	TP                  RR7      .u u u # i ; ii ; ii ; i)   r   r   z,', which is not a callable or attribute of 'z)', or an attribute, method, or field on 'r   z
admin.E108rm   is_relationFrelNz<' must not be a many-to-many field or a reverse foreign key.z
admin.E109)r   r!  rp   rq   rr   r   getattrrM  r	   r   r
   r:   ry   rz   r}   rs   one_to_manyr[  ro   many_to_one)rY   ra   rG  r}   ro   s   &&&& r   rU  )ModelAdminChecks._check_list_display_item  s   D>>ISI	IIOO--d3E& E=%00###u'8'8'8eUD))eiioo.I.I.I$UG ,+ ,#	  	; ! 			40! 0DA"EE)+;< 
,UG= G;;>==;Q;Q:R S  #		 5 56b: !$+	 	
	sH   %C' 'F:3DF6D74F:7A4F2+F6-F:1F22F66F:c                b  a a ^ RI Hp SP                  f   . # \        SP                  \        \
        34      '       g   \        RRSRR7      # SP                  P                  VP                  J d>   \	        \        P                  ! VV 3R l\        SP                  4       4       4      4      # . # )zACheck that list_display_links is a unique subset of list_display.)
ModelAdminza list, a tuple, or Nonelist_display_linksz
admin.E110r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zlist_display_links[%d]N)_check_list_display_links_itemr   s   &  r   r5   =ModelAdminChecks._check_list_display_links.<locals>.<genexpr>  s>      $ .O) 77Z)AE)I  .Or   )r   rb  rc  r<   rb   rc   rd   get_list_display__func__r   re   rf   )rY   ra   rb  s   ff r   r1  *ModelAdminChecks._check_list_display_links  s    ;!!)IC22T5MBB*+	  !!**j.I.II## $ .7s7M7M-N	$   	r.   c                    W!P                   9  d.   \        P                  ! R V: RV: R2VP                  RR7      .# . # )r   r   z*', which is not defined in 'list_display'.z
admin.E111rm   )rS  r
   r:   ry   r  s   &&&&r   re  /ModelAdminChecks._check_list_display_links_item  s?    ---).
<#	  Ir.   c                   a a \        SP                  \        \        34      '       g   \	        R RSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )r]   list_filterz
admin.E112r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zlist_filter[%d]N)_check_list_filter_itemrF  s   &  r   r5   6ModelAdminChecks._check_list_filter.<locals>.<genexpr>  s3      $'A 00d<MPU<UVV'Ar   )r<   rm  rb   rc   rd   r   re   rf   r   s   ffr   r2  #ModelAdminChecks._check_list_filter  sa    #//D%=99!-S\  ## $'0'A$  r.   c                ~   ^ RI HpHp \        V4      '       d~   \	        V\
        P                  4      '       g^   \        W%4      '       g   \        RW1RR7      # \        W$4      '       d,   \        P                  ! RV,          VP                  RR7      .# . # \	        V\        \        34      '       d.   Vw  rg\        Wt4      '       g   \        RR	V,          VR
R7      # . # Tp \        VP                   V4       . #   \"        \$        3 d1    \        P                  ! RT: RT: R2TP                  RR7      .u # i ; i)a
  
Check one item of `list_filter`, the three valid options are:
1. 'field' -- a basic field filter, possibly w/ relationships (e.g.
   'field__rel')
2. ('field', SomeFieldListFilter) - a field-based list filter class
3. SomeListFilter - a non-field list filter class
)FieldListFilter
ListFilterrt  z
admin.E113r   z:The value of '%s' must not inherit from 'FieldListFilter'.z
admin.E114rm   rs  r   z
admin.E115r   r   z#', which does not refer to a Field.z
admin.E116)django.contrib.adminrs  rt  r   r<   r   Fieldr   r   r   r
   r:   ry   rc   rb   r	   rp   r   r   )rY   ra   rG  r}   rs  rt  ro   list_filter_classs   &&&&    r   ro  (ModelAdminChecks._check_list_filter_item  s*    	ED>>*T6<<"@"@t00('<  D22LLT MM'	  	udm,,'+$E0BB(,"U?#	  	 E$SYY6 	 %&78 LL$)52MM'	 s   #C; ;>D<;D<c                z    \        VP                  \        \        \        34      '       g   \        RRVRR7      # . # )z?Check that list_select_related is a boolean, a list or a tuple.za boolean, tuple or listlist_select_relatedz
admin.E117r_   )r<   rz  r   rb   rc   rd   r   s   &&r   r3  +ModelAdminChecks._check_list_select_related1  s>     #11D$3FGG*,	  Ir.   c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )z'Check that list_per_page is an integer.
an integerlist_per_pagez
admin.E118r_   )r<   r~  intrd   r   s   &&r   r4  %ModelAdminChecks._check_list_per_page>  s4     #++S11_#,  Ir.   c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )z+Check that list_max_show_all is an integer.r}  list_max_show_allz
admin.E119r_   )r<   r  r  rd   r   s   &&r   r5  )ModelAdminChecks._check_list_max_show_allH  s5     #//55%8cl  Ir.   c                   a a \        SP                  \        \        34      '       g   \	        RRSRR7      # \        \
        P                  ! VV 3R l\        SP                  4       4       4      4      # )zbCheck that list_editable is a sequence of editable fields from
list_display without first element.r]   list_editablez
admin.E120r_   c              3   \   <"   T F!  w  rSP                  SVR V,          4      x  K#  	  R# 5i)zlist_editable[%d]N)_check_list_editable_itemrF  s   &  r   r5   8ModelAdminChecks._check_list_editable.<locals>.<genexpr>\  s=      $ (D 22T#6#>  (Dr   )r<   r  rb   rc   rd   r   re   rf   r   s   ffr   r6  %ModelAdminChecks._check_list_editableR  si     #++dE];;!/s|  ## $ (11B1B'C	$  r.   c                2    VP                   P                  P                  V4      pW!P                  9  d.   \        P
                  ! R V: RV: R2VP                  RR7      .# VP                  '       d<   W!P                  9   d,   \        P
                  ! RV,          VP                  RR7      .# VP                  ^ ,          V8X  d_   VP                  '       gM   VP                  e?   \        P
                  ! R V: RVP                  ^ ,          : R2VP                  R	R7      .# VP                  '       d   VP                  '       d.   \        P
                  ! R V: RV: R
2VP                  RR7      .# . #   \         d    \        Y#TRR7      u # i ; i)r   r   z,', which is not contained in 'list_display'.z
admin.E122rm   zMThe value of '%s' cannot be in both 'list_editable' and 'list_display_links'.z
admin.E123z0' refers to the first field in 'list_display' ('z<'), which cannot be used unless 'list_display_links' is set.z
admin.E124z+', which is not editable through the admin.z
admin.E125z
admin.E121rn   )rp   rq   rr   rS  r
   r:   ry   rc  editableprimary_keyr   r|   r   s   &&&& r   r  *ModelAdminChecks._check_list_editable_itemd  sw   3	IIOO--j9E !1!11LL:?MMM'	  '''J:P:P,PLL02<=MM'	    #z1...**6 LL #()9)9!)<)<>  MM'  ^^^u'8'8'8LL05zCMM'	  	c ! 	) CL 	s   %E: :FFc                p    \        VP                  \        \        34      '       g   \	        RRVRR7      # . # )z"Check search_fields is a sequence.r]   rx   z
admin.E126r_   )r<   rx   rb   rc   rd   r   s   &&r   r7  %ModelAdminChecks._check_search_fields  s8     #++dE];;!/s|  Ir.   c                V   VP                   f   . #  \        VP                  VP                   4      R,          pVP                  4       R	9  d   \	        RRVRR7      # . #   \
        \        3 d9    \        P                  ! RTP                   ,          TP                  RR7      .u # i ; i)
z?Check that date_hierarchy refers to DateField or DateTimeField.za DateField or DateTimeFielddate_hierarchyz
admin.E128r_   zNThe value of 'date_hierarchy' refers to '%s', which does not refer to a Field.z
admin.E127rm   r\  >   	DateFieldr   )
r  r	   rp   get_internal_typerd   r   r   r
   r:   ry   )rY   ra   ro   s   && r   r8  &ModelAdminChecks._check_date_hierarchy  s     %I,SYY8J8JKBO **,4RR"6/'	  I% %&78 LL57:7I7IJMM'	 s   'A AB('B(c                   . pVP                  4       pV F  w  rEp\        VR 4      '       g   K  VP                   F{  pRV,          p\        W4      '       d   K  VP                  \        P
                  ! VP                  P                  : RV: RVP                  : R2VP                  RR7      4       K}  	  K  	  \        P                  ! R V 4       4      p	V	P                  4        F]  w  rZV
^8  g   K  VP                  \        P
                  ! RVP                  P                  : R	V: R
2VP                  RR7      4       K_  	  V# )allowed_permissionszhas_%s_permissionz must define a z() method for the z action.z
admin.E129rm   c              3   *   "   T F	  w  rqx  K  	  R # 5ir2   r  )r4   _r   s   &  r   r5   2ModelAdminChecks._check_actions.<locals>.<genexpr>  s     #C7ZQaD7s   z*__name__ attributes of actions defined in z must be unique. Name z is not unique.z
admin.E130)_get_base_actionsr!  r  r9   r
   r:   ry   rz   r   r   r   )rY   ra   r+   actionsfuncr   r  
permissionmethod_namenamesr   s   &&         r   r9  ModelAdminChecks._check_actions  s   '') %MD4!677"66
1J>s00MM !$ 6 6 + $	 !$+	 7 %& ###C7#CC ;;=KDqyLL  MM22 	  MM'	 ) r.   r  )rz   r#  r$  r%  r(   r-  r.  r/  rE  r0  rU  r1  re  r2  ro  r3  r4  r5  r6  r  r7  r8  r9  r&  r'  __classcell__ry   r(  s   @@r   r*  r*  6  sm     
$$=L$L29v$4l8( (r.   r*  c                   \   a a ] tR tRt oV 3R ltV 3R ltR tR tR tR t	R t
R	tVtV ;t# )
InlineModelAdminChecksi  c                
  < VP                   p. \        SV `	  V4      OV P                  W4      OV P	                  W4      OV P                  V4      OV P                  V4      OV P                  V4      OV P                  V4      O# r2   )	parent_modelr,  r(   _check_relation_check_exclude_of_parent_model_check_extra_check_max_num_check_min_num_check_formset)rY   
inline_objr*   r  ry   s   &&, r   r(   InlineModelAdminChecks.check  s    !..
W]:&
!!*;
 00J
 z*	

   ,
   ,
   ,
 	
r.   c                  < \         SV `  V4      pV'       d   . # V P                  W4      '       d   . # VP                  f   . # \	        W!P
                  VP                  R7      pVP                  VP                  9   dL   \        P                  ! RVP                  : RVP                  P                  : R2VP                  RR7      .# . # )Nfk_namezCannot exclude the field 'z6', because it is the foreign key to the parent model 'r   z
admin.E201rm   )r,  rP   r  r   r   rp   r  r   r
   r:   rq   r}   ry   )rY   ra   r  r+   fkry   s   &&&  r   r  5InlineModelAdminChecks._check_exclude_of_parent_model  s     ',I 22I;;IlIIs{{K77ckk! $**00	 #	  Ir.   c                     \        W!P                  VP                  R 7       . #   \         d@   p\        P
                  ! TP                  ^ ,          TP                  RR7      .u Rp?# Rp?ii ; i)r  z
admin.E202rm   N)r   rp   r  
ValueErrorr
   r:   argsry   )rY   ra   r  es   &&& r   r  &InlineModelAdminChecks._check_relation  sV    	\99ckkJ I  	QLL,OPP	Qs   !% A/4A*$A/*A/c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )zCheck that extra is an integer.r}  extraz
admin.E203r_   )r<   r  r  rd   r   s   &&r   r  #InlineModelAdminChecks._check_extra  s+     #))S))<S\RRIr.   c                    VP                   f   . # \        VP                   \        4      '       g   \        RRVRR7      # . # )z!Check that max_num is an integer.r}  max_numz
admin.E204r_   )r  r<   r  rd   r   s   &&r   r  %InlineModelAdminChecks._check_max_num'  :     ;;ICKK--<	s|TTIr.   c                    VP                   f   . # \        VP                   \        4      '       g   \        RRVRR7      # . # )z!Check that min_num is an integer.r}  min_numz
admin.E205r_   )r  r<   r  rd   r   s   &&r   r  %InlineModelAdminChecks._check_min_num1  r  r.   c                d    \        VP                  \        4      '       g   \        RRVRR7      # . # )z0Check formset is a subclass of BaseModelFormSet.r   formsetz
admin.E206r   )r   r  r   r   r   s   &&r   r  %InlineModelAdminChecks._check_formset;  s3     3;;(899$))  Ir.   r  )rz   r#  r$  r%  r(   r  r  r  r  r  r  r&  r'  r  r  s   @@r   r  r    s-     

> r.   r  c                 \    \         P                  ! R V: RV : R2VP                  VR7      .# )r   z
' must be rK  rm   r
   r:   ry   )r{   r`   ra   r0   s   &&&&r   rd   rd   F  s*    /5t<	
 r.   c                 \    \         P                  ! R V: RV : R2VP                  VR7      .# )r   z' must inherit from 'r   rm   r  r   s   &&&&r   r   r   P  s*    ;A6J	
 r.   c           	          \         P                  ! R V: RV : RVP                  P                  P                  : R2VP
                  VR7      .# )r   r   z', which is not a field of 'r   rm   )r
   r:   rp   rq   r}   ry   rn   s   &&&&r   r|   r|   Z  s<    uciioo335		
 r.   )+r   	itertoolsr   django.appsr   django.confr   django.contrib.admin.exceptionsr   django.contrib.admin.utilsr   r   r	   django.corer
   django.core.exceptionsr   	django.dbr   django.db.models.constantsr   django.db.models.expressionsr   django.forms.modelsr   r   r   django.templater   django.template.backends.djangor   django.utils.module_loadingr   r   r"   r-   rH   rJ   r*  r  rd   r   r|   r  r.   r   <module>r     s         9 V V  4  1 3 Q Q # ; 5"vrB
 B
Jr+ rjX1 Xvr.   