Projet

Général

Profil

0001-misc-publish-menu.json-to-get-a-menu-entry-into-publ.patch

Frédéric Péters, 11 juillet 2016 10:30

Télécharger (2,82 ko)

Voir les différences:

Subject: [PATCH] misc: publish menu.json to get a menu entry into publik
 sidepage menu (#12508)

 corbo/manage_urls.py |  3 ++-
 corbo/views.py       | 23 +++++++++++++++++++++--
 2 files changed, 23 insertions(+), 3 deletions(-)
corbo/manage_urls.py
1 1
from django.conf.urls import patterns, include, url
2 2

  
3 3
from .views import add_announce, edit_announce, delete_announce, \
4
    add_category, edit_category, delete_category, manage
4
    add_category, edit_category, delete_category, manage, menu_json
5 5

  
6 6
urlpatterns = patterns('',
7 7
            url(r'^$', manage, name='manage'),
......
16 16
                name='edit_category'),
17 17
            url(r'^category/delete/(?P<pk>\d+)$', delete_category,
18 18
                name='delete_category'),
19
            url(r'^menu.json$', menu_json),
19 20
)
corbo/views.py
1 1
from datetime import datetime
2 2
import urllib
3
import json
3 4

  
4 5
from django.conf import settings
5 6
from django.core import signing
......
8 9
                                 ListView, TemplateView
9 10
from django.contrib.syndication.views import Feed
10 11
from django.shortcuts import resolve_url
12
from django.utils.encoding import force_text
11 13
from django.utils.feedgenerator import Atom1Feed
12 14
from django.utils.http import urlencode
13
from django.http import Http404
15
from django.http import HttpResponseRedirect, HttpResponse, Http404
14 16
from django.contrib.auth import logout as auth_logout
15 17
from django.contrib.auth import views as auth_views
16
from django.http import HttpResponseRedirect
18
from django.utils.translation import ugettext_lazy as _
17 19

  
18 20
import models
19 21
from .forms import AnnounceForm, CategoryForm
......
182 184
        return item.publication_time or item.mtime
183 185

  
184 186
atom = AtomView()
187

  
188

  
189
def menu_json(request):
190
    label = _('Announces')
191
    json_str = json.dumps([{'label': force_text(label),
192
        'slug': 'announces',
193
        'url': request.build_absolute_uri(reverse('manage'))
194
        }])
195
    for variable in ('jsonpCallback', 'callback'):
196
        if variable in request.GET:
197
            response = HttpResponse(content_type='application/javascript')
198
            json_str = '%s(%s);' % (request.GET[variable], json_str)
199
            break
200
    else:
201
        response = HttpResponse(content_type='application/json')
202
    response.write(json_str)
203
    return response
185
-