Commit 6fe4d040 authored by Fahmi's avatar Fahmi

commit ke 3

parent 4261cddf
...@@ -2,6 +2,7 @@ from library.models import * ...@@ -2,6 +2,7 @@ from library.models import *
from .models import * from .models import *
from rest_framework import serializers from rest_framework import serializers
from django.contrib.auth import authenticate, get_user_model from django.contrib.auth import authenticate, get_user_model
from datetime import date
class UserLoginSerializer(serializers.Serializer): class UserLoginSerializer(serializers.Serializer):
username = serializers.CharField() username = serializers.CharField()
...@@ -99,11 +100,21 @@ class BookLoanSerializer(serializers.ModelSerializer): ...@@ -99,11 +100,21 @@ class BookLoanSerializer(serializers.ModelSerializer):
fields = '__all__' fields = '__all__'
class OverdueLoanSerializer(serializers.ModelSerializer): class OverdueLoanSerializer(serializers.ModelSerializer):
days_over = serializers.SerializerMethodField()
class Meta: class Meta:
model = BookLoan model = BookLoan
fields = '__all__' fields = '__all__'
def get_days_over(self, obj):
return (date.today() - obj.due_date).days
class NearOutstandingLoanSerializer(serializers.ModelSerializer): class NearOutstandingLoanSerializer(serializers.ModelSerializer):
days_left = serializers.SerializerMethodField()
class Meta: class Meta:
model = BookLoan model = BookLoan
fields = '__all__' fields = '__all__'
\ No newline at end of file
def get_days_left(self, obj):
return (obj.due_date - date.today()).days
\ No newline at end of file
...@@ -28,29 +28,12 @@ class MyPageNumberPagination(PageNumberPagination): ...@@ -28,29 +28,12 @@ class MyPageNumberPagination(PageNumberPagination):
#regist librarian #regist librarian
class LibrarianRegistrationAPIView(generics.CreateAPIView): class LibrarianRegistrationAPIView(generics.CreateAPIView):
queryset = CustomUser.objects.all() queryset = CustomUser.objects.all()
serializer_class = MemberRegistrationSerializer serializer_class = LibrarianRegistrationSerializer
#regist member #regist member
class MemberRegistrationAPIView(generics.ListCreateAPIView): class MemberRegistrationAPIView(generics.ListCreateAPIView):
queryset = CustomUser.objects.all() queryset = CustomUser.objects.all()
serializer_class = MemberRegistrationSerializer serializer_class = MemberRegistrationSerializer
# def create(self, request, *args, **kwargs):
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# user = serializer.save(is_member=True)
# login(request, user)
# response_data = {
# 'message': 'Member registered successfully',
# 'user_id': user.id,
# 'username': user.username,
# 'email': user.email,
# 'is_member': user.is_member,
# }
# return Response(response_data, status=status.HTTP_201_CREATED)
#login member #login member
class MemberLoginView(APIView): class MemberLoginView(APIView):
def post(self, request, *args, **kwargs): def post(self, request, *args, **kwargs):
...@@ -273,7 +256,7 @@ class NearOutstandingLoansAPIView(APIView): ...@@ -273,7 +256,7 @@ class NearOutstandingLoansAPIView(APIView):
def get(self, request, format=None): def get(self, request, format=None):
tomorrow = date.today() + timedelta(days=1) tomorrow = date.today() + timedelta(days=1)
near_outstanding_loans = tomorrow + timedelta(days=2) near_outstanding_loans = tomorrow + timedelta(days=2)
near_date = BookLoan.objects.filter(due_date__gte=tomorrow, due_date__lte=near_outstanding_loans) near_date = BookLoan.objects.filter(due_date__gte=tomorrow, due_date__lte=near_outstanding_loans, is_returned=False)
near_outstanding_loans = near_date.annotate( near_outstanding_loans = near_date.annotate(
time_difference=ExpressionWrapper( time_difference=ExpressionWrapper(
......
This diff is collapsed.
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