Added new template filter: model_field_verbose_name

This commit is contained in:
Danilo Bargen 2013-07-06 11:14:06 +02:00
parent 3796d312e3
commit 56b26fb190
4 changed files with 51 additions and 4 deletions

View file

@ -37,6 +37,14 @@ def model_verbose_name_plural(obj):
return utils.model_verbose_name_plural(obj)
@register.filter
def model_field_verbose_name(obj, field_name):
"""
Returns the verbose name of a model field.
"""
return utils.model_field_verbose_name(obj, field_name)
@register.filter
def formset_visible_fieldlist(formset):
"""

View file

@ -9,6 +9,9 @@ from ..views import IndexView
class TagsTestsModel(models.Model):
field1 = models.CharField(max_length=23)
field2 = models.CharField('second field', max_length=42)
class Meta:
verbose_name = "Tags Test Model"
verbose_name_plural = "Tags Test Models"
@ -58,6 +61,18 @@ class TagsTests(TestCase):
admin2_tags.model_verbose_name_plural(self.instance)
)
def test_model_field_verbose_name_autogenerated(self):
self.assertEquals(
'field1',
admin2_tags.model_field_verbose_name(self.instance, 'field1')
)
def test_model_field_verbose_name_overridden(self):
self.assertEquals(
'second field',
admin2_tags.model_field_verbose_name(self.instance, 'field2')
)
def test_formset_visible_fieldlist(self):
formset = TagsTestFormSet()
self.assertEquals(

View file

@ -7,6 +7,9 @@ from ..views import IndexView
class UtilsTestModel(models.Model):
field1 = models.CharField(max_length=23)
field2 = models.CharField('second field', max_length=42)
class Meta:
verbose_name = "Utils Test Model"
verbose_name_plural = "Utils Test Models"
@ -71,6 +74,18 @@ class UtilsTest(TestCase):
utils.model_verbose_name_plural(self.instance)
)
def test_model_field_verbose_name_autogenerated(self):
self.assertEquals(
'field1',
utils.model_field_verbose_name(self.instance, 'field1')
)
def test_model_field_verbose_name_overridden(self):
self.assertEquals(
'second field',
utils.model_field_verbose_name(self.instance, 'field2')
)
def test_app_label_as_model_class(self):
self.assertEquals(
UtilsTestModel._meta.app_label,

View file

@ -41,18 +41,27 @@ def admin2_urlname(view, action):
return 'admin2:%s_%s_%s' % (view.app_label, view.model_name, action)
def model_verbose_name(obj):
def model_verbose_name(model):
"""
Returns the verbose name of a model instance or class.
"""
return model_options(obj).verbose_name
return model_options(model).verbose_name
def model_verbose_name_plural(obj):
def model_verbose_name_plural(model):
"""
Returns the pluralized verbose name of a model instance or class.
"""
return model_options(obj).verbose_name_plural
return model_options(model).verbose_name_plural
def model_field_verbose_name(model, field_name):
"""
Returns the verbose name of a model field.
"""
meta = model_options(model)
field = meta.get_field_by_name(field_name)[0]
return field.verbose_name
def model_app_label(obj):