Merge ~lloydwaltersj/maas:ui-theme-config into maas:master

Proposed by Jack Lloyd-Walters
Status: Merged
Approved by: Jack Lloyd-Walters
Approved revision: d174627868d573a942f6d32412dfa6d445d79758
Merge reported by: MAAS Lander
Merged at revision: not available
Proposed branch: ~lloydwaltersj/maas:ui-theme-config
Merge into: maas:master
Diff against target: 67 lines (+26/-0)
4 files modified
src/maasserver/forms/__init__.py (+1/-0)
src/maasserver/forms/settings.py (+8/-0)
src/maasserver/forms/tests/test_settings.py (+16/-0)
src/maasserver/models/config.py (+1/-0)
Reviewer Review Type Date Requested Status
Alberto Donato (community) Approve
MAAS Lander Approve
Review via email: mp+425873@code.launchpad.net

Commit message

add UI theme configuration to MAAS

Description of the change

I believe this implements the UI config that was requested in #1979256

To post a comment you must log in.
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b ui-theme-config lp:~lloydwaltersj/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 9e358e80a0e19d66af07ea0cbafd2f8cd9689ffa

review: Approve
Revision history for this message
Adam Collard (adam-collard) wrote :

Please add a test that theme is a valid config option and is str-like

Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b ui-theme-config lp:~lloydwaltersj/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: FAILED
LOG: http://maas-ci.internal:8080/job/maas/job/branch-tester/13099/console
COMMIT: c8d0ad2008f58506d7e512b10e158d05936e8b4e

review: Needs Fixing
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b ui-theme-config lp:~lloydwaltersj/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: 39075efc8e80e13df4deef2f4b8c257ed8b604da

review: Approve
Revision history for this message
Alberto Donato (ack) :
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNIT TESTS
-b ui-theme-config lp:~lloydwaltersj/maas/+git/maas into -b master lp:~maas-committers/maas

STATUS: SUCCESS
COMMIT: d174627868d573a942f6d32412dfa6d445d79758

review: Approve
Revision history for this message
Alberto Donato (ack) wrote :

+1, nice

review: Approve
Revision history for this message
MAAS Lander (maas-lander) wrote :

UNABLE TO START LANDING

STATUS: MISSING COMMIT MESSAGE

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1diff --git a/src/maasserver/forms/__init__.py b/src/maasserver/forms/__init__.py
2index 63e07cc..59b1b12 100644
3--- a/src/maasserver/forms/__init__.py
4+++ b/src/maasserver/forms/__init__.py
5@@ -1706,6 +1706,7 @@ class MAASForm(ConfigForm):
6 """Settings page, MAAS section."""
7
8 maas_name = get_config_field("maas_name")
9+ theme = get_config_field("theme")
10 enable_analytics = get_config_field("enable_analytics")
11
12
13diff --git a/src/maasserver/forms/settings.py b/src/maasserver/forms/settings.py
14index d9e7d6e..f9887e1 100644
15--- a/src/maasserver/forms/settings.py
16+++ b/src/maasserver/forms/settings.py
17@@ -287,6 +287,14 @@ CONFIG_ITEMS = {
18 "form": forms.CharField,
19 "form_kwargs": {"label": "MAAS name"},
20 },
21+ "theme": {
22+ "default": "",
23+ "form": forms.CharField,
24+ "form_kwargs": {
25+ "label": "MAAS theme",
26+ "required": False,
27+ },
28+ },
29 "kernel_opts": {
30 "default": None,
31 "form": forms.CharField,
32diff --git a/src/maasserver/forms/tests/test_settings.py b/src/maasserver/forms/tests/test_settings.py
33index f0cd075..010dbfb 100644
34--- a/src/maasserver/forms/tests/test_settings.py
35+++ b/src/maasserver/forms/tests/test_settings.py
36@@ -107,3 +107,19 @@ class TestMAASSyslogPortConfigSettings(MAASServerTestCase):
37 def test_doesnt_allow_port_5248(self):
38 field = get_config_field("maas_syslog_port")
39 self.assertRaises(ValidationError, field.clean, "5248")
40+
41+
42+class TestMAASThemeConfigSettings(MAASServerTestCase):
43+ def test_default_value(self):
44+ form = get_config_form("theme")
45+ self.assertEqual({"theme": ""}, form.initial)
46+
47+ def test_theme_config(self):
48+ value = factory.make_hex_string(size=6)
49+ field = get_config_field("theme")
50+ self.assertEqual(value, field.clean(value))
51+
52+ def test_theme_string_like(self):
53+ value = [1, 2, 3]
54+ field = get_config_field("theme")
55+ self.assertEqual(str(value), field.clean(value))
56diff --git a/src/maasserver/models/config.py b/src/maasserver/models/config.py
57index 0a90053..d1540d0 100644
58--- a/src/maasserver/models/config.py
59+++ b/src/maasserver/models/config.py
60@@ -59,6 +59,7 @@ def get_default_config():
61 # Network section configuration.
62 "maas_url": "http://localhost:5240/MAAS",
63 "maas_name": gethostname(),
64+ "theme": "",
65 "default_osystem": DEFAULT_OS.name,
66 "default_distro_series": DEFAULT_OS.get_default_release(),
67 # Proxy settings

Subscribers

People subscribed via source and target branches