def loadChildrenItems(self, group): db = QtGui.qApp.db tableActionType = db.table('ActionType') cond = [ tableActionType['showInForm'].eq(1), tableActionType['deleted'].eq(0) ] if isinstance(group, CActionTypeClassTreeItem): cond.append(tableActionType['class'].eq(group._class)) elif group.id() is None: cond.append(tableActionType['class'].inlist(self._classes)) if self._enabledActionTypeIdList is not None: cond.append(tableActionType['id'].inlist( set(self._enabledActionTypeIdList))) if self._disabledActionTypeIdList: cond.append(tableActionType['id'].notInlist( self._disabledActionTypeIdList)) mapGroupIdToItems = {} mapIdToItems = {} cols = ['id', 'class', 'group_id', 'code', 'name', 'sex', 'age'] for record in db.iterRecordList(tableActionType, cols, cond, order='code'): if recordAcceptable(self._clientSex, self._clientAge, record): id = forceInt(record.value('id')) code = forceStringEx(record.value('code')) name = forceStringEx(record.value('name')) groupId = forceRef(record.value('group_id')) class_ = forceInt(record.value('class')) item = CActionTypeTreeItem(group, id, code, name, self, class_) item._items = [] items = mapGroupIdToItems.setdefault(groupId, []) items.append(item) mapIdToItems[id] = item if not self._leavesVisible: leavesIdSet = set(mapIdToItems.keys()) - set( mapGroupIdToItems.keys()) filterFunc = lambda item: item._id not in leavesIdSet else: filterFunc = None for groupId, items in mapGroupIdToItems.iteritems(): groupItem = mapIdToItems.get(groupId, None) if groupItem: if filterFunc: items = filter(filterFunc, items) for item in items: item._parent = groupItem groupItem._items = items return mapGroupIdToItems.get(group.id(), [])
def recordAcceptable(self, record): return recordAcceptable(self.__clientSex, self.__clientAge, record) and self.recordAcceptableByClientHurt(record)
def recordAcceptable(self, record): return recordAcceptable(self.clientSex, self.clientAge, record)
def prepareActions(self, recommendationList): if recommendationList is None: recommendationList = [] def recordAcceptable(specialityId, sex, age): if specialityId: if specialityId != self.personSpecialityId: return False if sex: if sex != self.clientSex: return False if age: if self.clientAge == None: return False ageSelector = parseAgeSelector(age) return checkAgeSelector(ageSelector, self.clientAge) return True db = QtGui.qApp.db table = db.table('EventType_Action') tableActionType = db.table('ActionType') cond = [table['eventType_id'].eq(self.eventTypeId)] for record in db.getRecordList( table.innerJoin( tableActionType, tableActionType['id'].eq(table['actionType_id'])), 'actionType_id, speciality_id, EventType_Action.sex as sex, EventType_Action.age as age, selectionGroup, isCompulsory, EventType_Action.defaultOrg_id as defaultOrg_id, CONCAT_WS(\'|\', ActionType.code, ActionType.name) AS actionTypeName', cond): actionTypeId = forceRef(record.value('actionType_id')) specialityId = forceRef(record.value('speciality_id')) sex = forceInt(record.value('sex')) age = forceString(record.value('age')) selectionGroup = forceString(record.value('selectionGroup')) notDeleted = forceInt(record.value('isCompulsory')) org_id = forceRef(record.value('defaultOrg_id')) if recordAcceptable(specialityId, sex, age) and selectionGroup > 0: for model in [ self.tabStatus.modelAPActions, self.tabMisc.modelAPActions ]: if notDeleted: model.notDeletedActionTypes[ actionTypeId] = forceString( record.value('actionTypeName')) if actionTypeId in model.actionTypeIdList: model.addRow(actionTypeId) record = model.items()[-1][0] record.setValue('org_id', toVariant(org_id)) break tableActionType = db.table('ActionType') actionTypeIdRecList = [ forceInt(rec.value('actionType_id')) for rec in recommendationList ] records = db.getRecordList( tableActionType, where=tableActionType['id'].inlist(actionTypeIdRecList)) for record in records: actionTypeId = forceInt(record.value('id')) orgId = forceRef(record.value('defaultOrg_id')) for model in [ self.tabStatus.modelAPActions, self.tabMisc.modelAPActions ]: if actionTypeId in model.actionTypeIdList: model.addRow(actionTypeId) record = model.items()[-1][0] record.setValue('org_id', toVariant(orgId))