1010)
1111
1212
13+ def categories_ordered_by_total_repositories ():
14+ categories = []
15+ for c in Category .objects .all ():
16+ count_matching_repositories = Repository .objects .filter (
17+ categories__in = [c ]
18+ ).count ()
19+ if count_matching_repositories :
20+ setattr (c , "total_repositories" , count_matching_repositories )
21+ categories .append (c )
22+ return sorted (categories , key = lambda c : c .total_repositories , reverse = True )
23+
24+
1325class IndexView (MetadataMixin , TemplateView ):
1426 template_name = "core/index.html"
1527 title = "Django.WTF: The Django package index"
@@ -35,7 +47,7 @@ class IndexView(MetadataMixin, TemplateView):
3547
3648 def get_context_data (self , ** kwargs ):
3749 context = super ().get_context_data (** kwargs )
38- context ["categories" ] = self . categories_ordered_by_total_repositories ()
50+ context ["categories" ] = categories_ordered_by_total_repositories ()
3951 context ["trending_apps" ] = trending_repositories (days_since = 14 )[0 :5 ]
4052 context ["trending_developers" ] = trending_profiles ()[0 :5 ]
4153 context ["social_news" ] = SocialNews .objects .filter (
@@ -44,16 +56,5 @@ def get_context_data(self, **kwargs):
4456 context ["top_apps" ] = Repository .valid .order_by ("-stars" )[0 :5 ]
4557 return context
4658
47- def categories_ordered_by_total_repositories (self ):
48- categories = []
49- for c in Category .objects .all ():
50- count_matching_repositories = Repository .objects .filter (
51- categories__in = [c ]
52- ).count ()
53- if count_matching_repositories :
54- setattr (c , "total_repositories" , count_matching_repositories )
55- categories .append (c )
56- return sorted (categories , key = lambda c : c .total_repositories , reverse = True )
57-
5859 def get_meta_image (self , context = None ):
5960 return static ("images/logo.png" )
0 commit comments