Addin comment support in issues history
parent
f114381883
commit
b49b2dce49
|
@ -135,22 +135,6 @@ class ChangeAttachmentDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
permission_classes = (IsAuthenticated, ChangeAttachmentDetailPermission,)
|
permission_classes = (IsAuthenticated, ChangeAttachmentDetailPermission,)
|
||||||
|
|
||||||
|
|
||||||
class IssueList(generics.ListCreateAPIView):
|
|
||||||
model = Issue
|
|
||||||
serializer_class = IssueSerializer
|
|
||||||
filter_fields = ('project',)
|
|
||||||
permission_classes = (IsAuthenticated,)
|
|
||||||
|
|
||||||
def get_queryset(self):
|
|
||||||
return self.model.objects.filter(project__members=self.request.user)
|
|
||||||
|
|
||||||
|
|
||||||
class IssueDetail(generics.RetrieveUpdateDestroyAPIView):
|
|
||||||
model = Issue
|
|
||||||
serializer_class = IssueSerializer
|
|
||||||
permission_classes = (IsAuthenticated, IssueDetailPermission,)
|
|
||||||
|
|
||||||
|
|
||||||
class TaskList(generics.ListCreateAPIView):
|
class TaskList(generics.ListCreateAPIView):
|
||||||
model = Task
|
model = Task
|
||||||
serializer_class = TaskSerializer
|
serializer_class = TaskSerializer
|
||||||
|
@ -179,10 +163,19 @@ class IssueList(generics.ListCreateAPIView):
|
||||||
def pre_save(self, obj):
|
def pre_save(self, obj):
|
||||||
obj.owner = self.request.user
|
obj.owner = self.request.user
|
||||||
|
|
||||||
|
def get_queryset(self):
|
||||||
|
return self.model.objects.filter(project__members=self.request.user)
|
||||||
|
|
||||||
|
|
||||||
class IssueDetail(generics.RetrieveUpdateDestroyAPIView):
|
class IssueDetail(generics.RetrieveUpdateDestroyAPIView):
|
||||||
model = Issue
|
model = Issue
|
||||||
serializer_class = IssueSerializer
|
serializer_class = IssueSerializer
|
||||||
|
permission_classes = (IsAuthenticated, IssueDetailPermission,)
|
||||||
|
|
||||||
|
def pre_save(self, obj, created=False):
|
||||||
|
with reversion.create_revision():
|
||||||
|
#Update the comment in the last version
|
||||||
|
reversion.set_comment(self.request.DATA['comment'])
|
||||||
|
|
||||||
|
|
||||||
class SeverityList(generics.ListCreateAPIView):
|
class SeverityList(generics.ListCreateAPIView):
|
||||||
|
|
|
@ -71,49 +71,56 @@ class TaskSerializer(serializers.ModelSerializer):
|
||||||
model = Task
|
model = Task
|
||||||
fields = ()
|
fields = ()
|
||||||
|
|
||||||
|
class BaseIssueSerializer(serializers.ModelSerializer):
|
||||||
class IssueSerializer(serializers.ModelSerializer):
|
|
||||||
tags = PickleField()
|
tags = PickleField()
|
||||||
history = serializers.SerializerMethodField('get_history')
|
comment = serializers.SerializerMethodField('get_comment')
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Issue
|
model = Issue
|
||||||
fields = ()
|
fields = ()
|
||||||
|
|
||||||
def get_issues_diff(self, old_issue_version, new_issue_version):
|
def get_comment(self, obj):
|
||||||
old_obj = old_issue_version.field_dict
|
return ''
|
||||||
new_obj = new_issue_version.field_dict
|
|
||||||
|
|
||||||
|
class IssueSerializer(BaseIssueSerializer):
|
||||||
|
tags = PickleField()
|
||||||
|
comment = serializers.SerializerMethodField('get_comment')
|
||||||
|
history = serializers.SerializerMethodField('get_history')
|
||||||
|
|
||||||
|
def get_issues_diff(self, old_data, new_data, by, comment):
|
||||||
|
|
||||||
diff_dict = {
|
diff_dict = {
|
||||||
'modified_date': new_obj['modified_date'],
|
'modified_date': new_data['modified_date'],
|
||||||
'by': old_issue_version.revision.user,
|
'by': by,
|
||||||
|
'comment': comment,
|
||||||
}
|
}
|
||||||
|
|
||||||
for key in old_obj.keys():
|
for key in old_data.keys():
|
||||||
if key == 'modified_date':
|
if key in ['modified_date', 'created_date', 'comment']:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
if old_obj[key] == new_obj[key]:
|
if old_data[key] == new_data[key]:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
diff_dict[key] = {
|
diff_dict[key] = {
|
||||||
'old': old_obj[key],
|
'old': old_data[key],
|
||||||
'new': new_obj[key],
|
'new': new_data[key],
|
||||||
}
|
}
|
||||||
|
|
||||||
return diff_dict
|
return diff_dict
|
||||||
|
|
||||||
def get_history(self, obj):
|
def get_history(self, obj):
|
||||||
#TODO: add comments info
|
|
||||||
diff_list = []
|
diff_list = []
|
||||||
current = None
|
current_data = BaseIssueSerializer(obj).data
|
||||||
|
|
||||||
for version in reversed(list(reversion.get_for_object(obj))):
|
for version in reversed(list(reversion.get_for_object(obj))):
|
||||||
if current:
|
version_data = version.field_dict
|
||||||
issues_diff = self.get_issues_diff(current, version)
|
by = version.revision.user
|
||||||
|
comment = version.revision.comment
|
||||||
|
issues_diff = self.get_issues_diff(current_data, version_data, by, comment)
|
||||||
diff_list.append(issues_diff)
|
diff_list.append(issues_diff)
|
||||||
|
current_data = version.field_dict
|
||||||
current = version
|
|
||||||
|
|
||||||
return diff_list
|
return diff_list
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue