diff --git a/cms/djangoapps/contentstore/views/dev.py b/cms/djangoapps/contentstore/views/dev.py index 6bda59abddff903cd4d1b7ce29b6689d4c4148d2..2a6ee3ae07bbe14148472dfc3186b87c51506243 100644 --- a/cms/djangoapps/contentstore/views/dev.py +++ b/cms/djangoapps/contentstore/views/dev.py @@ -5,8 +5,24 @@ in a 404 error. """ # pylint: disable=W0613 from edxmako.shortcuts import render_to_response +from mako.exceptions import TopLevelLookupException +from django.http import HttpResponseNotFound def dev_mode(request): "Sample static view" return render_to_response("dev/dev_mode.html") + + +def dev_show_template(request, template): + """ + Shows the specified template as an HTML page. + e.g. /template/ux/reference/container.html shows the template under ux/reference/container.html + + Note: dynamic parameters can also be passed to the page. + e.g. /template/ux/reference/container.html?name=Foo + """ + try: + return render_to_response(template, request.GET.dict()) + except TopLevelLookupException: + return HttpResponseNotFound("Couldn't find template {tpl}".format(tpl=template)) diff --git a/cms/urls_dev.py b/cms/urls_dev.py index cb31fc8b4793b2f6507505384e382821e25fa911..3229a222b1375a3c1a3dd2eb65481316bd16ec02 100644 --- a/cms/urls_dev.py +++ b/cms/urls_dev.py @@ -7,4 +7,5 @@ from django.conf.urls import url urlpatterns = ( url(r'^dev_mode$', 'contentstore.views.dev.dev_mode', name='dev_mode'), + url(r'^template/(?P<template>.+)$', 'contentstore.views.dev.dev_show_template'), )