diff --git a/opal/models.py b/opal/models.py index 863c8b90f..ee0290130 100644 --- a/opal/models.py +++ b/opal/models.py @@ -118,13 +118,13 @@ def _get_field_title(cls, name): else: field_name = field.verbose_name - if field_name.islower(): - field_name = field_name.title() - except FieldDoesNotExist: # else its foreign key or free text field_name = getattr(cls, name).verbose_name + if field_name.islower(): + field_name = field_name.title() + return field_name @classmethod diff --git a/opal/tests/models.py b/opal/tests/models.py index a51918e1f..479150973 100644 --- a/opal/tests/models.py +++ b/opal/tests/models.py @@ -41,7 +41,7 @@ class Dog(lookuplists.LookupList): class DogOwner(models.EpisodeSubrecord): name = dmodels.CharField(max_length=200) dog = fields.ForeignKeyOrFreeText(Dog) - ownership_start_date = dmodels.DateField(blank=True, null=True) + ownership_start_date = dmodels.DateField(blank=True, null=True, verbose_name="OSD") class HoundOwner(models.EpisodeSubrecord): diff --git a/opal/tests/test_models.py b/opal/tests/test_models.py index 6ff4f78d6..344b8ecd4 100644 --- a/opal/tests/test_models.py +++ b/opal/tests/test_models.py @@ -362,6 +362,11 @@ def test_verbose_name(self): only_words = FamousLastWords._get_field_title("words") self.assertEqual(only_words, "Only Words") + def test_verbose_name_abbreviation(self): + # if a word is an abbreviation already, don't title case it! + osd = DogOwner._get_field_title("ownership_start_date") + self.assertEqual(osd, "OSD") + class BulkUpdateFromDictsTest(OpalTestCase):