
    `fe                     "   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j                  Z G d dej                  ZdS )    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dS )LogEntryManagerT c                     t          |t                    rt          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          M/var/www/html/env/lib/python3.11/site-packages/django/contrib/admin/models.py
log_actionzLogEntryManager.log_action   sh     nd++ 	8!Z77Nz!((+)nn#DSD)#) ) 
 
 	
    N)r   )__name__
__module____qualname__use_in_migrationsr)    r*   r(   r   r      s3         
 
 
 
 
 
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#dS )LogEntryzaction timeF)defaulteditableuser)verbose_namezcontent typeT)r5   blanknullz	object id)r6   r7   zobject reprr   )
max_lengthzaction flag)choiceszchange message)r6   c                   D    e Zd Z ed          Z ed          ZdZdgZdS )LogEntry.Metaz	log entryzlog entriesdjango_admin_logz-action_timeN)r+   r,   r-   _r5   verbose_name_pluraldb_tableorderingr/   r*   r(   Metar;   N   s8        q~~a..%"#r*   rA   c                 *    t          | j                  S N)r&   action_timer'   s    r(   __repr__zLogEntry.__repr__T   s    4#$$$r*   c                 T   |                                  rt          d          d| j        iz  S |                                 r,t          d          | j        |                                 dz  S |                                 rt          d          d| j        iz  S t          d          S )Nu   Added “%(object)s”.objectu(   Changed “%(object)s” — %(changes)s)rH   changesu   Deleted “%(object)s.”zLogEntry Object)is_additionr   r   	is_changeget_change_messageis_deletionrE   s    r(   __str__zLogEntry.__str__W   s     	W4554CS8TTT^^ 	WEFF*2244J J    	W6778TEU:VVV()))r*   c                 "    | j         t          k    S rC   )r   ADDITIONrE   s    r(   rJ   zLogEntry.is_additiond       8++r*   c                 "    | j         t          k    S rC   )r   CHANGErE   s    r(   rK   zLogEntry.is_changeg   s    6))r*   c                 "    | j         t          k    S rC   )r   DELETIONrE   s    r(   rM   zLogEntry.is_deletionj   rQ   r*   c           	         | j         r<| j         d         dk    r*	 t          j        | j                   }n# t          j        $ r
 | j         cY S w xY wg }|D ]}d|v r|d         rXt	          |d         d                   |d         d<   |                     t	          d          j        di |d                    g|                    t	          d                     d|v rt          d |d         d	         D             t	          d
                    |d         d	<   d|d         v rYt	          |d         d                   |d         d<   |                     t	          d          j        di |d                    -|                     t	          d          j        di |d                    bd|v rWt	          |d         d                   |d         d<   |                     t	          d          j        di |d                    d                    d |D                       }|pt	          d          S | j         S )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.changedc                 ,    g | ]}t          |          S r/   r   ).0
field_names     r(   
<listcomp>z/LogEntry.get_change_message.<locals>.<listcomp>   s0        * $J//  r*   fieldsandu+   Changed {fields} for {name} “{object}”.zChanged {fields}.deletedu   Deleted {name} “{object}”. c              3   `   K   | ])}|d                                           |dd         z   V  *dS )r   r   N)upper)r\   msgs     r(   	<genexpr>z.LogEntry.get_change_message.<locals>.<genexpr>   s;      %S%S3c!fllnns122w&>%S%S%S%S%S%Sr*   zNo fields changed.Nr/   )	r   r!   loadsJSONDecodeErrorr   appendformatr
   join)r'   r   messagessub_messages       r(   rL   zLogEntry.get_change_messagem   s   
  9	'4#6q#9S#@#@+!%D,?!@!@' + + +****+H- . .k))"7+ 
;7>'088 8G,V4 !JG$BCCJ  "-g"6     !(9(9::::+--7D .9).DX.N    8 8K	*84 Y!7779@'	26:: :I.v6 !YG$QRRY  "-i"8     !?G$788?  "-i"8     +--5<#I.v66 6K	*62 OOH @AAH  ))4    !XX%S%S(%S%S%SSSN!BW-A%B%BB&&s   6 AAc                 B    | j                             | j                  S )z7Return the edited object represented by this log entry.)pk)content_typeget_object_for_this_typer   rE   s    r(   get_edited_objectzLogEntry.get_edited_object   s     99T^9LLLr*   c                     | j         rY| j        rRd| j         j        d| j         j        d}	 t	          |t          | j                  f          S # t          $ r Y nw xY wdS )zX
        Return the admin URL to edit the object represented by this log entry.
        zadmin:r=   _change)argsN)rp   r   	app_labelr#   r   r   r   )r'   url_names     r(   get_admin_urlzLogEntry.get_admin_url   s      	 	 	!+++!'''HxuT^/D/D.FGGGG!   ts   #A 
AAN)$r+   r,   r-   r   DateTimeFieldr=   r	   nowrD   
ForeignKeyr   AUTH_USER_MODELCASCADEr4   r   SET_NULLrp   	TextFieldr   	CharFieldr   PositiveSmallIntegerFieldACTION_FLAG_CHOICESr   r   r   r$   rA   rF   rN   rJ   rK   rM   rL   rr   rx   r/   r*   r(   r1   r1   0   s       &&&	-  K
 6 QvYY  D
 %6$Q~&&  L ! ;t$GGGI #&"11]#3#3DDDK2&2	-"5  K &V%aa(8&9&9FFFNoG$ $ $ $ $ $ $ $% % %* * *, , ,* * *, , ,>' >' >'@M M M    r*   r1   )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=   rP   rS   rU   r   Managerr   Modelr1   r/   r*   r(   <module>r      sk                , , , , , , : : : : : :       / / / / / / / / ! ! ! ! ! ! + + + + + + , , , , , , 6 6 6 6 6 6	
 qq}}QQx[[qq}} 
 
 
 
 
fn 
 
 
0N N N N Nv| N N N N Nr*   