Files
computer-playbook/roles/web-app-dashboard/templates/menu/applications.yml.j2
kevinveenbirkenbachandClaude Opus 4.8 7c8a9bb352 fix(dashboard): quote every free-text scalar in the rendered config
The applications menu and the platform/company header interpolated operator and role free text as plain YAML scalars, so any description containing a colon-space broke the rendered config at the from_yaml parse in the branding-asset task; moodle variant 0 hit it as the only deploy combining an active dashboard with web-app-lam, whose description carries 'directories: managing'. All name, description, icon, url and title fields now render through to_json, which yields quoted scalars for arbitrary text, matching what to_nice_yaml already did for the cards block.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-18 13:03:24 +02:00

52 lines
1.4 KiB
Django/Jinja

applications:
{% if (portfolio_menu_data.categorized is mapping and portfolio_menu_data.categorized | length > 0)
or (portfolio_menu_data.uncategorized is sequence and portfolio_menu_data.uncategorized | length > 0) %}
- name: Apps
description: Browse, configure and launch all available applications
icon:
class: fa fa-th-large
children:
{% for category, apps in portfolio_menu_data.categorized.items() %}
- name: {{ category | to_json }}
description: {{ portfolio_menu_categories[category].description | to_json }}
icon:
class: {{ portfolio_menu_categories[category].icon | to_json }}
children:
{% for app in apps %}
- name: {{ app.title | to_json }}
description: {{ app.text | to_json }}
icon: {{ app.icon | to_json }}
url: {{ app.url | to_json }}
iframe: {{ app.iframe }}
{% endfor %}
{% endfor %}
{% if portfolio_menu_data.uncategorized %}
- name: Uncategorized
description: Tools without a defined category
icon:
class: fa-solid fa-question
children:
{% for app in portfolio_menu_data.uncategorized %}
- name: {{ app.title | to_json }}
description: {{ app.text | to_json }}
icon: {{ app.icon | to_json }}
url: {{ app.url | to_json }}
iframe: {{ app.iframe }}
{% endfor %}
{% endif %}
{% endif %}