Skip to content

Commit

Permalink
check file di configurazione al caricamento
Browse files Browse the repository at this point in the history
  • Loading branch information
nkoexe committed Sep 23, 2024
1 parent 09a3502 commit a2223b3
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 4 deletions.
26 changes: 23 additions & 3 deletions sostituzioni/control/configurazione.py
Original file line number Diff line number Diff line change
Expand Up @@ -610,7 +610,12 @@ def __init__(self):
"main",
]

@beartype
def load(self, file: Path = CONFIG_FILE):
if not file.exists():
logger.error(f"File di configurazione non trovato: {file}")
return False

with open(file, encoding="utf-8") as configfile:
logger.debug("Caricamento file di configurazione..")
self.data = load(configfile)
Expand Down Expand Up @@ -644,14 +649,22 @@ def load(self, file: Path = CONFIG_FILE):
)
self.set("version", v, force=True)

return True

def applica_aggiornamenti(self):
"""
Funzione che viene eseguita allo startup, per aggiornare sezioni e opzioni
della configurazione locale con quelle del template.
"""
# Carica la configurazione del template
configurazione_template = Configurazione()
configurazione_template.load(CONFIG_TEMPLATE)
ok = configurazione_template.load(CONFIG_TEMPLATE)

if not ok:
logger.error(
"Errore durante il caricamento del template, impossibile applicare aggiornamenti."
)
return False

for sezione_template in configurazione_template.sezioni:
# Se la sezione è già presente nella configurazione locale
Expand Down Expand Up @@ -817,6 +830,13 @@ def esporta(self, file: str | Path = CONFIG_FILE):

configurazione = Configurazione()

if "SOSTITUZIONI_SETUP" not in os.environ:
configurazione.load()
if "SCUOLASYNC_SETUP" not in os.environ:
ok = configurazione.load()

if not ok:
logger.error(
"Configurazione di sistema non caricata. Controllare la posizione del file, oppure eseguire `python -m sostituzioni.setup` per inizializzare il sistema."
)
exit(1)

configurazione.applica_aggiornamenti()
2 changes: 1 addition & 1 deletion sostituzioni/setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,7 +203,7 @@ def init_database_utenti():

def main():
global ROOT_PATH, CONFIG_FILE, CONFIG_TEMPLATE, configurazione
environ["SOSTITUZIONI_SETUP"] = "1"
environ["SCUOLASYNC_SETUP"] = "1"

from sostituzioni.control.configurazione import (
ROOT_PATH,
Expand Down

0 comments on commit a2223b3

Please sign in to comment.