def filter_queryset(self, request, queryset, view): if request.user.is_superuser: pass else: if request.user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: q_objects = Q(orgin_facility__state=request.user.state) q_objects |= Q( shifting_approving_facility__state=request.user.state) q_objects |= Q(assigned_facility__state=request.user.state) return queryset.filter(q_objects) elif request.user.user_type >= User.TYPE_VALUE_MAP[ "DistrictLabAdmin"]: q_objects = Q(orgin_facility__district=request.user.district) q_objects |= Q(shifting_approving_facility__district=request. user.district) q_objects |= Q( assigned_facility__district=request.user.district) return queryset.filter(q_objects) facility_ids = get_accessible_facilities(request.user) q_objects = Q(orgin_facility__id__in=facility_ids) q_objects |= Q(shifting_approving_facility__id__in=facility_ids) q_objects |= Q(assigned_facility__id__in=facility_ids, status__gte=20) q_objects |= Q(patient__facility__id__in=facility_ids) queryset = queryset.filter(q_objects) return queryset
def get_queryset(self): session_page = self.request.GET.get("session_page", 1) try: session_page = int(session_page) except: pass investigations = self.request.GET.get("investigations", "") queryset = self.queryset.filter( consultation__patient__external_id=self.kwargs.get( "patient_external_id")) sessions = (queryset.filter( investigation__external_id__in=investigations.split(",")).order_by( "-session__created_date").distinct("session__created_date")[ (session_page - 1) * self.SESSION_PER_PAGE:(session_page) * self.SESSION_PER_PAGE]) if not sessions.exists(): return self.queryset.none() queryset = queryset.filter( session_id__in=sessions.values("session_id")) if self.request.user.is_superuser: return queryset elif self.request.user.user_type >= User.TYPE_VALUE_MAP[ "StateLabAdmin"]: return queryset.filter( consultation__patient__facility__state=self.request.user.state) elif self.request.user.user_type >= User.TYPE_VALUE_MAP[ "DistrictLabAdmin"]: return queryset.filter( consultation__patient__facility__district=self.request.user. district) allowed_facilities = get_accessible_facilities(self.request.user) filters = Q(consultation__patient__facility_id__in=allowed_facilities) filters |= Q(consultation__assigned_to=self.request.user) return queryset.filter(filters)
def get_queryset(self): queryset = self.queryset.filter( request__external_id=self.kwargs.get("resource_external_id")) if self.request.user.is_superuser: pass else: if self.request.user.user_type >= User.TYPE_VALUE_MAP[ "StateLabAdmin"]: q_objects = Q( request__orgin_facility__state=self.request.user.state) q_objects |= Q( request__approving_facility__state=self.request.user.state) q_objects |= Q( request__assigned_facility__state=self.request.user.state) return queryset.filter(q_objects) elif self.request.user.user_type >= User.TYPE_VALUE_MAP[ "DistrictLabAdmin"]: q_objects = Q(request__orgin_facility__district=self.request. user.district) q_objects |= Q(request__approving_facility__district=self. request.user.district) q_objects |= Q(request__assigned_facility__district=self. request.user.district) return queryset.filter(q_objects) facility_ids = get_accessible_facilities(self.request.user) q_objects = Q(request__orgin_facility__id__in=facility_ids) q_objects |= Q(request__approving_facility__id__in=facility_ids) q_objects |= Q(request__assigned_facility__id__in=facility_ids) queryset = queryset.filter(q_objects) return queryset
def get_asset_location_queryset(user): queryset = AssetLocation.objects.all() if user.is_superuser: pass elif user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: queryset = queryset.filter(facility__state=user.state) elif user.user_type >= User.TYPE_VALUE_MAP["DistrictLabAdmin"]: queryset = queryset.filter(facility__district=user.district) else: allowed_facilities = get_accessible_facilities(user) queryset = queryset.filter(facility__id__in=allowed_facilities) return queryset
def get_queryset(self): user = self.request.user queryset = self.queryset if user.is_superuser: pass elif user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: queryset = queryset.filter(facility__state=user.state) elif user.user_type >= User.TYPE_VALUE_MAP["DistrictLabAdmin"]: queryset = queryset.filter(facility__district=user.district) else: allowed_facilities = get_accessible_facilities(user) queryset = queryset.filter(facility__id__in=allowed_facilities) return super().get_queryset()
def get_patient_queryset(user): queryset = PatientRegistration.objects.all() if not user.is_superuser: return queryset if user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: queryset = queryset.filter(facility__state=user.state) elif user.user_type >= User.TYPE_VALUE_MAP["DistrictLabAdmin"]: queryset = queryset.filter(facility__district=user.district) else: allowed_facilities = get_accessible_facilities(user) q_filters = Q(facility__id__in=allowed_facilities) q_filters |= Q(last_consultation__assigned_to=user) q_filters |= Q(assigned_to=user) queryset = queryset.filter(q_filters) return queryset
def get_queryset(self): user = self.request.user queryset = self.queryset.filter(patient__external_id=self.kwargs.get("patient_external_id")) if not user.is_superuser: return queryset if user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: queryset = queryset.filter(patient__facility__state=user.state) elif user.user_type >= User.TYPE_VALUE_MAP["DistrictLabAdmin"]: queryset = queryset.filter(patient__facility__district=user.district) else: allowed_facilities = get_accessible_facilities(user) q_filters = Q(patient__facility__id__in=allowed_facilities) q_filters |= Q(patient__last_consultation__assigned_to=user) q_filters |= Q(patient__assigned_to=user) queryset = queryset.filter(q_filters) return queryset
def filter_queryset(self, request, queryset, view): if view.action == "list": queryset = self.filter_list_queryset(request, queryset, view) if not request.user.is_superuser: if request.user.user_type >= User.TYPE_VALUE_MAP["StateLabAdmin"]: queryset = queryset.filter(facility__state=request.user.state) elif request.user.user_type >= User.TYPE_VALUE_MAP["DistrictLabAdmin"]: queryset = queryset.filter(facility__district=request.user.district) elif view.action != "transfer": allowed_facilities = get_accessible_facilities(request.user) filters = Q(facility__id__in=allowed_facilities) filters |= Q(last_consultation__assigned_to=request.user) queryset = queryset.filter(filters) return queryset