diff --git a/padelnomics/Dockerfile b/padelnomics/Dockerfile index 7101de1..6448efc 100644 --- a/padelnomics/Dockerfile +++ b/padelnomics/Dockerfile @@ -3,9 +3,9 @@ FROM debian:bookworm-slim AS css-build ADD https://github.com/tailwindlabs/tailwindcss/releases/latest/download/tailwindcss-linux-x64 /usr/local/bin/tailwindcss RUN chmod +x /usr/local/bin/tailwindcss WORKDIR /app -COPY src/ ./src/ -RUN tailwindcss -i ./src/padelnomics/static/css/input.css \ - -o ./src/padelnomics/static/css/output.css --minify +COPY web/src/ ./web/src/ +RUN tailwindcss -i ./web/src/padelnomics/static/css/input.css \ + -o ./web/src/padelnomics/static/css/output.css --minify # Build stage FROM python:3.12-slim AS build @@ -13,9 +13,9 @@ COPY --from=ghcr.io/astral-sh/uv:0.8 /uv /uvx /bin/ WORKDIR /app ENV UV_COMPILE_BYTECODE=1 UV_LINK_MODE=copy COPY uv.lock pyproject.toml README.md ./ -COPY src/ ./src/ +COPY web/ ./web/ RUN --mount=type=cache,target=/root/.cache/uv \ - uv sync --no-dev --frozen + uv sync --no-dev --frozen --package padelnomics # Runtime stage FROM python:3.12-slim AS runtime @@ -24,7 +24,7 @@ RUN useradd -m -u 1000 appuser WORKDIR /app RUN mkdir -p /app/data && chown -R appuser:appuser /app COPY --from=build --chown=appuser:appuser /app . -COPY --from=css-build /app/src/padelnomics/static/css/output.css ./src/padelnomics/static/css/output.css +COPY --from=css-build /app/web/src/padelnomics/static/css/output.css ./web/src/padelnomics/static/css/output.css USER appuser ENV PYTHONUNBUFFERED=1 ENV DATABASE_PATH=/app/data/app.db diff --git a/padelnomics/Makefile b/padelnomics/Makefile index a722521..43edd45 100644 --- a/padelnomics/Makefile +++ b/padelnomics/Makefile @@ -6,7 +6,7 @@ bin/tailwindcss: chmod +x bin/tailwindcss css-build: bin/tailwindcss - $(TAILWIND) -i src/padelnomics/static/css/input.css -o src/padelnomics/static/css/output.css --minify + $(TAILWIND) -i web/src/padelnomics/static/css/input.css -o web/src/padelnomics/static/css/output.css --minify css-watch: bin/tailwindcss - $(TAILWIND) -i src/padelnomics/static/css/input.css -o src/padelnomics/static/css/output.css --watch + $(TAILWIND) -i web/src/padelnomics/static/css/input.css -o web/src/padelnomics/static/css/output.css --watch diff --git a/padelnomics/pyproject.toml b/padelnomics/pyproject.toml index f1d67c0..0faf8e2 100644 --- a/padelnomics/pyproject.toml +++ b/padelnomics/pyproject.toml @@ -1,31 +1,10 @@ -[project] -name = "padelnomics" -version = "0.1.0" -description = "Plan, finance, and build your padel business" -readme = "README.md" -requires-python = ">=3.11" -dependencies = [ - "quart>=0.19.0", - "aiosqlite>=0.19.0", - "python-dotenv>=1.0.0", - "itsdangerous>=2.1.0", - "jinja2>=3.1.0", - "hypercorn>=0.17.0", - "paddle-python-sdk>=1.13.0", - "mistune>=3.0.0", - "resend>=2.22.0", - "weasyprint>=68.1", +[tool.uv.workspace] +members = [ + "web", ] -[build-system] -requires = ["hatchling"] -build-backend = "hatchling.build" - -[tool.hatch.build.targets.wheel] -packages = ["src/padelnomics"] - -[tool.uv] -dev-dependencies = [ +[dependency-groups] +dev = [ "hypothesis>=6.151.6", "playwright>=1.58.0", "pytest>=8.0.0", @@ -45,6 +24,6 @@ ignore = ["E501"] [tool.pytest.ini_options] asyncio_mode = "auto" -testpaths = ["tests"] +testpaths = ["web/tests"] markers = ["visual: Playwright visual tests (require browser install)"] addopts = "-m 'not visual'" diff --git a/padelnomics/uv.lock b/padelnomics/uv.lock index f0aa641..dce7f13 100644 --- a/padelnomics/uv.lock +++ b/padelnomics/uv.lock @@ -6,6 +6,22 @@ resolution-markers = [ "python_full_version < '3.13'", ] +[manifest] +members = [ + "padelnomics", +] + +[manifest.dependency-groups] +dev = [ + { name = "hypothesis", specifier = ">=6.151.6" }, + { name = "playwright", specifier = ">=1.58.0" }, + { name = "pytest", specifier = ">=8.0.0" }, + { name = "pytest-asyncio", specifier = ">=0.23.0" }, + { name = "pytest-playwright", specifier = ">=0.7.2" }, + { name = "respx", specifier = ">=0.22.0" }, + { name = "ruff", specifier = ">=0.3.0" }, +] + [[package]] name = "aiofiles" version = "25.1.0" @@ -667,7 +683,7 @@ wheels = [ [[package]] name = "padelnomics" version = "0.1.0" -source = { editable = "." } +source = { editable = "web" } dependencies = [ { name = "aiosqlite" }, { name = "hypercorn" }, @@ -681,17 +697,6 @@ dependencies = [ { name = "weasyprint" }, ] -[package.dev-dependencies] -dev = [ - { name = "hypothesis" }, - { name = "playwright" }, - { name = "pytest" }, - { name = "pytest-asyncio" }, - { name = "pytest-playwright" }, - { name = "respx" }, - { name = "ruff" }, -] - [package.metadata] requires-dist = [ { name = "aiosqlite", specifier = ">=0.19.0" }, @@ -706,17 +711,6 @@ requires-dist = [ { name = "weasyprint", specifier = ">=68.1" }, ] -[package.metadata.requires-dev] -dev = [ - { name = "hypothesis", specifier = ">=6.151.6" }, - { name = "playwright", specifier = ">=1.58.0" }, - { name = "pytest", specifier = ">=8.0.0" }, - { name = "pytest-asyncio", specifier = ">=0.23.0" }, - { name = "pytest-playwright", specifier = ">=0.7.2" }, - { name = "respx", specifier = ">=0.22.0" }, - { name = "ruff", specifier = ">=0.3.0" }, -] - [[package]] name = "pillow" version = "12.1.1" diff --git a/padelnomics/web/pyproject.toml b/padelnomics/web/pyproject.toml new file mode 100644 index 0000000..2ab07a9 --- /dev/null +++ b/padelnomics/web/pyproject.toml @@ -0,0 +1,25 @@ +[project] +name = "padelnomics" +version = "0.1.0" +description = "Plan, finance, and build your padel business" +readme = "../README.md" +requires-python = ">=3.11" +dependencies = [ + "quart>=0.19.0", + "aiosqlite>=0.19.0", + "python-dotenv>=1.0.0", + "itsdangerous>=2.1.0", + "jinja2>=3.1.0", + "hypercorn>=0.17.0", + "paddle-python-sdk>=1.13.0", + "mistune>=3.0.0", + "resend>=2.22.0", + "weasyprint>=68.1", +] + +[build-system] +requires = ["hatchling"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/padelnomics"] diff --git a/padelnomics/scripts/backup.sh b/padelnomics/web/scripts/backup.sh similarity index 100% rename from padelnomics/scripts/backup.sh rename to padelnomics/web/scripts/backup.sh diff --git a/padelnomics/scripts/deploy.sh b/padelnomics/web/scripts/deploy.sh similarity index 100% rename from padelnomics/scripts/deploy.sh rename to padelnomics/web/scripts/deploy.sh diff --git a/padelnomics/scripts/dev_run.sh b/padelnomics/web/scripts/dev_run.sh similarity index 100% rename from padelnomics/scripts/dev_run.sh rename to padelnomics/web/scripts/dev_run.sh diff --git a/padelnomics/scripts/dev_setup.sh b/padelnomics/web/scripts/dev_setup.sh similarity index 100% rename from padelnomics/scripts/dev_setup.sh rename to padelnomics/web/scripts/dev_setup.sh diff --git a/padelnomics/scripts/smoke-test.sh b/padelnomics/web/scripts/smoke-test.sh similarity index 100% rename from padelnomics/scripts/smoke-test.sh rename to padelnomics/web/scripts/smoke-test.sh diff --git a/padelnomics/src/padelnomics/__init__.py b/padelnomics/web/src/padelnomics/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/__init__.py rename to padelnomics/web/src/padelnomics/__init__.py diff --git a/padelnomics/src/padelnomics/admin/routes.py b/padelnomics/web/src/padelnomics/admin/routes.py similarity index 100% rename from padelnomics/src/padelnomics/admin/routes.py rename to padelnomics/web/src/padelnomics/admin/routes.py diff --git a/padelnomics/src/padelnomics/admin/templates/admin/article_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/article_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/article_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/article_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/articles.html b/padelnomics/web/src/padelnomics/admin/templates/admin/articles.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/articles.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/articles.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/base_admin.html b/padelnomics/web/src/padelnomics/admin/templates/admin/base_admin.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/base_admin.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/base_admin.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/feedback.html b/padelnomics/web/src/padelnomics/admin/templates/admin/feedback.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/feedback.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/feedback.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/generate_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/generate_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/generate_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/generate_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/index.html b/padelnomics/web/src/padelnomics/admin/templates/admin/index.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/index.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/index.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/lead_detail.html b/padelnomics/web/src/padelnomics/admin/templates/admin/lead_detail.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/lead_detail.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/lead_detail.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/lead_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/lead_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/lead_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/lead_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/leads.html b/padelnomics/web/src/padelnomics/admin/templates/admin/leads.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/leads.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/leads.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/partials/lead_results.html b/padelnomics/web/src/padelnomics/admin/templates/admin/partials/lead_results.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/partials/lead_results.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/partials/lead_results.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/partials/supplier_results.html b/padelnomics/web/src/padelnomics/admin/templates/admin/partials/supplier_results.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/partials/supplier_results.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/partials/supplier_results.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/scenario_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/scenario_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/scenario_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/scenario_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/scenario_preview.html b/padelnomics/web/src/padelnomics/admin/templates/admin/scenario_preview.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/scenario_preview.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/scenario_preview.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/scenarios.html b/padelnomics/web/src/padelnomics/admin/templates/admin/scenarios.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/scenarios.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/scenarios.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/supplier_detail.html b/padelnomics/web/src/padelnomics/admin/templates/admin/supplier_detail.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/supplier_detail.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/supplier_detail.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/supplier_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/supplier_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/supplier_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/supplier_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/suppliers.html b/padelnomics/web/src/padelnomics/admin/templates/admin/suppliers.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/suppliers.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/suppliers.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/tasks.html b/padelnomics/web/src/padelnomics/admin/templates/admin/tasks.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/tasks.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/tasks.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/template_data.html b/padelnomics/web/src/padelnomics/admin/templates/admin/template_data.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/template_data.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/template_data.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/template_form.html b/padelnomics/web/src/padelnomics/admin/templates/admin/template_form.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/template_form.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/template_form.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/templates.html b/padelnomics/web/src/padelnomics/admin/templates/admin/templates.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/templates.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/templates.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/user_detail.html b/padelnomics/web/src/padelnomics/admin/templates/admin/user_detail.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/user_detail.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/user_detail.html diff --git a/padelnomics/src/padelnomics/admin/templates/admin/users.html b/padelnomics/web/src/padelnomics/admin/templates/admin/users.html similarity index 100% rename from padelnomics/src/padelnomics/admin/templates/admin/users.html rename to padelnomics/web/src/padelnomics/admin/templates/admin/users.html diff --git a/padelnomics/src/padelnomics/app.py b/padelnomics/web/src/padelnomics/app.py similarity index 100% rename from padelnomics/src/padelnomics/app.py rename to padelnomics/web/src/padelnomics/app.py diff --git a/padelnomics/src/padelnomics/auth/routes.py b/padelnomics/web/src/padelnomics/auth/routes.py similarity index 98% rename from padelnomics/src/padelnomics/auth/routes.py rename to padelnomics/web/src/padelnomics/auth/routes.py index 5a8b0f7..705bcac 100644 --- a/padelnomics/src/padelnomics/auth/routes.py +++ b/padelnomics/web/src/padelnomics/auth/routes.py @@ -8,7 +8,15 @@ from pathlib import Path from quart import Blueprint, flash, g, redirect, render_template, request, session, url_for -from ..core import capture_waitlist_email, config, csrf_protect, execute, fetch_one, is_disposable_email, waitlist_gate +from ..core import ( + capture_waitlist_email, + config, + csrf_protect, + execute, + fetch_one, + is_disposable_email, + waitlist_gate, +) from ..i18n import SUPPORTED_LANGS, get_translations # Blueprint with its own template folder diff --git a/padelnomics/src/padelnomics/auth/templates/login.html b/padelnomics/web/src/padelnomics/auth/templates/login.html similarity index 100% rename from padelnomics/src/padelnomics/auth/templates/login.html rename to padelnomics/web/src/padelnomics/auth/templates/login.html diff --git a/padelnomics/src/padelnomics/auth/templates/magic_link_sent.html b/padelnomics/web/src/padelnomics/auth/templates/magic_link_sent.html similarity index 100% rename from padelnomics/src/padelnomics/auth/templates/magic_link_sent.html rename to padelnomics/web/src/padelnomics/auth/templates/magic_link_sent.html diff --git a/padelnomics/src/padelnomics/auth/templates/signup.html b/padelnomics/web/src/padelnomics/auth/templates/signup.html similarity index 100% rename from padelnomics/src/padelnomics/auth/templates/signup.html rename to padelnomics/web/src/padelnomics/auth/templates/signup.html diff --git a/padelnomics/src/padelnomics/auth/templates/waitlist.html b/padelnomics/web/src/padelnomics/auth/templates/waitlist.html similarity index 100% rename from padelnomics/src/padelnomics/auth/templates/waitlist.html rename to padelnomics/web/src/padelnomics/auth/templates/waitlist.html diff --git a/padelnomics/src/padelnomics/auth/templates/waitlist_confirmed.html b/padelnomics/web/src/padelnomics/auth/templates/waitlist_confirmed.html similarity index 100% rename from padelnomics/src/padelnomics/auth/templates/waitlist_confirmed.html rename to padelnomics/web/src/padelnomics/auth/templates/waitlist_confirmed.html diff --git a/padelnomics/src/padelnomics/billing/routes.py b/padelnomics/web/src/padelnomics/billing/routes.py similarity index 100% rename from padelnomics/src/padelnomics/billing/routes.py rename to padelnomics/web/src/padelnomics/billing/routes.py diff --git a/padelnomics/src/padelnomics/billing/templates/pricing.html b/padelnomics/web/src/padelnomics/billing/templates/pricing.html similarity index 100% rename from padelnomics/src/padelnomics/billing/templates/pricing.html rename to padelnomics/web/src/padelnomics/billing/templates/pricing.html diff --git a/padelnomics/src/padelnomics/billing/templates/success.html b/padelnomics/web/src/padelnomics/billing/templates/success.html similarity index 100% rename from padelnomics/src/padelnomics/billing/templates/success.html rename to padelnomics/web/src/padelnomics/billing/templates/success.html diff --git a/padelnomics/src/padelnomics/businessplan.py b/padelnomics/web/src/padelnomics/businessplan.py similarity index 100% rename from padelnomics/src/padelnomics/businessplan.py rename to padelnomics/web/src/padelnomics/businessplan.py diff --git a/padelnomics/src/padelnomics/content/__init__.py b/padelnomics/web/src/padelnomics/content/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/content/__init__.py rename to padelnomics/web/src/padelnomics/content/__init__.py diff --git a/padelnomics/src/padelnomics/content/routes.py b/padelnomics/web/src/padelnomics/content/routes.py similarity index 100% rename from padelnomics/src/padelnomics/content/routes.py rename to padelnomics/web/src/padelnomics/content/routes.py diff --git a/padelnomics/src/padelnomics/content/templates/article_detail.html b/padelnomics/web/src/padelnomics/content/templates/article_detail.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/article_detail.html rename to padelnomics/web/src/padelnomics/content/templates/article_detail.html diff --git a/padelnomics/src/padelnomics/content/templates/markets.html b/padelnomics/web/src/padelnomics/content/templates/markets.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/markets.html rename to padelnomics/web/src/padelnomics/content/templates/markets.html diff --git a/padelnomics/src/padelnomics/content/templates/markets_waitlist.html b/padelnomics/web/src/padelnomics/content/templates/markets_waitlist.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/markets_waitlist.html rename to padelnomics/web/src/padelnomics/content/templates/markets_waitlist.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/market_results.html b/padelnomics/web/src/padelnomics/content/templates/partials/market_results.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/market_results.html rename to padelnomics/web/src/padelnomics/content/templates/partials/market_results.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_capex.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_capex.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_capex.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_capex.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_cashflow.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_cashflow.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_cashflow.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_cashflow.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_full.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_full.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_full.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_full.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_operating.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_operating.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_operating.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_operating.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_returns.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_returns.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_returns.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_returns.html diff --git a/padelnomics/src/padelnomics/content/templates/partials/scenario_summary.html b/padelnomics/web/src/padelnomics/content/templates/partials/scenario_summary.html similarity index 100% rename from padelnomics/src/padelnomics/content/templates/partials/scenario_summary.html rename to padelnomics/web/src/padelnomics/content/templates/partials/scenario_summary.html diff --git a/padelnomics/src/padelnomics/core.py b/padelnomics/web/src/padelnomics/core.py similarity index 100% rename from padelnomics/src/padelnomics/core.py rename to padelnomics/web/src/padelnomics/core.py diff --git a/padelnomics/src/padelnomics/credits.py b/padelnomics/web/src/padelnomics/credits.py similarity index 100% rename from padelnomics/src/padelnomics/credits.py rename to padelnomics/web/src/padelnomics/credits.py diff --git a/padelnomics/src/padelnomics/dashboard/routes.py b/padelnomics/web/src/padelnomics/dashboard/routes.py similarity index 100% rename from padelnomics/src/padelnomics/dashboard/routes.py rename to padelnomics/web/src/padelnomics/dashboard/routes.py diff --git a/padelnomics/src/padelnomics/dashboard/templates/index.html b/padelnomics/web/src/padelnomics/dashboard/templates/index.html similarity index 100% rename from padelnomics/src/padelnomics/dashboard/templates/index.html rename to padelnomics/web/src/padelnomics/dashboard/templates/index.html diff --git a/padelnomics/src/padelnomics/dashboard/templates/settings.html b/padelnomics/web/src/padelnomics/dashboard/templates/settings.html similarity index 100% rename from padelnomics/src/padelnomics/dashboard/templates/settings.html rename to padelnomics/web/src/padelnomics/dashboard/templates/settings.html diff --git a/padelnomics/src/padelnomics/directory/__init__.py b/padelnomics/web/src/padelnomics/directory/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/directory/__init__.py rename to padelnomics/web/src/padelnomics/directory/__init__.py diff --git a/padelnomics/src/padelnomics/directory/routes.py b/padelnomics/web/src/padelnomics/directory/routes.py similarity index 100% rename from padelnomics/src/padelnomics/directory/routes.py rename to padelnomics/web/src/padelnomics/directory/routes.py diff --git a/padelnomics/src/padelnomics/directory/templates/directory.html b/padelnomics/web/src/padelnomics/directory/templates/directory.html similarity index 100% rename from padelnomics/src/padelnomics/directory/templates/directory.html rename to padelnomics/web/src/padelnomics/directory/templates/directory.html diff --git a/padelnomics/src/padelnomics/directory/templates/partials/enquiry_result.html b/padelnomics/web/src/padelnomics/directory/templates/partials/enquiry_result.html similarity index 100% rename from padelnomics/src/padelnomics/directory/templates/partials/enquiry_result.html rename to padelnomics/web/src/padelnomics/directory/templates/partials/enquiry_result.html diff --git a/padelnomics/src/padelnomics/directory/templates/partials/results.html b/padelnomics/web/src/padelnomics/directory/templates/partials/results.html similarity index 100% rename from padelnomics/src/padelnomics/directory/templates/partials/results.html rename to padelnomics/web/src/padelnomics/directory/templates/partials/results.html diff --git a/padelnomics/src/padelnomics/directory/templates/supplier_detail.html b/padelnomics/web/src/padelnomics/directory/templates/supplier_detail.html similarity index 100% rename from padelnomics/src/padelnomics/directory/templates/supplier_detail.html rename to padelnomics/web/src/padelnomics/directory/templates/supplier_detail.html diff --git a/padelnomics/src/padelnomics/i18n.py b/padelnomics/web/src/padelnomics/i18n.py similarity index 100% rename from padelnomics/src/padelnomics/i18n.py rename to padelnomics/web/src/padelnomics/i18n.py diff --git a/padelnomics/src/padelnomics/leads/routes.py b/padelnomics/web/src/padelnomics/leads/routes.py similarity index 99% rename from padelnomics/src/padelnomics/leads/routes.py rename to padelnomics/web/src/padelnomics/leads/routes.py index e9ca857..5455346 100644 --- a/padelnomics/src/padelnomics/leads/routes.py +++ b/padelnomics/web/src/padelnomics/leads/routes.py @@ -18,7 +18,15 @@ from ..auth.routes import ( mark_token_used, update_user, ) -from ..core import config, csrf_protect, execute, fetch_one, is_disposable_email, is_plausible_phone, send_email +from ..core import ( + config, + csrf_protect, + execute, + fetch_one, + is_disposable_email, + is_plausible_phone, + send_email, +) from ..i18n import get_translations bp = Blueprint( diff --git a/padelnomics/src/padelnomics/leads/templates/financing.html b/padelnomics/web/src/padelnomics/leads/templates/financing.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/financing.html rename to padelnomics/web/src/padelnomics/leads/templates/financing.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_1.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_1.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_1.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_1.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_2.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_2.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_2.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_2.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_3.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_3.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_3.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_3.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_4.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_4.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_4.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_4.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_5.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_5.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_5.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_5.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_6.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_6.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_6.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_6.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_7.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_7.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_7.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_7.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_8.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_8.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_8.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_8.html diff --git a/padelnomics/src/padelnomics/leads/templates/partials/quote_step_9.html b/padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_9.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/partials/quote_step_9.html rename to padelnomics/web/src/padelnomics/leads/templates/partials/quote_step_9.html diff --git a/padelnomics/src/padelnomics/leads/templates/quote_request.html b/padelnomics/web/src/padelnomics/leads/templates/quote_request.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/quote_request.html rename to padelnomics/web/src/padelnomics/leads/templates/quote_request.html diff --git a/padelnomics/src/padelnomics/leads/templates/quote_submitted.html b/padelnomics/web/src/padelnomics/leads/templates/quote_submitted.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/quote_submitted.html rename to padelnomics/web/src/padelnomics/leads/templates/quote_submitted.html diff --git a/padelnomics/src/padelnomics/leads/templates/quote_verify_sent.html b/padelnomics/web/src/padelnomics/leads/templates/quote_verify_sent.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/quote_verify_sent.html rename to padelnomics/web/src/padelnomics/leads/templates/quote_verify_sent.html diff --git a/padelnomics/src/padelnomics/leads/templates/suppliers.html b/padelnomics/web/src/padelnomics/leads/templates/suppliers.html similarity index 100% rename from padelnomics/src/padelnomics/leads/templates/suppliers.html rename to padelnomics/web/src/padelnomics/leads/templates/suppliers.html diff --git a/padelnomics/src/padelnomics/locales/de.json b/padelnomics/web/src/padelnomics/locales/de.json similarity index 100% rename from padelnomics/src/padelnomics/locales/de.json rename to padelnomics/web/src/padelnomics/locales/de.json diff --git a/padelnomics/src/padelnomics/locales/en.json b/padelnomics/web/src/padelnomics/locales/en.json similarity index 100% rename from padelnomics/src/padelnomics/locales/en.json rename to padelnomics/web/src/padelnomics/locales/en.json diff --git a/padelnomics/src/padelnomics/migrations/migrate.py b/padelnomics/web/src/padelnomics/migrations/migrate.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/migrate.py rename to padelnomics/web/src/padelnomics/migrations/migrate.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0000_initial_schema.py b/padelnomics/web/src/padelnomics/migrations/versions/0000_initial_schema.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0000_initial_schema.py rename to padelnomics/web/src/padelnomics/migrations/versions/0000_initial_schema.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0001_rename_ls_to_paddle.py b/padelnomics/web/src/padelnomics/migrations/versions/0001_rename_ls_to_paddle.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0001_rename_ls_to_paddle.py rename to padelnomics/web/src/padelnomics/migrations/versions/0001_rename_ls_to_paddle.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0002_expand_lead_requests.py b/padelnomics/web/src/padelnomics/migrations/versions/0002_expand_lead_requests.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0002_expand_lead_requests.py rename to padelnomics/web/src/padelnomics/migrations/versions/0002_expand_lead_requests.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0003_add_stakeholder_type.py b/padelnomics/web/src/padelnomics/migrations/versions/0003_add_stakeholder_type.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0003_add_stakeholder_type.py rename to padelnomics/web/src/padelnomics/migrations/versions/0003_add_stakeholder_type.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0004_create_suppliers.py b/padelnomics/web/src/padelnomics/migrations/versions/0004_create_suppliers.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0004_create_suppliers.py rename to padelnomics/web/src/padelnomics/migrations/versions/0004_create_suppliers.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0005_add_supplier_tiers.py b/padelnomics/web/src/padelnomics/migrations/versions/0005_add_supplier_tiers.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0005_add_supplier_tiers.py rename to padelnomics/web/src/padelnomics/migrations/versions/0005_add_supplier_tiers.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0006_add_verified_at_to_leads.py b/padelnomics/web/src/padelnomics/migrations/versions/0006_add_verified_at_to_leads.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0006_add_verified_at_to_leads.py rename to padelnomics/web/src/padelnomics/migrations/versions/0006_add_verified_at_to_leads.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0007_phase1_credits_and_forwarding.py b/padelnomics/web/src/padelnomics/migrations/versions/0007_phase1_credits_and_forwarding.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0007_phase1_credits_and_forwarding.py rename to padelnomics/web/src/padelnomics/migrations/versions/0007_phase1_credits_and_forwarding.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0008_phase2_analytics_and_exports.py b/padelnomics/web/src/padelnomics/migrations/versions/0008_phase2_analytics_and_exports.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0008_phase2_analytics_and_exports.py rename to padelnomics/web/src/padelnomics/migrations/versions/0008_phase2_analytics_and_exports.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0009_add_boost_metadata.py b/padelnomics/web/src/padelnomics/migrations/versions/0009_add_boost_metadata.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0009_add_boost_metadata.py rename to padelnomics/web/src/padelnomics/migrations/versions/0009_add_boost_metadata.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0010_add_content_tables.py b/padelnomics/web/src/padelnomics/migrations/versions/0010_add_content_tables.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0010_add_content_tables.py rename to padelnomics/web/src/padelnomics/migrations/versions/0010_add_content_tables.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0011_add_rbac_and_billing_customers.py b/padelnomics/web/src/padelnomics/migrations/versions/0011_add_rbac_and_billing_customers.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0011_add_rbac_and_billing_customers.py rename to padelnomics/web/src/padelnomics/migrations/versions/0011_add_rbac_and_billing_customers.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0012_add_basic_tier_fields.py b/padelnomics/web/src/padelnomics/migrations/versions/0012_add_basic_tier_fields.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0012_add_basic_tier_fields.py rename to padelnomics/web/src/padelnomics/migrations/versions/0012_add_basic_tier_fields.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0013_add_cover_image.py b/padelnomics/web/src/padelnomics/migrations/versions/0013_add_cover_image.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0013_add_cover_image.py rename to padelnomics/web/src/padelnomics/migrations/versions/0013_add_cover_image.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0014_add_waitlist.py b/padelnomics/web/src/padelnomics/migrations/versions/0014_add_waitlist.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0014_add_waitlist.py rename to padelnomics/web/src/padelnomics/migrations/versions/0014_add_waitlist.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0015_add_resend_audiences.py b/padelnomics/web/src/padelnomics/migrations/versions/0015_add_resend_audiences.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0015_add_resend_audiences.py rename to padelnomics/web/src/padelnomics/migrations/versions/0015_add_resend_audiences.py diff --git a/padelnomics/src/padelnomics/migrations/versions/0016_feedback_umami_contact.py b/padelnomics/web/src/padelnomics/migrations/versions/0016_feedback_umami_contact.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/0016_feedback_umami_contact.py rename to padelnomics/web/src/padelnomics/migrations/versions/0016_feedback_umami_contact.py diff --git a/padelnomics/src/padelnomics/migrations/versions/__init__.py b/padelnomics/web/src/padelnomics/migrations/versions/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/migrations/versions/__init__.py rename to padelnomics/web/src/padelnomics/migrations/versions/__init__.py diff --git a/padelnomics/src/padelnomics/planner/calculator.py b/padelnomics/web/src/padelnomics/planner/calculator.py similarity index 100% rename from padelnomics/src/padelnomics/planner/calculator.py rename to padelnomics/web/src/padelnomics/planner/calculator.py diff --git a/padelnomics/src/padelnomics/planner/routes.py b/padelnomics/web/src/padelnomics/planner/routes.py similarity index 100% rename from padelnomics/src/padelnomics/planner/routes.py rename to padelnomics/web/src/padelnomics/planner/routes.py diff --git a/padelnomics/src/padelnomics/planner/templates/export.html b/padelnomics/web/src/padelnomics/planner/templates/export.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/export.html rename to padelnomics/web/src/padelnomics/planner/templates/export.html diff --git a/padelnomics/src/padelnomics/planner/templates/export_generating.html b/padelnomics/web/src/padelnomics/planner/templates/export_generating.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/export_generating.html rename to padelnomics/web/src/padelnomics/planner/templates/export_generating.html diff --git a/padelnomics/src/padelnomics/planner/templates/export_success.html b/padelnomics/web/src/padelnomics/planner/templates/export_success.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/export_success.html rename to padelnomics/web/src/padelnomics/planner/templates/export_success.html diff --git a/padelnomics/src/padelnomics/planner/templates/export_waitlist.html b/padelnomics/web/src/padelnomics/planner/templates/export_waitlist.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/export_waitlist.html rename to padelnomics/web/src/padelnomics/planner/templates/export_waitlist.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/calculate_response.html b/padelnomics/web/src/padelnomics/planner/templates/partials/calculate_response.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/calculate_response.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/calculate_response.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/court_summary.html b/padelnomics/web/src/padelnomics/planner/templates/partials/court_summary.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/court_summary.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/court_summary.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/scenario_list.html b/padelnomics/web/src/padelnomics/planner/templates/partials/scenario_list.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/scenario_list.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/scenario_list.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/tab_capex.html b/padelnomics/web/src/padelnomics/planner/templates/partials/tab_capex.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/tab_capex.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/tab_capex.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/tab_cashflow.html b/padelnomics/web/src/padelnomics/planner/templates/partials/tab_cashflow.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/tab_cashflow.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/tab_cashflow.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/tab_metrics.html b/padelnomics/web/src/padelnomics/planner/templates/partials/tab_metrics.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/tab_metrics.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/tab_metrics.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/tab_operating.html b/padelnomics/web/src/padelnomics/planner/templates/partials/tab_operating.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/tab_operating.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/tab_operating.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/tab_returns.html b/padelnomics/web/src/padelnomics/planner/templates/partials/tab_returns.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/tab_returns.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/tab_returns.html diff --git a/padelnomics/src/padelnomics/planner/templates/partials/wizard_preview.html b/padelnomics/web/src/padelnomics/planner/templates/partials/wizard_preview.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/partials/wizard_preview.html rename to padelnomics/web/src/padelnomics/planner/templates/partials/wizard_preview.html diff --git a/padelnomics/src/padelnomics/planner/templates/planner.html b/padelnomics/web/src/padelnomics/planner/templates/planner.html similarity index 100% rename from padelnomics/src/padelnomics/planner/templates/planner.html rename to padelnomics/web/src/padelnomics/planner/templates/planner.html diff --git a/padelnomics/src/padelnomics/public/routes.py b/padelnomics/web/src/padelnomics/public/routes.py similarity index 100% rename from padelnomics/src/padelnomics/public/routes.py rename to padelnomics/web/src/padelnomics/public/routes.py diff --git a/padelnomics/src/padelnomics/public/templates/about.html b/padelnomics/web/src/padelnomics/public/templates/about.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/about.html rename to padelnomics/web/src/padelnomics/public/templates/about.html diff --git a/padelnomics/src/padelnomics/public/templates/features.html b/padelnomics/web/src/padelnomics/public/templates/features.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/features.html rename to padelnomics/web/src/padelnomics/public/templates/features.html diff --git a/padelnomics/src/padelnomics/public/templates/imprint_de.html b/padelnomics/web/src/padelnomics/public/templates/imprint_de.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/imprint_de.html rename to padelnomics/web/src/padelnomics/public/templates/imprint_de.html diff --git a/padelnomics/src/padelnomics/public/templates/imprint_en.html b/padelnomics/web/src/padelnomics/public/templates/imprint_en.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/imprint_en.html rename to padelnomics/web/src/padelnomics/public/templates/imprint_en.html diff --git a/padelnomics/src/padelnomics/public/templates/landing.html b/padelnomics/web/src/padelnomics/public/templates/landing.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/landing.html rename to padelnomics/web/src/padelnomics/public/templates/landing.html diff --git a/padelnomics/src/padelnomics/public/templates/privacy_de.html b/padelnomics/web/src/padelnomics/public/templates/privacy_de.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/privacy_de.html rename to padelnomics/web/src/padelnomics/public/templates/privacy_de.html diff --git a/padelnomics/src/padelnomics/public/templates/privacy_en.html b/padelnomics/web/src/padelnomics/public/templates/privacy_en.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/privacy_en.html rename to padelnomics/web/src/padelnomics/public/templates/privacy_en.html diff --git a/padelnomics/src/padelnomics/public/templates/suppliers.html b/padelnomics/web/src/padelnomics/public/templates/suppliers.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/suppliers.html rename to padelnomics/web/src/padelnomics/public/templates/suppliers.html diff --git a/padelnomics/src/padelnomics/public/templates/terms_de.html b/padelnomics/web/src/padelnomics/public/templates/terms_de.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/terms_de.html rename to padelnomics/web/src/padelnomics/public/templates/terms_de.html diff --git a/padelnomics/src/padelnomics/public/templates/terms_en.html b/padelnomics/web/src/padelnomics/public/templates/terms_en.html similarity index 100% rename from padelnomics/src/padelnomics/public/templates/terms_en.html rename to padelnomics/web/src/padelnomics/public/templates/terms_en.html diff --git a/padelnomics/src/padelnomics/scripts/__init__.py b/padelnomics/web/src/padelnomics/scripts/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/scripts/__init__.py rename to padelnomics/web/src/padelnomics/scripts/__init__.py diff --git a/padelnomics/src/padelnomics/scripts/seed_content.py b/padelnomics/web/src/padelnomics/scripts/seed_content.py similarity index 100% rename from padelnomics/src/padelnomics/scripts/seed_content.py rename to padelnomics/web/src/padelnomics/scripts/seed_content.py diff --git a/padelnomics/src/padelnomics/scripts/seed_dev_data.py b/padelnomics/web/src/padelnomics/scripts/seed_dev_data.py similarity index 100% rename from padelnomics/src/padelnomics/scripts/seed_dev_data.py rename to padelnomics/web/src/padelnomics/scripts/seed_dev_data.py diff --git a/padelnomics/src/padelnomics/scripts/setup_paddle.py b/padelnomics/web/src/padelnomics/scripts/setup_paddle.py similarity index 100% rename from padelnomics/src/padelnomics/scripts/setup_paddle.py rename to padelnomics/web/src/padelnomics/scripts/setup_paddle.py diff --git a/padelnomics/src/padelnomics/static/css/input.css b/padelnomics/web/src/padelnomics/static/css/input.css similarity index 100% rename from padelnomics/src/padelnomics/static/css/input.css rename to padelnomics/web/src/padelnomics/static/css/input.css diff --git a/padelnomics/src/padelnomics/static/css/planner.css b/padelnomics/web/src/padelnomics/static/css/planner.css similarity index 100% rename from padelnomics/src/padelnomics/static/css/planner.css rename to padelnomics/web/src/padelnomics/static/css/planner.css diff --git a/padelnomics/src/padelnomics/static/fonts/CommitMono-400-Regular.woff2 b/padelnomics/web/src/padelnomics/static/fonts/CommitMono-400-Regular.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/CommitMono-400-Regular.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/CommitMono-400-Regular.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/CommitMono-700-Regular.woff2 b/padelnomics/web/src/padelnomics/static/fonts/CommitMono-700-Regular.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/CommitMono-700-Regular.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/CommitMono-700-Regular.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/CommitMono-LICENSE.txt b/padelnomics/web/src/padelnomics/static/fonts/CommitMono-LICENSE.txt similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/CommitMono-LICENSE.txt rename to padelnomics/web/src/padelnomics/static/fonts/CommitMono-LICENSE.txt diff --git a/padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-latin-ext.woff2 b/padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-latin-ext.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-latin-ext.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-latin-ext.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-latin.woff2 b/padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-latin.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-latin.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-latin.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-vietnamese.woff2 b/padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-vietnamese.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/bricolage-grotesque-vietnamese.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/bricolage-grotesque-vietnamese.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/dm-sans-latin-ext.woff2 b/padelnomics/web/src/padelnomics/static/fonts/dm-sans-latin-ext.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/dm-sans-latin-ext.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/dm-sans-latin-ext.woff2 diff --git a/padelnomics/src/padelnomics/static/fonts/dm-sans-latin.woff2 b/padelnomics/web/src/padelnomics/static/fonts/dm-sans-latin.woff2 similarity index 100% rename from padelnomics/src/padelnomics/static/fonts/dm-sans-latin.woff2 rename to padelnomics/web/src/padelnomics/static/fonts/dm-sans-latin.woff2 diff --git a/padelnomics/src/padelnomics/static/images/apple-touch-icon.png b/padelnomics/web/src/padelnomics/static/images/apple-touch-icon.png similarity index 100% rename from padelnomics/src/padelnomics/static/images/apple-touch-icon.png rename to padelnomics/web/src/padelnomics/static/images/apple-touch-icon.png diff --git a/padelnomics/src/padelnomics/static/images/favicon-192.png b/padelnomics/web/src/padelnomics/static/images/favicon-192.png similarity index 100% rename from padelnomics/src/padelnomics/static/images/favicon-192.png rename to padelnomics/web/src/padelnomics/static/images/favicon-192.png diff --git a/padelnomics/src/padelnomics/static/images/favicon-32.png b/padelnomics/web/src/padelnomics/static/images/favicon-32.png similarity index 100% rename from padelnomics/src/padelnomics/static/images/favicon-32.png rename to padelnomics/web/src/padelnomics/static/images/favicon-32.png diff --git a/padelnomics/src/padelnomics/static/images/favicon.ico b/padelnomics/web/src/padelnomics/static/images/favicon.ico similarity index 100% rename from padelnomics/src/padelnomics/static/images/favicon.ico rename to padelnomics/web/src/padelnomics/static/images/favicon.ico diff --git a/padelnomics/src/padelnomics/static/images/favicon.svg b/padelnomics/web/src/padelnomics/static/images/favicon.svg similarity index 100% rename from padelnomics/src/padelnomics/static/images/favicon.svg rename to padelnomics/web/src/padelnomics/static/images/favicon.svg diff --git a/padelnomics/src/padelnomics/static/images/logo.png b/padelnomics/web/src/padelnomics/static/images/logo.png similarity index 100% rename from padelnomics/src/padelnomics/static/images/logo.png rename to padelnomics/web/src/padelnomics/static/images/logo.png diff --git a/padelnomics/src/padelnomics/static/images/planner-screenshot.png b/padelnomics/web/src/padelnomics/static/images/planner-screenshot.png similarity index 100% rename from padelnomics/src/padelnomics/static/images/planner-screenshot.png rename to padelnomics/web/src/padelnomics/static/images/planner-screenshot.png diff --git a/padelnomics/src/padelnomics/static/js/htmx-2.0.4.min.js b/padelnomics/web/src/padelnomics/static/js/htmx-2.0.4.min.js similarity index 100% rename from padelnomics/src/padelnomics/static/js/htmx-2.0.4.min.js rename to padelnomics/web/src/padelnomics/static/js/htmx-2.0.4.min.js diff --git a/padelnomics/src/padelnomics/static/js/planner.js b/padelnomics/web/src/padelnomics/static/js/planner.js similarity index 100% rename from padelnomics/src/padelnomics/static/js/planner.js rename to padelnomics/web/src/padelnomics/static/js/planner.js diff --git a/padelnomics/src/padelnomics/suppliers/__init__.py b/padelnomics/web/src/padelnomics/suppliers/__init__.py similarity index 100% rename from padelnomics/src/padelnomics/suppliers/__init__.py rename to padelnomics/web/src/padelnomics/suppliers/__init__.py diff --git a/padelnomics/src/padelnomics/suppliers/routes.py b/padelnomics/web/src/padelnomics/suppliers/routes.py similarity index 100% rename from padelnomics/src/padelnomics/suppliers/routes.py rename to padelnomics/web/src/padelnomics/suppliers/routes.py diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/dashboard.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/dashboard.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/dashboard.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/dashboard.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/lead_feed.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/lead_feed.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/lead_feed.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/lead_feed.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_boosts.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_boosts.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_boosts.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_boosts.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_leads.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_leads.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_leads.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_leads.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing_preview.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing_preview.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing_preview.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_listing_preview.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_overview.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_overview.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_overview.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/dashboard_overview.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_error.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_error.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_error.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_error.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_unlocked.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_unlocked.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_unlocked.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/lead_card_unlocked.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_1.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_1.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_1.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_1.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_2.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_2.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_2.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_2.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_3.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_3.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_3.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_3.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_4.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_4.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_4.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/partials/signup_step_4.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/signup.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/signup.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/signup.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/signup.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/signup_success.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/signup_success.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/signup_success.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/signup_success.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/waitlist.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/waitlist.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/waitlist.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/waitlist.html diff --git a/padelnomics/src/padelnomics/suppliers/templates/suppliers/waitlist_confirmed.html b/padelnomics/web/src/padelnomics/suppliers/templates/suppliers/waitlist_confirmed.html similarity index 100% rename from padelnomics/src/padelnomics/suppliers/templates/suppliers/waitlist_confirmed.html rename to padelnomics/web/src/padelnomics/suppliers/templates/suppliers/waitlist_confirmed.html diff --git a/padelnomics/src/padelnomics/templates/_cookie_banner.html b/padelnomics/web/src/padelnomics/templates/_cookie_banner.html similarity index 100% rename from padelnomics/src/padelnomics/templates/_cookie_banner.html rename to padelnomics/web/src/padelnomics/templates/_cookie_banner.html diff --git a/padelnomics/src/padelnomics/templates/_paddle.html b/padelnomics/web/src/padelnomics/templates/_paddle.html similarity index 100% rename from padelnomics/src/padelnomics/templates/_paddle.html rename to padelnomics/web/src/padelnomics/templates/_paddle.html diff --git a/padelnomics/src/padelnomics/templates/base.html b/padelnomics/web/src/padelnomics/templates/base.html similarity index 100% rename from padelnomics/src/padelnomics/templates/base.html rename to padelnomics/web/src/padelnomics/templates/base.html diff --git a/padelnomics/src/padelnomics/templates/businessplan/plan.css b/padelnomics/web/src/padelnomics/templates/businessplan/plan.css similarity index 100% rename from padelnomics/src/padelnomics/templates/businessplan/plan.css rename to padelnomics/web/src/padelnomics/templates/businessplan/plan.css diff --git a/padelnomics/src/padelnomics/templates/businessplan/plan.html b/padelnomics/web/src/padelnomics/templates/businessplan/plan.html similarity index 100% rename from padelnomics/src/padelnomics/templates/businessplan/plan.html rename to padelnomics/web/src/padelnomics/templates/businessplan/plan.html diff --git a/padelnomics/src/padelnomics/worker.py b/padelnomics/web/src/padelnomics/worker.py similarity index 100% rename from padelnomics/src/padelnomics/worker.py rename to padelnomics/web/src/padelnomics/worker.py diff --git a/padelnomics/tests/conftest.py b/padelnomics/web/tests/conftest.py similarity index 99% rename from padelnomics/tests/conftest.py rename to padelnomics/web/tests/conftest.py index 3aa257d..f803ebb 100644 --- a/padelnomics/tests/conftest.py +++ b/padelnomics/web/tests/conftest.py @@ -12,7 +12,6 @@ from unittest.mock import AsyncMock, patch import aiosqlite import pytest - from padelnomics import core from padelnomics.app import create_app from padelnomics.migrations.migrate import migrate diff --git a/padelnomics/tests/screenshots/landing_full.png b/padelnomics/web/tests/screenshots/landing_full.png similarity index 100% rename from padelnomics/tests/screenshots/landing_full.png rename to padelnomics/web/tests/screenshots/landing_full.png diff --git a/padelnomics/tests/screenshots/landing_mobile.png b/padelnomics/web/tests/screenshots/landing_mobile.png similarity index 100% rename from padelnomics/tests/screenshots/landing_mobile.png rename to padelnomics/web/tests/screenshots/landing_mobile.png diff --git a/padelnomics/tests/screenshots/login.png b/padelnomics/web/tests/screenshots/login.png similarity index 100% rename from padelnomics/tests/screenshots/login.png rename to padelnomics/web/tests/screenshots/login.png diff --git a/padelnomics/tests/screenshots/signup.png b/padelnomics/web/tests/screenshots/signup.png similarity index 100% rename from padelnomics/tests/screenshots/signup.png rename to padelnomics/web/tests/screenshots/signup.png diff --git a/padelnomics/tests/test_billing_helpers.py b/padelnomics/web/tests/test_billing_helpers.py similarity index 99% rename from padelnomics/tests/test_billing_helpers.py rename to padelnomics/web/tests/test_billing_helpers.py index 22125b6..78a236d 100644 --- a/padelnomics/tests/test_billing_helpers.py +++ b/padelnomics/web/tests/test_billing_helpers.py @@ -5,7 +5,6 @@ import pytest from hypothesis import HealthCheck, given from hypothesis import settings as h_settings from hypothesis import strategies as st - from padelnomics.billing.routes import ( can_access_feature, get_subscription, diff --git a/padelnomics/tests/test_billing_routes.py b/padelnomics/web/tests/test_billing_routes.py similarity index 99% rename from padelnomics/tests/test_billing_routes.py rename to padelnomics/web/tests/test_billing_routes.py index f9f173c..0c29afd 100644 --- a/padelnomics/tests/test_billing_routes.py +++ b/padelnomics/web/tests/test_billing_routes.py @@ -121,9 +121,8 @@ class TestCancelRoute: # subscription_required decorator # ════════════════════════════════════════════════════════════ -from quart import Blueprint # noqa: E402 - from padelnomics.auth.routes import subscription_required # noqa: E402 +from quart import Blueprint # noqa: E402 test_bp = Blueprint("test", __name__) diff --git a/padelnomics/tests/test_billing_webhooks.py b/padelnomics/web/tests/test_billing_webhooks.py similarity index 99% rename from padelnomics/tests/test_billing_webhooks.py rename to padelnomics/web/tests/test_billing_webhooks.py index 1122302..46be363 100644 --- a/padelnomics/tests/test_billing_webhooks.py +++ b/padelnomics/web/tests/test_billing_webhooks.py @@ -9,7 +9,6 @@ from conftest import make_webhook_payload, sign_payload from hypothesis import HealthCheck, given from hypothesis import settings as h_settings from hypothesis import strategies as st - from padelnomics.billing.routes import get_subscription WEBHOOK_PATH = "/billing/webhook/paddle" diff --git a/padelnomics/tests/test_calculator.py b/padelnomics/web/tests/test_calculator.py similarity index 99% rename from padelnomics/tests/test_calculator.py rename to padelnomics/web/tests/test_calculator.py index eb266d2..6e130e1 100644 --- a/padelnomics/tests/test_calculator.py +++ b/padelnomics/web/tests/test_calculator.py @@ -10,7 +10,6 @@ import math import pytest from hypothesis import given, settings from hypothesis import strategies as st - from padelnomics.planner.calculator import ( DEFAULTS, _round, diff --git a/padelnomics/tests/test_content.py b/padelnomics/web/tests/test_content.py similarity index 99% rename from padelnomics/tests/test_content.py rename to padelnomics/web/tests/test_content.py index bf4b6ff..0460353 100644 --- a/padelnomics/tests/test_content.py +++ b/padelnomics/web/tests/test_content.py @@ -12,7 +12,6 @@ from datetime import date, datetime from pathlib import Path import pytest - from padelnomics.content.routes import ( RESERVED_PREFIXES, SCENARIO_RE, diff --git a/padelnomics/tests/test_credits.py b/padelnomics/web/tests/test_credits.py similarity index 99% rename from padelnomics/tests/test_credits.py rename to padelnomics/web/tests/test_credits.py index 17aed3d..054dfbe 100644 --- a/padelnomics/tests/test_credits.py +++ b/padelnomics/web/tests/test_credits.py @@ -6,7 +6,6 @@ Pure SQL operations against real in-memory SQLite — no mocking needed. from datetime import datetime import pytest - from padelnomics.credits import ( InsufficientCredits, add_credits, diff --git a/padelnomics/tests/test_e2e_flows.py b/padelnomics/web/tests/test_e2e_flows.py similarity index 99% rename from padelnomics/tests/test_e2e_flows.py rename to padelnomics/web/tests/test_e2e_flows.py index 0a8a508..315acf5 100644 --- a/padelnomics/tests/test_e2e_flows.py +++ b/padelnomics/web/tests/test_e2e_flows.py @@ -20,11 +20,10 @@ from pathlib import Path from unittest.mock import AsyncMock, patch import pytest -from playwright.sync_api import expect, sync_playwright - from padelnomics import core from padelnomics.app import create_app from padelnomics.migrations.migrate import migrate +from playwright.sync_api import expect, sync_playwright pytestmark = pytest.mark.visual @@ -361,7 +360,7 @@ def test_quote_verify_url_includes_lang(live_server, page): # GET with no token should redirect to login or show error — but should NOT 404 resp = page.goto(live_server + "/en/leads/verify?token=invalid") # Should be 200 (shows error) or a redirect — not 404 - assert resp.status != 404, f"Verify endpoint returned 404 — lang prefix missing?" + assert resp.status != 404, "Verify endpoint returned 404 — lang prefix missing?" # ============================================================================= diff --git a/padelnomics/tests/test_i18n_parity.py b/padelnomics/web/tests/test_i18n_parity.py similarity index 97% rename from padelnomics/tests/test_i18n_parity.py rename to padelnomics/web/tests/test_i18n_parity.py index d70b39b..ed156e6 100644 --- a/padelnomics/tests/test_i18n_parity.py +++ b/padelnomics/web/tests/test_i18n_parity.py @@ -1,8 +1,7 @@ """ Tests that EN and DE locale files are consistent. """ -import pytest -from padelnomics.i18n import _TRANSLATIONS, _CALC_ITEM_NAMES, SUPPORTED_LANGS +from padelnomics.i18n import _CALC_ITEM_NAMES, _TRANSLATIONS, SUPPORTED_LANGS # Keys with identical EN/DE values are acceptable — financial abbreviations, # month abbreviations, English brand names used in German, and UI chrome @@ -90,7 +89,7 @@ def test_no_untranslated_copy_paste(): if en[key] == de[key]: violations.append((key, en[key])) assert not violations, ( - f"Keys with identical EN/DE values (likely untranslated): " + "Keys with identical EN/DE values (likely untranslated): " + ", ".join(f"{k!r}={v!r}" for k, v in violations[:10]) + (f" ... and {len(violations) - 10} more" if len(violations) > 10 else "") ) diff --git a/padelnomics/tests/test_i18n_tips.py b/padelnomics/web/tests/test_i18n_tips.py similarity index 99% rename from padelnomics/tests/test_i18n_tips.py rename to padelnomics/web/tests/test_i18n_tips.py index feb9017..fb24f81 100644 --- a/padelnomics/tests/test_i18n_tips.py +++ b/padelnomics/web/tests/test_i18n_tips.py @@ -6,7 +6,6 @@ German planner because tip_* keys were missing from the DE translation dict. Also covers wiz_summary_label used in the wizard preview summary bar. """ import pytest - from padelnomics.i18n import get_translations EN = get_translations("en") diff --git a/padelnomics/tests/test_migrations.py b/padelnomics/web/tests/test_migrations.py similarity index 99% rename from padelnomics/tests/test_migrations.py rename to padelnomics/web/tests/test_migrations.py index 5c2edeb..83784de 100644 --- a/padelnomics/tests/test_migrations.py +++ b/padelnomics/web/tests/test_migrations.py @@ -11,7 +11,6 @@ from pathlib import Path from unittest.mock import patch import pytest - from padelnomics.migrations.migrate import _discover_versions, migrate VERSIONS_DIR = ( diff --git a/padelnomics/tests/test_phase0.py b/padelnomics/web/tests/test_phase0.py similarity index 99% rename from padelnomics/tests/test_phase0.py rename to padelnomics/web/tests/test_phase0.py index 5f0d0e4..eb06007 100644 --- a/padelnomics/tests/test_phase0.py +++ b/padelnomics/web/tests/test_phase0.py @@ -4,7 +4,6 @@ Phase 0 tests: guest mode, new calculator variables, heat score, quote flow, mig import math import pytest - from padelnomics.leads.routes import calculate_heat_score from padelnomics.planner.calculator import DEFAULTS, calc, validate_state diff --git a/padelnomics/tests/test_planner_charts.py b/padelnomics/web/tests/test_planner_charts.py similarity index 99% rename from padelnomics/tests/test_planner_charts.py rename to padelnomics/web/tests/test_planner_charts.py index d59e2ea..85d1a5f 100644 --- a/padelnomics/tests/test_planner_charts.py +++ b/padelnomics/web/tests/test_planner_charts.py @@ -9,7 +9,6 @@ initCharts() can pass it directly to new Chart(canvas, config). import json import pytest - from padelnomics.planner.calculator import calc, validate_state from padelnomics.planner.routes import augment_d diff --git a/padelnomics/tests/test_planner_routes.py b/padelnomics/web/tests/test_planner_routes.py similarity index 99% rename from padelnomics/tests/test_planner_routes.py rename to padelnomics/web/tests/test_planner_routes.py index 0a0b257..0688080 100644 --- a/padelnomics/tests/test_planner_routes.py +++ b/padelnomics/web/tests/test_planner_routes.py @@ -10,8 +10,6 @@ Regression for: """ import json -import pytest - class TestCalculateEndpoint: async def test_returns_200(self, client): diff --git a/padelnomics/tests/test_quote_wizard.py b/padelnomics/web/tests/test_quote_wizard.py similarity index 99% rename from padelnomics/tests/test_quote_wizard.py rename to padelnomics/web/tests/test_quote_wizard.py index 11b3237..78c6685 100644 --- a/padelnomics/tests/test_quote_wizard.py +++ b/padelnomics/web/tests/test_quote_wizard.py @@ -14,10 +14,9 @@ from pathlib import Path from unittest.mock import AsyncMock, patch import pytest -from playwright.sync_api import expect, sync_playwright - from padelnomics import core from padelnomics.app import create_app +from playwright.sync_api import expect, sync_playwright pytestmark = pytest.mark.visual diff --git a/padelnomics/tests/test_supplier_webhooks.py b/padelnomics/web/tests/test_supplier_webhooks.py similarity index 100% rename from padelnomics/tests/test_supplier_webhooks.py rename to padelnomics/web/tests/test_supplier_webhooks.py diff --git a/padelnomics/tests/test_visual.py b/padelnomics/web/tests/test_visual.py similarity index 99% rename from padelnomics/tests/test_visual.py rename to padelnomics/web/tests/test_visual.py index b3c8dd5..99c2025 100644 --- a/padelnomics/tests/test_visual.py +++ b/padelnomics/web/tests/test_visual.py @@ -19,11 +19,10 @@ from pathlib import Path from unittest.mock import AsyncMock, patch import pytest -from playwright.sync_api import expect, sync_playwright - from padelnomics import core from padelnomics.app import create_app from padelnomics.migrations.migrate import migrate +from playwright.sync_api import expect, sync_playwright pytestmark = pytest.mark.visual diff --git a/padelnomics/tests/test_waitlist.py b/padelnomics/web/tests/test_waitlist.py similarity index 99% rename from padelnomics/tests/test_waitlist.py rename to padelnomics/web/tests/test_waitlist.py index 5abe166..645e8e5 100644 --- a/padelnomics/tests/test_waitlist.py +++ b/padelnomics/web/tests/test_waitlist.py @@ -9,7 +9,6 @@ import sqlite3 from unittest.mock import AsyncMock, patch import pytest - from padelnomics import core from padelnomics.worker import handle_send_waitlist_confirmation