[ Web Proxy ]
URL:
Viewing: https://raw.githubusercontent.com/postgres/pgcommitfest/main/pgcommitfest/commitfest/admin.py [Back]  [Original]

from django.contrib import admin
from django.forms import widgets

from .models import (
    CfbotBranch,
    CfbotTask,
    ColorField,
    CommitFest,
    Committer,
    MailThread,
    MailThreadAttachment,
    Patch,
    PatchHistory,
    PatchOnCommitFest,
    Tag,
    TargetVersion,
    Topic,
)


class CommitterAdmin(admin.ModelAdmin):
    list_display = ("user", "active")


class PatchOnCommitFestInline(admin.TabularInline):
    model = PatchOnCommitFest
    extra = 1


class PatchAdmin(admin.ModelAdmin):
    inlines = (PatchOnCommitFestInline,)
    list_display = ("name",)


class MailThreadAdmin(admin.ModelAdmin):
    list_display = (
        "messageid",
        "subject",
        "firstmessage",
        "latestmsgid",
        "latestmessage",
    )


class MailThreadAttachmentAdmin(admin.ModelAdmin):
    list_display = (
        "date",
        "author",
        "messageid",
        "mailthread",
    )


class ColorInput(widgets.Input):
    """
    A color picker widget.
    """

    input_type = "color"
    template_name = "color_input.html"


class TagAdmin(admin.ModelAdmin):
    # Customize the Tag form with a color picker and soft validation.
    change_form_template = "change_tag_form.html"
    formfield_overrides = {
        ColorField: {"widget": ColorInput},
    }


class CfbotBranchAdmin(admin.ModelAdmin):
    # Without this the patch field is rendered as a dropdown, for which every
    # patch in the database gets fetched and rendered as an . That
    # makes the page extremely slow to load. With raw_id_fields it's rendered
    # as a simple text input containing the patch id instead.
    raw_id_fields = ("patch",)


class CfbotTaskAdmin(admin.ModelAdmin):
    # See CfbotBranchAdmin for why raw_id_fields is used here.
    raw_id_fields = ("patch",)


admin.site.register(Committer, CommitterAdmin)
admin.site.register(CommitFest)
admin.site.register(Tag, TagAdmin)
admin.site.register(Topic)
admin.site.register(Patch, PatchAdmin)
admin.site.register(PatchHistory)
admin.site.register(TargetVersion)
admin.site.register(CfbotBranch, CfbotBranchAdmin)
admin.site.register(CfbotTask, CfbotTaskAdmin)

admin.site.register(MailThread, MailThreadAdmin)
admin.site.register(MailThreadAttachment, MailThreadAttachmentAdmin)

Web Proxy Viewer  |  New URL  |  Original Page