diff options
author | Étienne Loks <etienne@peacefrogs.net> | 2019-07-17 10:42:26 +0200 |
---|---|---|
committer | Étienne Loks <etienne@peacefrogs.net> | 2019-07-17 10:42:26 +0200 |
commit | 68093c0cfa09735f4c6a9b7de0346ac3282730ee (patch) | |
tree | af31ab0e4bd4c589e86ec866000c3bd18700630b /showcase/views.py | |
download | ishtar-pergamon-68093c0cfa09735f4c6a9b7de0346ac3282730ee.tar.bz2 ishtar-pergamon-68093c0cfa09735f4c6a9b7de0346ac3282730ee.zip |
Initial commit
Diffstat (limited to 'showcase/views.py')
-rw-r--r-- | showcase/views.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/showcase/views.py b/showcase/views.py new file mode 100644 index 0000000..7134830 --- /dev/null +++ b/showcase/views.py @@ -0,0 +1,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)) + |