annotate rhodecode/controllers/summary.py @ 1249:13b507b73190 beta

fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 12 Apr 2011 19:48:02 +0200
parents 0eceb478c720
children d750315134aa
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
1 # -*- coding: utf-8 -*-
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
2 """
860
5f7731e3ab4d fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents: 820
diff changeset
3 rhodecode.controllers.summary
5f7731e3ab4d fixed spelling mistakes, and some minor docs bugs
Marcin Kuzminski <marcin@python-works.com>
parents: 820
diff changeset
4 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
5
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
6 Summary controller for Rhodecode
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1181
diff changeset
7
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
8 :created_on: Apr 18, 2010
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
9 :author: marcink
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1181
diff changeset
10 :copyright: (C) 2009-2011 Marcin Kuzminski <marcin@python-works.com>
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
11 :license: GPLv3, see COPYING for more details.
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
12 """
1206
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
13 # This program is free software: you can redistribute it and/or modify
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
14 # it under the terms of the GNU General Public License as published by
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
15 # the Free Software Foundation, either version 3 of the License, or
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
16 # (at your option) any later version.
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1181
diff changeset
17 #
252
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 245
diff changeset
18 # This program is distributed in the hope that it will be useful,
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 245
diff changeset
19 # but WITHOUT ANY WARRANTY; without even the implied warranty of
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 245
diff changeset
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 245
diff changeset
21 # GNU General Public License for more details.
1203
6832ef664673 source code cleanup: remove trailing white space, normalize file endings
Marcin Kuzminski <marcin@python-works.com>
parents: 1181
diff changeset
22 #
252
3782a6d698af licensing updates, code cleanups
Marcin Kuzminski <marcin@python-works.com>
parents: 245
diff changeset
23 # You should have received a copy of the GNU General Public License
1206
a671db5bdd58 fixed license issue #149
Marcin Kuzminski <marcin@python-works.com>
parents: 1203
diff changeset
24 # along with this program. If not, see <http://www.gnu.org/licenses/>.
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
25
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
26 import calendar
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
27 import logging
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
28 from time import mktime
937
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
29 from datetime import datetime, timedelta, date
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
30
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
31 from vcs.exceptions import ChangesetError
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
32
486
5c376ac2d4c9 rewrote graph plotting, added zooming and json dump insted of stupid string formating.
Marcin Kuzminski <marcin@python-works.com>
parents: 473
diff changeset
33 from pylons import tmpl_context as c, request, url
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
34 from pylons.i18n.translation import _
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
35
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
36 from rhodecode.model.db import Statistics, Repository
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
37 from rhodecode.model.repo import RepoModel
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
38
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 510
diff changeset
39 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
1045
3fc9183e05dd another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents: 1038
diff changeset
40 from rhodecode.lib.base import BaseRepoController, render
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
41 from rhodecode.lib.utils import OrderedDict, EmptyChangeset
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
42
547
1e757ac98988 renamed project to rhodecode
Marcin Kuzminski <marcin@python-works.com>
parents: 510
diff changeset
43 from rhodecode.lib.celerylib import run_task
1244
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
44 from rhodecode.lib.celerylib.tasks import get_commits_stats, \
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
45 LANGUAGES_EXTENSIONS_MAP
1098
91ddd4db4614 Added dedicated repo pager to support reversed new way slicing method of vcs and get_changesets method
Marcin Kuzminski <marcin@python-works.com>
parents: 1082
diff changeset
46 from rhodecode.lib.helpers import RepoPage
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
47
592
0a48c1ec04fc #37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 548
diff changeset
48 try:
0a48c1ec04fc #37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 548
diff changeset
49 import json
0a48c1ec04fc #37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 548
diff changeset
50 except ImportError:
0a48c1ec04fc #37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 548
diff changeset
51 #python 2.5 compatibility
0a48c1ec04fc #37 fixed json imports for python2.5
Marcin Kuzminski <marcin@python-works.com>
parents: 548
diff changeset
52 import simplejson as json
82
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
53 log = logging.getLogger(__name__)
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
54
1212
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
55
1045
3fc9183e05dd another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents: 1038
diff changeset
56 class SummaryController(BaseRepoController):
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
57
191
b68b2246e5a6 Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents: 127
diff changeset
58 @LoginRequired()
318
fdf9f6ee5217 Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
Marcin Kuzminski <marcin@python-works.com>
parents: 282
diff changeset
59 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
60 'repository.admin')
82
670713507d03 Moved summary to seperate controller,
Marcin Kuzminski <marcin@python-blog.com>
parents:
diff changeset
61 def __before__(self):
191
b68b2246e5a6 Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents: 127
diff changeset
62 super(SummaryController, self).__before__()
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
63
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
64 def index(self, repo_name):
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
65
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
66 e = request.environ
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
67 c.dbrepo = dbrepo = Repository.by_repo_name(repo_name)
1045
3fc9183e05dd another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents: 1038
diff changeset
68
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
69 c.following = self.scm_model.is_following_repo(repo_name,
1212
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
70 self.rhodecode_user.user_id)
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
71
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
72 def url_generator(**kw):
1249
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
73 return url('shortlog_home', repo_name=repo_name, size=10, **kw)
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
74
1212
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
75 c.repo_changesets = RepoPage(c.rhodecode_repo, page=1,
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
76 items_per_page=10, url=url_generator)
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
77
674
99875a8f2ad1 #49 Enabled anonymous access push and pull commands
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
78 if self.rhodecode_user.username == 'default':
910
811fa5d45de8 Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
79 #for default(anonymous) user we don't need to pass credentials
811fa5d45de8 Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
80 username = ''
811fa5d45de8 Rewrite simehg for enabling cloning with raw url for anonymous access + some optimizations for making less queries when authenticating users.
Marcin Kuzminski <marcin@python-works.com>
parents: 902
diff changeset
81 password = ''
674
99875a8f2ad1 #49 Enabled anonymous access push and pull commands
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
82 else:
1121
f3f847712f87 replaced all global calls to template context (rhodecode_user), into instance attributes
Marcin Kuzminski <marcin@python-works.com>
parents: 1098
diff changeset
83 username = str(self.rhodecode_user.username)
936
e1c9903d7e38 fixed wrong clone url for anonymous access
Marcin Kuzminski <marcin@python-works.com>
parents: 910
diff changeset
84 password = '@'
674
99875a8f2ad1 #49 Enabled anonymous access push and pull commands
Marcin Kuzminski <marcin@python-works.com>
parents: 643
diff changeset
85
1249
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
86 if e.get('wsgi.url_scheme') == 'https':
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
87 split_s = 'https://'
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
88 else:
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
89 split_s = 'http://'
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
90
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
91 qualified_uri = [split_s] + [url.current(qualified=True)\
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
92 .split(split_s)[-1]]
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
93 uri = u'%(proto)s%(user)s%(pass)s%(rest)s' \
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
94 % {'user': username,
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
95 'pass': password,
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
96 'proto': qualified_uri[0],
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
97 'rest': qualified_uri[1]}
191
b68b2246e5a6 Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents: 127
diff changeset
98 c.clone_repo_url = uri
389
174785aa5dc4 fixed sorting of tags and branches. Fix made in vcs.
Marcin Kuzminski <marcin@python-works.com>
parents: 365
diff changeset
99 c.repo_tags = OrderedDict()
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
100 for name, hash in c.rhodecode_repo.tags.items()[:10]:
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
101 try:
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
102 c.repo_tags[name] = c.rhodecode_repo.get_changeset(hash)
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
103 except ChangesetError:
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
104 c.repo_tags[name] = EmptyChangeset(hash)
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
105
389
174785aa5dc4 fixed sorting of tags and branches. Fix made in vcs.
Marcin Kuzminski <marcin@python-works.com>
parents: 365
diff changeset
106 c.repo_branches = OrderedDict()
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
107 for name, hash in c.rhodecode_repo.branches.items()[:10]:
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
108 try:
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
109 c.repo_branches[name] = c.rhodecode_repo.get_changeset(hash)
643
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
110 except ChangesetError:
9dc1d92d82ed updated setup for all newest versions
Marcin Kuzminski <marcin@python-works.com>
parents: 637
diff changeset
111 c.repo_branches[name] = EmptyChangeset(hash)
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
112
937
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
113 td = date.today() + timedelta(days=1)
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
114 td_1m = td - timedelta(days=calendar.mdays[td.month])
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
115 td_1y = td - timedelta(days=365)
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
116
937
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
117 ts_min_m = mktime(td_1m.timetuple())
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
118 ts_min_y = mktime(td_1y.timetuple())
6489d9b7791d fixed graph bug
Marcin Kuzminski <marcin@python-works.com>
parents: 936
diff changeset
119 ts_max_y = mktime(td.timetuple())
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
120
1038
5554aa9c2480 another major code rafactor, reimplemented (almost from scratch)
Marcin Kuzminski <marcin@python-works.com>
parents: 962
diff changeset
121 if dbrepo.enable_statistics:
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
122 c.no_data_msg = _('No data loaded yet')
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
123 run_task(get_commits_stats, c.dbrepo.repo_name, ts_min_y, ts_max_y)
810
bd57d1cb9dc3 fixes #62, added option to disable statistics for each repository
Marcin Kuzminski <marcin@python-works.com>
parents: 800
diff changeset
124 else:
1082
c2440badab84 fixes for vcs 0.2.0and new slicing methods
Marcin Kuzminski <marcin@python-works.com>
parents: 1045
diff changeset
125 c.no_data_msg = _('Statistics are disabled for this repository')
493
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
126 c.ts_min = ts_min_m
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
127 c.ts_max = ts_max_y
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
128
493
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
129 stats = self.sa.query(Statistics)\
1038
5554aa9c2480 another major code rafactor, reimplemented (almost from scratch)
Marcin Kuzminski <marcin@python-works.com>
parents: 962
diff changeset
130 .filter(Statistics.repository == dbrepo)\
493
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
131 .scalar()
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
132
1181
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
133 c.stats_percentage = 0
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
134
506
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
135 if stats and stats.languages:
1038
5554aa9c2480 another major code rafactor, reimplemented (almost from scratch)
Marcin Kuzminski <marcin@python-works.com>
parents: 962
diff changeset
136 c.no_data = False is dbrepo.enable_statistics
506
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
137 lang_stats = json.loads(stats.languages)
493
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
138 c.commit_data = stats.commit_activity
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
139 c.overview_data = stats.commit_activity_combined
1244
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
140
1249
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
141 lang_stats = [(x, {"count": y,
13b507b73190 fixes issue #166, made clone-uri use the pylons build in url generators, that way it's more safe.
Marcin Kuzminski <marcin@python-works.com>
parents: 1244
diff changeset
142 "desc": LANGUAGES_EXTENSIONS_MAP.get(x)})
1244
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
143 for x, y in lang_stats.items()]
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
144 print lang_stats
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
145
506
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
146 c.trending_languages = json.dumps(OrderedDict(
1244
0eceb478c720 fixed issue #165 trending source files are now stored in cache as ext only, and translated to description only when displaying, so future changes of mappings will take affect right away.
Marcin Kuzminski <marcin@python-works.com>
parents: 1212
diff changeset
147 sorted(lang_stats, reverse=True,
763
0dad296d2a57 extended trending languages to more entries, implemented new faster and "fancy"
Marcin Kuzminski <marcin@python-works.com>
parents: 734
diff changeset
148 key=lambda k: k[1])[:10]
506
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
149 )
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
150 )
1181
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
151 last_rev = stats.stat_on_revision
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
152 c.repo_last_rev = c.rhodecode_repo.count() - 1 \
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
153 if c.rhodecode_repo.revisions else 0
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
154 if last_rev == 0 or c.repo_last_rev == 0:
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
155 pass
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
156 else:
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
157 c.stats_percentage = '%.2f' % ((float((last_rev)) /
36b12336cb7f added percentage of progress of gathered commit activity statistics
Marcin Kuzminski <marcin@python-works.com>
parents: 1171
diff changeset
158 c.repo_last_rev) * 100)
493
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
159 else:
2256c78afe53 implemented basic autoupdating statistics fetched from database
Marcin Kuzminski <marcin@python-works.com>
parents: 486
diff changeset
160 c.commit_data = json.dumps({})
1212
50e41777675d pep8ify
Marcin Kuzminski <marcin@python-works.com>
parents: 1206
diff changeset
161 c.overview_data = json.dumps([[ts_min_y, 0], [ts_max_y, 10]])
506
d5efb83590ef fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!
Marcin Kuzminski <marcin@python-works.com>
parents: 493
diff changeset
162 c.trending_languages = json.dumps({})
800
e41aacb6aa18 small fixes for summary graph, added message about no data for the graph, when empty
Marcin Kuzminski <marcin@python-works.com>
parents: 763
diff changeset
163 c.no_data = True
637
b04d5214fd3c removed shortlog from main menu, as duplicated functionality of changelog,
Marcin Kuzminski <marcin@python-works.com>
parents: 629
diff changeset
164
1038
5554aa9c2480 another major code rafactor, reimplemented (almost from scratch)
Marcin Kuzminski <marcin@python-works.com>
parents: 962
diff changeset
165 c.enable_downloads = dbrepo.enable_downloads
962
72f008ed9b18 implemented #84 downloads can be enabled/disabled per each repository from now.
Marcin Kuzminski <marcin@python-works.com>
parents: 942
diff changeset
166 if c.enable_downloads:
1171
2ab211e0aecd changes for #56
Marcin Kuzminski <marcin@python-works.com>
parents: 1121
diff changeset
167 c.download_options = self._get_download_links(c.rhodecode_repo)
942
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
168
191
b68b2246e5a6 Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user.
Marcin Kuzminski <marcin@python-works.com>
parents: 127
diff changeset
169 return render('summary/summary.html')
362
558eb7c5028f version bump to 0.8
Marcin Kuzminski <marcin@python-works.com>
parents: 318
diff changeset
170
942
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
171 def _get_download_links(self, repo):
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
172
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
173 download_l = []
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
174
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
175 branches_group = ([], _("Branches"))
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
176 tags_group = ([], _("Tags"))
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
177
1045
3fc9183e05dd another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents: 1038
diff changeset
178 for name, chs in c.rhodecode_repo.branches.items():
942
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
179 #chs = chs.split(':')[-1]
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
180 branches_group[0].append((chs, name),)
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
181 download_l.append(branches_group)
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
182
1045
3fc9183e05dd another major codes rewrite:
Marcin Kuzminski <marcin@python-works.com>
parents: 1038
diff changeset
183 for name, chs in c.rhodecode_repo.tags.items():
942
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
184 #chs = chs.split(':')[-1]
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
185 tags_group[0].append((chs, name),)
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
186 download_l.append(tags_group)
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
187
32318ec7bfc1 added branch/tag options to download links in summary
Marcin Kuzminski <marcin@python-works.com>
parents: 937
diff changeset
188 return download_l