diff --git a/rhodecode/controllers/summary.py b/rhodecode/controllers/summary.py --- a/rhodecode/controllers/summary.py +++ b/rhodecode/controllers/summary.py @@ -24,20 +24,28 @@ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, # MA 02110-1301, USA. +import calendar +import logging +from time import mktime +from datetime import datetime, timedelta + +from vcs.exceptions import ChangesetError + from pylons import tmpl_context as c, request, url -from vcs.exceptions import ChangesetError +from pylons.i18n.translation import _ + +from rhodecode.model.scm import ScmModel +from rhodecode.model.db import Statistics + from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator from rhodecode.lib.base import BaseController, render from rhodecode.lib.utils import OrderedDict, EmptyChangeset -from rhodecode.model.scm import ScmModel -from rhodecode.model.db import Statistics -from webhelpers.paginate import Page + from rhodecode.lib.celerylib import run_task from rhodecode.lib.celerylib.tasks import get_commits_stats -from datetime import datetime, timedelta -from time import mktime -import calendar -import logging + +from webhelpers.paginate import Page + try: import json except ImportError: @@ -102,8 +110,11 @@ class SummaryController(BaseController): d, 0, 0, 0, 0, 0, 0,)) ts_max_y = mktime((y, m, d, 0, 0, 0, 0, 0, 0,)) - - run_task(get_commits_stats, c.repo_info.name, ts_min_y, ts_max_y) + if c.repo_info.dbrepo.enable_statistics: + c.no_data_msg = _('No data loaded yet') + run_task(get_commits_stats, c.repo_info.name, ts_min_y, ts_max_y) + else: + c.no_data_msg = _('Statistics are disabled for this repository') c.ts_min = ts_min_m c.ts_max = ts_max_y diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -122,6 +122,7 @@ class Repository(Base): repo_type = Column("repo_type", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default=None) user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None) private = Column("private", Boolean(), nullable=True, unique=None, default=None) + enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True) description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None) fork_id = Column("fork_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None) diff --git a/rhodecode/model/forms.py b/rhodecode/model/forms.py --- a/rhodecode/model/forms.py +++ b/rhodecode/model/forms.py @@ -400,6 +400,7 @@ def RepoForm(edit=False, old_data={}, su ValidRepoName(edit, old_data)) description = UnicodeString(strip=True, min=1, not_empty=True) private = StringBoolean(if_missing=False) + enable_statistics = StringBoolean(if_missing=False) repo_type = OneOf(supported_backends) if edit: user = All(Int(not_empty=True), ValidRepoUser) diff --git a/rhodecode/templates/admin/repos/repo_edit.html b/rhodecode/templates/admin/repos/repo_edit.html --- a/rhodecode/templates/admin/repos/repo_edit.html +++ b/rhodecode/templates/admin/repos/repo_edit.html @@ -60,7 +60,14 @@ ${h.checkbox('private',value="True")} - +
+
+ +
+
+ ${h.checkbox('enable_statistics',value="True")} +
+
diff --git a/rhodecode/templates/summary/summary.html b/rhodecode/templates/summary/summary.html --- a/rhodecode/templates/summary/summary.html +++ b/rhodecode/templates/summary/summary.html @@ -193,7 +193,7 @@ if(no_data){ var tr = document.createElement('tr'); var td1 = document.createElement('td'); - td1.innerHTML = "${_('No data loaded yet')}"; + td1.innerHTML = "${c.no_data_msg}"; tr.appendChild(td1); tbl.appendChild(tr); } @@ -250,7 +250,7 @@
%if c.no_data: -
${_('No data loaded yet')}
+
${c.no_data_msg}
%endif: