Exemplo n.º 1
0
def recent(request, tag_name=None, page=None):
    tag = Tag.with_name(tag_name)
    if not tag:
        photo_set = Photo.recent()
        video_set = Video.recent()
    else:
        photo_set = tag.get_recent_photos()
        video_set = tag.get_recent_videos()

    media_set = list(photo_set) + list(video_set)
    total = len(media_set)
    page, start, end, nb_pages = get_page(page, total)

    medias = media_set[start:end]
    total_pages = range(nb_pages)

    slug = "/%s/recent/" % G_URL
    if tag_name:
        slug += "%s/" % tag_name

    params = {
        "tag": tag,
        "page": page,
        "slug": slug,
        "tag_name": tag_name,
        "nb_pages": nb_pages,
        "total_pages": total_pages,
        "medias": medias,
    }
    params.update(DEFAULT_PARAMS)
    return render_to_response("gallery/tag.html", params, context_instance=RequestContext(request))
Exemplo n.º 2
0
def photo(request, photo_id, in_tag_name=None, in_event_id=None):
    reset_cache, form = process_form(request, aksmet, photo_id=photo_id)

    response = None
    cache_key = "photo_%s" % photo_id

    if not reset_cache:
        response = cache.get(cache_key)
        if not response:
            reset_cache = True

    if reset_cache or not response:
        p = get_object_or_404(Photo.objects.using("gallery"), pk=photo_id)
        exported = get_object_or_404(OriginalExport.objects.using("gallery"), id=photo_id)

        tag = None
        event = None
        if in_tag_name:
            tag = Tag.with_name(in_tag_name)
            kw = dict(tag=tag)
        elif in_event_id:
            kw = dict(event_id=in_event_id)
            event = get_object_or_404(Event.objects.using("gallery"), pk=in_event_id)
        else:
            kw = {}
        previous = p.get_sibling_media("previous", **kw)
        next = p.get_sibling_media("next", **kw)
        p.increment_hit()
        slug = "/%s/photo/%s/" % (G_URL, p.id)
        slideshow_url = "%s/slideshow/%s/%d" % (G_URL, in_tag_name, p.id)
        params = {
            "tag": tag,
            "media": p,
            "previous": previous,
            "slug": slug,
            "next": next,
            "exported": exported,
            "form": form,
            "event": event,
            "slideshow_url": slideshow_url,
        }
        params.update(DEFAULT_PARAMS)
        context = RequestContext(request)
        response = render_to_response("gallery/photo.html", params, context_instance=context)
        cache.set(cache_key, response, CACHE_TIMEOUT)
    return response
Exemplo n.º 3
0
def medias_in_tag(request, tag_name, photo_id=None, video_id=None, page=None):
    if photo_id:
        return photo(request, photo_id, in_tag_name=tag_name)
    elif video_id:
        return video(request, video_id, in_tag_name=tag_name)
    else:
        if tag_name.find("+") > -1:
            # combination of tags
            media_set = Tag.build_set(tag_name)
            tag = None
        else:
            # display all photos of the tag
            tag = Tag.with_name(tag_name)
            if not tag:
                raise Http404
            else:
                photo_set = tag.photo_set.order_by("timestamp")
                video_set = tag.video_set.order_by("time_created")
                media_set = list(photo_set) + list(video_set)

        total = len(media_set)
        page, start, end, nb_pages = get_page(page, total)

        medias = media_set[start:end]
        total_pages = range(nb_pages)
        slug = "%s/tag/%s/" % (G_URL, tag_name)
        params = {
            "tag": tag,
            "page": page,
            "slug": slug,
            "tag_name": tag_name,
            "nb_pages": nb_pages,
            "total_pages": total_pages,
            "medias": medias,
        }
        params.update(DEFAULT_PARAMS)
        return render_to_response("gallery/tag.html", params, context_instance=RequestContext(request))
Exemplo n.º 4
0
 def get_object(self, bits):
     if len(bits) != 1:
         raise ObjectDoesNotExist
     return Tag.with_name(bits[0])
Exemplo n.º 5
0
def slideshow(request, tag_name=None, photo_id=None):
    tag = Tag.with_name(tag_name)
    p = get_object_or_404(Photo.objects.using("gallery"), pk=photo_id)
    photos = tag.photo_set_from(p.timestamp)
    params = {"photos": photos}
    return render_to_response("gallery/slideshow.html", params, context_instance=RequestContext(request))