Skip to content

Commit

Permalink
Fix stats extension.
Browse files Browse the repository at this point in the history
  • Loading branch information
David Read committed Apr 14, 2015
1 parent 80225dc commit 7d72bdd
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 21 deletions.
2 changes: 1 addition & 1 deletion ckanext/stats/controller.py
Expand Up @@ -13,7 +13,7 @@ def index(self):
c.most_edited_packages = stats.most_edited_packages()
c.largest_groups = stats.largest_groups()
c.top_tags = stats.top_tags()
c.top_package_owners = stats.top_package_owners()
c.top_package_creators = stats.top_package_creators()
c.new_packages_by_week = rev_stats.get_by_week('new_packages')
c.deleted_packages_by_week = rev_stats.get_by_week('deleted_packages')
c.num_packages_by_week = rev_stats.get_num_packages_by_week()
Expand Down
25 changes: 11 additions & 14 deletions ckanext/stats/stats.py
Expand Up @@ -99,20 +99,17 @@ def top_tags(cls, limit=10, returned_tag_info='object'): # by package
return res_tags

@classmethod
def top_package_owners(cls, limit=10):
package_role = table('package_role')
user_object_role = table('user_object_role')
package = table('package')
s = select([user_object_role.c.user_id, func.count(user_object_role.c.role)], from_obj=[user_object_role.join(package_role).join(package)]).\
where(user_object_role.c.role==model.authz.Role.ADMIN).\
where(user_object_role.c.user_id!=None).\
where(and_(package.c.private==False, package.c.state=='active')). \
group_by(user_object_role.c.user_id).\
order_by(func.count(user_object_role.c.role).desc()).\
limit(limit)
res_ids = model.Session.execute(s).fetchall()
res_users = [(model.Session.query(model.User).get(unicode(user_id)), val) for user_id, val in res_ids]
return res_users
def top_package_creators(cls, limit=10):
userid_count = \
model.Session.query(model.Package.creator_user_id,
func.count(model.Package.creator_user_id))\
.group_by(model.Package.creator_user_id) \
.order_by(func.count(model.Package.creator_user_id).desc())\
.limit(limit).all()
user_count = [
(model.Session.query(model.User).get(unicode(user_id)), count)
for user_id, count in userid_count]
return user_count

class RevisionStats(object):
@classmethod
Expand Down
8 changes: 4 additions & 4 deletions ckanext/stats/templates/ckanext/stats/index.html
Expand Up @@ -148,8 +148,8 @@ <h2>{{ _('Top Tags') }}</h2>
</table>
</section>

<section id="stats-most-owned" class="module-content tab-content">
<h2>{{ _('Users Owning Most Datasets') }}</h2>
<section id="stats-most-create" class="module-content tab-content">
<h2>{{ _('Users Creating Most Datasets') }}</h2>
<table class="table table-chunky table-bordered table-striped">
<thead>
<tr>
Expand All @@ -158,7 +158,7 @@ <h2>{{ _('Users Owning Most Datasets') }}</h2>
</tr>
</thead>
<tbody>
{% for user, num_packages in c.top_package_owners %}
{% for user, num_packages in c.top_package_creators %}
<tr>
<td class="media">{{ h.linked_user(user) }}</td>
<td class="metric">{{ num_packages }}</td>
Expand All @@ -181,7 +181,7 @@ <h2 class="module-heading"><i class="icon-bar-chart icon-medium"></i> {{ _('Stat
<li class="nav-item"><a href="#stats-most-edited" data-toggle="tab">{{ _('Most Edited Datasets') }}</a></li>
<li class="nav-item"><a href="#stats-largest-groups" data-toggle="tab">{{ _('Largest Groups') }}</a></li>
<li class="nav-item"><a href="#stats-top-tags" data-toggle="tab">{{ _('Top Tags') }}</a></li>
<li class="nav-item"><a href="#stats-most-owned" data-toggle="tab">{{ _('Users Owning Most Datasets') }}</a></li>
<li class="nav-item"><a href="#stats-most-create" data-toggle="tab">{{ _('Users Creating Most Datasets') }}</a></li>
</ul>
</nav>
</section>
Expand Down
4 changes: 2 additions & 2 deletions ckanext/stats/templates_legacy/ckanext/stats/index.html
Expand Up @@ -92,9 +92,9 @@ <h3>Top Tags</h3>
</tr>
</table>

<h3>Users owning most datasets</h3>
<h3>Users creating most datasets</h3>
<table class="table table-bordered table-striped">
<tr py:for="user, num_packages in c.top_package_owners">
<tr py:for="user, num_packages in c.top_package_creators">
<td>${h.linked_user(user)}</td><td class="metric">${num_packages}</td>
</tr>
</table>
Expand Down

0 comments on commit 7d72bdd

Please sign in to comment.