Fixing history for issues and us
parent
81024ec63f
commit
c2fd51b969
|
@ -128,6 +128,13 @@ class UserStoryDetail(NotificationSenderMixin, generics.RetrieveUpdateDestroyAPI
|
||||||
update_notification_template = "update_user_story_notification"
|
update_notification_template = "update_user_story_notification"
|
||||||
destroy_notification_template = "destroy_user_story_notification"
|
destroy_notification_template = "destroy_user_story_notification"
|
||||||
|
|
||||||
|
def post_save(self, obj, created=False):
|
||||||
|
with reversion.create_revision():
|
||||||
|
if "comment" in self.request.DATA:
|
||||||
|
# Update the comment in the last version
|
||||||
|
reversion.set_comment(self.request.DATA['comment'])
|
||||||
|
super(UserStoryDetail, self).post_save(obj, created)
|
||||||
|
|
||||||
|
|
||||||
class AttachmentFilter(django_filters.FilterSet):
|
class AttachmentFilter(django_filters.FilterSet):
|
||||||
class Meta:
|
class Meta:
|
||||||
|
|
|
@ -40,13 +40,15 @@ class RolePointsField(serializers.WritableField):
|
||||||
return {str(o.role.id): o.points.order for o in obj.all()}
|
return {str(o.role.id): o.points.order for o in obj.all()}
|
||||||
|
|
||||||
def from_native(self, obj):
|
def from_native(self, obj):
|
||||||
return json.loads(obj)
|
return obj
|
||||||
|
|
||||||
|
|
||||||
class UserStorySerializer(serializers.ModelSerializer):
|
class UserStorySerializer(serializers.ModelSerializer):
|
||||||
tags = PickleField()
|
tags = PickleField()
|
||||||
is_closed = serializers.Field(source='is_closed')
|
is_closed = serializers.Field(source='is_closed')
|
||||||
points = RolePointsField(source='role_points')
|
points = RolePointsField(source='role_points')
|
||||||
|
comment = serializers.SerializerMethodField('get_comment')
|
||||||
|
history = serializers.SerializerMethodField('get_history')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = UserStory
|
model = UserStory
|
||||||
|
@ -63,6 +65,46 @@ class UserStorySerializer(serializers.ModelSerializer):
|
||||||
role_points.points.order = points_order
|
role_points.points.order = points_order
|
||||||
role_points.points.save()
|
role_points.points.save()
|
||||||
|
|
||||||
|
def get_comment(self, obj):
|
||||||
|
return ''
|
||||||
|
|
||||||
|
def get_user_stories_diff(self, old_us_version, new_us_version):
|
||||||
|
old_obj = old_us_version.field_dict
|
||||||
|
new_obj = new_us_version.field_dict
|
||||||
|
|
||||||
|
diff_dict = {
|
||||||
|
'modified_date': new_obj['modified_date'],
|
||||||
|
'by': new_us_version.revision.user,
|
||||||
|
'comment': new_us_version.revision.comment,
|
||||||
|
}
|
||||||
|
|
||||||
|
for key in old_obj.keys():
|
||||||
|
if key == 'modified_date':
|
||||||
|
continue
|
||||||
|
|
||||||
|
if old_obj[key] == new_obj[key]:
|
||||||
|
continue
|
||||||
|
|
||||||
|
diff_dict[key] = {
|
||||||
|
'old': old_obj[key],
|
||||||
|
'new': new_obj[key],
|
||||||
|
}
|
||||||
|
|
||||||
|
return diff_dict
|
||||||
|
|
||||||
|
def get_history(self, obj):
|
||||||
|
diff_list = []
|
||||||
|
current = None
|
||||||
|
|
||||||
|
for version in reversed(list(reversion.get_for_object(obj))):
|
||||||
|
if current:
|
||||||
|
us_diff = self.get_user_stories_diff(current, version)
|
||||||
|
diff_list.append(us_diff)
|
||||||
|
|
||||||
|
current = version
|
||||||
|
|
||||||
|
return diff_list
|
||||||
|
|
||||||
|
|
||||||
class MilestoneSerializer(serializers.ModelSerializer):
|
class MilestoneSerializer(serializers.ModelSerializer):
|
||||||
user_stories = UserStorySerializer(many=True, required=False)
|
user_stories = UserStorySerializer(many=True, required=False)
|
||||||
|
@ -104,8 +146,8 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
diff_dict = {
|
diff_dict = {
|
||||||
'modified_date': new_obj['modified_date'],
|
'modified_date': new_obj['modified_date'],
|
||||||
'by': old_issue_version.revision.user,
|
'by': new_us_version.revision.user,
|
||||||
'comment': old_issue_version.revision.comment,
|
'comment': new_us_version.revision.comment,
|
||||||
}
|
}
|
||||||
|
|
||||||
for key in old_obj.keys():
|
for key in old_obj.keys():
|
||||||
|
|
Loading…
Reference in New Issue