From 07a48372e30291f8a37aeb237a0f659cb8d4f0c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Wed, 24 Jun 2015 16:00:31 +0200 Subject: [PATCH 1/3] Add user info to the HistoryEntrySerializer --- taiga/projects/history/serializers.py | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/taiga/projects/history/serializers.py b/taiga/projects/history/serializers.py index 4834e504..2b5f4e00 100644 --- a/taiga/projects/history/serializers.py +++ b/taiga/projects/history/serializers.py @@ -17,17 +17,34 @@ from taiga.base.api import serializers from taiga.base.fields import JsonField, I18NJsonField +from taiga.users.services import get_photo_or_gravatar_url + from . import models + HISTORY_ENTRY_I18N_FIELDS=("points", "status", "severity", "priority", "type") + class HistoryEntrySerializer(serializers.ModelSerializer): diff = JsonField() snapshot = JsonField() values = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS) values_diff = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS) - user = JsonField() + user = serializers.SerializerMethodField("get_user") delete_comment_user = JsonField() class Meta: model = models.HistoryEntry + + def get_user(self, entry): + user = {"pk": None, "username": None, "name": None, "photo": None, "is_active": False} + user.update(entry.user) + + user["photo"] = get_photo_or_gravatar_url(entry.owner) + user["is_active"] = entry.owner.is_active + + if entry.owner.is_active or entry.owner.is_system: + user["name"] = entry.owner.get_full_name() + user["username"] = entry.owner.username + + return user From 45186558a7379df8f1df12b83ad89b051a035d24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 26 Jun 2015 12:40:16 +0200 Subject: [PATCH 2/3] Added owner extra info to serializers --- taiga/projects/issues/serializers.py | 1 + taiga/projects/tasks/serializers.py | 1 + taiga/projects/userstories/serializers.py | 1 + 3 files changed, 3 insertions(+) diff --git a/taiga/projects/issues/serializers.py b/taiga/projects/issues/serializers.py index dd0d4ef5..77b22bc5 100644 --- a/taiga/projects/issues/serializers.py +++ b/taiga/projects/issues/serializers.py @@ -40,6 +40,7 @@ class IssueSerializer(WatchersValidator, serializers.ModelSerializer): votes = serializers.SerializerMethodField("get_votes_number") status_extra_info = BasicIssueStatusSerializer(source="status", required=False, read_only=True) assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) + owner_extra_info = UserBasicInfoSerializer(source="owner", required=False, read_only=True) class Meta: model = models.Issue diff --git a/taiga/projects/tasks/serializers.py b/taiga/projects/tasks/serializers.py index 30a63d1b..131bb75b 100644 --- a/taiga/projects/tasks/serializers.py +++ b/taiga/projects/tasks/serializers.py @@ -42,6 +42,7 @@ class TaskSerializer(WatchersValidator, serializers.ModelSerializer): is_closed = serializers.SerializerMethodField("get_is_closed") status_extra_info = BasicTaskStatusSerializerSerializer(source="status", required=False, read_only=True) assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) + owner_extra_info = UserBasicInfoSerializer(source="owner", required=False, read_only=True) class Meta: model = models.Task diff --git a/taiga/projects/userstories/serializers.py b/taiga/projects/userstories/serializers.py index 30129e7b..1773776f 100644 --- a/taiga/projects/userstories/serializers.py +++ b/taiga/projects/userstories/serializers.py @@ -55,6 +55,7 @@ class UserStorySerializer(WatchersValidator, serializers.ModelSerializer): description_html = serializers.SerializerMethodField("get_description_html") status_extra_info = BasicUserStoryStatusSerializer(source="status", required=False, read_only=True) assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", required=False, read_only=True) + owner_extra_info = UserBasicInfoSerializer(source="owner", required=False, read_only=True) class Meta: model = models.UserStory From 2d2528608496bc319aa1bc9b472a64d30af25c0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Barrag=C3=A1n=20Merino?= Date: Fri, 26 Jun 2015 12:45:48 +0200 Subject: [PATCH 3/3] Add is_active to UserBasicInfoSerializer --- taiga/users/serializers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/taiga/users/serializers.py b/taiga/users/serializers.py index 1a22ff70..115462be 100644 --- a/taiga/users/serializers.py +++ b/taiga/users/serializers.py @@ -111,7 +111,7 @@ class UserAdminSerializer(UserSerializer): class UserBasicInfoSerializer(UserSerializer): class Meta: model = User - fields = ("username", "full_name_display","photo", "big_photo") + fields = ("username", "full_name_display","photo", "big_photo", "is_active") class RecoverySerializer(serializers.Serializer):