##// END OF EJS Templates
fixes #62, added option to disable statistics for each repository
marcink -
r810:bd57d1cb beta
parent child Browse files
Show More
@@ -24,20 +24,28 b''
24 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
24 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
25 # MA 02110-1301, USA.
25 # MA 02110-1301, USA.
26
26
27 import calendar
28 import logging
29 from time import mktime
30 from datetime import datetime, timedelta
31
32 from vcs.exceptions import ChangesetError
33
27 from pylons import tmpl_context as c, request, url
34 from pylons import tmpl_context as c, request, url
28 from vcs.exceptions import ChangesetError
35 from pylons.i18n.translation import _
36
37 from rhodecode.model.scm import ScmModel
38 from rhodecode.model.db import Statistics
39
29 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
40 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
30 from rhodecode.lib.base import BaseController, render
41 from rhodecode.lib.base import BaseController, render
31 from rhodecode.lib.utils import OrderedDict, EmptyChangeset
42 from rhodecode.lib.utils import OrderedDict, EmptyChangeset
32 from rhodecode.model.scm import ScmModel
43
33 from rhodecode.model.db import Statistics
34 from webhelpers.paginate import Page
35 from rhodecode.lib.celerylib import run_task
44 from rhodecode.lib.celerylib import run_task
36 from rhodecode.lib.celerylib.tasks import get_commits_stats
45 from rhodecode.lib.celerylib.tasks import get_commits_stats
37 from datetime import datetime, timedelta
46
38 from time import mktime
47 from webhelpers.paginate import Page
39 import calendar
48
40 import logging
41 try:
49 try:
42 import json
50 import json
43 except ImportError:
51 except ImportError:
@@ -102,8 +110,11 b' class SummaryController(BaseController):'
102 d, 0, 0, 0, 0, 0, 0,))
110 d, 0, 0, 0, 0, 0, 0,))
103
111
104 ts_max_y = mktime((y, m, d, 0, 0, 0, 0, 0, 0,))
112 ts_max_y = mktime((y, m, d, 0, 0, 0, 0, 0, 0,))
105
113 if c.repo_info.dbrepo.enable_statistics:
106 run_task(get_commits_stats, c.repo_info.name, ts_min_y, ts_max_y)
114 c.no_data_msg = _('No data loaded yet')
115 run_task(get_commits_stats, c.repo_info.name, ts_min_y, ts_max_y)
116 else:
117 c.no_data_msg = _('Statistics are disabled for this repository')
107 c.ts_min = ts_min_m
118 c.ts_min = ts_min_m
108 c.ts_max = ts_max_y
119 c.ts_max = ts_max_y
109
120
@@ -122,6 +122,7 b' class Repository(Base):'
122 repo_type = Column("repo_type", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default=None)
122 repo_type = Column("repo_type", String(length=None, convert_unicode=False, assert_unicode=None), nullable=False, unique=False, default=None)
123 user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
123 user_id = Column("user_id", Integer(), ForeignKey(u'users.user_id'), nullable=False, unique=False, default=None)
124 private = Column("private", Boolean(), nullable=True, unique=None, default=None)
124 private = Column("private", Boolean(), nullable=True, unique=None, default=None)
125 enable_statistics = Column("statistics", Boolean(), nullable=True, unique=None, default=True)
125 description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
126 description = Column("description", String(length=None, convert_unicode=False, assert_unicode=None), nullable=True, unique=None, default=None)
126 fork_id = Column("fork_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
127 fork_id = Column("fork_id", Integer(), ForeignKey(u'repositories.repo_id'), nullable=True, unique=False, default=None)
127
128
@@ -400,6 +400,7 b' def RepoForm(edit=False, old_data={}, su'
400 ValidRepoName(edit, old_data))
400 ValidRepoName(edit, old_data))
401 description = UnicodeString(strip=True, min=1, not_empty=True)
401 description = UnicodeString(strip=True, min=1, not_empty=True)
402 private = StringBoolean(if_missing=False)
402 private = StringBoolean(if_missing=False)
403 enable_statistics = StringBoolean(if_missing=False)
403 repo_type = OneOf(supported_backends)
404 repo_type = OneOf(supported_backends)
404 if edit:
405 if edit:
405 user = All(Int(not_empty=True), ValidRepoUser)
406 user = All(Int(not_empty=True), ValidRepoUser)
@@ -60,7 +60,14 b''
60 ${h.checkbox('private',value="True")}
60 ${h.checkbox('private',value="True")}
61 </div>
61 </div>
62 </div>
62 </div>
63
63 <div class="field">
64 <div class="label label-checkbox">
65 <label for="enable_statistics">${_('Enable statistics')}:</label>
66 </div>
67 <div class="checkboxes">
68 ${h.checkbox('enable_statistics',value="True")}
69 </div>
70 </div>
64 <div class="field">
71 <div class="field">
65 <div class="label">
72 <div class="label">
66 <label for="user">${_('Owner')}:</label>
73 <label for="user">${_('Owner')}:</label>
@@ -193,7 +193,7 b''
193 if(no_data){
193 if(no_data){
194 var tr = document.createElement('tr');
194 var tr = document.createElement('tr');
195 var td1 = document.createElement('td');
195 var td1 = document.createElement('td');
196 td1.innerHTML = "${_('No data loaded yet')}";
196 td1.innerHTML = "${c.no_data_msg}";
197 tr.appendChild(td1);
197 tr.appendChild(td1);
198 tbl.appendChild(tr);
198 tbl.appendChild(tr);
199 }
199 }
@@ -250,7 +250,7 b''
250 <div class="table">
250 <div class="table">
251
251
252 %if c.no_data:
252 %if c.no_data:
253 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">${_('No data loaded yet')}</div>
253 <div style="padding:0 10px 10px 15px;font-size: 1.2em;">${c.no_data_msg}</div>
254 %endif:
254 %endif:
255 <div id="commit_history" style="width:460px;height:300px;float:left"></div>
255 <div id="commit_history" style="width:460px;height:300px;float:left"></div>
256 <div style="clear: both;height: 10px"></div>
256 <div style="clear: both;height: 10px"></div>
General Comments 0
You need to be logged in to leave comments. Login now