bugfix
This commit is contained in:
@@ -76,15 +76,12 @@ def create_google_doc_from_csv(service):
|
||||
print("Keine Daten aus der CSV-Datei geladen.")
|
||||
return None
|
||||
|
||||
# Kinder innerhalb jeder Gruppe sortieren
|
||||
for gruppe_key in kinder_nach_gruppen: # Geändert von 'gruppe' zu 'gruppe_key' um Verwechslung zu vermeiden
|
||||
for gruppe_key in kinder_nach_gruppen:
|
||||
kinder_nach_gruppen[gruppe_key].sort(key=lambda x: (x['Nachname'].lower(), x['Vorname'].lower()))
|
||||
|
||||
# ***** KORREKTUR HIER: sorted_gruppen_namen definieren *****
|
||||
sorted_gruppen_namen = sorted(kinder_nach_gruppen.keys())
|
||||
stand_zeit = datetime.now().strftime("%d.%m.%Y %H:%M Uhr")
|
||||
|
||||
# 1. Neues Google Doc erstellen
|
||||
try:
|
||||
doc_body = {'title': GOOGLE_DOC_TITLE}
|
||||
doc = service.documents().create(body=doc_body).execute()
|
||||
@@ -94,31 +91,35 @@ def create_google_doc_from_csv(service):
|
||||
except HttpError as err:
|
||||
print(f"Fehler beim Erstellen des Google Dokuments: {err}")
|
||||
return None
|
||||
# --- BIS HIER BLEIBT ALLES WIE ZUVOR ---
|
||||
|
||||
requests = []
|
||||
|
||||
for i, gruppe_original in enumerate(sorted_gruppen_namen):
|
||||
# ... (kinder_liste, anzahl_kinder, gruppe_display_name) ...
|
||||
# ***** KORREKTUR: Definitionen hierher verschieben *****
|
||||
kinder_liste = kinder_nach_gruppen[gruppe_original]
|
||||
anzahl_kinder = len(kinder_liste)
|
||||
gruppe_display_name = gruppe_original + GRUPPENNAME_SUFFIX
|
||||
# ***** ENDE KORREKTUR *****
|
||||
|
||||
# --- Seiten-Header ---
|
||||
header_text_for_page = (
|
||||
f"{EINRICHTUNG}\t\t\t{FOTOGRAF_NAME}\n"
|
||||
f"{FOTODATUM}\n\n"
|
||||
)
|
||||
if i == 0: # Nur für die allererste Seite einen expliziten Index
|
||||
if i == 0:
|
||||
requests.append({'insertText': {'location': {'index': 1}, 'text': header_text_for_page}})
|
||||
else: # Für Folgeseiten nach einem PageBreak
|
||||
else:
|
||||
requests.append({'insertText': {'endOfSegmentLocation': {}, 'text': header_text_for_page}})
|
||||
|
||||
# --- Tabelle ---
|
||||
# Jetzt ist kinder_liste definiert
|
||||
num_rows_for_table = len(kinder_liste) + 1
|
||||
num_cols_for_table = 3
|
||||
|
||||
# Tabelle wird nach dem Header eingefügt.
|
||||
# Wenn Header mit EOS eingefügt wurde, wird Tabelle auch mit EOS eingefügt.
|
||||
requests.append({
|
||||
'insertTable': {
|
||||
'endOfSegmentLocation': {}, # Fügt Tabelle am aktuellen Ende an
|
||||
'endOfSegmentLocation': {},
|
||||
'rows': num_rows_for_table,
|
||||
'columns': num_cols_for_table
|
||||
}
|
||||
@@ -126,12 +127,11 @@ def create_google_doc_from_csv(service):
|
||||
|
||||
table_text_content = []
|
||||
table_text_content.append("Nachname\tVorname\tGruppe")
|
||||
for kind in kinder_liste:
|
||||
# Jetzt ist kinder_liste definiert
|
||||
for kind in kinder_liste:
|
||||
table_text_content.append(f"{kind['Nachname']}\t{kind['Vorname']}\t{gruppe_display_name}")
|
||||
full_table_text = "\n".join(table_text_content) + "\n"
|
||||
|
||||
# Füge den gesamten Tabelleninhalt ein.
|
||||
# Dies sollte in die zuletzt mit EOS erstellte Tabelle gehen.
|
||||
requests.append({
|
||||
'insertText': {
|
||||
'endOfSegmentLocation': {},
|
||||
@@ -140,6 +140,7 @@ def create_google_doc_from_csv(service):
|
||||
})
|
||||
|
||||
# --- Footer ---
|
||||
# Jetzt ist anzahl_kinder definiert
|
||||
footer_text_for_page = (
|
||||
f"\n{anzahl_kinder} angemeldete Kinder\n\n"
|
||||
"Dies ist die Liste der bereits angemeldeten Kinder. Bitte die Eltern der noch fehlenden\n"
|
||||
@@ -158,15 +159,11 @@ def create_google_doc_from_csv(service):
|
||||
if i < len(sorted_gruppen_namen) - 1:
|
||||
requests.append({'insertPageBreak': {'endOfSegmentLocation': {}}})
|
||||
|
||||
# Batch-Update ausführen
|
||||
# Batch-Update ausführen (Rest bleibt gleich)
|
||||
if requests:
|
||||
try:
|
||||
print("Sende Batch Update an Google Docs API...")
|
||||
print("Anzahl der Requests:", len(requests))
|
||||
# Debug: Gib die ersten paar Requests aus, um zu sehen, ob sie logisch aussehen
|
||||
# for req_idx, req_content in enumerate(requests[:6]):
|
||||
# print(f"Request [{req_idx}]: {req_content}")
|
||||
|
||||
service.documents().batchUpdate(
|
||||
documentId=document_id, body={'requests': requests}
|
||||
).execute()
|
||||
@@ -181,10 +178,6 @@ def create_google_doc_from_csv(service):
|
||||
error_details = f"Fehler beim Dekodieren der Fehlerdetails: {e_decode}"
|
||||
|
||||
print(f"Details zum Fehler ({err.resp.status} {err._get_reason()}): {error_details}")
|
||||
# Wenn es immer noch schiefgeht, alle Requests ausgeben:
|
||||
# print("Alle gesendeten Requests:")
|
||||
# for req_idx, req_content in enumerate(requests):
|
||||
# print(f"Request [{req_idx}]: {req_content}")
|
||||
return document_id
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user