Files
Trey t 1c61b80731 workout generator audit: rules engine, structure rules, split patterns, injury UX, metadata cleanup
- Add rules_engine.py with quantitative rules for all 8 workout types
- Add quality gate retry loop in generate_single_workout()
- Expand calibrate_structure_rules to all 120 combinations (8 types × 5 goals × 3 sections)
- Wire WeeklySplitPattern DB records into _pick_weekly_split()
- Enforce movement patterns from WorkoutStructureRule in exercise selection
- Add straight-set strength support (single main lift, 4-6 rounds)
- Add modality consistency check for duration-dominant workout types
- Add InjuryStep component to onboarding and preferences
- Add sibling exercise exclusion in regenerate and preview_day endpoints
- Display generator warnings on dashboard
- Expand fix_rep_durations, fix_exercise_flags, fix_movement_pattern_typo
- Add audit_exercise_data and check_rules_drift management commands
- Add Next.js frontend with dashboard, onboarding, preferences, history pages
- Add generator app with ML-powered workout generation pipeline
- 96 new tests across 7 test modules

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-22 20:07:40 -06:00

40 lines
1.5 KiB
Python

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
from django.views.generic.base import TemplateView
from django.shortcuts import HttpResponse
def ipa_plist(request):
f = open('static/ipa/manifest.plist', 'r')
file_content = f.read()
f.close()
return HttpResponse(file_content, content_type="application/x-plist")
urlpatterns = [
path('admin/', admin.site.urls),
path('workout/', include('workout.urls')),
path('exercise/', include('exercise.urls')),
path('muscle/', include('muscle.urls')),
path('equipment/', include('equipment.urls')),
path('registered_user/', include('registered_user.urls')),
path('.well-known/apple-app-site-association', TemplateView.as_view(template_name='frontend/apple-app-site-association', content_type='application/json',)),
path('scripts/', include('scripts.urls')),
path('videos/', include('video.urls')),
path('generator/', include('generator.urls')),
path('app/', TemplateView.as_view(template_name='frontend/download.html')),
path('ipa_plist/', ipa_plist),
] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)
if settings.DEBUG:
import debug_toolbar
urlpatterns += [
path('__debug__/', include(debug_toolbar.urls)),
]
# if settings.DEBUG:
# urlpatterns.append(url(r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT}))