Esempio n. 1
0
 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)
Esempio n. 2
0
 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)
Esempio n. 3
0
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)
Esempio n. 4
0
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)