diff --git a/PROJECT.org b/PROJECT.org index 9cb4114..636c411 100644 --- a/PROJECT.org +++ b/PROJECT.org @@ -547,6 +547,81 @@ Examples of trends: *** Description As an example https://comicbookroundup.com/comic-books/reviews/humanoids-publishing/the-history-of-science-fiction +** TODO [#C] Make podcast date format configurable in settings :podcasts:configuration: +:PROPERTIES: +:ID: b01a94f8-328f-41ed-a62e-8b99c755b82d +:END: + +*** Description + +=PODCAST_DATE_FORMAT= is hardcoded to ="YYYY-MM-DD"=. Should be in Django settings or environment variables for deploy-specific configuration. + +File: ~vrobbler/apps/podcasts/utils.py~ (line 13) + +** TODO [#C] Extract zombie scrobble query into custom manager :refactoring:manager: +:PROPERTIES: +:ID: 79c874e1-ca6f-4bce-9259-e3eebdca8a41 +:END: + +*** Description +The zombie scrobble cleanup query lives in a utility function. Should be a +custom model manager method (e.g. =Scrobble.objects.zombies()=). + +File: ~vrobbler/apps/scrobbles/utils.py~ (line 204) + +** TODO [#C] Allow profile to set start of week :profiles:configuration: +:PROPERTIES: +:ID: 0449279a-9550-430e-be0c-816df7273080 +:END: + +*** Description +=start_of_week()= and =end_of_week()= use Monday as default. Should be a user +profile setting for different cultural week start conventions. + +File: ~vrobbler/apps/profiles/utils.py~ (lines 39, 44) + +** TODO [#C] Add constants for data dictionary keys (multiple files) :refactoring:constants: +:PROPERTIES: +:ID: d4415f9b-620a-4be7-925d-fa71c02ba1d1 +:END: + +*** Description +Multiple files use magic string literals for dict keys. Should be extracted to +named constants for maintainability. + +- Files: + - ~vrobbler/apps/locations/models.py~ (line 63) -- ="lat"=, ="lon"= etc. + - ~vrobbler/apps/webpages/models.py~ (line 290) -- ="url"= + - ~vrobbler/apps/scrobbles/importers/tsv.py~ (line 55) -- ="S"= completion status + +** TODO [#A] Fix how long play scrobbles are tracked :scrobbles:longplay:serial: +:PROPERTIES: +:ID: 908b0493-cabf-40c1-825f-cd59a8ad0f7a +:END: + +*** Description + +Currently we have this idea of "long_play" scrobbles but there's a lot missing +to tie it together. + +What we'd prefer is that when a new scrobble is added for a media_type that +`is_long_play` the most recent scrobble finished is added as the +`last_serial_scrobble` to the log data. But all the other long play stuff exsits +as data model fields. We should add `long_play_last_scrobble` as a FK to this +scrobble when creating a new longplay scrobble. + +Additionally, `long_play_seconds` we should have a recompute management command +to walk backward from `long_play_last_scrobble` until a `long_play_complete` +scrobble is found (exclusive) and save the time. + +We should also ony use `long_play_complete` field on the scrobble ... some +logdatas have a similar field, but we should make sure that we always use the +model field to determine if a long play is finished. + +This should include a command to clean up long play data to consolidate around +the `long_play_complete` field. + + ** DONE [#B] Paginate or limite scrobbles on media admin pages :admin:scrobbles:media: :PROPERTIES: :ID: f02e487b-d7ed-4834-838a-303560f2ad3b