diff --git a/src/wuttaweb/views/master.py b/src/wuttaweb/views/master.py index 99748bc..1f919c1 100644 --- a/src/wuttaweb/views/master.py +++ b/src/wuttaweb/views/master.py @@ -3793,6 +3793,11 @@ class MasterView(View): # pylint: disable=too-many-public-methods if hasattr(cls, "row_model_title"): return cls.row_model_title + if model_class := cls.get_row_model_class(): + if hasattr(model_class, "__wutta_hint__"): + if model_title := model_class.__wutta_hint__.get("model_title"): + return model_title + return cls.get_row_model_name() @classmethod diff --git a/tests/views/test_master.py b/tests/views/test_master.py index e6a9e1e..6050edf 100644 --- a/tests/views/test_master.py +++ b/tests/views/test_master.py @@ -363,6 +363,11 @@ class TestMasterView(WebTestCase): with patch.object(mod.MasterView, "row_model_class", new=MyModel): self.assertEqual(mod.MasterView.get_row_model_title(), "Dinosaur") + # model class may have wutta hint + MyModel.__wutta_hint__ = {"model_title": "T-Rex"} + with patch.object(mod.MasterView, "row_model_class", new=MyModel): + self.assertEqual(mod.MasterView.get_row_model_title(), "T-Rex") + def test_get_row_model_title_plural(self): # error by default (since no model class)