Skip to content

Commit 4a2f06e

Browse files
committed
possible fix for #28
1 parent 8d8101c commit 4a2f06e

6 files changed

Lines changed: 38 additions & 9 deletions

File tree

api/views.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ def tutorials(request):
3232
"""
3333
if request.method == 'GET':
3434
paginator = PageNumberPagination()
35-
tutorials = Tutorial.objects.all().order_by('id')
35+
tutorials = Tutorial.objects.all().order_by('id').filter(publish=True)
3636
context = paginator.paginate_queryset(tutorials, request)
3737
serializer = TutorialSerializer(context, many=True)
3838
return paginator.get_paginated_response(serializer.data)
@@ -76,7 +76,7 @@ def tutorial_tag(request, tags):
7676
paginator = PageNumberPagination()
7777
tags = tags.split(',')
7878
custom_tutorial = Tutorial.objects.filter(
79-
tags__name__in=tags).order_by('id').distinct()
79+
tags__name__in=tags).order_by('id').distinct().filter(publish=True)
8080
context = paginator.paginate_queryset(custom_tutorial, request)
8181
serializer = TutorialSerializer(context, many=True)
8282
return paginator.get_paginated_response(serializer.data)
@@ -90,7 +90,7 @@ def tutorial_tag_category(request, tags, category):
9090
category = category.split(',')
9191
custom_tutorial = Tutorial.objects.filter(
9292
tags__name__in=tags, category__in=category
93-
).order_by('id').distinct()
93+
).order_by('id').filter(publish=True).distinct()
9494
context = paginator.paginate_queryset(custom_tutorial, request)
9595
serializer = TutorialSerializer(context, many=True)
9696
return paginator.get_paginated_response(serializer.data)
@@ -110,7 +110,7 @@ def tags(request):
110110
def latest(request):
111111
"""returns latest 10 tutorials from tutorialdb"""
112112
paginator = PageNumberPagination()
113-
results = Tutorial.objects.all().order_by('-created_date')[:10]
113+
results = Tutorial.objects.all().filter(publish=True).order_by('-created_date')[:10]
114114
context = paginator.paginate_queryset(results, request)
115115
serializer = TutorialSerializer(context, many=True)
116116
return paginator.get_paginated_response(serializer.data)

app/admin.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,12 @@
33
from .models import Tag, Tutorial
44
from .resources import TagResource, TutorialResource
55

6-
76
@admin.register(Tag)
87
class TagAdmin(ImportExportModelAdmin):
98
resource_class = TagResource
109

1110

1211
@admin.register(Tutorial)
13-
class TutorialAdmin(ImportExportModelAdmin):
12+
class TutorialAdmin(ImportExportModelAdmin, admin.ModelAdmin):
13+
list_display = ('id', 'title', 'publish')
1414
resource_class = TutorialResource
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Generated by Django 2.2.3 on 2019-08-29 14:07
2+
3+
from django.db import migrations, models
4+
5+
6+
class Migration(migrations.Migration):
7+
8+
dependencies = [
9+
('app', '0001_initial'),
10+
]
11+
12+
operations = [
13+
migrations.AddField(
14+
model_name='tutorial',
15+
name='publish',
16+
field=models.BooleanField(default=False),
17+
),
18+
migrations.AlterField(
19+
model_name='tutorial',
20+
name='category',
21+
field=models.CharField(choices=[('article', 'Article'), ('book', 'Book'), ('cheatsheet', 'Cheatsheet'), ('course', 'Course'), ('docs', 'Documentation'), ('video', 'Video')], max_length=20),
22+
),
23+
migrations.AlterField(
24+
model_name='tutorial',
25+
name='tags',
26+
field=models.ManyToManyField(to='app.Tag'),
27+
),
28+
]

app/models.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ class Tutorial(models.Model):
3535
tags = models.ManyToManyField(Tag)
3636
category = models.CharField(max_length=20, choices=CATEGORIES)
3737
created_date = models.DateTimeField(default=timezone.now)
38+
publish = models.BooleanField(default=False)
3839

3940
def __str__(self):
4041
return self.title

app/resources.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ class TutorialResource(resources.ModelResource):
1212
class Meta:
1313
model = Tutorial
1414
exclude = ('id',)
15-
export_order = ('title', 'link', 'tags', 'category', 'created_date')
15+
export_order = ('title', 'link', 'tags', 'category', 'created_date', 'publish')
1616
import_id_fields = ('title', 'link')
1717

1818

app/views.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ def search_query(request):
3131
tutorials = Tutorial.objects.filter(
3232
(Q(title__icontains=query) | Q(tags__name__in=list_query))
3333
& Q(category__icontains=category)
34-
).order_by('id').distinct()
34+
).order_by('id').filter(publish=True).distinct()
3535
else:
3636
tutorials = Tutorial.objects.filter(
3737
(Q(title__icontains=query) | Q(tags__name__in=list_query))
38-
).order_by('id').distinct()
38+
).order_by('id').filter(publish=True).distinct()
3939
end_time = time.time()
4040
total = len(tutorials)
4141
result_time = round(end_time - start_time, 3)

0 commit comments

Comments
 (0)