diff --git a/cms/djangoapps/contentstore/views/dev.py b/cms/djangoapps/contentstore/views/dev.py index 6bda59abdd..2a6ee3ae07 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 cb31fc8b47..3229a222b1 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