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), )
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), )