
    Gwge                        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ZdZdZe ed      fe ed      fe ed      fgZ G d dej0                        Z G d dej4                        Zy)    N)settings)quote)ContentType)models)NoReverseMatchreverse)timezone)get_text_list)gettext)gettext_lazy         AdditionChangeDeletionc                       e Zd ZdZ	 ddZy)LogEntryManagerTc                     t        |t              rt        j                  |      }| j                  j
                  j                  ||t        |      |d d ||      S )N   )user_idcontent_type_id	object_idobject_repraction_flagchange_message)
isinstancelistjsondumpsmodelobjectscreatestr)selfr   r   r   r   r   r   s          R/var/www/horilla/myenv/lib/python3.12/site-packages/django/contrib/admin/models.py
log_actionzLogEntryManager.log_action   s[     nd+!ZZ7Nzz!!((+)n#DS)#) ) 
 	
    N) )__name__
__module____qualname__use_in_migrationsr'    r(   r&   r   r      s     
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)r4   blanknullz	object id)r5   r6   zobject reprr   )
max_lengthzaction flag)choiceszchange message)r5   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,   _r4   verbose_name_pluraldb_tableorderingr.   r(   r&   Metar:   N   s#    ~.%"#r(   r@   c                 ,    t        | j                        S N)r$   action_timer%   s    r&   __repr__zLogEntry.__repr__T   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)rG   changesu   Deleted “%(object)s.”zLogEntry Object)is_additionr   r   	is_changeget_change_messageis_deletionrD   s    r&   __str__zLogEntry.__str__W   s    454CSCS8TTT^^EF**224J   678TEUEU:VVV())r(   c                 (    | j                   t        k(  S rB   )r   ADDITIONrD   s    r&   rI   zLogEntry.is_additiond       8++r(   c                 (    | j                   t        k(  S rB   )r   CHANGErD   s    r&   rJ   zLogEntry.is_changeg   s    6))r(   c                 (    | j                   t        k(  S rB   )r   DELETIONrD   s    r&   rL   zLogEntry.is_deletionj   rP   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 rt        |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%     %S3c!fllns12w&>%Ss   #%zNo fields changed.r.   )	r   r   loadsJSONDecodeErrorr   appendformatr
   join)r%   r   messagessub_message
field_names        r&   rK   zLogEntry.get_change_messagem   sZ   
 4#6#6q#9S#@+!%D,?,?!@ H- .k)"7+7>'088G,V4 !JG$BCJJ "-g"6 !(9:+-7D /:).DX.N * $J/  8K	*84 Y!779@'	26::I.v6 !YG$QRYY "-i"8 !?G$78?? "-i"8 +-5<#I.v66K	*62 OOH @AHH ))4U.` !XX%S(%SSN!BW-A%BB&&&m '' +***+&s   G) H
)H
Hc                 N    | j                   j                  | j                        S )z7Return the edited object represented by this log entry.)pk)content_typeget_object_for_this_typer   rD   s    r&   get_edited_objectzLogEntry.get_edited_object   s       99T^^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:r<   _change)argsN)rm   r   	app_labelr!   r   r   r   )r%   url_names     r&   get_admin_urlzLogEntry.get_admin_url   sr     !!++!!''HxuT^^/D.FGG  " s    A- -	A98A9N)$r*   r+   r,   r   DateTimeFieldr<   r	   nowrC   
ForeignKeyr   AUTH_USER_MODELCASCADEr3   r   SET_NULLrm   	TextFieldr   	CharFieldr   PositiveSmallIntegerFieldACTION_FLAG_CHOICESr   r   r   r"   r@   rE   rM   rI   rJ   rL   rK   ro   ru   r.   r(   r&   r0   r0   0   s)   &&&&	-K
 6  vYD
 %6$$~&L !  ;t$GI #&""1]#3DK2&22	-"5K &V%%a(8&9FNG$ $%*,*,>'@Mr(   r0   )r   django.confr   django.contrib.admin.utilsr   "django.contrib.contenttypes.modelsr   	django.dbr   django.urlsr   r   django.utilsr	   django.utils.textr
   django.utils.translationr   r   r<   rO   rR   rT   r   Managerr   Modelr0   r.   r(   r&   <module>r      s       , :  / ! + , 6	
 q}Qx[q} 
fnn 
0Nv|| Nr(   