From fb02ae4ba955f4ef42e984c45ec14206fe5bda58 Mon Sep 17 00:00:00 2001 From: Glenda Emanuella Sutanto Date: Wed, 23 Jun 2021 15:32:23 +0700 Subject: [PATCH] [REFACTOR] Only displayed last active cart in user auth serializer --- authentication/serializers.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/authentication/serializers.py b/authentication/serializers.py index 2ec061a..072efe7 100644 --- a/authentication/serializers.py +++ b/authentication/serializers.py @@ -1,3 +1,4 @@ +import datetime from django.contrib.auth.models import Group from rest_framework import serializers, exceptions from dj_rest_auth.serializers import LoginSerializer @@ -23,12 +24,15 @@ class UserAuthSerializer(serializers.ModelSerializer): if instance.is_staff: result['role'] = 'admin' + result['transaction_status'] = None + result['cart_id'] = None + if instance.cart.exists(): - result['transaction_status'] = instance.cart.last().transaction_status - result['cart_id'] = instance.cart.last().id - else: - result['transaction_status'] = None - result['cart_id'] = None + active_carts = instance.cart.filter(program_end_date__gte=datetime.date.today()) + if len(active_carts) > 0: + last_active_cart = active_carts.order_by('-id')[0] + result['transaction_status'] = last_active_cart.transaction_status + result['cart_id'] = last_active_cart.id return result -- GitLab