Add a Studio view and template to host the Programs authoring app
The Programs authoring app is a Backbone SPA maintained in a separate repository. The app handles its own routing and provides a UI which can be used to create and publish new Programs (e.g, XSeries). ECOM-2598.
This commit is contained in:
40
cms/djangoapps/contentstore/views/program.py
Normal file
40
cms/djangoapps/contentstore/views/program.py
Normal file
@@ -0,0 +1,40 @@
|
||||
"""Programs views for use with Studio."""
|
||||
from django.contrib.auth.decorators import login_required
|
||||
from django.core.urlresolvers import reverse
|
||||
from django.http import Http404
|
||||
from django.utils.decorators import method_decorator
|
||||
from django.views.generic import View
|
||||
|
||||
from edxmako.shortcuts import render_to_response
|
||||
from openedx.core.djangoapps.programs.models import ProgramsApiConfig
|
||||
|
||||
|
||||
class ProgramAuthoringView(View):
|
||||
"""View rendering a template which hosts the Programs authoring app.
|
||||
|
||||
The Programs authoring app is a Backbone SPA maintained in a separate repository.
|
||||
The app handles its own routing and provides a UI which can be used to create and
|
||||
publish new Programs (e.g, XSeries).
|
||||
"""
|
||||
|
||||
@method_decorator(login_required)
|
||||
def dispatch(self, *args, **kwargs):
|
||||
"""Relays requests to matching methods.
|
||||
|
||||
Decorated to require login before accessing the authoring app.
|
||||
"""
|
||||
return super(ProgramAuthoringView, self).dispatch(*args, **kwargs)
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
"""Populate the template context with values required for the authoring app to run."""
|
||||
programs_config = ProgramsApiConfig.current()
|
||||
|
||||
if programs_config.is_studio_tab_enabled and request.user.is_staff:
|
||||
return render_to_response('program_authoring.html', {
|
||||
'show_programs_header': programs_config.is_studio_tab_enabled,
|
||||
'authoring_app_config': programs_config.authoring_app_config,
|
||||
'programs_api_url': programs_config.public_api_url,
|
||||
'studio_home_url': reverse('home'),
|
||||
})
|
||||
else:
|
||||
raise Http404
|
||||
Reference in New Issue
Block a user