- Added FastAPI router for time tracking views including dashboard, wizard, and orders. - Created HTML templates for the time tracking wizard with responsive design and Bootstrap integration. - Developed SQL migration script for the time tracking module, including tables for customers, cases, time entries, orders, and audit logs. - Introduced a script to list all registered routes, focusing on time tracking routes. - Added test script to verify route registration and specifically check for time tracking routes.
76 lines
2.7 KiB
Python
76 lines
2.7 KiB
Python
"""
|
|
Configuration Module
|
|
Handles environment variables and application settings
|
|
"""
|
|
|
|
import os
|
|
from typing import List
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings loaded from environment variables"""
|
|
|
|
# Database
|
|
DATABASE_URL: str = "postgresql://bmc_hub:bmc_hub@localhost:5432/bmc_hub"
|
|
|
|
# API
|
|
API_HOST: str = "0.0.0.0"
|
|
API_PORT: int = 8000
|
|
|
|
# Security
|
|
SECRET_KEY: str = "dev-secret-key-change-in-production"
|
|
ALLOWED_ORIGINS: List[str] = ["http://localhost:8000", "http://localhost:3000"]
|
|
|
|
# Logging
|
|
LOG_LEVEL: str = "INFO"
|
|
LOG_FILE: str = "logs/app.log"
|
|
|
|
# e-conomic Integration
|
|
ECONOMIC_API_URL: str = "https://restapi.e-conomic.com"
|
|
ECONOMIC_APP_SECRET_TOKEN: str = ""
|
|
ECONOMIC_AGREEMENT_GRANT_TOKEN: str = ""
|
|
ECONOMIC_READ_ONLY: bool = True
|
|
ECONOMIC_DRY_RUN: bool = True
|
|
|
|
# vTiger CRM Integration
|
|
VTIGER_URL: str = ""
|
|
VTIGER_USERNAME: str = ""
|
|
VTIGER_API_KEY: str = ""
|
|
VTIGER_PASSWORD: str = "" # Fallback hvis API key ikke virker
|
|
|
|
# Time Tracking Module - vTiger Integration (Isoleret)
|
|
TIMETRACKING_VTIGER_READ_ONLY: bool = True # 🚨 SAFETY: Bloker ALLE skrivninger til vTiger
|
|
TIMETRACKING_VTIGER_DRY_RUN: bool = True # 🚨 SAFETY: Log uden at synkronisere
|
|
|
|
# Time Tracking Module - e-conomic Integration (Isoleret)
|
|
TIMETRACKING_ECONOMIC_READ_ONLY: bool = True # 🚨 SAFETY: Bloker ALLE skrivninger til e-conomic
|
|
TIMETRACKING_ECONOMIC_DRY_RUN: bool = True # 🚨 SAFETY: Log uden at eksportere
|
|
TIMETRACKING_EXPORT_TYPE: str = "draft" # draft|booked (draft er sikrest)
|
|
|
|
# Time Tracking Module - Business Logic
|
|
TIMETRACKING_DEFAULT_HOURLY_RATE: float = 850.00 # DKK pr. time (fallback)
|
|
TIMETRACKING_AUTO_ROUND: bool = False # Auto-afrund til nærmeste 0.5 time
|
|
TIMETRACKING_ROUND_INCREMENT: float = 0.5 # Afrundingsinterval (0.25, 0.5, 1.0)
|
|
TIMETRACKING_REQUIRE_APPROVAL: bool = True # Kræv manuel godkendelse (ikke auto-approve)
|
|
|
|
# Ollama AI Integration
|
|
OLLAMA_ENDPOINT: str = "http://ai_direct.cs.blaahund.dk"
|
|
OLLAMA_MODEL: str = "qwen2.5-coder:7b" # qwen2.5-coder fungerer bedre til JSON udtrækning
|
|
|
|
# Company Info
|
|
OWN_CVR: str = "29522790" # BMC Denmark ApS - ignore when detecting vendors
|
|
|
|
# File Upload
|
|
UPLOAD_DIR: str = "uploads"
|
|
MAX_FILE_SIZE_MB: int = 50
|
|
ALLOWED_EXTENSIONS: List[str] = [".pdf", ".png", ".jpg", ".jpeg", ".txt", ".csv"]
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
case_sensitive = True
|
|
extra = "ignore" # Ignore extra fields from .env
|
|
|
|
|
|
settings = Settings()
|