diff --git a/rhodecode/controllers/journal.py b/rhodecode/controllers/journal.py --- a/rhodecode/controllers/journal.py +++ b/rhodecode/controllers/journal.py @@ -39,6 +39,7 @@ from rhodecode.model.db import UserLog, from rhodecode.model.scm import ScmModel from paste.httpexceptions import HTTPInternalServerError +from sqlalchemy.orm import joinedload log = logging.getLogger(__name__) @@ -54,7 +55,9 @@ class JournalController(BaseController): # Return a rendered template c.following = self.sa.query(UserFollowing)\ - .filter(UserFollowing.user_id == c.rhodecode_user.user_id).all() + .filter(UserFollowing.user_id == c.rhodecode_user.user_id)\ + .options(joinedload(UserFollowing.follows_repository))\ + .all() repo_ids = [x.follows_repository.repo_id for x in c.following if x.follows_repository is not None] diff --git a/rhodecode/model/db.py b/rhodecode/model/db.py --- a/rhodecode/model/db.py +++ b/rhodecode/model/db.py @@ -313,7 +313,7 @@ class UserFollowing(Base, BaseModel): user = relationship('User', primaryjoin='User.user_id==UserFollowing.user_id') follows_user = relationship('User', primaryjoin='User.user_id==UserFollowing.follows_user_id') - follows_repository = relationship('Repository') + follows_repository = relationship('Repository', order_by='Repository.repo_name') class CacheInvalidation(Base, BaseModel): __tablename__ = 'cache_invalidation' diff --git a/rhodecode/templates/journal/journal.html b/rhodecode/templates/journal/journal.html --- a/rhodecode/templates/journal/journal.html +++ b/rhodecode/templates/journal/journal.html @@ -43,7 +43,12 @@ %endif %if entry.follows_repo_id: - + +
+ + +
%if entry.follows_repository.private: ${_('private repository')} %else: