Skip to content

Commit 4a6402b

Browse files
Add order_by parameter to series/movies view
1 parent dda3826 commit 4a6402b

File tree

4 files changed

+57
-15
lines changed

4 files changed

+57
-15
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Generated by Django 2.2.8 on 2021-01-30 12:54
2+
3+
from django.db import migrations, models
4+
import django.utils.timezone
5+
6+
7+
class Migration(migrations.Migration):
8+
9+
dependencies = [
10+
('StreamServerApp', '0022_auto_20201208_0859'),
11+
]
12+
13+
operations = [
14+
migrations.AddField(
15+
model_name='movie',
16+
name='created_at',
17+
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
18+
preserve_default=False,
19+
),
20+
migrations.AddField(
21+
model_name='series',
22+
name='created_at',
23+
field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now),
24+
preserve_default=False,
25+
),
26+
migrations.AlterField(
27+
model_name='movie',
28+
name='title',
29+
field=models.CharField(max_length=300),
30+
),
31+
migrations.AlterField(
32+
model_name='series',
33+
name='title',
34+
field=models.CharField(max_length=300),
35+
),
36+
]

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)