diff --git a/api/views.py b/api/views.py index 90e5f6e7..2b5b4f2e 100644 --- a/api/views.py +++ b/api/views.py @@ -16,6 +16,8 @@ from .models import AccessDevice, DeviceAccessLogEntry from users.signals import door_access_denied +from django.db.models import Q + logger = logging.getLogger(__name__) @@ -108,13 +110,14 @@ def phone_list(self, request, format=None): # collect list of all users that have door access users_with_door_access = [] + + # Members with active or overdue door access for ss in ( ServiceSubscription.objects.select_related("user") .filter(service=drfx_settings.DEFAULT_ACCOUNT_SERVICE) - .filter(state=ServiceSubscription.ACTIVE) + .filter(Q(state=ServiceSubscription.ACTIVE) | Q(state=ServiceSubscription.OVERDUE)) ): users_with_door_access.append(ss.user) - # and output it outserializer = UserAccessSerializer(users_with_door_access, many=True) return Response(outserializer.data) diff --git a/users/models.py b/users/models.py index 06e24188..43ddf4a5 100644 --- a/users/models.py +++ b/users/models.py @@ -233,7 +233,7 @@ def has_door_access(self): subscription = self.servicesubscription_set.get( service=drfx_settings.DEFAULT_ACCOUNT_SERVICE ) - if subscription.state == ServiceSubscription.ACTIVE: + if subscription.state == ServiceSubscription.ACTIVE or subscription.state == ServiceSubscription.OVERDUE: return True except Exception: pass