profiles_api.models.UserProfile.get_short_name()   A
last analyzed

Complexity

Conditions 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 2
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nop 1
1
from django.contrib.auth.models import (
2
    AbstractBaseUser, BaseUserManager, PermissionsMixin)
3
from django.db import models
4
5
6
class UserProfileManager(BaseUserManager):
7
    """Helps django to work with users."""
8
9
    def create_user(self, email, name, password=None):
10
        """Creating user."""
11
12
        if not email:
13
            raise ValueError('An email required.')
14
15
        email = self.normalize_email(email)
16
        user = self.model(email=email, name=name)
17
18
        user.set_password(password)
19
        user.save(using=self._db)
20
21
        return user
22
23
    def create_superuser(self, email, name, password):
24
        """Creating superuser."""
25
26
        user = self.create_user(email, name, password)
27
28
        user.is_superuser = True
29
        user.is_staff = True
30
31
        user.save(using=self._db)
32
33
        return user
34
35
36
class UserProfile(AbstractBaseUser, PermissionsMixin):
37
    """This models is showing our user profiles."""
38
39
    email = models.EmailField(max_length=255, unique=True)
40
    name = models.CharField(max_length=255)
41
    is_active = models.BooleanField(default=True)
42
    is_staff = models.BooleanField(default=False)
43
44
    objects = UserProfileManager()
45
46
    USERNAME_FIELD = 'email' 
47
    REQUIRED_FIELDS = ['name']
48
49
    def get_full_name(self):
50
        """Used to get a user full name."""
51
52
        return self.name
53
54
    def get_short_name(self):
55
        """Used to get a user short name."""
56
57
        return self.name
58
59
    def __str__(self):
60
        """Representation of the objects in string form."""
61
62
        return self.email
63
64
65
class ProfileFeedItem(models.Model):
66
    """Profile status update."""
67
68
    user_profile = models.ForeignKey('UserProfile', on_delete=models.CASCADE)
69
    status_text = models.CharField(max_length=255)
70
    created_on = models.DateTimeField(auto_now_add=True)
71
72
    def __str__(self):
73
        """Represent of ProfileFeedItem objects."""
74
75
        return self.status_text
76