Skip to content

Commit 9f3f0fa

Browse files
Add order_by parameter to series/movies view
1 parent dda3826 commit 9f3f0fa

File tree

3 files changed

+21
-15
lines changed

3 files changed

+21
-15
lines changed

backend/StreamServerApp/models.py

+11-10
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,24 @@ def search_trigramm(self, model_field, query):
1717
return queryset
1818

1919

20-
class Movie(models.Model):
21-
title = models.CharField(max_length=200)
20+
class CommonInfo(models.Model):
21+
title = models.CharField(max_length=300)
22+
created_at = models.DateTimeField(auto_now_add=True)
23+
objects = SearchManager()
24+
25+
class Meta:
26+
abstract = True
2227

2328
def __str__(self):
2429
return self.title
2530

26-
objects = SearchManager()
27-
2831

29-
class Series(models.Model):
30-
title = models.CharField(max_length=200)
31-
thumbnail = models.CharField(max_length=300, default="")
32+
class Movie(CommonInfo):
33+
pass
3234

33-
def __str__(self):
34-
return self.title
3535

36-
objects = SearchManager()
36+
class Series(CommonInfo):
37+
thumbnail = models.CharField(max_length=300, default="")
3738

3839
@property
3940
def season_list(self):

backend/StreamServerApp/tests/tests_videos.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,10 @@ def test_list_movies(self):
208208
newsub2 = Subtitle()
209209
newsub2.video_id = video2
210210
newsub2.save()
211-
response = self.client.get(reverse('movies-list'))
211+
data = {
212+
'order_query': 'created_at'
213+
}
214+
response = self.client.get(reverse('movies-list'), data)
212215
decoded_content = json.loads(str(response.content, encoding='utf8'))
213216
self.assertEqual(response.status_code, 200)
214217
self.assertEqual(decoded_content['results'][0]['title'], 'The best test title ever')

backend/StreamServerApp/views/videos.py

+6-4
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,11 @@ def get_queryset(self):
7070
query parameter in the URL.
7171
"""
7272
search_query = self.request.query_params.get('search_query', None)
73+
order_query = self.request.query_params.get('order_query', "-created_at")
7374
if search_query:
74-
queryset = Series.objects.search_trigramm('title', search_query)
75+
queryset = Series.objects.search_trigramm('title', search_query).order_by(order_query)
7576
else:
76-
queryset = Series.objects.all()
77+
queryset = Series.objects.all().order_by(order_query)
7778
return queryset
7879

7980

@@ -109,10 +110,11 @@ def get_queryset(self):
109110
"""
110111

111112
search_query = self.request.query_params.get('search_query', None)
113+
order_query = self.request.query_params.get('order_query', "-created_at")
112114
if search_query:
113-
queryset = Movie.objects.search_trigramm('title', search_query).prefetch_related('video_set')
115+
queryset = Movie.objects.search_trigramm('title', search_query).prefetch_related('video_set').order_by(order_query)
114116
else:
115-
queryset = Movie.objects.prefetch_related('video_set').all()
117+
queryset = Movie.objects.prefetch_related('video_set').all().order_by(order_query)
116118
return queryset
117119

118120

0 commit comments

Comments
 (0)