fmartingr
/
shelfzilla
Archived
1
0
Fork 0
This repository has been archived on 2021-06-29. You can view files and clone it, but cannot push or open issues or pull requests.
shelfzilla/shelfzilla/views.py

60 lines
1.6 KiB
Python

# coding: utf-8
# python
import json
# django
from django.views.generic import View as DjangoView
from django.template import RequestContext
from django.shortcuts import render_to_response
from django.http import HttpResponse
from django.contrib import messages
from django.core.exceptions import PermissionDenied
class View(DjangoView):
section = None
def get_context(self, context):
if self.section:
context['navigation'] = {
'section': self.section
}
return context
class MessagesView(View):
template = 'contrib/messages.html'
formats = ['html', 'json']
def get(self, request):
format = 'html'
if 'format' in request.GET and request.GET['format'] in self.formats:
format = request.GET['format']
if format == 'html':
ctx = RequestContext(request, {})
result = render_to_response(self.template, context_instance=ctx)
elif format == 'json':
messages_json = []
for message in messages.get_messages(request):
messages_json.append(
{
"level": message.level,
"message": message.message,
"extra_tags": message.tags,
}
)
result = HttpResponse(
json.dumps(messages_json),
content_type='application/json'
)
return result
class BlockedView(View):
def dispatch(self, *args, **kwargs):
raise PermissionDenied