add recent datasets
[ckanext-dga-stats.git] / ckanext / dga_stats / controller.py
blob:a/ckanext/dga_stats/controller.py -> blob:b/ckanext/dga_stats/controller.py
import ckan.plugins as p import ckan.plugins as p
from ckan.lib.base import BaseController, config from ckan.lib.base import BaseController, config
import stats as stats_lib import stats as stats_lib
import ckan.lib.helpers as h import ckan.lib.helpers as h
   
class StatsController(BaseController): class StatsController(BaseController):
   
def index(self): def index(self):
c = p.toolkit.c c = p.toolkit.c
stats = stats_lib.Stats() stats = stats_lib.Stats()
rev_stats = stats_lib.RevisionStats() rev_stats = stats_lib.RevisionStats()
c.top_rated_packages = stats.top_rated_packages() c.top_rated_packages = stats.top_rated_packages()
c.most_edited_packages = stats.most_edited_packages() c.most_edited_packages = stats.most_edited_packages()
c.largest_groups = stats.largest_groups() c.largest_groups = stats.largest_groups()
c.top_tags = stats.top_tags() c.top_tags = stats.top_tags()
c.top_package_owners = stats.top_package_owners() c.top_package_owners = stats.top_package_owners()
c.summary_stats = stats.summary_stats() c.summary_stats = stats.summary_stats()
c.activity_counts = stats.activity_counts() c.activity_counts = stats.activity_counts()
c.by_org = stats.by_org() c.by_org = stats.by_org()
c.user_access_list = stats.user_access_list() c.user_access_list = stats.user_access_list()
  c.recent_datasets = stats.recent_datasets()
c.new_packages_by_week = rev_stats.get_by_week('new_packages') 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.deleted_packages_by_week = rev_stats.get_by_week('deleted_packages')
c.num_packages_by_week = rev_stats.get_num_packages_by_week() c.num_packages_by_week = rev_stats.get_num_packages_by_week()
c.package_revisions_by_week = rev_stats.get_by_week('package_revisions') c.package_revisions_by_week = rev_stats.get_by_week('package_revisions')
   
# Used in the legacy CKAN templates. # Used in the legacy CKAN templates.
c.packages_by_week = [] c.packages_by_week = []
   
# Used in new CKAN templates gives more control to the templates for formatting. # Used in new CKAN templates gives more control to the templates for formatting.
c.raw_packages_by_week = [] c.raw_packages_by_week = []
for week_date, num_packages, cumulative_num_packages in c.num_packages_by_week: for week_date, num_packages, cumulative_num_packages in c.num_packages_by_week:
c.packages_by_week.append('[new Date(%s), %s]' % (week_date.replace('-', ','), cumulative_num_packages)) c.packages_by_week.append('[new Date(%s), %s]' % (week_date.replace('-', ','), cumulative_num_packages))
c.raw_packages_by_week.append({'date': h.date_str_to_datetime(week_date), 'total_packages': cumulative_num_packages}) c.raw_packages_by_week.append({'date': h.date_str_to_datetime(week_date), 'total_packages': cumulative_num_packages})
   
c.all_package_revisions = [] c.all_package_revisions = []
c.raw_all_package_revisions = [] c.raw_all_package_revisions = []
for week_date, revs, num_revisions, cumulative_num_revisions in c.package_revisions_by_week: for week_date, revs, num_revisions, cumulative_num_revisions in c.package_revisions_by_week:
c.all_package_revisions.append('[new Date(%s), %s]' % (week_date.replace('-', ','), num_revisions)) c.all_package_revisions.append('[new Date(%s), %s]' % (week_date.replace('-', ','), num_revisions))
c.raw_all_package_revisions.append({'date': h.date_str_to_datetime(week_date), 'total_revisions': num_revisions}) c.raw_all_package_revisions.append({'date': h.date_str_to_datetime(week_date), 'total_revisions': num_revisions})
   
c.new_datasets = [] c.new_datasets = []
c.raw_new_datasets = [] c.raw_new_datasets = []
for week_date, pkgs, num_packages, cumulative_num_packages in c.new_packages_by_week: for week_date, pkgs, num_packages, cumulative_num_packages in c.new_packages_by_week:
c.new_datasets.append('[new Date(%s), %s]' % (week_date.replace('-', ','), num_packages)) c.new_datasets.append('[new Date(%s), %s]' % (week_date.replace('-', ','), num_packages))
c.raw_new_datasets.append({'date': h.date_str_to_datetime(week_date), 'new_packages': num_packages}) c.raw_new_datasets.append({'date': h.date_str_to_datetime(week_date), 'new_packages': num_packages})
   
return p.toolkit.render('ckanext/stats/index.html') return p.toolkit.render('ckanext/stats/index.html')
   
def leaderboard(self, id=None): def leaderboard(self, id=None):
c = p.toolkit.c c = p.toolkit.c
c.solr_core_url = config.get('ckanext.stats.solr_core_url', c.solr_core_url = config.get('ckanext.stats.solr_core_url',
'http://solr.okfn.org/solr/ckan') 'http://solr.okfn.org/solr/ckan')
return p.toolkit.render('ckanext/stats/leaderboard.html') return p.toolkit.render('ckanext/stats/leaderboard.html')