Skip to content

Commit

Permalink
config trigger system, seasonal themes trigger
Browse files Browse the repository at this point in the history
  • Loading branch information
nkoexe committed Oct 7, 2024
1 parent 482c2d4 commit 8cc94bc
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 1 deletion.
30 changes: 29 additions & 1 deletion sostituzioni/control/configurazione.py
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ def __init__(
titolo = dati.get("titolo", "")
descrizione = dati.get("descrizione", "")
sezione = dati.get("sezione", "")
trigger = dati.get("trigger", None)
disabilitato = dati.get("disabilitato", False)
nascosto = dati.get("nascosto", False)
tipo = dati.get("tipo", "")
Expand All @@ -113,6 +114,7 @@ def __init__(
titolo = ""
descrizione = ""
sezione = parent.sezione
trigger = parent.trigger
disabilitato = dati.get("disabilitato", False)
nascosto = dati.get("nascosto", False)
tipo = parent.tipo_valori
Expand All @@ -124,6 +126,7 @@ def __init__(
self.titolo: str = titolo
self.descrizione: str = descrizione
self.sezione: str = sezione
self.trigger: str | None = trigger
self.disabilitato: bool = disabilitato
self.nascosto: bool = nascosto
self.tipo: str = tipo
Expand Down Expand Up @@ -203,6 +206,7 @@ def aggiorna(self, template):
self.titolo = template.titolo
self.descrizione = template.descrizione
self.sezione = template.sezione
self.trigger = template.trigger
self.disabilitato = template.disabilitato
self.nascosto = template.nascosto
self.tipo = template.tipo
Expand Down Expand Up @@ -505,6 +509,7 @@ def esporta(self):
"titolo": self.titolo,
"descrizione": self.descrizione,
"sezione": self.sezione,
"trigger": self.trigger,
"disabilitato": self.disabilitato,
"nascosto": self.nascosto,
"tipo": self.tipo,
Expand Down Expand Up @@ -581,6 +586,7 @@ def esporta(self):
class Configurazione:
@beartype
def __init__(self):
self.trigger = set()
self.aggiornamento_disponibile = False
self.extra_themes = []
self.shell_commands = {}
Expand Down Expand Up @@ -746,6 +752,24 @@ def check_update(self):

return self.aggiornamento_disponibile

@beartype
def esegui_trigger(self):
if "reboot" in self.trigger:
# decidere come gestire il reboot, per ora lasciare il trigger e segnalare il frontend
pass

if "display" in self.trigger:
# aggiorna il display fisico
self.trigger.remove("display")

if "seasonalthemes" in self.trigger:
from sostituzioni.control.cron import update_seasonal_themes

update_seasonal_themes()
self.trigger.remove("seasonalthemes")

return True

def __repr__(self):
return "Configurazione Sistema"

Expand Down Expand Up @@ -795,11 +819,15 @@ def set(
logger.warning(f"Setter: id {id_opzione} non riconosciuto.")
return False

res = self.opzioni.get(id_opzione).set(dati, force)
opzione = self.opzioni.get(id_opzione)
self.trigger.add(opzione.trigger)
res = opzione.set(dati, force)

if salva:
self.esporta()

self.esegui_trigger()

return res

@beartype
Expand Down
10 changes: 10 additions & 0 deletions sostituzioni/database/configurazione.json.template
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
"titolo": "Temi Stagionali",
"descrizione": "Abilita l'uso di temi stagionali in certi momenti dell'anno. Fiocchi a Natale, ragnatele ad Halloween...",
"sezione": "sistema",
"trigger": "seasonalthemes",
"disabilitato": false,
"nascosto": false,
"tipo": "booleano",
Expand All @@ -72,6 +73,7 @@
"titolo": "Stato del sistema",
"descrizione": "Utilizzare la modalità \"In Produzione\" per l'utilizzo regolare. Utilizzare modalità \"In Manutenzione\" per il debug del sistema.",
"sezione": "sistema",
"trigger": "reboot",
"disabilitato": false,
"nascosto": false,
"tipo": "selezione",
Expand Down Expand Up @@ -187,6 +189,7 @@
"titolo": "Gestore Single Sign-On",
"descrizione": "Scelta se utilizzare account Google oppure Microsoft per eseguire l'accesso al sistema.",
"sezione": "login",
"trigger": "reboot",
"disabilitato": false,
"nascosto": false,
"tipo": "selezione",
Expand Down Expand Up @@ -256,6 +259,7 @@
"titolo": "Durata della sessione",
"descrizione": "Minuti di inattività dopo i quali bisognerà eseguire nuovamente il login. Impostare a -1 per disabilitare il logout automatico.",
"sezione": "login",
"trigger": "reboot",
"disabilitato": false,
"nascosto": false,
"tipo": "numero",
Expand Down Expand Up @@ -346,6 +350,7 @@
"titolo": "Errore nessuna sostituzione",
"descrizione": "Testo che verrà mostrato quando non ci sono sostituzioni future e la lista è vuota.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "testo",
Expand All @@ -357,6 +362,7 @@
"titolo": "Numero di Giorni da Visualizzare",
"descrizione": "Visualizza le sostituzioni per il numero di giorni futuri specificato, incluso il giorno corrente. Ad esempio, impostando a 3, se il giorno corrente è lunedì verranno mostrate le sostituzioni fino a mercoledì incluso. Viene considerato giorno lavorativo un qualsiasi giorno che abbia una sostituzione. Imposta a -1 per disabilitare il limite e mostrare tutte le sostituzioni future.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "numero_unita",
Expand All @@ -377,6 +383,7 @@
"titolo": "Codici di autorizzazione",
"descrizione": "Il display dovrà inviare uno di questi codici per poter stabilire un collegamento.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "lista",
Expand All @@ -392,6 +399,7 @@
"titolo": "Mostra Codice QR",
"descrizione": "Mostra un codice QR sul display che porta alla versione online della pagina.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "booleano",
Expand All @@ -402,6 +410,7 @@
"titolo": "Intervallo di scorrimento eventi",
"descrizione": "Imposta il tempo, in secondi, dopo il quale la lista degli eventi passa automaticamente alla pagina successiva.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "numero",
Expand All @@ -416,6 +425,7 @@
"titolo": "Intervallo di scorrimento sostituzioni",
"descrizione": "Imposta il tempo, in secondi, dopo il quale la lista delle sostituzioni passa automaticamente alla pagina successiva.",
"sezione": "visualizzazionefisica",
"trigger": "display",
"disabilitato": false,
"nascosto": false,
"tipo": "numero",
Expand Down

0 comments on commit 8cc94bc

Please sign in to comment.