Skip to content

Commit

Permalink
Revert "used prefetch where we are querying the skills using UserAssi…
Browse files Browse the repository at this point in the history
…gned Serializer"

This reverts commit 7000a38.
  • Loading branch information
yaswanthsaivendra committed May 27, 2023
1 parent 7000a38 commit a75b98d
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 15 deletions.
20 changes: 6 additions & 14 deletions care/facility/api/viewsets/facility_users.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
from django.core.exceptions import ObjectDoesNotExist
from django.db.models import Prefetch
from django_filters import rest_framework as filters
from rest_framework import mixins
from rest_framework.exceptions import ValidationError
Expand All @@ -8,14 +6,12 @@

from care.facility.models.facility import Facility
from care.users.api.serializers.user import UserAssignedSerializer
from care.users.models import Skill, User
from care.users.models import User


class UserFilter(filters.FilterSet):
user_type = filters.TypedChoiceFilter(
choices=[(key, key) for key in User.TYPE_VALUE_MAP.keys()],
coerce=lambda role: User.TYPE_VALUE_MAP[role],
)
user_type = filters.TypedChoiceFilter(choices=[(key, key) for key in User.TYPE_VALUE_MAP.keys()],
coerce=lambda role: User.TYPE_VALUE_MAP[role])

class Meta:
model = User
Expand All @@ -25,17 +21,13 @@ class Meta:
class FacilityUserViewSet(GenericViewSet, mixins.ListModelMixin):
serializer_class = UserAssignedSerializer
filterset_class = UserFilter
queryset = User.objects.all().prefetch_related(
Prefetch("skills", queryset=Skill.objects.filter(userskill__deleted=False))
)
queryset = User.objects.all()
permission_classes = [IsAuthenticated]
filter_backends = [filters.DjangoFilterBackend]

def get_queryset(self):
try:
facility = Facility.objects.get(
external_id=self.kwargs.get("facility_external_id")
)
facility = Facility.objects.get(external_id=self.kwargs.get("facility_external_id"))
return facility.users.filter(deleted=False).order_by("-last_login")
except ObjectDoesNotExist:
except:
raise ValidationError({"Facility": "Facility not found"})
6 changes: 5 additions & 1 deletion care/users/api/serializers/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,11 @@ class UserAssignedSerializer(serializers.ModelSerializer):
home_facility_object = FacilityBareMinimumSerializer(
source="home_facility", read_only=True
)
skills = SkillSerializer(many=True, read_only=True)
skills = serializers.SerializerMethodField()

def get_skills(self, obj):
qs = obj.skills.filter(userskill__deleted=False)
return SkillSerializer(qs, many=True).data

class Meta:
model = User
Expand Down

0 comments on commit a75b98d

Please sign in to comment.