a
    ÆZEg"  ã                   @   s\   d 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ZG dd	„ d	eƒZd
S )z»
set_fake_emails.py

    Give all users a new email account. Useful for testing in a
    development environment. As such, this command is only available when
    setting.DEBUG is True.

é    )ÚList)Úsettings)Úget_user_model)ÚBaseCommandÚCommandError)Úsignalcommandz%(username)s@example.comc                       sD   e Zd ZU def Zg Zee ed< ‡ fdd„Z	e
dd„ ƒZ‡  ZS )ÚCommandzŽDEBUG only: give all users a new email based on their account data ("%s" by default). Possible parameters are: username, first_name, last_nameÚrequires_system_checksc                    s–   t ƒ  |¡ |jddtdd� |jddddd	d
d� |jddddd	dd� |jddd dd� |jddd dd� |jddd dd� |jddd dd� d S )Nz--emailÚdefault_emailz!Use this as the new email format.)ÚdestÚdefaultÚhelpz-az
--no-adminÚ
store_trueÚno_adminFz$Do not change administrator accounts)Úactionr   r   r   z-sz
--no-staffÚno_staffzDo not change staff accountsz	--includeÚinclude_regexpz'Include usernames matching this regexp.z	--excludeÚexclude_regexpz'Exclude usernames matching this regexp.z--include-groupsÚinclude_groupszMInclude users matching this group. (use comma seperation for multiple groups)z--exclude-groupsÚexclude_groupszMExclude users matching this group. (use comma seperation for multiple groups))ÚsuperÚadd_argumentsÚadd_argumentÚDEFAULT_FAKE_EMAIL)ÚselfÚparser©Ú	__class__© ún/var/www/sistema_ama/venv/lib/python3.9/site-packages/django_extensions/management/commands/set_fake_emails.pyr      s:    þþþþþþþzCommand.add_argumentsc                 O   sP  t jstdƒ‚ddlm} |d }|d }|d }|d }|d }|d	 }	|d
 }
tƒ }|j ¡ }|	rr|jdd�}|
r‚|jdd�}|r¸|jj	| 
d¡d�}|r¬|j|d�}ntd| ƒ‚|rî|jj	| 
d¡d�}|râ|j	|d�}ntd| ƒ‚|rþ|j|d�}|�r|j	|d�}|D ]&}||j|j|jdœ |_| ¡  �qtd| ¡  ƒ d S )NzOnly available in debug moder   )ÚGroupr
   r   r   r   r   r   r   T)Zis_superuser)Zis_staffú,)Zname__in)Z
groups__inzNo groups matches filter: %s)Zusername__regex)ÚusernameÚ
first_nameÚ	last_namezChanged %d emails)r   ÚDEBUGr   Zdjango.contrib.auth.modelsr    r   ZobjectsÚallÚexcludeÚfilterÚsplitr"   r#   r$   ÚemailÚsaveÚprintÚcount)r   ÚargsÚoptionsr    r*   r   r   r   r   r   r   ZUserZusersÚgroupsÚuserr   r   r   Úhandle9   sJ    
þ
zCommand.handle)Ú__name__Ú
__module__Ú__qualname__r   r   r	   r   ÚstrÚ__annotations__r   r   r2   Ú__classcell__r   r   r   r   r      s
   

r   N)Ú__doc__Útypingr   Zdjango.confr   Zdjango.contrib.authr   Zdjango.core.management.baser   r   Z"django_extensions.management.utilsr   r   r   r   r   r   r   Ú<module>   s   	