def generate_star_ratings(self, username): csv = [] csv.append('Work ID,Edition ID,Rating,Created On') ratings = Ratings.select_all_by_username(username) for rating in ratings: row = [ f"OL{rating['work_id']}W", f"OL{rating['edition_id']}M" if rating['edition_id'] else '', f"{rating['rating']}", rating['created'].strftime(self.date_format) ] csv.append(','.join(row)) return '\n'.join(csv)
yield csv_format.format(**row) return "\n".join(lists_as_csv(lists)) def generate_star_ratings(self, username: str) -> str: def format_rating(rating: Mapping) -> dict: if edition_id := rating.get("edition_id") or "": edition_id = f"OL{edition_id}M" return { "Work ID": f"OL{rating['work_id']}W", "Edition ID": edition_id, "Rating": f"{rating['rating']}", "Created On": rating['created'].strftime(self.date_format), } return csv_string(Ratings.select_all_by_username(username), format_rating) class account_loans(delegate.page): path = "/account/loans" @require_login def GET(self): user = accounts.get_current_user() user.update_loan_status() username = user['key'].split('/')[-1] return MyBooksTemplate(username, 'loans').render()