## -*- coding: utf_8 -*- <% import base64 from cStringIO import StringIO from fcp import fcpdefs from fcp import mlitem from fcutils import util replyJSON = '' if fcp: ''' Multi-match so containing object exists ''' if fcp.MyMLItem is not None: myMLItem = fcp.MyMLItem.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ)) else: myMLItem = '{}' bodyText = fcp.body encodedBody = base64.standard_b64encode(bodyText) formFields = fcp.FormFieldDataAsJSON() if dirList!=None: jsonStr = StringIO() jsonStr.write('"MLDS":[') nItems = len(dirList) for i in range(nItems): item = dirList[i] if item: if i > 0: jsonStr.write(',' + item.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ))) else: jsonStr.write(item.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ))) jsonStr.write(']') mlds = jsonStr.getvalue() jsonStr.close() else: mlds = fcp.MLDSAsJSON() replyJSON = '{"MYMLITEM":'+myMLItem+',"FORMID":'+str(fcp.formID)+',"NFILES":'+str(fcp.NFiles)+',"RIGHTS":'+str(fcp.rights)+',"BODY":"'+encodedBody+'",'+formFields+','+mlds+'}' else: ''' Single match - only single MLItem ''' if dirList!=None and len(dirList)>=1: jsonStr = StringIO() item = dirList[0] if item: jsonStr.write(item.AsJSONArrayItem(mlitem.sendAll,(client.serverTZ,client.clientTZ))) replyJSON = jsonStr.getvalue() jsonStr.close() context.write(replyJSON) %>