diff --git a/combo/manager/urls.py b/combo/manager/urls.py index 26ee722d..803e5bbf 100644 --- a/combo/manager/urls.py +++ b/combo/manager/urls.py @@ -21,6 +21,7 @@ from . import views urlpatterns = patterns('combo.views', url(r'^$', views.homepage, name='combo-manager-homepage'), + url(r'^menu.json$', views.menu_json), url(r'^site-export$', views.site_export, name='combo-manager-site-export'), url(r'^site-import$', views.site_import, name='combo-manager-site-import'), url(r'^pages/add/$', views.page_add, name='combo-manager-page-add'), diff --git a/combo/manager/views.py b/combo/manager/views.py index abc99a78..b9071306 100644 --- a/combo/manager/views.py +++ b/combo/manager/views.py @@ -26,6 +26,7 @@ from django.core.urlresolvers import reverse, reverse_lazy from django.http import HttpResponse, Http404 from django.shortcuts import redirect from django.utils.translation import ugettext_lazy as _ +from django.utils.encoding import force_text from django.views.decorators.csrf import requires_csrf_token from django.views.generic import (TemplateView, RedirectView, DetailView, CreateView, UpdateView, ListView, DeleteView, FormView) @@ -307,3 +308,21 @@ def asset_delete(request): raise PermissionDenied() default_storage.delete(img_orig); return HttpResponse(status=204) + + +def menu_json(request): + response = HttpResponse(content_type='application/json') + if getattr(settings, 'TEMPLATE_VARS', {}).get('site_title'): + label = _('Editing %(site_title)s') % getattr(settings, 'TEMPLATE_VARS') + else: + label = _('Content Management') + json_str = json.dumps([{'label': force_text(label), + 'slug': 'portal', + 'url': request.build_absolute_uri(reverse('combo-manager-homepage')) + }]) + for variable in ('jsonpCallback', 'callback'): + if variable in request.GET: + json_str = '%s(%s);' % (request.GET[variable], json_str) + break + response.write(json_str) + return response