def get_offer_list(folder_id = None): if folder_id is None: folders_query=Folder.list() else: folders_query = [] f = Folder.get_by_id(int(folder_id)) if f: folders_query.append(f) courses_query=Course.list_for_enroll() folders= set([]) courses = [] result = [] for course in courses_query: folders.add(course.folder_key) courses.append(course) logging.info(folders) logging.info(courses) for folder in folders_query: fk = str(folder.key()) logging.info('fk:%s'%fk) if fk in folders: logging.info('in') sub_list = [c for c in courses if fk==c.folder_key] result.append({'folder':folder, 'courses':sub_list }) pass return result
def get_offer_list2(): courses_query=Course.list_for_enroll() folder_courses= dict() result = [] for course in courses_query: folder_courses.setdefault(course.folder_key,[]).append(course) result=[] folders_query=Folder.list() for folder in folders_query: if str(folder.key()) in folder_courses: result.append({'folder':folder, 'courses':folder_courses[str(folder.key())]}) logging.info(result) return result