Commit c6257697 authored by Ilham Maulana's avatar Ilham Maulana 💻

feat: member loan api,

fix: deactivated search book loan
parent 46a43802
......@@ -4,15 +4,14 @@ from rest_framework.response import Response
from rest_framework.filters import SearchFilter
from django_filters.rest_framework import DjangoFilterBackend
from .serializers import BookLoan, BookLoanSerializer
from .serializers import BookLoan, BookLoanSerializer, MemberLoanSerializer
class BookLoanViewSet(viewsets.ModelViewSet):
queryset = BookLoan.objects.all().order_by("loan_date")
serializer_class = BookLoanSerializer
filter_backends = [DjangoFilterBackend, SearchFilter]
filterset_fields = ["loan_date", "due_date", "return_date", "member__id"]
search_fields = ["book__title", "member__name"]
filterset_fields = ["loan_date", "due_date", "return_date"]
def update(self, request, pk):
instance = self.get_object()
......@@ -40,3 +39,12 @@ class UpComingBookLoanViewSet(BookLoanViewSet):
.filter(due_date__gte=now)
.order_by("loan_date")
)
class MemberLoanViewSet(BookLoanViewSet):
queryset = BookLoan.objects.all()
serializer_class = MemberLoanSerializer
def get_queryset(self):
member_id = self.kwargs.get("member_id")
return BookLoan.objects.filter(member__id=member_id).order_by("loan_date")
......@@ -14,6 +14,7 @@ from .loans.views import (
BookLoanViewSet,
OverduedBookLoanViewSet,
UpComingBookLoanViewSet,
MemberLoanViewSet,
)
......@@ -30,6 +31,9 @@ router.register(
r"upcoming-loans", UpComingBookLoanViewSet, basename="book_loans_upcoming"
)
router_member_loan = routers.DefaultRouter()
router_member_loan.register(r"loans", MemberLoanViewSet, basename="member_loans")
urlpatterns = [
path("", include(router.urls)),
# auth
......@@ -39,4 +43,9 @@ urlpatterns = [
),
path("members/auth/login", MemberLoginView.as_view(), name="member_login"),
path("members/auth/logout", MemberLogoutView.as_view(), name="member_logout"),
path(
"members/<int:member_id>/",
include(router_member_loan.urls),
name="member_loans",
),
]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment