Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
dj-kaos-users / abstracts.py
Size: Mime:
from django.contrib.auth.models import AbstractUser
from django.db import models
from kaos_utils.behaviors import HasInitials


def user_avatar_path(instance, filename):
    return f"users/{instance.username}/avatars/{filename}"


class AbstractKaosUser(HasInitials, AbstractUser):
    take_initials_from = 'display_name'

    class Meta:
        abstract = True

    avatar = models.ImageField(upload_to=user_avatar_path, blank=True)

    @property
    def name(self):
        return f"{self.first_name} {self.last_name}".strip()

    @property
    def display_name(self):
        return self.name if self.name.strip() else self.username

    def does_belong_to_groups(self, *group_names):
        return self.groups.filter(name__in=group_names).exists()
        # TODO: Check OR and AND