menu: expose artifacts count into menu

This commit is contained in:
Marcin Kuzminski 2019-10-09 14:10:22 +02:00
parent e5ba91aeb0
commit 387e40f55b
5 changed files with 29 additions and 7 deletions

View file

@ -225,6 +225,7 @@ class RepoAppView(BaseAppView):
self.db_repo = request.db_repo
self.db_repo_name = self.db_repo.repo_name
self.db_repo_pull_requests = ScmModel().get_pull_requests(self.db_repo)
self.db_repo_artifacts = ScmModel().get_artifacts(self.db_repo)
def _handle_missing_requirements(self, error):
log.error(
@ -240,6 +241,7 @@ class RepoAppView(BaseAppView):
c.rhodecode_db_repo = self.db_repo
c.repo_name = self.db_repo_name
c.repository_pull_requests = self.db_repo_pull_requests
c.repository_artifacts = self.db_repo_artifacts
c.repository_is_user_following = ScmModel().is_following_repo(
self.db_repo_name, self._rhodecode_user.user_id)
self.path_filter = PathFilter(None)

View file

@ -402,6 +402,7 @@ class RepoIntegrationsView(IntegrationSettingsViewBase):
c.rhodecode_db_repo = self.repo
c.repo_name = self.db_repo.repo_name
c.repository_pull_requests = ScmModel().get_pull_requests(self.repo)
c.repository_artifacts = ScmModel().get_artifacts(self.repo)
c.repository_is_user_following = ScmModel().is_following_repo(
c.repo_name, self._rhodecode_user.user_id)
c.has_origin_repo_read_perm = False

View file

@ -47,8 +47,9 @@ from rhodecode.lib.utils2 import (safe_str, safe_unicode)
from rhodecode.lib.system_info import get_system_info
from rhodecode.model import BaseModel
from rhodecode.model.db import (
or_, false,
Repository, CacheKey, UserFollowing, UserLog, User, RepoGroup,
PullRequest)
PullRequest, FileStore)
from rhodecode.model.settings import VcsSettingsModel
from rhodecode.model.validation_schema.validators import url_validator, InvalidCloneUrl
@ -364,6 +365,12 @@ class ScmModel(BaseModel):
.filter(PullRequest.target_repo == repo)\
.filter(PullRequest.status != PullRequest.STATUS_CLOSED).count()
def get_artifacts(self, repo):
repo = self._get_repo(repo)
return self.sa.query(FileStore)\
.filter(FileStore.repo == repo)\
.filter(or_(FileStore.hidden == None, FileStore.hidden == false())).count()
def mark_as_fork(self, repo, fork, user):
repo = self._get_repo(repo)
fork = self._get_repo(fork)

View file

@ -128,6 +128,16 @@
// for this specifically we do not use a variable
}
.menulink-counter {
border: 1px solid @grey2;
border-radius: @border-radius;
background: @grey7;
display: inline-block;
padding: 0px 4px;
text-align: center;
font-size: 12px;
}
.pr_notifications {
padding-left: .5em;
}

View file

@ -301,17 +301,19 @@
<li class="${is_active('showpullrequest')}">
<a class="menulink" href="${h.route_path('pullrequest_show_all', repo_name=c.repo_name)}" title="${h.tooltip(_('Show Pull Requests for %s') % c.repo_name)}">
<div class="menulabel">
%if c.repository_pull_requests == 1:
${_('Pull Request')} ${c.repository_pull_requests}
%else:
${_('Pull Requests')} ${c.repository_pull_requests}
%endif
${_('Pull Requests')} <span class="menulink-counter">${c.repository_pull_requests}</span>
</div>
</a>
</li>
%endif
<li class="${is_active('artifacts')}"><a class="menulink" href="${h.route_path('repo_artifacts_list',repo_name=c.repo_name)}"><div class="menulabel">${_('Artifacts')}</div></a></li>
<li class="${is_active('artifacts')}">
<a class="menulink" href="${h.route_path('repo_artifacts_list',repo_name=c.repo_name)}">
<div class="menulabel">
${_('Artifacts')} <span class="menulink-counter">${c.repository_artifacts}</span>
</div>
</a>
</li>
%if h.HasRepoPermissionAll('repository.admin')(c.repo_name):
<li class="${is_active('settings')}"><a class="menulink" href="${h.route_path('edit_repo',repo_name=c.repo_name)}"><div class="menulabel">${_('Repository Settings')}</div></a></li>