0001-misc-publish-menu.json-to-get-a-menu-entry-into-publ.patch
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 |
- |