Merge pull request #377 from taigaio/issue/2785/fix-user-mentions
Issue/2785/fix user mentionsremotes/origin/enhancement/email-actions
commit
4843668a03
|
@ -17,17 +17,34 @@
|
||||||
from taiga.base.api import serializers
|
from taiga.base.api import serializers
|
||||||
from taiga.base.fields import JsonField, I18NJsonField
|
from taiga.base.fields import JsonField, I18NJsonField
|
||||||
|
|
||||||
|
from taiga.users.services import get_photo_or_gravatar_url
|
||||||
|
|
||||||
from . import models
|
from . import models
|
||||||
|
|
||||||
|
|
||||||
HISTORY_ENTRY_I18N_FIELDS=("points", "status", "severity", "priority", "type")
|
HISTORY_ENTRY_I18N_FIELDS=("points", "status", "severity", "priority", "type")
|
||||||
|
|
||||||
|
|
||||||
class HistoryEntrySerializer(serializers.ModelSerializer):
|
class HistoryEntrySerializer(serializers.ModelSerializer):
|
||||||
diff = JsonField()
|
diff = JsonField()
|
||||||
snapshot = JsonField()
|
snapshot = JsonField()
|
||||||
values = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
|
values = I18NJsonField(i18n_fields=HISTORY_ENTRY_I18N_FIELDS)
|
||||||
values_diff = 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()
|
delete_comment_user = JsonField()
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = models.HistoryEntry
|
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
|
||||||
|
|
|
@ -40,6 +40,7 @@ class IssueSerializer(WatchersValidator, serializers.ModelSerializer):
|
||||||
votes = serializers.SerializerMethodField("get_votes_number")
|
votes = serializers.SerializerMethodField("get_votes_number")
|
||||||
status_extra_info = BasicIssueStatusSerializer(source="status", required=False, read_only=True)
|
status_extra_info = BasicIssueStatusSerializer(source="status", required=False, read_only=True)
|
||||||
assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", 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:
|
class Meta:
|
||||||
model = models.Issue
|
model = models.Issue
|
||||||
|
|
|
@ -42,6 +42,7 @@ class TaskSerializer(WatchersValidator, serializers.ModelSerializer):
|
||||||
is_closed = serializers.SerializerMethodField("get_is_closed")
|
is_closed = serializers.SerializerMethodField("get_is_closed")
|
||||||
status_extra_info = BasicTaskStatusSerializerSerializer(source="status", required=False, read_only=True)
|
status_extra_info = BasicTaskStatusSerializerSerializer(source="status", required=False, read_only=True)
|
||||||
assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", 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:
|
class Meta:
|
||||||
model = models.Task
|
model = models.Task
|
||||||
|
|
|
@ -55,6 +55,7 @@ class UserStorySerializer(WatchersValidator, serializers.ModelSerializer):
|
||||||
description_html = serializers.SerializerMethodField("get_description_html")
|
description_html = serializers.SerializerMethodField("get_description_html")
|
||||||
status_extra_info = BasicUserStoryStatusSerializer(source="status", required=False, read_only=True)
|
status_extra_info = BasicUserStoryStatusSerializer(source="status", required=False, read_only=True)
|
||||||
assigned_to_extra_info = UserBasicInfoSerializer(source="assigned_to", 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:
|
class Meta:
|
||||||
model = models.UserStory
|
model = models.UserStory
|
||||||
|
|
|
@ -111,7 +111,7 @@ class UserAdminSerializer(UserSerializer):
|
||||||
class UserBasicInfoSerializer(UserSerializer):
|
class UserBasicInfoSerializer(UserSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = User
|
model = User
|
||||||
fields = ("username", "full_name_display","photo", "big_photo")
|
fields = ("username", "full_name_display","photo", "big_photo", "is_active")
|
||||||
|
|
||||||
|
|
||||||
class RecoverySerializer(serializers.Serializer):
|
class RecoverySerializer(serializers.Serializer):
|
||||||
|
|
Loading…
Reference in New Issue