def version_compare(self, request, **kwargs): project = get_object_or_404(Project, slug=kwargs['project_slug']) highest = highest_version(project.versions.filter(active=True)) base = kwargs.get('base', None) ret_val = { 'project': highest[0], 'version': highest[1], 'is_highest': True, } if highest[0]: ret_val['url'] = highest[0].get_absolute_url() ret_val['slug'] = highest[0].slug, if base and base != 'latest': try: ver_obj = project.versions.get(slug=base) base_ver = mkversion(ver_obj) if base_ver: #This is only place where is_highest can get set. #All error cases will be set to True, for non- #standard versions. ret_val['is_highest'] = base_ver >= highest[1] else: ret_val['is_highest'] = True except (Version.DoesNotExist, TypeError): ret_val['is_highest'] = True return self.create_response(request, ret_val)
def version_compare(self, request, **kwargs): project = get_object_or_404(Project, slug=kwargs['project_slug']) highest = highest_version(project.versions.filter(active=True)) base = kwargs.get('base', None) ret_val = { 'project': highest[0], 'version': highest[1], 'is_highest': True, } if highest[0]: ret_val['url'] = highest[0].get_absolute_url() ret_val['slug'] = highest[0].slug, if base and base != 'latest': try: ver_obj = project.versions.get(slug=base) base_ver = mkversion(ver_obj) if base_ver: #This is only place where is_highest can get set. #All error cases will be set to True, for non- #standard versions. ret_val['is_highest'] = base_ver >= highest[1] else: ret_val['is_highest'] = True except (Version.DoesNotExist, TypeError): ret_val['is_highest'] = True return self.create_response(request, ret_val)
def subdomain_handler(request, lang_slug=None, version_slug=None, filename=''): """ This provides the fall-back routing for subdomain requests. This was made primarily to redirect old subdomain's to their version'd brothers. """ project = get_object_or_404(Project, slug=request.slug) # Don't add index.html for htmldir. if not filename and project.documentation_type != 'sphinx_htmldir': filename = "index.html" if version_slug is None: #Handle / on subdomain. default_version = project.get_default_version() url = reverse(serve_docs, kwargs={ 'version_slug': default_version, 'lang_slug': 'en', 'filename': filename }) return HttpResponseRedirect(url) if version_slug and lang_slug is None: #Handle /version/ on subdomain. aliases = project.aliases.filter(from_slug=version_slug) #Handle Aliases. if aliases.count(): if aliases[0].largest: highest_ver = highest_version( project.versions.filter(slug__contains=version_slug, active=True)) version_slug = highest_ver[0].slug else: version_slug = aliases[0].to_slug url = reverse(serve_docs, kwargs={ 'version_slug': version_slug, 'lang_slug': 'en', 'filename': filename }) else: try: url = reverse(serve_docs, kwargs={ 'version_slug': version_slug, 'lang_slug': 'en', 'filename': filename }) except NoReverseMatch: raise Http404 return HttpResponseRedirect(url) # Serve normal docs return serve_docs(request=request, project_slug=project.slug, lang_slug=lang_slug, version_slug=version_slug, filename=filename)
def subdomain_handler(request, lang_slug=None, version_slug=None, filename=''): """ This provides the fall-back routing for subdomain requests. This was made primarily to redirect old subdomain's to their version'd brothers. """ project = get_object_or_404(Project, slug=request.slug) # Don't add index.html for htmldir. if not filename and project.documentation_type != 'sphinx_htmldir': filename = "index.html" if version_slug is None: #Handle / on subdomain. default_version = project.get_default_version() url = reverse(serve_docs, kwargs={ 'version_slug': default_version, 'lang_slug': 'en', 'filename': filename }) return HttpResponseRedirect(url) if version_slug and lang_slug is None: #Handle /version/ on subdomain. aliases = project.aliases.filter(from_slug=version_slug) #Handle Aliases. if aliases.count(): if aliases[0].largest: highest_ver = highest_version(project.versions.filter(slug__contains=version_slug, active=True)) version_slug = highest_ver[0].slug else: version_slug = aliases[0].to_slug url = reverse(serve_docs, kwargs={ 'version_slug': version_slug, 'lang_slug': 'en', 'filename': filename }) else: try: url = reverse(serve_docs, kwargs={ 'version_slug': version_slug, 'lang_slug': 'en', 'filename': filename }) except NoReverseMatch: raise Http404 return HttpResponseRedirect(url) # Serve normal docs return serve_docs(request=request, project_slug=project.slug, lang_slug=lang_slug, version_slug=version_slug, filename=filename)