zieren / wasted-youth-tracker

Limit kids' time on their (Windows) PC and get a summary of the window titles.
GNU General Public License v3.0
5 stars 0 forks source link

Reduce classes/budgets complexity and make unlocking/overriding easier #56

Closed zieren closed 2 years ago

zieren commented 3 years ago

It is sometimes hard to see which budgets need to be enabled for a given class to be allowed. Ideas:

The complexity is mostly due to budgets overlapping. At the same time this is a nice feature, e.g. to limit games to 1h and one particular game to 30m.

Maybe we should introduce the concept of "sub-budgets" to make the relation explicit and thereby avoid mistakes. This might require making the total budget special. It would remove the possibility of having a budget overlap with multiple other budgets, which however seems unnecessary. It seems a bit like this might actually increase complexity.

zieren commented 3 years ago

We could also simplify unlocking without storing an explicit hierarchy: Simply query all budgets that overlap with the budget in question. Then e.g. show these, or offer to also unlock all of them. Then you would simply unlock the most specific budget and the rest would be automatic.

zieren commented 2 years ago

A simple first attempt could be to just show classes for which all required budgets have either been unlocked or don't need unlocking. Caveat: A zero-time budget, like "forbidden things", would still effectively block, but if it doesn't require unlock then its classes would be shown as available.

zieren commented 2 years ago

We're now showing available classes and time for each. Let's see if that is already good enough. The list is somewhat long; maybe it could be grouped by time left? Many classes have the same time left because it's restricted by the same limit.

zieren commented 2 years ago

I still like the idea of a notification when unlocking a budget that overlaps with a still locked budget. This should be straightforward.

zieren commented 2 years ago

This should be good enough; we can come back to the ideas listed above if necessary.