mirror of
https://github.com/mwisnowski/mtg_python_deckbuilder.git
synced 2025-12-18 00:20:13 +01:00
Merge fix/wizard-enhancements into main for v2.7.1
This commit is contained in:
commit
d48ebc7f13
9 changed files with 34 additions and 21 deletions
|
|
@ -13,7 +13,7 @@
|
||||||
# HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web).
|
# HOST=0.0.0.0 # Uvicorn bind host (only when APP_MODE=web).
|
||||||
# PORT=8080 # Uvicorn port.
|
# PORT=8080 # Uvicorn port.
|
||||||
# WORKERS=1 # Uvicorn worker count.
|
# WORKERS=1 # Uvicorn worker count.
|
||||||
APP_VERSION=v2.7.0 # Matches dockerhub compose.
|
APP_VERSION=v2.7.1 # Matches dockerhub compose.
|
||||||
|
|
||||||
############################
|
############################
|
||||||
# Theming
|
# Theming
|
||||||
|
|
|
||||||
|
|
@ -20,6 +20,14 @@ _No unreleased changes yet._
|
||||||
### Fixed
|
### Fixed
|
||||||
_No unreleased fixes yet._
|
_No unreleased fixes yet._
|
||||||
|
|
||||||
|
## [2.7.1] - 2025-10-14
|
||||||
|
### Summary
|
||||||
|
Quick Build UI refinements for improved desktop display.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Quick Build progress display now uses full desktop width instead of narrow mobile-like layout
|
||||||
|
- Quick Build completion screen properly transitions to full-width Step 5 layout matching manual build experience
|
||||||
|
|
||||||
## [2.7.0] - 2025-10-14
|
## [2.7.0] - 2025-10-14
|
||||||
### Summary
|
### Summary
|
||||||
- Enhanced deck building workflow with improved stage ordering, granular skip controls, and one-click Quick Build automation.
|
- Enhanced deck building workflow with improved stage ordering, granular skip controls, and one-click Quick Build automation.
|
||||||
|
|
|
||||||
|
|
@ -3760,19 +3760,16 @@ def quick_build_progress(request: Request):
|
||||||
logger.info(f"[Progress Poll] sid={sid}, progress={progress is not None}, running={progress.get('running') if progress else None}")
|
logger.info(f"[Progress Poll] sid={sid}, progress={progress is not None}, running={progress.get('running') if progress else None}")
|
||||||
|
|
||||||
if not progress or not progress.get("running"):
|
if not progress or not progress.get("running"):
|
||||||
# Build complete - return Step 5 content + remove the polling div
|
# Build complete - return Step 5 content that replaces the entire wizard container
|
||||||
res = sess.get("last_result")
|
res = sess.get("last_result")
|
||||||
if res and res.get("done"):
|
if res and res.get("done"):
|
||||||
ctx = step5_ctx_from_result(request, sess, res)
|
ctx = step5_ctx_from_result(request, sess, res)
|
||||||
# Render Step 5, then add script to remove polling div
|
# Return Step 5 which will replace the whole wizard div
|
||||||
step5_html = templates.get_template("build/_step5.html").render(ctx)
|
response = templates.TemplateResponse("build/_step5.html", ctx)
|
||||||
# Return Step 5 content + a script that removes the poller and replaces #wizard
|
|
||||||
final_html = f'''
|
|
||||||
{step5_html}
|
|
||||||
<div id="quick-build-poller" hx-swap-oob="outerHTML"></div>
|
|
||||||
'''
|
|
||||||
response = HTMLResponse(final_html)
|
|
||||||
response.set_cookie("sid", sid, httponly=True, samesite="lax")
|
response.set_cookie("sid", sid, httponly=True, samesite="lax")
|
||||||
|
# Tell HTMX to target #wizard and swap outerHTML to replace the container
|
||||||
|
response.headers["HX-Retarget"] = "#wizard"
|
||||||
|
response.headers["HX-Reswap"] = "outerHTML"
|
||||||
return response
|
return response
|
||||||
# Fallback if no result yet
|
# Fallback if no result yet
|
||||||
return HTMLResponse('Build complete. Please refresh.')
|
return HTMLResponse('Build complete. Please refresh.')
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{# Quick Build Progress Indicator - Current Stage + Completed List #}
|
{# Quick Build Progress Indicator - Current Stage + Completed List #}
|
||||||
|
|
||||||
<div id="wizard" class="wizard-container" style="max-width:800px; margin:2rem auto; padding:1rem;">
|
<div id="wizard" class="wizard-container" style="max-width:1200px; margin:2rem auto; padding:2rem;">
|
||||||
<div id="wizard-content">
|
<div id="wizard-content">
|
||||||
{% include "build/_quick_build_progress_content.html" %}
|
{% include "build/_quick_build_progress_content.html" %}
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,15 +1,15 @@
|
||||||
{# Quick Build Progress Content (inner content only, for HTMX updates) #}
|
{# Quick Build Progress Content (inner content only, for HTMX updates) #}
|
||||||
<div class="wizard-header" style="text-align:center; margin-bottom:3rem;">
|
<div class="wizard-header" style="text-align:center; margin-bottom:4rem;">
|
||||||
<h2 style="margin:0 0 .5rem 0;">Automatic Build in Progress</h2>
|
<h2 style="margin:0 0 1rem 0; font-size:32px;">Automatic Build in Progress</h2>
|
||||||
<p class="muted" style="margin:0;">Building your deck automatically without approval steps...</p>
|
<p class="muted" style="margin:0; font-size:16px;">Building your deck automatically without approval steps...</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{# Simplified Phase Indicator #}
|
{# Simplified Phase Indicator #}
|
||||||
<div style="text-align:center; margin:4rem 0; padding:2rem; background:rgba(59,130,246,0.1); border:2px solid rgba(59,130,246,0.3); border-radius:8px;">
|
<div style="text-align:center; margin:6rem auto; max-width:700px; padding:3rem 2rem; background:rgba(59,130,246,0.1); border:2px solid rgba(59,130,246,0.3); border-radius:12px;">
|
||||||
<div style="font-size:12px; text-transform:uppercase; letter-spacing:0.05em; color:#94a3b8; margin-bottom:0.75rem;">Current Phase</div>
|
<div style="font-size:14px; text-transform:uppercase; letter-spacing:0.05em; color:#94a3b8; margin-bottom:1rem;">Current Phase</div>
|
||||||
<div style="font-size:24px; font-weight:600; color:#3b82f6;">{{ current_stage }}</div>
|
<div style="font-size:32px; font-weight:600; color:#3b82f6; line-height:1.3;">{{ current_stage }}</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="muted" style="text-align:center; font-size:12px; margin-top:2rem;">
|
<div class="muted" style="text-align:center; font-size:14px; margin-top:3rem;">
|
||||||
<p style="margin:0;">This may take 10-30 seconds depending on deck complexity...</p>
|
<p style="margin:0;">This may take 10-30 seconds depending on deck complexity...</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ services:
|
||||||
# WEB_THEME_FILTER_PREWARM: "0"
|
# WEB_THEME_FILTER_PREWARM: "0"
|
||||||
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
|
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
|
||||||
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
|
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
|
||||||
APP_VERSION: "2.7.0" # Displayed version label (set per release/tag)
|
APP_VERSION: "2.7.1" # Displayed version label (set per release/tag)
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Misc / Land Selection (Step 7) Environment Tuning
|
# Misc / Land Selection (Step 7) Environment Tuning
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@ services:
|
||||||
# WEB_THEME_FILTER_PREWARM: "0"
|
# WEB_THEME_FILTER_PREWARM: "0"
|
||||||
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
|
WEB_AUTO_ENFORCE: "0" # 1=auto-run compliance export after builds
|
||||||
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
|
WEB_CUSTOM_EXPORT_BASE: "" # Optional: custom base dir for deck export artifacts
|
||||||
APP_VERSION: "2.7.0" # Displayed version label (set per release/tag)
|
APP_VERSION: "2.7.1" # Displayed version label (set per release/tag)
|
||||||
|
|
||||||
# ------------------------------------------------------------------
|
# ------------------------------------------------------------------
|
||||||
# Misc / Land Selection (Step 7) Environment Tuning
|
# Misc / Land Selection (Step 7) Environment Tuning
|
||||||
|
|
|
||||||
8
docs/releases/v2.7.1.md
Normal file
8
docs/releases/v2.7.1.md
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
# MTG Python Deckbuilder v2.7.1
|
||||||
|
|
||||||
|
### Summary
|
||||||
|
Quick Build UI refinements for improved desktop display.
|
||||||
|
|
||||||
|
### Fixed
|
||||||
|
- Quick Build progress display now uses full desktop width instead of narrow mobile-like layout
|
||||||
|
- Quick Build completion screen properly transitions to full-width Step 5 layout matching manual build experience
|
||||||
|
|
@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "mtg-deckbuilder"
|
name = "mtg-deckbuilder"
|
||||||
version = "2.7.0"
|
version = "2.7.1"
|
||||||
description = "A command-line tool for building and analyzing Magic: The Gathering decks"
|
description = "A command-line tool for building and analyzing Magic: The Gathering decks"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = {file = "LICENSE"}
|
license = {file = "LICENSE"}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue