Projet

Général

Profil

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

Frédéric Péters, 10 juillet 2016 10:58

Télécharger (2,64 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       | 22 +++++++++++++++++++++-
 2 files changed, 23 insertions(+), 2 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
import json
2 3

  
3 4
from django.conf import settings
4 5
from django.core import signing
......
6 7
from django.views.generic import CreateView, UpdateView, DeleteView, \
7 8
                                 ListView, TemplateView
8 9
from django.contrib.syndication.views import Feed
10
from django.utils.encoding import force_text
9 11
from django.utils.feedgenerator import Atom1Feed
10 12
from django.utils.http import urlencode
11
from django.http import Http404
13
from django.utils.translation import ugettext_lazy as _
14
from django.http import HttpResponse, Http404
12 15

  
13 16
import models
14 17
from .forms import AnnounceForm, CategoryForm
......
153 156
        return item.publication_time or item.mtime
154 157

  
155 158
atom = AtomView()
159

  
160

  
161
def menu_json(request):
162
    label = _('Announces')
163
    json_str = json.dumps([{'label': force_text(label),
164
        'slug': 'announces',
165
        'url': request.build_absolute_uri(reverse('manage'))
166
        }])
167
    for variable in ('jsonpCallback', 'callback'):
168
        if variable in request.GET:
169
            response = HttpResponse(content_type='application/javascript')
170
            json_str = '%s(%s);' % (request.GET[variable], json_str)
171
            break
172
    else:
173
        response = HttpResponse(content_type='application/json')
174
    response.write(json_str)
175
    return response
156
-