summaryrefslogtreecommitdiff
path: root/showcase/views.py
blob: 7134830b7d22fc4390b50b516da750011249b41c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from django.http import Http404, HttpResponse
from django.template import TemplateDoesNotExist
from django.template.loader import get_template
from django.utils.translation import ugettext_lazy as _

from .models import ShowCase


def display_item(request, slug, number):
    q = ShowCase.objects.filter(slug=slug)
    if not q.count():
        return Http404(_("Unknown source."))
    showcase = q.all()[0]
    source = showcase.external_source
    template_name = "showcase/item-{}.html".format(source.source_type.slug)
    try:
        template = get_template(template_name)
    except TemplateDoesNotExist:
        raise Http404(
            str(_("Template {} is not defined. Ask your administrator to "
                  "define a template for this source type.")).format(
                template_name))
    data = source.get_item(int(number))
    if not data:
        raise Http404(
            str(_("Data unavailable"))
        )
    data["showcase"] = slug
    return HttpResponse(template.render(data, request))