Skip to content

Commit 3d483f5

Browse files
add ! mask display of constance default values if need.
1 parent 85d044f commit 3d483f5

File tree

3 files changed

+36
-0
lines changed

3 files changed

+36
-0
lines changed

src/country_workspace/admin/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
from ..cache.smart_panel import panel_cache
88
from .batch import BatchAdmin # noqa
9+
from .constance import ConstanceAdmin # noqa
910
from .household import HouseholdAdmin # noqa
1011
from .individual import IndividualAdmin # noqa
1112
from .job import AsyncJobAdmin # noqa
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
from typing import Any
2+
from django.contrib import admin
3+
from constance.admin import ConstanceAdmin, Config
4+
from django.http import HttpRequest, HttpResponse
5+
from django.conf import settings
6+
7+
8+
admin.site.unregister([Config])
9+
10+
11+
class MaskedDefaultsConstanceAdmin(ConstanceAdmin):
12+
def changelist_view(self, request: HttpRequest, extra_context: dict[str, Any] | None = None) -> HttpResponse:
13+
self.request = request
14+
return super().changelist_view(request, extra_context)
15+
16+
def get_config_value(self, name: str, options: dict[str, Any], form: Any, initial: Any) -> dict[str, Any]:
17+
config_value = super().get_config_value(name, options, form, initial)
18+
if (
19+
self.request is not None
20+
and self.request.method == "GET"
21+
and hasattr(settings, "CONSTANCE_MASKED_DEFAULTS")
22+
and name in settings.CONSTANCE_MASKED_DEFAULTS
23+
):
24+
config_value["default"] = settings.CONSTANCE_MASKED_DEFAULTS[name]
25+
return config_value
26+
27+
28+
admin.site.register([Config], MaskedDefaultsConstanceAdmin)

src/country_workspace/config/fragments/constance.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,10 @@
6464
"KOBO_API_URL",
6565
),
6666
}
67+
68+
# Mapping of config keys to masked default display values in the Constance admin UI.
69+
CONSTANCE_MASKED_DEFAULTS = {
70+
"AURORA_API_TOKEN": "***",
71+
"HOPE_API_TOKEN": "***",
72+
"KOBO_API_TOKEN": "***",
73+
}

0 commit comments

Comments
 (0)