Beispiel #1
0
def save_content(request):
    """ View for creating/updating a piece of content. """
    #Make a copy of request.POST, but as a single-value (not multi-value dict)
    post = request.POST
    data = {k: post.get(k) for k in post.keys()}
    key = data.pop('key')
    data.pop('csrfmiddlewaretoken', None)
    try:
        api.save_content_data(key, data, get_request_context(request))
        return HttpResponse('ok')
    except ValidationError as e:
        return json_response_from_exception(e)
Beispiel #2
0
 def test_save_and_get_data(self):
     api = BasicEditAPI()
     request = HttpRequest()
     request.path = '/test_view/'
     context = get_request_context(request)
     #First test that trying to get content for something that hasn't been saved returns {}
     result = api.get_content_data('some_key', context)
     self.assertEqual(result, {})
     #Now save some data
     data = {'content': 'pineapple', 'href': 'http://www.google.com/'}
     api.save_content_data('some_key', data, context)
     #Now calling get_content_data should return that data
     result = api.get_content_data('some_key', context)
     self.assertIsSubDict(data, result)
     #And now even if we have a new request object (so that there's no on-request caching)
     #and even if memcache is cleared, we should still get the same result
     cache.clear()
     request = HttpRequest()
     request.path = '/test_view/'
     context = get_request_context(request)
     result = api.get_content_data('some_key', context)
     self.assertIsSubDict(data, result)
Beispiel #3
0
 def replacement(request, *args, **kwargs):
     context = get_request_context(request)
     if not api.in_edit_mode(context):
         return HttpResponseForbidden()
     return function(request, *args, **kwargs)