3
͋ao
                 @   sr   d dl m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 G dd de
ZG d	d
 d
e	eZdS )    )unicode_literals)models)	send_mail)PermissionsMixin)AbstractBaseUserBaseUserManager)ugettext_lazyc               @   s*   e Zd ZdZdd Zd	ddZdd ZdS )
UserManagerTc             K   sF   |st d| j|}| jf d|i|}|j| |j| jd |S )zM
        Creates and saves a User with the given email and password.
        zThe given email must be setemail)using)
ValueErrornormalize_emailmodelset_passwordsave_db)selfr
   passwordextra_fieldsuser r   +/var/www/cryptounicorn/Backend/bo/models.py_create_user   s    

zUserManager._create_userNc             K   s   |j dd | j||f|S )Nis_superuserF)
setdefaultr   )r   r
   r   r   r   r   r   create_user   s    zUserManager.create_userc             K   s2   |j dd |jddk	r"td| j||f|S )Nr   Tz&Superuser must have is_superuser=True.)r   getr   r   )r   r
   r   r   r   r   r   create_superuser   s    zUserManager.create_superuser)N)__name__
__module____qualname__use_in_migrationsr   r   r   r   r   r   r   r	   	   s   
r	   c               @   s   e Zd ZejedddZejeddddZejeddddZ	ejed	dddZ
ejed
dddZejedddZejedddZejddddZe ZdZg ZG dd dZdd Zdd ZdddZdS )Userzemail addressT)uniquezWallet address   )
max_lengthblankusername   z
first namez	last namezdate joined)auto_now_addactive)defaultzavatars/)	upload_tonullr&   r
   c               @   s   e Zd ZedZedZdS )z	User.Metar   usersN)r   r   r    _verbose_nameverbose_name_pluralr   r   r   r   Meta3   s   r2   c             C   s   d| j | jf }|j S )zU
        Returns the first_name plus the last_name, with a space in between.
        z%s %s)
first_name	last_namestrip)r   	full_namer   r   r   get_full_name7   s    zUser.get_full_namec             C   s   | j S )z6
        Returns the short name for the user.
        )r3   )r   r   r   r   get_short_name>   s    zUser.get_short_nameNc             K   s   t |||| jgf| dS )z.
        Sends an email to this User.
        N)r   r
   )r   subjectmessage
from_emailkwargsr   r   r   
email_userD   s    zUser.email_user)N)r   r   r    r   
EmailFieldr/   r
   	CharFieldZethereumAddressZuserNamer3   r4   DateTimeFielddate_joinedBooleanField	is_active
ImageFieldZavatarr	   objectsUSERNAME_FIELDREQUIRED_FIELDSr2   r7   r8   r=   r   r   r   r   r"   $   s   r"   N)Z
__future__r   	django.dbr   django.core.mailr   django.contrib.auth.modelsr   django.contrib.auth.base_userr   r   django.utils.translationr   r/   r	   r"   r   r   r   r   <module>   s   