From 81830d981b0aef8bd72c6312e600882ad6da5996 Mon Sep 17 00:00:00 2001 From: S4NKALP Date: Mon, 11 May 2026 00:30:04 +0545 Subject: [PATCH] feat(ui): add Vue selection support Add Vue integration via Vite and update UI prompts and metadata- New Features - Introduce `use_vue` flag and corresponding UI confirmation - Expose `get_vue_choice()` method and propagate selection through metadata - Add console output for Vue confirmation in final summary - Enhancements - Update step ordering and comments to reflect Vue/Vite handling - Adjust data flow in code to include Vue option consistently - Bug Fixes - None --- src/djinit/ui/input.py | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/djinit/ui/input.py b/src/djinit/ui/input.py index 76cc968..0f9d4ef 100644 --- a/src/djinit/ui/input.py +++ b/src/djinit/ui/input.py @@ -27,6 +27,7 @@ class StructureOptions(TypedDict): use_htmx: bool use_docker: bool use_vite: bool + use_vue: bool use_pytest: bool use_github: bool use_gitlab: bool @@ -188,6 +189,9 @@ class InputCollector: def get_vite_choice(self) -> bool: return UIFormatter.confirm("Include Vite/React? (via django-vite)", default=True) + def get_vue_choice(self) -> bool: + return UIFormatter.confirm("Include Vite/Vue? (via django-vite)", default=True) + def get_pytest_choice(self) -> bool: return UIFormatter.confirm("Include pytest testing framework? (pytest, coverage)", default=True) @@ -217,6 +221,7 @@ class InputCollector: use_htmx=options.get("use_htmx", False), use_docker=options.get("use_docker", False), use_vite=options.get("use_vite", False), + use_vue=options.get("use_vue", False), use_pytest=options.get("use_pytest", False), predefined_structure=options["predefined"], unified_structure=options["unified"], @@ -285,7 +290,10 @@ def get_user_input() -> Tuple[str, str, str, list, dict]: # Step 5: Vite/React use_vite = collector.get_vite_choice() - # Step 6: pytest + # Step 6: Vite/Vue + use_vue = collector.get_vue_choice() + + # Step 7: pytest use_pytest = collector.get_pytest_choice() # Step 3: Django Apps (Standard only) @@ -315,6 +323,7 @@ def get_user_input() -> Tuple[str, str, str, list, dict]: use_htmx=use_htmx, use_docker=use_docker, use_vite=use_vite, + use_vue=use_vue, use_pytest=use_pytest, ) return project_dir, project_name, app_names[0], app_names, metadata.to_dict() @@ -331,6 +340,7 @@ def get_user_input() -> Tuple[str, str, str, list, dict]: use_htmx=use_htmx, use_docker=use_docker, use_vite=use_vite, + use_vue=use_vue, use_pytest=use_pytest, use_github=use_github, use_gitlab=use_gitlab, @@ -379,6 +389,9 @@ def confirm_setup(project_dir: str, project_name: str, app_names: list, metadata use_pytest = "Yes" if metadata.get("use_pytest", False) else "No" console.print(f"[{UIColors.HIGHLIGHT}]pytest:[/{UIColors.HIGHLIGHT}] {use_pytest}") + use_vue = "Yes" if metadata.get("use_vue", False) else "No" + console.print(f"[{UIColors.HIGHLIGHT}]Vite/Vue:[/{UIColors.HIGHLIGHT}] {use_vue}") + console.print() UIFormatter.print_separator() console.print()