qrurls/views.py
author Tero Marttila <terom@fixme.fi>
Thu, 15 Aug 2013 00:52:34 +0300
changeset 34 4ebfe940acd1
parent 33 b714115da724
child 37 e303425cec78
permissions -rw-r--r--
fixfix shorturl view typo
from django.http import HttpResponse, HttpResponseRedirect, Http404
from django.shortcuts import render

from qrurls.models import URL, URLItem

def _get_url_feed (shorturl=None, shorturl_id=None) :
    if shorturl :
        shorturl = shorturl.strip(' /')
        try :
            return URL.objects.get(shorturl=shorturl)
        except URL.DoesNotExist :
            raise Http404()
    elif shorturl_id :
        shorturl_id = int(shorturl_id.strip(' /'))
        try :
            return URL.objects.get(id=shorturl_id)
        except URL.DoesNotExist :
            raise Http404()
    else :
        raise Http404()

def index (request) :
    urls = URL.objects.all()
    return render(request, 'qrurls/index.html', dict(
        urls    = urls,
    ))

def shorturl (request, shorturl=None, shorturl_id=None) :
    url_feed = _get_url_feed(shorturl=shorturl, shorturl_id=shorturl_id)

    # most recent
    url_item = url_feed.active_item()
    
    if not url_item :
        raise Http404()

    # redirect
    url = url_item.get_absolute_url()

    return HttpResponseRedirect(url)
    
def image (request, shorturl, item_id) :
    url_feed = _get_url_feed(shorturl=shorturl)
    url_item = URLItem.objects.get(shorturl=url_feed, id=int(item_id))
        
    if not url_item.image :
        raise Http404()

    return render(request, 'qrurls/image.html', dict(
        image   = url_item.image,
    ))