Skip to content

Commit 4e9a1be

Browse files
committed
add featured page
1 parent 2eb7845 commit 4e9a1be

File tree

4 files changed

+71
-2
lines changed

4 files changed

+71
-2
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
{% extends 'blog/base.html' %}
2+
3+
{% block content %}
4+
<div class="row">
5+
<div class="col-md-6 col-12 mx-md-auto mx-3 mt-5 md-5">
6+
<h1 class="fw-bolder">Featured post</h1>
7+
<h5 class="text-muted">review featured posts</h5>
8+
</div>
9+
</div>
10+
11+
{% for object in object_list %}
12+
<div class="row">
13+
<div class="col-md-6 col-12 mx-md-auto mx-3 mt-5 md-5">
14+
<h3 class="fw-bold">{{ object.title }}</h3>
15+
<p class="text-muted">{{ object.date }}</p>
16+
<p class="text-muted">By {{ object.author.username }}</p>
17+
{% if object.likes.count == 1 %}
18+
<p class="text-muted">{{ object.likes.count }} person liked</p>
19+
{% else %}
20+
<p class="text-muted">{{ object.likes.count }} people liked</p>
21+
{% endif %}
22+
<div class="my-3">
23+
{{ object.content | truncatewords_html:50 | safe }}
24+
</div>
25+
<a href="{% url 'detail_article' object.id %}">Read more</a>
26+
</div>
27+
</div>
28+
{% endfor %}
29+
30+
<nav>
31+
<ul class="pagination">
32+
<div class="mx-auto d-flex flex-row mt-5">
33+
{% if page_obj.has_previous %}
34+
<li class="page-item">
35+
<a class="page-link" href="?page=1">&laquo; First
36+
</a>
37+
</li>
38+
39+
<li class="page-item">
40+
<a class="page-link" href="?page={{ page_obj.previous_page_number }}">Previous</a>
41+
</li>
42+
{% endif %}
43+
44+
<li class="page-item">
45+
<a class="page-link" href="#">Page {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.</a>
46+
</li>
47+
{% if page_obj.has_next %}
48+
<li class="page-item">
49+
<a class="page-link" href="?page={{ page_obj.next_page_number }}">Next</a>
50+
</li>
51+
<li class="page-item">
52+
<a class="page-link" href="?page={{ page_obj.paginator.num_pages }}">Last &raquo;</a>
53+
</li>
54+
{% endif %}
55+
</div>
56+
</ul>
57+
</nav>
58+
{% endblock %}

config/blog/templates/blog/nav.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<div class="collapse navbar-collapse" id="navbarText">
88
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
99
<li class="nav-item">
10-
<a class="nav-link" aria-current="page" href="#">Features</a>
10+
<a class="nav-link" aria-current="page" href="{% url 'ّfeatured' %}">Features</a>
1111
</li>
1212
</ul>
1313
<ul class="navbar-nav">

config/blog/urls.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@
77
path('about/', About.as_view(), name='about'),
88
path('<int:pk>/', DetailArticleView.as_view(), name='detail_article'),
99
path('<int:pk>/like/', LikeArticle.as_view(), name='like_article'),
10+
path('featured/', Featured.as_view(), name='ّfeatured'),
1011
]

config/blog/views.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
from django.views.generic import ListView, DetailView
44

55
from .models import Article
6+
7+
68
# Create your views here.
79

810
class Index(ListView):
@@ -11,6 +13,14 @@ class Index(ListView):
1113
template_name = 'blog/home.html'
1214
paginate_by = 1
1315

16+
17+
class Featured(ListView):
18+
model = Article
19+
queryset = Article.objects.filter(featured=True).order_by("-date")
20+
template_name = 'blog/featured.html'
21+
paginate_by = 1
22+
23+
1424
class DetailArticleView(DetailView):
1525
model = Article
1626
template_name = 'blog/blog_post.html'
@@ -24,6 +34,7 @@ def get_context_data(self, *args, **kwargs):
2434

2535
return context
2636

37+
2738
class LikeArticle(View):
2839
def post(self, request, pk):
2940
article = Article.objects.get(id=pk)
@@ -36,7 +47,6 @@ def post(self, request, pk):
3647
return redirect('detail_article', pk)
3748

3849

39-
4050
class About(View):
4151
def get(self, request):
4252
return render(request, 'blog/about.html')

0 commit comments

Comments
 (0)