{% 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)
| Scope |
Key |
Resolved Value |
Source |
{% for item in resolved_samples %}
| {{ item.scope_name }} |
{{ item.key }} |
{{ item.value|truncatewords:10 }} |
{% if item.inherited %}
Inherited from {{ item.source }}
{% else %}
Direct
{% endif %}
|
{% endfor %}
{% 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 }}
| Key |
Value |
Set By |
Updated |
{% for setting in group.settings %}
| {{ setting.key }} |
{{ setting.value }}
|
{{ setting.set_by|truncate_id }} |
{{ setting.updated_at|format_dt }} |
{% endfor %}
{% 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 %}