Skip to content

Commit

Permalink
WIP: start working on #25
Browse files Browse the repository at this point in the history
  • Loading branch information
b1rger committed Apr 24, 2023
1 parent 15539b8 commit c68e36e
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 3 deletions.
20 changes: 20 additions & 0 deletions apis_bibsonomy/api_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,29 @@
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework import viewsets, generics

from .models import Reference
from .utils import BibsonomyEntry
from .serializers import ReferenceSerializer, ReferenceQuerySerializer

class ReferenceList(APIView):
"""
API endpoint that allows references to be viewed.
"""
authentication_classes = []
permission_classes = []

def post(self, request, format=None):
serializer = ReferenceQuerySerializer(data=request.data, many=True)
references = []
if serializer.is_valid():
for item in serializer.validated_data:
print(item)
references.extend(list(Reference.objects.filter(**item)))
print(references)
reference_data = ReferenceSerializer(references, many=True).data
return Response(reference_data)


class SaveBibsonomyEntry(APIView):
Expand Down
12 changes: 12 additions & 0 deletions apis_bibsonomy/serializers.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
from .models import Reference
from rest_framework import serializers


class ReferenceSerializer(serializers.ModelSerializer):
class Meta:
model = Reference
fields = '__all__'

class ReferenceQuerySerializer(serializers.Serializer):
content_type_id = serializers.IntegerField()
object_id = serializers.IntegerField()
11 changes: 11 additions & 0 deletions apis_bibsonomy/templates/apis_bibsonomy/reference_list.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{% extends "base.html" %}

{% block content %}
<ul>
{% for reference in object_list %}
<li>{{ reference }}}</li>
{% empty %}
<li>No references yet.</li>
{% endfor %}
</ul>
{% endblock content %}
9 changes: 9 additions & 0 deletions apis_bibsonomy/templates/base.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
<!DOCTYPE html>
<html>
<head>
<title>Bibsonomy</title>
</head>
<body>
{% block content %}{% endblock content %}
</body>
</html>
7 changes: 4 additions & 3 deletions apis_bibsonomy/urls.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
from rest_framework.routers import DefaultRouter
from django.urls import path
from . import api_views
from . import api_views, views
from . import autocompletes

app_name = 'apis_bibsonomy'

urlpatterns = [
path('save_get/', api_views.SaveBibsonomyEntry.as_view(), name='savegetbibsonomyentry'),
path('autocomplete/', autocompletes.BibsonomyAutocomplete.as_view(), name='bibsonomyautocomplete')
path('autocomplete/', autocompletes.BibsonomyAutocomplete.as_view(), name='bibsonomyautocomplete'),
path('references/<int:object_id>/<int:content_type_id>', views.ReferenceListView.as_view(), name='referenceslist'),
]

13 changes: 13 additions & 0 deletions apis_bibsonomy/views.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
from django.views.generic.list import ListView

from .models import Reference


class ReferenceListView(ListView):
def get_queryset(self):
object_id = self.request.GET.get('object_id')
content_type_id = self.request.GET.get('content_type_id')
print(object_id, content_type_id)
refs = Reference.objects.filter(object_id=object_id, content_type__id = content_type_id)
print(refs)
return refs

0 comments on commit c68e36e

Please sign in to comment.