Skip to content
Snippets Groups Projects
admin.py 1.69 KiB
Newer Older
  • Learn to ignore specific revisions
  • from django.urls import reverse
    
    
    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)