add API call to return list of deleted objects

Change-Id: Id95d2fe678914712f9b28fd84239c3f14fd7bdbf
diff --git a/xos/api/utility/deleted_objects.py b/xos/api/utility/deleted_objects.py
new file mode 100644
index 0000000..c728827
--- /dev/null
+++ b/xos/api/utility/deleted_objects.py
@@ -0,0 +1,44 @@
+import json
+from django.http import HttpResponse
+from rest_framework.decorators import api_view
+from rest_framework.response import Response
+from rest_framework.reverse import reverse
+from rest_framework import serializers
+from rest_framework import generics
+from rest_framework import status
+from core.models import *
+from xos.apibase import XOSListCreateAPIView, XOSRetrieveUpdateDestroyAPIView, XOSPermissionDenied
+from api.xosapi_helpers import PlusModelSerializer, XOSViewSet, ReadOnlyField
+from django.db import models
+
+class DeletedObjectsViewSet(XOSViewSet):
+    base_name = "deleted_objects"
+    method_name = "deleted_objects"
+    method_kind = "viewset"
+
+    @classmethod
+    def get_urlpatterns(self, api_path="^"):
+        patterns = []
+
+        patterns.append( self.list_url("$", {"get": "get_deleted_objects"}, "list_deleted_objects") )
+
+        return patterns
+
+    def get_deleted_objects(self, request):
+        deleted_models = []
+        for model in models.get_models(include_auto_created=False):
+            if hasattr(model, "deleted_objects"):
+                if hasattr(model,"_meta") and hasattr(model._meta,"proxy") and model._meta.proxy:
+                    # ignore proxy models; we'll just report the base
+                    continue
+                for obj in model.deleted_objects.all():
+                    deleted_models.append( {"classname": obj.__class__.__name__,
+                                            "unicode": str(obj),
+                                            "id": obj.id} )
+
+        return HttpResponse( json.dumps(deleted_models), content_type="application/javascript")
+
+
+
+
+