Files
boxofficefantasy/boxofficefantasy.code-workspace
Anthony Correa 9ddc8663a9 feat: improve draft admin UI, draft state sync, and styling
Major refactor of Draft admin and participant Websocket state sync
Use consistent state dict serialization in DraftStateManager (to_dict, dict-like access, etc.)
Always include up-to-date participants and draft status in sync payloads
Draft phase/order summary now sent as objects instead of calling .get_summary()
UI/UX updates:
Updated DraftAdmin.jsx:
Connects DraftParticipant panel for real-time participant state
Centralizes phase advance, bidding, and sync controls
Moves phase selector into a dedicated panel
Refine markup/extends in room_admin.dj.html (use block body, fix root data attribute)
Minor fixes to DraftCountdownClock.jsx to robustly handle NaN time
CSS/layout:
Refactor .draft-participant styling to .wrapper within #draft-participant-root and #draft-admin-root for better responsive layout and code clarity
Server code:
Simplify draft consumer/manager state interaction, drop unused cache keys, update order determination and phase management, and ensure DRY status object responses
Small code style and consistency cleanups
Misc:
Add debugpy launch task in code-workspace and clean workspace JSON (style/consistency)
Minor formatting and error handling improvements
2025-08-15 11:06:27 -05:00

187 lines
4.9 KiB
Plaintext

{
"folders": [
{
"path": "."
}
],
"launch": {
"version": "0.2.0",
"configurations": [
{
"name": "Debug current file with debugpy",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal",
"justMyCode": false,
"args": [],
"env": {
"PYTHONPATH": "${workspaceFolder}"
}
},
{
"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,
}
}