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)}]"
try:
# Annahme: is_allowed, error_message = allowed_file(...)
image.seek(0)
image_bytes = image.read()
if not image_bytes:
@@ -11968,7 +11966,6 @@ def upload_csv_batch():
error_count += 1
# 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)
# 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 = []
grouped_items = df.groupby('Name')
for name, group in grouped_items:
@@ -11995,12 +11991,10 @@ def upload_csv_batch():
item_image_filenames = []
if 'Images' in row and pd.notna(row['Images']):
try:
# Aus "['Bild1.JPG', 'Bild2.JPG']" wird eine Liste
img_list = ast.literal_eval(str(row['Images']))
if isinstance(img_list, list):
for img_name in img_list:
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:
item_image_filenames.append(image_mapping[base_img_name])
else:
@@ -12008,7 +12002,6 @@ def upload_csv_batch():
except (ValueError, SyntaxError):
pass
# Filter extrahieren (falls vorhanden, erwarte string list wie "['HSU', '', '', '']")
def parse_filter_col(col_data):
try:
res = ast.literal_eval(str(col_data))
@@ -12022,25 +12015,24 @@ def upload_csv_batch():
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(
name=row['Name'],
ort=row['Ort'],
beschreibung=row['Beschreibung'],
image_filenames=item_image_filenames,
filter_upload=filter_upload,
filter_upload2=filter_upload2,
filter_upload3=filter_upload3,
anschaffungs_jahr=str(row['Anschaffungsjahr']) if row['Anschaffungsjahr'] else None,
anschaffungs_kosten=str(row['Anschaffungskosten']) if row['Anschaffungskosten'] else None,
code_4=str(row['Code_4']) if row['Code_4'] else None,
str(row['Name']),
str(row['Ort']),
str(row['Beschreibung']),
item_image_filenames,
filter_upload,
filter_upload2,
filter_upload3,
str(row['Anschaffungsjahr']) if row['Anschaffungsjahr'] else None,
str(row['Anschaffungskosten']) if row['Anschaffungskosten'] else None,
str(row['Code_4']) if row['Code_4'] else None,
reservierbar=reservierbar,
series_group_id=series_group_id,
series_count=item_count,
series_position=position,
is_grouped_sub_item=(position > 1),
parent_item_id=parent_item_id,
# Default Werte, falls keine Bibliotheks-CSV
isbn='',
item_type='other',
library_category='',
@@ -12049,7 +12041,6 @@ def upload_csv_batch():
if item_id:
created_item_ids.append(item_id)
# Das erste Item in einer Serie wird der Parent für die restlichen
if position == 1:
parent_item_id = str(item_id)
else: