a
    XDvg_	  ã                   @   sN   d dl Z d dlmZ d dlmZ d dlmZ d dlm	Z	 G dd„ dej
ƒZdS )é    N)Úsettings)Úmodels)Úgettext_lazy)Úget_current_authenticated_userc                       sX   e Zd ZdZedƒZedeej	d�Z
‡ fdd„Z‡ fdd„Z‡ fd	d
„Zdd„ Z‡  ZS )ÚCurrentUserFieldztYou passed an argument to CurrentUserField that will be ignored. Avoid args and following kwargs: default, null, to.z=as default value sets the current logged in user if availableT)ÚnullÚdefaultÚtoc                    sœ   |  dd¡| _d|v r>|d  ¡ | jd  ¡ kr>| jd |d< | j|i |¤Ž d|vr`tj|d< | jrvd|d< d|d< | | j¡ tt	| ƒj
f i |¤Ž d S )NÚ	on_updateFr	   Ú	on_deleteÚeditableTÚblank)Úpopr
   ÚlowerÚdefaultsÚ_warn_for_shadowing_argsr   ÚCASCADEÚupdateÚsuperr   Ú__init__)ÚselfÚargsÚkwargs©Ú	__class__© ú\/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_currentuser/db/models/fields.pyr      s    ÿ
zCurrentUserField.__init__c                    s>   t t| ƒ ¡ \}}}}| jr2| j|d< |d= |d= ||||fS )Nr
   r   r   )r   r   Údeconstructr
   )r   ÚnameÚpathr   r   r   r   r   r   (   s    
zCurrentUserField.deconstructc                    sB   | j r,tƒ }|d ur|j}t|| j|ƒ |S tt| ƒ ||¡S d S ©N)r
   r   ÚpkÚsetattrÚattnamer   r   Úpre_save)r   Úmodel_instanceÚaddÚvaluer   r   r   r$   1   s    zCurrentUserField.pre_savec                 O   sV   |rt  | j¡ n@t|ƒ t| j ¡ ƒ¡D ]&}|| | j| ks*t  | j¡  qRq*d S r    )ÚwarningsÚwarnÚwarningÚsetÚintersectionr   Úkeys)r   r   r   Úkeyr   r   r   r   ;   s    z)CurrentUserField._warn_for_shadowing_args)Ú__name__Ú
__module__Ú__qualname__r*   Ú_ÚdescriptionÚdictr   r   ÚAUTH_USER_MODELr   r   r   r$   r   Ú__classcell__r   r   r   r   r   	   s   ÿÿ	
r   )r(   Údjango.confr   Ú	django.dbr   Údjango.utils.translationr   r2   Údjango_currentuser.middlewarer   Ú
ForeignKeyr   r   r   r   r   Ú<module>   s
   