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] 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