Esempio n. 1
0
    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)
Esempio n. 2
0
                    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()