3
g	                 @   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| |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__ v/var/www/tester-filtro-web/env/lib/python3.6/site-packages/django_extensions/management/commands/update_permissions.pyr      s    zCommand.add_argumentsc             O   s0  |d r&|d j d}dd |D }ntj }|d r@d\}}n|d rRd\}}nd\}}x|D ]}|rvt||d	  |r`x|j D ]}tjj|}	xt|j	D ]\}
}yt
jj|
|	d
}W n t
jk
r   wY nX |j|krt|}||_|d	 dkr| jj| jjd||f  |j  qW qW q`W d S )Nr   ,c             S   s   g | ]}t j|qS r   )django_appsZget_app_config).0xr   r   r   
<listcomp>   s    z"Command.handle.<locals>.<listcomp>Zcreate_onlyTFZupdate_only	verbosity)codenamecontent_type   zUpdate permission '%s' to '%s')TF)FT)TT)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   