diff --git a/Web/app.py b/Web/app.py index 395ccfb..cb1bc23 100755 --- a/Web/app.py +++ b/Web/app.py @@ -6451,11 +6451,6 @@ def item_edit(id): anschaffungs_kosten = sanitize_form_value(request.form.get('anschaffungskosten')) reservierbar = 'reservierbar' in request.form - # Filter 1-3 für alle Objekte - filter1 = expand_filter_selection(sanitize_form_value(request.form.getlist('filter')), 1) - filter2 = expand_filter_selection(sanitize_form_value(request.form.getlist('filter2')), 2) - filter3 = sanitize_form_value(request.form.getlist('filter3')) - code_4 = sanitize_form_value(request.form.get('code_4')) individual_codes_raw = request.form.get('individual_codes', '') @@ -6490,16 +6485,26 @@ def item_edit(id): return redirect(redirect_target) if show_library_features: + # LIBRARY ITEM: Process ISBN/Medientyp/Category, preserve existing filters isbn_raw = sanitize_form_value(request.form.get('isbn', '')) item_isbn = normalize_and_validate_isbn(isbn_raw) if isbn_raw else '' item_type = sanitize_form_value(request.form.get('item_type_input', current_item.get('ItemType', 'Buch'))) library_category = sanitize_form_value(request.form.get('library_category', '')) images = current_item.get('Images', []) + + filter1 = current_item.get('Filter', []) + filter2 = current_item.get('Filter2', []) + filter3 = current_item.get('Filter3', []) else: + # NON-LIBRARY (INVENTORY) ITEM: Process Filter 1-3 from form item_isbn = current_item.get('ISBN', '') - item_type = current_item.get('ItemType', 'other') + item_type = 'other' library_category = current_item.get('library_category', '') + filter1 = expand_filter_selection(sanitize_form_value(request.form.getlist('filter')), 1) + filter2 = expand_filter_selection(sanitize_form_value(request.form.getlist('filter2')), 2) + filter3 = sanitize_form_value(request.form.getlist('filter3')) + images_to_keep = request.form.getlist('existing_images') original_images = current_item.get('Images', []) images = [img for img in original_images if img in images_to_keep] @@ -6539,7 +6544,6 @@ def item_edit(id): images.append(new_filename) except Exception as e: app.logger.error(f"Image error for item {id}: {e}") - if ort and ort not in it.get_predefined_locations(): it.add_predefined_location(ort) diff --git a/Web/templates/edit_library.html b/Web/templates/edit_library.html index 3309716..d5bba10 100644 --- a/Web/templates/edit_library.html +++ b/Web/templates/edit_library.html @@ -271,7 +271,8 @@ Der Basis-Code steht oben. Alle weiteren Gruppenmitglieder werden hier untereinander aufgeführt. - + {% if not show_library_features %} +

Unterrichtsfach (Filter 1):

@@ -307,6 +308,7 @@ {% endfor %}
+ {% endif %}
@@ -488,9 +490,11 @@ document.addEventListener('DOMContentLoaded', function() { loadLocationOptions(); - // Always load Filter 1 and Filter 2 options for all items - loadAndSelectFilterValues(1); - loadAndSelectFilterValues(2); + // Load Filter options if elements exist on page + if (document.getElementById('filter1-1')) { + loadAndSelectFilterValues(1); + loadAndSelectFilterValues(2); + } const scanCodeBtn = document.getElementById('scan-code4-btn'); if (scanCodeBtn) scanCodeBtn.addEventListener('click', startCode4Scanner);