Updating timeline serializer

remotes/origin/enhancement/email-actions
Alejandro Alonso 2015-05-14 09:57:09 +02:00
parent 0048f4d297
commit 6b281f1839
3 changed files with 35 additions and 20 deletions

View File

@ -14,14 +14,47 @@
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
from django.apps import apps
from django.forms import widgets
from taiga.base.api import serializers
from taiga.base.fields import JsonField
from taiga.users.services import get_photo_or_gravatar_url, get_big_photo_or_gravatar_url
from . import models
from . import service
class TimelineDataJsonField(serializers.WritableField):
"""
Timeline Json objects serializer.
"""
widget = widgets.Textarea
def to_native(self, obj):
#Updates the data user info saved if the user exists
User = apps.get_model("users", "User")
userData = obj.get("user", None)
if userData:
try:
user = User.objects.get(id=userData["id"])
obj["user"] = {
"id": user.pk,
"name": user.get_full_name(),
"photo": get_photo_or_gravatar_url(user),
"big_photo": get_big_photo_or_gravatar_url(user),
"username": user.username,
}
except User.DoesNotExist:
pass
return obj
def from_native(self, data):
return data
class TimelineSerializer(serializers.ModelSerializer):
data = JsonField()
data = TimelineDataJsonField()
class Meta:
model = models.Timeline

View File

@ -180,11 +180,7 @@ def extract_project_info(instance):
def extract_user_info(instance):
return {
"id": instance.pk,
"name": instance.get_full_name(),
"photo": get_photo_or_gravatar_url(instance),
"big_photo": get_big_photo_or_gravatar_url(instance),
"username": instance.username,
"id": instance.pk
}

View File

@ -135,7 +135,6 @@ def test_create_project_timeline():
assert project_timeline[0].event_type == "projects.project.create"
assert project_timeline[0].data["project"]["name"] == "test project timeline"
assert project_timeline[0].data["user"]["id"] == project.owner.id
assert project_timeline[0].data["user"]["name"] == project.owner.get_full_name()
def test_create_milestone_timeline():
@ -145,7 +144,6 @@ def test_create_milestone_timeline():
assert milestone_timeline[0].event_type == "milestones.milestone.create"
assert milestone_timeline[0].data["milestone"]["name"] == "test milestone timeline"
assert milestone_timeline[0].data["user"]["id"] == milestone.owner.id
assert milestone_timeline[0].data["user"]["name"] == milestone.owner.get_full_name()
def test_create_user_story_timeline():
@ -155,7 +153,6 @@ def test_create_user_story_timeline():
assert project_timeline[0].event_type == "userstories.userstory.create"
assert project_timeline[0].data["userstory"]["subject"] == "test us timeline"
assert project_timeline[0].data["user"]["id"] == user_story.owner.id
assert project_timeline[0].data["user"]["name"] == user_story.owner.get_full_name()
def test_create_issue_timeline():
@ -165,7 +162,6 @@ def test_create_issue_timeline():
assert project_timeline[0].event_type == "issues.issue.create"
assert project_timeline[0].data["issue"]["subject"] == "test issue timeline"
assert project_timeline[0].data["user"]["id"] == issue.owner.id
assert project_timeline[0].data["user"]["name"] == issue.owner.get_full_name()
def test_create_task_timeline():
@ -175,7 +171,6 @@ def test_create_task_timeline():
assert project_timeline[0].event_type == "tasks.task.create"
assert project_timeline[0].data["task"]["subject"] == "test task timeline"
assert project_timeline[0].data["user"]["id"] == task.owner.id
assert project_timeline[0].data["user"]["name"] == task.owner.get_full_name()
def test_create_wiki_page_timeline():
@ -185,7 +180,6 @@ def test_create_wiki_page_timeline():
assert project_timeline[0].event_type == "wiki.wikipage.create"
assert project_timeline[0].data["wikipage"]["slug"] == "test wiki page timeline"
assert project_timeline[0].data["user"]["id"] == page.owner.id
assert project_timeline[0].data["user"]["name"] == page.owner.get_full_name()
def test_create_membership_timeline():
@ -195,11 +189,9 @@ def test_create_membership_timeline():
assert project_timeline[0].event_type == "projects.membership.create"
assert project_timeline[0].data["project"]["id"] == membership.project.id
assert project_timeline[0].data["user"]["id"] == membership.user.id
assert project_timeline[0].data["user"]["name"] == membership.user.get_full_name()
assert user_timeline[0].event_type == "projects.membership.create"
assert user_timeline[0].data["project"]["id"] == membership.project.id
assert user_timeline[0].data["user"]["id"] == membership.user.id
assert user_timeline[0].data["user"]["name"] == membership.user.get_full_name()
def test_update_project_timeline():
@ -292,19 +284,15 @@ def test_update_membership_timeline():
assert project_timeline[0].event_type == "projects.membership.delete"
assert project_timeline[0].data["project"]["id"] == membership.project.id
assert project_timeline[0].data["user"]["id"] == user_1.id
assert project_timeline[0].data["user"]["name"] == user_1.get_full_name()
assert project_timeline[1].event_type == "projects.membership.create"
assert project_timeline[1].data["project"]["id"] == membership.project.id
assert project_timeline[1].data["user"]["id"] == user_2.id
assert project_timeline[1].data["user"]["name"] == user_2.get_full_name()
assert user_1_timeline[0].event_type == "projects.membership.delete"
assert user_1_timeline[0].data["project"]["id"] == membership.project.id
assert user_1_timeline[0].data["user"]["id"] == user_1.id
assert user_1_timeline[0].data["user"]["name"] == user_1.get_full_name()
assert user_2_timeline[0].event_type == "projects.membership.create"
assert user_2_timeline[0].data["project"]["id"] == membership.project.id
assert user_2_timeline[0].data["user"]["id"] == user_2.id
assert user_2_timeline[0].data["user"]["name"] == user_2.get_full_name()
def test_delete_project_timeline():
@ -363,11 +351,9 @@ def test_delete_membership_timeline():
assert project_timeline[0].event_type == "projects.membership.delete"
assert project_timeline[0].data["project"]["id"] == membership.project.id
assert project_timeline[0].data["user"]["id"] == membership.user.id
assert project_timeline[0].data["user"]["name"] == membership.user.get_full_name()
assert user_timeline[0].event_type == "projects.membership.delete"
assert user_timeline[0].data["project"]["id"] == membership.project.id
assert user_timeline[0].data["user"]["id"] == membership.user.id
assert user_timeline[0].data["user"]["name"] == membership.user.get_full_name()
def test_comment_user_story_timeline():