diff --git a/pylons_app/model/hg_model.py b/pylons_app/model/hg_model.py --- a/pylons_app/model/hg_model.py +++ b/pylons_app/model/hg_model.py @@ -31,6 +31,7 @@ from pylons_app.model import meta from pylons_app.model.db import Repository, User from pylons_app.lib import helpers as h from vcs.exceptions import RepositoryError, VCSError +from sqlalchemy.orm import joinedload import logging import os import sys @@ -123,7 +124,9 @@ class HgModel(object): dbrepo = None if not initial: dbrepo = sa.query(Repository)\ - .filter(Repository.repo_name == name).scalar() + .options(joinedload(Repository.fork))\ + .filter(Repository.repo_name == name)\ + .scalar() if dbrepo: log.info('Adding db instance to cached list') diff --git a/pylons_app/templates/admin/repos/repos.html b/pylons_app/templates/admin/repos/repos.html --- a/pylons_app/templates/admin/repos/repos.html +++ b/pylons_app/templates/admin/repos/repos.html @@ -27,9 +27,11 @@
- - - + + + + + %for cnt,repo in enumerate(c.repos_list): @@ -40,9 +42,28 @@ %else: ${_('public')} %endif - ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))} - - + ${h.link_to(repo['name'],h.url('edit_repo',repo_name=repo['name']))} + + %if repo['repo'].dbrepo.fork: + + ${_('public')} + %endif + + + + + + ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))} + %if repo.dbrepo.fork: + + ${_('public')} + %endif + diff --git a/pylons_app/templates/index.html b/pylons_app/templates/index.html --- a/pylons_app/templates/index.html +++ b/pylons_app/templates/index.html @@ -61,7 +61,14 @@ ${_('public')} %endif ${h.link_to(repo['name'], - h.url('summary_home',repo_name=repo['name']))} + h.url('summary_home',repo_name=repo['name']))} + %if repo['repo'].dbrepo.fork: + + ${_('public')} + %endif +
${_('name')}${_('owner')}${_('last revision')}${_('Name')}${_('Description')}${_('Last change')}${_('Tip')}${_('Contact')} ${_('action')}
${repo['contact']}r${repo['rev']}:${repo['tip']}${h.truncate(repo['description'],60)}${h.age(repo['last_change'])} + %if repo['rev']>=0: + ${h.link_to('r%s:%s' % (repo['rev'],repo['tip']), + h.url('changeset_home',repo_name=repo['name'],revision=repo['tip']), + class_="tooltip", + tooltip_title=h.tooltip(repo['last_msg']))} + %else: + ${_('No changesets yet')} + %endif + ${h.person(repo['contact'])} ${h.form(url('repo', repo_name=repo['name']),method='delete')} ${h.submit('remove_%s' % repo['name'],'delete',class_="delete_icon action_button",onclick="return confirm('Confirm to delete this repository');")} diff --git a/pylons_app/templates/admin/users/user_edit_my_account.html b/pylons_app/templates/admin/users/user_edit_my_account.html --- a/pylons_app/templates/admin/users/user_edit_my_account.html +++ b/pylons_app/templates/admin/users/user_edit_my_account.html @@ -98,7 +98,14 @@ ${_('public')} %endif - ${h.link_to(repo.name, h.url('summary_home',repo_name=repo.name))} ${_('revision')}: ${h.get_changeset_safe(repo,'tip').revision} ${_('last changed')}: ${h.age(repo.last_change)} ${_('private')} ${h.link_to(_('edit'),h.url('repo_settings_home',repo_name=repo.name))} ${h.truncate(repo['description'],60)} ${h.age(repo['last_change'])} diff --git a/pylons_app/templates/summary/summary.html b/pylons_app/templates/summary/summary.html --- a/pylons_app/templates/summary/summary.html +++ b/pylons_app/templates/summary/summary.html @@ -42,7 +42,17 @@ E.onDOMReady(function(e){
- ${c.repo_info.name} + ${c.repo_info.name}
+ %if c.repo_info.dbrepo.fork: + + + ${_('public')} + ${_('Fork of')} ${c.repo_info.dbrepo.fork.repo_name} + + + %endif