Feature: Habit Tracker with Streak Calculation #1

Closed
Marius wants to merge 26 commits from feature/habit-tracker into master
15 changed files with 3908 additions and 0 deletions
Showing only changes of commit 4acf5d6c9b - Show all commits

View File

@@ -415,9 +415,46 @@ CODEBASE PATTERNS UPDATE:
- dashboard/habits.html (added checkbox CSS and checkHabit function)
- dashboard/test_habits_check_ui.py (created)
[✓] Story 11.0: Frontend - Create habit from form
Commit: 4933847
Date: 2026-02-10
Implementation:
- Enhanced createHabit() async function with complete form submission flow
- Added loading state: button disabled during submission with "Se creează..." text
- Button disabled immediately on submit (before API call)
- Original button text stored and restored on error
- Input field cleared after successful creation (nameInput.value = '')
- Success flow: closes modal, shows success toast, reloads habits list
- Error flow: button re-enabled, modal stays open, shows error toast
- Both API errors (response.ok check) and network errors (catch block) handled
- Error messages displayed to user via toast notifications
- Modal stays open on error so user can retry without re-entering data
- All existing form validation preserved (empty name check, trim validation)
- Enter key submission still works with loading state integration
Tests:
- Created dashboard/test_habits_form_submit.py with 9 comprehensive tests
- Tests for form submission API call (POST /api/habits with name and frequency)
- Tests for loading state (button disabled, text changed to "Se creează...")
- Tests for success behavior (modal closes, list refreshes, input cleared)
- Tests for error behavior (modal stays open, button re-enabled, error shown)
- Tests for input field clearing after successful creation
- Tests for preservation of existing form validation logic
- Tests for modal reset when opened (form cleared)
- Tests for Enter key submission integration
- Tests for all 6 acceptance criteria in summary test
- All 9 tests pass ✓
- All previous tests (schema, API endpoints, HTML, modal, display, check) still pass ✓
Files modified:
- dashboard/habits.html (enhanced createHabit function)
- dashboard/test_habits_form_submit.py (created)
- dashboard/habits.json (reset to empty for testing)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NEXT STEPS:
- Continue with remaining 8 stories
- Continue with remaining 7 stories
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━