You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@bloodhound.apache.org by gj...@apache.org on 2020/09/23 20:27:51 UTC
[bloodhound-core] 08/14: Attempt to add links to api output for
ticket list
This is an automated email from the ASF dual-hosted git repository.
gjm pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/bloodhound-core.git
commit 5ff4a05a6b64fb7c730eab2df44a3ceb35b39a4a
Author: Gary Martin <gj...@apache.org>
AuthorDate: Sun Oct 14 00:23:31 2018 +0000
Attempt to add links to api output for ticket list
git-svn-id: https://svn.apache.org/repos/asf/bloodhound/branches/bh_core_experimental@1843805 13f79535-47bb-0310-9956-ffa450edef68
---
trackers/models.py | 4 ++++
trackers/serializers.py | 13 +++++++++----
trackers/urls.py | 2 +-
3 files changed, 14 insertions(+), 5 deletions(-)
diff --git a/trackers/models.py b/trackers/models.py
index d819fd4..6ddd882 100644
--- a/trackers/models.py
+++ b/trackers/models.py
@@ -21,6 +21,7 @@ import logging
import uuid
from django.db import models
+from django.urls import reverse
logger = logging.getLogger(__name__)
@@ -37,6 +38,9 @@ class Ticket(ModelCommon):
title = models.CharField(max_length=200, null=True)
description = models.TextField(null=True)
+ def api_url(self):
+ return reverse('ticket_view', args=(self.id,))
+
def last_update(self):
last_event = self.changeevent_set.order_by('created').last()
return self.created if last_event is None else last_event.created
diff --git a/trackers/serializers.py b/trackers/serializers.py
index 5416191..b38dcdb 100644
--- a/trackers/serializers.py
+++ b/trackers/serializers.py
@@ -1,20 +1,25 @@
from rest_framework import serializers
-from trackers.models import Ticket, TicketField, ChangeEvent
+from trackers import models
class TicketSerializer(serializers.ModelSerializer):
+ api_url = serializers.SerializerMethodField()
+
class Meta:
- model = Ticket
+ model = models.Ticket
fields = '__all__'
+ def get_api_url(self, obj):
+ return self.context['request'].build_absolute_uri(obj.api_url())
+
class TicketFieldSerializer(serializers.ModelSerializer):
class Meta:
- model = TicketField
+ model = models.TicketField
fields = '__all__'
class ChangeEventSerializer(serializers.ModelSerializer):
class Meta:
- model = ChangeEvent
+ model = models.ChangeEvent
fields = '__all__'
diff --git a/trackers/urls.py b/trackers/urls.py
index 20b115b..d211bb4 100644
--- a/trackers/urls.py
+++ b/trackers/urls.py
@@ -23,6 +23,6 @@ urlpatterns = [
path('schema_view/', views.schema_view),
path('field/', views.TicketFieldListCreate.as_view()),
path('ticket/', views.TicketListCreate.as_view()),
- path('ticket/<uuid:id>', views.TicketViewUpdate.as_view()),
+ path('ticket/<uuid:id>', views.TicketViewUpdate.as_view(), name='ticket_view'),
path('ticket/<uuid:id>/event/', views.ChangeEventListCreate.as_view()),
]