Browse Source

add modeladmin

Arnar Tumi Þorsteinsson 8 years ago
parent
commit
7ee4f404bd
1 changed files with 29 additions and 0 deletions
  1. 29 0
      bakerydemo/base/models.py

+ 29 - 0
bakerydemo/base/models.py

@@ -21,6 +21,8 @@ from wagtail.wagtailsnippets.models import register_snippet
 from wagtail.wagtailsnippets.edit_handlers import SnippetChooserPanel
 from .blocks import BaseStreamBlock
 from wagtail.wagtailforms.models import AbstractEmailForm, AbstractFormField
+from wagtail.contrib.modeladmin.options import (
+    ModelAdmin, ModelAdminGroup, modeladmin_register)
 
 
 @register_snippet
@@ -49,6 +51,15 @@ class People(ClusterableModel):
         index.SearchField('last_name'),
     ]
 
+    @property
+    def thumb_image(self):
+       # fail silently if there is no profile pic or the rendition file can't
+       # be found. Note @richbrennan worked out how to do this...
+       try:
+           return self.image.get_rendition('fill-50x50').img_tag()
+       except:
+           return ''
+
     def __str__(self):
         return self.first_name + " " + self.last_name
 
@@ -228,3 +239,21 @@ class FormPage(AbstractEmailForm):
             FieldPanel('subject'),
         ], "Email"),
     ]
+
+
+class PeopleModelAdmin(ModelAdmin):
+    model = People
+    menu_label = 'People'  # ditch this to use verbose_name_plural from model
+    menu_icon = 'fa-people'  # change as required
+    list_display = ('first_name', 'last_name', 'job_title', 'thumb_image')
+
+
+class MyModelAdminGroup(ModelAdminGroup):
+    menu_label = 'WagtailBakery'
+    menu_icon = 'folder-open-inverse'  # change as required
+    menu_order = 200  # will put in 3rd place (000 being 1st, 100 2nd)
+    items = (PeopleModelAdmin,)
+
+# When using a ModelAdminGroup class to group several ModelAdmin classes together,
+# you only need to register the ModelAdminGroup class with Wagtail:
+modeladmin_register(MyModelAdminGroup)