示例#1
0
def choose_cite(context, ctx=None):
    """Choose a cite for main page, for book or for set of tags."""
    try:
        request = context["request"]
        assert request.user.is_staff
        assert "choose_cite" in request.GET
        cite = Cite.objects.get(pk=request.GET["choose_cite"])
    except AssertionError, Cite.DoesNotExist:
        if ctx is None:
            cites = Cite.objects.all()
        elif isinstance(ctx, Book):
            cites = ctx.cite_set.all()
            if not cites.exists():
                cites = cites_for_tags([ctx.book_tag()])
        else:
            cites = cites_for_tags(ctx)
        stickies = cites.filter(sticky=True)
        count = stickies.count()
        if count:
            cite = stickies[randint(0, count - 1)]
        else:
            count = cites.count()
            if count:
                cite = cites[randint(0, count - 1)]
            else:
                cite = None
示例#2
0
def choose_cite(context, ctx=None):
    """Choose a cite for main page, for book or for set of tags."""
    try:
        request = context['request']
        assert request.user.is_staff
        assert 'choose_cite' in request.GET
        cite = Cite.objects.get(pk=request.GET['choose_cite'])
    except AssertionError, Cite.DoesNotExist:
        if ctx is None:
            cites = Cite.objects.all()
        elif isinstance(ctx, Book):
            cites = ctx.cite_set.all()
            if not cites.exists():
                cites = cites_for_tags([ctx.book_tag()])
        else:
            cites = cites_for_tags(ctx)
        stickies = cites.filter(sticky=True)
        count = stickies.count()
        if count:
            cite = stickies[randint(0, count - 1)]
        else:
            count = cites.count()
            if count:
                cite = cites[randint(0, count - 1)]
            else:
                cite = None
示例#3
0
def choose_cite(request, book_id=None, tag_ids=None):
    """Choose a cite for main page, for book or for set of tags."""
    try:
        assert request.user.is_staff
        assert 'choose_cite' in request.GET
        cite = Cite.objects.get(pk=request.GET['choose_cite'])
    except (AssertionError, Cite.DoesNotExist):
        if book_id is not None:
            cites = Cite.objects.filter(Q(book=book_id) | Q(book__ancestor=book_id))
        elif tag_ids is not None:
            tags = Tag.objects.filter(pk__in=tag_ids)
            cites = cites_for_tags(tags)
        else:
            cites = Cite.objects.all()
        stickies = cites.filter(sticky=True)
        count = stickies.count()
        if count:
            cite = stickies[randint(0, count - 1)]
        else:
            count = cites.count()
            if count:
                cite = cites[randint(0, count - 1)]
            else:
                cite = None
    return cite