diff options
author | Marcin Kuzminski <marcin@python-works.com> | 2012-12-07 02:31:02 +0100 |
---|---|---|
committer | Marcin Kuzminski <marcin@python-works.com> | 2012-12-07 02:31:02 +0100 |
commit | 28d68ef3ccf4601fedc5290a47fdf74bf6e60393 (patch) | |
tree | 682f772c3f7be07224c8005b49f3fe37446b34e9 | |
parent | 6eee7121051a34eea8861bd5f75367e00560aa29 (diff) |
fixed issue with public journal rss/atom feeds after journal filter implementation
--HG--
branch : beta
-rw-r--r-- | rhodecode/controllers/journal.py | 33 | ||||
-rw-r--r-- | rhodecode/tests/functional/test_journal.py | 12 |
2 files changed, 29 insertions, 16 deletions
diff --git a/rhodecode/controllers/journal.py b/rhodecode/controllers/journal.py index ed0bd2d2..9d499d19 100644 --- a/rhodecode/controllers/journal.py +++ b/rhodecode/controllers/journal.py @@ -41,7 +41,7 @@ from rhodecode.model.db import UserLog, UserFollowing, Repository, User 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 @@ class JournalController(BaseController): self.language = 'en-us' self.ttl = "5" self.feed_nr = 20 + c.search_term = request.GET.get('filter') @LoginRequired() @NotAnonymous() @@ -66,8 +67,6 @@ class JournalController(BaseController): .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 @@ class JournalController(BaseController): 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 @@ class JournalController(BaseController): 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 @@ class JournalController(BaseController): 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 @@ class JournalController(BaseController): 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 diff --git a/rhodecode/tests/functional/test_journal.py b/rhodecode/tests/functional/test_journal.py index 62544453..eb24dc29 100644 --- a/rhodecode/tests/functional/test_journal.py +++ b/rhodecode/tests/functional/test_journal.py @@ -3,6 +3,7 @@ from rhodecode.model.db import UserFollowing, User, Repository from rhodecode.lib.helpers import get_token import datetime + class TestJournalController(TestController): def test_index(self): @@ -34,9 +35,10 @@ class TestJournalController(TestController): 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'),) |