Skip to content
Snippets Groups Projects
Commit 909a747e authored by borzechof99's avatar borzechof99 :whale2:
Browse files

Add Archive View and Tests

parent 6d6154e7
No related branches found
No related tags found
No related merge requests found
...@@ -204,3 +204,29 @@ class CriteriaSerializer(serializers.BaseSerializer): ...@@ -204,3 +204,29 @@ class CriteriaSerializer(serializers.BaseSerializer):
criteria_list.append(criterion_dict) criteria_list.append(criterion_dict)
return criteria_list return criteria_list
class ArchiveSerializer(serializers.BaseSerializer):
"""
Serializes Sports in an Archive Format
"""
def to_representation(self, sport_list):
"""
Takes a list of Sport Objects and returns id, name, last_used, url serialized
"""
json_sport_list = []
for sport in sport_list:
json_sport_list.append(
{
"id": sport.pk,
"name": sport.name,
"last_used": sport.last_used,
"url": sport.url,
}
)
return json_sport_list
...@@ -547,3 +547,26 @@ class APITest(APITestCase): ...@@ -547,3 +547,26 @@ class APITest(APITestCase):
response = self.client.get(reverse("small-sport-list-detail", kwargs={"pk": 1})) response = self.client.get(reverse("small-sport-list-detail", kwargs={"pk": 1}))
self.assertEqual(response.data["currently_active"], False) self.assertEqual(response.data["currently_active"], False)
def test_sport_archive(self):
"""
Tests if a Sport is correctly displayed in the Archive
"""
# Get initial State of Archive
response = self.client.get(reverse("archive"))
self.assertEqual(response.data, [])
# Change State of Sport
response = self.client.patch(
reverse("small-sport-list-detail", kwargs={"pk": 1}),
data={"currently_active": False},
format="json",
)
# Check whether the Archive changed
response = self.client.get(reverse("archive"))
self.assertEqual(response.data[0]["id"], 1)
self.assertEqual(response.data[0]["name"], "Jiu Jitsu")
...@@ -18,6 +18,7 @@ from .serializers import ( ...@@ -18,6 +18,7 @@ from .serializers import (
SingleSportSerializer, SingleSportSerializer,
CriteriaSerializer, CriteriaSerializer,
IncompleteSportSerializer, IncompleteSportSerializer,
ArchiveSerializer,
) )
from .models import Sport, Criterion, Question from .models import Sport, Criterion, Question
...@@ -281,3 +282,20 @@ class CriteriaView(APIView): ...@@ -281,3 +282,20 @@ class CriteriaView(APIView):
response = CriteriaSerializer(data) response = CriteriaSerializer(data)
return Response(response.data) return Response(response.data)
class SportArchiveView(APIView):
"""
View For the List of all Archived Sports (so all sports with currently_active=False)
"""
def get(self, request):
"""
GET for api/admin/archive/
"""
archived_sports = Sport.objects.filter(currently_active=False)
response = ArchiveSerializer(archived_sports)
return Response(response.data)
...@@ -33,4 +33,5 @@ urlpatterns = [ ...@@ -33,4 +33,5 @@ urlpatterns = [
name="incomplete", name="incomplete",
), ),
path("api/admin/criteria/", views.CriteriaView.as_view(), name="criteria"), path("api/admin/criteria/", views.CriteriaView.as_view(), name="criteria"),
path("api/admin/sport/archive/", views.SportArchiveView.as_view(), name="archive"),
] ]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment