- 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.
176 lines
4.6 KiB
Plaintext
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,
|
|
}
|
|
}
|