@@ -2013,17 +2013,8 @@ def published_project(request, project_slug, version, subdir=''):
20132013 except AWS .DoesNotExist :
20142014 user_in_access_point_policy = False
20152015
2016- content_type = ContentType .objects .get_for_model (project )
2017- project_views_count = AccessLog .objects .filter (
2018- object_id = project .id ,
2019- content_type = content_type
2020- ).values ('user' ).distinct ().count ()
2021-
2022- all_version_ids = PublishedProject .objects .filter (slug = project_slug ).values_list ('id' , flat = True )
2023- all_versions_views_count = AccessLog .objects .filter (
2024- object_id__in = all_version_ids ,
2025- content_type = content_type
2026- ).values ('user' ).distinct ().count ()
2016+ project_views_count = project .view_count ()
2017+ all_versions_views_count = project .view_count (all_versions = True )
20272018
20282019 context = {
20292020 'project' : project ,
@@ -2112,38 +2103,14 @@ def published_project_metrics(request, project_slug, version):
21122103 """
21132104 Public metrics page for a published project.
21142105 """
2115- from django .db .models import Count
2116- from django .db .models .functions import TruncMonth
2117-
2118- try :
2119- project = PublishedProject .objects .get (slug = project_slug , version = version )
2120- except ObjectDoesNotExist :
2121- raise Http404 ()
2122-
2123- content_type = ContentType .objects .get_for_model (project )
2124-
2125- project_logs = AccessLog .objects .filter (object_id = project .id , content_type = content_type )
2126- project_views_count = project_logs .unique_viewers_count ()
2127- views_over_time = project_logs .first_views_by_month ()
2128-
2129- all_versions = PublishedProject .objects .filter (slug = project_slug ).order_by ('version_order' )
2130- views_by_version = []
2131- all_versions_views_count = 0
2132- for v in all_versions :
2133- v_content_type = ContentType .objects .get_for_model (v )
2134- v_count = AccessLog .objects .filter (
2135- object_id = v .id ,
2136- content_type = v_content_type
2137- ).unique_viewers_count ()
2138- views_by_version .append ({'version' : v .version , 'count' : v_count })
2139- all_versions_views_count += v_count
2106+ project = get_object_or_404 (PublishedProject , slug = project_slug , version = version )
21402107
21412108 return render (request , 'project/published_project_metrics.html' , {
21422109 'project' : project ,
2143- 'project_views_count' : project_views_count ,
2144- 'all_versions_views_count' : all_versions_views_count ,
2145- 'views_over_time' : views_over_time ,
2146- 'views_by_version' : views_by_version ,
2110+ 'project_views_count' : project . view_count () ,
2111+ 'all_versions_views_count' : project . view_count ( all_versions = True ) ,
2112+ 'views_over_time' : project . views_over_time () ,
2113+ 'views_by_version' : project . views_by_version () ,
21472114 })
21482115
21492116
0 commit comments