feat: add third filter management and update filter handling logic
This commit is contained in:
@@ -8587,11 +8587,13 @@ def manage_filters():
|
|||||||
# Get predefined filter values
|
# Get predefined filter values
|
||||||
filter1_values = it.get_predefined_filter_values(1)
|
filter1_values = it.get_predefined_filter_values(1)
|
||||||
filter2_values = it.get_predefined_filter_values(2)
|
filter2_values = it.get_predefined_filter_values(2)
|
||||||
|
filter3_values = it.get_predefined_filter_values(3)
|
||||||
|
|
||||||
return render_template(
|
return render_template(
|
||||||
'manage_filters.html',
|
'manage_filters.html',
|
||||||
filter1_values=filter1_values,
|
filter1_values=filter1_values,
|
||||||
filter2_values=filter2_values,
|
filter2_values=filter2_values,
|
||||||
|
filter3_values=filter3_values,
|
||||||
library_module_enabled=cfg.MODULES.is_enabled('library'),
|
library_module_enabled=cfg.MODULES.is_enabled('library'),
|
||||||
student_cards_module_enabled=cfg.MODULES.is_enabled('student_cards')
|
student_cards_module_enabled=cfg.MODULES.is_enabled('student_cards')
|
||||||
)
|
)
|
||||||
|
|||||||
+12
-3
@@ -570,7 +570,10 @@ def get_primary_filters():
|
|||||||
items = db['items']
|
items = db['items']
|
||||||
filters = [f for f in items.distinct('Filter', _active_record_query(_non_library_query())) if f]
|
filters = [f for f in items.distinct('Filter', _active_record_query(_non_library_query())) if f]
|
||||||
client.close()
|
client.close()
|
||||||
return filters
|
|
||||||
|
# Add predefined values
|
||||||
|
predefined = get_predefined_filter_values(1)
|
||||||
|
return sorted(list(set(filters + predefined)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error retrieving primary filters: {e}")
|
print(f"Error retrieving primary filters: {e}")
|
||||||
return []
|
return []
|
||||||
@@ -589,7 +592,10 @@ def get_secondary_filters():
|
|||||||
items = db['items']
|
items = db['items']
|
||||||
filters = [f for f in items.distinct('Filter2', _active_record_query(_non_library_query())) if f]
|
filters = [f for f in items.distinct('Filter2', _active_record_query(_non_library_query())) if f]
|
||||||
client.close()
|
client.close()
|
||||||
return filters
|
|
||||||
|
# Add predefined values
|
||||||
|
predefined = get_predefined_filter_values(2)
|
||||||
|
return sorted(list(set(filters + predefined)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error retrieving secondary filters: {e}")
|
print(f"Error retrieving secondary filters: {e}")
|
||||||
return []
|
return []
|
||||||
@@ -608,7 +614,10 @@ def get_tertiary_filters():
|
|||||||
items = db['items']
|
items = db['items']
|
||||||
filters = [f for f in items.distinct('Filter3', _active_record_query(_non_library_query())) if f]
|
filters = [f for f in items.distinct('Filter3', _active_record_query(_non_library_query())) if f]
|
||||||
client.close()
|
client.close()
|
||||||
return filters
|
|
||||||
|
# Add predefined values
|
||||||
|
predefined = get_predefined_filter_values(3)
|
||||||
|
return sorted(list(set(filters + predefined)))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print(f"Error retrieving tertiary filters: {e}")
|
print(f"Error retrieving tertiary filters: {e}")
|
||||||
return []
|
return []
|
||||||
|
|||||||
@@ -15,16 +15,16 @@
|
|||||||
<h1 class="mb-4">Filterwerte verwalten</h1>
|
<h1 class="mb-4">Filterwerte verwalten</h1>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<!-- Filter 1: Unterrichtsfach -->
|
<!-- Filter 1 -->
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<div class="card mb-4">
|
<div class="card mb-4">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2 class="card-title h5 mb-0">Unterrichtsfach (Filter 1)</h2>
|
<h2 class="card-title h5 mb-0">Fach/Kategorie (Filter 1)</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form method="POST" action="{{ url_for('add_filter_value', filter_num=1) }}" class="mb-4">
|
<form method="POST" action="{{ url_for('add_filter_value', filter_num=1) }}" class="mb-4">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" name="value" class="form-control" placeholder="Neues Unterrichtsfach..." required>
|
<input type="text" name="value" class="form-control" placeholder="Neuer Wert..." required>
|
||||||
<button type="submit" class="btn btn-primary">Hinzufügen</button>
|
<button type="submit" class="btn btn-primary">Hinzufügen</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -51,16 +51,16 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- Filter 2: Jahrgangsstufe -->
|
<!-- Filter 2 -->
|
||||||
<div class="col-md-6">
|
<div class="col-md-4">
|
||||||
<div class="card mb-4">
|
<div class="card mb-4">
|
||||||
<div class="card-header">
|
<div class="card-header">
|
||||||
<h2 class="card-title h5 mb-0">Jahrgangsstufe (Filter 2)</h2>
|
<h2 class="card-title h5 mb-0">System/Bereich (Filter 2)</h2>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<form method="POST" action="{{ url_for('add_filter_value', filter_num=2) }}" class="mb-4">
|
<form method="POST" action="{{ url_for('add_filter_value', filter_num=2) }}" class="mb-4">
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="text" name="value" class="form-control" placeholder="Neue Jahrgangsstufe..." required>
|
<input type="text" name="value" class="form-control" placeholder="Neuer Wert..." required>
|
||||||
<button type="submit" class="btn btn-primary">Hinzufügen</button>
|
<button type="submit" class="btn btn-primary">Hinzufügen</button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
@@ -86,6 +86,42 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- Filter 3 -->
|
||||||
|
<div class="col-md-4">
|
||||||
|
<div class="card mb-4">
|
||||||
|
<div class="card-header">
|
||||||
|
<h2 class="card-title h5 mb-0">Typ/Art (Filter 3)</h2>
|
||||||
|
</div>
|
||||||
|
<div class="card-body">
|
||||||
|
<form method="POST" action="{{ url_for('add_filter_value', filter_num=3) }}" class="mb-4">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="text" name="value" class="form-control" placeholder="Neuer Wert..." required>
|
||||||
|
<button type="submit" class="btn btn-primary">Hinzufügen</button>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<h5 class="mb-3">Vorhandene Werte</h5>
|
||||||
|
{% if filter3_values %}
|
||||||
|
<div class="list-group">
|
||||||
|
{% for value in filter3_values %}
|
||||||
|
<div class="list-group-item d-flex justify-content-between align-items-center">
|
||||||
|
{{ value }}
|
||||||
|
<form method="POST" action="{{ url_for('remove_filter_value', filter_num=3, value=value) }}" class="d-inline">
|
||||||
|
<button type="submit" class="btn btn-sm btn-danger"
|
||||||
|
onclick="return confirm('Sind Sie sicher, dass Sie den Wert \"' + '{{ value }}'.replace(/'/g, '\\\'') + '\" löschen möchten?');">
|
||||||
|
Entfernen
|
||||||
|
</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-info">Keine Werte definiert.</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="alert alert-warning">
|
<div class="alert alert-warning">
|
||||||
|
|||||||
Reference in New Issue
Block a user