Skip to content
Snippets Groups Projects

Resolve "Fix icon in admin"

Merged Hangzhi Yu requested to merge 18-fix-icon-in-admin into master
1 file
+ 9
12
Compare changes
  • Side-by-side
  • Inline
@@ -7,14 +7,17 @@ from django.utils.translation import ugettext_lazy as _
from .models import FAQQuestion, FAQSection, IssueCategory
MATERIAL_ICONS_CSS_URL = "/static/css/materialdesignicons-webfont/material-icons.css"
MATERIAL_ICONS_CSS_URL = "/static/material-design-icons-iconfont/dist/material-design-icons.css"
def icon_html(obj: Model) -> str:
return format_html('<i class="material-icons">{}<i/>', obj.icon)
class IconMixin(object):
"""Mixin for icon lookup."""
def _icon(self, obj: Model) -> str:
return format_html('<i class="material-icons">{}<i/>', obj.icon)
class FAQSectionAdmin(admin.ModelAdmin):
class FAQSectionAdmin(IconMixin, admin.ModelAdmin):
"""ModelAdmin for FAQ sections."""
list_display = ("name", "_icon")
@@ -22,8 +25,6 @@ class FAQSectionAdmin(admin.ModelAdmin):
class Media:
css = {"all": (MATERIAL_ICONS_CSS_URL,)}
_icon = icon_html
def show(modeladmin, request, queryset):
queryset.update(show=True)
@@ -39,7 +40,7 @@ def hide(modeladmin, request, queryset):
hide.short_description = _("Unpublish selected questions")
class FAQQuestionAdmin(admin.ModelAdmin):
class FAQQuestionAdmin(IconMixin, admin.ModelAdmin):
"""ModelAdmin for FAQ questions."""
list_display = ("question_text", "section", "_icon", "show")
@@ -48,10 +49,8 @@ class FAQQuestionAdmin(admin.ModelAdmin):
class Media:
css = {"all": (MATERIAL_ICONS_CSS_URL,)}
_icon = icon_html
class IssueCategoryAdmin(admin.ModelAdmin):
class IssueCategoryAdmin(IconMixin, admin.ModelAdmin):
"""ModelAdmin for issue categories."""
list_display = ("name", "_icon", "parent", "placeholder", "free_text")
@@ -59,8 +58,6 @@ class IssueCategoryAdmin(admin.ModelAdmin):
class Media:
css = {"all": (MATERIAL_ICONS_CSS_URL,)}
_icon = icon_html
admin.site.register(FAQQuestion, FAQQuestionAdmin)
admin.site.register(FAQSection, FAQSectionAdmin)
Loading