Skip to content

Commit

Permalink
Add query filter for dataview viewset
Browse files Browse the repository at this point in the history
  • Loading branch information
FrankApiyo committed Oct 19, 2024
1 parent 7037691 commit 02962ec
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 6 deletions.
10 changes: 10 additions & 0 deletions onadata/apps/api/tests/viewsets/test_dataview_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -454,6 +454,16 @@ def test_list_dataview(self):
self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 2)

# delete DataView and check that we don't get it in response
dataview = DataView.objects.get(name="My DataView2")
deleted_dataview_id = dataview.id
dataview.soft_delete(user=self.user)
response = view(request)

self.assertEqual(response.status_code, 200)
self.assertEqual(len(response.data), 1)
self.assertNotEqual(response.data[0]["dataviewid"], deleted_dataview_id)

anon_request = request = self.factory.get("/")
anon_response = view(anon_request)
self.assertEqual(anon_response.status_code, 401)
Expand Down
8 changes: 8 additions & 0 deletions onadata/apps/api/viewsets/dataview_viewset.py
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,14 @@ def get_serializer_class(self):

return serializer_class

def filter_queryset(self, queryset):
"""
Remove deleted DataViews
"""
return super().filter_queryset(
queryset.filter(deleted_at=None, deleted_by=None)
)

def list(self, request, *args, **kwargs):
"""
List endpoint for Filtered datasets
Expand Down
6 changes: 0 additions & 6 deletions onadata/libs/serializers/dataview_serializer.py
Original file line number Diff line number Diff line change
Expand Up @@ -109,11 +109,6 @@ class DataViewSerializer(serializers.HyperlinkedModelSerializer):
project = serializers.HyperlinkedRelatedField(
view_name="project-detail", lookup_field="pk", queryset=Project.objects.all()
)
deleted_by = serializers.HyperlinkedRelatedField(
view_name="user-detail",
lookup_field="username",
read_only=True,
)
columns = JsonField()
query = JsonField(required=False)
count = serializers.SerializerMethodField()
Expand All @@ -124,7 +119,6 @@ class DataViewSerializer(serializers.HyperlinkedModelSerializer):

class Meta:
model = DataView
exclude = ["deleted_by", "deleted_at"]
fields = (
"dataviewid",
"name",
Expand Down

0 comments on commit 02962ec

Please sign in to comment.