def update_userannostate_schema(cursor=None): userannostate_list, cursor, more = UserAnnoState.query().fetch_page(BATCH_SIZE, start_cursor=cursor) userannostate_update_list = [] for userannostate in userannostate_list: if not userannostate.tagged: userannostate.tagged = False userannostate_update_list.append(userannostate) if len(userannostate_update_list): ndb.put_multi(userannostate_update_list) if more: update_userannostate_schema(cursor=cursor)
def query_by_my_mentions_for_dashboard(cls, limit, curs, user): query = cls.query() query = query.order(-cls.created) query = filter_anno_by_user(query, user, True) from model.userannostate import UserAnnoState userannostate_list = UserAnnoState.query().filter(ndb.AND(UserAnnoState.user == user.key, UserAnnoState.tagged == True)).fetch() anno_list = [ userannostate.anno.id() for userannostate in userannostate_list] if len(anno_list): query = query.filter(cls.anno_id.IN(anno_list)) annos, next_curs, more = query.fetch_page(limit, start_cursor=curs) items = [entity.to_dashboard_response_message(user) for entity in annos] if more: return AnnoDashboardListMessage(anno_list=items, cursor=next_curs.urlsafe(), has_more=more) else: return AnnoDashboardListMessage(anno_list=items, has_more=more) else: return AnnoDashboardListMessage(anno_list=[])