Commit Graph

285 Commits

Author SHA1 Message Date
Lukáš Kucharczyk ab9c1d61dd Version 1.5.1 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk d64ad125ff Improve and cleanup ConditionalElementHandler 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 410f20acea Improve purchase __str__ 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk d280fa3798 Disallow choosing non-game purchase as related purchase 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 29d6cb8a4a Version 1.5.0 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk c4fdefadb0 Order purchases by date on game view 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 7ba212e718 Add purchase types 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 7b459a2735 CI: run migrations before tests 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk f0822ff221 Make sure empty stats are 0 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 200819ceb0 Change stats years to 2000 up to current year 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 8a433616c4 Add stat for finished this year's games 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 809e8e2d7c Fix detecting manual durations 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 528b7d78a1 Remove deprecated USE_L10N 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 5270525fc2 Add more tests 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 09faa8e6fd Fix edge case in format_duration
Fixes #65

```python
def test_specific_precise_if_unncessary(self):
        delta = timedelta(hours=2, minutes=40)
        result = format_duration(delta, "%02.0H:%02.0m")
        self.assertEqual(result, "02:40")
```
This test fails by returning "03:40" instead. The problem is in the way `format_duration` handles fractional hours.
To fix it, we need to switch between using hours and fractional hours
depending on if minutes are present in the formatted string.
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 87f50cedd2 Fix ordering 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk cbf872d21f Also prefill year between game and edition 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 881e5df3d1 Version 1.4.0 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk fa6ac21b42 Adding new games is easier 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 01ce582b74 Refactor, remove cruft 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 827279fb3d Add backlog decrease count 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk fa2b9b5c88 Fix sort names getting mangled 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 55ff3cd1a9 Pre-fill year when adding edition 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 68d1bfc2b9 UX improvements
* ignore English articles when sorting names
  * added a new sort_name field that gets automatically created
* automatically fill certain values in forms:
  * new game: name and sort name after typing
  * new edition: name and sort name when selecting game
  * new purchase: platform when selecting edition
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 4112d593f6 Fix hardcoded year 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 553030c08e Order devices alphabetically on new session form 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 06a4319623 Use safe_division in more places 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk cb99d8b656 Fix potential division by zero 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk b8df870cca Add more stats
* Finished (count)
* Unfinished (count)
* Refunded (count)
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 7781efd849 Add more stats
* All finished games
* All finished 2023 games
* All finished games that were purchased this year
* Total sessions
* Days played
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 9fa95758bf stats: change overall stats table layout 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk b81989a352 Model changes
* More fields are now optional. This is to make it easier to add new items in bulk.
  * Game: Wikidata ID
  * Edition: Platform, Year
  * Purchase: Platform
  * Platform: Group
  * Session: Device
* New fields:
  * Game: Year Released
    * To record original year of release
    * Upon migration, this will be set to a year of any of the game's edition that has it set
  * Purchase: Date Finished
* Editions are now unique combination of name and platform
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 5e6a5a4024 simplify playtime range display 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 288bf65afb Version 1.3.0 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 1d0bafd72d Make some pages redirect back instead to session list 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk db9ac2edeb Add more stats 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 2076fe20d1 Extend stats range to 2018 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk ff30962ce9 Remove cruft 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk d06e284426 Group by game instead of purchase 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 1f36a32b3d Reorder imports in views.py 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk e87f985cb3 Remove hardcoded year 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 8ca62f32e3 Make navigation more compact 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 5bc04c463a Add stats link, year selector 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 0130ab0059 Limit stats of single year correctly 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk df5e605582 Version 1.2.0 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk ade8a47c86 Add yearly stats page
Fixes #15
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 4dd6f13160 Add a button to start session from game overview
Fix #62
2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 50f0571144 Add more time tests for fractional numbers 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 3fae309ff2 Do not format as float if no precision specified 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk e0a4aae6f6 Version 1.1.2 2023-11-18 09:22:25 +01:00