Merge pull request #420 from taigaio/remove-descriptions-from-listin-API

Removing descriptions from list API
remotes/origin/enhancement/email-actions
David Barragán Merino 2015-08-07 00:29:31 +02:00
commit 2681c7dcd5
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,