Compare commits

..

1 Commits

Author SHA1 Message Date
Aiirondev_dev 82898e34cb fix of the json upload format 2026-08-03 19:16:32 +02:00
+11 -20
View File
@@ -11923,8 +11923,6 @@ def upload_csv_batch():
image_log_prefix = f"[Upload {upload_session_id}][Image {index + 1}/{len(uploaded_images)}]" image_log_prefix = f"[Upload {upload_session_id}][Image {index + 1}/{len(uploaded_images)}]"
try: try:
# Annahme: is_allowed, error_message = allowed_file(...)
image.seek(0) image.seek(0)
image_bytes = image.read() image_bytes = image.read()
if not image_bytes: if not image_bytes:
@@ -11968,7 +11966,6 @@ def upload_csv_batch():
error_count += 1 error_count += 1
# 4. Items gruppieren (Analog zu series_group_id aus upload_item) # 4. Items gruppieren (Analog zu series_group_id aus upload_item)
# Gruppierung über den Namen: Alle Zeilen mit demselben Namen gehören zur selben Serie
df['Name'] = df['Name'].fillna('Unbenannt').astype(str) df['Name'] = df['Name'].fillna('Unbenannt').astype(str)
# Optional: Fülle NaN Werte in der CSV mit sinnvollen Defaults für die Datenbank # Optional: Fülle NaN Werte in der CSV mit sinnvollen Defaults für die Datenbank
@@ -11981,7 +11978,6 @@ def upload_csv_batch():
}) })
created_item_ids = [] created_item_ids = []
grouped_items = df.groupby('Name') grouped_items = df.groupby('Name')
for name, group in grouped_items: for name, group in grouped_items:
@@ -11995,12 +11991,10 @@ def upload_csv_batch():
item_image_filenames = [] item_image_filenames = []
if 'Images' in row and pd.notna(row['Images']): if 'Images' in row and pd.notna(row['Images']):
try: try:
# Aus "['Bild1.JPG', 'Bild2.JPG']" wird eine Liste
img_list = ast.literal_eval(str(row['Images'])) img_list = ast.literal_eval(str(row['Images']))
if isinstance(img_list, list): if isinstance(img_list, list):
for img_name in img_list: for img_name in img_list:
base_img_name = os.path.splitext(img_name)[0] base_img_name = os.path.splitext(img_name)[0]
# Falls das Bild hochgeladen wurde, die WebP GridFS ID/Name nehmen
if base_img_name in image_mapping: if base_img_name in image_mapping:
item_image_filenames.append(image_mapping[base_img_name]) item_image_filenames.append(image_mapping[base_img_name])
else: else:
@@ -12008,7 +12002,6 @@ def upload_csv_batch():
except (ValueError, SyntaxError): except (ValueError, SyntaxError):
pass pass
# Filter extrahieren (falls vorhanden, erwarte string list wie "['HSU', '', '', '']")
def parse_filter_col(col_data): def parse_filter_col(col_data):
try: try:
res = ast.literal_eval(str(col_data)) res = ast.literal_eval(str(col_data))
@@ -12022,25 +12015,24 @@ def upload_csv_batch():
reservierbar = bool(row.get('Reservierbar', False)) reservierbar = bool(row.get('Reservierbar', False))
# DB Insert Funktion aufrufen (orientiert an deiner upload_item) # DB Insert Funktion aufrufen (mit korrigierten, positionellen Parametern)
item_id = it.add_item( item_id = it.add_item(
name=row['Name'], str(row['Name']),
ort=row['Ort'], str(row['Ort']),
beschreibung=row['Beschreibung'], str(row['Beschreibung']),
image_filenames=item_image_filenames, item_image_filenames,
filter_upload=filter_upload, filter_upload,
filter_upload2=filter_upload2, filter_upload2,
filter_upload3=filter_upload3, filter_upload3,
anschaffungs_jahr=str(row['Anschaffungsjahr']) if row['Anschaffungsjahr'] else None, str(row['Anschaffungsjahr']) if row['Anschaffungsjahr'] else None,
anschaffungs_kosten=str(row['Anschaffungskosten']) if row['Anschaffungskosten'] else None, str(row['Anschaffungskosten']) if row['Anschaffungskosten'] else None,
code_4=str(row['Code_4']) if row['Code_4'] else None, str(row['Code_4']) if row['Code_4'] else None,
reservierbar=reservierbar, reservierbar=reservierbar,
series_group_id=series_group_id, series_group_id=series_group_id,
series_count=item_count, series_count=item_count,
series_position=position, series_position=position,
is_grouped_sub_item=(position > 1), is_grouped_sub_item=(position > 1),
parent_item_id=parent_item_id, parent_item_id=parent_item_id,
# Default Werte, falls keine Bibliotheks-CSV
isbn='', isbn='',
item_type='other', item_type='other',
library_category='', library_category='',
@@ -12049,7 +12041,6 @@ def upload_csv_batch():
if item_id: if item_id:
created_item_ids.append(item_id) created_item_ids.append(item_id)
# Das erste Item in einer Serie wird der Parent für die restlichen
if position == 1: if position == 1:
parent_item_id = str(item_id) parent_item_id = str(item_id)
else: else: