# coding: utf-8 import json from java.util import ArrayList from nci._nci_orm import education_baseCursor from edu._edu_orm import course_edu_baseCursor try: from ru.curs.showcase.core.jython import JythonDTO from ru.curs.showcase.core.jython import JythonDownloadResult 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 JythonDTO def procListAndCount(context, main=None, add=None, filterinfo=None, session=None, params=None, curValue=None, startsWith=None, firstRecord=None, recordCount=None): session = json.loads(session) course_edu_base = course_edu_baseCursor(context) gridContext = session["sessioncontext"]["related"]["gridContext"] # for grid in gridContext: # if grid["@id"] == "courseGrid": # course_id = grid["selectedRecordId"] course_id = main course_edu_base.setRange("course_id",course_id) bases = [] if course_edu_base.count() > 0: for base in course_edu_base.iterate(): bases.append(base.edu_base_id) data = procList(context, session, bases, firstRecord, recordCount) count = procCount(bases) return ResultSelectorData(data.getDataRecordList(), count.getCount()) def procCount(bases): count = len(bases) return ResultSelectorData(None, count) def procList(context, session, bases, firstRecord, recordCount): education_base = education_baseCursor(context) education_base.limit(firstRecord, recordCount) recordList = ArrayList() if bases: for id in bases: rec = DataRecord() education_base.get(id) rec.id = str(id) rec.name = education_base.name recordList.add(rec) return ResultSelectorData(recordList, 0)