Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add order to queryset to ensure correctness of pagination result. #195

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
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
4 changes: 2 additions & 2 deletions pdc/apps/auth/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ def list(self, request, *args, **kwargs):
"""
return super(PermissionViewSet, self).list(request, *args, **kwargs)

queryset = Permission.objects.all()
queryset = Permission.objects.all().order_by("id")
serializer_class = serializers.PermissionSerializer
filter_class = filters.PermissionFilter

Expand Down Expand Up @@ -481,7 +481,7 @@ def update(self, request, *args, **kwargs):
"""
return super(GroupViewSet, self).update(request, *args, **kwargs)

queryset = Group.objects.all()
queryset = Group.objects.all().order_by('id')
serializer_class = serializers.GroupSerializer
filter_class = filters.GroupFilter
Group.export = group_obj_export
Expand Down
8 changes: 4 additions & 4 deletions pdc/apps/common/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ class ArchListView(ListView):

class SigKeyListView(ListView):
model = SigKey
queryset = SigKey.objects.all()
queryset = SigKey.objects.all().order_by('id')
allow_empty = True
template_name = "sigkey_list.html"
context_object_name = "sigkey_list"
Expand All @@ -50,7 +50,7 @@ class LabelViewSet(pdc_viewsets.PDCModelViewSet):
browsers, such as ``RESTClient``, ``RESTConsole``.
"""
serializer_class = LabelSerializer
queryset = Label.objects.all()
queryset = Label.objects.all().order_by('id')
filter_class = LabelFilter

def create(self, request, *args, **kwargs):
Expand Down Expand Up @@ -225,7 +225,7 @@ class ArchViewSet(pdc_viewsets.ChangeSetCreateModelMixin,
browsers, such as ``RESTClient``, ``RESTConsole``.
"""
serializer_class = ArchSerializer
queryset = Arch.objects.all()
queryset = Arch.objects.all().order_by('id')
lookup_field = 'name'

def list(self, request, *args, **kwargs):
Expand Down Expand Up @@ -307,7 +307,7 @@ class SigKeyViewSet(pdc_viewsets.StrictQueryParamMixin,
browsers, such as ``RESTClient``, ``RESTConsole``.
"""
serializer_class = SigKeySerializer
queryset = SigKey.objects.all()
queryset = SigKey.objects.all().order_by('id')
filter_class = SigKeyFilter
lookup_field = 'key_id'

Expand Down
4 changes: 2 additions & 2 deletions pdc/apps/component/tests.py
Original file line number Diff line number Diff line change
Expand Up @@ -228,8 +228,8 @@ def test_query_global_component_with_multipl_values(self):
response = self.client.get(url, format='json')
self.assertEqual(response.status_code, status.HTTP_200_OK)
self.assertEqual(response.data['count'], 2)
self.assertEqual(response.data['results'][0]['name'], 'MySQL-python')
self.assertEqual(response.data['results'][1]['name'], 'python')
self.assertEqual(response.data['results'][0]['name'], 'python')
self.assertEqual(response.data['results'][1]['name'], 'MySQL-python')

def test_query_global_components_with_upstream(self):
url = reverse('globalcomponent-list')
Expand Down
26 changes: 13 additions & 13 deletions pdc/apps/component/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ class GlobalComponentViewSet(viewsets.PDCModelViewSet):

"""
model = GlobalComponent
queryset = GlobalComponent.objects.all()
queryset = GlobalComponent.objects.all().order_by('id')
serializer_class = GlobalComponentSerializer
filter_class = ComponentFilter

Expand Down Expand Up @@ -354,7 +354,7 @@ class GlobalComponentContactViewSet(HackedComponentContactMixin,
"""

model = GlobalComponent
queryset = GlobalComponent.objects.all()
queryset = GlobalComponent.objects.all().order_by('id')
serializer_class = HackedContactSerializer
filter_class = RoleContactFilter

Expand Down Expand Up @@ -512,7 +512,7 @@ class GlobalComponentLabelViewSet(viewsets.PDCModelViewSet):
browsers, such as ``RESTClient``, ``RESTConsole``.
"""
model = Label
queryset = Label.objects.all()
queryset = Label.objects.all().order_by('id')
serializer_class = LabelSerializer
filter_class = LabelFilter

Expand Down Expand Up @@ -634,7 +634,7 @@ class ReleaseComponentTypeViewSet(viewsets.StrictQueryParamMixin,
API endpoint that allows release_component_types to be viewed.
"""
serializer_class = ReleaseComponentTypeSerializer
queryset = ReleaseComponentType.objects.all()
queryset = ReleaseComponentType.objects.all().order_by('id')

def list(self, request, *args, **kwargs):
"""
Expand Down Expand Up @@ -674,7 +674,7 @@ class ReleaseComponentViewSet(viewsets.PDCModelViewSet):

"""
model = ReleaseComponent
queryset = model.objects.all()
queryset = model.objects.all().order_by('id')
serializer_class = ReleaseComponentSerializer
filter_class = ReleaseComponentFilter
extra_query_params = ('include_inactive_release', )
Expand Down Expand Up @@ -1107,7 +1107,7 @@ class ReleaseComponentContactViewSet(HackedComponentContactMixin,
API]($URL:releasecomponentcontacts-list$) instead.
"""
model = ReleaseComponent
queryset = ReleaseComponent.objects.all()
queryset = ReleaseComponent.objects.all().order_by('id')
serializer_class = HackedContactSerializer
gcc_serializer_class = HackedContactSerializer
extra_query_params = ('contact_role', )
Expand Down Expand Up @@ -1351,7 +1351,7 @@ class BugzillaComponentViewSet(viewsets.PDCModelViewSet):

"""
model = BugzillaComponent
queryset = model.objects.all()
queryset = model.objects.all().order_by('id')
serializer_class = BugzillaComponentSerializer
filter_class = BugzillaComponentFilter

Expand Down Expand Up @@ -1592,7 +1592,7 @@ class GroupTypeViewSet(viewsets.PDCModelViewSet):
API endpoint that allows component_group_types to be viewed or edited.
"""
serializer_class = GroupTypeSerializer
queryset = GroupType.objects.all()
queryset = GroupType.objects.all().order_by('id')
filter_class = GroupTypeFilter

def create(self, request, *args, **kwargs):
Expand Down Expand Up @@ -1673,7 +1673,7 @@ class GroupViewSet(viewsets.PDCModelViewSet):
API endpoint that allows component_groups to be viewed or edited.
"""
serializer_class = GroupSerializer
queryset = ReleaseComponentGroup.objects.all()
queryset = ReleaseComponentGroup.objects.all().order_by('id')
filter_class = GroupFilter

def create(self, request, *args, **kwargs):
Expand Down Expand Up @@ -1780,7 +1780,7 @@ class ReleaseComponentRelationshipTypeViewSet(viewsets.StrictQueryParamMixin,
API endpoint that allows release_component_relationship_types to be viewed.
"""
serializer_class = RCRelationshipTypeSerializer
queryset = ReleaseComponentRelationshipType.objects.all()
queryset = ReleaseComponentRelationshipType.objects.all().order_by('id')

def list(self, request, *args, **kwargs):
"""
Expand All @@ -1800,7 +1800,7 @@ class ReleaseComponentRelationshipViewSet(viewsets.PDCModelViewSet):
API endpoint that allows release component relationship to be viewed or edited.
"""
serializer_class = ReleaseComponentRelationshipSerializer
queryset = ReleaseComponentRelationship.objects.all()
queryset = ReleaseComponentRelationship.objects.all().order_by('id')
filter_class = ReleaseComponentRelationshipFilter

def create(self, request, *args, **kwargs):
Expand Down Expand Up @@ -1999,7 +1999,7 @@ def create(self, *args, **kwargs):
# TODO Remove Info from name once 0.2.0 gets out
class GlobalComponentContactInfoViewSet(_BaseContactViewSet):

queryset = GlobalComponentContact.objects.all().select_related()
queryset = GlobalComponentContact.objects.all().select_related().order_by('id')
serializer_class = GlobalComponentContactSerializer
filter_class = GlobalComponentContactFilter
docstring_macros = {
Expand All @@ -2011,7 +2011,7 @@ class GlobalComponentContactInfoViewSet(_BaseContactViewSet):
# TODO Remove Info from name once 0.2.0 gets out
class ReleaseComponentContactInfoViewSet(_BaseContactViewSet):

queryset = ReleaseComponentContact.objects.all().select_related()
queryset = ReleaseComponentContact.objects.all().select_related().order_by('id')
serializer_class = ReleaseComponentContactSerializer
filter_class = ReleaseComponentContactFilter
docstring_macros = {
Expand Down
6 changes: 3 additions & 3 deletions pdc/apps/compose/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ class ComposeListView(SearchView):
form_class = ComposeSearchForm
queryset = Compose.objects.all() \
.select_related('release', 'compose_type') \
.prefetch_related('linked_releases')
.prefetch_related('linked_releases').order_by('id')
allow_empty = True
template_name = "compose_list.html"
context_object_name = "compose_list"
Expand Down Expand Up @@ -428,7 +428,7 @@ class ComposeViewSet(StrictQueryParamMixin,
template contains a string `{{package}}` which should be replaced with the
package name you are interested in.
"""
queryset = Compose.objects.all()
queryset = Compose.objects.all().order_by('id')
serializer_class = ComposeSerializer
filter_class = ComposeFilter
lookup_field = 'compose_id'
Expand Down Expand Up @@ -877,7 +877,7 @@ class ReleaseOverridesRPMViewSet(StrictQueryParamMixin,
"""

serializer_class = OverrideRPMSerializer
queryset = OverrideRPM.objects.all()
queryset = OverrideRPM.objects.all().order_by('id')
filter_class = OverrideRPMFilter

def create(self, *args, **kwargs):
Expand Down
10 changes: 5 additions & 5 deletions pdc/apps/contact/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ def destroy(self, request, *args, **kwargs):
return super(PersonViewSet, self).destroy(request, *args, **kwargs)

serializer_class = PersonSerializer
queryset = Person.objects.all()
queryset = Person.objects.all().order_by('id')
filter_class = PersonFilterSet


Expand Down Expand Up @@ -307,7 +307,7 @@ def destroy(self, request, *args, **kwargs):
return super(MaillistViewSet, self).destroy(request, *args, **kwargs)

serializer_class = MaillistSerializer
queryset = Maillist.objects.all()
queryset = Maillist.objects.all().order_by('id')
filter_class = MaillistFilterSet


Expand Down Expand Up @@ -479,7 +479,7 @@ def destroy(self, request, *args, **kwargs):
return super(ContactRoleViewSet, self).destroy(request, *args, **kwargs)

serializer_class = ContactRoleSerializer
queryset = ContactRole.objects.all()
queryset = ContactRole.objects.all().order_by('id')
filter_class = ContactRoleFilterSet
lookup_field = 'name'
overwrite_lookup_field = False
Expand Down Expand Up @@ -737,11 +737,11 @@ def destroy(self, request, *args, **kwargs):
return super(RoleContactViewSet, self).destroy(request, *args, **kwargs)

serializer_class = RoleContactSerializer
queryset = RoleContact.objects.all()
queryset = RoleContact.objects.all().order_by('id')
extra_query_params = ('contact_role', 'username', 'mail_name', 'email')

def get_queryset(self):
queryset = RoleContact.objects.all()
queryset = RoleContact.objects.all().order_by('id')

filters = self.request.query_params
person_kwarg = {}
Expand Down
2 changes: 1 addition & 1 deletion pdc/apps/osbs/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ class OSBSViewSet(common_viewsets.StrictQueryParamMixin,
is `null`, it indicates that the client should use its default value.
"""

queryset = models.OSBSRecord.objects.filter(component__type__has_osbs=True)
queryset = models.OSBSRecord.objects.filter(component__type__has_osbs=True).order_by('component__id')
serializer_class = serializers.OSBSSerializer
filter_class = filters.OSBSFilter
lookup_fields = (('component__release__release_id', r'[^/]+'),
Expand Down
6 changes: 3 additions & 3 deletions pdc/apps/package/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ class RPMViewSet(pdc_viewsets.StrictQueryParamMixin,
"""
API endpoint that allows RPMs to be viewed.
"""
queryset = models.RPM.objects.all()
queryset = models.RPM.objects.all().order_by("id")
serializer_class = serializers.RPMSerializer
filter_class = filters.RPMFilter

Expand Down Expand Up @@ -129,7 +129,7 @@ class ImageViewSet(pdc_viewsets.StrictQueryParamMixin,
"""
List and query images.
"""
queryset = models.Image.objects.all()
queryset = models.Image.objects.all().order_by('id')
serializer_class = serializers.ImageSerializer
filter_class = filters.ImageFilter

Expand Down Expand Up @@ -159,7 +159,7 @@ class BuildImageViewSet(pdc_viewsets.PDCModelViewSet):
"""
ViewSet for BuildImage.
"""
queryset = models.BuildImage.objects.all()
queryset = models.BuildImage.objects.all().order_by('id')
serializer_class = serializers.BuildImageSerializer
filter_class = filters.BuildImageFilter

Expand Down
6 changes: 3 additions & 3 deletions pdc/apps/partners/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
class PartnerTypeViewSet(StrictQueryParamMixin,
mixins.ListModelMixin,
viewsets.GenericViewSet):
queryset = models.PartnerType.objects.all()
queryset = models.PartnerType.objects.all().order_by('id')
serializer_class = serializers.PartnerTypeSerializer

def list(self, request, *args, **kwargs):
Expand All @@ -37,7 +37,7 @@ def list(self, request, *args, **kwargs):


class PartnerViewSet(PDCModelViewSet):
queryset = models.Partner.objects.all()
queryset = models.Partner.objects.all().order_by('id')
lookup_field = 'short'
serializer_class = serializers.PartnerSerializer
filter_class = filters.PartnerFilterSet
Expand Down Expand Up @@ -123,7 +123,7 @@ class PartnerMappingViewSet(StrictQueryParamMixin,
'partner',
'variant_arch__arch',
'variant_arch__variant__release'
)
).order_by('id')
serializer_class = serializers.PartnerMappingSerializer
lookup_fields = (
('partner__short', r'[^/]+'),
Expand Down
Loading