from manifoldapi.manifoldapi        import execute_query
 
 from string import join
+import decimal
+import datetime
 import json
 
 
 # handles serialization of datetime in json
 DateEncoder = lambda obj: obj.strftime("%B %d, %Y %H:%M:%S") if isinstance(obj, datetime.datetime) else None
 
+# support converting decimal in json
+encoder.FLOAT_REPR = lambda o: format(o, '.2f')
+
 # handles decimal numbers serialization in json
 class DecimalEncoder(json.JSONEncoder):
     def _iterencode(self, o, markers=None):
 #         return post(request, object_type, object_name)
 
 def platform(request, object_name, object_properties):
-    query  = Query().get('local:platform').filter_by('disabled', '==', '0').select(object_properties)
+    query  = Query().get('local:platform').filter_by('disabled', '==', '0').filter_by('gateway_type', '==', 'sfa').filter_by('platform', '!=', 'myslice').select(object_properties)
     return send(request, execute_query(request, query), object_properties)
 
 def slice(request, object_name, object_properties):
 def send(request, response, object_properties):
     if request.path.split('/')[1] == 'rest' :
         response_data = response
-        return HttpResponse(json.dumps(response_data), content_type="application/json")
+        return HttpResponse(json.dumps(response_data, cls=DecimalEncoder, default=DateEncoder), content_type="application/json")
     elif request.path.split('/')[1] == 'table' :
         return render_to_response('table-default.html', {'data' : response, 'properties' : object_properties})
     elif request.path.split('/')[1] == 'datatable' :