Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/sentry/api/serializers/models/groupsearchview.py
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ def get_attrs(self, item_list, user, **kwargs) -> MutableMapping[Any, Any]:
return attrs

def serialize(self, obj, attrs, user, **kwargs) -> GroupSearchViewSerializerResponse:
projects = [-1] if obj.is_all_projects else list(obj.projects.values_list("id", flat=True))
projects = [-1] if obj.is_all_projects else [p.id for p in obj.projects.all()]

return {
"id": str(obj.id),
Expand Down
16 changes: 8 additions & 8 deletions src/sentry/api/serializers/models/groupsearchviewstarred.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
from sentry.api.serializers import Serializer, register, serialize
from sentry.api.serializers.models.groupsearchview import (
GroupSearchViewSerializer,
GroupSearchViewSerializerResponse,
)
from sentry.models.groupsearchviewstarred import GroupSearchViewStarred
from sentry.models.savedsearch import SORT_LITERALS
Expand All @@ -28,13 +27,14 @@ def __init__(self, *args, **kwargs):
self.organization = kwargs.pop("organization", None)
super().__init__(*args, **kwargs)

def serialize(self, obj, attrs, user, **kwargs) -> GroupSearchViewStarredSerializerResponse:
serialized_view: GroupSearchViewSerializerResponse = serialize(
obj.group_search_view,
def get_attrs(self, item_list, user, **kwargs):
views = [item.group_search_view for item in item_list]
serialized_views = serialize(
views,
user,
serializer=GroupSearchViewSerializer(
organization=self.organization,
),
serializer=GroupSearchViewSerializer(organization=self.organization),
)
return dict(zip(item_list, serialized_views))

return serialized_view
def serialize(self, obj, attrs, user, **kwargs) -> GroupSearchViewStarredSerializerResponse:
return attrs
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,13 @@ def get(self, request: Request, organization: Organization) -> Response:
"""

assert request.user.id is not None
starred_views = GroupSearchViewStarred.objects.filter(
organization=organization, user_id=request.user.id
).select_related("group_search_view")
starred_views = (
GroupSearchViewStarred.objects.filter(
organization=organization, user_id=request.user.id
)
.select_related("group_search_view")
.prefetch_related("group_search_view__projects")
)
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be better to do this in get_attrs instead, so this this is fixed for all callers. You can use prefetch_related_objects to perform on a list of objects and just do it on everything passed to the get_attrs call


return self.paginate(
request=request,
Expand Down
Loading