Removing descriptions from list API

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-08-03 10:19:54 +02:00 committed by David Barragán Merino
parent cfde18c54c
commit 32c6452bfa
7 changed files with 44 additions and 1 deletions

View File

@ -79,6 +79,9 @@ class IssueViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
if self.action in ["retrieve", "by_ref"]:
return serializers.IssueNeighborsSerializer
if self.action == "list":
return serializers.IssueListSerializer
return serializers.IssueSerializer
def update(self, request, *args, **kwargs):

View File

@ -64,6 +64,13 @@ class IssueSerializer(WatchersValidator, serializers.ModelSerializer):
return getattr(obj, "votes_count", 0)
class IssueListSerializer(IssueSerializer):
class Meta:
model = models.Issue
read_only_fields = ('id', 'ref', 'created_date', 'modified_date')
exclude=("description", "description_html")
class IssueNeighborsSerializer(NeighborsSerializerMixin, IssueSerializer):
def serialize_neighbor(self, neighbor):
return NeighborIssueSerializer(neighbor).data

View File

@ -46,6 +46,9 @@ class TaskViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMixin,
if self.action in ["retrieve", "by_ref"]:
return serializers.TaskNeighborsSerializer
if self.action == "list":
return serializers.TaskListSerializer
return serializers.TaskSerializer
def update(self, request, *args, **kwargs):

View File

@ -67,6 +67,13 @@ class TaskSerializer(WatchersValidator, serializers.ModelSerializer):
return obj.status.is_closed
class TaskListSerializer(TaskSerializer):
class Meta:
model = models.Task
read_only_fields = ('id', 'ref', 'created_date', 'modified_date')
exclude=("description", "description_html")
class TaskNeighborsSerializer(NeighborsSerializerMixin, TaskSerializer):
def serialize_neighbor(self, neighbor):
return NeighborTaskSerializer(neighbor).data

View File

@ -76,6 +76,9 @@ class UserStoryViewSet(OCCResourceMixin, HistoryResourceMixin, WatchedResourceMi
if self.action in ["retrieve", "by_ref"]:
return serializers.UserStoryNeighborsSerializer
if self.action == "list":
return serializers.UserStoryListSerializer
return serializers.UserStorySerializer
def update(self, request, *args, **kwargs):

View File

@ -97,6 +97,14 @@ class UserStorySerializer(WatchersValidator, serializers.ModelSerializer):
return mdrender(obj.project, obj.description)
class UserStoryListSerializer(UserStorySerializer):
class Meta:
model = models.UserStory
depth = 0
read_only_fields = ('created_date', 'modified_date')
exclude=("description", "description_html")
class UserStoryNeighborsSerializer(NeighborsSerializerMixin, UserStorySerializer):
def serialize_neighbor(self, neighbor):
return NeighborUserStorySerializer(neighbor).data

View File

@ -16,6 +16,7 @@
from django.conf import settings
from django.utils import timezone
from django.utils.translation import ugettext as _
from taiga.projects.history import services as history_services
from taiga.projects.models import Project
@ -79,7 +80,16 @@ def _push_to_timelines(project, user, obj, event_type, created_datetime, extra_d
extra_data=extra_data)
def _clean_description_fields(values_diff):
# Description_diff and description_html if included can be huge, we are
# removing the html one and clearing the diff
values_diff.pop("description_html", None)
if "description_diff" in values_diff:
values_diff["description_diff"] = _("Check the history API for the exact diff")
def on_new_history_entry(sender, instance, created, **kwargs):
if instance._importing:
return
@ -99,9 +109,11 @@ def on_new_history_entry(sender, instance, created, **kwargs):
event_type = "delete"
user = User.objects.get(id=instance.user["pk"])
values_diff = instance.values_diff
_clean_description_fields(values_diff)
extra_data = {
"values_diff": instance.values_diff,
"values_diff": values_diff,
"user": extract_user_info(user),
"comment": instance.comment,
"comment_html": instance.comment_html,