Compare commits

...

2 Commits

Author SHA1 Message Date
Anika e9f8d3ad28 started adding docs/comments 2024-03-04 23:20:43 +01:00
Anika 43bce4789c closes #2 2024-03-04 22:22:58 +01:00
8 changed files with 69 additions and 56 deletions

Binary file not shown.

View File

@ -1,14 +0,0 @@
[
{
"datetime": "05.04.2025 06:33",
"message": "Test"
},
{
"datetime": "05.04.2025 06:57",
"message": "EEh"
},
{
"datetime": "04.03.2024 18:40",
"message": "PREVIOUS"
}
]

View File

@ -1,22 +0,0 @@
[
{
"datetime": "11.02.2024 22:58",
"message": "Nice"
},
{
"datetime": "12.02.2024 15:03",
"message": "Lololol"
},
{
"datetime": "22.02.2024 11:14",
"message": "Seitenschneider an Leon"
},
{
"datetime": "04.03.2024 13:02",
"message": "hkjaflksaflksafl kisafjdbsafdo\u00f6ijar\u00f6oirpijwfeij"
},
{
"datetime": "04.03.2024 18:02",
"message": "hdhdh"
}
]

View File

@ -8,9 +8,14 @@
"log alarms"; "log alarms";
} }
div.datetime {
display: inline-block;
}
div.log { div.log {
grid-area: log; grid-area: log;
margin-bottom: 1cm; margin-bottom: 1cm;
margin-right: 2cm;
} }
div.alarms { div.alarms {
@ -22,6 +27,7 @@ div.savedLogs {
border-radius: 20px; border-radius: 20px;
border-width: 5px; border-width: 5px;
grid-area: savedLogs; grid-area: savedLogs;
margin-right: 2cm;
} }
div.savedAlarms { div.savedAlarms {

View File

@ -22,7 +22,7 @@
<a class="nav-link" href="#">About</a> <a class="nav-link" href="#">About</a>
</li> </li>
<li class="nav-item"> <li class="nav-item">
<a class="nav-link" href="{{url_for('refresh')}}">Reload</a> <a class="nav-link" href="{{url_for('help')}}">Hilfe</a>
</li> </li>
</ul> </ul>
</div> </div>

12
templates/help.html Normal file
View File

@ -0,0 +1,12 @@
{% extends 'base.html' %}
{% block content %}
<h1>{% block title %} Hilfe! {% endblock %}</h1>
* schreib am besten was ins log vor dem ersten Alarm, sonst gibt's doppelten Alarm, wenn was abstürzt.
<h3>Debugging Hilfe</h3>
* Schau in den Code, da sind zwar auch keine Kommentare, aber er existiert
{% endblock %}

View File

@ -28,7 +28,7 @@
<input type="text" name="logMessage" <input type="text" name="logMessage"
class="form-control" class="form-control"
value="{{ request.form['logMessage'] }}"></input> value="{{ request.form['logMessage'] }}"></input>
<input type="submit" id="saveLog" value="Speichern"/> <input type="submit" id="saveLog" value="Speichern" style="margin-top: 3mm;"/>
</div> </div>
</form> </form>
</div> </div>
@ -36,15 +36,24 @@
<form method="post" action="/setAlarm"> <form method="post" action="/setAlarm">
<div class="form-group"> <div class="form-group">
<label for="time">Time</label> <div class="datetime" style="padding-left: 3mm;">
<input type="datetime-local" name="datetime" <label for="time">Datum</label>
class="form-control" <input type="date" name="date"
value="{{ request.form['datetime'] }}"></input> class="form-control"
<label for="alarmMessage">alarmMessage</label> value="{{ request.form['date'] }}" style="width: 150px;"></input>
<input type="text" name="alarmMessage" </div>
class="form-control" <div class="datetime">
value="{{ request.form['alarmMessage'] }}"></input> <label for="time">Uhrzeit</label>
<input type="submit" id="saveAlarm" value="Speichern"/> <input type="time" name="time" class="form-control"
value="{{ request.form['time'] }}" style="width: 80px;" required></input>
</div>
<div style="padding: 3mm;">
<label for="alarmMessage">alarmMessage</label>
<input type="text" name="alarmMessage"
class="form-control"
value="{{ request.form['alarmMessage'] }}" required></input>
</div>
<input type="submit" id="saveAlarm" value="Speichern" style="padding-left: 3mm; margin-left: 3mm;"/>
</div> </div>
</form> </form>
</div> </div>

40
test.py
View File

@ -11,20 +11,33 @@ previousAlarms = list()
logs = list() logs = list()
def preprocess(): def preprocess():
logsFile = json.load(open("./logs.json"))
alarmsFile = json.load(open("./alarms.json")) print('start init alarms and logs')
#versuch beide files zu laden, wenn das fehlschlägt, initiiere beide files als json
try:
logsFile = json.load(open("./logs.json"))
alarmsFile = json.load(open("./alarms.json"))
except:
print("initiate logs.json")
logsFile=json.load(open("./logs.json","w").write("{}"))
print("initiate alarms.json")
alarmsFile=json.load(open("./alarms.json","w").write("{}"))
# schreib alle alarme im File in previousAlarms, wenn sie älter als 2 mins sind
# alle anderen in active alarms
for alarm in alarmsFile: for alarm in alarmsFile:
if datetime.strptime(alarm['datetime'],"%d.%m.%Y %H:%M") <= datetime.now()-timedelta(minutes=2): if datetime.strptime(alarm['datetime'],"%d.%m.%Y %H:%M") <= datetime.now()-timedelta(minutes=2):
previousAlarms.append(alarm) previousAlarms.append(alarm)
else: else:
activeAlarms.append(alarm) activeAlarms.append(alarm)
# lies alle log aus dem file ein
for log in logsFile: for log in logsFile:
logs.append(log) logs.append(log)
print("init of alarms and logs done")
@app.route("/", methods=('GET', 'POST')) @app.route("/", methods=('GET', 'POST'))
def index(): def index():
# reload sendet alle paramenter neu und die werden neu drangeflanscht # wenn die logs leer sind, gehen wir davon aus, dass noch nicht initialisiert wurde
# alarme werden gedoppelt, sollten schon welche da sein
if len(logs) <= 0: if len(logs) <= 0:
preprocess() preprocess()
@ -33,10 +46,19 @@ def index():
@app.route('/setAlarm', methods=('GET', 'POST')) @app.route('/setAlarm', methods=('GET', 'POST'))
def setAlarm(): def setAlarm():
if request.method == 'POST': if request.method == 'POST':
time = datetime.fromisoformat(request.form['datetime']).strftime("%d.%m.%Y %H:%M") # wenn Datum leer:
# default Datum ist heute
# wenn heute + angegebene Uhrzeit vor jetzt ist -> Alarm für morgen zu der Uhrzeit gesetzt
if request.form['date'] !="" and request.form['time']!="":
time = datetime.strptime(request.form['date']+' '+request.form['time'], "%Y-%m-%d %H:%M")
elif request.form['date'] == "":
time = datetime.combine(datetime.today(),datetime.strptime(request.form['time'], "%H:%M").time())
if time<datetime.now():
time = time + timedelta(days=1)
content = request.form['alarmMessage'] content = request.form['alarmMessage']
activeAlarms.append({'datetime':time,'message':content}) activeAlarms.append({'datetime':datetime.strftime(time,"%d.%m.%Y %H:%M"),'message':content})
# ja, wir schreiben einfach das ganze File neu, ist aber einfacher
allAlarms = activeAlarms+previousAlarms allAlarms = activeAlarms+previousAlarms
with open('alarms.json', 'w') as f: with open('alarms.json', 'w') as f:
json.dump(allAlarms, f, indent=2) json.dump(allAlarms, f, indent=2)
@ -80,6 +102,6 @@ def processAlarm():
def processpAlarm(): def processpAlarm():
return render_template('palarms.html', previousAlarms=previousAlarms) return render_template('palarms.html', previousAlarms=previousAlarms)
@app.route("/refresh") @app.route("/help")
def refresh(): def help():
return render_template('index.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms) return render_template('help.html', logs = logs, alarms = activeAlarms, previousAlarms=previousAlarms)