##// END OF EJS Templates
Removed tag v0.6.8
Removed tag v0.6.8

File last commit:

r510:9bedaa07 default
r518:9c83dfc2 default
Show More
summary.py
104 lines | 4.2 KiB | text/x-python | PythonLexer
licensing updates, code cleanups
r252 #!/usr/bin/env python
# encoding: utf-8
# summary controller for pylons
# Copyright (C) 2009-2010 Marcin Kuzminski <marcin@python-works.com>
version bump to 0.8...
r362 #
licensing updates, code cleanups
r252 # This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; version 2
# of the License or (at your opinion) any later version of the license.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA.
"""
Created on April 18, 2010
summary controller for pylons
@author: marcink
"""
rewrote graph plotting, added zooming and json dump insted of stupid string formating.
r486 from pylons import tmpl_context as c, request, url
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
r318 from pylons_app.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
Reimplemented way of caching repos list, hg model now get's repos objects right from cached dict, this way we skipp creating instances of MercurialRepository and gain performance. Some import cleanup
r245 from pylons_app.lib.base import BaseController, render
version bump to 0.8...
r362 from pylons_app.lib.utils import OrderedDict
switched filters into webhelpers for easy of usage....
r282 from pylons_app.model.hg_model import HgModel
implemented basic autoupdating statistics fetched from database
r493 from pylons_app.model.db import Statistics
switched filters into webhelpers for easy of usage....
r282 from webhelpers.paginate import Page
starting celery branch
r467 from pylons_app.lib.celerylib import run_task
from pylons_app.lib.celerylib.tasks import get_commits_stats
implemented basic autoupdating statistics fetched from database
r493 from datetime import datetime, timedelta
from time import mktime
import calendar
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 import logging
fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!...
r506 import json
Marcin Kuzminski
Moved summary to seperate controller,...
r82 log = logging.getLogger(__name__)
class SummaryController(BaseController):
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191
@LoginRequired()
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
r318 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
'repository.admin')
Marcin Kuzminski
Moved summary to seperate controller,...
r82 def __before__(self):
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 super(SummaryController, self).__before__()
Implemented permissions into hg app, secured admin controllers, templates and repository specific controllers
r318
Marcin Kuzminski
Moved summary to seperate controller,...
r82 def index(self):
hg_model = HgModel()
c.repo_info = hg_model.get_repo(c.repo_name)
switched filters into webhelpers for easy of usage....
r282 c.repo_changesets = Page(list(c.repo_info[:10]), page=1, items_per_page=20)
Marcin Kuzminski
Moved summary to seperate controller,...
r82 e = request.environ
fixes #35 hg-app does not respect SCRIPT_NAME
r508
uri = u'%(protocol)s://%(user)s@%(host)s%(prefix)s/%(repo_name)s' % {
some beaker cache changes, and added repr to models
r232 'protocol': e.get('wsgi.url_scheme'),
'user':str(c.hg_app_user.username),
'host':e.get('HTTP_HOST'),
fixes #35 hg-app does not respect SCRIPT_NAME
r508 'prefix':e.get('SCRIPT_NAME'),
some beaker cache changes, and added repr to models
r232 'repo_name':c.repo_name, }
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 c.clone_repo_url = uri
fixed sorting of tags and branches. Fix made in vcs.
r389 c.repo_tags = OrderedDict()
fixed branches and tags, fetching for new vcs implementation
r277 for name, hash in c.repo_info.tags.items()[:10]:
c.repo_tags[name] = c.repo_info.get_changeset(hash)
fixed sorting of tags and branches. Fix made in vcs.
r389 c.repo_branches = OrderedDict()
fixed branches and tags, fetching for new vcs implementation
r277 for name, hash in c.repo_info.branches.items()[:10]:
c.repo_branches[name] = c.repo_info.get_changeset(hash)
starting celery branch
r467
implemented basic autoupdating statistics fetched from database
r493 td = datetime.today() + timedelta(days=1)
y, m, d = td.year, td.month, td.day
ts_min_y = mktime((y - 1, (td - timedelta(days=calendar.mdays[m])).month,
d, 0, 0, 0, 0, 0, 0,))
ts_min_m = mktime((y, (td - timedelta(days=calendar.mdays[m])).month,
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)
c.ts_min = ts_min_m
c.ts_max = ts_max_y
stats = self.sa.query(Statistics)\
.filter(Statistics.repository == c.repo_info.dbrepo)\
.scalar()
fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!...
r506
if stats and stats.languages:
lang_stats = json.loads(stats.languages)
implemented basic autoupdating statistics fetched from database
r493 c.commit_data = stats.commit_activity
c.overview_data = stats.commit_activity_combined
fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!...
r506 c.trending_languages = json.dumps(OrderedDict(
sorted(lang_stats.items(), reverse=True,
key=lambda k: k[1])[:2]
)
)
implemented basic autoupdating statistics fetched from database
r493 else:
c.commit_data = json.dumps({})
c.overview_data = json.dumps([[ts_min_y, 0], [ts_max_y, 0] ])
fixed lock decorator bug which didn't release the lock after func execution and rewrote the pidlock a little with Ask Solem suggestions!...
r506 c.trending_languages = json.dumps({})
version bump to 0.8...
r362
Authenticated controller with LoginRequired decorator, and cleaned __before__ (used in baseController now). fixed User for clone url with logged in session user....
r191 return render('summary/summary.html')
version bump to 0.8...
r362