示例#1
0
文件: views.py 项目: hwmrocker/gweb
def album(request, album_id, lang="en", name=""):
    if album_id == "0":
        query = request.GET.get("query", " ")
        album = Album(query=query)
        album.id = 0

    else:
        album = get_object_or_404(Album, id=album_id)
    try:
        page = int(request.GET.get("page", "1"))
    except ValueError:
        page = 1

    if request.GET.get("redirect", "") != "":
        if album_id == "0" and page == 1:
            goto = reverse("wilson:custom_album", kwargs={"lang": translation.get_language(), "query": query})
        elif album_id == "0" and page > 1:
            goto = reverse(
                "wilson:custom_album", kwargs={"lang": translation.get_language(), "page": page, "query": query}
            )
        elif page == 1:
            goto = reverse(
                "wilson:album",
                kwargs={"lang": translation.get_language(), "album_id": album_id, "name": slugify(album.title())},
            )
        else:
            goto = reverse(
                "wilson:album_page",
                kwargs={
                    "lang": translation.get_language(),
                    "album_id": album_id,
                    "name": slugify(album.title()),
                    "page": page,
                },
            )
        return HttpResponseRedirect(goto)

    paginator = Paginator(album.pictures_id_list(), 35, 7)

    # If page request (9999) is out of range, deliver last page of results.
    try:
        album_pics = paginator.page(page)
    except (EmptyPage, InvalidPage):
        album_pics = paginator.page(paginator.num_pages)
    album_pics.page_range = paginator.page_range
    return render_to_response(
        "wilson/album.html",
        {
            "album": album,
            "album_pics": album_pics,
            "menu": {
                "left": list(MenuPlaceholder.objects.filter(parent=None, position_h="l").order_by("position_v")),
                "right": list(MenuPlaceholder.objects.filter(parent=None, position_h="r").order_by("position_v")),
            },
        },
        context_instance=RequestContext(request),
    )
示例#2
0
文件: views.py 项目: hwmrocker/gweb
def album_picture(request, album_id, picture_id, lang="en", name="", redirect=False, picture_title=""):
    if album_id == "0":
        query = request.GET.get("query", " ")
        album = Album(query=query)
        album.id = 0
    else:
        album = get_object_or_404(Album, id=album_id)
    picture_id = int(picture_id)
    picture = album.pictures_list()[picture_id]
    album.slice = album.get_slice(picture_id)

    if redirect or request.GET.get("redirect", "") != "":
        if album_id == "0":
            return HttpResponseRedirect(
                reverse(
                    "wilson:custom_album_picture",
                    kwargs={
                        "lang": lang,
                        "query": album.queryurl(),
                        "picture_title": slugify(picture.title()),
                        "picture_id": picture_id,
                    },
                )
            )
        else:
            return HttpResponseRedirect(
                reverse(
                    "wilson:album_picture",
                    kwargs={
                        "lang": lang,
                        "name": slugify(album.title()),
                        "album_id": album_id,
                        "picture_title": slugify(picture.title()),
                        "picture_id": picture_id,
                    },
                )
            )
    prev = next = None
    if album.id != 0:
        if 0 < picture_id:
            prev = reverse(
                "wilson:album_picture",
                kwargs={
                    "album_id": album_id,
                    "picture_id": picture_id - 1,
                    "lang": lang,
                    "name": slugify(album.title()),
                },
            )
        if picture_id < len(album.pictures_list()) - 1:
            next = reverse(
                "wilson:album_picture",
                kwargs={
                    "album_id": album_id,
                    "picture_id": picture_id + 1,
                    "lang": lang,
                    "name": slugify(album.title()),
                },
            )
    else:
        if 0 < picture_id:
            prev = reverse(
                "wilson:custom_album_picture",
                kwargs={"picture_id": picture_id - 1, "query": album.queryurl(), "lang": lang},
            )
        if picture_id < len(album.pictures_list()) - 1:
            next = reverse(
                "wilson:custom_album_picture",
                kwargs={"picture_id": picture_id + 1, "query": album.queryurl(), "lang": lang},
            )
    album_page = ((picture_id) // 35) + 1
    if album.id == 0:
        album_url = reverse(
            "wilson:custom_album_page", kwargs={"page": album_page, "query": album.queryurl(), "lang": lang}
        )
    else:
        album_url = reverse(
            "wilson:album_page",
            kwargs={"name": slugify(album.title()), "album_id": album_id, "page": album_page, "lang": lang},
        )
    return render_to_response(
        "wilson/album_picture.html",
        {
            "album": album,
            "obj": picture,
            "prev": prev,
            "next": next,
            "album_url": album_url,
            "menu": {
                "left": list(MenuPlaceholder.objects.filter(parent=None, position_h="l").order_by("position_v")),
                "right": list(MenuPlaceholder.objects.filter(parent=None, position_h="r").order_by("position_v")),
            },
        },
        context_instance=RequestContext(request),
    )