{% extends "base.html" %} {% from "_when.html" import when_field with context %} {% block title %}Habits ยท {{ app_name }}{% endblock %} {% block body %}
โ{{ voice }}โ
{% if running %}{{ (now - running.started)|dur }} {{ running.activity.icon }} {{ running.activity.title }} ยท since {{ running.started|local('%H:%M') }}
Nothing on the board. Add the first one below โ it takes a name and a rhythm.
{% endif %}| {% for d in ['Mon','Tue','Wed','Thu','Fri','Sat','Sun'] %} | {{ d }} | {% endfor %}week |
|---|---|---|
| {{ a.icon }} {{ a.title }} | {% for c in h.cells %}{%- if c.n %}{% if c.seconds %}{{ (c.seconds / 60)|round|int }}m{% else %}โ{% endif %} {%- elif c.future %}ยท {%- else %}ยท{% endif -%} | {% endfor %}{%- if h.week %}{{ h.week.n }}/{{ h.week.target }}{% else %}{{ h.cells|sum(attribute='n') }}{% endif -%} {%- if h.week_seconds %} {{ h.week_seconds|dur }}{% endif -%} {%- if h.streak and h.streak.current %} ๐ฅ{{ h.streak.current }}{{ h.streak.unit }}{% endif -%} {{ h.verdict.state|replace('_', ' ') }} |
Streaks, totals and the colour on the calendar all come from the same matcher, so this board can never disagree with them. The verdict on each row is your Handler's: consistent earns praise and time off the clock, slacking earns a word โ and, if you set it, minutes on. How it judges โ
{% endif %}A log more than two days old still counts โ streak, calendar, totals โ but earns no XP. Rewards are for showing up today.
{% if habits|selectattr('timed')|list and not running %}Stop it when you're done and the minutes are written for you. Leave the page; it keeps running.
{% endif %} {% else %}Add a habit first.
{% endif %}This is the short form. Colour, matcher and sort order are in Settings โ Activities โ a habit is an activity with a log button, so everything there applies. Want another app to fill it in? Add a calendar feed. Bike day on Mon/Wed/Fri? Give it standing days.
Nothing logged yet.
{% endif %}๐ This module can reach the network โ only to fetch the calendar feeds you add, only on the schedule you set. Nothing configured, nothing fetched. How that is shown โ
{% endif %} {% endblock %} {% block scripts %}{% endblock %}