diff --git a/klaus/templates/view_commit.html b/klaus/templates/view_commit.html index 2262b8a9e4643492ffa25e59684b354f74326efe..88e83041a0f05b22927319d8e950fcb56ad511c5 100644 --- a/klaus/templates/view_commit.html +++ b/klaus/templates/view_commit.html @@ -1,6 +1,6 @@ {% extends 'base.html' %} -{% block extra_header %}{% endblock %} {# no branch selector on commits #} +{% block extra_header %}{% endblock %} {# hide branch selector #} {% block title %} Commit {{ rev }} - {{ repo.name }} diff --git a/klaus/views.py b/klaus/views.py index 24138767a54eb8ef9adc6f0053631b870171f7cc..d79a3ad976fd1fa2b44fdcd2809feed986258b04 100644 --- a/klaus/views.py +++ b/klaus/views.py @@ -40,6 +40,24 @@ def robots_txt(): return current_app.send_static_file('robots.txt') +def _get_repo_and_rev(repo, rev=None): + try: + repo = current_app.repos[repo] + except KeyError: + raise NotFound("No such repository %r" % repo) + + if rev is None: + rev = repo.get_default_branch() + if rev is None: + raise NotFound("Empty repository") + try: + commit = repo.get_commit(rev) + except KeyError: + raise NotFound("No such commit %r" % rev) + + return repo, rev, commit + + class BaseRepoView(View): """Base for all views with a repo context. @@ -64,20 +82,7 @@ class BaseRepoView(View): return render_template(self.template_name, **self.context) def make_template_context(self, repo, rev, path): - try: - repo = current_app.repos[repo] - except KeyError: - raise NotFound("No such repository %r" % repo) - - if rev is None: - rev = repo.get_default_branch() - if rev is None: - raise NotFound("Empty repository") - try: - commit = repo.get_commit(rev) - except KeyError: - raise NotFound("No such commit %r" % rev) - + repo, rev, commit = _get_repo_and_rev(repo, rev) try: blob_or_tree = repo.get_blob_or_tree(commit, path) except KeyError: