Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into sainak/chore/refactor
Browse files Browse the repository at this point in the history
  • Loading branch information
sainak committed Sep 3, 2023
2 parents 800d413 + 6390735 commit a8be24a
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 10 deletions.
4 changes: 2 additions & 2 deletions care/facility/api/viewsets/facility_users.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@

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, UserSkill


class UserFilter(filters.FilterSet):
Expand Down Expand Up @@ -39,7 +39,7 @@ def get_queryset(self):
return queryset.prefetch_related(
Prefetch(
"skills",
queryset=Skill.objects.filter(userskill__deleted=False),
queryset=UserSkill.objects.filter(skill__deleted=False),
),
)
except Facility.DoesNotExist:
Expand Down
13 changes: 9 additions & 4 deletions care/facility/api/viewsets/prescription.py
Original file line number Diff line number Diff line change
Expand Up @@ -164,13 +164,18 @@ def list(self, request):
from care.facility.static_data.medibase import MedibaseMedicineTable

queryset = MedibaseMedicineTable
try:
limit = min(int(request.query_params.get("limit", 30)), 100)
except ValueError:
limit = 30

if medicine_type := request.query_params.get("type"):
queryset = [x for x in queryset if x[2] == medicine_type]

if query := request.query_params.get("query"):
query = query.strip().lower()
queryset = [x for x in queryset if query in f"{x[1]} {x[3]} {x[4]}".lower()]
queryset = self.sort(query, queryset)

try:
limit = min(int(request.query_params.get("limit", 30)), 100)
except ValueError:
limit = 30

return Response(self.serailize_data(queryset[:limit]))
14 changes: 12 additions & 2 deletions care/users/api/serializers/skill.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
from rest_framework.serializers import ModelSerializer, UUIDField
from rest_framework.serializers import CharField, ModelSerializer, UUIDField

from care.users.models import Skill
from care.users.models import Skill, UserSkill


class SkillSerializer(ModelSerializer):
Expand All @@ -9,3 +9,13 @@ class SkillSerializer(ModelSerializer):
class Meta:
model = Skill
fields = ("id", "name", "description")


class UserSkillSerializer(ModelSerializer):
id = UUIDField(source="skill.external_id", read_only=True)
name = CharField(source="skill.name", read_only=True)
description = CharField(source="skill.description", read_only=True)

class Meta:
model = UserSkill
fields = ("id", "name", "description")
4 changes: 2 additions & 2 deletions care/users/api/serializers/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
LocalBodySerializer,
StateSerializer,
)
from care.users.api.serializers.skill import SkillSerializer
from care.users.api.serializers.skill import UserSkillSerializer
from care.users.models import GENDER_CHOICES
from care.utils.queryset.facility import get_home_facility_queryset
from care.utils.serializer.external_id_field import ExternalIdSerializerField
Expand Down Expand Up @@ -361,7 +361,7 @@ class UserAssignedSerializer(serializers.ModelSerializer):
source="home_facility",
read_only=True,
)
skills = SkillSerializer(many=True, read_only=True)
skills = UserSkillSerializer(many=True, read_only=True)

class Meta:
model = User
Expand Down

0 comments on commit a8be24a

Please sign in to comment.