def view_imagesets(): ibs = current_app.ibs filtered = True imgsetid = request.args.get('imgsetid', '') if len(imgsetid) > 0: imgsetid_list = imgsetid.strip().split(',') imgsetid_list = [ None if imgsetid_ == 'None' or imgsetid_ == '' else int(imgsetid_) for imgsetid_ in imgsetid_list ] else: imgsetid_list = ibs.get_valid_imgsetids() filtered = False start_time_posix_list = ibs.get_imageset_start_time_posix(imgsetid_list) datetime_list = [ ut.unixtime_to_datetimestr(start_time_posix) if start_time_posix is not None else 'Unknown' for start_time_posix in start_time_posix_list ] gids_list = [ ibs.get_valid_gids(imgsetid=imgsetid_) for imgsetid_ in imgsetid_list ] aids_list = [ ut.flatten(ibs.get_image_aids(gid_list)) for gid_list in gids_list ] images_reviewed_list = [ appf.imageset_image_processed(ibs, gid_list) for gid_list in gids_list ] annots_reviewed_viewpoint_list = [ appf.imageset_annot_viewpoint_processed(ibs, aid_list) for aid_list in aids_list ] annots_reviewed_quality_list = [ appf.imageset_annot_quality_processed(ibs, aid_list) for aid_list in aids_list ] image_processed_list = [ images_reviewed.count(True) for images_reviewed in images_reviewed_list ] annot_processed_viewpoint_list = [ annots_reviewed.count(True) for annots_reviewed in annots_reviewed_viewpoint_list ] annot_processed_quality_list = [ annots_reviewed.count(True) for annots_reviewed in annots_reviewed_quality_list ] reviewed_list = [ all(images_reviewed) and all(annots_reviewed_viewpoint) and all(annot_processed_quality) for images_reviewed, annots_reviewed_viewpoint, annot_processed_quality in zip(images_reviewed_list, annots_reviewed_viewpoint_list, annots_reviewed_quality_list) ] imageset_list = zip( imgsetid_list, ibs.get_imageset_text(imgsetid_list), ibs.get_imageset_num_gids(imgsetid_list), image_processed_list, ibs.get_imageset_num_aids(imgsetid_list), annot_processed_viewpoint_list, annot_processed_quality_list, start_time_posix_list, datetime_list, reviewed_list, ) imageset_list.sort(key=lambda t: t[7]) return appf.template('view', 'imagesets', filtered=filtered, imgsetid_list=imgsetid_list, imgsetid_list_str=','.join(map(str, imgsetid_list)), num_imgsetids=len(imgsetid_list), imageset_list=imageset_list, num_imagesets=len(imageset_list))
def view_names(): ibs = current_app.ibs filtered = True aid_list = [] imgsetid_list = [] gid_list = [] nid = request.args.get('nid', '') aid = request.args.get('aid', '') gid = request.args.get('gid', '') imgsetid = request.args.get('imgsetid', '') page = max(0, int(request.args.get('page', 1))) if len(nid) > 0: nid_list = nid.strip().split(',') nid_list = [ None if nid_ == 'None' or nid_ == '' else int(nid_) for nid_ in nid_list ] if len(aid) > 0: aid_list = aid.strip().split(',') aid_list = [ None if aid_ == 'None' or aid_ == '' else int(aid_) for aid_ in aid_list ] nid_list = ibs.get_annot_name_rowids(aid_list) elif len(gid) > 0: gid_list = gid.strip().split(',') gid_list = [ None if gid_ == 'None' or gid_ == '' else int(gid_) for gid_ in gid_list ] aid_list = ut.flatten(ibs.get_image_aids(gid_list)) nid_list = ibs.get_annot_name_rowids(aid_list) elif len(imgsetid) > 0: imgsetid_list = imgsetid.strip().split(',') imgsetid_list = [ None if imgsetid_ == 'None' or imgsetid_ == '' else int(imgsetid_) for imgsetid_ in imgsetid_list ] gid_list = ut.flatten([ ibs.get_valid_gids(imgsetid=imgsetid_) for imgsetid_ in imgsetid_list ]) aid_list = ut.flatten(ibs.get_image_aids(gid_list)) nid_list = ibs.get_annot_name_rowids(aid_list) else: nid_list = ibs.get_valid_nids() filtered = False # Page appf.PAGE_SIZE_ = int(appf.PAGE_SIZE / 5) page_start = min(len(nid_list), (page - 1) * appf.PAGE_SIZE_) page_end = min(len(nid_list), page * appf.PAGE_SIZE_) page_total = int(math.ceil(len(nid_list) / appf.PAGE_SIZE_)) page_previous = None if page_start == 0 else page - 1 page_next = None if page_end == len(nid_list) else page + 1 nid_list = nid_list[page_start:page_end] print('[web] Loading Page [ %d -> %d ] (%d), Prev: %s, Next: %s' % (page_start, page_end, len(nid_list), page_previous, page_next, )) aids_list = ibs.get_name_aids(nid_list) annotations_list = [ zip( aid_list_, ibs.get_annot_gids(aid_list_), [ ','.join(map(str, imgsetid_list_)) for imgsetid_list_ in ibs.get_annot_imgsetids(aid_list_) ], ibs.get_annot_image_names(aid_list_), ibs.get_annot_names(aid_list_), ibs.get_annot_exemplar_flags(aid_list_), ibs.get_annot_species_texts(aid_list_), ibs.get_annot_yaw_texts(aid_list_), ibs.get_annot_quality_texts(aid_list_), ibs.get_annot_sex_texts(aid_list_), ibs.get_annot_age_months_est(aid_list_), [ reviewed_viewpoint and reviewed_quality for reviewed_viewpoint, reviewed_quality in zip(appf.imageset_annot_viewpoint_processed(ibs, aid_list_), appf.imageset_annot_quality_processed(ibs, aid_list_)) ], ) for aid_list_ in aids_list ] name_list = zip( nid_list, annotations_list ) name_list.sort(key=lambda t: t[0]) return appf.template('view', 'names', filtered=filtered, imgsetid_list=imgsetid_list, imgsetid_list_str=','.join(map(str, imgsetid_list)), num_imgsetids=len(imgsetid_list), gid_list=gid_list, gid_list_str=','.join(map(str, gid_list)), num_gids=len(gid_list), aid_list=aid_list, aid_list_str=','.join(map(str, aid_list)), num_aids=len(aid_list), nid_list=nid_list, nid_list_str=','.join(map(str, nid_list)), num_nids=len(nid_list), name_list=name_list, num_names=len(name_list), page=page, page_start=page_start, page_end=page_end, page_total=page_total, page_previous=page_previous, page_next=page_next)