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
This commit is contained in:
@@ -7,6 +7,18 @@
|
||||
"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",
|
||||
@@ -22,7 +34,7 @@
|
||||
"type": "debugpy",
|
||||
"request": "launch",
|
||||
"module": "uvicorn",
|
||||
"args": ["boxofficefantasy_project.asgi:application", "--reload",],
|
||||
"args": ["boxofficefantasy_project.asgi:application", "--reload"],
|
||||
"django": true,
|
||||
"console": "integratedTerminal",
|
||||
"envFile": "${workspaceFolder}/.env"
|
||||
@@ -32,10 +44,7 @@
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"runtimeExecutable": "npm",
|
||||
"args": [
|
||||
"run",
|
||||
"dev"
|
||||
],
|
||||
"args": ["run", "dev"],
|
||||
"cwd": "${workspaceFolder}/frontend",
|
||||
"console": "integratedTerminal",
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
@@ -62,7 +71,11 @@
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Django + Chrome + Webpack",
|
||||
"configurations": ["Run Django Server", "Launch Chrome", "Start Webpack Dev Server"],
|
||||
"configurations": [
|
||||
"Run Django Server",
|
||||
"Launch Chrome",
|
||||
"Start Webpack Dev Server"
|
||||
],
|
||||
"type": "compound"
|
||||
}
|
||||
]
|
||||
@@ -152,7 +165,7 @@
|
||||
"editor.defaultFormatter": "ms-python.black-formatter"
|
||||
},
|
||||
"[django-html]": {
|
||||
"editor.defaultFormatter": "monosans.djlint",
|
||||
"editor.defaultFormatter": "monosans.djlint"
|
||||
},
|
||||
"emmet.includeLanguages": {
|
||||
"django-html": "html"
|
||||
@@ -161,15 +174,13 @@
|
||||
"*.dj.html": "django-html"
|
||||
},
|
||||
"files.exclude": {
|
||||
"**/__pycache__":true,
|
||||
".venv":false
|
||||
"**/__pycache__": true,
|
||||
".venv": false
|
||||
},
|
||||
"auto-close-tag.activationOnLanguage": [
|
||||
"django-html"
|
||||
],
|
||||
"auto-close-tag.activationOnLanguage": ["django-html"],
|
||||
"terminal.integrated.env.osx": {
|
||||
"VSCODE_HISTFILE":"${workspaceFolder}/.venv/.term_history"
|
||||
},
|
||||
"VSCODE_HISTFILE": "${workspaceFolder}/.venv/.term_history"
|
||||
}
|
||||
// "html.autoClosingTags": true,
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user