Pass docroot to badge endpoint.

refactor-builder
Eric Holscher 2013-10-28 20:08:37 -07:00
parent 5f8b6aba6a
commit 33713eed68
4 changed files with 12 additions and 7 deletions

View File

@ -10,11 +10,12 @@ $(document).ready(function () {
}, },
dataType: "jsonp", dataType: "jsonp",
data: { data: {
"format": "jsonp",
project: READTHEDOCS_DATA['project'], project: READTHEDOCS_DATA['project'],
version: READTHEDOCS_DATA['version'], version: READTHEDOCS_DATA['version'],
page: READTHEDOCS_DATA['page'], page: READTHEDOCS_DATA['page'],
theme: READTHEDOCS_DATA['theme'], theme: READTHEDOCS_DATA['theme'],
docroot: READTHEDOCS_DATA['docroot']
format: "jsonp",
}, },
success: function (data) { success: function (data) {
if (READTHEDOCS_DATA['theme'] != "sphinx_rtd_theme") { if (READTHEDOCS_DATA['theme'] != "sphinx_rtd_theme") {

View File

@ -188,7 +188,7 @@ class Version(models.Model):
return conf_py_path.replace('conf.py', '') return conf_py_path.replace('conf.py', '')
def get_github_url(self, filename): def get_github_url(self, docroot, filename):
GITHUB_REGEXS = [ GITHUB_REGEXS = [
re.compile('github.com/(.+)/(.+)(?:\.git){1}'), re.compile('github.com/(.+)/(.+)(?:\.git){1}'),
re.compile('github.com/(.+)/(.+)'), re.compile('github.com/(.+)/(.+)'),
@ -199,6 +199,8 @@ class Version(models.Model):
repo_url = self.project.repo repo_url = self.project.repo
if 'github' not in repo_url: if 'github' not in repo_url:
return '' return ''
if not docroot:
return ''
for regex in GITHUB_REGEXS: for regex in GITHUB_REGEXS:
match = regex.search(repo_url) match = regex.search(repo_url)
@ -207,7 +209,6 @@ class Version(models.Model):
break break
else: else:
return '' return ''
docroot = self.get_conf_py_path()
repo = repo.rstrip('/') repo = repo.rstrip('/')
return GITHUB_URL.format( return GITHUB_URL.format(
@ -218,7 +219,7 @@ class Version(models.Model):
path=filename, path=filename,
) )
def get_bitbucket_url(self, filename): def get_bitbucket_url(self, docroot, filename):
BB_REGEXS = [ BB_REGEXS = [
re.compile('bitbucket.org/(.+)/(.+).git'), re.compile('bitbucket.org/(.+)/(.+).git'),
re.compile('bitbucket.org/(.+)/(.+)/'), re.compile('bitbucket.org/(.+)/(.+)/'),
@ -229,6 +230,8 @@ class Version(models.Model):
repo_url = self.project.repo repo_url = self.project.repo
if 'bitbucket' not in repo_url: if 'bitbucket' not in repo_url:
return '' return ''
if not docroot:
return ''
for regex in BB_REGEXS: for regex in BB_REGEXS:
match = regex.search(repo_url) match = regex.search(repo_url)
@ -237,7 +240,6 @@ class Version(models.Model):
break break
else: else:
return '' return ''
docroot = self.get_conf_py_path()
repo = repo.rstrip('/') repo = repo.rstrip('/')
return BB_URL.format( return BB_URL.format(

View File

@ -197,6 +197,7 @@ def footer_html(request):
version_slug = request.GET.get('version', None) version_slug = request.GET.get('version', None)
page_slug = request.GET.get('page', None) page_slug = request.GET.get('page', None)
theme = request.GET.get('theme', False) theme = request.GET.get('theme', False)
docroot = request.GET.get('docroot', '')
new_theme = (theme == "sphinx_rtd_theme") new_theme = (theme == "sphinx_rtd_theme")
using_theme = (theme == "default") using_theme = (theme == "default")
project = get_object_or_404(Project, slug=project_slug) project = get_object_or_404(Project, slug=project_slug)
@ -209,8 +210,8 @@ def footer_html(request):
'using_theme': using_theme, 'using_theme': using_theme,
'new_theme': new_theme, 'new_theme': new_theme,
'settings': settings, 'settings': settings,
'github_url': version.get_github_url(page_slug), 'github_url': version.get_github_url(docroot, page_slug),
'bitbucket_url': version.get_bitbucket_url(page_slug), 'bitbucket_url': version.get_bitbucket_url(docroot, page_slug),
}) })
html = Template(TEMPLATE).render(context) html = Template(TEMPLATE).render(context)
return Response({"html": html}) return Response({"html": html})

View File

@ -10,6 +10,7 @@
version: "{{ current_version }}", version: "{{ current_version }}",
page: "{{ pagename }}", page: "{{ pagename }}",
theme: "{{ html_theme }}" theme: "{{ html_theme }}"
docroot: "{{ conf_py_path }}",
} }
// Old variables // Old variables
var doc_version = "{{ current_version }}"; var doc_version = "{{ current_version }}";