def groupAttendeesForObjects(cls, txn, cobjs): """ Get delegator/group pairs for each of the specified calendar objects. """ # Do a join to get what we need rows = yield Select( list(GroupAttendeeRecord.table) + list(GroupsRecord.table), From=GroupAttendeeRecord.table.join(GroupsRecord.table, GroupAttendeeRecord.groupID == GroupsRecord.groupID), Where=(GroupAttendeeRecord.resourceID.In(Parameter("cobjs", len(cobjs)))) ).on(txn, cobjs=cobjs) results = [] groupAttendeeNames = [GroupAttendeeRecord.__colmap__[column] for column in list(GroupAttendeeRecord.table)] groupsNames = [GroupsRecord.__colmap__[column] for column in list(GroupsRecord.table)] split_point = len(groupAttendeeNames) for row in rows: groupAttendeeRow = row[:split_point] groupAttendeeRecord = GroupAttendeeRecord() groupAttendeeRecord._attributesFromRow(zip(groupAttendeeNames, groupAttendeeRow)) groupAttendeeRecord.transaction = txn groupsRow = row[split_point:] groupsRecord = GroupsRecord() groupsRecord._attributesFromRow(zip(groupsNames, groupsRow)) groupsRecord.transaction = txn results.append((groupAttendeeRecord, groupsRecord,)) returnValue(results)
def groupAttendeesForObjects(cls, txn, cobjs): """ Get delegator/group pairs for each of the specified calendar objects. """ # Do a join to get what we need rows = yield Select( list(GroupAttendeeRecord.table) + list(GroupsRecord.table), From=GroupAttendeeRecord.table.join( GroupsRecord.table, GroupAttendeeRecord.groupID == GroupsRecord.groupID), Where=(GroupAttendeeRecord.resourceID.In( Parameter("cobjs", len(cobjs))))).on(txn, cobjs=cobjs) results = [] groupAttendeeNames = [ GroupAttendeeRecord.__colmap__[column] for column in list(GroupAttendeeRecord.table) ] groupsNames = [ GroupsRecord.__colmap__[column] for column in list(GroupsRecord.table) ] split_point = len(groupAttendeeNames) for row in rows: groupAttendeeRow = row[:split_point] groupAttendeeRecord = GroupAttendeeRecord() groupAttendeeRecord._attributesFromRow( zip(groupAttendeeNames, groupAttendeeRow)) groupAttendeeRecord.transaction = txn groupsRow = row[split_point:] groupsRecord = GroupsRecord() groupsRecord._attributesFromRow(zip(groupsNames, groupsRow)) groupsRecord.transaction = txn results.append(( groupAttendeeRecord, groupsRecord, )) returnValue(results)