Ë
    ¹ûàgü   ã                   ó*  — d dl Z 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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ZdZdZe ed«      fe ed«      fe ed«      fgZ G d„ de	j6                  «      Z G d„ de	j:                  «      Zy)é    N)Úsettings)Úquote)ÚContentType)Úmodels)ÚNoReverseMatchÚreverse)Útimezone)ÚRemovedInDjango60Warning)Úget_text_list)Úgettext)Úgettext_lazyé   é   é   ÚAdditionÚChangeÚDeletionc                   ó*   — e Zd ZdZ	 dd„Z	 dddœd„Zy)ÚLogEntryManagerTc                 óò   — t        j                  dt        d¬«       t        |t        «      rt        j                  |«      }| j                  j                  j                  ||t        |«      |d d ||¬«      S )NzFLogEntryManager.log_action() is deprecated. Use log_actions() instead.r   ©Ú
stackleveléÈ   ©Úuser_idÚcontent_type_idÚ	object_idÚobject_reprÚaction_flagÚchange_message)ÚwarningsÚwarnr
   Ú
isinstanceÚlistÚjsonÚdumpsÚmodelÚobjectsÚcreateÚstr)Úselfr   r   r   r   r   r    s          úY/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/django/contrib/admin/models.pyÚ
log_actionzLogEntryManager.log_action   sr   € ô 	�‰ØTÜ$Øõ	
ô
 �n¤dÔ+Ü!ŸZ™Z¨Ó7ˆNØ�z‰z×!Ñ!×(Ñ(ØØ+Ü˜)“nØ# D SÐ)Ø#Ø)ð )ó 
ð 	
ó    F)Úsingle_objectc                óì  — t        | «      j                  t        j                  k7  r}t        j                  dt
        d¬«       |D �cg c]U  }| j                  |t        j                  j                  |d¬«      j                  |j                  t        |«      ||¬«      ‘ŒW c}S t        |t        «      rt        j                  |«      }|D �cg c]X  }| j!                  |t        j                  j                  |d¬«      j                  |j                  t        |«      d d ||¬«      ‘ŒZ }}|r|r|d   }|j#                  «        |S | j                   j                  j%                  |«      S c c}w c c}w )	NzIThe usage of log_action() is deprecated. Implement log_actions() instead.r   r   F)Úfor_concrete_modelr   r   r   )Útyper-   r   r!   r"   r
   r   r(   Úget_for_modelÚidÚpkr*   r#   r$   r%   r&   r'   ÚsaveÚbulk_create)	r+   r   Úquerysetr   r    r/   ÚobjÚlog_entry_listÚinstances	            r,   Úlog_actionszLogEntryManager.log_actions6   sj  € ô �‹:× Ñ ¤O×$>Ñ$>Ò>Ü�M‰Mðä(Øõ	ð" $öð ð —‘Ø#Ü$/×$7Ñ$7×$EÑ$EØ°ð %Fó %ç‘bØ!Ÿf™fÜ # C£Ø +Ø#1ð  õ 	òð ô �n¤dÔ+Ü!ŸZ™Z¨Ó7ˆNð  ö
ð ð �J‰JØÜ +× 3Ñ 3× AÑ AØ¨Eð !Bó !ç‘"ØŸ&™&Ü ›H T c˜NØ'Ø-ð õ 	ð
ˆð 
ñ ™^Ø% aÑ(ˆHØ�M‰MŒOØˆOà�z‰z×!Ñ!×-Ñ-¨nÓ=Ð=ùòIùò"
s   ÁAE,ÃAE1N)Ú )Ú__name__Ú
__module__Ú__qualname__Úuse_in_migrationsr-   r<   © r.   r,   r   r      s%   „ ØÐð ó
ð4 >@ð/>ØRWõ/>r.   r   c                   ó&  — e Zd Z ej                   ed«      ej                  d¬«      Z ej                  e
j                  ej                   ed«      ¬«      Z ej                  eej                   ed«      dd¬«      Z ej"                   ed	«      dd¬
«      Z ej&                   ed«      d¬«      Z ej*                   ed«      e¬«      Z ej"                   ed«      d¬«      Z e«       Z G d„ d«      Zd„ Zd„ Zd„ Zd„ Zd„ Z d„ Z!d„ Z"d„ Z#y)ÚLogEntryzaction timeF)ÚdefaultÚeditableÚuser)Úverbose_namezcontent typeT)rH   ÚblankÚnullz	object id)rI   rJ   zobject reprr   )Ú
max_lengthzaction flag)Úchoiceszchange message)rI   c                   ó6   — e Zd Z ed«      Z ed«      ZdZdgZy)úLogEntry.Metaz	log entryzlog entriesÚdjango_admin_logz-action_timeN)r>   r?   r@   Ú_rH   Úverbose_name_pluralÚdb_tableÚorderingrB   r.   r,   ÚMetarN   †   s#   „ Ù˜“~ˆÙ Ó.ÐØ%ˆØ"Ð#‰r.   rT   c                 ó,   — t        | j                  «      S ©N)r*   Úaction_time©r+   s    r,   Ú__repr__zLogEntry.__repr__Œ   s   € Ü�4×#Ñ#Ó$Ð$r.   c                 ó2  — | j                  «       rt        d«      d| j                  iz  S | j                  «       r)t        d«      | j                  | j	                  «       dœz  S | j                  «       rt        d«      d| j                  iz  S t        d«      S )Nu   Added â€œ%(object)sâ€�.Úobjectu(   Changed â€œ%(object)sâ€� â€” %(changes)s)r[   Úchangesu   Deleted â€œ%(object)s.â€�zLogEntry Object)Úis_additionr   r   Ú	is_changeÚget_change_messageÚis_deletionrX   s    r,   Ú__str__zLogEntry.__str__�   s˜   € Ø×ÑÔÜÐ4Ó5¸À4×CSÑCSÐ8TÑTÐTØ�^‰^ÔÜÐEÓFØ×*Ñ*Ø×2Ñ2Ó4ñJñ ð ð ×ÑÔÜÐ6Ó7¸8ÀT×EUÑEUÐ:VÑVÐVäÐ(Ó)Ð)r.   c                 ó(   — | j                   t        k(  S rV   )r   ÚADDITIONrX   s    r,   r]   zLogEntry.is_additionœ   ó   € Ø×Ñ¤8Ñ+Ð+r.   c                 ó(   — | j                   t        k(  S rV   )r   ÚCHANGErX   s    r,   r^   zLogEntry.is_changeŸ   s   € Ø×Ñ¤6Ñ)Ð)r.   c                 ó(   — | j                   t        k(  S rV   )r   ÚDELETIONrX   s    r,   r`   zLogEntry.is_deletion¢   rd   r.   c           	      ó&  — | j                   �rÏ| j                   d   dk(  �r¼	 t        j                  | j                   «      }g }|D �]m  }d|v re|d   rEt	        |d   d   «      |d   d<   |j                   t	        d«      j                  di |d   ¤Ž«       ŒR|j                  t	        d«      «       Œmd|v r³t        |d   d   D �cg c]  }t	        |«      ‘Œ c}t	        d	«      «      |d   d<   d|d   v rEt	        |d   d   «      |d   d<   |j                   t	        d
«      j                  di |d   ¤Ž«       Œõ|j                   t	        d«      j                  di |d   ¤Ž«       �Œ$d|v s�Œ*t	        |d   d   «      |d   d<   |j                   t	        d«      j                  di |d   ¤Ž«       �Œp dj                  d„ |D «       «      }|xs t	        d«      S | j                   S # t        j                  $ r | j                   cY S w xY wc c}w )z{
        If self.change_message is a JSON structure, interpret it as a change
        string, properly translated.
        r   ú[ÚaddedÚnameu   Added {name} â€œ{object}â€�.zAdded.ÚchangedÚfieldsÚandu+   Changed {fields} for {name} â€œ{object}â€�.zChanged {fields}.Údeletedu   Deleted {name} â€œ{object}â€�.ú c              3   óN   K  — | ]  }|d    j                  «       |dd z   –— Œ y­w)r   r   N)Úupper)Ú.0Úmsgs     r,   ú	<genexpr>z.LogEntry.get_change_message.<locals>.<genexpr>à   s%   è ø€ Ò%SÀ3 c¨!¡f§l¡l£n°s¸1¸2°wÕ&>Ñ%Sùs   ‚#%zNo fields changed.rB   )	r    r%   ÚloadsÚJSONDecodeErrorr   ÚappendÚformatr   Újoin)r+   r    ÚmessagesÚsub_messageÚ
field_names        r,   r_   zLogEntry.get_change_message¥   sZ  € ð
 ×Ó 4×#6Ñ#6°qÑ#9¸SÓ#@ð+Ü!%§¡¨D×,?Ñ,?Ó!@�ð ˆHØ-ó .�Ø˜kÑ)Ø" 7Ò+Ü7>Ø'¨Ñ0°Ñ8ó8˜ GÑ,¨VÑ4ð !Ÿ™ØJœGÐ$BÓC×JÑJñ Ø"-¨gÑ"6ñõð !Ÿ™¬°Ó(9Õ:à +Ñ-Ü7Dð /:¸)Ñ.DÀXÑ.Nöà *ô $ JÕ/òô   ›ó8�K 	Ñ*¨8Ñ4ð  ¨YÑ!7Ñ7Ü9@Ø'¨	Ñ2°6Ñ:ó:˜ IÑ.¨vÑ6ð !Ÿ™ØYœGÐ$QÓR×YÑYñ Ø"-¨iÑ"8ñõð !Ÿ™Ø?œGÐ$7Ó8×?Ñ?ñ Ø"-¨iÑ"8ñöð  +Ó-Ü5<Ø# IÑ.¨vÑ6ó6�K 	Ñ*¨6Ñ2ð —O‘OØHœÐ @ÓA×HÑHñ Ø)¨)Ñ4ñöðU.ð` !ŸX™XÑ%SÈ(Ô%SÓSˆNØ!ÒB¤WÐ-AÓ%BÐBà×&Ñ&Ð&øôm ×'Ñ'ò +Ø×*Ñ*Ò*ð+üò&s   ¢G) ÃH
Ç)HÈ
Hc                 óN   — | j                   j                  | j                  ¬«      S )z7Return the edited object represented by this log entry.)r5   )Úcontent_typeÚget_object_for_this_typer   rX   s    r,   Úget_edited_objectzLogEntry.get_edited_objectå   s    € à× Ñ ×9Ñ9¸T¿^¹^Ð9ÓLÐLr.   c                 óø   — | j                   r_| j                  rSd| j                   j                  ›d| j                   j                  ›d�}	 t	        |t        | j                  «      f¬«      S y# t        $ r Y yw xY w)zX
        Return the admin URL to edit the object represented by this log entry.
        zadmin:rP   Ú_change)ÚargsN)r€   r   Ú	app_labelr'   r   r   r   )r+   Úurl_names     r,   Úget_admin_urlzLogEntry.get_admin_urlé   sr   € ð ×Ò §£à×!Ñ!×+Ó+Ø×!Ñ!×'Ó'ðˆHðÜ˜x¬u°T·^±^Ó/DÐ.FÔGÐGð øô "ò ØØðús   Á A- Á-	A9Á8A9N)$r>   r?   r@   r   ÚDateTimeFieldrP   r	   ÚnowrW   Ú
ForeignKeyr   ÚAUTH_USER_MODELÚCASCADErG   r   ÚSET_NULLr€   Ú	TextFieldr   Ú	CharFieldr   ÚPositiveSmallIntegerFieldÚACTION_FLAG_CHOICESr   r    r   r(   rT   rY   ra   r]   r^   r`   r_   r‚   rˆ   rB   r.   r,   rD   rD   h   s)  „ Ø&�&×&Ñ&Ù	ˆ-ÓØ—‘Øô€Kð
 ˆ6×ÑØ× Ñ Ø�‰Ù�v“Yô€Dð
 %�6×$Ñ$ØØ�‰Ù�~Ó&ØØô€Lð !�× Ñ ¡ ;£°tÀ$ÔG€Ið #�&×"Ñ"¡1 ]Ó#3ÀÔD€KØ2�&×2Ñ2Ù	ˆ-ÓÐ"5ô€Kð &�V×%Ñ%¡aÐ(8Ó&9ÀÔF€NáÓ€G÷$ñ $ò%ò*ò,ò*ò,ò>'ò@Mór.   rD   )r%   r!   Údjango.confr   Údjango.contrib.admin.utilsr   Ú"django.contrib.contenttypes.modelsr   Ú	django.dbr   Údjango.urlsr   r   Údjango.utilsr	   Údjango.utils.deprecationr
   Údjango.utils.textr   Údjango.utils.translationr   r   rP   rc   rf   rh   r’   ÚManagerr   ÚModelrD   rB   r.   r,   ú<module>rž      s‹   ðÛ Û å  Ý ,Ý :Ý ß /Ý !Ý =Ý +Ý ,Ý 6à€Ø	
€Ø€ð ‰q�‹}ÐØ‰Qˆx‹[ÐØ‰q�‹}ÐðÐ ôK>�f—n‘nô K>ô\Nˆv�|‰|õ Nr.   