feat: Enhance project and scenario creation with monitoring metrics
Some checks failed
CI / lint (push) Failing after 1m14s
CI / test (push) Has been skipped
CI / build (push) Has been skipped

- Added monitoring metrics for project creation success and error handling in `ProjectRepository`.
- Implemented similar monitoring for scenario creation in `ScenarioRepository`.
- Refactored `run_monte_carlo` function in `simulation.py` to include timing and success/error metrics.
- Introduced new CSS styles for headers, alerts, and navigation buttons in `main.css` and `projects.css`.
- Created a new JavaScript file for navigation logic to handle chevron buttons.
- Updated HTML templates to include new navigation buttons and improved styling for buttons.
- Added tests for reporting service and routes to ensure proper functionality and access control.
- Removed unused imports and optimized existing test files for better clarity and performance.
This commit is contained in:
2025-11-12 10:36:24 +01:00
parent f68321cd04
commit ce9c174b53
61 changed files with 2124 additions and 308 deletions

View File

@@ -15,7 +15,7 @@ from dependencies import (
)
from models import MiningOperationType, Project, ScenarioStatus, User
from schemas.project import ProjectCreate, ProjectRead, ProjectUpdate
from services.exceptions import EntityConflictError, EntityNotFoundError
from services.exceptions import EntityConflictError
from services.pricing import PricingMetadata
from services.unit_of_work import UnitOfWork
@@ -138,7 +138,7 @@ def create_project_submit(
try:
op_type = MiningOperationType(operation_type)
except ValueError as exc:
except ValueError:
return templates.TemplateResponse(
request,
"projects/form.html",
@@ -160,7 +160,7 @@ def create_project_submit(
)
try:
created = _require_project_repo(uow).create(project)
except EntityConflictError as exc:
except EntityConflictError:
return templates.TemplateResponse(
request,
"projects/form.html",
@@ -303,7 +303,7 @@ def edit_project_submit(
if operation_type:
try:
project.operation_type = MiningOperationType(operation_type)
except ValueError as exc:
except ValueError:
return templates.TemplateResponse(
request,
"projects/form.html",