Commit Graph

299 Commits

Author SHA1 Message Date
Lukáš Kucharczyk ee4efae594 Improve Dockerfile
Major inspiration (aka direct theft) from https://github.com/wemake-services/wemake-django-template
2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk b3eed84e1b Fix .dockerignore 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk eb53a5983c Remove Django admin 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 023736d544 Update dependencies 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 4a990bb6c6 Fix naive date 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk af85607ada isort 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 978714125b Improve time-related stuff
Add created_at to all models
Add modified_at to Session
Get rid of custom now() function
Make sure aware datetime is used everywhere
2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 51ba5cfa20 Improve time-related stuff
Add created_at to all models
Add modified_at to Session
Get rid of custom now() function
Make sure aware datetime is used everywhere
2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk a7dd0c5556 Only allow choosing purchases of selected edition 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 7b2dba7483 Name and related_purchase validation for non-games 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 250fa0ee9d Sort imports, remove cruft 2023-11-18 09:22:26 +01:00
Lukáš Kucharczyk 952961a3ad Fix wrong playrange ordering 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk 1f9b3d5682 Improve how editions and purchases are displayed 2023-11-18 09:22:25 +01:00
Lukáš Kucharczyk c8e8ba8c8e Game View: order editions by year 2023-11-18 09:22:25 +01:00
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