summaryrefslogtreecommitdiff
path: root/showcase/views.py
diff options
context:
space:
mode:
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
commit68093c0cfa09735f4c6a9b7de0346ac3282730ee (patch)
treeaf31ab0e4bd4c589e86ec866000c3bd18700630b /showcase/views.py
downloadishtar-pergamon-68093c0cfa09735f4c6a9b7de0346ac3282730ee.tar.bz2
ishtar-pergamon-68093c0cfa09735f4c6a9b7de0346ac3282730ee.zip
Initial commit
Diffstat (limited to 'showcase/views.py')
-rw-r--r--showcase/views.py30
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))
+