diff options
| author | Daniel Schadt <kingdread@gmx.de> | 2026-08-12 23:11:24 +0200 |
|---|---|---|
| committer | Daniel Schadt <kingdread@gmx.de> | 2026-08-12 23:11:24 +0200 |
| commit | 8492b351bdaa8b4660691d5c38eb3e8e74dca769 (patch) | |
| tree | 7977cd23960a7b22f0a7aa2c9b517c2311cf8b2c | |
| parent | 7e08e27973be27f4dd65d00ec1eb70dd5a4467c8 (diff) | |
| download | fietsboek-8492b351bdaa8b4660691d5c38eb3e8e74dca769.tar.gz fietsboek-8492b351bdaa8b4660691d5c38eb3e8e74dca769.tar.bz2 fietsboek-8492b351bdaa8b4660691d5c38eb3e8e74dca769.zip | |
fix lints
| -rw-r--r-- | fietsboek/summaries.py | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/fietsboek/summaries.py b/fietsboek/summaries.py index aa8a84c..e3c58e6 100644 --- a/fietsboek/summaries.py +++ b/fietsboek/summaries.py @@ -2,11 +2,10 @@ import datetime from dataclasses import dataclass -from typing import Optional, Iterator +from typing import Iterator, Optional from babel.dates import format_date from pyramid.i18n import Localizer -from pyramid.i18n import TranslationString as _ from . import util from .models.track import TrackWithMetadata @@ -310,23 +309,42 @@ class YearContributions: self.start_date -= datetime.timedelta(days=end_date.weekday()) assert (self.start_date - self.end_date).days <= 53 * 7 - self.tracks = {} + self.tracks: dict[datetime.date, list[TrackWithMetadata]] = {} def add(self, track: TrackWithMetadata): + """Adds a track to this overview. + + :param track: The track to add. + """ + if track.date is None: + return date = track.date.date() - if date >= self.start_date and date <= self.end_date: + if self.start_date <= date <= self.end_date: self.tracks.setdefault(date, []).append(track) def rows(self) -> Iterator[Iterator[DayContributions]]: + """Returns the rows for the overview table. + + Each row is a list of the cells. Seven rows will be returned, one for each weekday. + + :return: An iterator over the rows to render. + """ for weekday in range(7): row = [] day = self.start_date + datetime.timedelta(days=weekday) while day <= self.end_date: row.append(DayContributions(day, self.tracks.get(day, []))) day += ONE_WEEK - yield row + yield iter(row) def header_row(self, localizer: Localizer) -> Iterator[str | None]: + """Returns the header row. + + Each string marks a month name (spanning three columns), and a ``None`` is an empty column. + + :param localizer: The localizer to use. + :return: An iterator over the column headers. + """ locale = localizer.locale_name day = self.start_date while day <= self.end_date: |
