comparison rhodecode/controllers/feed.py @ 1045:3fc9183e05dd beta

another major codes rewrite: - created BaseRepo controller for all repo specific controller, and added common data propagation - removed obosete codes, and made optimizations, removed to often calls to RepoModel - fixed found bugs in files controller that generated unhandled 500 errors - cache issues - removed repo_branches global template values - journal fixes - main repo list is fully dict now it's less resource heavy that way
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 15 Feb 2011 01:36:07 +0100
parents 5554aa9c2480
children fee472613dfa
comparison
equal deleted inserted replaced
1044:f3402cb92fdf 1045:3fc9183e05dd
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
26 # MA 02110-1301, USA. 26 # MA 02110-1301, USA.
27 27
28 import logging 28 import logging
29 29
30 from pylons import url, response 30 from pylons import url, response, tmpl_context as c
31 from pylons.i18n.translation import _ 31 from pylons.i18n.translation import _
32 32
33 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator 33 from rhodecode.lib.auth import LoginRequired, HasRepoPermissionAnyDecorator
34 from rhodecode.lib.base import BaseController 34 from rhodecode.lib.base import BaseRepoController
35 from rhodecode.model.scm import ScmModel
36 35
37 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed 36 from webhelpers.feedgenerator import Atom1Feed, Rss201rev2Feed
38 37
39 log = logging.getLogger(__name__) 38 log = logging.getLogger(__name__)
40 39
41 class FeedController(BaseController): 40 class FeedController(BaseRepoController):
42 41
43 @LoginRequired() 42 @LoginRequired()
44 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write', 43 @HasRepoPermissionAnyDecorator('repository.read', 'repository.write',
45 'repository.admin') 44 'repository.admin')
46 def __before__(self): 45 def __before__(self):
58 link=url('summary_home', repo_name=repo_name, qualified=True), 57 link=url('summary_home', repo_name=repo_name, qualified=True),
59 description=self.description % repo_name, 58 description=self.description % repo_name,
60 language=self.language, 59 language=self.language,
61 ttl=self.ttl) 60 ttl=self.ttl)
62 61
63 repo, dbrepo = ScmModel().get(repo_name, retval='repo') 62 for cs in c.rhodecode_repo[:self.feed_nr]:
64
65 for cs in repo[:self.feed_nr]:
66 feed.add_item(title=cs.message, 63 feed.add_item(title=cs.message,
67 link=url('changeset_home', repo_name=repo_name, 64 link=url('changeset_home', repo_name=repo_name,
68 revision=cs.raw_id, qualified=True), 65 revision=cs.raw_id, qualified=True),
69 description=str(cs.date)) 66 description=str(cs.date))
70 67
78 link=url('summary_home', repo_name=repo_name, qualified=True), 75 link=url('summary_home', repo_name=repo_name, qualified=True),
79 description=self.description % repo_name, 76 description=self.description % repo_name,
80 language=self.language, 77 language=self.language,
81 ttl=self.ttl) 78 ttl=self.ttl)
82 79
83 repo, dbrepo = ScmModel().get(repo_name, retval='repo') 80 for cs in c.rhodecode_repo[:self.feed_nr]:
84 for cs in repo[:self.feed_nr]:
85 feed.add_item(title=cs.message, 81 feed.add_item(title=cs.message,
86 link=url('changeset_home', repo_name=repo_name, 82 link=url('changeset_home', repo_name=repo_name,
87 revision=cs.raw_id, qualified=True), 83 revision=cs.raw_id, qualified=True),
88 description=str(cs.date)) 84 description=str(cs.date))
89 85