# coding: utf-8 ''' Created on 02.10.2014 @author: A.Vasilyev. ''' import json try: from ru.curs.showcase.core.jython import JythonDTO except: from ru.curs.celesta.showcase import JythonDTO try: from ru.curs.showcase.core.selector import ResultSelectorData from ru.beta2.extra.gwt.ui.selector.api import DataRecord except: from ru.curs.celesta.showcase import ResultSelectorData, DataRecord try: from ru.curs.showcase.activiti import EngineFactory except: from workflow import testConfig as EngineFactory # # from workflow import testConfig as EngineFactory from java.io import InputStream, FileInputStream from jarray import zeros from ru.curs.celesta.showcase.utils import XMLJSONConverter from workflow._workflow_orm import act_re_procdefCursor, act_proc_versionCursor def cardData(context, main=None, add=None, filterinfo=None, session=None, elementId=None): xformsdata = {"schema":{"@xmlns":'', "files":{} } } xformssettings = {"properties":{ "event":[{"@name": "single_click", "@linkId": "1", "action":{"#sorted":[{"main_context": "current"}, {"datapanel":{"@type": "current", "@tab": "current", "element":{"@id": "processesGrid", "add_context": 'current'} } }]} }] } } jsonData = XMLJSONConverter.jsonToXml(json.dumps(xformsdata)) jsonSettings = XMLJSONConverter.jsonToXml(json.dumps(xformssettings)) return JythonDTO(jsonData, jsonSettings) def processUpload(context, main, add, filterinfo, session, elementId, xformsdata, filename, file): #raise Exception(main,add,filterinfo,session,elementId,xformsdata,filename,file) #fio = FileInputStream("C:/jprojects/celesta/manage/general/score/workflow/uploadFile1.xml") ''' out = FileOutputStream('C:/jprojects/celesta/manage/general/score/workflow/files/uploadFile.xml') buf = zeros(1024, 'b') # equal to new byte[1024] in Java while True: length = file.read(buf) if length > 0: out.write(buf, 0, length) else: break out.close() ''' # f = open("C:/jprojects/celesta/manage/general/score/workflow/files/uploadTest.txt","w") # while True: # byte = file.read() # if byte != -1: # f.write(str(byte)+"\n") # else: # break # f.close() processEngine = EngineFactory.getActivitiProcessEngine() repositoryService = processEngine.getRepositoryService() # #a = InputStream(file) deploy = repositoryService.createDeployment().addInputStream(filename, file).deploy() procdef = act_re_procdefCursor(context) procversion = act_proc_versionCursor(context) procdef.setRange('deployment_id_', deploy.id) procdef.first() if procversion.tryGet(procdef.key_): procversion.process_id = procdef.id_ procversion.update() else: procversion.process_id = procdef.id_ procversion.processKey = procdef.key_ procversion.insert() def cardSave(context, main, add, filterinfo, session, elementId, data): #здесь необходимо описать сохранение ''' print 'Save xform data from Celesta Python procedure.' print 'User %s' % context.userId print 'main "%s".' % main print 'add "%s".' % add print 'filterinfo "%s".' % filterinfo print 'session "%s".' % session print 'elementId "%s".' % elementId print 'data "%s".' % data '''