Files
boxofficefantasy/boxofficefantasy.code-workspace
Anthony Correa 9b6b3391e6 Add DRF API app and real-time draft management UI
- Created new `api` Django app with serializers, viewsets, and routers
  to expose draft sessions, participants, and movie data.
- Registered `api` app in settings and updated root URL configuration.
- Extended WebSocket consumers with `inform.draft_status` /
  `request.draft_status` to allow fetching current draft state.
- Updated `DraftSession` and related models to support reverse lookups
  for draft picks.
- Enhanced draft state manager to include `draft_order` in summaries.
- Added React WebSocket context provider, connection status component,
  and new admin/participant panels with phase and participant tracking.
- Updated SCSS for participant lists, phase indicators, and status badges.
- Modified Django templates to mount new React roots for admin and
  participant views.
- Updated Webpack dev server config to proxy WebSocket connections.
2025-08-08 12:50:33 -05:00

176 lines
4.6 KiB
Plaintext

{
"folders": [
{
"path": "."
}
],
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Run Django Server",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["runserver"],
"django": true,
"console": "integratedTerminal",
"envFile": "${workspaceFolder}/.env"
},
{
"name": "Run Uvicorn Django Server",
"type": "debugpy",
"request": "launch",
"module": "uvicorn",
"args": ["boxofficefantasy_project.asgi:application", "--reload",],
"django": true,
"console": "integratedTerminal",
"envFile": "${workspaceFolder}/.env"
},
{
"name": "Start Webpack Dev Server",
"type": "node",
"request": "launch",
"runtimeExecutable": "npm",
"args": [
"run",
"dev"
],
"cwd": "${workspaceFolder}/frontend",
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch Chrome",
"type": "chrome",
"request": "launch",
"url": "http://localhost:3000", // adjust based on your local server
"webRoot": "${workspaceFolder}",
"sourceMaps": true,
"trace": true
},
{
"name": "Debug: Import 2014-2019.csv",
"type": "debugpy",
"request": "launch",
"program": "${workspaceFolder}/manage.py",
"args": ["import_legacy", "./data/2014-2019.csv"],
"django": true,
"console": "integratedTerminal"
}
],
"compounds": [
{
"name": "Django + Chrome + Webpack",
"configurations": ["Run Django Server", "Launch Chrome", "Start Webpack Dev Server"],
"type": "compound"
}
]
},
"tasks": {
"version": "2.0.0",
"tasks": [
{
"label": "Start Redis",
"type": "process",
"command": "docker",
"args": [
"run",
"--rm",
"--name",
"redis-boxofficefantasy-dev",
"-p",
"6379:6379",
"redis"
],
"isBackground": true,
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": false
}
},
{
"label": "🗑️ Delete all Movies",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"args": [
"manage.py",
"shell",
"-c",
"from boxofficefantasy.models import Movie; Movie.objects.all().delete()"
],
"group": "build",
"problemMatcher": []
},
{
"label": "Import 2014-2019.csv",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"args": ["manage.py", "import_legacy", "./data/2014-2019.csv"],
"problemMatcher": []
},
{
"label": "📦 Make Migrations",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"args": ["manage.py", "makemigrations"],
"group": "build",
"problemMatcher": []
},
{
"label": "🔄 Apply Migrations",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"args": ["manage.py", "migrate"],
"group": "build",
"problemMatcher": []
},
{
"label": "Import ",
"type": "shell",
"command": "${config:python.defaultInterpreterPath}",
"args": ["manage.py", "migrate"],
"group": "build",
"problemMatcher": []
},
{
"label": "📦 🔄 Make & Apply Migratations",
"dependsOn": ["📦 Make Migrations", "🔄 Apply Migrations"],
"dependsOrder": "sequence",
"problemMatcher": [],
"group": {
"kind": "build",
"isDefault": true
}
}
]
},
"settings": {
"python.defaultInterpreterPath": "${workspaceFolder}/.venv/bin/python",
"[python]": {
"editor.defaultFormatter": "ms-python.black-formatter"
},
"[django-html]": {
"editor.defaultFormatter": "monosans.djlint",
},
"emmet.includeLanguages": {
"django-html": "html"
},
"files.associations": {
"*.dj.html": "django-html"
},
"files.exclude": {
"**/__pycache__":true,
".venv":false
},
"auto-close-tag.activationOnLanguage": [
"django-html"
],
"terminal.integrated.env.osx": {
"VSCODE_HISTFILE":"${workspaceFolder}/.venv/.term_history"
},
// "html.autoClosingTags": true,
}
}