# coding: utf-8 from xml.dom import minidom from ru.curs.showcase.core.jython import JythonProc from ru.curs.showcase.core.jython import JythonDTO from ru.curs.celesta import Celesta from ru.curs.celesta.score import Score from ru.curs.celesta import ConnectionPool from ru.curs.celesta import CallContext from dirU.GeneralFunctions import GridXmlConversion, ActionToXml from dirU._dirU_orm import foldersCursor from dirU._dirU_orm import directoriesCursor from system.XMLJSONConverter import JSONToXML # init vars main = "" add = "" session = "" filterContext = "" elementId = "" sortcols = None #объект типа java.util.List<ru.curs.gwt.datagrid.model.Column> parentId = None print 1 # #class directoriesGrid(JythonProc): # def getRawData(self, context, elId, scols): # global main, add, session, filterContext, elementId, sortcols, parentId # main = context.getMain() # if context.getAdditional(): # add = context.getAdditional() # session = context.getSession() # if context.getFilter(): # filterContext = context.getFilter() # elementId = elId # sortcols = scols # parentId = context.getParentId() # return mainproc() # # #def mainproc(): # # celestaInst = Celesta.getInstance() # conn = ConnectionPool.get() # context = CallContext(conn, 'master') # # _headers = (('id', '~~id'), ('name', u'Имя гранулы/папки/справочника'), ('prefix', u'Префикс'), # ('table', u'Наименование таблицы'), ('type', u'Тип'), ('hasChildren', 'HasChildren'), # ('properties', 'properties')) # _data = list() # # _folders = foldersCursor(context) # _directories = directoriesCursor(context) # # event = minidom.Element('event') # event.setAttribute('name', 'row_single_click') # event.appendChild(ActionToXml().xmlComp('action', None, [ # ActionToXml().actParts('main_context', None, None, 'current'), # ActionToXml().actParts('datapanel', # {'type':'current', # 'tab':'current'}, # [({'id':'structXformsDirectories'}, 'hide'), # ({'id':'structXformsFolder'}, 'hide')] , # None) # ])) # # # # # if not parentId: # grains = celestaInst.getScore().grains # for grain in sorted(grains): # row = dict() # row['id'] = 'g%s' % grain # row['name'] = grain # row['prefix'] = '' # row['table'] = '' # row['type'] = '' # # _folders.setRange('grainId', grain) # _directories.setRange('grainId', grain) # row['hasChildren'] = int(_folders.tryFirst() or _directories.tryFirst()) # # row['properties'] = event # _data.append(row) # else: # if parentId[0] == 'g': # _folders.setRange('grainId', parentId[1:]) # _directories.setRange('grainId', parentId[1:]) # elif parentId[0] == 'f': # _folders.setRange('parentId', parentId[1:]) # _directories.setRange('folderId', parentId[1:]) # else: # pass # # _folders.orderBy('name') # _directories.orderBy('name') # # while _folders.next(): # folderId = _folders.id # row = dict() # row['id'] = 'f%d' % folderId # row['name'] = _folders.name # row['prefix'] = '' # row['table'] = '' # row['type'] = '' # # _tempFolders = foldersCursor(context) # _tempFolders.setRange('parentId', folderId) # _tempDirectories = directoriesCursor(context) # _tempDirectories.setRange('folderId', folderId) # row['hasChildren'] = int(_tempFolders.tryFirst() or _tempDirectories.tryFirst()) # # # row['properties'] = event # _data.append(row) # # while _directories.next(): # directoryId = _directories.id # row = dict() # row['id'] = 'd%d' % directoryId # row['name'] = _directories.name # row['prefix'] = _directories.prefix # row['table'] = _directories.dbTableName # row['type'] = '' # row['hasChildren'] = 0 # # row['properties'] = event # _data.append(row) # # # # # resultData = GridXmlConversion().getGridData(_headers, _data) # settings = u''' # <gridsettings> # <action> # <main_context>current</main_context> # <datapanel type="current" tab="current"> # <element id="structXformsDirectories"><add_context>hide</add_context></element> # <element id="structXformsFolder"><add_context>hide</add_context></element> # </datapanel> # </action> # <labels> # <header> # Справочники # </header> # </labels> # <columns> # <col id="name" /> # </columns> # <properties flip="false" pagesize="30" totalCount="0"/> # </gridsettings>''' # res = JythonDTO(resultData.toxml(), settings) # # ConnectionPool.putBack(conn) # #print resultData.toprettyxml() # return res # # #if __name__ == "__main__": # mainproc();