Mercurial > kallithea
changeset 3075:25029d6f4b47 beta
fixed issue with public journal rss/atom feeds after journal filter implementation
author | Marcin Kuzminski <marcin@python-works.com> |
---|---|
date | Fri, 07 Dec 2012 02:31:02 +0100 |
parents | 09cef303962b |
children | 5deb16cd2802 |
files | rhodecode/controllers/journal.py rhodecode/tests/functional/test_journal.py |
diffstat | 2 files changed, 29 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/rhodecode/controllers/journal.py Fri Dec 07 02:15:34 2012 +0100 +++ b/rhodecode/controllers/journal.py Fri Dec 07 02:31:02 2012 +0100 @@ -41,7 +41,7 @@ from rhodecode.model.meta import Session from sqlalchemy.sql.expression import func from rhodecode.model.scm import ScmModel -from rhodecode.lib.utils2 import safe_int +from rhodecode.lib.utils2 import safe_int, AttributeDict from rhodecode.controllers.admin.admin import _journal_filter log = logging.getLogger(__name__) @@ -54,6 +54,7 @@ self.language = 'en-us' self.ttl = "5" self.feed_nr = 20 + c.search_term = request.GET.get('filter') @LoginRequired() @NotAnonymous() @@ -66,8 +67,6 @@ .options(joinedload(UserFollowing.follows_repository))\ .all() - #FILTERING - c.search_term = request.GET.get('filter') journal = self._get_journal_data(c.following) def url_generator(**kw): @@ -229,9 +228,15 @@ ttl=self.ttl) for entry in journal[:self.feed_nr]: + user = entry.user + if user is None: + #fix deleted users + user = AttributeDict({'short_contact': entry.username, + 'email': '', + 'full_contact': ''}) action, action_extra, ico = h.action_parser(entry, feed=True) - title = "%s - %s %s" % (entry.user.short_contact, action(), - entry.repository.repo_name) + title = "%s - %s %s" % (user.short_contact, action(), + entry.repository.repo_name) desc = action_extra() _url = None if entry.repository is not None: @@ -242,8 +247,8 @@ feed.add_item(title=title, pubdate=entry.action_date, link=_url or url('', qualified=True), - author_email=entry.user.email, - author_name=entry.user.full_contact, + author_email=user.email, + author_name=user.full_contact, description=desc) response.content_type = feed.mime_type @@ -266,9 +271,15 @@ ttl=self.ttl) for entry in journal[:self.feed_nr]: + user = entry.user + if user is None: + #fix deleted users + user = AttributeDict({'short_contact': entry.username, + 'email': '', + 'full_contact': ''}) action, action_extra, ico = h.action_parser(entry, feed=True) - title = "%s - %s %s" % (entry.user.short_contact, action(), - entry.repository.repo_name) + title = "%s - %s %s" % (user.short_contact, action(), + entry.repository.repo_name) desc = action_extra() _url = None if entry.repository is not None: @@ -279,8 +290,8 @@ feed.add_item(title=title, pubdate=entry.action_date, link=_url or url('', qualified=True), - author_email=entry.user.email, - author_name=entry.user.full_contact, + author_email=user.email, + author_name=user.full_contact, description=desc) response.content_type = feed.mime_type
--- a/rhodecode/tests/functional/test_journal.py Fri Dec 07 02:15:34 2012 +0100 +++ b/rhodecode/tests/functional/test_journal.py Fri Dec 07 02:31:02 2012 +0100 @@ -3,6 +3,7 @@ from rhodecode.lib.helpers import get_token import datetime + class TestJournalController(TestController): def test_index(self): @@ -34,9 +35,10 @@ self.log_user() response = self.app.get(url(controller='journal', action='index'),) + def test_public_journal_atom(self): + self.log_user() + response = self.app.get(url(controller='journal', action='public_journal_atom'),) - def __add_repo(self): - pass - - def __remove_repo(self): - pass + def test_public_journal_rss(self): + self.log_user() + response = self.app.get(url(controller='journal', action='public_journal_rss'),)