Compare commits

...

3 Commits

Author SHA1 Message Date
Aiirondev_dev 1299140823 Fix of the encryption processing with the Student class
Release Inventarsystem / release-docker (push) Successful in 2m14s
2026-08-16 13:17:20 +02:00
Aiirondev_dev ea48d5c28a decryption of the parsed fields
Release Inventarsystem / release-docker (push) Successful in 2m15s
2026-08-16 13:08:34 +02:00
Aiirondev_dev 514065f4af fixe of a list error
Release Inventarsystem / release-docker (push) Successful in 3m7s
2026-08-16 12:58:31 +02:00
+17 -16
View File
@@ -2177,7 +2177,7 @@ def _upload_student_cards_excel():
client = MongoClient(cfg.MONGODB_HOST, cfg.MONGODB_PORT)
try:
db = client[cfg.MONGODB_DB]
student_cards = db['student_cards']
student_cards = list(db['student_cards'].find())
existing_ids.update(
str(card.get('AusweisId', '')).strip().upper()
for card in student_cards.find({}, {'AusweisId': 1})
@@ -4108,28 +4108,20 @@ def student_cards_admin():
app.logger.error(f"Error adding student card: {e}")
flash('Fehler beim Hinzufügen des Ausweises.', 'error')
# Get all student cards
# Get all student cards and decrypt them
all_cards = list(student_cards.find().sort('AusweisId', 1))
all_cards = [_decrypt_student_card_doc(card) for card in all_cards]
client.close()
# Alle eindeutigen Klassen für das Dropdown ermitteln
client = MongoClient(cfg.MONGODB_HOST, cfg.MONGODB_PORT)
db = client[cfg.MONGODB_DB]
student_cards_collection = db['student_cards']
# Extrahiere alle vorhandenen Klassen, entferne leere/None Werte und sortiere sie
raw_classes = student_cards_collection.distinct('Klasse')
available_classes = sorted([c for c in raw_classes if c])
client.close()
raw_classes = set(card.get('Klasse', '').strip() for card in all_cards if card.get('Klasse'))
available_classes = sorted(list(raw_classes))
return render_template(
'student_cards_admin.html',
student_cards=student_cards,
student_cards=all_cards, # Hier all_cards übergeben
edit_mode=edit_mode,
form_data=form_data,
available_classes=available_classes,
available_classes=available_classes, # Enthält nun die lesbaren Klassen
config=cfg.get_school_info()
)
@@ -4439,10 +4431,19 @@ def student_card_class_barcode_download():
db = client[cfg.MONGODB_DB]
student_cards = db['student_cards']
class_cards = list(student_cards.find({'Klasse': class_name}).sort('AusweisId', 1))
class_cards = [_decrypt_student_card_doc(card) for card in class_cards]
# 1. Alle Ausweise laden
all_cards = list(student_cards.find().sort('AusweisId', 1))
client.close()
# 2. Alle entschlüsseln
decrypted_cards = [_decrypt_student_card_doc(card) for card in all_cards]
# 3. Im Speicher nach der Klartext-Klasse filtern
class_cards = [
card for card in decrypted_cards
if card.get('Klasse', '').strip() == class_name
]
if not class_cards:
flash(f'Keine Ausweise für die Klasse "{class_name}" gefunden.', 'error')
return redirect(url_for('student_cards_admin'))