misc: add menu.json URL for publik menu

This commit is contained in:
Frédéric Péters 2015-11-02 17:38:26 +01:00
parent a5effadef3
commit a7c65b8224
2 changed files with 20 additions and 0 deletions

View File

@ -52,6 +52,7 @@ urlpatterns = patterns('',
url(r'^admin/', include(admin.site.urls)),
url(r'^logout/$', 'welco.views.logout', name='auth_logout'),
url(r'^login/$', 'welco.views.login', name='auth_login'),
url(r'^menu.json$', 'welco.views.menu_json', name='menu_json'),
(r'^ckeditor/', include('ckeditor.urls')),
)

View File

@ -28,6 +28,7 @@ from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import resolve_url
from django import template
from django.template import RequestContext
from django.utils.encoding import force_text
from django.views.decorators.csrf import csrf_exempt
from django.views.generic import TemplateView
@ -154,3 +155,21 @@ def wcs_summary(request, *args, **kwargs):
def remove_association(request, *args, **kwargs):
Association.objects.filter(id=kwargs.get('pk')).delete()
return HttpResponseRedirect(resolve_url('home'))
@login_required
def menu_json(request):
response = HttpResponse(content_type='application/json')
if getattr(settings, 'TEMPLATE_VARS', {}).get('site_title'):
label = settings.TEMPLATE_VARS.get('site_title')
else:
label = _('Counter')
json_str = json.dumps([{'label': force_text(label),
'slug': 'counter',
'url': request.build_absolute_uri(reverse('home'))
}])
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