Esempio n. 1
0
    def get(self, request, *args, **kwargs):

        content_type_id = self.request.GET.get("content_type_id", None)
        # Return http bad request if there is no content_type_id provided in request
        if not content_type_id:
            return HttpResponseBadRequest()

        # return http bad request if content_type not exist in db
        try:
            content_object = ContentType.objects.get_for_id(content_type_id)
        except ContentType.DoesNotExist:
            return HttpResponseBadRequest()

        # return http bad request if content type is not registered to use navigation app
        model = content_object.model_class()
        if not is_model_supported(self.menu_content_model, model):
            return HttpResponseBadRequest()

        data = {
            "results": [{
                "text": str(obj),
                "id": obj.pk
            } for obj in self.get_data()]
        }
        return JsonResponse(data)
Esempio n. 2
0
 def test_non_supported_content_types(self):
     unexpected_content_types = ContentType.objects.get_for_models(User)
     for model in unexpected_content_types:
         self.assertFalse(is_model_supported(model))
Esempio n. 3
0
 def test_supported_content_types(self):
     expected_content_types = ContentType.objects.get_for_models(
         Page, TestModel1, TestModel2, TestModel3, TestModel4, PollContent)
     for model in expected_content_types:
         self.assertTrue(is_model_supported(model))