Esempio n. 1
0
def analyse_tags(request, tag_str):
    try:
        tags = Tag.get_tag_list(tag_str)
    except Tag.DoesNotExist:
        # Perhaps the user is asking about an author in Public Domain
        # counter (they are not represented in tags)
        chunks = tag_str.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            raise ResponseInstead(pdcounter_views.author_detail(request, chunks[1]))
        else:
            raise Http404
    except Tag.MultipleObjectsReturned as e:
        # Ask the user to disambiguate
        raise ResponseInstead(differentiate_tags(request, e.tags, e.ambiguous_slugs))
    except Tag.UrlDeprecationWarning as e:
        raise ResponseInstead(HttpResponsePermanentRedirect(
            reverse('tagged_object_list', args=['/'.join(tag.url_chunk for tag in e.tags)])))

    try:
        if len(tags) > settings.MAX_TAG_LIST:
            raise Http404
    except AttributeError:
        pass

    return tags
Esempio n. 2
0
def tagged_object_list(request, tags=''):
    try:
        tags = models.Tag.get_tag_list(tags)
    except models.Tag.DoesNotExist:
        chunks = tags.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            return pdcounter_views.author_detail(request, chunks[1])
        else:
            raise Http404
    except models.Tag.MultipleObjectsReturned, e:
        return differentiate_tags(request, e.tags, e.ambiguous_slugs)
Esempio n. 3
0
def tagged_object_list(request, tags=''):
    try:
        tags = models.Tag.get_tag_list(tags)
    except models.Tag.DoesNotExist:
        chunks = tags.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            return pdcounter_views.author_detail(request, chunks[1])
        else:
            raise Http404
    except models.Tag.MultipleObjectsReturned, e:
        return differentiate_tags(request, e.tags, e.ambiguous_slugs)
Esempio n. 4
0
def analyse_tags(request, tag_str):
    try:
        tags = Tag.get_tag_list(tag_str)
    except Tag.DoesNotExist:
        # Perhaps the user is asking about an author in Public Domain
        # counter (they are not represented in tags)
        chunks = tag_str.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            raise ResponseInstead(pdcounter_views.author_detail(request, chunks[1]))
        else:
            raise Http404
    except Tag.MultipleObjectsReturned, e:
        # Ask the user to disambiguate
        raise ResponseInstead(differentiate_tags(request, e.tags, e.ambiguous_slugs))
Esempio n. 5
0
def tagged_object_list(request, tags=''):
    # preliminary tests and conditions
    try:
        tags = models.Tag.get_tag_list(tags)
    except models.Tag.DoesNotExist:
        # Perhaps the user is asking about an author in Public Domain
        # counter (they are not represented in tags)
        chunks = tags.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            return pdcounter_views.author_detail(request, chunks[1])
        else:
            raise Http404
    except models.Tag.MultipleObjectsReturned, e:
        # Ask the user to disambiguate
        return differentiate_tags(request, e.tags, e.ambiguous_slugs)
Esempio n. 6
0
def analyse_tags(request, tag_str):
    try:
        tags = Tag.get_tag_list(tag_str)
    except Tag.DoesNotExist:
        # Perhaps the user is asking about an author in Public Domain
        # counter (they are not represented in tags)
        chunks = tag_str.split('/')
        if len(chunks) == 2 and chunks[0] == 'autor':
            raise ResponseInstead(
                pdcounter_views.author_detail(request, chunks[1]))
        else:
            raise Http404
    except Tag.MultipleObjectsReturned, e:
        # Ask the user to disambiguate
        raise ResponseInstead(
            differentiate_tags(request, e.tags, e.ambiguous_slugs))