- remove the family app from the root (separate parent accounts, invite codes, parental settings); progress.0006 drops its tables, permissions and migration history, and Profile.parent_phone, the two family notification types and ?userId= on /api/progress/nodes go with it - GET /api/user/weekly-report: last 7 days next to the 7 before (estimated minutes, questions, accuracy, islands, tutor questions) for the "parent report" page - profile birthDate in Jalali (accounts/jalali.py), ages 5-99, birthYear derived from it - GET /api/payment/invoices; orders now snapshot list price and plan title - tutor answers only math: server pre-filter, scope rule in the prompt (tutor-v11), refusal marker replaced with fixed text; self-harm gets a help line instead - streamed answers now record token usage (it was always 0) - daily tutor quota: AI_DAILY_QUOTA_FREE (default 3) vs Plan.ai_daily_quota - delete_users management command for wiping test accounts across every app - docs/ai-cost-and-guardrails.md: measured cost per question and guardrail results Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
22 lines
783 B
Python
22 lines
783 B
Python
from django.urls import path
|
|
|
|
from .views import (
|
|
CharacterListView,
|
|
LeaderboardView,
|
|
SelectCharacterView,
|
|
StreakCalendarView,
|
|
UserHeartsView,
|
|
UserSummaryView,
|
|
WeeklyReportView,
|
|
)
|
|
|
|
urlpatterns = [
|
|
path('user/summary', UserSummaryView.as_view(), name='user-summary'),
|
|
path('user/weekly-report', WeeklyReportView.as_view(), name='user-weekly-report'),
|
|
path('user/streak/calendar', StreakCalendarView.as_view(), name='streak-calendar'),
|
|
path('leaderboard', LeaderboardView.as_view(), name='leaderboard'),
|
|
path('user/hearts', UserHeartsView.as_view(), name='user-hearts'),
|
|
path('characters', CharacterListView.as_view(), name='character-list'),
|
|
path('characters/select', SelectCharacterView.as_view(), name='character-select'),
|
|
]
|