diff --git a/greenmine/scrum/models.py b/greenmine/scrum/models.py index 1617a6e1..9ab9e882 100644 --- a/greenmine/scrum/models.py +++ b/greenmine/scrum/models.py @@ -204,7 +204,7 @@ class Milestone(models.Model): disponibility = models.FloatField(null=True, default=0.0) order = models.PositiveSmallIntegerField("Order", default=1) - tags = DictField(blank=True, null=True) + tags = PickledObjectField() def save(self, *args, **kwargs): if not self.slug: @@ -287,8 +287,8 @@ class Change(models.Model): object_id = models.PositiveIntegerField() content_object = generic.GenericForeignKey('content_type', 'object_id') - data = DictField(blank=True, null=True) - tags = DictField(blank=True, null=True) + data = PickledObjectField() + tags = PickledObjectField() class ChangeAttachment(models.Model): @@ -298,7 +298,7 @@ class ChangeAttachment(models.Model): created_date = models.DateTimeField(auto_now_add=True) attached_file = models.FileField(upload_to="files/msg", max_length=500, null=True, blank=True) - tags = DictField(blank=True, null=True) + tags = PickledObjectField() class Task(models.Model): diff --git a/greenmine/scrum/serializers.py b/greenmine/scrum/serializers.py index d766584d..724621b6 100644 --- a/greenmine/scrum/serializers.py +++ b/greenmine/scrum/serializers.py @@ -1,43 +1,77 @@ from rest_framework import serializers from greenmine.scrum.models import * +from picklefield.fields import dbsafe_encode, dbsafe_decode + +import json + +class PickleField(serializers.WritableField): + """ + Pickle objects serializer. + """ + def to_native(self, obj): + return obj + + def from_native(self, data): + return json.loads(data) + class ProjectSerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = Project fields = () class MilestoneSerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = Milestone fields = () class UserStorySerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = UserStory fields = () class ChangeSerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = Change fields = () class ChangeAttachmentSerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = ChangeAttachment fields = () class TaskSerializer(serializers.ModelSerializer): + tags = PickleField() + class Meta: model = Task fields = () +class IssueSerializer(serializers.ModelSerializer): + tags = PickleField() + + class Meta: + model = Issue + fields = () + + class SeveritySerializer(serializers.ModelSerializer): class Meta: model = Severity