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.
41 lines
1.6 KiB
Python
41 lines
1.6 KiB
Python
"""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
|