diff --git a/greenmine/base/users/models.py b/greenmine/base/users/models.py index e972e990..6312f78e 100644 --- a/greenmine/base/users/models.py +++ b/greenmine/base/users/models.py @@ -28,6 +28,9 @@ class User(WatcherMixin, AbstractUser): class Meta: ordering = ["username"] + def get_full_name(self): + return super().get_full_name() or self.username or self.email + class Role(models.Model): name = models.CharField(max_length=200, null=False, blank=False, diff --git a/greenmine/base/users/serializers.py b/greenmine/base/users/serializers.py index 8f2644e9..7615582d 100644 --- a/greenmine/base/users/serializers.py +++ b/greenmine/base/users/serializers.py @@ -6,11 +6,13 @@ from .models import User, Role class UserSerializer(serializers.ModelSerializer): projects = serializers.SerializerMethodField('get_projects') + full_name = serializers.CharField(source='get_full_name', required=False) + class Meta: model = User - fields = ('id', 'username', 'first_name', 'last_name', 'email', 'color', - 'description', 'default_language', 'default_timezone', 'is_active', - 'photo', 'projects') + fields = ('id', 'username', 'first_name', 'last_name', 'full_name', 'email', + 'color', 'description', 'default_language', 'default_timezone', + 'is_active', 'photo', 'projects') def get_projects(self, obj): return [{"id": x.id, "name": x.name} for x in obj.projects.all()]