FastAPI + SQLAlchemy/Alembic + MariaDB backend with Jinja2/htmx/Alpine server-rendered frontend. Multi-user via Google OAuth, daily habit tracking, monthly/weekly history views, Web Push reminders via APScheduler, and PWA support (manifest, service worker, offline caching). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
33 lines
1.1 KiB
HTML
33 lines
1.1 KiB
HTML
{% extends "base.html" %}
|
|
{% block title %}습관 관리 · 습관 트래커{% endblock %}
|
|
{% block nav_habits %}active{% endblock %}
|
|
{% block content %}
|
|
<h1>습관 관리</h1>
|
|
|
|
<div class="tabs">
|
|
<a href="/habits?tab=build" class="{{ 'active' if tab == 'build' }}">만들고 싶은 습관</a>
|
|
<a href="/habits?tab=quit" class="{{ 'active' if tab == 'quit' }}">멈추고 싶은 습관</a>
|
|
<a href="/habits?tab=completed" class="{{ 'active' if tab == 'completed' }}">완료된 습관</a>
|
|
</div>
|
|
|
|
{% if tab in ("build", "quit") %}
|
|
{% include "partials/habit_form.html" %}
|
|
{% endif %}
|
|
|
|
<div class="card">
|
|
{% if habits %}
|
|
<div id="habit-list">
|
|
{% for habit in habits %}
|
|
{% include "partials/habit_item.html" %}
|
|
{% endfor %}
|
|
</div>
|
|
{% else %}
|
|
<div class="empty-state">
|
|
{% if tab == "build" %}만들고 싶은 습관이 아직 없어요. 위에서 추가해보세요.
|
|
{% elif tab == "quit" %}끊고 싶은 습관이 아직 없어요. 위에서 추가해보세요.
|
|
{% else %}아직 완료된 습관이 없어요.{% endif %}
|
|
</div>
|
|
{% endif %}
|
|
</div>
|
|
{% endblock %}
|