diff --git a/app/app.py b/app/app.py index 5e71d72..0d9ac81 100644 --- a/app/app.py +++ b/app/app.py @@ -5,6 +5,7 @@ import hashlib import yaml from utils.configuration_resolver import ConfigurationResolver from utils.cache_manager import CacheManager +from utils.compute_card_classes import compute_card_classes # Initialize the CacheManager cache_manager = CacheManager() @@ -47,7 +48,17 @@ def reload_config_in_dev(): @app.route('/') def index(): - return render_template("pages/index.html.j2", cards=app.config["cards"], company=app.config["company"], navigation=app.config["navigation"], platform=app.config["platform"]) + cards = app.config["cards"] + lg_classes, md_classes = compute_card_classes(cards) + return render_template( + "pages/index.html.j2", + cards=cards, + company=app.config["company"], + navigation=app.config["navigation"], + platform=app.config["platform"], + lg_classes=lg_classes, + md_classes=md_classes + ) if __name__ == "__main__": app.run(debug=(FLASK_ENV == "development"), host="0.0.0.0", port=5000) diff --git a/app/templates/pages/index.html.j2 b/app/templates/pages/index.html.j2 index d7a6bd5..60f19a4 100644 --- a/app/templates/pages/index.html.j2 +++ b/app/templates/pages/index.html.j2 @@ -2,53 +2,10 @@ {% block content %}
- {% set num_cards = cards | length %} - {% set lg_classes = [] %} - - {# Compute `lg` column widths: Ensure at least 3 per row unless fewer than 3 exist #} - {% if num_cards < 3 %} - {% if num_cards == 2 %} - {% set lg_classes = ["col-lg-6", "col-lg-6"] %} - {% else %} - {% set lg_classes = ["col-lg-12"] %} - {% endif %} - {% elif num_cards % 4 == 0 %} - {% set lg_classes = ["col-lg-3"] * num_cards %} - {% elif num_cards % 3 == 0 %} - {% set lg_classes = ["col-lg-4"] * num_cards %} - {% elif num_cards % 2 == 0 %} - {% set lg_classes = ["col-lg-6"] * num_cards %} - {% else %} - {# Distribute for complex cases (e.g., 5, 7, 11) while ensuring at least 3 per row #} - {% for i in range(num_cards) %} - {% if num_cards % 4 == 3 %} - {% if i < 3 %} - {% set _ = lg_classes.append("col-lg-4") %} - {% else %} - {% set _ = lg_classes.append("col-lg-3") %} - {% endif %} - {% elif num_cards % 4 == 1 %} - {% if i < 2 %} - {% set _ = lg_classes.append("col-lg-6") %} - {% elif i < 5 %} - {% set _ = lg_classes.append("col-lg-4") %} - {% else %} - {% set _ = lg_classes.append("col-lg-3") %} - {% endif %} - {% elif num_cards % 3 == 2 %} - {% if i < 2 %} - {% set _ = lg_classes.append("col-lg-6") %} - {% else %} - {% set _ = lg_classes.append("col-lg-4") %} - {% endif %} - {% endif %} - {% endfor %} - {% endif %} - {% for card in cards %} - {% set index = loop.index0 %} {# Index starts at 0 #} + {% set index = loop.index0 %} {% set lg_class = lg_classes[index] %} - {% set md_class = "col-md-6" if num_cards % 2 == 0 or index < num_cards - 1 else "col-md-12" %} + {% set md_class = md_classes[index] %} {% include "moduls/card.html.j2" %} {% endfor %}
diff --git a/app/utils/compute_card_classes.py b/app/utils/compute_card_classes.py new file mode 100644 index 0000000..8700598 --- /dev/null +++ b/app/utils/compute_card_classes.py @@ -0,0 +1,42 @@ +def compute_card_classes(cards): + num_cards = len(cards) + lg_classes = [] + if num_cards < 3: + if num_cards == 2: + lg_classes = ["col-lg-6", "col-lg-6"] + else: + lg_classes = ["col-lg-12"] + elif num_cards % 4 == 0: + lg_classes = ["col-lg-3"] * num_cards + elif num_cards % 3 == 0: + lg_classes = ["col-lg-4"] * num_cards + elif num_cards % 2 == 0: + lg_classes = ["col-lg-6"] * num_cards + else: + # Für komplexe Fälle (z. B. 5, 7, 11) – Stelle sicher, dass mindestens 3 pro Zeile erscheinen + for i in range(num_cards): + if num_cards % 4 == 3: + if i < 3: + lg_classes.append("col-lg-4") + else: + lg_classes.append("col-lg-3") + elif num_cards % 4 == 1: + if i < 2: + lg_classes.append("col-lg-6") + elif i < 5: + lg_classes.append("col-lg-4") + else: + lg_classes.append("col-lg-3") + elif num_cards % 3 == 2: + if i < 2: + lg_classes.append("col-lg-6") + else: + lg_classes.append("col-lg-4") + # md-Klassen: Wenn die Anzahl der Karten gerade ist oder wenn nicht die letzte Karte, ansonsten "col-md-12" + md_classes = [] + for i in range(num_cards): + if num_cards % 2 == 0 or i < num_cards - 1: + md_classes.append("col-md-6") + else: + md_classes.append("col-md-12") + return lg_classes, md_classes \ No newline at end of file