
    S{Ig                      6   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	j                  Z G d de	j                  ZdS )    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dS )	LogEntryManagerT c                     t          j        dt          d           t          |t                    rt          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          ]/var/www/CMSBlueprintStation/venv/lib/python3.11/site-packages/django/contrib/admin/models.py
log_actionzLogEntryManager.log_action   s     	T$	
 	
 	
 	

 nd++ 	8!Z77Nz!((+)nn#DSD)#) ) 
 
 	
    F)single_objectc                    t                     j        t          j        k    r-t          j        dt
          d            fd|D             S t          t                    rt          j	                   fd|D             }|r |r|d         }|
                                 |S  j        j                            |          S )NzIThe usage of log_action() is deprecated. Implement log_actions() instead.r   r   c           
          g | ]S}                     t          j                            |d           j        |j        t          |                    TS )Ffor_concrete_modelr   )r/   r   r*   get_for_modelidpkr,   .0objr!   r"   r-   r   s     r.   
<listcomp>z/LogEntryManager.log_actions.<locals>.<listcomp>A   sy         #$/$7$E$E %F % %!f #C +#1   	 	  r0   c           
          g | ][}                     t          j                            |d           j        |j        t          |          dd                   \S )Fr4   Nr   r   )r)   r   r*   r6   r7   r8   r,   r9   s     r.   r<   z/LogEntryManager.log_actions.<locals>.<listcomp>R   s     
 
 
  JJ + 3 A AE !B ! !&HHTcTN'-  	 	
 
 
r0   r   )typer/   r   r#   r$   r
   r%   r&   r'   r(   saver)   r*   bulk_create)r-   r   querysetr!   r"   r1   log_entry_listinstances   `` ``   r.   log_actionszLogEntryManager.log_actions6   s!    :: O$>>>M(	          $    nd++ 	8!Z77N
 
 
 
 
 
 
  
 
 
  	^ 	%a(HMMOOOOz!--n===r0   N)r   )__name__
__module____qualname__use_in_migrationsr/   rD    r0   r.   r   r      sZ         
 
 
 
4 >@/>RW/> /> /> /> /> /> />r0   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)rO   blanknullz	object id)rP   rQ   zobject reprr   )
max_lengthzaction flag)choiceszchange message)rP   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)rE   rF   rG   _rO   verbose_name_pluraldb_tableorderingrI   r0   r.   MetarU      s8        q~~a..%"#r0   r[   c                 *    t          | j                  S N)r,   action_timer-   s    r.   __repr__zLogEntry.__repr__   s    4#$$$r0   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)rb   changesu   Deleted “%(object)s.”zLogEntry Object)is_additionr   r    	is_changeget_change_messageis_deletionr_   s    r.   __str__zLogEntry.__str__   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()))r0   c                 "    | j         t          k    S r]   )r!   ADDITIONr_   s    r.   rd   zLogEntry.is_addition       8++r0   c                 "    | j         t          k    S r]   )r!   CHANGEr_   s    r.   re   zLogEntry.is_change   s    6))r0   c                 "    | j         t          k    S r]   )r!   DELETIONr_   s    r.   rg   zLogEntry.is_deletion   rk   r0   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 rI   r   )r:   
field_names     r.   r<   z/LogEntry.get_change_message.<locals>.<listcomp>   s0        * $J//  r0   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%Sr0   zNo fields changed.NrI   )	r"   r'   loadsJSONDecodeErrorr   appendformatr   join)r-   r"   messagessub_messages       r.   rf   zLogEntry.get_change_message   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.)r8   )content_typeget_object_for_this_typer   r_   s    r.   get_edited_objectzLogEntry.get_edited_object   s     99T^9LLLr0   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:rW   _change)argsN)r   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)$rE   rF   rG   r   DateTimeFieldrW   r	   nowr^   
ForeignKeyr   AUTH_USER_MODELCASCADErN   r   SET_NULLr   	TextFieldr   	CharFieldr    PositiveSmallIntegerFieldACTION_FLAG_CHOICESr!   r"   r   r*   r[   r`   rh   rd   re   rg   rf   r   r   rI   r0   r.   rK   rK   h   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    r0   rK   )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   rW   rj   rm   ro   r   Managerr   ModelrK   rI   r0   r.   <module>r      s                 , , , , , , : : : : : :       / / / / / / / / ! ! ! ! ! ! = = = = = = + + + + + + , , , , , , 6 6 6 6 6 6	
 qq}}QQx[[qq}} K> K> K> K> K>fn K> K> K>\N N N N Nv| N N N N Nr0   