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' :