isGraduated eingebaut

This commit is contained in:
aknuth 2024-12-13 11:59:04 +01:00
parent 377cfdfa97
commit 8baef6047b
1 changed files with 42 additions and 8 deletions

View File

@ -38,7 +38,8 @@ def init_db():
ivl REAL DEFAULT 0.0, ivl REAL DEFAULT 0.0,
factor REAL DEFAULT 2.5, factor REAL DEFAULT 2.5,
reps INTEGER DEFAULT 0, reps INTEGER DEFAULT 0,
lapses INTEGER DEFAULT 0 lapses INTEGER DEFAULT 0,
isGraduated INTEGER DEFAULT 0 -- Neue Spalte hinzugefügt
) )
''') ''')
conn.commit() conn.commit()
@ -187,6 +188,7 @@ def get_decks():
'factor': entry['factor'], 'factor': entry['factor'],
'reps': entry['reps'], 'reps': entry['reps'],
'lapses': entry['lapses'], 'lapses': entry['lapses'],
'isGraduated': bool(entry['isGraduated']) # isGraduated hinzufügen
} }
decks[deckname]['images'].append(image) decks[deckname]['images'].append(image)
@ -442,16 +444,48 @@ def update_box(box_id):
factor = data.get('factor', 2.5) factor = data.get('factor', 2.5)
reps = data.get('reps', 0) reps = data.get('reps', 0)
lapses = data.get('lapses', 0) lapses = data.get('lapses', 0)
is_graduated = data.get('isGraduated') # Neues Feld aus den Daten extrahieren
# Validierung des isGraduated-Feldes
if is_graduated is not None:
if isinstance(is_graduated, bool):
is_graduated_int = int(is_graduated)
else:
return jsonify({'error': 'isGraduated muss ein Boolean-Wert sein'}), 400
else:
is_graduated_int = None # Kein Update für isGraduated
conn = get_db_connection() conn = get_db_connection()
cursor = conn.cursor() cursor = conn.cursor()
try:
if is_graduated_int is not None:
cursor.execute("""
UPDATE Deck
SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ?, isGraduated = ?
WHERE id = ?
""", (due, ivl, factor, reps, lapses, is_graduated_int, box_id))
else:
cursor.execute(""" cursor.execute("""
UPDATE Deck UPDATE Deck
SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ? SET due = ?, ivl = ?, factor = ?, reps = ?, lapses = ?
WHERE id = ? WHERE id = ?
""", (due, ivl, factor, reps, lapses, box_id)) """, (due, ivl, factor, reps, lapses, box_id))
if cursor.rowcount == 0:
conn.close()
return jsonify({'error': 'Box nicht gefunden'}), 404
conn.commit() conn.commit()
conn.close() conn.close()
return jsonify({'status': 'success'}), 200
except sqlite3.Error as e:
conn.rollback()
conn.close()
logger.error(f"Datenbankfehler beim Aktualisieren der Box '{box_id}': {e}")
return jsonify({'error': 'Database error', 'details': str(e)}), 500
return jsonify({'status': 'success'}), 200 return jsonify({'status': 'success'}), 200
# Sicherstellen, dass die Datenbank existiert # Sicherstellen, dass die Datenbank existiert