a
    9Xh_	                     @   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	   Z	on_deleteeditableTblank)popr
   lowerdefaults_warn_for_shadowing_argsr   ZCASCADEupdatesuperr   __init__)selfargskwargs	__class__ h/var/www/viveiro_mudafortebrasil/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setattrZattnamer   r   pre_save)r   Z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   ZAUTH_USER_MODELr   r   r   r!   r   __classcell__r   r   r   r   r   	   s   	
r   )r$   Zdjango.confr   Z	django.dbr   Zdjango.utils.translationr   r.   Zdjango_currentuser.middlewarer   Z
ForeignKeyr   r   r   r   r   <module>   s
   