Coverage for posts/templatetags/posts_tags.py: 100.00%

19 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-05-02 19:56 -0700

1import markdown 1a

2from django import template 1a

3from django.db.models import Count 1a

4from django.utils.safestring import mark_safe 1a

5 

6from ..models import Post 1a

7 

8register = template.Library() 1a

9 

10 

11@register.simple_tag 1a

12def total_posts(): 1a

13 return Post.published.count() 1cadefbg

14 

15 

16@register.inclusion_tag("posts/latest_posts.html") 1a

17def show_latest_posts(count=5): 1a

18 latest_posts = Post.published.order_by("-publish")[:count] 1cadefbg

19 return {"latest_posts": latest_posts} 1cadefbg

20 

21 

22@register.simple_tag 1a

23def get_most_commented_posts(count=5): 1a

24 return Post.published.annotate(total_comments=Count("comments")).order_by( 1cadefbg

25 "-total_comments" 

26 )[:count] 

27 

28 

29@register.filter(name="markdown") 1a

30def markdown_format(text): 1a

31 return mark_safe(markdown.markdown(text)) # noqa: S308 1b