{% extends "base.html" %} {% load scoped_tags %} {% block title %}Config{% endblock %} {% block page_title %}Configuration{% endblock %} {% block page_subtitle %}Hierarchical scope settings with inheritance (Extension A5){% endblock %} {% block layer_indicator %}A5 Config Hierarchy{% endblock %} {% block content %}
How config inheritance works: Settings defined at an org-level scope cascade down to child scopes. Child scopes can override any inherited value. When resolving a key, the ConfigResolver walks up the scope tree and returns the nearest match.
{# Resolved Config Samples #} {% if resolved_samples %}

Resolved Values (Inheritance Demo)

{% for item in resolved_samples %} {% endfor %}
Scope Key Resolved Value Source
{{ item.scope_name }} {{ item.key }} {{ item.value|truncatewords:10 }} {% if item.inherited %} Inherited from {{ item.source }} {% else %} Direct {% endif %}
{% endif %} {# Org-Level Settings #} {% for group in scope_groups %}
{% if group.parent_scope_id %}
{{ group.parent_name|default:"Parent" }}
{% endif %}

{{ group.scope_name }}

{% if not group.parent_scope_id %} Org-Level {% else %} Child Scope {% endif %} {{ group.settings|length }} setting{{ group.settings|length|pluralize }}
{% for setting in group.settings %} {% endfor %}
Key Value Set By Updated
{{ setting.key }}
{{ setting.value }}
{{ setting.set_by|truncate_id }} {{ setting.updated_at|format_dt }}
{% empty %} {% include "components/_empty_state.html" with title="No configuration" message="No scope settings have been defined. Use the Config Hierarchy to define org-level defaults and per-team overrides." %} {% endfor %} {% endblock %}