diff --git a/.gitignore b/.gitignore index 4e21ec4..4f7d602 100644 --- a/.gitignore +++ b/.gitignore @@ -4,22 +4,21 @@ scribe.db *.sqlite *.sqlite3 +# Dossier des données +data/* + # ── Configuration générée (contient clés API et données établissement) ── app/static/config.js # ── State persistant des collecteurs (runtime, ne JAMAIS committer) ── # Sinon on pollue les nouveaux déploiements avec des résidus -collecteur/collecteur_admin.json -collecteur/collecteur_transferts.json -collecteur/collecteur_incidents.json -collecteur/collecteur_decisions.json -collecteur/collecteur_sessions.json -collecteur_exercice/collecteur_exo_admin.json -collecteur_exercice/collecteur_exo_transferts.json -collecteur_exercice/collecteur_exo_incidents.json -collecteur_exercice/collecteur_exo_decisions.json -collecteur_exercice/collecteur_exo_prets.json -collecteur_exercice/collecteur_exo_sessions.json +collecteur/*.json +collecteur_exercice/*.json + +# marquers divers +master/.onboarding_done +master/*.json +master/profil_base.xlsx # ── Pièces jointes des incidents ── uploads/* @@ -62,3 +61,4 @@ logs/ # ── v2321 — Config IA persistée (contient clé API en clair, NE JAMAIS COMMITTER) ── instance/ia_config.json instance/ + diff --git a/app/static/css/scribe.css b/app/static/css/scribe.css index 0c8ce63..4d435e8 100644 --- a/app/static/css/scribe.css +++ b/app/static/css/scribe.css @@ -112,7 +112,7 @@ header{display:flex;flex-direction:column;align-items:stretch;background:linear- /* ══ INCIDENTS TAB ══ */ #tab-veille{flex-direction:row} -.entry-col{width:320px;min-width:260px;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;max-height:calc(100vh - 90px)} +.entry-col{width:480px;min-width:320px;display:flex;flex-direction:column;border-right:1px solid var(--border);overflow-y:auto;flex-shrink:0;max-height:calc(100vh - 90px)} .view-col{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0} /* MAP */ @@ -1448,4 +1448,4 @@ body.exo-mode{padding-top:36px} /* ═══════════════════ SCRIBE v2.3.65 */> - \ No newline at end of file + diff --git a/app/static/index.html b/app/static/index.html index 3b5ffc5..df5c3bf 100644 --- a/app/static/index.html +++ b/app/static/index.html @@ -224,7 +224,7 @@

🚨 Déclaration d'incident

oninput="filterUFList()" onfocus="showUFDropdown()" onkeydown="ufKeyNav(event)" style="padding-right:26px;width:100%;box-sizing:border-box"> - + @@ -285,14 +285,14 @@

🚨 Déclaration d'incident

⏱ Jalons de résolution
- - - - - + + + + + - - + +
@@ -2241,3 +2241,12 @@

$null + Start-Process -FilePath $python_vEnv_executablePath -ArgumentList "-m pip install -q -r requirements.txt" -NoNewWindow -Wait -RedirectStandardError (Join-Path $PSScriptRoot "pip_install_error.log") + Write-Host " [info] Dependance Python - main : OK" +} +if (Test-Path "collecteur\collecteur_requirements.txt") { + #$python_vEnv_executablePath -m pip install -q -r collecteur\collecteur_requirements.txt 2>$null + Start-Process -FilePath $python_vEnv_executablePath -ArgumentList "-m pip install -q -r collecteur\collecteur_requirements.txt" -NoNewWindow -Wait -RedirectStandardError (Join-Path $PSScriptRoot "pip_install_error.log") + Write-Host " [info] Dependance Python - Collecteur : OK" +} + +# Copier le profil de base si nécessaire +if ((Test-Path $profilePath)) { + $reponse = Read-Host "Voulez-vous demarrer une nouvelle configuration ? (O/Y/N)" + if ($reponse -eq "O" -or $reponse -eq "o" -or $reponse -eq "Y" -or $reponse -eq "y") { + Remove-Item -Path $profilePath -Force + Remove-Item -Path $masterInstancesPath -Force + Remove-Item -Path $masterInstancesExoPath -Force + if ((Test-Path $masterOnboardingPath)) { + Remove-Item -Path $masterOnboardingPath -Force + } + Remove-Item -Path "data\instances" -Force -Recurse + Write-Host "Donnees supprimees." + } else { + # assurer que le marqueur onboarding est bien créé + if (!(Test-Path $masterOnboardingPath)) { + New-Item -Path $masterOnboardingPath -ItemType File + } + } +} else { + Write-Host " [setup] Copie du profil de base..." + if (Test-Path $source_config_etb) { + Copy-Item $source_config_etb $profilePath -Force + Write-Host " [setup] Copie du profil de base - OK..." + } +} + +# Créer les répertoires nécessaires +if (!(Test-Path "data\instances")) { + New-Item -ItemType Directory -Path "data\instances" | Out-Null +} +if (!(Test-Path "logs")) { + New-Item -ItemType Directory -Path "logs" | Out-Null +} + + +Write-Host "" +Write-Host " >> Demarrage du navigateur en arriere plan" +Write-Host "" + +$edgeProcess = Start-Process msedge -ArgumentList "--inprivate", "http://localhost:9000" -PassThru + + +Write-Host "" +Write-Host " >> Demarrage de la supervision sur :9000..." +Write-Host "" + +# Changer de répertoire et lancer le collecteur +Set-Location $collecteurPath +Start-Process $python_vEnv_executablePath -ArgumentList "collecteur.py" -NoNewWindow +