a
    ÆZEg¸	  ã                   @   s`   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 G dd„ deƒZd	S )
é    )Úapps)Úcreate_permissionsÚ_get_all_permissions)Ú
Permission)ÚContentType)ÚBaseCommand)Úsignalcommandc                       s,   e Zd ZdZ‡ fdd„Zedd„ ƒZ‡  ZS )ÚCommandzLreloads permissions for specified apps, or all apps if no args are specifiedc                    sD   t ƒ  |¡ |jdddd� |jddddd	� |jd
dddd	� d S )Nz--appsr   z2Reload permissions only for apps (comma separated))ÚdestÚhelpz--create-onlyÚ
store_trueFzOnly create missing permissions)ÚactionÚdefaultr   z--update-onlyzOnly update permissions)ÚsuperÚadd_argumentsÚadd_argument)ÚselfÚparser©Ú	__class__© úq/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/management/commands/update_permissions.pyr      s    zCommand.add_argumentsc                 O   s$  |d r&|d   d¡}dd„ |D ƒ}nt ¡ }|d r@d\}}n|d rRd\}}nd	\}}|D ]À}|rtt||d
 ƒ |r^| ¡ D ]œ}tj |¡}	t|j	ƒD ]€\}
}zt
jj|
|	d�}W n t
jyÎ   Y qšY n0 |j|kršt|ƒ}||_|d
 dk�r| j | j d||f ¡¡ | ¡  qšq€q^d S )Nr   ú,c                 S   s   g | ]}t  |¡‘qS r   )Údjango_appsZget_app_config)Ú.0Úxr   r   r   Ú
<listcomp>   ó    z"Command.handle.<locals>.<listcomp>Zcreate_only)TFZupdate_only)FT)TTÚ	verbosity)ÚcodenameÚcontent_typeé   zUpdate permission '%s' to '%s')Úsplitr   Zget_app_configsr   Z
get_modelsr   ZobjectsZget_for_modelr   Z_metar   ÚgetZDoesNotExistÚnameÚstrÚstdoutÚwriteÚstyleÚSUCCESSÚsave)r   ÚargsÚoptionsZ	app_namesr   Z	do_createZ	do_updateZappÚmodelr    r   r$   Z
permissionZold_strr   r   r   Úhandle   s4    



zCommand.handle)Ú__name__Ú
__module__Ú__qualname__r   r   r   r.   Ú__classcell__r   r   r   r   r	      s   r	   N)Zdjango.appsr   r   Zdjango.contrib.auth.managementr   r   Zdjango.contrib.auth.modelsr   Z"django.contrib.contenttypes.modelsr   Zdjango.core.management.baser   Z"django_extensions.management.utilsr   r	   r   r   r   r   Ú<module>   s   