Rend les plages horaires et les rappels ntfy configurables, supprime le
classement, ajoute une suite de tests pytest - calcul.py: matin_debut/fin, aprem_debut/fin et pause_dejeuner_fin sont paramétrables via config.json > plages (moteur de calcul de l'heure de sortie optimale inclus, pas seulement l'affichage). Défauts identiques à l'ancien comportement, validé par la suite de tests. - stats.py: les seuils de conformité utilisent la même config. - main.py/templates: warn de saisie et suffixes de cible dynamiques. - Rappels ntfy: serveur, topic et plage horaire (rappel_debut_h/fin_h) configurables par utilisateur depuis /settings, plus en dur dans le code. - Page classement supprimée (pas de compétition entre utilisateurs). - Nouvelle suite pytest (app/tests/), à lancer via `docker compose run --rm pointeuse pytest -v`.
This commit is contained in:
@ -10,8 +10,9 @@
|
||||
<div class="settings-card">
|
||||
<span class="hist-label">Notifications (ntfy)</span>
|
||||
<p class="settings-p">
|
||||
Crée un topic sur <a href="https://ntfy.sh" target="_blank" rel="noopener">ntfy.sh</a> (un identifiant
|
||||
secret que toi seul connais), abonne-toi dessus avec l'app ntfy sur ton téléphone, puis renseigne-le ici.
|
||||
Crée un topic sur ton serveur <a href="https://ntfy.sh" target="_blank" rel="noopener">ntfy</a>
|
||||
(public ou auto-hébergé), un identifiant secret que toi seul connais, abonne-toi dessus avec
|
||||
l'app ntfy sur ton téléphone, puis renseigne les deux champs ci-dessous.
|
||||
</p>
|
||||
|
||||
{% if saved %}
|
||||
@ -19,6 +20,16 @@
|
||||
{% endif %}
|
||||
|
||||
<form method="post" action="/settings" class="settings-form">
|
||||
<label class="login-label" for="ntfy_server">Serveur ntfy</label>
|
||||
<input
|
||||
id="ntfy_server"
|
||||
class="login-input"
|
||||
type="text"
|
||||
name="ntfy_server"
|
||||
value="{{ ntfy_server }}"
|
||||
placeholder="https://ntfy.sh"
|
||||
autocomplete="off"
|
||||
>
|
||||
<label class="login-label" for="ntfy_topic">Topic ntfy</label>
|
||||
<input
|
||||
id="ntfy_topic"
|
||||
@ -29,6 +40,23 @@
|
||||
placeholder="ex: antoine-pointeuse-x7f2"
|
||||
autocomplete="off"
|
||||
>
|
||||
<label class="login-label" for="rappel_debut_h">Plage horaire des rappels</label>
|
||||
<div class="settings-range">
|
||||
<input
|
||||
id="rappel_debut_h"
|
||||
class="login-input settings-range-input"
|
||||
type="number" min="0" max="23" name="rappel_debut_h"
|
||||
value="{{ rappel_debut_h }}"
|
||||
>
|
||||
<span class="settings-range-sep">h → </span>
|
||||
<input
|
||||
id="rappel_fin_h"
|
||||
class="login-input settings-range-input"
|
||||
type="number" min="1" max="24" name="rappel_fin_h"
|
||||
value="{{ rappel_fin_h }}"
|
||||
>
|
||||
<span class="settings-range-sep">h, jours ouvrés</span>
|
||||
</div>
|
||||
<button class="login-btn" type="submit">Enregistrer</button>
|
||||
</form>
|
||||
</div>
|
||||
@ -39,7 +67,7 @@
|
||||
Crée une automatisation Tasker déclenchée par une géofence autour du bureau : à l'<b>entrée</b> de la
|
||||
zone, appelle l'URL "arrivée" ; à la <b>sortie</b>, l'URL "départ". Tant que tu es détecté présent sans
|
||||
avoir pointé l'entrée du matin, ou parti sans avoir pointé la sortie, tu reçois un rappel toutes les
|
||||
5 minutes (7h–20h, jours ouvrés).
|
||||
5 minutes, dans la plage horaire réglée ci-dessus (jours ouvrés).
|
||||
</p>
|
||||
<div class="settings-urlrow">
|
||||
<span class="settings-urllabel">Arrivée</span>
|
||||
@ -94,5 +122,8 @@
|
||||
word-break: break-all;
|
||||
}
|
||||
.settings-hint { font-size: 11px; color: var(--muted); }
|
||||
.settings-range { display: flex; align-items: center; gap: .4rem; flex-wrap: wrap; }
|
||||
.settings-range-input { width: 70px; text-align: center; }
|
||||
.settings-range-sep { font-size: 12px; color: var(--muted); font-family: var(--mono); }
|
||||
</style>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user