Skip to content
Snippets Groups Projects
admin.py 1.73 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.urls import reverse
    from django.utils.text import mark_safe
    
    
    from wagtail.contrib.modeladmin.options import ModelAdmin, ModelAdminGroup
    
    from wagtail.contrib.modeladmin.helpers import PageButtonHelper
    
    Todd Dembrey's avatar
    Todd Dembrey committed
    
    
    from .models import ApplicationForm, FundType, Round
    
    from opentech.apply.categories.admin import CategoryAdmin
    
    class ButtonsWithPreview(PageButtonHelper):
        def preview_button(self, obj, classnames_add, classnames_exclude):
            classnames = self.copy_button_classnames + classnames_add
            cn = self.finalise_classname(classnames, classnames_exclude)
            return {
                'url': reverse('wagtailadmin_pages:view_draft', args=(obj.id,)),
                'label': 'Preview',
                'classname': cn,
                'title': 'Preview this %s' % self.verbose_name,
            }
    
        def get_buttons_for_obj(self, obj, exclude=list(), classnames_add=list(),
                                classnames_exclude=list()):
            btns = super().get_buttons_for_obj(obj, exclude, classnames_add, classnames_exclude)
    
            # Put preview before delete
            btns.insert(-1, self.preview_button(obj, classnames_add, classnames_exclude))
    
            return btns
    
    
    
    class RoundAdmin(ModelAdmin):
        model = Round
        menu_icon = 'doc-empty'
    
        list_display = ('title', 'fund', 'start_date', 'end_date')
        button_helper_class = ButtonsWithPreview
    
        def fund(self, obj):
            return obj.get_parent()
    
    class FundAdmin(ModelAdmin):
        model = FundType
        menu_icon = 'doc-empty'
    
    class ApplicationFormAdmin(ModelAdmin):
        model = ApplicationForm
    
        menu_icon = 'form'
    
    
    class ApplyAdminGroup(ModelAdminGroup):
        menu_label = 'Apply'
        menu_icon = 'folder-open-inverse'
    
        items = (RoundAdmin, FundAdmin, ApplicationFormAdmin, CategoryAdmin)